{"version":3,"file":"static/js/main.cb904d97.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/debounce-promise/index.js","../node_modules/invariant/browser.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-query/es/core/focusManager.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-query/es/core/queryObserver.js","../node_modules/react-query/es/react/QueryErrorResetBoundary.js","../node_modules/react-query/es/react/useQuery.js","../node_modules/react-query/es/react/useBaseQuery.js","../node_modules/react-query/es/react/utils.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","../UplotReact/webpack/universalModuleDefinition","../UplotReact/common/index.ts","../UplotReact/external umd {\"amd\":\"react\",\"commonjs\":\"react\",\"commonjs2\":\"react\",\"root\":\"React\"}","../UplotReact/external umd {\"amd\":\"uplot\",\"commonjs\":\"uplot\",\"commonjs2\":\"uplot\",\"root\":\"uPlot\"}","../UplotReact/webpack/bootstrap","../UplotReact/webpack/runtime/compat get default export","../UplotReact/webpack/runtime/define property getters","../UplotReact/webpack/runtime/hasOwnProperty shorthand","../UplotReact/webpack/runtime/make namespace object","../UplotReact/react/uplot-react.tsx","../node_modules/uplot/dist/uPlot.esm.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.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/@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/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/useTimeout.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.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/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useCallbackRef.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/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/ownerDocument.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@restart/ui/esm/useRootClose.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/ui/esm/NoopTransition.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/Overlay.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/ThemeProvider.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-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/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/Overlay.js","../node_modules/react-bootstrap/esm/useOverlayOffset.js","../node_modules/react-bootstrap/esm/OverlayTrigger.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/AlertHeading.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/AlertLink.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/Alert.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/ui/esm/DropdownContext.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/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.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/NavbarContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/react-bootstrap/esm/Table.js","../node_modules/react-bootstrap/esm/Badge.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/Modal.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/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.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","logo.svg","components/Navbar.tsx","labels.tsx","../node_modules/@bufbuild/protobuf/dist/esm/service-type.js","../node_modules/@bufbuild/connect/dist/esm/code.js","../node_modules/@bufbuild/protobuf/dist/esm/message.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/code-string.js","../node_modules/@bufbuild/connect/dist/esm/connect-error.js","../node_modules/@bufbuild/connect/dist/esm/protocol/serialization.js","../node_modules/@bufbuild/connect/dist/esm/protocol/signals.js","../node_modules/@bufbuild/connect/dist/esm/protocol/run-call.js","../node_modules/@bufbuild/connect/dist/esm/protocol/create-method-url.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/headers.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/version.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/content-type.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/request-header.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/get-request.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/validate-response.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/http-status.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/error-json.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/trailer-mux.js","../node_modules/@bufbuild/connect/dist/esm/protocol-connect/end-stream.js","../node_modules/@bufbuild/connect-web/dist/esm/connect-transport.js","../node_modules/@connectrpc/connect/dist/esm/code.js","../node_modules/@bufbuild/connect-web/dist/esm/assert-fetch-api.js","../node_modules/@bufbuild/connect/dist/esm/http-headers.js","../node_modules/@bufbuild/connect/dist/esm/protocol/envelope.js","../node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js","../node_modules/@connectrpc/connect/dist/esm/connect-error.js","../node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js","../node_modules/@connectrpc/connect/dist/esm/promise-client.js","../node_modules/@connectrpc/connect/dist/esm/any-client.js","../node_modules/@bufbuild/protobuf/dist/esm/private/assert.js","../node_modules/@bufbuild/protobuf/dist/esm/private/enum.js","../node_modules/@bufbuild/protobuf/dist/esm/google/varint.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","../node_modules/@bufbuild/protobuf/dist/esm/scalar.js","../node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js","../node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js","../node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.js","../node_modules/@bufbuild/protobuf/dist/esm/private/reflect.js","../node_modules/@bufbuild/protobuf/dist/esm/is-message.js","../node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js","../node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js","../node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js","../node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.js","../node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js","../node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js","../node_modules/@bufbuild/protobuf/dist/esm/private/names.js","../node_modules/@bufbuild/protobuf/dist/esm/private/field.js","../node_modules/@bufbuild/protobuf/dist/esm/proto3.js","../node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js","../node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js","../node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js","../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/duration_pb.js","../node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/timestamp_pb.js","proto/objectives/v1alpha1/objectives_pb.js","proto/objectives/v1alpha1/objectives_connect.js","duration.tsx","../node_modules/@tanstack/table-core/src/utils.ts","../node_modules/@tanstack/table-core/src/core/headers.ts","../node_modules/@tanstack/table-core/src/features/ColumnSizing.ts","../node_modules/@tanstack/table-core/src/features/Expanding.ts","../node_modules/@tanstack/table-core/src/filterFns.ts","../node_modules/@tanstack/table-core/src/features/Filters.ts","../node_modules/@tanstack/table-core/src/aggregationFns.ts","../node_modules/@tanstack/table-core/src/features/Ordering.ts","../node_modules/@tanstack/table-core/src/features/Grouping.ts","../node_modules/@tanstack/table-core/src/features/Pinning.ts","../node_modules/@tanstack/table-core/src/features/RowSelection.ts","../node_modules/@tanstack/table-core/src/sortingFns.ts","../node_modules/@tanstack/table-core/src/features/Visibility.ts","../node_modules/@tanstack/table-core/src/core/table.ts","../node_modules/@tanstack/table-core/src/features/Sorting.ts","../node_modules/@tanstack/table-core/src/features/Pagination.ts","../node_modules/@tanstack/table-core/src/core/column.ts","../node_modules/@tanstack/table-core/src/core/row.ts","../node_modules/@tanstack/table-core/src/core/cell.ts","../node_modules/@tanstack/react-table/src/index.tsx","query.tsx","objectives.tsx","components/Icons.tsx","../node_modules/awesome-only-resolves-last-promise/src/index.ts","../node_modules/awesome-imperative-promise/src/index.ts","../node_modules/awesome-debounce-promise/node_modules/tslib/tslib.es6.js","../node_modules/awesome-debounce-promise/src/index.ts","../node_modules/use-constant/dist/use-constant.esm.js","../node_modules/react-async-hook/node_modules/babel-plugin-transform-async-to-promises/helpers.js","../node_modules/react-async-hook/src/index.ts","pages/List.tsx","../node_modules/@tanstack/table-core/src/columnHelper.ts","../node_modules/@tanstack/table-core/src/utils/getCoreRowModel.ts","../node_modules/@tanstack/table-core/src/utils/getSortedRowModel.ts","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/react-bootstrap/esm/ButtonGroup.js","components/graphs/colors.tsx","components/graphs/gaps.tsx","prometheus.tsx","components/graphs/selectTimeRange.tsx","components/graphs/ErrorBudgetGraph.tsx","components/graphs/step.tsx","components/graphs/aligneddata.tsx","components/graphs/RequestsGraph.tsx","components/graphs/ErrorsGraph.tsx","components/graphs/BurnrateGraph.tsx","components/AlertsTable.tsx","components/Toggle.tsx","components/graphs/DurationGraph.tsx","proto/prometheus/v1/prometheus_pb.js","proto/prometheus/v1/prometheus_connect.js","components/tiles/ObjectiveTile.tsx","components/tiles/AvailabilityTile.tsx","components/tiles/ErrorBudgetTile.tsx","components/tiles/Tiles.tsx","pages/Detail.tsx","App.tsx","index.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/* global setTimeout, clearTimeout */\n\nmodule.exports = function debounce (fn, wait = 0, options = {}) {\n let lastCallAt\n let deferred\n let timer\n let pendingArgs = []\n return function debounced (...args) {\n const currentWait = getWait(wait)\n const currentTime = new Date().getTime()\n\n const isCold = !lastCallAt || (currentTime - lastCallAt) > currentWait\n\n lastCallAt = currentTime\n\n if (isCold && options.leading) {\n return options.accumulate\n ? Promise.resolve(fn.call(this, [args])).then(result => result[0])\n : Promise.resolve(fn.call(this, ...args))\n }\n\n if (deferred) {\n clearTimeout(timer)\n } else {\n deferred = defer()\n }\n\n pendingArgs.push(args)\n timer = setTimeout(flush.bind(this), currentWait)\n\n if (options.accumulate) {\n const argsIndex = pendingArgs.length - 1\n return deferred.promise.then(results => results[argsIndex])\n }\n\n return deferred.promise\n }\n\n function flush () {\n const thisDeferred = deferred\n clearTimeout(timer)\n\n Promise.resolve(\n options.accumulate\n ? fn.call(this, pendingArgs)\n : fn.apply(this, pendingArgs[pendingArgs.length - 1])\n )\n .then(thisDeferred.resolve, thisDeferred.reject)\n\n pendingArgs = []\n deferred = null\n }\n}\n\nfunction getWait (wait) {\n return (typeof wait === 'function') ? wait() : wait\n}\n\nfunction defer () {\n const deferred = {}\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve\n deferred.reject = reject\n })\n return deferred\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\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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>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","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"uplot\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"uplot\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"UplotReact\"] = factory(require(\"react\"), require(\"uplot\"));\n\telse\n\t\troot[\"UplotReact\"] = factory(root[\"React\"], root[\"uPlot\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_uplot__) => {\nreturn ","import uPlot from 'uplot';\n\ntype OptionsUpdateState = 'keep' | 'update' | 'create';\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nif (!Object.is) {\n // eslint-disable-next-line\n Object.defineProperty(Object, \"is\", {value: (x: any, y: any) =>\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n });\n}\n\nexport const optionsUpdateState = (_lhs: uPlot.Options, _rhs: uPlot.Options): OptionsUpdateState => {\n const {width: lhsWidth, height: lhsHeight, ...lhs} = _lhs;\n const {width: rhsWidth, height: rhsHeight, ...rhs} = _rhs;\n\n let state: OptionsUpdateState = 'keep';\n if (lhsHeight !== rhsHeight || lhsWidth !== rhsWidth) {\n state = 'update';\n }\n if (Object.keys(lhs).length !== Object.keys(rhs).length) {\n return 'create';\n }\n for (const k of Object.keys(lhs)) {\n if (!Object.is(lhs[k], rhs[k])) {\n state = 'create';\n break;\n }\n }\n return state;\n}\n\nexport const dataMatch = (lhs: uPlot.AlignedData, rhs: uPlot.AlignedData): boolean => {\n if (lhs.length !== rhs.length) {\n return false;\n }\n return lhs.every((lhsOneSeries, seriesIdx) => {\n const rhsOneSeries = rhs[seriesIdx];\n if (lhsOneSeries.length !== rhsOneSeries.length) {\n return false;\n }\n return lhsOneSeries.every((value, valueIdx) => value === rhsOneSeries[valueIdx]);\n });\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_uplot__;","// 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};","// 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__.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};","import React, { useCallback, useEffect, useRef } from 'react';\n\nimport uPlot from 'uplot';\n\nimport { optionsUpdateState, dataMatch } from 'uplot-wrappers-common';\n\nexport default function UplotReact({\n options,\n data,\n target,\n onDelete,\n onCreate,\n resetScales = true,\n}: {\n options: uPlot.Options;\n data: uPlot.AlignedData;\n // eslint-disable-next-line\n target?: HTMLElement | ((self: uPlot, init: Function) => void);\n onDelete?: (chart: uPlot) => void;\n onCreate?: (chart: uPlot) => void;\n resetScales?: boolean;\n}): JSX.Element | null {\n const chartRef = useRef(null);\n const targetRef = useRef(null);\n const propOptionsRef = useRef(options);\n const propTargetRef = useRef(target);\n const propDataRef = useRef(data);\n const onCreateRef = useRef(onCreate);\n const onDeleteRef = useRef(onDelete);\n\n useEffect(() => {\n onCreateRef.current = onCreate;\n onDeleteRef.current = onDelete;\n });\n\n const destroy = useCallback((chart: uPlot | null) => {\n if (chart) {\n onDeleteRef.current?.(chart);\n chart.destroy();\n chartRef.current = null;\n }\n }, []);\n const create = useCallback(() => {\n const newChart = new uPlot(\n propOptionsRef.current,\n propDataRef.current,\n propTargetRef.current || (targetRef.current as HTMLDivElement)\n );\n chartRef.current = newChart;\n onCreateRef.current?.(newChart);\n }, []);\n\n useEffect(() => {\n create();\n return () => {\n destroy(chartRef.current);\n };\n }, [create, destroy]);\n\n useEffect(() => {\n if (propOptionsRef.current !== options) {\n const optionsState = optionsUpdateState(propOptionsRef.current, options);\n propOptionsRef.current = options;\n if (!chartRef.current || optionsState === 'create') {\n destroy(chartRef.current);\n create();\n } else if (optionsState === 'update') {\n chartRef.current.setSize({\n width: options.width,\n height: options.height,\n });\n }\n }\n }, [options, create, destroy]);\n\n useEffect(() => {\n if (propDataRef.current !== data) {\n if (!chartRef.current) {\n propDataRef.current = data;\n create();\n } else if (!dataMatch(propDataRef.current, data)) {\n if (resetScales) {\n chartRef.current.setData(data, true);\n } else {\n chartRef.current.setData(data, false);\n chartRef.current.redraw();\n }\n }\n propDataRef.current = data;\n }\n }, [data, resetScales, create]);\n\n useEffect(() => {\n if (propTargetRef.current !== target) {\n propTargetRef.current = target;\n create();\n }\n\n return () => destroy(chartRef.current);\n }, [target, create, destroy]);\n\n return target ? null :
;\n}\n","/**\n* Copyright (c) 2024, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uPlot.js (μPlot)\n* A small, fast chart for time series, lines, areas, ohlc & bars\n* https://github.com/leeoniya/uPlot (v1.6.31)\n*/\n\nconst FEAT_TIME = true;\n\nconst pre = \"u-\";\n\nconst UPLOT = \"uplot\";\nconst ORI_HZ = pre + \"hz\";\nconst ORI_VT = pre + \"vt\";\nconst TITLE = pre + \"title\";\nconst WRAP = pre + \"wrap\";\nconst UNDER = pre + \"under\";\nconst OVER = pre + \"over\";\nconst AXIS = pre + \"axis\";\nconst OFF = pre + \"off\";\nconst SELECT = pre + \"select\";\nconst CURSOR_X = pre + \"cursor-x\";\nconst CURSOR_Y = pre + \"cursor-y\";\nconst CURSOR_PT = pre + \"cursor-pt\";\nconst LEGEND = pre + \"legend\";\nconst LEGEND_LIVE = pre + \"live\";\nconst LEGEND_INLINE = pre + \"inline\";\nconst LEGEND_SERIES = pre + \"series\";\nconst LEGEND_MARKER = pre + \"marker\";\nconst LEGEND_LABEL = pre + \"label\";\nconst LEGEND_VALUE = pre + \"value\";\n\nconst WIDTH = \"width\";\nconst HEIGHT = \"height\";\nconst TOP = \"top\";\nconst BOTTOM = \"bottom\";\nconst LEFT = \"left\";\nconst RIGHT = \"right\";\nconst hexBlack = \"#000\";\nconst transparent = hexBlack + \"0\";\n\nconst mousemove = \"mousemove\";\nconst mousedown = \"mousedown\";\nconst mouseup = \"mouseup\";\nconst mouseenter = \"mouseenter\";\nconst mouseleave = \"mouseleave\";\nconst dblclick = \"dblclick\";\nconst resize = \"resize\";\nconst scroll = \"scroll\";\n\nconst change = \"change\";\nconst dppxchange = \"dppxchange\";\n\nconst LEGEND_DISP = \"--\";\n\nconst domEnv = typeof window != 'undefined';\n\nconst doc = domEnv ? document : null;\nconst win = domEnv ? window : null;\nconst nav = domEnv ? navigator : null;\n\nlet pxRatio;\n\n//export const canHover = domEnv && !win.matchMedia('(hover: none)').matches;\n\nlet query;\n\nfunction setPxRatio() {\n\tlet _pxRatio = devicePixelRatio;\n\n\t// during print preview, Chrome fires off these dppx queries even without changes\n\tif (pxRatio != _pxRatio) {\n\t\tpxRatio = _pxRatio;\n\n\t\tquery && off(change, query, setPxRatio);\n\t\tquery = matchMedia(`(min-resolution: ${pxRatio - 0.001}dppx) and (max-resolution: ${pxRatio + 0.001}dppx)`);\n\t\ton(change, query, setPxRatio);\n\n\t\twin.dispatchEvent(new CustomEvent(dppxchange));\n\t}\n}\n\nfunction addClass(el, c) {\n\tif (c != null) {\n\t\tlet cl = el.classList;\n\t\t!cl.contains(c) && cl.add(c);\n\t}\n}\n\nfunction remClass(el, c) {\n\tlet cl = el.classList;\n\tcl.contains(c) && cl.remove(c);\n}\n\nfunction setStylePx(el, name, value) {\n\tel.style[name] = value + \"px\";\n}\n\nfunction placeTag(tag, cls, targ, refEl) {\n\tlet el = doc.createElement(tag);\n\n\tif (cls != null)\n\t\taddClass(el, cls);\n\n\tif (targ != null)\n\t\ttarg.insertBefore(el, refEl);\n\n\treturn el;\n}\n\nfunction placeDiv(cls, targ) {\n\treturn placeTag(\"div\", cls, targ);\n}\n\nconst xformCache = new WeakMap();\n\nfunction elTrans(el, xPos, yPos, xMax, yMax) {\n\tlet xform = \"translate(\" + xPos + \"px,\" + yPos + \"px)\";\n\tlet xformOld = xformCache.get(el);\n\n\tif (xform != xformOld) {\n\t\tel.style.transform = xform;\n\t\txformCache.set(el, xform);\n\n\t\tif (xPos < 0 || yPos < 0 || xPos > xMax || yPos > yMax)\n\t\t\taddClass(el, OFF);\n\t\telse\n\t\t\tremClass(el, OFF);\n\t}\n}\n\nconst colorCache = new WeakMap();\n\nfunction elColor(el, background, borderColor) {\n\tlet newColor = background + borderColor;\n\tlet oldColor = colorCache.get(el);\n\n\tif (newColor != oldColor) {\n\t\tcolorCache.set(el, newColor);\n\t\tel.style.background = background;\n\t\tel.style.borderColor = borderColor;\n\t}\n}\n\nconst sizeCache = new WeakMap();\n\nfunction elSize(el, newWid, newHgt, centered) {\n\tlet newSize = newWid + \"\" + newHgt;\n\tlet oldSize = sizeCache.get(el);\n\n\tif (newSize != oldSize) {\n\t\tsizeCache.set(el, newSize);\n\t\tel.style.height = newHgt + \"px\";\n\t\tel.style.width = newWid + \"px\";\n\t\tel.style.marginLeft = centered ? -newWid/2 + \"px\" : 0;\n\t\tel.style.marginTop = centered ? -newHgt/2 + \"px\" : 0;\n\t}\n}\n\nconst evOpts = {passive: true};\nconst evOpts2 = {...evOpts, capture: true};\n\nfunction on(ev, el, cb, capt) {\n\tel.addEventListener(ev, cb, capt ? evOpts2 : evOpts);\n}\n\nfunction off(ev, el, cb, capt) {\n\tel.removeEventListener(ev, cb, evOpts);\n}\n\ndomEnv && setPxRatio();\n\n// binary search for index of closest value\nfunction closestIdx(num, arr, lo, hi) {\n\tlet mid;\n\tlo = lo || 0;\n\thi = hi || arr.length - 1;\n\tlet bitwise = hi <= 2147483647;\n\n\twhile (hi - lo > 1) {\n\t\tmid = bitwise ? (lo + hi) >> 1 : floor((lo + hi) / 2);\n\n\t\tif (arr[mid] < num)\n\t\t\tlo = mid;\n\t\telse\n\t\t\thi = mid;\n\t}\n\n\tif (num - arr[lo] <= arr[hi] - num)\n\t\treturn lo;\n\n\treturn hi;\n}\n\nfunction nonNullIdx(data, _i0, _i1, dir) {\n\tfor (let i = dir == 1 ? _i0 : _i1; i >= _i0 && i <= _i1; i += dir) {\n\t\tif (data[i] != null)\n\t\t\treturn i;\n\t}\n\n\treturn -1;\n}\n\nfunction getMinMax(data, _i0, _i1, sorted) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tif (sorted == 1) {\n\t\t_min = data[_i0];\n\t\t_max = data[_i1];\n\t}\n\telse if (sorted == -1) {\n\t\t_min = data[_i1];\n\t\t_max = data[_i0];\n\t}\n\telse {\n\t\tfor (let i = _i0; i <= _i1; i++) {\n\t\t\tlet v = data[i];\n\n\t\t\tif (v != null) {\n\t\t\t\tif (v < _min)\n\t\t\t\t\t_min = v;\n\t\t\t\tif (v > _max)\n\t\t\t\t\t_max = v;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [_min, _max];\n}\n\nfunction getMinMaxLog(data, _i0, _i1) {\n//\tconsole.log(\"getMinMax()\");\n\n\tlet _min = inf;\n\tlet _max = -inf;\n\n\tfor (let i = _i0; i <= _i1; i++) {\n\t\tlet v = data[i];\n\n\t\tif (v != null && v > 0) {\n\t\t\tif (v < _min)\n\t\t\t\t_min = v;\n\t\t\tif (v > _max)\n\t\t\t\t_max = v;\n\t\t}\n\t}\n\n\treturn [_min, _max];\n}\n\nfunction rangeLog(min, max, base, fullMags) {\n\tlet minSign = sign(min);\n\tlet maxSign = sign(max);\n\n\tif (min == max) {\n\t\tif (minSign == -1) {\n\t\t\tmin *= base;\n\t\t\tmax /= base;\n\t\t}\n\t\telse {\n\t\t\tmin /= base;\n\t\t\tmax *= base;\n\t\t}\n\t}\n\n\tlet logFn = base == 10 ? log10 : log2;\n\n\tlet growMinAbs = minSign == 1 ? floor : ceil;\n\tlet growMaxAbs = maxSign == 1 ? ceil : floor;\n\n\tlet minExp = growMinAbs(logFn(abs(min)));\n\tlet maxExp = growMaxAbs(logFn(abs(max)));\n\n\tlet minIncr = pow(base, minExp);\n\tlet maxIncr = pow(base, maxExp);\n\n\t// fix values like Math.pow(10, -5) === 0.000009999999999999999\n\tif (base == 10) {\n\t\tif (minExp < 0)\n\t\t\tminIncr = roundDec(minIncr, -minExp);\n\t\tif (maxExp < 0)\n\t\t\tmaxIncr = roundDec(maxIncr, -maxExp);\n\t}\n\n\tif (fullMags || base == 2) {\n\t\tmin = minIncr * minSign;\n\t\tmax = maxIncr * maxSign;\n\t}\n\telse {\n\t\tmin = incrRoundDn(min, minIncr);\n\t\tmax = incrRoundUp(max, maxIncr);\n\t}\n\n\treturn [min, max];\n}\n\nfunction rangeAsinh(min, max, base, fullMags) {\n\tlet minMax = rangeLog(min, max, base, fullMags);\n\n\tif (min == 0)\n\t\tminMax[0] = 0;\n\n\tif (max == 0)\n\t\tminMax[1] = 0;\n\n\treturn minMax;\n}\n\nconst rangePad = 0.1;\n\nconst autoRangePart = {\n\tmode: 3,\n\tpad: rangePad,\n};\n\nconst _eqRangePart = {\n\tpad: 0,\n\tsoft: null,\n\tmode: 0,\n};\n\nconst _eqRange = {\n\tmin: _eqRangePart,\n\tmax: _eqRangePart,\n};\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction rangeNum(_min, _max, mult, extra) {\n\tif (isObj(mult))\n\t\treturn _rangeNum(_min, _max, mult);\n\n\t_eqRangePart.pad = mult;\n\t_eqRangePart.soft = extra ? 0 : null;\n\t_eqRangePart.mode = extra ? 3 : 0;\n\n\treturn _rangeNum(_min, _max, _eqRange);\n}\n\n// nullish coalesce\nfunction ifNull(lh, rh) {\n\treturn lh == null ? rh : lh;\n}\n\n// checks if given index range in an array contains a non-null value\n// aka a range-bounded Array.some()\nfunction hasData(data, idx0, idx1) {\n\tidx0 = ifNull(idx0, 0);\n\tidx1 = ifNull(idx1, data.length - 1);\n\n\twhile (idx0 <= idx1) {\n\t\tif (data[idx0] != null)\n\t\t\treturn true;\n\t\tidx0++;\n\t}\n\n\treturn false;\n}\n\nfunction _rangeNum(_min, _max, cfg) {\n\tlet cmin = cfg.min;\n\tlet cmax = cfg.max;\n\n\tlet padMin = ifNull(cmin.pad, 0);\n\tlet padMax = ifNull(cmax.pad, 0);\n\n\tlet hardMin = ifNull(cmin.hard, -inf);\n\tlet hardMax = ifNull(cmax.hard, inf);\n\n\tlet softMin = ifNull(cmin.soft, inf);\n\tlet softMax = ifNull(cmax.soft, -inf);\n\n\tlet softMinMode = ifNull(cmin.mode, 0);\n\tlet softMaxMode = ifNull(cmax.mode, 0);\n\n\tlet delta = _max - _min;\n\tlet deltaMag = log10(delta);\n\n\tlet scalarMax = max(abs(_min), abs(_max));\n\tlet scalarMag = log10(scalarMax);\n\n\tlet scalarMagDelta = abs(scalarMag - deltaMag);\n\n\t// this handles situations like 89.7, 89.69999999999999\n\t// by assuming 0.001x deltas are precision errors\n//\tif (delta > 0 && delta < abs(_max) / 1e3)\n//\t\tdelta = 0;\n\n\t// treat data as flat if delta is less than 1e-24\n\t// or range is 11+ orders of magnitude below raw values, e.g. 99999999.99999996 - 100000000.00000004\n\tif (delta < 1e-24 || scalarMagDelta > 10) {\n\t\tdelta = 0;\n\n\t\t// if soft mode is 2 and all vals are flat at 0, avoid the 0.1 * 1e3 fallback\n\t\t// this prevents 0,0,0 from ranging to -100,100 when softMin/softMax are -1,1\n\t\tif (_min == 0 || _max == 0) {\n\t\t\tdelta = 1e-24;\n\n\t\t\tif (softMinMode == 2 && softMin != inf)\n\t\t\t\tpadMin = 0;\n\n\t\t\tif (softMaxMode == 2 && softMax != -inf)\n\t\t\t\tpadMax = 0;\n\t\t}\n\t}\n\n\tlet nonZeroDelta = delta || scalarMax || 1e3;\n\tlet mag = log10(nonZeroDelta);\n\tlet base = pow(10, floor(mag));\n\n\tlet _padMin = nonZeroDelta * (delta == 0 ? (_min == 0 ? .1 : 1) : padMin);\n\tlet _newMin = roundDec(incrRoundDn(_min - _padMin, base/10), 24);\n\tlet _softMin = _min >= softMin && (softMinMode == 1 || softMinMode == 3 && _newMin <= softMin || softMinMode == 2 && _newMin >= softMin) ? softMin : inf;\n\tlet minLim = max(hardMin, _newMin < _softMin && _min >= _softMin ? _softMin : min(_softMin, _newMin));\n\n\tlet _padMax = nonZeroDelta * (delta == 0 ? (_max == 0 ? .1 : 1) : padMax);\n\tlet _newMax = roundDec(incrRoundUp(_max + _padMax, base/10), 24);\n\tlet _softMax = _max <= softMax && (softMaxMode == 1 || softMaxMode == 3 && _newMax >= softMax || softMaxMode == 2 && _newMax <= softMax) ? softMax : -inf;\n\tlet maxLim = min(hardMax, _newMax > _softMax && _max <= _softMax ? _softMax : max(_softMax, _newMax));\n\n\tif (minLim == maxLim && minLim == 0)\n\t\tmaxLim = 100;\n\n\treturn [minLim, maxLim];\n}\n\n// alternative: https://stackoverflow.com/a/2254896\nconst numFormatter = new Intl.NumberFormat(domEnv ? nav.language : 'en-US');\nconst fmtNum = val => numFormatter.format(val);\n\nconst M = Math;\n\nconst PI = M.PI;\nconst abs = M.abs;\nconst floor = M.floor;\nconst round = M.round;\nconst ceil = M.ceil;\nconst min = M.min;\nconst max = M.max;\nconst pow = M.pow;\nconst sign = M.sign;\nconst log10 = M.log10;\nconst log2 = M.log2;\n// TODO: seems like this needs to match asinh impl if the passed v is tweaked?\nconst sinh = (v, linthresh = 1) => M.sinh(v) * linthresh;\nconst asinh = (v, linthresh = 1) => M.asinh(v / linthresh);\n\nconst inf = Infinity;\n\nfunction numIntDigits(x) {\n\treturn (log10((x ^ (x >> 31)) - (x >> 31)) | 0) + 1;\n}\n\nfunction clamp(num, _min, _max) {\n\treturn min(max(num, _min), _max);\n}\n\nfunction fnOrSelf(v) {\n\treturn typeof v == \"function\" ? v : () => v;\n}\n\nconst noop = () => {};\n\nconst retArg0 = _0 => _0;\n\nconst retArg1 = (_0, _1) => _1;\n\nconst retNull = _ => null;\n\nconst retTrue = _ => true;\n\nconst retEq = (a, b) => a == b;\n\nconst regex6 = /\\.\\d*?(?=9{6,}|0{6,})/gm;\n\n// e.g. 17999.204999999998 -> 17999.205\nconst fixFloat = val => {\n\tif (isInt(val) || fixedDec.has(val))\n\t\treturn val;\n\n\tconst str = `${val}`;\n\n\tconst match = str.match(regex6);\n\n\tif (match == null)\n\t\treturn val;\n\n\tlet len = match[0].length - 1;\n\n\t// e.g. 1.0000000000000001e-24\n\tif (str.indexOf('e-') != -1) {\n\t\tlet [num, exp] = str.split('e');\n\t\treturn +`${fixFloat(num)}e${exp}`;\n\t}\n\n\treturn roundDec(val, len);\n};\n\nfunction incrRound(num, incr) {\n\treturn fixFloat(roundDec(fixFloat(num/incr))*incr);\n}\n\nfunction incrRoundUp(num, incr) {\n\treturn fixFloat(ceil(fixFloat(num/incr))*incr);\n}\n\nfunction incrRoundDn(num, incr) {\n\treturn fixFloat(floor(fixFloat(num/incr))*incr);\n}\n\n// https://stackoverflow.com/a/48764436\n// rounds half away from zero\nfunction roundDec(val, dec = 0) {\n\tif (isInt(val))\n\t\treturn val;\n//\telse if (dec == 0)\n//\t\treturn round(val);\n\n\tlet p = 10 ** dec;\n\tlet n = (val * p) * (1 + Number.EPSILON);\n\treturn round(n) / p;\n}\n\nconst fixedDec = new Map();\n\nfunction guessDec(num) {\n\treturn ((\"\"+num).split(\".\")[1] || \"\").length;\n}\n\nfunction genIncrs(base, minExp, maxExp, mults) {\n\tlet incrs = [];\n\n\tlet multDec = mults.map(guessDec);\n\n\tfor (let exp = minExp; exp < maxExp; exp++) {\n\t\tlet expa = abs(exp);\n\t\tlet mag = roundDec(pow(base, exp), expa);\n\n\t\tfor (let i = 0; i < mults.length; i++) {\n\t\t\tlet _incr = base == 10 ? +`${mults[i]}e${exp}` : mults[i] * mag;\n\t\t\tlet dec = (exp >= 0 ? 0 : expa) + (exp >= multDec[i] ? 0 : multDec[i]);\n\t\t\tlet incr = base == 10 ? _incr : roundDec(_incr, dec);\n\t\t\tincrs.push(incr);\n\t\t\tfixedDec.set(incr, dec);\n\t\t}\n\t}\n\n\treturn incrs;\n}\n\n//export const assign = Object.assign;\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\n\nconst nullNullTuple = [null, null];\n\nconst isArr = Array.isArray;\nconst isInt = Number.isInteger;\nconst isUndef = v => v === void 0;\n\nfunction isStr(v) {\n\treturn typeof v == 'string';\n}\n\nfunction isObj(v) {\n\tlet is = false;\n\n\tif (v != null) {\n\t\tlet c = v.constructor;\n\t\tis = c == null || c == Object;\n\t}\n\n\treturn is;\n}\n\nfunction fastIsObj(v) {\n\treturn v != null && typeof v == 'object';\n}\n\nconst TypedArray = Object.getPrototypeOf(Uint8Array);\n\nconst __proto__ = \"__proto__\";\n\nfunction copy(o, _isObj = isObj) {\n\tlet out;\n\n\tif (isArr(o)) {\n\t\tlet val = o.find(v => v != null);\n\n\t\tif (isArr(val) || _isObj(val)) {\n\t\t\tout = Array(o.length);\n\t\t\tfor (let i = 0; i < o.length; i++)\n\t\t\t\tout[i] = copy(o[i], _isObj);\n\t\t}\n\t\telse\n\t\t\tout = o.slice();\n\t}\n\telse if (o instanceof TypedArray) // also (ArrayBuffer.isView(o) && !(o instanceof DataView))\n\t\tout = o.slice();\n\telse if (_isObj(o)) {\n\t\tout = {};\n\t\tfor (let k in o) {\n\t\t\tif (k != __proto__)\n\t\t\t\tout[k] = copy(o[k], _isObj);\n\t\t}\n\t}\n\telse\n\t\tout = o;\n\n\treturn out;\n}\n\nfunction assign(targ) {\n\tlet args = arguments;\n\n\tfor (let i = 1; i < args.length; i++) {\n\t\tlet src = args[i];\n\n\t\tfor (let key in src) {\n\t\t\tif (key != __proto__) {\n\t\t\t\tif (isObj(targ[key]))\n\t\t\t\t\tassign(targ[key], copy(src[key]));\n\t\t\t\telse\n\t\t\t\t\ttarg[key] = copy(src[key]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn targ;\n}\n\n// nullModes\nconst NULL_REMOVE = 0; // nulls are converted to undefined (e.g. for spanGaps: true)\nconst NULL_RETAIN = 1; // nulls are retained, with alignment artifacts set to undefined (default)\nconst NULL_EXPAND = 2; // nulls are expanded to include any adjacent alignment artifacts\n\n// sets undefined values to nulls when adjacent to existing nulls (minesweeper)\nfunction nullExpand(yVals, nullIdxs, alignedLen) {\n\tfor (let i = 0, xi, lastNullIdx = -1; i < nullIdxs.length; i++) {\n\t\tlet nullIdx = nullIdxs[i];\n\n\t\tif (nullIdx > lastNullIdx) {\n\t\t\txi = nullIdx - 1;\n\t\t\twhile (xi >= 0 && yVals[xi] == null)\n\t\t\t\tyVals[xi--] = null;\n\n\t\t\txi = nullIdx + 1;\n\t\t\twhile (xi < alignedLen && yVals[xi] == null)\n\t\t\t\tyVals[lastNullIdx = xi++] = null;\n\t\t}\n\t}\n}\n\n// nullModes is a tables-matched array indicating how to treat nulls in each series\n// output is sorted ASC on the joined field (table[0]) and duplicate join values are collapsed\nfunction join(tables, nullModes) {\n\tif (allHeadersSame(tables)) {\n\t//\tconsole.log('cheap join!');\n\n\t\tlet table = tables[0].slice();\n\n\t\tfor (let i = 1; i < tables.length; i++)\n\t\t\ttable.push(...tables[i].slice(1));\n\n\t\tif (!isAsc(table[0]))\n\t\t\ttable = sortCols(table);\n\n\t\treturn table;\n\t}\n\n\tlet xVals = new Set();\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\t\tlet len = xs.length;\n\n\t\tfor (let i = 0; i < len; i++)\n\t\t\txVals.add(xs[i]);\n\t}\n\n\tlet data = [Array.from(xVals).sort((a, b) => a - b)];\n\n\tlet alignedLen = data[0].length;\n\n\tlet xIdxs = new Map();\n\n\tfor (let i = 0; i < alignedLen; i++)\n\t\txIdxs.set(data[0][i], i);\n\n\tfor (let ti = 0; ti < tables.length; ti++) {\n\t\tlet t = tables[ti];\n\t\tlet xs = t[0];\n\n\t\tfor (let si = 1; si < t.length; si++) {\n\t\t\tlet ys = t[si];\n\n\t\t\tlet yVals = Array(alignedLen).fill(undefined);\n\n\t\t\tlet nullMode = nullModes ? nullModes[ti][si] : NULL_RETAIN;\n\n\t\t\tlet nullIdxs = [];\n\n\t\t\tfor (let i = 0; i < ys.length; i++) {\n\t\t\t\tlet yVal = ys[i];\n\t\t\t\tlet alignedIdx = xIdxs.get(xs[i]);\n\n\t\t\t\tif (yVal === null) {\n\t\t\t\t\tif (nullMode != NULL_REMOVE) {\n\t\t\t\t\t\tyVals[alignedIdx] = yVal;\n\n\t\t\t\t\t\tif (nullMode == NULL_EXPAND)\n\t\t\t\t\t\t\tnullIdxs.push(alignedIdx);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tyVals[alignedIdx] = yVal;\n\t\t\t}\n\n\t\t\tnullExpand(yVals, nullIdxs, alignedLen);\n\n\t\t\tdata.push(yVals);\n\t\t}\n\t}\n\n\treturn data;\n}\n\nconst microTask = typeof queueMicrotask == \"undefined\" ? fn => Promise.resolve().then(fn) : queueMicrotask;\n\n// TODO: https://github.com/dy/sort-ids (~2x faster for 1e5+ arrays)\nfunction sortCols(table) {\n\tlet head = table[0];\n\tlet rlen = head.length;\n\n\tlet idxs = Array(rlen);\n\tfor (let i = 0; i < idxs.length; i++)\n\t\tidxs[i] = i;\n\n\tidxs.sort((i0, i1) => head[i0] - head[i1]);\n\n\tlet table2 = [];\n\tfor (let i = 0; i < table.length; i++) {\n\t\tlet row = table[i];\n\t\tlet row2 = Array(rlen);\n\n\t\tfor (let j = 0; j < rlen; j++)\n\t\t\trow2[j] = row[idxs[j]];\n\n\t\ttable2.push(row2);\n\t}\n\n\treturn table2;\n}\n\n// test if we can do cheap join (all join fields same)\nfunction allHeadersSame(tables) {\n\tlet vals0 = tables[0][0];\n\tlet len0 = vals0.length;\n\n\tfor (let i = 1; i < tables.length; i++) {\n\t\tlet vals1 = tables[i][0];\n\n\t\tif (vals1.length != len0)\n\t\t\treturn false;\n\n\t\tif (vals1 != vals0) {\n\t\t\tfor (let j = 0; j < len0; j++) {\n\t\t\t\tif (vals1[j] != vals0[j])\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction isAsc(vals, samples = 100) {\n\tconst len = vals.length;\n\n\t// empty or single value\n\tif (len <= 1)\n\t\treturn true;\n\n\t// skip leading & trailing nullish\n\tlet firstIdx = 0;\n\tlet lastIdx = len - 1;\n\n\twhile (firstIdx <= lastIdx && vals[firstIdx] == null)\n\t\tfirstIdx++;\n\n\twhile (lastIdx >= firstIdx && vals[lastIdx] == null)\n\t\tlastIdx--;\n\n\t// all nullish or one value surrounded by nullish\n\tif (lastIdx <= firstIdx)\n\t\treturn true;\n\n\tconst stride = max(1, floor((lastIdx - firstIdx + 1) / samples));\n\n\tfor (let prevVal = vals[firstIdx], i = firstIdx + stride; i <= lastIdx; i += stride) {\n\t\tconst v = vals[i];\n\n\t\tif (v != null) {\n\t\t\tif (v <= prevVal)\n\t\t\t\treturn false;\n\n\t\t\tprevVal = v;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nconst months = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\",\n];\n\nconst days = [\n\t\"Sunday\",\n\t\"Monday\",\n\t\"Tuesday\",\n\t\"Wednesday\",\n\t\"Thursday\",\n\t\"Friday\",\n\t\"Saturday\",\n];\n\nfunction slice3(str) {\n\treturn str.slice(0, 3);\n}\n\nconst days3 = days.map(slice3);\n\nconst months3 = months.map(slice3);\n\nconst engNames = {\n\tMMMM: months,\n\tMMM: months3,\n\tWWWW: days,\n\tWWW: days3,\n};\n\nfunction zeroPad2(int) {\n\treturn (int < 10 ? '0' : '') + int;\n}\n\nfunction zeroPad3(int) {\n\treturn (int < 10 ? '00' : int < 100 ? '0' : '') + int;\n}\n\n/*\nfunction suffix(int) {\n\tlet mod10 = int % 10;\n\n\treturn int + (\n\t\tmod10 == 1 && int != 11 ? \"st\" :\n\t\tmod10 == 2 && int != 12 ? \"nd\" :\n\t\tmod10 == 3 && int != 13 ? \"rd\" : \"th\"\n\t);\n}\n*/\n\nconst subs = {\n\t// 2019\n\tYYYY:\td => d.getFullYear(),\n\t// 19\n\tYY:\t\td => (d.getFullYear()+'').slice(2),\n\t// July\n\tMMMM:\t(d, names) => names.MMMM[d.getMonth()],\n\t// Jul\n\tMMM:\t(d, names) => names.MMM[d.getMonth()],\n\t// 07\n\tMM:\t\td => zeroPad2(d.getMonth()+1),\n\t// 7\n\tM:\t\td => d.getMonth()+1,\n\t// 09\n\tDD:\t\td => zeroPad2(d.getDate()),\n\t// 9\n\tD:\t\td => d.getDate(),\n\t// Monday\n\tWWWW:\t(d, names) => names.WWWW[d.getDay()],\n\t// Mon\n\tWWW:\t(d, names) => names.WWW[d.getDay()],\n\t// 03\n\tHH:\t\td => zeroPad2(d.getHours()),\n\t// 3\n\tH:\t\td => d.getHours(),\n\t// 9 (12hr, unpadded)\n\th:\t\td => {let h = d.getHours(); return h == 0 ? 12 : h > 12 ? h - 12 : h;},\n\t// AM\n\tAA:\t\td => d.getHours() >= 12 ? 'PM' : 'AM',\n\t// am\n\taa:\t\td => d.getHours() >= 12 ? 'pm' : 'am',\n\t// a\n\ta:\t\td => d.getHours() >= 12 ? 'p' : 'a',\n\t// 09\n\tmm:\t\td => zeroPad2(d.getMinutes()),\n\t// 9\n\tm:\t\td => d.getMinutes(),\n\t// 09\n\tss:\t\td => zeroPad2(d.getSeconds()),\n\t// 9\n\ts:\t\td => d.getSeconds(),\n\t// 374\n\tfff:\td => zeroPad3(d.getMilliseconds()),\n};\n\nfunction fmtDate(tpl, names) {\n\tnames = names || engNames;\n\tlet parts = [];\n\n\tlet R = /\\{([a-z]+)\\}|[^{]+/gi, m;\n\n\twhile (m = R.exec(tpl))\n\t\tparts.push(m[0][0] == '{' ? subs[m[1]] : m[0]);\n\n\treturn d => {\n\t\tlet out = '';\n\n\t\tfor (let i = 0; i < parts.length; i++)\n\t\t\tout += typeof parts[i] == \"string\" ? parts[i] : parts[i](d, names);\n\n\t\treturn out;\n\t}\n}\n\nconst localTz = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n// https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone/53652131#53652131\nfunction tzDate(date, tz) {\n\tlet date2;\n\n\t// perf optimization\n\tif (tz == 'UTC' || tz == 'Etc/UTC')\n\t\tdate2 = new Date(+date + date.getTimezoneOffset() * 6e4);\n\telse if (tz == localTz)\n\t\tdate2 = date;\n\telse {\n\t\tdate2 = new Date(date.toLocaleString('en-US', {timeZone: tz}));\n\t\tdate2.setMilliseconds(date.getMilliseconds());\n\t}\n\n\treturn date2;\n}\n\n//export const series = [];\n\n// default formatters:\n\nconst onlyWhole = v => v % 1 == 0;\n\nconst allMults = [1,2,2.5,5];\n\n// ...0.01, 0.02, 0.025, 0.05, 0.1, 0.2, 0.25, 0.5\nconst decIncrs = genIncrs(10, -32, 0, allMults);\n\n// 1, 2, 2.5, 5, 10, 20, 25, 50...\nconst oneIncrs = genIncrs(10, 0, 32, allMults);\n\n// 1, 2, 5, 10, 20, 25, 50...\nconst wholeIncrs = oneIncrs.filter(onlyWhole);\n\nconst numIncrs = decIncrs.concat(oneIncrs);\n\nconst NL = \"\\n\";\n\nconst yyyy = \"{YYYY}\";\nconst NLyyyy = NL + yyyy;\nconst md = \"{M}/{D}\";\nconst NLmd = NL + md;\nconst NLmdyy = NLmd + \"/{YY}\";\n\nconst aa = \"{aa}\";\nconst hmm = \"{h}:{mm}\";\nconst hmmaa = hmm + aa;\nconst NLhmmaa = NL + hmmaa;\nconst ss = \":{ss}\";\n\nconst _ = null;\n\nfunction genTimeStuffs(ms) {\n\tlet\ts = ms * 1e3,\n\t\tm = s * 60,\n\t\th = m * 60,\n\t\td = h * 24,\n\t\tmo = d * 30,\n\t\ty = d * 365;\n\n\t// min of 1e-3 prevents setting a temporal x ticks too small since Date objects cannot advance ticks smaller than 1ms\n\tlet subSecIncrs = ms == 1 ? genIncrs(10, 0, 3, allMults).filter(onlyWhole) : genIncrs(10, -3, 0, allMults);\n\n\tlet timeIncrs = subSecIncrs.concat([\n\t\t// minute divisors (# of secs)\n\t\ts,\n\t\ts * 5,\n\t\ts * 10,\n\t\ts * 15,\n\t\ts * 30,\n\t\t// hour divisors (# of mins)\n\t\tm,\n\t\tm * 5,\n\t\tm * 10,\n\t\tm * 15,\n\t\tm * 30,\n\t\t// day divisors (# of hrs)\n\t\th,\n\t\th * 2,\n\t\th * 3,\n\t\th * 4,\n\t\th * 6,\n\t\th * 8,\n\t\th * 12,\n\t\t// month divisors TODO: need more?\n\t\td,\n\t\td * 2,\n\t\td * 3,\n\t\td * 4,\n\t\td * 5,\n\t\td * 6,\n\t\td * 7,\n\t\td * 8,\n\t\td * 9,\n\t\td * 10,\n\t\td * 15,\n\t\t// year divisors (# months, approx)\n\t\tmo,\n\t\tmo * 2,\n\t\tmo * 3,\n\t\tmo * 4,\n\t\tmo * 6,\n\t\t// century divisors\n\t\ty,\n\t\ty * 2,\n\t\ty * 5,\n\t\ty * 10,\n\t\ty * 25,\n\t\ty * 50,\n\t\ty * 100,\n\t]);\n\n\t// [0]: minimum num secs in the tick incr\n\t// [1]: default tick format\n\t// [2-7]: rollover tick formats\n\t// [8]: mode: 0: replace [1] -> [2-7], 1: concat [1] + [2-7]\n\tconst _timeAxisStamps = [\n\t// tick incr default year month day hour min sec mode\n\t\t[y, yyyy, _, _, _, _, _, _, 1],\n\t\t[d * 28, \"{MMM}\", NLyyyy, _, _, _, _, _, 1],\n\t\t[d, md, NLyyyy, _, _, _, _, _, 1],\n\t\t[h, \"{h}\" + aa, NLmdyy, _, NLmd, _, _, _, 1],\n\t\t[m, hmmaa, NLmdyy, _, NLmd, _, _, _, 1],\n\t\t[s, ss, NLmdyy + \" \" + hmmaa, _, NLmd + \" \" + hmmaa, _, NLhmmaa, _, 1],\n\t\t[ms, ss + \".{fff}\", NLmdyy + \" \" + hmmaa, _, NLmd + \" \" + hmmaa, _, NLhmmaa, _, 1],\n\t];\n\n\t// the ensures that axis ticks, values & grid are aligned to logical temporal breakpoints and not an arbitrary timestamp\n\t// https://www.timeanddate.com/time/dst/\n\t// https://www.timeanddate.com/time/dst/2019.html\n\t// https://www.epochconverter.com/timezones\n\tfunction timeAxisSplits(tzDate) {\n\t\treturn (self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace) => {\n\t\t\tlet splits = [];\n\t\t\tlet isYr = foundIncr >= y;\n\t\t\tlet isMo = foundIncr >= mo && foundIncr < y;\n\n\t\t\t// get the timezone-adjusted date\n\t\t\tlet minDate = tzDate(scaleMin);\n\t\t\tlet minDateTs = roundDec(minDate * ms, 3);\n\n\t\t\t// get ts of 12am (this lands us at or before the original scaleMin)\n\t\t\tlet minMin = mkDate(minDate.getFullYear(), isYr ? 0 : minDate.getMonth(), isMo || isYr ? 1 : minDate.getDate());\n\t\t\tlet minMinTs = roundDec(minMin * ms, 3);\n\n\t\t\tif (isMo || isYr) {\n\t\t\t\tlet moIncr = isMo ? foundIncr / mo : 0;\n\t\t\t\tlet yrIncr = isYr ? foundIncr / y : 0;\n\t\t\t//\tlet tzOffset = scaleMin - minDateTs;\t\t// needed?\n\t\t\t\tlet split = minDateTs == minMinTs ? minDateTs : roundDec(mkDate(minMin.getFullYear() + yrIncr, minMin.getMonth() + moIncr, 1) * ms, 3);\n\t\t\t\tlet splitDate = new Date(round(split / ms));\n\t\t\t\tlet baseYear = splitDate.getFullYear();\n\t\t\t\tlet baseMonth = splitDate.getMonth();\n\n\t\t\t\tfor (let i = 0; split <= scaleMax; i++) {\n\t\t\t\t\tlet next = mkDate(baseYear + yrIncr * i, baseMonth + moIncr * i, 1);\n\t\t\t\t\tlet offs = next - tzDate(roundDec(next * ms, 3));\n\n\t\t\t\t\tsplit = roundDec((+next + offs) * ms, 3);\n\n\t\t\t\t\tif (split <= scaleMax)\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet incr0 = foundIncr >= d ? d : foundIncr;\n\t\t\t\tlet tzOffset = floor(scaleMin) - floor(minDateTs);\n\t\t\t\tlet split = minMinTs + tzOffset + incrRoundUp(minDateTs - minMinTs, incr0);\n\t\t\t\tsplits.push(split);\n\n\t\t\t\tlet date0 = tzDate(split);\n\n\t\t\t\tlet prevHour = date0.getHours() + (date0.getMinutes() / m) + (date0.getSeconds() / h);\n\t\t\t\tlet incrHours = foundIncr / h;\n\n\t\t\t\tlet minSpace = self.axes[axisIdx]._space;\n\t\t\t\tlet pctSpace = foundSpace / minSpace;\n\n\t\t\t\twhile (1) {\n\t\t\t\t\tsplit = roundDec(split + foundIncr, ms == 1 ? 0 : 3);\n\n\t\t\t\t\tif (split > scaleMax)\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tif (incrHours > 1) {\n\t\t\t\t\t\tlet expectedHour = floor(roundDec(prevHour + incrHours, 6)) % 24;\n\t\t\t\t\t\tlet splitDate = tzDate(split);\n\t\t\t\t\t\tlet actualHour = splitDate.getHours();\n\n\t\t\t\t\t\tlet dstShift = actualHour - expectedHour;\n\n\t\t\t\t\t\tif (dstShift > 1)\n\t\t\t\t\t\t\tdstShift = -1;\n\n\t\t\t\t\t\tsplit -= dstShift * h;\n\n\t\t\t\t\t\tprevHour = (prevHour + incrHours) % 24;\n\n\t\t\t\t\t\t// add a tick only if it's further than 70% of the min allowed label spacing\n\t\t\t\t\t\tlet prevSplit = splits[splits.length - 1];\n\t\t\t\t\t\tlet pctIncr = roundDec((split - prevSplit) / foundIncr, 3);\n\n\t\t\t\t\t\tif (pctIncr * pctSpace >= .7)\n\t\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tsplits.push(split);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn splits;\n\t\t}\n\t}\n\n\treturn [\n\t\ttimeIncrs,\n\t\t_timeAxisStamps,\n\t\ttimeAxisSplits,\n\t];\n}\n\nconst [ timeIncrsMs, _timeAxisStampsMs, timeAxisSplitsMs ] = genTimeStuffs(1);\nconst [ timeIncrsS, _timeAxisStampsS, timeAxisSplitsS ] = genTimeStuffs(1e-3);\n\n// base 2\ngenIncrs(2, -53, 53, [1]);\n\n/*\nconsole.log({\n\tdecIncrs,\n\toneIncrs,\n\twholeIncrs,\n\tnumIncrs,\n\ttimeIncrs,\n\tfixedDec,\n});\n*/\n\nfunction timeAxisStamps(stampCfg, fmtDate) {\n\treturn stampCfg.map(s => s.map((v, i) =>\n\t\ti == 0 || i == 8 || v == null ? v : fmtDate(i == 1 || s[8] == 0 ? v : s[1] + v)\n\t));\n}\n\n// TODO: will need to accept spaces[] and pull incr into the loop when grid will be non-uniform, eg for log scales.\n// currently we ignore this for months since they're *nearly* uniform and the added complexity is not worth it\nfunction timeAxisVals(tzDate, stamps) {\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => {\n\t\tlet s = stamps.find(s => foundIncr >= s[0]) || stamps[stamps.length - 1];\n\n\t\t// these track boundaries when a full label is needed again\n\t\tlet prevYear;\n\t\tlet prevMnth;\n\t\tlet prevDate;\n\t\tlet prevHour;\n\t\tlet prevMins;\n\t\tlet prevSecs;\n\n\t\treturn splits.map(split => {\n\t\t\tlet date = tzDate(split);\n\n\t\t\tlet newYear = date.getFullYear();\n\t\t\tlet newMnth = date.getMonth();\n\t\t\tlet newDate = date.getDate();\n\t\t\tlet newHour = date.getHours();\n\t\t\tlet newMins = date.getMinutes();\n\t\t\tlet newSecs = date.getSeconds();\n\n\t\t\tlet stamp = (\n\t\t\t\tnewYear != prevYear && s[2] ||\n\t\t\t\tnewMnth != prevMnth && s[3] ||\n\t\t\t\tnewDate != prevDate && s[4] ||\n\t\t\t\tnewHour != prevHour && s[5] ||\n\t\t\t\tnewMins != prevMins && s[6] ||\n\t\t\t\tnewSecs != prevSecs && s[7] ||\n\t\t\t\t s[1]\n\t\t\t);\n\n\t\t\tprevYear = newYear;\n\t\t\tprevMnth = newMnth;\n\t\t\tprevDate = newDate;\n\t\t\tprevHour = newHour;\n\t\t\tprevMins = newMins;\n\t\t\tprevSecs = newSecs;\n\n\t\t\treturn stamp(date);\n\t\t});\n\t}\n}\n\n// for when axis.values is defined as a static fmtDate template string\nfunction timeAxisVal(tzDate, dateTpl) {\n\tlet stamp = fmtDate(dateTpl);\n\treturn (self, splits, axisIdx, foundSpace, foundIncr) => splits.map(split => stamp(tzDate(split)));\n}\n\nfunction mkDate(y, m, d) {\n\treturn new Date(y, m, d);\n}\n\nfunction timeSeriesStamp(stampCfg, fmtDate) {\n\treturn fmtDate(stampCfg);\n}\nconst _timeSeriesStamp = '{YYYY}-{MM}-{DD} {h}:{mm}{aa}';\n\nfunction timeSeriesVal(tzDate, stamp) {\n\treturn (self, val, seriesIdx, dataIdx) => dataIdx == null ? LEGEND_DISP : stamp(tzDate(val));\n}\n\nfunction legendStroke(self, seriesIdx) {\n\tlet s = self.series[seriesIdx];\n\treturn s.width ? s.stroke(self, seriesIdx) : s.points.width ? s.points.stroke(self, seriesIdx) : null;\n}\n\nfunction legendFill(self, seriesIdx) {\n\treturn self.series[seriesIdx].fill(self, seriesIdx);\n}\n\nconst legendOpts = {\n\tshow: true,\n\tlive: true,\n\tisolate: false,\n\tmount: noop,\n\tmarkers: {\n\t\tshow: true,\n\t\twidth: 2,\n\t\tstroke: legendStroke,\n\t\tfill: legendFill,\n\t\tdash: \"solid\",\n\t},\n\tidx: null,\n\tidxs: null,\n\tvalues: [],\n};\n\nfunction cursorPointShow(self, si) {\n\tlet o = self.cursor.points;\n\n\tlet pt = placeDiv();\n\n\tlet size = o.size(self, si);\n\tsetStylePx(pt, WIDTH, size);\n\tsetStylePx(pt, HEIGHT, size);\n\n\tlet mar = size / -2;\n\tsetStylePx(pt, \"marginLeft\", mar);\n\tsetStylePx(pt, \"marginTop\", mar);\n\n\tlet width = o.width(self, si, size);\n\twidth && setStylePx(pt, \"borderWidth\", width);\n\n\treturn pt;\n}\n\nfunction cursorPointFill(self, si) {\n\tlet sp = self.series[si].points;\n\treturn sp._fill || sp._stroke;\n}\n\nfunction cursorPointStroke(self, si) {\n\tlet sp = self.series[si].points;\n\treturn sp._stroke || sp._fill;\n}\n\nfunction cursorPointSize(self, si) {\n\tlet sp = self.series[si].points;\n\treturn sp.size;\n}\n\nconst moveTuple = [0,0];\n\nfunction cursorMove(self, mouseLeft1, mouseTop1) {\n\tmoveTuple[0] = mouseLeft1;\n\tmoveTuple[1] = mouseTop1;\n\treturn moveTuple;\n}\n\nfunction filtBtn0(self, targ, handle, onlyTarg = true) {\n\treturn e => {\n\t\te.button == 0 && (!onlyTarg || e.target == targ) && handle(e);\n\t};\n}\n\nfunction filtTarg(self, targ, handle, onlyTarg = true) {\n\treturn e => {\n\t\t(!onlyTarg || e.target == targ) && handle(e);\n\t};\n}\n\nconst cursorOpts = {\n\tshow: true,\n\tx: true,\n\ty: true,\n\tlock: false,\n\tmove: cursorMove,\n\tpoints: {\n\t\tone: false,\n\t\tshow: cursorPointShow,\n\t\tsize: cursorPointSize,\n\t\twidth: 0,\n\t\tstroke: cursorPointStroke,\n\t\tfill: cursorPointFill,\n\t},\n\n\tbind: {\n\t\tmousedown: filtBtn0,\n\t\tmouseup: filtBtn0,\n\t\tclick: filtBtn0, // legend clicks, not .u-over clicks\n\t\tdblclick: filtBtn0,\n\n\t\tmousemove: filtTarg,\n\t\tmouseleave: filtTarg,\n\t\tmouseenter: filtTarg,\n\t},\n\n\tdrag: {\n\t\tsetScale: true,\n\t\tx: true,\n\t\ty: false,\n\t\tdist: 0,\n\t\tuni: null,\n\t\tclick: (self, e) => {\n\t\t//\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\te.stopImmediatePropagation();\n\t\t},\n\t\t_x: false,\n\t\t_y: false,\n\t},\n\n\tfocus: {\n\t\tdist: (self, seriesIdx, dataIdx, valPos, curPos) => valPos - curPos,\n\t\tprox: -1,\n\t\tbias: 0,\n\t},\n\n\thover: {\n\t\tskip: [void 0],\n\t\tprox: null,\n\t\tbias: 0,\n\t},\n\n\tleft: -10,\n\ttop: -10,\n\tidx: null,\n\tdataIdx: null,\n\tidxs: null,\n\n\tevent: null,\n};\n\nconst axisLines = {\n\tshow: true,\n\tstroke: \"rgba(0,0,0,0.07)\",\n\twidth: 2,\n//\tdash: [],\n};\n\nconst grid = assign({}, axisLines, {\n\tfilter: retArg1,\n});\n\nconst ticks = assign({}, grid, {\n\tsize: 10,\n});\n\nconst border = assign({}, axisLines, {\n\tshow: false,\n});\n\nconst font = '12px system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"';\nconst labelFont = \"bold \" + font;\nconst lineGap = 1.5;\t// font-size multiplier\n\nconst xAxisOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tstroke: hexBlack,\n\tspace: 50,\n\tgap: 5,\n\tsize: 50,\n\tlabelGap: 0,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 2,\n//\tclass: \"x-vals\",\n//\tincrs: timeIncrs,\n//\tvalues: timeVals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tborder,\n\tfont,\n\tlineGap,\n\trotate: 0,\n};\n\nconst numSeriesLabel = \"Value\";\nconst timeSeriesLabel = \"Time\";\n\nconst xSeriesOpts = {\n\tshow: true,\n\tscale: \"x\",\n\tauto: false,\n\tsorted: 1,\n//\tlabel: \"Time\",\n//\tvalue: v => stamp(new Date(v * 1e3)),\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n};\n\nfunction numAxisVals(self, splits, axisIdx, foundSpace, foundIncr) {\n\treturn splits.map(v => v == null ? \"\" : fmtNum(v));\n}\n\nfunction numAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet splits = [];\n\n\tlet numDec = fixedDec.get(foundIncr) || 0;\n\n\tscaleMin = forceMin ? scaleMin : roundDec(incrRoundUp(scaleMin, foundIncr), numDec);\n\n\tfor (let val = scaleMin; val <= scaleMax; val = roundDec(val + foundIncr, numDec))\n\t\tsplits.push(Object.is(val, -0) ? 0 : val);\t\t// coalesces -0\n\n\treturn splits;\n}\n\n// this doesnt work for sin, which needs to come off from 0 independently in pos and neg dirs\nfunction logAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tconst splits = [];\n\n\tconst logBase = self.scales[self.axes[axisIdx].scale].log;\n\n\tconst logFn = logBase == 10 ? log10 : log2;\n\n\tconst exp = floor(logFn(scaleMin));\n\n\tfoundIncr = pow(logBase, exp);\n\n\t// boo: 10 ** -24 === 1.0000000000000001e-24\n\t// this grabs the proper 1e-24 one\n\tif (logBase == 10)\n\t\tfoundIncr = numIncrs[closestIdx(foundIncr, numIncrs)];\n\n\tlet split = scaleMin;\n\tlet nextMagIncr = foundIncr * logBase;\n\n\tif (logBase == 10)\n\t\tnextMagIncr = numIncrs[closestIdx(nextMagIncr, numIncrs)];\n\n\tdo {\n\t\tsplits.push(split);\n\t\tsplit = split + foundIncr;\n\n\t\tif (logBase == 10 && !fixedDec.has(split))\n\t\t\tsplit = roundDec(split, fixedDec.get(foundIncr));\n\n\t\tif (split >= nextMagIncr) {\n\t\t\tfoundIncr = split;\n\t\t\tnextMagIncr = foundIncr * logBase;\n\n\t\t\tif (logBase == 10)\n\t\t\t\tnextMagIncr = numIncrs[closestIdx(nextMagIncr, numIncrs)];\n\t\t}\n\t} while (split <= scaleMax);\n\n\treturn splits;\n}\n\nfunction asinhAxisSplits(self, axisIdx, scaleMin, scaleMax, foundIncr, foundSpace, forceMin) {\n\tlet sc = self.scales[self.axes[axisIdx].scale];\n\n\tlet linthresh = sc.asinh;\n\n\tlet posSplits = scaleMax > linthresh ? logAxisSplits(self, axisIdx, max(linthresh, scaleMin), scaleMax, foundIncr) : [linthresh];\n\tlet zero = scaleMax >= 0 && scaleMin <= 0 ? [0] : [];\n\tlet negSplits = scaleMin < -linthresh ? logAxisSplits(self, axisIdx, max(linthresh, -scaleMax), -scaleMin, foundIncr): [linthresh];\n\n\treturn negSplits.reverse().map(v => -v).concat(zero, posSplits);\n}\n\nconst RE_ALL = /./;\nconst RE_12357 = /[12357]/;\nconst RE_125 = /[125]/;\nconst RE_1 = /1/;\n\nconst _filt = (splits, distr, re, keepMod) => splits.map((v, i) => ((distr == 4 && v == 0) || i % keepMod == 0 && re.test(v.toExponential()[v < 0 ? 1 : 0])) ? v : null);\n\nfunction log10AxisValsFilt(self, splits, axisIdx, foundSpace, foundIncr) {\n\tlet axis = self.axes[axisIdx];\n\tlet scaleKey = axis.scale;\n\tlet sc = self.scales[scaleKey];\n\n//\tif (sc.distr == 3 && sc.log == 2)\n//\t\treturn splits;\n\n\tlet valToPos = self.valToPos;\n\n\tlet minSpace = axis._space;\n\n\tlet _10 = valToPos(10, scaleKey);\n\n\tlet re = (\n\t\tvalToPos(9, scaleKey) - _10 >= minSpace ? RE_ALL :\n\t\tvalToPos(7, scaleKey) - _10 >= minSpace ? RE_12357 :\n\t\tvalToPos(5, scaleKey) - _10 >= minSpace ? RE_125 :\n\t\tRE_1\n\t);\n\n\tif (re == RE_1) {\n\t\tlet magSpace = abs(valToPos(1, scaleKey) - _10);\n\n\t\tif (magSpace < minSpace)\n\t\t\treturn _filt(splits.slice().reverse(), sc.distr, re, ceil(minSpace / magSpace)).reverse(); // max->min skip\n\t}\n\n\treturn _filt(splits, sc.distr, re, 1);\n}\n\nfunction log2AxisValsFilt(self, splits, axisIdx, foundSpace, foundIncr) {\n\tlet axis = self.axes[axisIdx];\n\tlet scaleKey = axis.scale;\n\tlet minSpace = axis._space;\n\tlet valToPos = self.valToPos;\n\n\tlet magSpace = abs(valToPos(1, scaleKey) - valToPos(2, scaleKey));\n\n\tif (magSpace < minSpace)\n\t\treturn _filt(splits.slice().reverse(), 3, RE_ALL, ceil(minSpace / magSpace)).reverse(); // max->min skip\n\n\treturn splits;\n}\n\nfunction numSeriesVal(self, val, seriesIdx, dataIdx) {\n\treturn dataIdx == null ? LEGEND_DISP : val == null ? \"\" : fmtNum(val);\n}\n\nconst yAxisOpts = {\n\tshow: true,\n\tscale: \"y\",\n\tstroke: hexBlack,\n\tspace: 30,\n\tgap: 5,\n\tsize: 50,\n\tlabelGap: 0,\n\tlabelSize: 30,\n\tlabelFont,\n\tside: 3,\n//\tclass: \"y-vals\",\n//\tincrs: numIncrs,\n//\tvalues: (vals, space) => vals,\n//\tfilter: retArg1,\n\tgrid,\n\tticks,\n\tborder,\n\tfont,\n\tlineGap,\n\trotate: 0,\n};\n\n// takes stroke width\nfunction ptDia(width, mult) {\n\tlet dia = 3 + (width || 1) * 2;\n\treturn roundDec(dia * mult, 3);\n}\n\nfunction seriesPointsShow(self, si) {\n\tlet { scale, idxs } = self.series[0];\n\tlet xData = self._data[0];\n\tlet p0 = self.valToPos(xData[idxs[0]], scale, true);\n\tlet p1 = self.valToPos(xData[idxs[1]], scale, true);\n\tlet dim = abs(p1 - p0);\n\n\tlet s = self.series[si];\n//\tconst dia = ptDia(s.width, pxRatio);\n\tlet maxPts = dim / (s.points.space * pxRatio);\n\treturn idxs[1] - idxs[0] <= maxPts;\n}\n\nconst facet = {\n\tscale: null,\n\tauto: true,\n\tsorted: 0,\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n};\n\nconst gaps = (self, seriesIdx, idx0, idx1, nullGaps) => nullGaps;\n\nconst xySeriesOpts = {\n\tshow: true,\n\tauto: true,\n\tsorted: 0,\n\tgaps,\n\talpha: 1,\n\tfacets: [\n\t\tassign({}, facet, {scale: 'x'}),\n\t\tassign({}, facet, {scale: 'y'}),\n\t],\n};\n\nconst ySeriesOpts = {\n\tscale: \"y\",\n\tauto: true,\n\tsorted: 0,\n\tshow: true,\n\tspanGaps: false,\n\tgaps,\n\talpha: 1,\n\tpoints: {\n\t\tshow: seriesPointsShow,\n\t\tfilter: null,\n\t// paths:\n\t//\tstroke: \"#000\",\n\t//\tfill: \"#fff\",\n\t//\twidth: 1,\n\t//\tsize: 10,\n\t},\n//\tlabel: \"Value\",\n//\tvalue: v => v,\n\tvalues: null,\n\n\t// internal caches\n\tmin: inf,\n\tmax: -inf,\n\tidxs: [],\n\n\tpath: null,\n\tclip: null,\n};\n\nfunction clampScale(self, val, scaleMin, scaleMax, scaleKey) {\n/*\n\tif (val < 0) {\n\t\tlet cssHgt = self.bbox.height / pxRatio;\n\t\tlet absPos = self.valToPos(abs(val), scaleKey);\n\t\tlet fromBtm = cssHgt - absPos;\n\t\treturn self.posToVal(cssHgt + fromBtm, scaleKey);\n\t}\n*/\n\treturn scaleMin / 10;\n}\n\nconst xScaleOpts = {\n\ttime: FEAT_TIME,\n\tauto: true,\n\tdistr: 1,\n\tlog: 10,\n\tasinh: 1,\n\tmin: null,\n\tmax: null,\n\tdir: 1,\n\tori: 0,\n};\n\nconst yScaleOpts = assign({}, xScaleOpts, {\n\ttime: false,\n\tori: 1,\n});\n\nconst syncs = {};\n\nfunction _sync(key, opts) {\n\tlet s = syncs[key];\n\n\tif (!s) {\n\t\ts = {\n\t\t\tkey,\n\t\t\tplots: [],\n\t\t\tsub(plot) {\n\t\t\t\ts.plots.push(plot);\n\t\t\t},\n\t\t\tunsub(plot) {\n\t\t\t\ts.plots = s.plots.filter(c => c != plot);\n\t\t\t},\n\t\t\tpub(type, self, x, y, w, h, i) {\n\t\t\t\tfor (let j = 0; j < s.plots.length; j++)\n\t\t\t\t\ts.plots[j] != self && s.plots[j].pub(type, self, x, y, w, h, i);\n\t\t\t},\n\t\t};\n\n\t\tif (key != null)\n\t\t\tsyncs[key] = s;\n\t}\n\n\treturn s;\n}\n\nconst BAND_CLIP_FILL = 1 << 0;\nconst BAND_CLIP_STROKE = 1 << 1;\n\nfunction orient(u, seriesIdx, cb) {\n\tconst mode = u.mode;\n\tconst series = u.series[seriesIdx];\n\tconst data = mode == 2 ? u._data[seriesIdx] : u._data;\n\tconst scales = u.scales;\n\tconst bbox = u.bbox;\n\n\tlet dx = data[0],\n\t\tdy = mode == 2 ? data[1] : data[seriesIdx],\n\t\tsx = mode == 2 ? scales[series.facets[0].scale] : scales[u.series[0].scale],\n\t\tsy = mode == 2 ? scales[series.facets[1].scale] : scales[series.scale],\n\t\tl = bbox.left,\n\t\tt = bbox.top,\n\t\tw = bbox.width,\n\t\th = bbox.height,\n\t\tH = u.valToPosH,\n\t\tV = u.valToPosV;\n\n\treturn (sx.ori == 0\n\t\t? cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tH,\n\t\t\tV,\n\t\t\tl,\n\t\t\tt,\n\t\t\tw,\n\t\t\th,\n\t\t\tmoveToH,\n\t\t\tlineToH,\n\t\t\trectH,\n\t\t\tarcH,\n\t\t\tbezierCurveToH,\n\t\t)\n\t\t: cb(\n\t\t\tseries,\n\t\t\tdx,\n\t\t\tdy,\n\t\t\tsx,\n\t\t\tsy,\n\t\t\tV,\n\t\t\tH,\n\t\t\tt,\n\t\t\tl,\n\t\t\th,\n\t\t\tw,\n\t\t\tmoveToV,\n\t\t\tlineToV,\n\t\t\trectV,\n\t\t\tarcV,\n\t\t\tbezierCurveToV,\n\t\t)\n\t);\n}\n\nfunction bandFillClipDirs(self, seriesIdx) {\n\tlet fillDir = 0;\n\n\t// 2 bits, -1 | 1\n\tlet clipDirs = 0;\n\n\tlet bands = ifNull(self.bands, EMPTY_ARR);\n\n\tfor (let i = 0; i < bands.length; i++) {\n\t\tlet b = bands[i];\n\n\t\t// is a \"from\" band edge\n\t\tif (b.series[0] == seriesIdx)\n\t\t\tfillDir = b.dir;\n\t\t// is a \"to\" band edge\n\t\telse if (b.series[1] == seriesIdx) {\n\t\t\tif (b.dir == 1)\n\t\t\t\tclipDirs |= 1;\n\t\t\telse\n\t\t\t\tclipDirs |= 2;\n\t\t}\n\t}\n\n\treturn [\n\t\tfillDir,\n\t\t(\n\t\t\tclipDirs == 1 ? -1 : // neg only\n\t\t\tclipDirs == 2 ? 1 : // pos only\n\t\t\tclipDirs == 3 ? 2 : // both\n\t\t\t 0 // neither\n\t\t)\n\t];\n}\n\nfunction seriesFillTo(self, seriesIdx, dataMin, dataMax, bandFillDir) {\n\tlet mode = self.mode;\n\tlet series = self.series[seriesIdx];\n\tlet scaleKey = mode == 2 ? series.facets[1].scale : series.scale;\n\tlet scale = self.scales[scaleKey];\n\n\treturn (\n\t\tbandFillDir == -1 ? scale.min :\n\t\tbandFillDir == 1 ? scale.max :\n\t\tscale.distr == 3 ? (\n\t\t\tscale.dir == 1 ? scale.min :\n\t\t\tscale.max\n\t\t) : 0\n\t);\n}\n\n// creates inverted band clip path (from stroke path -> yMax || yMin)\n// clipDir is always inverse of fillDir\n// default clip dir is upwards (1), since default band fill is downwards/fillBelowTo (-1) (highIdx -> lowIdx)\nfunction clipBandLine(self, seriesIdx, idx0, idx1, strokePath, clipDir) {\n\treturn orient(self, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\tlet pxRound = series.pxRound;\n\n\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\t\tconst lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\tlet frIdx, toIdx;\n\n\t\tif (dir == 1) {\n\t\t\tfrIdx = idx0;\n\t\t\ttoIdx = idx1;\n\t\t}\n\t\telse {\n\t\t\tfrIdx = idx1;\n\t\t\ttoIdx = idx0;\n\t\t}\n\n\t\t// path start\n\t\tlet x0 = pxRound(valToPosX(dataX[frIdx], scaleX, xDim, xOff));\n\t\tlet y0 = pxRound(valToPosY(dataY[frIdx], scaleY, yDim, yOff));\n\t\t// path end x\n\t\tlet x1 = pxRound(valToPosX(dataX[toIdx], scaleX, xDim, xOff));\n\t\t// upper or lower y limit\n\t\tlet yLimit = pxRound(valToPosY(clipDir == 1 ? scaleY.max : scaleY.min, scaleY, yDim, yOff));\n\n\t\tlet clip = new Path2D(strokePath);\n\n\t\tlineTo(clip, x1, yLimit);\n\t\tlineTo(clip, x0, yLimit);\n\t\tlineTo(clip, x0, y0);\n\n\t\treturn clip;\n\t});\n}\n\nfunction clipGaps(gaps, ori, plotLft, plotTop, plotWid, plotHgt) {\n\tlet clip = null;\n\n\t// create clip path (invert gaps and non-gaps)\n\tif (gaps.length > 0) {\n\t\tclip = new Path2D();\n\n\t\tconst rect = ori == 0 ? rectH : rectV;\n\n\t\tlet prevGapEnd = plotLft;\n\n\t\tfor (let i = 0; i < gaps.length; i++) {\n\t\t\tlet g = gaps[i];\n\n\t\t\tif (g[1] > g[0]) {\n\t\t\t\tlet w = g[0] - prevGapEnd;\n\n\t\t\t\tw > 0 && rect(clip, prevGapEnd, plotTop, w, plotTop + plotHgt);\n\n\t\t\t\tprevGapEnd = g[1];\n\t\t\t}\n\t\t}\n\n\t\tlet w = plotLft + plotWid - prevGapEnd;\n\n\t\t// hack to ensure we expand the clip enough to avoid cutting off strokes at edges\n\t\tlet maxStrokeWidth = 10;\n\n\t\tw > 0 && rect(clip, prevGapEnd, plotTop - maxStrokeWidth / 2, w, plotTop + plotHgt + maxStrokeWidth);\n\t}\n\n\treturn clip;\n}\n\nfunction addGap(gaps, fromX, toX) {\n\tlet prevGap = gaps[gaps.length - 1];\n\n\tif (prevGap && prevGap[0] == fromX)\t\t\t// TODO: gaps must be encoded at stroke widths?\n\t\tprevGap[1] = toX;\n\telse\n\t\tgaps.push([fromX, toX]);\n}\n\nfunction findGaps(xs, ys, idx0, idx1, dir, pixelForX, align) {\n\tlet gaps = [];\n\tlet len = xs.length;\n\n\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\tlet yVal = ys[i];\n\n\t\tif (yVal === null) {\n\t\t\tlet fr = i, to = i;\n\n\t\t\tif (dir == 1) {\n\t\t\t\twhile (++i <= idx1 && ys[i] === null)\n\t\t\t\t\tto = i;\n\t\t\t}\n\t\t\telse {\n\t\t\t\twhile (--i >= idx0 && ys[i] === null)\n\t\t\t\t\tto = i;\n\t\t\t}\n\n\t\t\tlet frPx = pixelForX(xs[fr]);\n\t\t\tlet toPx = to == fr ? frPx : pixelForX(xs[to]);\n\n\t\t\t// if value adjacent to edge null is same pixel, then it's partially\n\t\t\t// filled and gap should start at next pixel\n\t\t\tlet fri2 = fr - dir;\n\t\t\tlet frPx2 = align <= 0 && fri2 >= 0 && fri2 < len ? pixelForX(xs[fri2]) : frPx;\n\t\t//\tif (frPx2 == frPx)\n\t\t//\t\tfrPx++;\n\t\t//\telse\n\t\t\t\tfrPx = frPx2;\n\n\t\t\tlet toi2 = to + dir;\n\t\t\tlet toPx2 = align >= 0 && toi2 >= 0 && toi2 < len ? pixelForX(xs[toi2]) : toPx;\n\t\t//\tif (toPx2 == toPx)\n\t\t//\t\ttoPx--;\n\t\t//\telse\n\t\t\t\ttoPx = toPx2;\n\n\t\t\tif (toPx >= frPx)\n\t\t\t\tgaps.push([frPx, toPx]); // addGap\n\t\t}\n\t}\n\n\treturn gaps;\n}\n\nfunction pxRoundGen(pxAlign) {\n\treturn pxAlign == 0 ? retArg0 : pxAlign == 1 ? round : v => incrRound(v, pxAlign);\n}\n\nfunction rect(ori) {\n\tlet moveTo = ori == 0 ?\n\t\tmoveToH :\n\t\tmoveToV;\n\n\tlet arcTo = ori == 0 ?\n\t\t(p, x1, y1, x2, y2, r) => { p.arcTo(x1, y1, x2, y2, r); } :\n\t\t(p, y1, x1, y2, x2, r) => { p.arcTo(x1, y1, x2, y2, r); };\n\n\tlet rect = ori == 0 ?\n\t\t(p, x, y, w, h) => { p.rect(x, y, w, h); } :\n\t\t(p, y, x, h, w) => { p.rect(x, y, w, h); };\n\n\t// TODO (pending better browser support): https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/roundRect\n\treturn (p, x, y, w, h, endRad = 0, baseRad = 0) => {\n\t\tif (endRad == 0 && baseRad == 0)\n\t\t\trect(p, x, y, w, h);\n\t\telse {\n\t\t\tendRad = min(endRad, w / 2, h / 2);\n\t\t\tbaseRad = min(baseRad, w / 2, h / 2);\n\n\t\t\t// adapted from https://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-using-html-canvas/7838871#7838871\n\t\t\tmoveTo(p, x + endRad, y);\n\t\t\tarcTo(p, x + w, y, x + w, y + h, endRad);\n\t\t\tarcTo(p, x + w, y + h, x, y + h, baseRad);\n\t\t\tarcTo(p, x, y + h, x, y, baseRad);\n\t\t\tarcTo(p, x, y, x + w, y, endRad);\n\t\t\tp.closePath();\n\t\t}\n\t};\n}\n\n// orientation-inverting canvas functions\nconst moveToH = (p, x, y) => { p.moveTo(x, y); };\nconst moveToV = (p, y, x) => { p.moveTo(x, y); };\nconst lineToH = (p, x, y) => { p.lineTo(x, y); };\nconst lineToV = (p, y, x) => { p.lineTo(x, y); };\nconst rectH = rect(0);\nconst rectV = rect(1);\nconst arcH = (p, x, y, r, startAngle, endAngle) => { p.arc(x, y, r, startAngle, endAngle); };\nconst arcV = (p, y, x, r, startAngle, endAngle) => { p.arc(x, y, r, startAngle, endAngle); };\nconst bezierCurveToH = (p, bp1x, bp1y, bp2x, bp2y, p2x, p2y) => { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); };\nconst bezierCurveToV = (p, bp1y, bp1x, bp2y, bp2x, p2y, p2x) => { p.bezierCurveTo(bp1x, bp1y, bp2x, bp2y, p2x, p2y); };\n\n// TODO: drawWrap(seriesIdx, drawPoints) (save, restore, translate, clip)\nfunction points(opts) {\n\treturn (u, seriesIdx, idx0, idx1, filtIdxs) => {\n\t//\tlog(\"drawPoints()\", arguments);\n\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet { pxRound, points } = series;\n\n\t\t\tlet moveTo, arc;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tmoveTo = moveToH;\n\t\t\t\tarc = arcH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmoveTo = moveToV;\n\t\t\t\tarc = arcV;\n\t\t\t}\n\n\t\t\tconst width = roundDec(points.width * pxRatio, 3);\n\n\t\t\tlet rad = (points.size - points.width) / 2 * pxRatio;\n\t\t\tlet dia = roundDec(rad * 2, 3);\n\n\t\t\tlet fill = new Path2D();\n\t\t\tlet clip = new Path2D();\n\n\t\t\tlet { left: lft, top: top, width: wid, height: hgt } = u.bbox;\n\n\t\t\trectH(clip,\n\t\t\t\tlft - dia,\n\t\t\t\ttop - dia,\n\t\t\t\twid + dia * 2,\n\t\t\t\thgt + dia * 2,\n\t\t\t);\n\n\t\t\tconst drawPoint = pi => {\n\t\t\t\tif (dataY[pi] != null) {\n\t\t\t\t\tlet x = pxRound(valToPosX(dataX[pi], scaleX, xDim, xOff));\n\t\t\t\t\tlet y = pxRound(valToPosY(dataY[pi], scaleY, yDim, yOff));\n\n\t\t\t\t\tmoveTo(fill, x + rad, y);\n\t\t\t\t\tarc(fill, x, y, rad, 0, PI * 2);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (filtIdxs)\n\t\t\t\tfiltIdxs.forEach(drawPoint);\n\t\t\telse {\n\t\t\t\tfor (let pi = idx0; pi <= idx1; pi++)\n\t\t\t\t\tdrawPoint(pi);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstroke: width > 0 ? fill : null,\n\t\t\t\tfill,\n\t\t\t\tclip,\n\t\t\t\tflags: BAND_CLIP_FILL | BAND_CLIP_STROKE,\n\t\t\t};\n\t\t});\n\t};\n}\n\nfunction _drawAcc(lineTo) {\n\treturn (stroke, accX, minY, maxY, inY, outY) => {\n\t\tif (minY != maxY) {\n\t\t\tif (inY != minY && outY != minY)\n\t\t\t\tlineTo(stroke, accX, minY);\n\t\t\tif (inY != maxY && outY != maxY)\n\t\t\t\tlineTo(stroke, accX, maxY);\n\n\t\t\tlineTo(stroke, accX, outY);\n\t\t}\n\t};\n}\n\nconst drawAccH = _drawAcc(lineToH);\nconst drawAccV = _drawAcc(lineToV);\n\nfunction linear(opts) {\n\tconst alignGaps = ifNull(opts?.alignGaps, 0);\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet pxRound = series.pxRound;\n\n\t\t\tlet pixelForX = val => pxRound(valToPosX(val, scaleX, xDim, xOff));\n\t\t\tlet pixelForY = val => pxRound(valToPosY(val, scaleY, yDim, yOff));\n\n\t\t\tlet lineTo, drawAcc;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tdrawAcc = drawAccH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tdrawAcc = drawAccV;\n\t\t\t}\n\n\t\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null, gaps: null, flags: BAND_CLIP_FILL};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tlet minY = inf,\n\t\t\t\tmaxY = -inf,\n\t\t\t\tinY, outY, drawnAtX;\n\n\t\t\tlet accX = pixelForX(dataX[dir == 1 ? idx0 : idx1]);\n\n\t\t\t// data edges\n\t\t\tlet lftIdx = nonNullIdx(dataY, idx0, idx1, 1 * dir);\n\t\t\tlet rgtIdx = nonNullIdx(dataY, idx0, idx1, -1 * dir);\n\t\t\tlet lftX = pixelForX(dataX[lftIdx]);\n\t\t\tlet rgtX = pixelForX(dataX[rgtIdx]);\n\n\t\t\tlet hasGap = false;\n\n\t\t\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\tlet x = pixelForX(dataX[i]);\n\t\t\t\tlet yVal = dataY[i];\n\n\t\t\t\tif (x == accX) {\n\t\t\t\t\tif (yVal != null) {\n\t\t\t\t\t\toutY = pixelForY(yVal);\n\n\t\t\t\t\t\tif (minY == inf) {\n\t\t\t\t\t\t\tlineTo(stroke, x, outY);\n\t\t\t\t\t\t\tinY = outY;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tminY = min(outY, minY);\n\t\t\t\t\t\tmaxY = max(outY, maxY);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (yVal === null)\n\t\t\t\t\t\t\thasGap = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (minY != inf) {\n\t\t\t\t\t\tdrawAcc(stroke, accX, minY, maxY, inY, outY);\n\t\t\t\t\t\tdrawnAtX = accX;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (yVal != null) {\n\t\t\t\t\t\toutY = pixelForY(yVal);\n\t\t\t\t\t\tlineTo(stroke, x, outY);\n\t\t\t\t\t\tminY = maxY = inY = outY;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tminY = inf;\n\t\t\t\t\t\tmaxY = -inf;\n\n\t\t\t\t\t\tif (yVal === null)\n\t\t\t\t\t\t\thasGap = true;\n\t\t\t\t\t}\n\n\t\t\t\t\taccX = x;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (minY != inf && minY != maxY && drawnAtX != accX)\n\t\t\t\tdrawAcc(stroke, accX, minY, maxY, inY, outY);\n\n\t\t\tlet [ bandFillDir, bandClipDir ] = bandFillClipDirs(u, seriesIdx);\n\n\t\t\tif (series.fill != null || bandFillDir != 0) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillToVal = series.fillTo(u, seriesIdx, series.min, series.max, bandFillDir);\n\t\t\t\tlet fillToY = pixelForY(fillToVal);\n\n\t\t\t\tlineTo(fill, rgtX, fillToY);\n\t\t\t\tlineTo(fill, lftX, fillToY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps) {\n\t\t\t//\tconsole.time('gaps');\n\t\t\t\tlet gaps = [];\n\n\t\t\t\thasGap && gaps.push(...findGaps(dataX, dataY, idx0, idx1, dir, pixelForX, alignGaps));\n\n\t\t\t//\tconsole.timeEnd('gaps');\n\n\t\t\t//\tconsole.log('gaps', JSON.stringify(gaps));\n\n\t\t\t\t_paths.gaps = gaps = series.gaps(u, seriesIdx, idx0, idx1, gaps);\n\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\t\t\t}\n\n\t\t\tif (bandClipDir != 0) {\n\t\t\t\t_paths.band = bandClipDir == 2 ? [\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, -1),\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, 1),\n\t\t\t\t] : clipBandLine(u, seriesIdx, idx0, idx1, stroke, bandClipDir);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\n// BUG: align: -1 behaves like align: 1 when scale.dir: -1\nfunction stepped(opts) {\n\tconst align = ifNull(opts.align, 1);\n\t// whether to draw ascenders/descenders at null/gap bondaries\n\tconst ascDesc = ifNull(opts.ascDesc, false);\n\tconst alignGaps = ifNull(opts.alignGaps, 0);\n\tconst extend = ifNull(opts.extend, false);\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet pxRound = series.pxRound;\n\n\t\t\tlet { left, width } = u.bbox;\n\n\t\t\tlet pixelForX = val => pxRound(valToPosX(val, scaleX, xDim, xOff));\n\t\t\tlet pixelForY = val => pxRound(valToPosY(val, scaleY, yDim, yOff));\n\n\t\t\tlet lineTo = scaleX.ori == 0 ? lineToH : lineToV;\n\n\t\t\tconst _paths = {stroke: new Path2D(), fill: null, clip: null, band: null, gaps: null, flags: BAND_CLIP_FILL};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1, 1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet prevYPos = pixelForY(dataY[dir == 1 ? idx0 : idx1]);\n\t\t\tlet firstXPos = pixelForX(dataX[dir == 1 ? idx0 : idx1]);\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlet firstXPosExt = firstXPos;\n\n\t\t\tif (extend && align == -1) {\n\t\t\t\tfirstXPosExt = left;\n\t\t\t\tlineTo(stroke, firstXPosExt, prevYPos);\n\t\t\t}\n\n\t\t\tlineTo(stroke, firstXPos, prevYPos);\n\n\t\t\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\tlet yVal1 = dataY[i];\n\n\t\t\t\tif (yVal1 == null)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet x1 = pixelForX(dataX[i]);\n\t\t\t\tlet y1 = pixelForY(yVal1);\n\n\t\t\t\tif (align == 1)\n\t\t\t\t\tlineTo(stroke, x1, prevYPos);\n\t\t\t\telse\n\t\t\t\t\tlineTo(stroke, prevXPos, y1);\n\n\t\t\t\tlineTo(stroke, x1, y1);\n\n\t\t\t\tprevYPos = y1;\n\t\t\t\tprevXPos = x1;\n\t\t\t}\n\n\t\t\tlet prevXPosExt = prevXPos;\n\n\t\t\tif (extend && align == 1) {\n\t\t\t\tprevXPosExt = left + width;\n\t\t\t\tlineTo(stroke, prevXPosExt, prevYPos);\n\t\t\t}\n\n\t\t\tlet [ bandFillDir, bandClipDir ] = bandFillClipDirs(u, seriesIdx);\n\n\t\t\tif (series.fill != null || bandFillDir != 0) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max, bandFillDir);\n\t\t\t\tlet fillToY = pixelForY(fillTo);\n\n\t\t\t\tlineTo(fill, prevXPosExt, fillToY);\n\t\t\t\tlineTo(fill, firstXPosExt, fillToY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps) {\n\t\t\t//\tconsole.time('gaps');\n\t\t\t\tlet gaps = [];\n\n\t\t\t\tgaps.push(...findGaps(dataX, dataY, idx0, idx1, dir, pixelForX, alignGaps));\n\n\t\t\t//\tconsole.timeEnd('gaps');\n\n\t\t\t//\tconsole.log('gaps', JSON.stringify(gaps));\n\n\t\t\t\t// expand/contract clips for ascenders/descenders\n\t\t\t\tlet halfStroke = (series.width * pxRatio) / 2;\n\t\t\t\tlet startsOffset = (ascDesc || align == 1) ? halfStroke : -halfStroke;\n\t\t\t\tlet endsOffset = (ascDesc || align == -1) ? -halfStroke : halfStroke;\n\n\t\t\t\tgaps.forEach(g => {\n\t\t\t\t\tg[0] += startsOffset;\n\t\t\t\t\tg[1] += endsOffset;\n\t\t\t\t});\n\n\t\t\t\t_paths.gaps = gaps = series.gaps(u, seriesIdx, idx0, idx1, gaps);\n\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\t\t\t}\n\n\t\t\tif (bandClipDir != 0) {\n\t\t\t\t_paths.band = bandClipDir == 2 ? [\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, -1),\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, 1),\n\t\t\t\t] : clipBandLine(u, seriesIdx, idx0, idx1, stroke, bandClipDir);\n\t\t\t}\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction findColWidth(dataX, dataY, valToPosX, scaleX, xDim, xOff, colWid = inf) {\n\tif (dataX.length > 1) {\n\t\t// prior index with non-undefined y data\n\t\tlet prevIdx = null;\n\n\t\t// scan full dataset for smallest adjacent delta\n\t\t// will not work properly for non-linear x scales, since does not do expensive valToPosX calcs till end\n\t\tfor (let i = 0, minDelta = Infinity; i < dataX.length; i++) {\n\t\t\tif (dataY[i] !== undefined) {\n\t\t\t\tif (prevIdx != null) {\n\t\t\t\t\tlet delta = abs(dataX[i] - dataX[prevIdx]);\n\n\t\t\t\t\tif (delta < minDelta) {\n\t\t\t\t\t\tminDelta = delta;\n\t\t\t\t\t\tcolWid = abs(valToPosX(dataX[i], scaleX, xDim, xOff) - valToPosX(dataX[prevIdx], scaleX, xDim, xOff));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tprevIdx = i;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn colWid;\n}\n\nfunction bars(opts) {\n\topts = opts || EMPTY_OBJ;\n\tconst size = ifNull(opts.size, [0.6, inf, 1]);\n\tconst align = opts.align || 0;\n\tconst _extraGap = (opts.gap || 0);\n\n\tlet ro = opts.radius;\n\n\tro =\n\t\t// [valueRadius, baselineRadius]\n\t\tro == null ? [0, 0] :\n\t\ttypeof ro == 'number' ? [ro, 0] : ro;\n\n\tconst radiusFn = fnOrSelf(ro);\n\n\tconst gapFactor = 1 - size[0];\n\tconst _maxWidth = ifNull(size[1], inf);\n\tconst _minWidth = ifNull(size[2], 1);\n\n\tconst disp = ifNull(opts.disp, EMPTY_OBJ);\n\tconst _each = ifNull(opts.each, _ => {});\n\n\tconst { fill: dispFills, stroke: dispStrokes } = disp;\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet pxRound = series.pxRound;\n\t\t\tlet _align = align;\n\n\t\t\tlet extraGap = _extraGap * pxRatio;\n\t\t\tlet maxWidth = _maxWidth * pxRatio;\n\t\t\tlet minWidth = _minWidth * pxRatio;\n\n\t\t\tlet valRadius, baseRadius;\n\n\t\t\tif (scaleX.ori == 0)\n\t\t\t\t[valRadius, baseRadius] = radiusFn(u, seriesIdx);\n\t\t\telse\n\t\t\t\t[baseRadius, valRadius] = radiusFn(u, seriesIdx);\n\n\t\t\tconst _dirX = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\t\t//\tconst _dirY = scaleY.dir * (scaleY.ori == 1 ? 1 : -1);\n\n\t\t\tlet rect = scaleX.ori == 0 ? rectH : rectV;\n\n\t\t\tlet each = scaleX.ori == 0 ? _each : (u, seriesIdx, i, top, lft, hgt, wid) => {\n\t\t\t\t_each(u, seriesIdx, i, lft, top, wid, hgt);\n\t\t\t};\n\n\t\t\t// band where this series is the \"from\" edge\n\t\t\tlet band = ifNull(u.bands, EMPTY_ARR).find(b => b.series[0] == seriesIdx);\n\n\t\t\tlet fillDir = band != null ? band.dir : 0;\n\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max, fillDir);\n\t\t\tlet fillToY = pxRound(valToPosY(fillTo, scaleY, yDim, yOff));\n\n\t\t\t// barWid is to center of stroke\n\t\t\tlet xShift, barWid, fullGap, colWid = xDim;\n\n\t\t\tlet strokeWidth = pxRound(series.width * pxRatio);\n\n\t\t\tlet multiPath = false;\n\n\t\t\tlet fillColors = null;\n\t\t\tlet fillPaths = null;\n\t\t\tlet strokeColors = null;\n\t\t\tlet strokePaths = null;\n\n\t\t\tif (dispFills != null && (strokeWidth == 0 || dispStrokes != null)) {\n\t\t\t\tmultiPath = true;\n\n\t\t\t\tfillColors = dispFills.values(u, seriesIdx, idx0, idx1);\n\t\t\t\tfillPaths = new Map();\n\t\t\t\t(new Set(fillColors)).forEach(color => {\n\t\t\t\t\tif (color != null)\n\t\t\t\t\t\tfillPaths.set(color, new Path2D());\n\t\t\t\t});\n\n\t\t\t\tif (strokeWidth > 0) {\n\t\t\t\t\tstrokeColors = dispStrokes.values(u, seriesIdx, idx0, idx1);\n\t\t\t\t\tstrokePaths = new Map();\n\t\t\t\t\t(new Set(strokeColors)).forEach(color => {\n\t\t\t\t\t\tif (color != null)\n\t\t\t\t\t\t\tstrokePaths.set(color, new Path2D());\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet { x0, size } = disp;\n\n\t\t\tif (x0 != null && size != null) {\n\t\t\t\t_align = 1;\n\t\t\t\tdataX = x0.values(u, seriesIdx, idx0, idx1);\n\n\t\t\t\tif (x0.unit == 2)\n\t\t\t\t\tdataX = dataX.map(pct => u.posToVal(xOff + pct * xDim, scaleX.key, true));\n\n\t\t\t\t// assumes uniform sizes, for now\n\t\t\t\tlet sizes = size.values(u, seriesIdx, idx0, idx1);\n\n\t\t\t\tif (size.unit == 2)\n\t\t\t\t\tbarWid = sizes[0] * xDim;\n\t\t\t\telse\n\t\t\t\t\tbarWid = valToPosX(sizes[0], scaleX, xDim, xOff) - valToPosX(0, scaleX, xDim, xOff); // assumes linear scale (delta from 0)\n\n\t\t\t\tcolWid = findColWidth(dataX, dataY, valToPosX, scaleX, xDim, xOff, colWid);\n\n\t\t\t\tlet gapWid = colWid - barWid;\n\t\t\t\tfullGap = gapWid + extraGap;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolWid = findColWidth(dataX, dataY, valToPosX, scaleX, xDim, xOff, colWid);\n\n\t\t\t\tlet gapWid = colWid * gapFactor;\n\n\t\t\t\tfullGap = gapWid + extraGap;\n\t\t\t\tbarWid = colWid - fullGap;\n\t\t\t}\n\n\t\t\tif (fullGap < 1)\n\t\t\t\tfullGap = 0;\n\n\t\t\tif (strokeWidth >= barWid / 2)\n\t\t\t\tstrokeWidth = 0;\n\n\t\t\t// for small gaps, disable pixel snapping since gap inconsistencies become noticible and annoying\n\t\t\tif (fullGap < 5)\n\t\t\t\tpxRound = retArg0;\n\n\t\t\tlet insetStroke = fullGap > 0;\n\n\t\t\tlet rawBarWid = colWid - fullGap - (insetStroke ? strokeWidth : 0);\n\n\t\t\tbarWid = pxRound(clamp(rawBarWid, minWidth, maxWidth));\n\n\t\t\txShift = (_align == 0 ? barWid / 2 : _align == _dirX ? 0 : barWid) - _align * _dirX * ((_align == 0 ? extraGap / 2 : 0) + (insetStroke ? strokeWidth / 2 : 0));\n\n\n\t\t\tconst _paths = {stroke: null, fill: null, clip: null, band: null, gaps: null, flags: 0}; // disp, geom\n\n\t\t\tconst stroke = multiPath ? null : new Path2D();\n\n\t\t\tlet dataY0 = null;\n\n\t\t\tif (band != null)\n\t\t\t\tdataY0 = u.data[band.series[1]];\n\t\t\telse {\n\t\t\t\tlet { y0, y1 } = disp;\n\n\t\t\t\tif (y0 != null && y1 != null) {\n\t\t\t\t\tdataY = y1.values(u, seriesIdx, idx0, idx1);\n\t\t\t\t\tdataY0 = y0.values(u, seriesIdx, idx0, idx1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet radVal = valRadius * barWid;\n\t\t\tlet radBase = baseRadius * barWid;\n\n\t\t\tfor (let i = _dirX == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += _dirX) {\n\t\t\t\tlet yVal = dataY[i];\n\n\t\t\t\tif (yVal == null)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tif (dataY0 != null) {\n\t\t\t\t\tlet yVal0 = dataY0[i] ?? 0;\n\n\t\t\t\t\tif (yVal - yVal0 == 0)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tfillToY = valToPosY(yVal0, scaleY, yDim, yOff);\n\t\t\t\t}\n\n\t\t\t\tlet xVal = scaleX.distr != 2 || disp != null ? dataX[i] : i;\n\n\t\t\t\t// TODO: all xPos can be pre-computed once for all series in aligned set\n\t\t\t\tlet xPos = valToPosX(xVal, scaleX, xDim, xOff);\n\t\t\t\tlet yPos = valToPosY(ifNull(yVal, fillTo), scaleY, yDim, yOff);\n\n\t\t\t\tlet lft = pxRound(xPos - xShift);\n\t\t\t\tlet btm = pxRound(max(yPos, fillToY));\n\t\t\t\tlet top = pxRound(min(yPos, fillToY));\n\t\t\t\t// this includes the stroke\n\t\t\t\tlet barHgt = btm - top;\n\n\t\t\t\tif (yVal != null) { // && yVal != fillTo (0 height bar)\n\t\t\t\t\tlet rv = yVal < 0 ? radBase : radVal;\n\t\t\t\t\tlet rb = yVal < 0 ? radVal : radBase;\n\n\t\t\t\t\tif (multiPath) {\n\t\t\t\t\t\tif (strokeWidth > 0 && strokeColors[i] != null)\n\t\t\t\t\t\t\trect(strokePaths.get(strokeColors[i]), lft, top + floor(strokeWidth / 2), barWid, max(0, barHgt - strokeWidth), rv, rb);\n\n\t\t\t\t\t\tif (fillColors[i] != null)\n\t\t\t\t\t\t\trect(fillPaths.get(fillColors[i]), lft, top + floor(strokeWidth / 2), barWid, max(0, barHgt - strokeWidth), rv, rb);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\trect(stroke, lft, top + floor(strokeWidth / 2), barWid, max(0, barHgt - strokeWidth), rv, rb);\n\n\t\t\t\t\teach(u, seriesIdx, i,\n\t\t\t\t\t\tlft - strokeWidth / 2,\n\t\t\t\t\t\ttop,\n\t\t\t\t\t\tbarWid + strokeWidth,\n\t\t\t\t\t\tbarHgt,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (strokeWidth > 0)\n\t\t\t\t_paths.stroke = multiPath ? strokePaths : stroke;\n\t\t\telse if (!multiPath) {\n\t\t\t\t_paths._fill = series.width == 0 ? series._fill : series._stroke ?? series._fill;\n\t\t\t\t_paths.width = 0;\n\t\t\t}\n\n\t\t\t_paths.fill = multiPath ? fillPaths : stroke;\n\n\t\t\treturn _paths;\n\t\t});\n\t};\n}\n\nfunction splineInterp(interp, opts) {\n\tconst alignGaps = ifNull(opts?.alignGaps, 0);\n\n\treturn (u, seriesIdx, idx0, idx1) => {\n\t\treturn orient(u, seriesIdx, (series, dataX, dataY, scaleX, scaleY, valToPosX, valToPosY, xOff, yOff, xDim, yDim) => {\n\t\t\tlet pxRound = series.pxRound;\n\n\t\t\tlet pixelForX = val => pxRound(valToPosX(val, scaleX, xDim, xOff));\n\t\t\tlet pixelForY = val => pxRound(valToPosY(val, scaleY, yDim, yOff));\n\n\t\t\tlet moveTo, bezierCurveTo, lineTo;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tmoveTo = moveToH;\n\t\t\t\tlineTo = lineToH;\n\t\t\t\tbezierCurveTo = bezierCurveToH;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmoveTo = moveToV;\n\t\t\t\tlineTo = lineToV;\n\t\t\t\tbezierCurveTo = bezierCurveToV;\n\t\t\t}\n\n\t\t\tconst dir = scaleX.dir * (scaleX.ori == 0 ? 1 : -1);\n\n\t\t\tidx0 = nonNullIdx(dataY, idx0, idx1, 1);\n\t\t\tidx1 = nonNullIdx(dataY, idx0, idx1, -1);\n\n\t\t\tlet firstXPos = pixelForX(dataX[dir == 1 ? idx0 : idx1]);\n\t\t\tlet prevXPos = firstXPos;\n\n\t\t\tlet xCoords = [];\n\t\t\tlet yCoords = [];\n\n\t\t\tfor (let i = dir == 1 ? idx0 : idx1; i >= idx0 && i <= idx1; i += dir) {\n\t\t\t\tlet yVal = dataY[i];\n\n\t\t\t\tif (yVal != null) {\n\t\t\t\t\tlet xVal = dataX[i];\n\t\t\t\t\tlet xPos = pixelForX(xVal);\n\n\t\t\t\t\txCoords.push(prevXPos = xPos);\n\t\t\t\t\tyCoords.push(pixelForY(dataY[i]));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _paths = {stroke: interp(xCoords, yCoords, moveTo, lineTo, bezierCurveTo, pxRound), fill: null, clip: null, band: null, gaps: null, flags: BAND_CLIP_FILL};\n\t\t\tconst stroke = _paths.stroke;\n\n\t\t\tlet [ bandFillDir, bandClipDir ] = bandFillClipDirs(u, seriesIdx);\n\n\t\t\tif (series.fill != null || bandFillDir != 0) {\n\t\t\t\tlet fill = _paths.fill = new Path2D(stroke);\n\n\t\t\t\tlet fillTo = series.fillTo(u, seriesIdx, series.min, series.max, bandFillDir);\n\t\t\t\tlet fillToY = pixelForY(fillTo);\n\n\t\t\t\tlineTo(fill, prevXPos, fillToY);\n\t\t\t\tlineTo(fill, firstXPos, fillToY);\n\t\t\t}\n\n\t\t\tif (!series.spanGaps) {\n\t\t\t//\tconsole.time('gaps');\n\t\t\t\tlet gaps = [];\n\n\t\t\t\tgaps.push(...findGaps(dataX, dataY, idx0, idx1, dir, pixelForX, alignGaps));\n\n\t\t\t//\tconsole.timeEnd('gaps');\n\n\t\t\t//\tconsole.log('gaps', JSON.stringify(gaps));\n\n\t\t\t\t_paths.gaps = gaps = series.gaps(u, seriesIdx, idx0, idx1, gaps);\n\n\t\t\t\t_paths.clip = clipGaps(gaps, scaleX.ori, xOff, yOff, xDim, yDim);\n\t\t\t}\n\n\t\t\tif (bandClipDir != 0) {\n\t\t\t\t_paths.band = bandClipDir == 2 ? [\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, -1),\n\t\t\t\t\tclipBandLine(u, seriesIdx, idx0, idx1, stroke, 1),\n\t\t\t\t] : clipBandLine(u, seriesIdx, idx0, idx1, stroke, bandClipDir);\n\t\t\t}\n\n\t\t\treturn _paths;\n\n\t\t\t// if FEAT_PATHS: false in rollup.config.js\n\t\t\t//\tu.ctx.save();\n\t\t\t//\tu.ctx.beginPath();\n\t\t\t//\tu.ctx.rect(u.bbox.left, u.bbox.top, u.bbox.width, u.bbox.height);\n\t\t\t//\tu.ctx.clip();\n\t\t\t//\tu.ctx.strokeStyle = u.series[sidx].stroke;\n\t\t\t//\tu.ctx.stroke(stroke);\n\t\t\t//\tu.ctx.fillStyle = u.series[sidx].fill;\n\t\t\t//\tu.ctx.fill(fill);\n\t\t\t//\tu.ctx.restore();\n\t\t\t//\treturn null;\n\t\t});\n\t};\n}\n\nfunction monotoneCubic(opts) {\n\treturn splineInterp(_monotoneCubic, opts);\n}\n\n// Monotone Cubic Spline interpolation, adapted from the Chartist.js implementation:\n// https://github.com/gionkunz/chartist-js/blob/e7e78201bffe9609915e5e53cfafa29a5d6c49f9/src/scripts/interpolation.js#L240-L369\nfunction _monotoneCubic(xs, ys, moveTo, lineTo, bezierCurveTo, pxRound) {\n\tconst n = xs.length;\n\n\tif (n < 2)\n\t\treturn null;\n\n\tconst path = new Path2D();\n\n\tmoveTo(path, xs[0], ys[0]);\n\n\tif (n == 2)\n\t\tlineTo(path, xs[1], ys[1]);\n\telse {\n\t\tlet ms = Array(n),\n\t\t\tds = Array(n - 1),\n\t\t\tdys = Array(n - 1),\n\t\t\tdxs = Array(n - 1);\n\n\t\t// calc deltas and derivative\n\t\tfor (let i = 0; i < n - 1; i++) {\n\t\t\tdys[i] = ys[i + 1] - ys[i];\n\t\t\tdxs[i] = xs[i + 1] - xs[i];\n\t\t\tds[i] = dys[i] / dxs[i];\n\t\t}\n\n\t\t// determine desired slope (m) at each point using Fritsch-Carlson method\n\t\t// http://math.stackexchange.com/questions/45218/implementation-of-monotone-cubic-interpolation\n\t\tms[0] = ds[0];\n\n\t\tfor (let i = 1; i < n - 1; i++) {\n\t\t\tif (ds[i] === 0 || ds[i - 1] === 0 || (ds[i - 1] > 0) !== (ds[i] > 0))\n\t\t\t\tms[i] = 0;\n\t\t\telse {\n\t\t\t\tms[i] = 3 * (dxs[i - 1] + dxs[i]) / (\n\t\t\t\t\t(2 * dxs[i] + dxs[i - 1]) / ds[i - 1] +\n\t\t\t\t\t(dxs[i] + 2 * dxs[i - 1]) / ds[i]\n\t\t\t\t);\n\n\t\t\t\tif (!isFinite(ms[i]))\n\t\t\t\t\tms[i] = 0;\n\t\t\t}\n\t\t}\n\n\t\tms[n - 1] = ds[n - 2];\n\n\t\tfor (let i = 0; i < n - 1; i++) {\n\t\t\tbezierCurveTo(\n\t\t\t\tpath,\n\t\t\t\txs[i] + dxs[i] / 3,\n\t\t\t\tys[i] + ms[i] * dxs[i] / 3,\n\t\t\t\txs[i + 1] - dxs[i] / 3,\n\t\t\t\tys[i + 1] - ms[i + 1] * dxs[i] / 3,\n\t\t\t\txs[i + 1],\n\t\t\t\tys[i + 1],\n\t\t\t);\n\t\t}\n\t}\n\n\treturn path;\n}\n\nconst cursorPlots = new Set();\n\nfunction invalidateRects() {\n\tfor (let u of cursorPlots)\n\t\tu.syncRect(true);\n}\n\nif (domEnv) {\n\ton(resize, win, invalidateRects);\n\ton(scroll, win, invalidateRects, true);\n\ton(dppxchange, win, () => { uPlot.pxRatio = pxRatio; });\n}\n\nconst linearPath = linear() ;\nconst pointsPath = points() ;\n\nfunction setDefaults(d, xo, yo, initY) {\n\tlet d2 = initY ? [d[0], d[1]].concat(d.slice(2)) : [d[0]].concat(d.slice(1));\n\treturn d2.map((o, i) => setDefault(o, i, xo, yo));\n}\n\nfunction setDefaults2(d, xyo) {\n\treturn d.map((o, i) => i == 0 ? {} : assign({}, xyo, o)); // todo: assign() will not merge facet arrays\n}\n\nfunction setDefault(o, i, xo, yo) {\n\treturn assign({}, (i == 0 ? xo : yo), o);\n}\n\nfunction snapNumX(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullNullTuple : [dataMin, dataMax];\n}\n\nconst snapTimeX = snapNumX;\n\n// this ensures that non-temporal/numeric y-axes get multiple-snapped padding added above/below\n// TODO: also account for incrs when snapping to ensure top of axis gets a tick & value\nfunction snapNumY(self, dataMin, dataMax) {\n\treturn dataMin == null ? nullNullTuple : rangeNum(dataMin, dataMax, rangePad, true);\n}\n\nfunction snapLogY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullNullTuple : rangeLog(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapLogX = snapLogY;\n\nfunction snapAsinhY(self, dataMin, dataMax, scale) {\n\treturn dataMin == null ? nullNullTuple : rangeAsinh(dataMin, dataMax, self.scales[scale].log, false);\n}\n\nconst snapAsinhX = snapAsinhY;\n\n// dim is logical (getClientBoundingRect) pixels, not canvas pixels\nfunction findIncr(minVal, maxVal, incrs, dim, minSpace) {\n\tlet intDigits = max(numIntDigits(minVal), numIntDigits(maxVal));\n\n\tlet delta = maxVal - minVal;\n\n\tlet incrIdx = closestIdx((minSpace / dim) * delta, incrs);\n\n\tdo {\n\t\tlet foundIncr = incrs[incrIdx];\n\t\tlet foundSpace = dim * foundIncr / delta;\n\n\t\tif (foundSpace >= minSpace && intDigits + (foundIncr < 5 ? fixedDec.get(foundIncr) : 0) <= 17)\n\t\t\treturn [foundIncr, foundSpace];\n\t} while (++incrIdx < incrs.length);\n\n\treturn [0, 0];\n}\n\nfunction pxRatioFont(font) {\n\tlet fontSize, fontSizeCss;\n\tfont = font.replace(/(\\d+)px/, (m, p1) => (fontSize = round((fontSizeCss = +p1) * pxRatio)) + 'px');\n\treturn [font, fontSize, fontSizeCss];\n}\n\nfunction syncFontSize(axis) {\n\tif (axis.show) {\n\t\t[axis.font, axis.labelFont].forEach(f => {\n\t\t\tlet size = roundDec(f[2] * pxRatio, 1);\n\t\t\tf[0] = f[0].replace(/[0-9.]+px/, size + 'px');\n\t\t\tf[1] = size;\n\t\t});\n\t}\n}\n\nfunction uPlot(opts, data, then) {\n\tconst self = {\n\t\tmode: ifNull(opts.mode, 1),\n\t};\n\n\tconst mode = self.mode;\n\n\t// TODO: cache denoms & mins scale.cache = {r, min, }\n\tfunction getValPct(val, scale) {\n\t\tlet _val = (\n\t\t\tscale.distr == 3 ? log10(val > 0 ? val : scale.clamp(self, val, scale.min, scale.max, scale.key)) :\n\t\t\tscale.distr == 4 ? asinh(val, scale.asinh) :\n\t\t\tscale.distr == 100 ? scale.fwd(val) :\n\t\t\tval\n\t\t);\n\n\t\treturn (_val - scale._min) / (scale._max - scale._min);\n\t}\n\n\tfunction getHPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? (1 - pct) : pct);\n\t}\n\n\tfunction getVPos(val, scale, dim, off) {\n\t\tlet pct = getValPct(val, scale);\n\t\treturn off + dim * (scale.dir == -1 ? pct : (1 - pct));\n\t}\n\n\tfunction getPos(val, scale, dim, off) {\n\t\treturn scale.ori == 0 ? getHPos(val, scale, dim, off) : getVPos(val, scale, dim, off);\n\t}\n\n\tself.valToPosH = getHPos;\n\tself.valToPosV = getVPos;\n\n\tlet ready = false;\n\tself.status = 0;\n\n\tconst root = self.root = placeDiv(UPLOT);\n\n\tif (opts.id != null)\n\t\troot.id = opts.id;\n\n\taddClass(root, opts.class);\n\n\tif (opts.title) {\n\t\tlet title = placeDiv(TITLE, root);\n\t\ttitle.textContent = opts.title;\n\t}\n\n\tconst can = placeTag(\"canvas\");\n\tconst ctx = self.ctx = can.getContext(\"2d\");\n\n\tconst wrap = placeDiv(WRAP, root);\n\n\ton(\"click\", wrap, e => {\n\t\tif (e.target === over) {\n\t\t\tlet didDrag = mouseLeft1 != mouseLeft0 || mouseTop1 != mouseTop0;\n\t\t\tdidDrag && drag.click(self, e);\n\t\t}\n\t}, true);\n\n\tconst under = self.under = placeDiv(UNDER, wrap);\n\twrap.appendChild(can);\n\tconst over = self.over = placeDiv(OVER, wrap);\n\n\topts = copy(opts);\n\n\tconst pxAlign = +ifNull(opts.pxAlign, 1);\n\n\tconst pxRound = pxRoundGen(pxAlign);\n\n\t(opts.plugins || []).forEach(p => {\n\t\tif (p.opts)\n\t\t\topts = p.opts(self, opts) || opts;\n\t});\n\n\tconst ms = opts.ms || 1e-3;\n\n\tconst series = self.series = mode == 1 ?\n\t\tsetDefaults(opts.series || [], xSeriesOpts, ySeriesOpts, false) :\n\t\tsetDefaults2(opts.series || [null], xySeriesOpts);\n\tconst axes = self.axes = setDefaults(opts.axes || [], xAxisOpts, yAxisOpts, true);\n\tconst scales = self.scales = {};\n\tconst bands = self.bands = opts.bands || [];\n\n\tbands.forEach(b => {\n\t\tb.fill = fnOrSelf(b.fill || null);\n\t\tb.dir = ifNull(b.dir, -1);\n\t});\n\n\tconst xScaleKey = mode == 2 ? series[1].facets[0].scale : series[0].scale;\n\n\tconst drawOrderMap = {\n\t\taxes: drawAxesGrid,\n\t\tseries: drawSeries,\n\t};\n\n\tconst drawOrder = (opts.drawOrder || [\"axes\", \"series\"]).map(key => drawOrderMap[key]);\n\n\tfunction initScale(scaleKey) {\n\t\tlet sc = scales[scaleKey];\n\n\t\tif (sc == null) {\n\t\t\tlet scaleOpts = (opts.scales || EMPTY_OBJ)[scaleKey] || EMPTY_OBJ;\n\n\t\t\tif (scaleOpts.from != null) {\n\t\t\t\t// ensure parent is initialized\n\t\t\t\tinitScale(scaleOpts.from);\n\t\t\t\t// dependent scales inherit\n\t\t\t\tscales[scaleKey] = assign({}, scales[scaleOpts.from], scaleOpts, {key: scaleKey});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsc = scales[scaleKey] = assign({}, (scaleKey == xScaleKey ? xScaleOpts : yScaleOpts), scaleOpts);\n\n\t\t\t\tsc.key = scaleKey;\n\n\t\t\t\tlet isTime = sc.time;\n\n\t\t\t\tlet rn = sc.range;\n\n\t\t\t\tlet rangeIsArr = isArr(rn);\n\n\t\t\t\tif (scaleKey != xScaleKey || (mode == 2 && !isTime)) {\n\t\t\t\t\t// if range array has null limits, it should be auto\n\t\t\t\t\tif (rangeIsArr && (rn[0] == null || rn[1] == null)) {\n\t\t\t\t\t\trn = {\n\t\t\t\t\t\t\tmin: rn[0] == null ? autoRangePart : {\n\t\t\t\t\t\t\t\tmode: 1,\n\t\t\t\t\t\t\t\thard: rn[0],\n\t\t\t\t\t\t\t\tsoft: rn[0],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmax: rn[1] == null ? autoRangePart : {\n\t\t\t\t\t\t\t\tmode: 1,\n\t\t\t\t\t\t\t\thard: rn[1],\n\t\t\t\t\t\t\t\tsoft: rn[1],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\trangeIsArr = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!rangeIsArr && isObj(rn)) {\n\t\t\t\t\t\tlet cfg = rn;\n\t\t\t\t\t\t// this is similar to snapNumY\n\t\t\t\t\t\trn = (self, dataMin, dataMax) => dataMin == null ? nullNullTuple : rangeNum(dataMin, dataMax, cfg);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsc.range = fnOrSelf(rn || (isTime ? snapTimeX : scaleKey == xScaleKey ?\n\t\t\t\t\t(sc.distr == 3 ? snapLogX : sc.distr == 4 ? snapAsinhX : snapNumX) :\n\t\t\t\t\t(sc.distr == 3 ? snapLogY : sc.distr == 4 ? snapAsinhY : snapNumY)\n\t\t\t\t));\n\n\t\t\t\tsc.auto = fnOrSelf(rangeIsArr ? false : sc.auto);\n\n\t\t\t\tsc.clamp = fnOrSelf(sc.clamp || clampScale);\n\n\t\t\t\t// caches for expensive ops like asinh() & log()\n\t\t\t\tsc._min = sc._max = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tinitScale(\"x\");\n\tinitScale(\"y\");\n\n\t// TODO: init scales from facets in mode: 2\n\tif (mode == 1) {\n\t\tseries.forEach(s => {\n\t\t\tinitScale(s.scale);\n\t\t});\n\t}\n\n\taxes.forEach(a => {\n\t\tinitScale(a.scale);\n\t});\n\n\tfor (let k in opts.scales)\n\t\tinitScale(k);\n\n\tconst scaleX = scales[xScaleKey];\n\n\tconst xScaleDistr = scaleX.distr;\n\n\tlet valToPosX, valToPosY;\n\n\tif (scaleX.ori == 0) {\n\t\taddClass(root, ORI_HZ);\n\t\tvalToPosX = getHPos;\n\t\tvalToPosY = getVPos;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotWid;\n\t\t\txOffCan = plotLft;\n\t\t\tyDimCan = plotHgt;\n\t\t\tyOffCan = plotTop;\n\n\t\t\txDimCss = plotWidCss;\n\t\t\txOffCss = plotLftCss;\n\t\t\tyDimCss = plotHgtCss;\n\t\t\tyOffCss = plotTopCss;\n\t\t};\n\t\t*/\n\t}\n\telse {\n\t\taddClass(root, ORI_VT);\n\t\tvalToPosX = getVPos;\n\t\tvalToPosY = getHPos;\n\t\t/*\n\t\tupdOriDims = () => {\n\t\t\txDimCan = plotHgt;\n\t\t\txOffCan = plotTop;\n\t\t\tyDimCan = plotWid;\n\t\t\tyOffCan = plotLft;\n\n\t\t\txDimCss = plotHgtCss;\n\t\t\txOffCss = plotTopCss;\n\t\t\tyDimCss = plotWidCss;\n\t\t\tyOffCss = plotLftCss;\n\t\t};\n\t\t*/\n\t}\n\n\tconst pendScales = {};\n\n\t// explicitly-set initial scales\n\tfor (let k in scales) {\n\t\tlet sc = scales[k];\n\n\t\tif (sc.min != null || sc.max != null) {\n\t\t\tpendScales[k] = {min: sc.min, max: sc.max};\n\t\t\tsc.min = sc.max = null;\n\t\t}\n\t}\n\n//\tself.tz = opts.tz || Intl.DateTimeFormat().resolvedOptions().timeZone;\n\tconst _tzDate = (opts.tzDate || (ts => new Date(round(ts / ms))));\n\tconst _fmtDate = (opts.fmtDate || fmtDate);\n\n\tconst _timeAxisSplits = (ms == 1 ? timeAxisSplitsMs(_tzDate) : timeAxisSplitsS(_tzDate));\n\tconst _timeAxisVals = timeAxisVals(_tzDate, timeAxisStamps((ms == 1 ? _timeAxisStampsMs : _timeAxisStampsS), _fmtDate));\n\tconst _timeSeriesVal = timeSeriesVal(_tzDate, timeSeriesStamp(_timeSeriesStamp, _fmtDate));\n\n\tconst activeIdxs = [];\n\n\tconst legend = (self.legend = assign({}, legendOpts, opts.legend));\n\tconst showLegend = legend.show;\n\tconst markers = legend.markers;\n\n\t{\n\t\tlegend.idxs = activeIdxs;\n\n\t\tmarkers.width = fnOrSelf(markers.width);\n\t\tmarkers.dash = fnOrSelf(markers.dash);\n\t\tmarkers.stroke = fnOrSelf(markers.stroke);\n\t\tmarkers.fill = fnOrSelf(markers.fill);\n\t}\n\n\tlet legendTable;\n\tlet legendHead;\n\tlet legendBody;\n\tlet legendRows = [];\n\tlet legendCells = [];\n\tlet legendCols;\n\tlet multiValLegend = false;\n\tlet NULL_LEGEND_VALUES = {};\n\n\tif (legend.live) {\n\t\tconst getMultiVals = series[1] ? series[1].values : null;\n\t\tmultiValLegend = getMultiVals != null;\n\t\tlegendCols = multiValLegend ? getMultiVals(self, 1, 0) : {_: 0};\n\n\t\tfor (let k in legendCols)\n\t\t\tNULL_LEGEND_VALUES[k] = LEGEND_DISP;\n\t}\n\n\tif (showLegend) {\n\t\tlegendTable = placeTag(\"table\", LEGEND, root);\n\t\tlegendBody = placeTag(\"tbody\", null, legendTable);\n\n\t\t// allows legend to be moved out of root\n\t\tlegend.mount(self, legendTable);\n\n\t\tif (multiValLegend) {\n\t\t\tlegendHead = placeTag(\"thead\", null, legendTable, legendBody);\n\n\t\t\tlet head = placeTag(\"tr\", null, legendHead);\n\t\t\tplaceTag(\"th\", null, head);\n\n\t\t\tfor (var key in legendCols)\n\t\t\t\tplaceTag(\"th\", LEGEND_LABEL, head).textContent = key;\n\t\t}\n\t\telse {\n\t\t\taddClass(legendTable, LEGEND_INLINE);\n\t\t\tlegend.live && addClass(legendTable, LEGEND_LIVE);\n\t\t}\n\t}\n\n\tconst son = {show: true};\n\tconst soff = {show: false};\n\n\tfunction initLegendRow(s, i) {\n\t\tif (i == 0 && (multiValLegend || !legend.live || mode == 2))\n\t\t\treturn nullNullTuple;\n\n\t\tlet cells = [];\n\n\t\tlet row = placeTag(\"tr\", LEGEND_SERIES, legendBody, legendBody.childNodes[i]);\n\n\t\taddClass(row, s.class);\n\n\t\tif (!s.show)\n\t\t\taddClass(row, OFF);\n\n\t\tlet label = placeTag(\"th\", null, row);\n\n\t\tif (markers.show) {\n\t\t\tlet indic = placeDiv(LEGEND_MARKER, label);\n\n\t\t\tif (i > 0) {\n\t\t\t\tlet width = markers.width(self, i);\n\n\t\t\t\tif (width)\n\t\t\t\t\tindic.style.border = width + \"px \" + markers.dash(self, i) + \" \" + markers.stroke(self, i);\n\n\t\t\t\tindic.style.background = markers.fill(self, i);\n\t\t\t}\n\t\t}\n\n\t\tlet text = placeDiv(LEGEND_LABEL, label);\n\t\ttext.textContent = s.label;\n\n\t\tif (i > 0) {\n\t\t\tif (!markers.show)\n\t\t\t\ttext.style.color = s.width > 0 ? markers.stroke(self, i) : markers.fill(self, i);\n\n\t\t\tonMouse(\"click\", label, e => {\n\t\t\t\tif (cursor._lock)\n\t\t\t\t\treturn;\n\n\t\t\t\tsetCursorEvent(e);\n\n\t\t\t\tlet seriesIdx = series.indexOf(s);\n\n\t\t\t\tif ((e.ctrlKey || e.metaKey) != legend.isolate) {\n\t\t\t\t\t// if any other series is shown, isolate this one. else show all\n\t\t\t\t\tlet isolate = series.some((s, i) => i > 0 && i != seriesIdx && s.show);\n\n\t\t\t\t\tseries.forEach((s, i) => {\n\t\t\t\t\t\ti > 0 && setSeries(i, isolate ? (i == seriesIdx ? son : soff) : son, true, syncOpts.setSeries);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tsetSeries(seriesIdx, {show: !s.show}, true, syncOpts.setSeries);\n\t\t\t}, false);\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tonMouse(mouseenter, label, e => {\n\t\t\t\t\tif (cursor._lock)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\tsetCursorEvent(e);\n\n\t\t\t\t\tsetSeries(series.indexOf(s), FOCUS_TRUE, true, syncOpts.setSeries);\n\t\t\t\t}, false);\n\t\t\t}\n\t\t}\n\n\t\tfor (var key in legendCols) {\n\t\t\tlet v = placeTag(\"td\", LEGEND_VALUE, row);\n\t\t\tv.textContent = \"--\";\n\t\t\tcells.push(v);\n\t\t}\n\n\t\treturn [row, cells];\n\t}\n\n\tconst mouseListeners = new Map();\n\n\tfunction onMouse(ev, targ, fn, onlyTarg = true) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\t\tconst listener = cursor.bind[ev](self, targ, fn, onlyTarg);\n\n\t\tif (listener) {\n\t\t\ton(ev, targ, targListeners[ev] = listener);\n\t\t\tmouseListeners.set(targ, targListeners);\n\t\t}\n\t}\n\n\tfunction offMouse(ev, targ, fn) {\n\t\tconst targListeners = mouseListeners.get(targ) || {};\n\n\t\tfor (let k in targListeners) {\n\t\t\tif (ev == null || k == ev) {\n\t\t\t\toff(k, targ, targListeners[k]);\n\t\t\t\tdelete targListeners[k];\n\t\t\t}\n\t\t}\n\n\t\tif (ev == null)\n\t\t\tmouseListeners.delete(targ);\n\t}\n\n\tlet fullWidCss = 0;\n\tlet fullHgtCss = 0;\n\n\tlet plotWidCss = 0;\n\tlet plotHgtCss = 0;\n\n\t// plot margins to account for axes\n\tlet plotLftCss = 0;\n\tlet plotTopCss = 0;\n\n\t// previous values for diffing\n\tlet _plotLftCss = plotLftCss;\n\tlet _plotTopCss = plotTopCss;\n\tlet _plotWidCss = plotWidCss;\n\tlet _plotHgtCss = plotHgtCss;\n\n\n\tlet plotLft = 0;\n\tlet plotTop = 0;\n\tlet plotWid = 0;\n\tlet plotHgt = 0;\n\n\tself.bbox = {};\n\n\tlet shouldSetScales = false;\n\tlet shouldSetSize = false;\n\tlet shouldConvergeSize = false;\n\tlet shouldSetCursor = false;\n\tlet shouldSetSelect = false;\n\tlet shouldSetLegend = false;\n\n\tfunction _setSize(width, height, force) {\n\t\tif (force || (width != self.width || height != self.height))\n\t\t\tcalcSize(width, height);\n\n\t\tresetYSeries(false);\n\n\t\tshouldConvergeSize = true;\n\t\tshouldSetSize = true;\n\n\t\tcommit();\n\t}\n\n\tfunction calcSize(width, height) {\n\t//\tlog(\"calcSize()\", arguments);\n\n\t\tself.width = fullWidCss = plotWidCss = width;\n\t\tself.height = fullHgtCss = plotHgtCss = height;\n\t\tplotLftCss = plotTopCss = 0;\n\n\t\tcalcPlotRect();\n\t\tcalcAxesRects();\n\n\t\tlet bb = self.bbox;\n\n\t\tplotLft = bb.left = incrRound(plotLftCss * pxRatio, 0.5);\n\t\tplotTop = bb.top = incrRound(plotTopCss * pxRatio, 0.5);\n\t\tplotWid = bb.width = incrRound(plotWidCss * pxRatio, 0.5);\n\t\tplotHgt = bb.height = incrRound(plotHgtCss * pxRatio, 0.5);\n\n\t//\tupdOriDims();\n\t}\n\n\t// ensures size calc convergence\n\tconst CYCLE_LIMIT = 3;\n\n\tfunction convergeSize() {\n\t\tlet converged = false;\n\n\t\tlet cycleNum = 0;\n\n\t\twhile (!converged) {\n\t\t\tcycleNum++;\n\n\t\t\tlet axesConverged = axesCalc(cycleNum);\n\t\t\tlet paddingConverged = paddingCalc(cycleNum);\n\n\t\t\tconverged = cycleNum == CYCLE_LIMIT || (axesConverged && paddingConverged);\n\n\t\t\tif (!converged) {\n\t\t\t\tcalcSize(self.width, self.height);\n\t\t\t\tshouldSetSize = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setSize({width, height}) {\n\t\t_setSize(width, height);\n\t}\n\n\tself.setSize = setSize;\n\n\t// accumulate axis offsets, reduce canvas width\n\tfunction calcPlotRect() {\n\t\t// easements for edge labels\n\t\tlet hasTopAxis = false;\n\t\tlet hasBtmAxis = false;\n\t\tlet hasRgtAxis = false;\n\t\tlet hasLftAxis = false;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet {side, _size} = axis;\n\t\t\t\tlet isVt = side % 2;\n\t\t\t\tlet labelSize = axis.label != null ? axis.labelSize : 0;\n\n\t\t\t\tlet fullSize = _size + labelSize;\n\n\t\t\t\tif (fullSize > 0) {\n\t\t\t\t\tif (isVt) {\n\t\t\t\t\t\tplotWidCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 3) {\n\t\t\t\t\t\t\tplotLftCss += fullSize;\n\t\t\t\t\t\t\thasLftAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasRgtAxis = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tplotHgtCss -= fullSize;\n\n\t\t\t\t\t\tif (side == 0) {\n\t\t\t\t\t\t\tplotTopCss += fullSize;\n\t\t\t\t\t\t\thasTopAxis = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\thasBtmAxis = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsidesWithAxes[0] = hasTopAxis;\n\t\tsidesWithAxes[1] = hasRgtAxis;\n\t\tsidesWithAxes[2] = hasBtmAxis;\n\t\tsidesWithAxes[3] = hasLftAxis;\n\n\t\t// hz padding\n\t\tplotWidCss -= _padding[1] + _padding[3];\n\t\tplotLftCss += _padding[3];\n\n\t\t// vt padding\n\t\tplotHgtCss -= _padding[2] + _padding[0];\n\t\tplotTopCss += _padding[0];\n\t}\n\n\tfunction calcAxesRects() {\n\t\t// will accum +\n\t\tlet off1 = plotLftCss + plotWidCss;\n\t\tlet off2 = plotTopCss + plotHgtCss;\n\t\t// will accum -\n\t\tlet off3 = plotLftCss;\n\t\tlet off0 = plotTopCss;\n\n\t\tfunction incrOffset(side, size) {\n\t\t\tswitch (side) {\n\t\t\t\tcase 1: off1 += size; return off1 - size;\n\t\t\t\tcase 2: off2 += size; return off2 - size;\n\t\t\t\tcase 3: off3 -= size; return off3 + size;\n\t\t\t\tcase 0: off0 -= size; return off0 + size;\n\t\t\t}\n\t\t}\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (axis.show && axis._show) {\n\t\t\t\tlet side = axis.side;\n\n\t\t\t\taxis._pos = incrOffset(side, axis._size);\n\n\t\t\t\tif (axis.label != null)\n\t\t\t\t\taxis._lpos = incrOffset(side, axis.labelSize);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst cursor = self.cursor = assign({}, cursorOpts, {drag: {y: mode == 2}}, opts.cursor);\n\n\tif (cursor.dataIdx == null) {\n\t\tlet hov = cursor.hover;\n\n\t\tlet skip = hov.skip = new Set(hov.skip ?? []);\n\t\tskip.add(void 0); // alignment artifacts\n\t\tlet prox = hov.prox = fnOrSelf(hov.prox);\n\t\tlet bias = hov.bias ??= 0;\n\n\t\t// TODO: only scan between in-view idxs (i0, i1)\n\t\tcursor.dataIdx = (self, seriesIdx, cursorIdx, valAtPosX) => {\n\t\t\tif (seriesIdx == 0)\n\t\t\t\treturn cursorIdx;\n\n\t\t\tlet idx2 = cursorIdx;\n\n\t\t\tlet _prox = prox(self, seriesIdx, cursorIdx, valAtPosX) ?? inf;\n\t\t\tlet withProx = _prox >= 0 && _prox < inf;\n\t\t\tlet xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss;\n\t\t\tlet cursorLft = cursor.left;\n\n\t\t\tlet xValues = data[0];\n\t\t\tlet yValues = data[seriesIdx];\n\n\t\t\tif (skip.has(yValues[cursorIdx])) {\n\t\t\t\tidx2 = null;\n\n\t\t\t\tlet nonNullLft = null,\n\t\t\t\t\tnonNullRgt = null,\n\t\t\t\t\tj;\n\n\t\t\t\tif (bias == 0 || bias == -1) {\n\t\t\t\t\tj = cursorIdx;\n\t\t\t\t\twhile (nonNullLft == null && j-- > 0) {\n\t\t\t\t\t\tif (!skip.has(yValues[j]))\n\t\t\t\t\t\t\tnonNullLft = j;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (bias == 0 || bias == 1) {\n\t\t\t\t\tj = cursorIdx;\n\t\t\t\t\twhile (nonNullRgt == null && j++ < yValues.length) {\n\t\t\t\t\t\tif (!skip.has(yValues[j]))\n\t\t\t\t\t\t\tnonNullRgt = j;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (nonNullLft != null || nonNullRgt != null) {\n\t\t\t\t\tif (withProx) {\n\t\t\t\t\t\tlet lftPos = nonNullLft == null ? -Infinity : valToPosX(xValues[nonNullLft], scaleX, xDim, 0);\n\t\t\t\t\t\tlet rgtPos = nonNullRgt == null ? Infinity : valToPosX(xValues[nonNullRgt], scaleX, xDim, 0);\n\n\t\t\t\t\t\tlet lftDelta = cursorLft - lftPos;\n\t\t\t\t\t\tlet rgtDelta = rgtPos - cursorLft;\n\n\t\t\t\t\t\tif (lftDelta <= rgtDelta) {\n\t\t\t\t\t\t\tif (lftDelta <= _prox)\n\t\t\t\t\t\t\t\tidx2 = nonNullLft;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (rgtDelta <= _prox)\n\t\t\t\t\t\t\t\tidx2 = nonNullRgt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tidx2 =\n\t\t\t\t\t\t\tnonNullRgt == null ? nonNullLft :\n\t\t\t\t\t\t\tnonNullLft == null ? nonNullRgt :\n\t\t\t\t\t\t\tcursorIdx - nonNullLft <= nonNullRgt - cursorIdx ? nonNullLft : nonNullRgt;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (withProx) {\n\t\t\t\tlet dist = abs(cursorLft - valToPosX(xValues[cursorIdx], scaleX, xDim, 0));\n\n\t\t\t\tif (dist > _prox)\n\t\t\t\t\tidx2 = null;\n\t\t\t}\n\n\t\t\treturn idx2;\n\t\t};\n\t}\n\n\tconst setCursorEvent = e => { cursor.event = e; };\n\n\tcursor.idxs = activeIdxs;\n\n\tcursor._lock = false;\n\n\tlet points = cursor.points;\n\n\tpoints.show = fnOrSelf(points.show);\n\tpoints.size = fnOrSelf(points.size);\n\tpoints.stroke = fnOrSelf(points.stroke);\n\tpoints.width = fnOrSelf(points.width);\n\tpoints.fill = fnOrSelf(points.fill);\n\n\tconst focus = self.focus = assign({}, opts.focus || {alpha: 0.3}, cursor.focus);\n\n\tconst cursorFocus = focus.prox >= 0;\n\tconst cursorOnePt = cursorFocus && points.one;\n\n\t// series-intersection markers\n\tlet cursorPts = [];\n\t// position caches in CSS pixels\n\tlet cursorPtsLft = [];\n\tlet cursorPtsTop = [];\n\n\tfunction initCursorPt(s, si) {\n\t\tlet pt = points.show(self, si);\n\n\t\tif (pt) {\n\t\t\taddClass(pt, CURSOR_PT);\n\t\t\taddClass(pt, s.class);\n\t\t\telTrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t\tover.insertBefore(pt, cursorPts[si]);\n\n\t\t\treturn pt;\n\t\t}\n\t}\n\n\tfunction initSeries(s, i) {\n\t\tif (mode == 1 || i > 0) {\n\t\t\tlet isTime = mode == 1 && scales[s.scale].time;\n\n\t\t\tlet sv = s.value;\n\t\t\ts.value = isTime ? (isStr(sv) ? timeSeriesVal(_tzDate, timeSeriesStamp(sv, _fmtDate)) : sv || _timeSeriesVal) : sv || numSeriesVal;\n\t\t\ts.label = s.label || (isTime ? timeSeriesLabel : numSeriesLabel);\n\t\t}\n\n\t\tif (cursorOnePt || i > 0) {\n\t\t\ts.width = s.width == null ? 1 : s.width;\n\t\t\ts.paths = s.paths || linearPath || retNull;\n\t\t\ts.fillTo = fnOrSelf(s.fillTo || seriesFillTo);\n\t\t\ts.pxAlign = +ifNull(s.pxAlign, pxAlign);\n\t\t\ts.pxRound = pxRoundGen(s.pxAlign);\n\n\t\t\ts.stroke = fnOrSelf(s.stroke || null);\n\t\t\ts.fill = fnOrSelf(s.fill || null);\n\t\t\ts._stroke = s._fill = s._paths = s._focus = null;\n\n\t\t\tlet _ptDia = ptDia(max(1, s.width), 1);\n\t\t\tlet points = s.points = assign({}, {\n\t\t\t\tsize: _ptDia,\n\t\t\t\twidth: max(1, _ptDia * .2),\n\t\t\t\tstroke: s.stroke,\n\t\t\t\tspace: _ptDia * 2,\n\t\t\t\tpaths: pointsPath,\n\t\t\t\t_stroke: null,\n\t\t\t\t_fill: null,\n\t\t\t}, s.points);\n\t\t\tpoints.show = fnOrSelf(points.show);\n\t\t\tpoints.filter = fnOrSelf(points.filter);\n\t\t\tpoints.fill = fnOrSelf(points.fill);\n\t\t\tpoints.stroke = fnOrSelf(points.stroke);\n\t\t\tpoints.paths = fnOrSelf(points.paths);\n\t\t\tpoints.pxAlign = s.pxAlign;\n\t\t}\n\n\t\tif (showLegend) {\n\t\t\tlet rowCells = initLegendRow(s, i);\n\t\t\tlegendRows.splice(i, 0, rowCells[0]);\n\t\t\tlegendCells.splice(i, 0, rowCells[1]);\n\t\t\tlegend.values.push(null);\t// NULL_LEGEND_VALS not yet avil here :(\n\t\t}\n\n\t\tif (cursor.show) {\n\t\t\tactiveIdxs.splice(i, 0, null);\n\n\t\t\tlet pt = null;\n\n\t\t\tif (cursorOnePt) {\n\t\t\t\tif (i == 0)\n\t\t\t\t\tpt = initCursorPt(s, i);\n\t\t\t}\n\t\t\telse if (i > 0)\n\t\t\t\tpt = initCursorPt(s, i);\n\n\t\t\tcursorPts.splice(i, 0, pt);\n\t\t\tcursorPtsLft.splice(i, 0, 0);\n\t\t\tcursorPtsTop.splice(i, 0, 0);\n\t\t}\n\n\t\tfire(\"addSeries\", i);\n\t}\n\n\tfunction addSeries(opts, si) {\n\t\tsi = si == null ? series.length : si;\n\n\t\topts = mode == 1 ? setDefault(opts, si, xSeriesOpts, ySeriesOpts) : setDefault(opts, si, {}, xySeriesOpts);\n\n\t\tseries.splice(si, 0, opts);\n\t\tinitSeries(series[si], si);\n\t}\n\n\tself.addSeries = addSeries;\n\n\tfunction delSeries(i) {\n\t\tseries.splice(i, 1);\n\n\t\tif (showLegend) {\n\t\t\tlegend.values.splice(i, 1);\n\n\t\t\tlegendCells.splice(i, 1);\n\t\t\tlet tr = legendRows.splice(i, 1)[0];\n\t\t\toffMouse(null, tr.firstChild);\n\t\t\ttr.remove();\n\t\t}\n\n\t\tif (cursor.show) {\n\t\t\tactiveIdxs.splice(i, 1);\n\t\t\tcursorPts.splice(i, 1)[0].remove();\n\t\t\tcursorPtsLft.splice(i, 1);\n\t\t\tcursorPtsTop.splice(i, 1);\n\t\t}\n\n\t\t// TODO: de-init no-longer-needed scales?\n\n\t\tfire(\"delSeries\", i);\n\t}\n\n\tself.delSeries = delSeries;\n\n\tconst sidesWithAxes = [false, false, false, false];\n\n\tfunction initAxis(axis, i) {\n\t\taxis._show = axis.show;\n\n\t\tif (axis.show) {\n\t\t\tlet isVt = axis.side % 2;\n\n\t\t\tlet sc = scales[axis.scale];\n\n\t\t\t// this can occur if all series specify non-default scales\n\t\t\tif (sc == null) {\n\t\t\t\taxis.scale = isVt ? series[1].scale : xScaleKey;\n\t\t\t\tsc = scales[axis.scale];\n\t\t\t}\n\n\t\t\t// also set defaults for incrs & values based on axis distr\n\t\t\tlet isTime = sc.time;\n\n\t\t\taxis.size = fnOrSelf(axis.size);\n\t\t\taxis.space = fnOrSelf(axis.space);\n\t\t\taxis.rotate = fnOrSelf(axis.rotate);\n\n\t\t\tif (isArr(axis.incrs)) {\n\t\t\t\taxis.incrs.forEach(incr => {\n\t\t\t\t\t!fixedDec.has(incr) && fixedDec.set(incr, guessDec(incr));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\taxis.incrs = fnOrSelf(axis.incrs || ( sc.distr == 2 ? wholeIncrs : (isTime ? (ms == 1 ? timeIncrsMs : timeIncrsS) : numIncrs)));\n\t\t\taxis.splits = fnOrSelf(axis.splits || (isTime && sc.distr == 1 ? _timeAxisSplits : sc.distr == 3 ? logAxisSplits : sc.distr == 4 ? asinhAxisSplits : numAxisSplits));\n\n\t\t\taxis.stroke = fnOrSelf(axis.stroke);\n\t\t\taxis.grid.stroke = fnOrSelf(axis.grid.stroke);\n\t\t\taxis.ticks.stroke = fnOrSelf(axis.ticks.stroke);\n\t\t\taxis.border.stroke = fnOrSelf(axis.border.stroke);\n\n\t\t\tlet av = axis.values;\n\n\t\t\taxis.values = (\n\t\t\t\t// static array of tick values\n\t\t\t\tisArr(av) && !isArr(av[0]) ? fnOrSelf(av) :\n\t\t\t\t// temporal\n\t\t\t\tisTime ? (\n\t\t\t\t\t// config array of fmtDate string tpls\n\t\t\t\t\tisArr(av) ?\n\t\t\t\t\t\ttimeAxisVals(_tzDate, timeAxisStamps(av, _fmtDate)) :\n\t\t\t\t\t// fmtDate string tpl\n\t\t\t\t\tisStr(av) ?\n\t\t\t\t\t\ttimeAxisVal(_tzDate, av) :\n\t\t\t\t\tav || _timeAxisVals\n\t\t\t\t) : av || numAxisVals\n\t\t\t);\n\n\t\t\taxis.filter = fnOrSelf(axis.filter || ( sc.distr >= 3 && sc.log == 10 ? log10AxisValsFilt : sc.distr == 3 && sc.log == 2 ? log2AxisValsFilt : retArg1));\n\n\t\t\taxis.font = pxRatioFont(axis.font);\n\t\t\taxis.labelFont = pxRatioFont(axis.labelFont);\n\n\t\t\taxis._size = axis.size(self, null, i, 0);\n\n\t\t\taxis._space =\n\t\t\taxis._rotate =\n\t\t\taxis._incrs =\n\t\t\taxis._found =\t// foundIncrSpace\n\t\t\taxis._splits =\n\t\t\taxis._values = null;\n\n\t\t\tif (axis._size > 0) {\n\t\t\t\tsidesWithAxes[i] = true;\n\t\t\t\taxis._el = placeDiv(AXIS, wrap);\n\t\t\t}\n\n\t\t\t// debug\n\t\t//\taxis._el.style.background = \"#\" + Math.floor(Math.random()*16777215).toString(16) + '80';\n\t\t}\n\t}\n\n\tfunction autoPadSide(self, side, sidesWithAxes, cycleNum) {\n\t\tlet [hasTopAxis, hasRgtAxis, hasBtmAxis, hasLftAxis] = sidesWithAxes;\n\n\t\tlet ori = side % 2;\n\t\tlet size = 0;\n\n\t\tif (ori == 0 && (hasLftAxis || hasRgtAxis))\n\t\t\tsize = (side == 0 && !hasTopAxis || side == 2 && !hasBtmAxis ? round(xAxisOpts.size / 3) : 0);\n\t\tif (ori == 1 && (hasTopAxis || hasBtmAxis))\n\t\t\tsize = (side == 1 && !hasRgtAxis || side == 3 && !hasLftAxis ? round(yAxisOpts.size / 2) : 0);\n\n\t\treturn size;\n\t}\n\n\tconst padding = self.padding = (opts.padding || [autoPadSide,autoPadSide,autoPadSide,autoPadSide]).map(p => fnOrSelf(ifNull(p, autoPadSide)));\n\tconst _padding = self._padding = padding.map((p, i) => p(self, i, sidesWithAxes, 0));\n\n\tlet dataLen;\n\n\t// rendered data window\n\tlet i0 = null;\n\tlet i1 = null;\n\tconst idxs = mode == 1 ? series[0].idxs : null;\n\n\tlet data0 = null;\n\n\tlet viaAutoScaleX = false;\n\n\tfunction setData(_data, _resetScales) {\n\t\tdata = _data == null ? [] : _data;\n\n\t\tself.data = self._data = data;\n\n\t\tif (mode == 2) {\n\t\t\tdataLen = 0;\n\t\t\tfor (let i = 1; i < series.length; i++)\n\t\t\t\tdataLen += data[i][0].length;\n\t\t}\n\t\telse {\n\t\t\tif (data.length == 0)\n\t\t\t\tself.data = self._data = data = [[]];\n\n\t\t\tdata0 = data[0];\n\t\t\tdataLen = data0.length;\n\n\t\t\tlet scaleData = data;\n\n\t\t\tif (xScaleDistr == 2) {\n\t\t\t\tscaleData = data.slice();\n\n\t\t\t\tlet _data0 = scaleData[0] = Array(dataLen);\n\t\t\t\tfor (let i = 0; i < dataLen; i++)\n\t\t\t\t\t_data0[i] = i;\n\t\t\t}\n\n\t\t\tself._data = data = scaleData;\n\t\t}\n\n\t\tresetYSeries(true);\n\n\t\tfire(\"setData\");\n\n\t\t// forces x axis tick values to re-generate when neither x scale nor y scale changes\n\t\t// in ordinal mode, scale range is by index, so will not change if new data has same length, but tick values are from data\n\t\tif (xScaleDistr == 2) {\n\t\t\tshouldConvergeSize = true;\n\n\t\t\t/* or somewhat cheaper, and uglier:\n\t\t\tif (ready) {\n\t\t\t\t// logic extracted from axesCalc()\n\t\t\t\tlet i = 0;\n\t\t\t\tlet axis = axes[i];\n\t\t\t\tlet _splits = axis._splits.map(i => data0[i]);\n\t\t\t\tlet [_incr, _space] = axis._found;\n\t\t\t\tlet incr = data0[_splits[1]] - data0[_splits[0]];\n\t\t\t\taxis._values = axis.values(self, axis.filter(self, _splits, i, _space, incr), i, _space, incr);\n\t\t\t}\n\t\t\t*/\n\t\t}\n\n\t\tif (_resetScales !== false) {\n\t\t\tlet xsc = scaleX;\n\n\t\t\tif (xsc.auto(self, viaAutoScaleX))\n\t\t\t\tautoScaleX();\n\t\t\telse\n\t\t\t\t_setScale(xScaleKey, xsc.min, xsc.max);\n\n\t\t\tshouldSetCursor = shouldSetCursor || cursor.left >= 0;\n\t\t\tshouldSetLegend = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setData = setData;\n\n\tfunction autoScaleX() {\n\t\tviaAutoScaleX = true;\n\n\t\tlet _min, _max;\n\n\t\tif (mode == 1) {\n\t\t\tif (dataLen > 0) {\n\t\t\t\ti0 = idxs[0] = 0;\n\t\t\t\ti1 = idxs[1] = dataLen - 1;\n\n\t\t\t\t_min = data[0][i0];\n\t\t\t\t_max = data[0][i1];\n\n\t\t\t\tif (xScaleDistr == 2) {\n\t\t\t\t\t_min = i0;\n\t\t\t\t\t_max = i1;\n\t\t\t\t}\n\t\t\t\telse if (_min == _max) {\n\t\t\t\t\tif (xScaleDistr == 3)\n\t\t\t\t\t\t[_min, _max] = rangeLog(_min, _min, scaleX.log, false);\n\t\t\t\t\telse if (xScaleDistr == 4)\n\t\t\t\t\t\t[_min, _max] = rangeAsinh(_min, _min, scaleX.log, false);\n\t\t\t\t\telse if (scaleX.time)\n\t\t\t\t\t\t_max = _min + round(86400 / ms);\n\t\t\t\t\telse\n\t\t\t\t\t\t[_min, _max] = rangeNum(_min, _max, rangePad, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\ti0 = idxs[0] = _min = null;\n\t\t\t\ti1 = idxs[1] = _max = null;\n\t\t\t}\n\t\t}\n\n\t\t_setScale(xScaleKey, _min, _max);\n\t}\n\n\tlet ctxStroke, ctxFill, ctxWidth, ctxDash, ctxJoin, ctxCap, ctxFont, ctxAlign, ctxBaseline;\n\tlet ctxAlpha;\n\n\tfunction setCtxStyle(stroke, width, dash, cap, fill, join) {\n\t\tstroke ??= transparent;\n\t\tdash ??= EMPTY_ARR;\n\t\tcap ??= \"butt\"; // (‿|‿)\n\t\tfill ??= transparent;\n\t\tjoin ??= \"round\";\n\n\t\tif (stroke != ctxStroke)\n\t\t\tctx.strokeStyle = ctxStroke = stroke;\n\t\tif (fill != ctxFill)\n\t\t\tctx.fillStyle = ctxFill = fill;\n\t\tif (width != ctxWidth)\n\t\t\tctx.lineWidth = ctxWidth = width;\n\t\tif (join != ctxJoin)\n\t\t\tctx.lineJoin = ctxJoin = join;\n\t\tif (cap != ctxCap)\n\t\t\tctx.lineCap = ctxCap = cap;\n\t\tif (dash != ctxDash)\n\t\t\tctx.setLineDash(ctxDash = dash);\n\t}\n\n\tfunction setFontStyle(font, fill, align, baseline) {\n\t\tif (fill != ctxFill)\n\t\t\tctx.fillStyle = ctxFill = fill;\n\t\tif (font != ctxFont)\n\t\t\tctx.font = ctxFont = font;\n\t\tif (align != ctxAlign)\n\t\t\tctx.textAlign = ctxAlign = align;\n\t\tif (baseline != ctxBaseline)\n\t\t\tctx.textBaseline = ctxBaseline = baseline;\n\t}\n\n\tfunction accScale(wsc, psc, facet, data, sorted = 0) {\n\t\tif (data.length > 0 && wsc.auto(self, viaAutoScaleX) && (psc == null || psc.min == null)) {\n\t\t\tlet _i0 = ifNull(i0, 0);\n\t\t\tlet _i1 = ifNull(i1, data.length - 1);\n\n\t\t\t// only run getMinMax() for invalidated series data, else reuse\n\t\t\tlet minMax = facet.min == null ? (wsc.distr == 3 ? getMinMaxLog(data, _i0, _i1) : getMinMax(data, _i0, _i1, sorted)) : [facet.min, facet.max];\n\n\t\t\t// initial min/max\n\t\t\twsc.min = min(wsc.min, facet.min = minMax[0]);\n\t\t\twsc.max = max(wsc.max, facet.max = minMax[1]);\n\t\t}\n\t}\n\n\tconst AUTOSCALE = {min: null, max: null};\n\n\tfunction setScales() {\n\t//\tlog(\"setScales()\", arguments);\n\n\t\t// implicitly add auto scales, and unranged scales\n\t\tfor (let k in scales) {\n\t\t\tlet sc = scales[k];\n\n\t\t\tif (pendScales[k] == null &&\n\t\t\t\t(\n\t\t\t\t\t// scales that have never been set (on init)\n\t\t\t\t\tsc.min == null ||\n\t\t\t\t\t// or auto scales when the x scale was explicitly set\n\t\t\t\t\tpendScales[xScaleKey] != null && sc.auto(self, viaAutoScaleX)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tpendScales[k] = AUTOSCALE;\n\t\t\t}\n\t\t}\n\n\t\t// implicitly add dependent scales\n\t\tfor (let k in scales) {\n\t\t\tlet sc = scales[k];\n\n\t\t\tif (pendScales[k] == null && sc.from != null && pendScales[sc.from] != null)\n\t\t\t\tpendScales[k] = AUTOSCALE;\n\t\t}\n\n\t\t// explicitly setting the x-scale invalidates everything (acts as redraw)\n\t\tif (pendScales[xScaleKey] != null)\n\t\t\tresetYSeries(true); // TODO: only reset series on auto scales?\n\n\t\tlet wipScales = {};\n\n\t\tfor (let k in pendScales) {\n\t\t\tlet psc = pendScales[k];\n\n\t\t\tif (psc != null) {\n\t\t\t\tlet wsc = wipScales[k] = copy(scales[k], fastIsObj);\n\n\t\t\t\tif (psc.min != null)\n\t\t\t\t\tassign(wsc, psc);\n\t\t\t\telse if (k != xScaleKey || mode == 2) {\n\t\t\t\t\tif (dataLen == 0 && wsc.from == null) {\n\t\t\t\t\t\tlet minMax = wsc.range(self, null, null, k);\n\t\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\twsc.min = inf;\n\t\t\t\t\t\twsc.max = -inf;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (dataLen > 0) {\n\t\t\t// pre-range y-scales from y series' data values\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (mode == 1) {\n\t\t\t\t\tlet k = s.scale;\n\t\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\t\tif (psc == null)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\tlet wsc = wipScales[k];\n\n\t\t\t\t\tif (i == 0) {\n\t\t\t\t\t\tlet minMax = wsc.range(self, wsc.min, wsc.max, k);\n\n\t\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\t\twsc.max = minMax[1];\n\n\t\t\t\t\t\ti0 = closestIdx(wsc.min, data[0]);\n\t\t\t\t\t\ti1 = closestIdx(wsc.max, data[0]);\n\n\t\t\t\t\t\t// don't try to contract same or adjacent idxs\n\t\t\t\t\t\tif (i1 - i0 > 1) {\n\t\t\t\t\t\t\t// closest indices can be outside of view\n\t\t\t\t\t\t\tif (data[0][i0] < wsc.min)\n\t\t\t\t\t\t\t\ti0++;\n\t\t\t\t\t\t\tif (data[0][i1] > wsc.max)\n\t\t\t\t\t\t\t\ti1--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ts.min = data0[i0];\n\t\t\t\t\t\ts.max = data0[i1];\n\t\t\t\t\t}\n\t\t\t\t\telse if (s.show && s.auto)\n\t\t\t\t\t\taccScale(wsc, psc, s, data[i], s.sorted);\n\n\t\t\t\t\ts.idxs[0] = i0;\n\t\t\t\t\ts.idxs[1] = i1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\tif (s.show && s.auto) {\n\t\t\t\t\t\t\t// TODO: only handles, assumes and requires facets[0] / 'x' scale, and facets[1] / 'y' scale\n\t\t\t\t\t\t\tlet [ xFacet, yFacet ] = s.facets;\n\t\t\t\t\t\t\tlet xScaleKey = xFacet.scale;\n\t\t\t\t\t\t\tlet yScaleKey = yFacet.scale;\n\t\t\t\t\t\t\tlet [ xData, yData ] = data[i];\n\n\t\t\t\t\t\t\tlet wscx = wipScales[xScaleKey];\n\t\t\t\t\t\t\tlet wscy = wipScales[yScaleKey];\n\n\t\t\t\t\t\t\t// null can happen when only x is zoomed, but y has static range and doesnt get auto-added to pending\n\t\t\t\t\t\t\twscx != null && accScale(wscx, pendScales[xScaleKey], xFacet, xData, xFacet.sorted);\n\t\t\t\t\t\t\twscy != null && accScale(wscy, pendScales[yScaleKey], yFacet, yData, yFacet.sorted);\n\n\t\t\t\t\t\t\t// temp\n\t\t\t\t\t\t\ts.min = yFacet.min;\n\t\t\t\t\t\t\ts.max = yFacet.max;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// range independent scales\n\t\t\tfor (let k in wipScales) {\n\t\t\t\tlet wsc = wipScales[k];\n\t\t\t\tlet psc = pendScales[k];\n\n\t\t\t\tif (wsc.from == null && (psc == null || psc.min == null)) {\n\t\t\t\t\tlet minMax = wsc.range(\n\t\t\t\t\t\tself,\n\t\t\t\t\t\twsc.min == inf ? null : wsc.min,\n\t\t\t\t\t\twsc.max == -inf ? null : wsc.max,\n\t\t\t\t\t\tk\n\t\t\t\t\t);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// range dependent scales\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\n\t\t\tif (wsc.from != null) {\n\t\t\t\tlet base = wipScales[wsc.from];\n\n\t\t\t\tif (base.min == null)\n\t\t\t\t\twsc.min = wsc.max = null;\n\t\t\t\telse {\n\t\t\t\t\tlet minMax = wsc.range(self, base.min, base.max, k);\n\t\t\t\t\twsc.min = minMax[0];\n\t\t\t\t\twsc.max = minMax[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet changed = {};\n\t\tlet anyChanged = false;\n\n\t\tfor (let k in wipScales) {\n\t\t\tlet wsc = wipScales[k];\n\t\t\tlet sc = scales[k];\n\n\t\t\tif (sc.min != wsc.min || sc.max != wsc.max) {\n\t\t\t\tsc.min = wsc.min;\n\t\t\t\tsc.max = wsc.max;\n\n\t\t\t\tlet distr = sc.distr;\n\n\t\t\t\tsc._min = distr == 3 ? log10(sc.min) : distr == 4 ? asinh(sc.min, sc.asinh) : distr == 100 ? sc.fwd(sc.min) : sc.min;\n\t\t\t\tsc._max = distr == 3 ? log10(sc.max) : distr == 4 ? asinh(sc.max, sc.asinh) : distr == 100 ? sc.fwd(sc.max) : sc.max;\n\n\t\t\t\tchanged[k] = anyChanged = true;\n\t\t\t}\n\t\t}\n\n\t\tif (anyChanged) {\n\t\t\t// invalidate paths of all series on changed scales\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (mode == 2) {\n\t\t\t\t\tif (i > 0 && changed.y)\n\t\t\t\t\t\ts._paths = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (changed[s.scale])\n\t\t\t\t\t\ts._paths = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfor (let k in changed) {\n\t\t\t\tshouldConvergeSize = true;\n\t\t\t\tfire(\"setScale\", k);\n\t\t\t}\n\n\t\t\tif (cursor.show && cursor.left >= 0)\n\t\t\t\tshouldSetCursor = shouldSetLegend = true;\n\t\t}\n\n\t\tfor (let k in pendScales)\n\t\t\tpendScales[k] = null;\n\t}\n\n\t// grabs the nearest indices with y data outside of x-scale limits\n\tfunction getOuterIdxs(ydata) {\n\t\tlet _i0 = clamp(i0 - 1, 0, dataLen - 1);\n\t\tlet _i1 = clamp(i1 + 1, 0, dataLen - 1);\n\n\t\twhile (ydata[_i0] == null && _i0 > 0)\n\t\t\t_i0--;\n\n\t\twhile (ydata[_i1] == null && _i1 < dataLen - 1)\n\t\t\t_i1++;\n\n\t\treturn [_i0, _i1];\n\t}\n\n\tfunction drawSeries() {\n\t\tif (dataLen > 0) {\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tcacheStrokeFill(i, false);\n\t\t\t\t\tcacheStrokeFill(i, true);\n\n\t\t\t\t\tif (s._paths == null) {\n\t\t\t\t\t\tif (ctxAlpha != s.alpha)\n\t\t\t\t\t\t\tctx.globalAlpha = ctxAlpha = s.alpha;\n\n\t\t\t\t\t\tlet _idxs = mode == 2 ? [0, data[i][0].length - 1] : getOuterIdxs(data[i]);\n\t\t\t\t\t\ts._paths = s.paths(self, i, _idxs[0], _idxs[1]);\n\n\t\t\t\t\t\tif (ctxAlpha != 1)\n\t\t\t\t\t\t\tctx.globalAlpha = ctxAlpha = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tseries.forEach((s, i) => {\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\tif (ctxAlpha != s.alpha)\n\t\t\t\t\t\tctx.globalAlpha = ctxAlpha = s.alpha;\n\n\t\t\t\t\ts._paths != null && drawPath(i, false);\n\n\t\t\t\t\t{\n\t\t\t\t\t\tlet _gaps = s._paths != null ? s._paths.gaps : null;\n\n\t\t\t\t\t\tlet show = s.points.show(self, i, i0, i1, _gaps);\n\t\t\t\t\t\tlet idxs = s.points.filter(self, i, show, _gaps);\n\n\t\t\t\t\t\tif (show || idxs) {\n\t\t\t\t\t\t\ts.points._paths = s.points.paths(self, i, i0, i1, idxs);\n\t\t\t\t\t\t\tdrawPath(i, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (ctxAlpha != 1)\n\t\t\t\t\t\tctx.globalAlpha = ctxAlpha = 1;\n\n\t\t\t\t\tfire(\"drawSeries\", i);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction cacheStrokeFill(si, _points) {\n\t\tlet s = _points ? series[si].points : series[si];\n\n\t\ts._stroke = s.stroke(self, si);\n\t\ts._fill = s.fill(self, si);\n\t}\n\n\tfunction drawPath(si, _points) {\n\t\tlet s = _points ? series[si].points : series[si];\n\n\t\tlet {\n\t\t\tstroke,\n\t\t\tfill,\n\t\t\tclip: gapsClip,\n\t\t\tflags,\n\n\t\t\t_stroke: strokeStyle = s._stroke,\n\t\t\t_fill: fillStyle = s._fill,\n\t\t\t_width: width = s.width,\n\t\t} = s._paths;\n\n\t\twidth = roundDec(width * pxRatio, 3);\n\n\t\tlet boundsClip = null;\n\t\tlet offset = (width % 2) / 2;\n\n\t\tif (_points && fillStyle == null)\n\t\t\tfillStyle = width > 0 ? \"#fff\" : strokeStyle;\n\n\t\tlet _pxAlign = s.pxAlign == 1 && offset > 0;\n\n\t\t_pxAlign && ctx.translate(offset, offset);\n\n\t\tif (!_points) {\n\t\t\tlet lft = plotLft - width / 2,\n\t\t\t\ttop = plotTop - width / 2,\n\t\t\t\twid = plotWid + width,\n\t\t\t\thgt = plotHgt + width;\n\n\t\t\tboundsClip = new Path2D();\n\t\t\tboundsClip.rect(lft, top, wid, hgt);\n\t\t}\n\n\t\t// the points pathbuilder's gapsClip is its boundsClip, since points dont need gaps clipping, and bounds depend on point size\n\t\tif (_points)\n\t\t\tstrokeFill(strokeStyle, width, s.dash, s.cap, fillStyle, stroke, fill, flags, gapsClip);\n\t\telse\n\t\t\tfillStroke(si, strokeStyle, width, s.dash, s.cap, fillStyle, stroke, fill, flags, boundsClip, gapsClip);\n\n\t\t_pxAlign && ctx.translate(-offset, -offset);\n\t}\n\n\tfunction fillStroke(si, strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath, flags, boundsClip, gapsClip) {\n\t\tlet didStrokeFill = false;\n\n\t\t// for all bands where this series is the top edge, create upwards clips using the bottom edges\n\t\t// and apply clips + fill with band fill or dfltFill\n\t\tflags != 0 && bands.forEach((b, bi) => {\n\t\t\t// isUpperEdge?\n\t\t\tif (b.series[0] == si) {\n\t\t\t\tlet lowerEdge = series[b.series[1]];\n\t\t\t\tlet lowerData = data[b.series[1]];\n\n\t\t\t\tlet bandClip = (lowerEdge._paths || EMPTY_OBJ).band;\n\n\t\t\t\tif (isArr(bandClip))\n\t\t\t\t\tbandClip = b.dir == 1 ? bandClip[0] : bandClip[1];\n\n\t\t\t\tlet gapsClip2;\n\n\t\t\t\tlet _fillStyle = null;\n\n\t\t\t\t// hasLowerEdge?\n\t\t\t\tif (lowerEdge.show && bandClip && hasData(lowerData, i0, i1)) {\n\t\t\t\t\t_fillStyle = b.fill(self, bi) || fillStyle;\n\t\t\t\t\tgapsClip2 = lowerEdge._paths.clip;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tbandClip = null;\n\n\t\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, _fillStyle, strokePath, fillPath, flags, boundsClip, gapsClip, gapsClip2, bandClip);\n\n\t\t\t\tdidStrokeFill = true;\n\t\t\t}\n\t\t});\n\n\t\tif (!didStrokeFill)\n\t\t\tstrokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath, flags, boundsClip, gapsClip);\n\t}\n\n\tconst CLIP_FILL_STROKE = BAND_CLIP_FILL | BAND_CLIP_STROKE;\n\n\tfunction strokeFill(strokeStyle, lineWidth, lineDash, lineCap, fillStyle, strokePath, fillPath, flags, boundsClip, gapsClip, gapsClip2, bandClip) {\n\t\tsetCtxStyle(strokeStyle, lineWidth, lineDash, lineCap, fillStyle);\n\n\t\tif (boundsClip || gapsClip || bandClip) {\n\t\t\tctx.save();\n\t\t\tboundsClip && ctx.clip(boundsClip);\n\t\t\tgapsClip && ctx.clip(gapsClip);\n\t\t}\n\n\t\tif (bandClip) {\n\t\t\tif ((flags & CLIP_FILL_STROKE) == CLIP_FILL_STROKE) {\n\t\t\t\tctx.clip(bandClip);\n\t\t\t\tgapsClip2 && ctx.clip(gapsClip2);\n\t\t\t\tdoFill(fillStyle, fillPath);\n\t\t\t\tdoStroke(strokeStyle, strokePath, lineWidth);\n\t\t\t}\n\t\t\telse if (flags & BAND_CLIP_STROKE) {\n\t\t\t\tdoFill(fillStyle, fillPath);\n\t\t\t\tctx.clip(bandClip);\n\t\t\t\tdoStroke(strokeStyle, strokePath, lineWidth);\n\t\t\t}\n\t\t\telse if (flags & BAND_CLIP_FILL) {\n\t\t\t\tctx.save();\n\t\t\t\tctx.clip(bandClip);\n\t\t\t\tgapsClip2 && ctx.clip(gapsClip2);\n\t\t\t\tdoFill(fillStyle, fillPath);\n\t\t\t\tctx.restore();\n\t\t\t\tdoStroke(strokeStyle, strokePath, lineWidth);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tdoFill(fillStyle, fillPath);\n\t\t\tdoStroke(strokeStyle, strokePath, lineWidth);\n\t\t}\n\n\t\tif (boundsClip || gapsClip || bandClip)\n\t\t\tctx.restore();\n\t}\n\n\tfunction doStroke(strokeStyle, strokePath, lineWidth) {\n\t\tif (lineWidth > 0) {\n\t\t\tif (strokePath instanceof Map) {\n\t\t\t\tstrokePath.forEach((strokePath, strokeStyle) => {\n\t\t\t\t\tctx.strokeStyle = ctxStroke = strokeStyle;\n\t\t\t\t\tctx.stroke(strokePath);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t\tstrokePath != null && strokeStyle && ctx.stroke(strokePath);\n\t\t}\n\t}\n\n\tfunction doFill(fillStyle, fillPath) {\n\t\tif (fillPath instanceof Map) {\n\t\t\tfillPath.forEach((fillPath, fillStyle) => {\n\t\t\t\tctx.fillStyle = ctxFill = fillStyle;\n\t\t\t\tctx.fill(fillPath);\n\t\t\t});\n\t\t}\n\t\telse\n\t\t\tfillPath != null && fillStyle && ctx.fill(fillPath);\n\t}\n\n\tfunction getIncrSpace(axisIdx, min, max, fullDim) {\n\t\tlet axis = axes[axisIdx];\n\n\t\tlet incrSpace;\n\n\t\tif (fullDim <= 0)\n\t\t\tincrSpace = [0, 0];\n\t\telse {\n\t\t\tlet minSpace = axis._space = axis.space(self, axisIdx, min, max, fullDim);\n\t\t\tlet incrs = axis._incrs = axis.incrs(self, axisIdx, min, max, fullDim, minSpace);\n\t\t\tincrSpace = findIncr(min, max, incrs, fullDim, minSpace);\n\t\t}\n\n\t\treturn (axis._found = incrSpace);\n\t}\n\n\tfunction drawOrthoLines(offs, filts, ori, side, pos0, len, width, stroke, dash, cap) {\n\t\tlet offset = (width % 2) / 2;\n\n\t\tpxAlign == 1 && ctx.translate(offset, offset);\n\n\t\tsetCtxStyle(stroke, width, dash, cap, stroke);\n\n\t\tctx.beginPath();\n\n\t\tlet x0, y0, x1, y1, pos1 = pos0 + (side == 0 || side == 3 ? -len : len);\n\n\t\tif (ori == 0) {\n\t\t\ty0 = pos0;\n\t\t\ty1 = pos1;\n\t\t}\n\t\telse {\n\t\t\tx0 = pos0;\n\t\t\tx1 = pos1;\n\t\t}\n\n\t\tfor (let i = 0; i < offs.length; i++) {\n\t\t\tif (filts[i] != null) {\n\t\t\t\tif (ori == 0)\n\t\t\t\t\tx0 = x1 = offs[i];\n\t\t\t\telse\n\t\t\t\t\ty0 = y1 = offs[i];\n\n\t\t\t\tctx.moveTo(x0, y0);\n\t\t\t\tctx.lineTo(x1, y1);\n\t\t\t}\n\t\t}\n\n\t\tctx.stroke();\n\n\t\tpxAlign == 1 && ctx.translate(-offset, -offset);\n\t}\n\n\tfunction axesCalc(cycleNum) {\n\t//\tlog(\"axesCalc()\", arguments);\n\n\t\tlet converged = true;\n\n\t\taxes.forEach((axis, i) => {\n\t\t\tif (!axis.show)\n\t\t\t\treturn;\n\n\t\t\tlet scale = scales[axis.scale];\n\n\t\t\tif (scale.min == null) {\n\t\t\t\tif (axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = false;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!axis._show) {\n\t\t\t\t\tconverged = false;\n\t\t\t\t\taxis._show = true;\n\t\t\t\t\tresetYSeries(false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet {min, max} = scale;\t\t// \t\t// should this toggle them ._show = false\n\n\t\t\tlet [_incr, _space] = getIncrSpace(i, min, max, ori == 0 ? plotWidCss : plotHgtCss);\n\n\t\t\tif (_space == 0)\n\t\t\t\treturn;\n\n\t\t\t// if we're using index positions, force first tick to match passed index\n\t\t\tlet forceMin = scale.distr == 2;\n\n\t\t\tlet _splits = axis._splits = axis.splits(self, i, min, max, _incr, _space, forceMin);\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\tlet values = axis._values = axis.values(self, axis.filter(self, splits, i, _space, incr), i, _space, incr);\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\taxis._rotate = side == 2 ? axis.rotate(self, values, i, _space) : 0;\n\n\t\t\tlet oldSize = axis._size;\n\n\t\t\taxis._size = ceil(axis.size(self, values, i, cycleNum));\n\n\t\t\tif (oldSize != null && axis._size != oldSize)\t\t\t// ready && ?\n\t\t\t\tconverged = false;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction paddingCalc(cycleNum) {\n\t\tlet converged = true;\n\n\t\tpadding.forEach((p, i) => {\n\t\t\tlet _p = p(self, i, sidesWithAxes, cycleNum);\n\n\t\t\tif (_p != _padding[i])\n\t\t\t\tconverged = false;\n\n\t\t\t_padding[i] = _p;\n\t\t});\n\n\t\treturn converged;\n\t}\n\n\tfunction drawAxesGrid() {\n\t\tfor (let i = 0; i < axes.length; i++) {\n\t\t\tlet axis = axes[i];\n\n\t\t\tif (!axis.show || !axis._show)\n\t\t\t\tcontinue;\n\n\t\t\tlet side = axis.side;\n\t\t\tlet ori = side % 2;\n\n\t\t\tlet x, y;\n\n\t\t\tlet fillStyle = axis.stroke(self, i);\n\n\t\t\tlet shiftDir = side == 0 || side == 3 ? -1 : 1;\n\n\t\t\t// axis label\n\t\t\tif (axis.label) {\n\t\t\t\tlet shiftAmt = axis.labelGap * shiftDir;\n\t\t\t\tlet baseLpos = round((axis._lpos + shiftAmt) * pxRatio);\n\n\t\t\t\tsetFontStyle(axis.labelFont[0], fillStyle, \"center\", side == 2 ? TOP : BOTTOM);\n\n\t\t\t\tctx.save();\n\n\t\t\t\tif (ori == 1) {\n\t\t\t\t\tx = y = 0;\n\n\t\t\t\t\tctx.translate(\n\t\t\t\t\t\tbaseLpos,\n\t\t\t\t\t\tround(plotTop + plotHgt / 2),\n\t\t\t\t\t);\n\t\t\t\t\tctx.rotate((side == 3 ? -PI : PI) / 2);\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tx = round(plotLft + plotWid / 2);\n\t\t\t\t\ty = baseLpos;\n\t\t\t\t}\n\n\t\t\t\tctx.fillText(axis.label, x, y);\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\n\t\t\tlet [_incr, _space] = axis._found;\n\n\t\t\tif (_space == 0)\n\t\t\t\tcontinue;\n\n\t\t\tlet scale = scales[axis.scale];\n\n\t\t\tlet plotDim = ori == 0 ? plotWid : plotHgt;\n\t\t\tlet plotOff = ori == 0 ? plotLft : plotTop;\n\n\t\t\tlet axisGap = round(axis.gap * pxRatio);\n\n\t\t\tlet _splits = axis._splits;\n\n\t\t\t// tick labels\n\t\t\t// BOO this assumes a specific data/series\n\t\t\tlet splits = scale.distr == 2 ? _splits.map(i => data0[i]) : _splits;\n\t\t\tlet incr = scale.distr == 2 ? data0[_splits[1]] - data0[_splits[0]] : _incr;\n\n\t\t\tlet ticks = axis.ticks;\n\t\t\tlet border = axis.border;\n\t\t\tlet tickSize = ticks.show ? round(ticks.size * pxRatio) : 0;\n\n\t\t\t// rotating of labels only supported on bottom x axis\n\t\t\tlet angle = axis._rotate * -PI/180;\n\n\t\t\tlet basePos = pxRound(axis._pos * pxRatio);\n\t\t\tlet shiftAmt = (tickSize + axisGap) * shiftDir;\n\t\t\tlet finalPos = basePos + shiftAmt;\n\t\t\t y = ori == 0 ? finalPos : 0;\n\t\t\t x = ori == 1 ? finalPos : 0;\n\n\t\t\tlet font = axis.font[0];\n\t\t\tlet textAlign = axis.align == 1 ? LEFT :\n\t\t\t axis.align == 2 ? RIGHT :\n\t\t\t angle > 0 ? LEFT :\n\t\t\t angle < 0 ? RIGHT :\n\t\t\t ori == 0 ? \"center\" : side == 3 ? RIGHT : LEFT;\n\t\t\tlet textBaseline = angle ||\n\t\t\t ori == 1 ? \"middle\" : side == 2 ? TOP : BOTTOM;\n\n\t\t\tsetFontStyle(font, fillStyle, textAlign, textBaseline);\n\n\t\t\tlet lineHeight = axis.font[1] * axis.lineGap;\n\n\t\t\tlet canOffs = _splits.map(val => pxRound(getPos(val, scale, plotDim, plotOff)));\n\n\t\t\tlet _values = axis._values;\n\n\t\t\tfor (let i = 0; i < _values.length; i++) {\n\t\t\t\tlet val = _values[i];\n\n\t\t\t\tif (val != null) {\n\t\t\t\t\tif (ori == 0)\n\t\t\t\t\t\tx = canOffs[i];\n\t\t\t\t\telse\n\t\t\t\t\t\ty = canOffs[i];\n\n\t\t\t\t\tval = \"\" + val;\n\n\t\t\t\t\tlet _parts = val.indexOf(\"\\n\") == -1 ? [val] : val.split(/\\n/gm);\n\n\t\t\t\t\tfor (let j = 0; j < _parts.length; j++) {\n\t\t\t\t\t\tlet text = _parts[j];\n\n\t\t\t\t\t\tif (angle) {\n\t\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\t\tctx.translate(x, y + j * lineHeight); // can this be replaced with position math?\n\t\t\t\t\t\t\tctx.rotate(angle); // can this be done once?\n\t\t\t\t\t\t\tctx.fillText(text, 0, 0);\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tctx.fillText(text, x, y + j * lineHeight);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ticks\n\t\t\tif (ticks.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tticks.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tside,\n\t\t\t\t\tbasePos,\n\t\t\t\t\ttickSize,\n\t\t\t\t\troundDec(ticks.width * pxRatio, 3),\n\t\t\t\t\tticks.stroke(self, i),\n\t\t\t\t\tticks.dash,\n\t\t\t\t\tticks.cap,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// grid\n\t\t\tlet grid = axis.grid;\n\n\t\t\tif (grid.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\tcanOffs,\n\t\t\t\t\tgrid.filter(self, splits, i, _space, incr),\n\t\t\t\t\tori,\n\t\t\t\t\tori == 0 ? 2 : 1,\n\t\t\t\t\tori == 0 ? plotTop : plotLft,\n\t\t\t\t\tori == 0 ? plotHgt : plotWid,\n\t\t\t\t\troundDec(grid.width * pxRatio, 3),\n\t\t\t\t\tgrid.stroke(self, i),\n\t\t\t\t\tgrid.dash,\n\t\t\t\t\tgrid.cap,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (border.show) {\n\t\t\t\tdrawOrthoLines(\n\t\t\t\t\t[basePos],\n\t\t\t\t\t[1],\n\t\t\t\t\tori == 0 ? 1 : 0,\n\t\t\t\t\tori == 0 ? 1 : 2,\n\t\t\t\t\tori == 1 ? plotTop : plotLft,\n\t\t\t\t\tori == 1 ? plotHgt : plotWid,\n\t\t\t\t\troundDec(border.width * pxRatio, 3),\n\t\t\t\t\tborder.stroke(self, i),\n\t\t\t\t\tborder.dash,\n\t\t\t\t\tborder.cap,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tfire(\"drawAxes\");\n\t}\n\n\tfunction resetYSeries(minMax) {\n\t//\tlog(\"resetYSeries()\", arguments);\n\n\t\tseries.forEach((s, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\ts._paths = null;\n\n\t\t\t\tif (minMax) {\n\t\t\t\t\tif (mode == 1) {\n\t\t\t\t\t\ts.min = null;\n\t\t\t\t\t\ts.max = null;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ts.facets.forEach(f => {\n\t\t\t\t\t\t\tf.min = null;\n\t\t\t\t\t\t\tf.max = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tlet queuedCommit = false;\n\tlet deferHooks = false;\n\tlet hooksQueue = [];\n\n\tfunction flushHooks() {\n\t\tdeferHooks = false;\n\n\t\tfor (let i = 0; i < hooksQueue.length; i++)\n\t\t\tfire(...hooksQueue[i]);\n\n\t\thooksQueue.length = 0;\n\t}\n\n\tfunction commit() {\n\t\tif (!queuedCommit) {\n\t\t\tmicroTask(_commit);\n\t\t\tqueuedCommit = true;\n\t\t}\n\t}\n\n\t// manual batching (aka immediate mode), skips microtask queue\n\tfunction batch(fn, _deferHooks = false) {\n\t\tqueuedCommit = true;\n\t\tdeferHooks = _deferHooks;\n\n\t\tfn(self);\n\t\t_commit();\n\n\t\tif (_deferHooks && hooksQueue.length > 0)\n\t\t\tqueueMicrotask(flushHooks);\n\t}\n\n\tself.batch = batch;\n\n\tfunction _commit() {\n\t//\tlog(\"_commit()\", arguments);\n\n\t\tif (shouldSetScales) {\n\t\t\tsetScales();\n\t\t\tshouldSetScales = false;\n\t\t}\n\n\t\tif (shouldConvergeSize) {\n\t\t\tconvergeSize();\n\t\t\tshouldConvergeSize = false;\n\t\t}\n\n\t\tif (shouldSetSize) {\n\t\t\tsetStylePx(under, LEFT, plotLftCss);\n\t\t\tsetStylePx(under, TOP, plotTopCss);\n\t\t\tsetStylePx(under, WIDTH, plotWidCss);\n\t\t\tsetStylePx(under, HEIGHT, plotHgtCss);\n\n\t\t\tsetStylePx(over, LEFT, plotLftCss);\n\t\t\tsetStylePx(over, TOP, plotTopCss);\n\t\t\tsetStylePx(over, WIDTH, plotWidCss);\n\t\t\tsetStylePx(over, HEIGHT, plotHgtCss);\n\n\t\t\tsetStylePx(wrap, WIDTH, fullWidCss);\n\t\t\tsetStylePx(wrap, HEIGHT, fullHgtCss);\n\n\t\t\t// NOTE: mutating this during print preview in Chrome forces transparent\n\t\t\t// canvas pixels to white, even when followed up with clearRect() below\n\t\t\tcan.width = round(fullWidCss * pxRatio);\n\t\t\tcan.height = round(fullHgtCss * pxRatio);\n\n\t\t\taxes.forEach(({ _el, _show, _size, _pos, side }) => {\n\t\t\t\tif (_el != null) {\n\t\t\t\t\tif (_show) {\n\t\t\t\t\t\tlet posOffset = (side === 3 || side === 0 ? _size : 0);\n\t\t\t\t\t\tlet isVt = side % 2 == 1;\n\n\t\t\t\t\t\tsetStylePx(_el, isVt ? \"left\" : \"top\", _pos - posOffset);\n\t\t\t\t\t\tsetStylePx(_el, isVt ? \"width\" : \"height\", _size);\n\t\t\t\t\t\tsetStylePx(_el, isVt ? \"top\" : \"left\", isVt ? plotTopCss : plotLftCss);\n\t\t\t\t\t\tsetStylePx(_el, isVt ? \"height\" : \"width\", isVt ? plotHgtCss : plotWidCss);\n\n\t\t\t\t\t\tremClass(_el, OFF);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\taddClass(_el, OFF);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// invalidate ctx style cache\n\t\t\tctxStroke = ctxFill = ctxWidth = ctxJoin = ctxCap = ctxFont = ctxAlign = ctxBaseline = ctxDash = null;\n\t\t\tctxAlpha = 1;\n\n\t\t\tsyncRect(true);\n\n\t\t\tif (\n\t\t\t\tplotLftCss != _plotLftCss ||\n\t\t\t\tplotTopCss != _plotTopCss ||\n\t\t\t\tplotWidCss != _plotWidCss ||\n\t\t\t\tplotHgtCss != _plotHgtCss\n\t\t\t) {\n\t\t\t\tresetYSeries(false);\n\n\t\t\t\tlet pctWid = plotWidCss / _plotWidCss;\n\t\t\t\tlet pctHgt = plotHgtCss / _plotHgtCss;\n\n\t\t\t\tif (cursor.show && !shouldSetCursor && cursor.left >= 0) {\n\t\t\t\t\tcursor.left *= pctWid;\n\t\t\t\t\tcursor.top *= pctHgt;\n\n\t\t\t\t\tvCursor && elTrans(vCursor, round(cursor.left), 0, plotWidCss, plotHgtCss);\n\t\t\t\t\thCursor && elTrans(hCursor, 0, round(cursor.top), plotWidCss, plotHgtCss);\n\n\t\t\t\t\tfor (let i = 0; i < cursorPts.length; i++) {\n\t\t\t\t\t\tlet pt = cursorPts[i];\n\n\t\t\t\t\t\tif (pt != null) {\n\t\t\t\t\t\t\tcursorPtsLft[i] *= pctWid;\n\t\t\t\t\t\t\tcursorPtsTop[i] *= pctHgt;\n\t\t\t\t\t\t\telTrans(pt, ceil(cursorPtsLft[i]), ceil(cursorPtsTop[i]), plotWidCss, plotHgtCss);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (select.show && !shouldSetSelect && select.left >= 0 && select.width > 0) {\n\t\t\t\t\tselect.left *= pctWid;\n\t\t\t\t\tselect.width *= pctWid;\n\t\t\t\t\tselect.top *= pctHgt;\n\t\t\t\t\tselect.height *= pctHgt;\n\n\t\t\t\t\tfor (let prop in _hideProps)\n\t\t\t\t\t\tsetStylePx(selectDiv, prop, select[prop]);\n\t\t\t\t}\n\n\t\t\t\t_plotLftCss = plotLftCss;\n\t\t\t\t_plotTopCss = plotTopCss;\n\t\t\t\t_plotWidCss = plotWidCss;\n\t\t\t\t_plotHgtCss = plotHgtCss;\n\t\t\t}\n\n\t\t\tfire(\"setSize\");\n\n\t\t\tshouldSetSize = false;\n\t\t}\n\n\t\tif (fullWidCss > 0 && fullHgtCss > 0) {\n\t\t\tctx.clearRect(0, 0, can.width, can.height);\n\t\t\tfire(\"drawClear\");\n\t\t\tdrawOrder.forEach(fn => fn());\n\t\t\tfire(\"draw\");\n\t\t}\n\n\t\tif (select.show && shouldSetSelect) {\n\t\t\tsetSelect(select);\n\t\t\tshouldSetSelect = false;\n\t\t}\n\n\t\tif (cursor.show && shouldSetCursor) {\n\t\t\tupdateCursor(null, true, false);\n\t\t\tshouldSetCursor = false;\n\t\t}\n\n\t\tif (legend.show && legend.live && shouldSetLegend) {\n\t\t\tsetLegend();\n\t\t\tshouldSetLegend = false; // redundant currently\n\t\t}\n\n\t\tif (!ready) {\n\t\t\tready = true;\n\t\t\tself.status = 1;\n\n\t\t\tfire(\"ready\");\n\t\t}\n\n\t\tviaAutoScaleX = false;\n\n\t\tqueuedCommit = false;\n\t}\n\n\tself.redraw = (rebuildPaths, recalcAxes) => {\n\t\tshouldConvergeSize = recalcAxes || false;\n\n\t\tif (rebuildPaths !== false)\n\t\t\t_setScale(xScaleKey, scaleX.min, scaleX.max);\n\t\telse\n\t\t\tcommit();\n\t};\n\n\t// redraw() => setScale('x', scales.x.min, scales.x.max);\n\n\t// explicit, never re-ranged (is this actually true? for x and y)\n\tfunction setScale(key, opts) {\n\t\tlet sc = scales[key];\n\n\t\tif (sc.from == null) {\n\t\t\tif (dataLen == 0) {\n\t\t\t\tlet minMax = sc.range(self, opts.min, opts.max, key);\n\t\t\t\topts.min = minMax[0];\n\t\t\t\topts.max = minMax[1];\n\t\t\t}\n\n\t\t\tif (opts.min > opts.max) {\n\t\t\t\tlet _min = opts.min;\n\t\t\t\topts.min = opts.max;\n\t\t\t\topts.max = _min;\n\t\t\t}\n\n\t\t\tif (dataLen > 1 && opts.min != null && opts.max != null && opts.max - opts.min < 1e-16)\n\t\t\t\treturn;\n\n\t\t\tif (key == xScaleKey) {\n\t\t\t\tif (sc.distr == 2 && dataLen > 0) {\n\t\t\t\t\topts.min = closestIdx(opts.min, data[0]);\n\t\t\t\t\topts.max = closestIdx(opts.max, data[0]);\n\n\t\t\t\t\tif (opts.min == opts.max)\n\t\t\t\t\t\topts.max++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t//\tlog(\"setScale()\", arguments);\n\n\t\t\tpendScales[key] = opts;\n\n\t\t\tshouldSetScales = true;\n\t\t\tcommit();\n\t\t}\n\t}\n\n\tself.setScale = setScale;\n\n//\tINTERACTION\n\n\tlet xCursor;\n\tlet yCursor;\n\tlet vCursor;\n\tlet hCursor;\n\n\t// starting position before cursor.move\n\tlet rawMouseLeft0;\n\tlet rawMouseTop0;\n\n\t// starting position\n\tlet mouseLeft0;\n\tlet mouseTop0;\n\n\t// current position before cursor.move\n\tlet rawMouseLeft1;\n\tlet rawMouseTop1;\n\n\t// current position\n\tlet mouseLeft1;\n\tlet mouseTop1;\n\n\tlet dragging = false;\n\n\tconst drag = cursor.drag;\n\n\tlet dragX = drag.x;\n\tlet dragY = drag.y;\n\n\tif (cursor.show) {\n\t\tif (cursor.x)\n\t\t\txCursor = placeDiv(CURSOR_X, over);\n\t\tif (cursor.y)\n\t\t\tyCursor = placeDiv(CURSOR_Y, over);\n\n\t\tif (scaleX.ori == 0) {\n\t\t\tvCursor = xCursor;\n\t\t\thCursor = yCursor;\n\t\t}\n\t\telse {\n\t\t\tvCursor = yCursor;\n\t\t\thCursor = xCursor;\n\t\t}\n\n\t\tmouseLeft1 = cursor.left;\n\t\tmouseTop1 = cursor.top;\n\t}\n\n\tconst select = self.select = assign({\n\t\tshow: true,\n\t\tover: true,\n\t\tleft: 0,\n\t\twidth: 0,\n\t\ttop: 0,\n\t\theight: 0,\n\t}, opts.select);\n\n\tconst selectDiv = select.show ? placeDiv(SELECT, select.over ? over : under) : null;\n\n\tfunction setSelect(opts, _fire) {\n\t\tif (select.show) {\n\t\t\tfor (let prop in opts) {\n\t\t\t\tselect[prop] = opts[prop];\n\n\t\t\t\tif (prop in _hideProps)\n\t\t\t\t\tsetStylePx(selectDiv, prop, opts[prop]);\n\t\t\t}\n\n\t\t\t_fire !== false && fire(\"setSelect\");\n\t\t}\n\t}\n\n\tself.setSelect = setSelect;\n\n\tfunction toggleDOM(i, onOff) {\n\t\tlet s = series[i];\n\t\tlet label = showLegend ? legendRows[i] : null;\n\n\t\tif (s.show)\n\t\t\tlabel && remClass(label, OFF);\n\t\telse {\n\t\t\tlabel && addClass(label, OFF);\n\t\t\tlet pt = cursorOnePt ? cursorPts[0] : cursorPts[i];\n\t\t\telTrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t}\n\t}\n\n\tfunction _setScale(key, min, max) {\n\t\tsetScale(key, {min, max});\n\t}\n\n\tfunction setSeries(i, opts, _fire, _pub) {\n\t//\tlog(\"setSeries()\", arguments);\n\n\t\tif (opts.focus != null)\n\t\t\tsetFocus(i);\n\n\t\tif (opts.show != null) {\n\t\t\tseries.forEach((s, si) => {\n\t\t\t\tif (si > 0 && (i == si || i == null)) {\n\t\t\t\t\ts.show = opts.show;\n\t\t\t\t\ttoggleDOM(si, opts.show);\n\n\t\t\t\t\tif (mode == 2) {\n\t\t\t\t\t\t_setScale(s.facets[0].scale, null, null);\n\t\t\t\t\t\t_setScale(s.facets[1].scale, null, null);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\t_setScale(s.scale, null, null);\n\n\t\t\t\t\tcommit();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_fire !== false && fire(\"setSeries\", i, opts);\n\n\t\t_pub && pubSync(\"setSeries\", self, i, opts);\n\t}\n\n\tself.setSeries = setSeries;\n\n\tfunction setBand(bi, opts) {\n\t\tassign(bands[bi], opts);\n\t}\n\n\tfunction addBand(opts, bi) {\n\t\topts.fill = fnOrSelf(opts.fill || null);\n\t\topts.dir = ifNull(opts.dir, -1);\n\t\tbi = bi == null ? bands.length : bi;\n\t\tbands.splice(bi, 0, opts);\n\t}\n\n\tfunction delBand(bi) {\n\t\tif (bi == null)\n\t\t\tbands.length = 0;\n\t\telse\n\t\t\tbands.splice(bi, 1);\n\t}\n\n\tself.addBand = addBand;\n\tself.setBand = setBand;\n\tself.delBand = delBand;\n\n\tfunction setAlpha(i, value) {\n\t\tseries[i].alpha = value;\n\n\t\tif (cursor.show && cursorPts[i])\n\t\t\tcursorPts[i].style.opacity = value;\n\n\t\tif (showLegend && legendRows[i])\n\t\t\tlegendRows[i].style.opacity = value;\n\t}\n\n\t// y-distance\n\tlet closestDist;\n\tlet closestSeries;\n\tlet focusedSeries;\n\tconst FOCUS_TRUE = {focus: true};\n\n\tfunction setFocus(i) {\n\t\tif (i != focusedSeries) {\n\t\t//\tlog(\"setFocus()\", arguments);\n\n\t\t\tlet allFocused = i == null;\n\n\t\t\tlet _setAlpha = focus.alpha != 1;\n\n\t\t\tseries.forEach((s, i2) => {\n\t\t\t\tif (mode == 1 || i2 > 0) {\n\t\t\t\t\tlet isFocused = allFocused || i2 == 0 || i2 == i;\n\t\t\t\t\ts._focus = allFocused ? null : isFocused;\n\t\t\t\t\t_setAlpha && setAlpha(i2, isFocused ? 1 : focus.alpha);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfocusedSeries = i;\n\t\t\t_setAlpha && commit();\n\t\t}\n\t}\n\n\tif (showLegend && cursorFocus) {\n\t\tonMouse(mouseleave, legendTable, e => {\n\t\t\tif (cursor._lock)\n\t\t\t\treturn;\n\n\t\t\tsetCursorEvent(e);\n\n\t\t\tif (focusedSeries != null)\n\t\t\t\tsetSeries(null, FOCUS_TRUE, true, syncOpts.setSeries);\n\t\t});\n\t}\n\n\tfunction posToVal(pos, scale, can) {\n\t\tlet sc = scales[scale];\n\n\t\tif (can)\n\t\t\tpos = pos / pxRatio - (sc.ori == 1 ? plotTopCss : plotLftCss);\n\n\t\tlet dim = plotWidCss;\n\n\t\tif (sc.ori == 1) {\n\t\t\tdim = plotHgtCss;\n\t\t\tpos = dim - pos;\n\t\t}\n\n\t\tif (sc.dir == -1)\n\t\t\tpos = dim - pos;\n\n\t\tlet _min = sc._min,\n\t\t\t_max = sc._max,\n\t\t\tpct = pos / dim;\n\n\t\tlet sv = _min + (_max - _min) * pct;\n\n\t\tlet distr = sc.distr;\n\n\t\treturn (\n\t\t\tdistr == 3 ? pow(10, sv) :\n\t\t\tdistr == 4 ? sinh(sv, sc.asinh) :\n\t\t\tdistr == 100 ? sc.bwd(sv) :\n\t\t\tsv\n\t\t);\n\t}\n\n\tfunction closestIdxFromXpos(pos, can) {\n\t\tlet v = posToVal(pos, xScaleKey, can);\n\t\treturn closestIdx(v, data[0], i0, i1);\n\t}\n\n\tself.valToIdx = val => closestIdx(val, data[0]);\n\tself.posToIdx = closestIdxFromXpos;\n\tself.posToVal = posToVal;\n\tself.valToPos = (val, scale, can) => (\n\t\tscales[scale].ori == 0 ?\n\t\tgetHPos(val, scales[scale],\n\t\t\tcan ? plotWid : plotWidCss,\n\t\t\tcan ? plotLft : 0,\n\t\t) :\n\t\tgetVPos(val, scales[scale],\n\t\t\tcan ? plotHgt : plotHgtCss,\n\t\t\tcan ? plotTop : 0,\n\t\t)\n\t);\n\n\tself.setCursor = (opts, _fire, _pub) => {\n\t\tmouseLeft1 = opts.left;\n\t\tmouseTop1 = opts.top;\n\t//\tassign(cursor, opts);\n\t\tupdateCursor(null, _fire, _pub);\n\t};\n\n\tfunction setSelH(off, dim) {\n\t\tsetStylePx(selectDiv, LEFT, select.left = off);\n\t\tsetStylePx(selectDiv, WIDTH, select.width = dim);\n\t}\n\n\tfunction setSelV(off, dim) {\n\t\tsetStylePx(selectDiv, TOP, select.top = off);\n\t\tsetStylePx(selectDiv, HEIGHT, select.height = dim);\n\t}\n\n\tlet setSelX = scaleX.ori == 0 ? setSelH : setSelV;\n\tlet setSelY = scaleX.ori == 1 ? setSelH : setSelV;\n\n\tfunction syncLegend() {\n\t\tif (showLegend && legend.live) {\n\t\t\tfor (let i = mode == 2 ? 1 : 0; i < series.length; i++) {\n\t\t\t\tif (i == 0 && multiValLegend)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet vals = legend.values[i];\n\n\t\t\t\tlet j = 0;\n\n\t\t\t\tfor (let k in vals)\n\t\t\t\t\tlegendCells[i][j++].firstChild.nodeValue = vals[k];\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setLegend(opts, _fire) {\n\t\tif (opts != null) {\n\t\t\tif (opts.idxs) {\n\t\t\t\topts.idxs.forEach((didx, sidx) => {\n\t\t\t\t\tactiveIdxs[sidx] = didx;\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (!isUndef(opts.idx))\n\t\t\t\tactiveIdxs.fill(opts.idx);\n\n\t\t\tlegend.idx = activeIdxs[0];\n\t\t}\n\n\t\tif (showLegend && legend.live) {\n\t\t\tfor (let sidx = 0; sidx < series.length; sidx++) {\n\t\t\t\tif (sidx > 0 || mode == 1 && !multiValLegend)\n\t\t\t\t\tsetLegendValues(sidx, activeIdxs[sidx]);\n\t\t\t}\n\n\t\t\tsyncLegend();\n\t\t}\n\n\t\tshouldSetLegend = false;\n\n\t\t_fire !== false && fire(\"setLegend\");\n\t}\n\n\tself.setLegend = setLegend;\n\n\tfunction setLegendValues(sidx, idx) {\n\t\tlet s = series[sidx];\n\t\tlet src = sidx == 0 && xScaleDistr == 2 ? data0 : data[sidx];\n\t\tlet val;\n\n\t\tif (multiValLegend)\n\t\t\tval = s.values(self, sidx, idx) ?? NULL_LEGEND_VALUES;\n\t\telse {\n\t\t\tval = s.value(self, idx == null ? null : src[idx], sidx, idx);\n\t\t\tval = val == null ? NULL_LEGEND_VALUES : {_: val};\n\t\t}\n\n\t\tlegend.values[sidx] = val;\n\t}\n\n\tfunction updateCursor(src, _fire, _pub) {\n\t//\tts == null && log(\"updateCursor()\", arguments);\n\n\t\trawMouseLeft1 = mouseLeft1;\n\t\trawMouseTop1 = mouseTop1;\n\n\t\t[mouseLeft1, mouseTop1] = cursor.move(self, mouseLeft1, mouseTop1);\n\n\t\tcursor.left = mouseLeft1;\n\t\tcursor.top = mouseTop1;\n\n\t\tif (cursor.show) {\n\t\t\tvCursor && elTrans(vCursor, round(mouseLeft1), 0, plotWidCss, plotHgtCss);\n\t\t\thCursor && elTrans(hCursor, 0, round(mouseTop1), plotWidCss, plotHgtCss);\n\t\t}\n\n\t\tlet idx;\n\n\t\t// when zooming to an x scale range between datapoints the binary search\n\t\t// for nearest min/max indices results in this condition. cheap hack :D\n\t\tlet noDataInRange = i0 > i1; // works for mode 1 only\n\n\t\tclosestDist = inf;\n\t\tclosestSeries = null;\n\n\t\t// TODO: extract\n\t\tlet xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss;\n\t\tlet yDim = scaleX.ori == 1 ? plotWidCss : plotHgtCss;\n\n\t\t// if cursor hidden, hide points & clear legend vals\n\t\tif (mouseLeft1 < 0 || dataLen == 0 || noDataInRange) {\n\t\t\tidx = cursor.idx = null;\n\n\t\t\tfor (let i = 0; i < series.length; i++) {\n\t\t\t\tlet pt = cursorPts[i];\n\t\t\t\tpt != null && elTrans(pt, -10, -10, plotWidCss, plotHgtCss);\n\t\t\t}\n\n\t\t\tif (cursorFocus)\n\t\t\t\tsetSeries(null, FOCUS_TRUE, true, src == null && syncOpts.setSeries);\n\n\t\t\tif (legend.live) {\n\t\t\t\tactiveIdxs.fill(idx);\n\t\t\t\tshouldSetLegend = true;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t//\tlet pctY = 1 - (y / rect.height);\n\n\t\t\tlet mouseXPos, valAtPosX, xPos;\n\n\t\t\tif (mode == 1) {\n\t\t\t\tmouseXPos = scaleX.ori == 0 ? mouseLeft1 : mouseTop1;\n\t\t\t\tvalAtPosX = posToVal(mouseXPos, xScaleKey);\n\t\t\t\tidx = cursor.idx = closestIdx(valAtPosX, data[0], i0, i1);\n\t\t\t\txPos = valToPosX(data[0][idx], scaleX, xDim, 0);\n\t\t\t}\n\n\t\t\t// closest pt values\n\t\t\tlet _ptLft = -10;\n\t\t\tlet _ptTop = -10;\n\t\t\tlet _ptWid = 0;\n\t\t\tlet _ptHgt = 0;\n\t\t\tlet _centered = true;\n\t\t\tlet _ptFill = '';\n\t\t\tlet _ptStroke = '';\n\n\t\t\tfor (let i = mode == 2 ? 1 : 0; i < series.length; i++) {\n\t\t\t\tlet s = series[i];\n\n\t\t\t\tlet idx1 = activeIdxs[i];\n\t\t\t\tlet yVal1 = idx1 == null ? null : (mode == 1 ? data[i][idx1] : data[i][1][idx1]);\n\n\t\t\t\tlet idx2 = cursor.dataIdx(self, i, idx, valAtPosX);\n\t\t\t\tlet yVal2 = idx2 == null ? null : (mode == 1 ? data[i][idx2] : data[i][1][idx2]);\n\n\t\t\t\tshouldSetLegend = shouldSetLegend || yVal2 != yVal1 || idx2 != idx1;\n\n\t\t\t\tactiveIdxs[i] = idx2;\n\n\t\t\t\tlet xPos2 = idx2 == idx ? xPos : valToPosX(mode == 1 ? data[0][idx2] : data[i][0][idx2], scaleX, xDim, 0);\n\n\t\t\t\tif (i > 0 && s.show) {\n\t\t\t\t\t// this doesnt really work for state timeline, heatmap, status history (where the value maps to color, not y coords)\n\t\t\t\t\tlet yPos = yVal2 == null ? -10 : valToPosY(yVal2, mode == 1 ? scales[s.scale] : scales[s.facets[1].scale], yDim, 0);\n\n\t\t\t\t\tif (cursorFocus && yVal2 != null) {\n\t\t\t\t\t\tlet mouseYPos = scaleX.ori == 1 ? mouseLeft1 : mouseTop1;\n\t\t\t\t\t\tlet dist = abs(focus.dist(self, i, idx2, yPos, mouseYPos));\n\n\t\t\t\t\t\tif (dist < closestDist) {\n\t\t\t\t\t\t\tlet bias = focus.bias;\n\n\t\t\t\t\t\t\tif (bias != 0) {\n\t\t\t\t\t\t\t\tlet mouseYVal = posToVal(mouseYPos, s.scale);\n\n\t\t\t\t\t\t\t\tlet seriesYValSign = yVal2 >= 0 ? 1 : -1;\n\t\t\t\t\t\t\t\tlet mouseYValSign = mouseYVal >= 0 ? 1 : -1;\n\n\t\t\t\t\t\t\t\t// with a focus bias, we will never cross zero when prox testing\n\t\t\t\t\t\t\t\t// it's either closest towards zero, or closest away from zero\n\t\t\t\t\t\t\t\tif (mouseYValSign == seriesYValSign && (\n\t\t\t\t\t\t\t\t\tmouseYValSign == 1 ?\n\t\t\t\t\t\t\t\t\t\t(bias == 1 ? yVal2 >= mouseYVal : yVal2 <= mouseYVal) : // >= 0\n\t\t\t\t\t\t\t\t\t\t(bias == 1 ? yVal2 <= mouseYVal : yVal2 >= mouseYVal) // < 0\n\t\t\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t\t\tclosestDist = dist;\n\t\t\t\t\t\t\t\t\tclosestSeries = i;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tclosestDist = dist;\n\t\t\t\t\t\t\t\tclosestSeries = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (shouldSetLegend || cursorOnePt) {\n\t\t\t\t\t\tlet hPos, vPos;\n\n\t\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\t\thPos = xPos2;\n\t\t\t\t\t\t\tvPos = yPos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thPos = yPos;\n\t\t\t\t\t\t\tvPos = xPos2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet ptWid, ptHgt, ptLft, ptTop,\n\t\t\t\t\t\t\tptStroke, ptFill,\n\t\t\t\t\t\t\tcentered = true,\n\t\t\t\t\t\t\tgetBBox = points.bbox;\n\n\t\t\t\t\t\tif (getBBox != null) {\n\t\t\t\t\t\t\tcentered = false;\n\n\t\t\t\t\t\t\tlet bbox = getBBox(self, i);\n\n\t\t\t\t\t\t\tptLft = bbox.left;\n\t\t\t\t\t\t\tptTop = bbox.top;\n\t\t\t\t\t\t\tptWid = bbox.width;\n\t\t\t\t\t\t\tptHgt = bbox.height;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tptLft = hPos;\n\t\t\t\t\t\t\tptTop = vPos;\n\t\t\t\t\t\t\tptWid = ptHgt = points.size(self, i);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tptFill = points.fill(self, i);\n\t\t\t\t\t\tptStroke = points.stroke(self, i);\n\n\t\t\t\t\t\tif (cursorOnePt) {\n\t\t\t\t\t\t\tif (i == closestSeries && closestDist <= focus.prox) {\n\t\t\t\t\t\t\t\t_ptLft = ptLft;\n\t\t\t\t\t\t\t\t_ptTop = ptTop;\n\t\t\t\t\t\t\t\t_ptWid = ptWid;\n\t\t\t\t\t\t\t\t_ptHgt = ptHgt;\n\t\t\t\t\t\t\t\t_centered = centered;\n\t\t\t\t\t\t\t\t_ptFill = ptFill;\n\t\t\t\t\t\t\t\t_ptStroke = ptStroke;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet pt = cursorPts[i];\n\n\t\t\t\t\t\t\tif (pt != null) {\n\t\t\t\t\t\t\t\tcursorPtsLft[i] = ptLft;\n\t\t\t\t\t\t\t\tcursorPtsTop[i] = ptTop;\n\n\t\t\t\t\t\t\t\telSize(pt, ptWid, ptHgt, centered);\n\t\t\t\t\t\t\t\telColor(pt, ptFill, ptStroke);\n\t\t\t\t\t\t\t\telTrans(pt, ceil(ptLft), ceil(ptTop), plotWidCss, plotHgtCss);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if only using single hover point (at cursorPts[0])\n\t\t\t// we have trigger styling at last visible series (once closestSeries is settled)\n\t\t\tif (cursorOnePt) {\n\t\t\t\t// some of this logic is similar to series focus below, since it matches the behavior by design\n\n\t\t\t\tlet p = focus.prox;\n\n\t\t\t\tlet focusChanged = focusedSeries == null ? closestDist <= p : (closestDist > p || closestSeries != focusedSeries);\n\n\t\t\t\tif (shouldSetLegend || focusChanged) {\n\t\t\t\t\tlet pt = cursorPts[0];\n\n\t\t\t\t\tcursorPtsLft[0] = _ptLft;\n\t\t\t\t\tcursorPtsTop[0] = _ptTop;\n\n\t\t\t\t\telSize(pt, _ptWid, _ptHgt, _centered);\n\t\t\t\t\telColor(pt, _ptFill, _ptStroke);\n\t\t\t\t\telTrans(pt, ceil(_ptLft), ceil(_ptTop), plotWidCss, plotHgtCss);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// nit: cursor.drag.setSelect is assumed always true\n\t\tif (select.show && dragging) {\n\t\t\tif (src != null) {\n\t\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\t\t\t\tlet [matchXKeys, matchYKeys] = syncOpts.match;\n\t\t\t\tlet [xKeySrc, yKeySrc] = src.cursor.sync.scales;\n\n\t\t\t\t// match the dragX/dragY implicitness/explicitness of src\n\t\t\t\tlet sdrag = src.cursor.drag;\n\t\t\t\tdragX = sdrag._x;\n\t\t\t\tdragY = sdrag._y;\n\n\t\t\t\tif (dragX || dragY) {\n\t\t\t\t\tlet { left, top, width, height } = src.select;\n\n\t\t\t\t\tlet sori = src.scales[xKeySrc].ori;\n\t\t\t\t\tlet sPosToVal = src.posToVal;\n\n\t\t\t\t\tlet sOff, sDim, sc, a, b;\n\n\t\t\t\t\tlet matchingX = xKey != null && matchXKeys(xKey, xKeySrc);\n\t\t\t\t\tlet matchingY = yKey != null && matchYKeys(yKey, yKeySrc);\n\n\t\t\t\t\tif (matchingX && dragX) {\n\t\t\t\t\t\tif (sori == 0) {\n\t\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsc = scales[xKey];\n\n\t\t\t\t\t\ta = valToPosX(sPosToVal(sOff, xKeySrc), sc, xDim, 0);\n\t\t\t\t\t\tb = valToPosX(sPosToVal(sOff + sDim, xKeySrc), sc, xDim, 0);\n\n\t\t\t\t\t\tsetSelX(min(a,b), abs(b-a));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tsetSelX(0, xDim);\n\n\t\t\t\t\tif (matchingY && dragY) {\n\t\t\t\t\t\tif (sori == 1) {\n\t\t\t\t\t\t\tsOff = left;\n\t\t\t\t\t\t\tsDim = width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsOff = top;\n\t\t\t\t\t\t\tsDim = height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsc = scales[yKey];\n\n\t\t\t\t\t\ta = valToPosY(sPosToVal(sOff, yKeySrc), sc, yDim, 0);\n\t\t\t\t\t\tb = valToPosY(sPosToVal(sOff + sDim, yKeySrc), sc, yDim, 0);\n\n\t\t\t\t\t\tsetSelY(min(a,b), abs(b-a));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\thideSelect();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet rawDX = abs(rawMouseLeft1 - rawMouseLeft0);\n\t\t\t\tlet rawDY = abs(rawMouseTop1 - rawMouseTop0);\n\n\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\tlet _rawDX = rawDX;\n\t\t\t\t\trawDX = rawDY;\n\t\t\t\t\trawDY = _rawDX;\n\t\t\t\t}\n\n\t\t\t\tdragX = drag.x && rawDX >= drag.dist;\n\t\t\t\tdragY = drag.y && rawDY >= drag.dist;\n\n\t\t\t\tlet uni = drag.uni;\n\n\t\t\t\tif (uni != null) {\n\t\t\t\t\t// only calc drag status if they pass the dist thresh\n\t\t\t\t\tif (dragX && dragY) {\n\t\t\t\t\t\tdragX = rawDX >= uni;\n\t\t\t\t\t\tdragY = rawDY >= uni;\n\n\t\t\t\t\t\t// force unidirectionality when both are under uni limit\n\t\t\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\t\t\tif (rawDY > rawDX)\n\t\t\t\t\t\t\t\tdragY = true;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tdragX = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (drag.x && drag.y && (dragX || dragY))\n\t\t\t\t\t// if omni with no uni then both dragX / dragY should be true if either is true\n\t\t\t\t\tdragX = dragY = true;\n\n\t\t\t\tlet p0, p1;\n\n\t\t\t\tif (dragX) {\n\t\t\t\t\tif (scaleX.ori == 0) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelX(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragY)\n\t\t\t\t\t\tsetSelY(0, yDim);\n\t\t\t\t}\n\n\t\t\t\tif (dragY) {\n\t\t\t\t\tif (scaleX.ori == 1) {\n\t\t\t\t\t\tp0 = mouseLeft0;\n\t\t\t\t\t\tp1 = mouseLeft1;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tp0 = mouseTop0;\n\t\t\t\t\t\tp1 = mouseTop1;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetSelY(min(p0, p1), abs(p1 - p0));\n\n\t\t\t\t\tif (!dragX)\n\t\t\t\t\t\tsetSelX(0, xDim);\n\t\t\t\t}\n\n\t\t\t\t// the drag didn't pass the dist requirement\n\t\t\t\tif (!dragX && !dragY) {\n\t\t\t\t\tsetSelX(0, 0);\n\t\t\t\t\tsetSelY(0, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdrag._x = dragX;\n\t\tdrag._y = dragY;\n\n\t\tif (src == null) {\n\t\t\tif (_pub) {\n\t\t\t\tif (syncKey != null) {\n\t\t\t\t\tlet [xSyncKey, ySyncKey] = syncOpts.scales;\n\n\t\t\t\t\tsyncOpts.values[0] = xSyncKey != null ? posToVal(scaleX.ori == 0 ? mouseLeft1 : mouseTop1, xSyncKey) : null;\n\t\t\t\t\tsyncOpts.values[1] = ySyncKey != null ? posToVal(scaleX.ori == 1 ? mouseLeft1 : mouseTop1, ySyncKey) : null;\n\t\t\t\t}\n\n\t\t\t\tpubSync(mousemove, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, idx);\n\t\t\t}\n\n\t\t\tif (cursorFocus) {\n\t\t\t\tlet shouldPub = _pub && syncOpts.setSeries;\n\t\t\t\tlet p = focus.prox;\n\n\t\t\t\tif (focusedSeries == null) {\n\t\t\t\t\tif (closestDist <= p)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, true, shouldPub);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (closestDist > p)\n\t\t\t\t\t\tsetSeries(null, FOCUS_TRUE, true, shouldPub);\n\t\t\t\t\telse if (closestSeries != focusedSeries)\n\t\t\t\t\t\tsetSeries(closestSeries, FOCUS_TRUE, true, shouldPub);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSetLegend) {\n\t\t\tlegend.idx = idx;\n\t\t\tsetLegend();\n\t\t}\n\n\t\t_fire !== false && fire(\"setCursor\");\n\t}\n\n\tlet rect = null;\n\n\tObject.defineProperty(self, 'rect', {\n\t\tget() {\n\t\t\tif (rect == null)\n\t\t\t\tsyncRect(false);\n\n\t\t\treturn rect;\n\t\t},\n\t});\n\n\tfunction syncRect(defer = false) {\n\t\tif (defer)\n\t\t\trect = null;\n\t\telse {\n\t\t\trect = over.getBoundingClientRect();\n\t\t\tfire(\"syncRect\", rect);\n\t\t}\n\t}\n\n\tfunction mouseMove(e, src, _l, _t, _w, _h, _i) {\n\t\tif (cursor._lock)\n\t\t\treturn;\n\n\t\t// Chrome on Windows has a bug which triggers a stray mousemove event after an initial mousedown event\n\t\t// when clicking into a plot as part of re-focusing the browser window.\n\t\t// we gotta ignore it to avoid triggering a phantom drag / setSelect\n\t\t// However, on touch-only devices Chrome-based browsers trigger a 0-distance mousemove before mousedown\n\t\t// so we don't ignore it when mousedown has set the dragging flag\n\t\tif (dragging && e != null && e.movementX == 0 && e.movementY == 0)\n\t\t\treturn;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, e != null);\n\n\t\tif (e != null)\n\t\t\tupdateCursor(null, true, true);\n\t\telse\n\t\t\tupdateCursor(src, true, false);\n\t}\n\n\tfunction cacheMouse(e, src, _l, _t, _w, _h, _i, initial, snap) {\n\t\tif (rect == null)\n\t\t\tsyncRect(false);\n\n\t\tsetCursorEvent(e);\n\n\t\tif (e != null) {\n\t\t\t_l = e.clientX - rect.left;\n\t\t\t_t = e.clientY - rect.top;\n\t\t}\n\t\telse {\n\t\t\tif (_l < 0 || _t < 0) {\n\t\t\t\tmouseLeft1 = -10;\n\t\t\t\tmouseTop1 = -10;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet [xKey, yKey] = syncOpts.scales;\n\n\t\t\tlet syncOptsSrc = src.cursor.sync;\n\t\t\tlet [xValSrc, yValSrc] = syncOptsSrc.values;\n\t\t\tlet [xKeySrc, yKeySrc] = syncOptsSrc.scales;\n\t\t\tlet [matchXKeys, matchYKeys] = syncOpts.match;\n\n\t\t\tlet rotSrc = src.axes[0].side % 2 == 1;\n\n\t\t\tlet xDim = scaleX.ori == 0 ? plotWidCss : plotHgtCss,\n\t\t\t\tyDim = scaleX.ori == 1 ? plotWidCss : plotHgtCss,\n\t\t\t\t_xDim = rotSrc ? _h : _w,\n\t\t\t\t_yDim = rotSrc ? _w : _h,\n\t\t\t\t_xPos = rotSrc ? _t : _l,\n\t\t\t\t_yPos = rotSrc ? _l : _t;\n\n\t\t\tif (xKeySrc != null)\n\t\t\t\t_l = matchXKeys(xKey, xKeySrc) ? getPos(xValSrc, scales[xKey], xDim, 0) : -10;\n\t\t\telse\n\t\t\t\t_l = xDim * (_xPos/_xDim);\n\n\t\t\tif (yKeySrc != null)\n\t\t\t\t_t = matchYKeys(yKey, yKeySrc) ? getPos(yValSrc, scales[yKey], yDim, 0) : -10;\n\t\t\telse\n\t\t\t\t_t = yDim * (_yPos/_yDim);\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\tlet __l = _l;\n\t\t\t\t_l = _t;\n\t\t\t\t_t = __l;\n\t\t\t}\n\t\t}\n\n\t\tif (snap) {\n\t\t\tif (_l <= 1 || _l >= plotWidCss - 1)\n\t\t\t\t_l = incrRound(_l, plotWidCss);\n\n\t\t\tif (_t <= 1 || _t >= plotHgtCss - 1)\n\t\t\t\t_t = incrRound(_t, plotHgtCss);\n\t\t}\n\n\t\tif (initial) {\n\t\t\trawMouseLeft0 = _l;\n\t\t\trawMouseTop0 = _t;\n\n\t\t\t[mouseLeft0, mouseTop0] = cursor.move(self, _l, _t);\n\t\t}\n\t\telse {\n\t\t\tmouseLeft1 = _l;\n\t\t\tmouseTop1 = _t;\n\t\t}\n\t}\n\n\tconst _hideProps = {\n\t\twidth: 0,\n\t\theight: 0,\n\t\tleft: 0,\n\t\ttop: 0,\n\t};\n\n\tfunction hideSelect() {\n\t\tsetSelect(_hideProps, false);\n\t}\n\n\tlet downSelectLeft;\n\tlet downSelectTop;\n\tlet downSelectWidth;\n\tlet downSelectHeight;\n\n\tfunction mouseDown(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = true;\n\t\tdragX = dragY = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, true, false);\n\n\t\tif (e != null) {\n\t\t\tonMouse(mouseup, doc, mouseUp, false);\n\t\t\tpubSync(mousedown, self, mouseLeft0, mouseTop0, plotWidCss, plotHgtCss, null);\n\t\t}\n\n\t\tlet { left, top, width, height } = select;\n\n\t\tdownSelectLeft = left;\n\t\tdownSelectTop = top;\n\t\tdownSelectWidth = width;\n\t\tdownSelectHeight = height;\n\n\t\thideSelect();\n\t}\n\n\tfunction mouseUp(e, src, _l, _t, _w, _h, _i) {\n\t\tdragging = drag._x = drag._y = false;\n\n\t\tcacheMouse(e, src, _l, _t, _w, _h, _i, false, true);\n\n\t\tlet { left, top, width, height } = select;\n\n\t\tlet hasSelect = width > 0 || height > 0;\n\t\tlet chgSelect = (\n\t\t\tdownSelectLeft != left ||\n\t\t\tdownSelectTop != top ||\n\t\t\tdownSelectWidth != width ||\n\t\t\tdownSelectHeight != height\n\t\t);\n\n\t\thasSelect && chgSelect && setSelect(select);\n\n\t\tif (drag.setScale && hasSelect && chgSelect) {\n\t\t//\tif (syncKey != null) {\n\t\t//\t\tdragX = drag.x;\n\t\t//\t\tdragY = drag.y;\n\t\t//\t}\n\n\t\t\tlet xOff = left,\n\t\t\t\txDim = width,\n\t\t\t\tyOff = top,\n\t\t\t\tyDim = height;\n\n\t\t\tif (scaleX.ori == 1) {\n\t\t\t\txOff = top,\n\t\t\t\txDim = height,\n\t\t\t\tyOff = left,\n\t\t\t\tyDim = width;\n\t\t\t}\n\n\t\t\tif (dragX) {\n\t\t\t\t_setScale(xScaleKey,\n\t\t\t\t\tposToVal(xOff, xScaleKey),\n\t\t\t\t\tposToVal(xOff + xDim, xScaleKey)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (dragY) {\n\t\t\t\tfor (let k in scales) {\n\t\t\t\t\tlet sc = scales[k];\n\n\t\t\t\t\tif (k != xScaleKey && sc.from == null && sc.min != inf) {\n\t\t\t\t\t\t_setScale(k,\n\t\t\t\t\t\t\tposToVal(yOff + yDim, k),\n\t\t\t\t\t\t\tposToVal(yOff, k)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thideSelect();\n\t\t}\n\t\telse if (cursor.lock) {\n\t\t\tcursor._lock = !cursor._lock;\n\t\t\tupdateCursor(null, true, false);\n\t\t}\n\n\t\tif (e != null) {\n\t\t\toffMouse(mouseup, doc);\n\t\t\tpubSync(mouseup, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t\t}\n\t}\n\n\tfunction mouseLeave(e, src, _l, _t, _w, _h, _i) {\n\t\tif (cursor._lock)\n\t\t\treturn;\n\n\t\tsetCursorEvent(e);\n\n\t\tlet _dragging = dragging;\n\n\t\tif (dragging) {\n\t\t\t// handle case when mousemove aren't fired all the way to edges by browser\n\t\t\tlet snapH = true;\n\t\t\tlet snapV = true;\n\t\t\tlet snapProx = 10;\n\n\t\t\tlet dragH, dragV;\n\n\t\t\tif (scaleX.ori == 0) {\n\t\t\t\tdragH = dragX;\n\t\t\t\tdragV = dragY;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdragH = dragY;\n\t\t\t\tdragV = dragX;\n\t\t\t}\n\n\t\t\tif (dragH && dragV) {\n\t\t\t\t// maybe omni corner snap\n\t\t\t\tsnapH = mouseLeft1 <= snapProx || mouseLeft1 >= plotWidCss - snapProx;\n\t\t\t\tsnapV = mouseTop1 <= snapProx || mouseTop1 >= plotHgtCss - snapProx;\n\t\t\t}\n\n\t\t\tif (dragH && snapH)\n\t\t\t\tmouseLeft1 = mouseLeft1 < mouseLeft0 ? 0 : plotWidCss;\n\n\t\t\tif (dragV && snapV)\n\t\t\t\tmouseTop1 = mouseTop1 < mouseTop0 ? 0 : plotHgtCss;\n\n\t\t\tupdateCursor(null, true, true);\n\n\t\t\tdragging = false;\n\t\t}\n\n\t\tmouseLeft1 = -10;\n\t\tmouseTop1 = -10;\n\n\t\t// passing a non-null timestamp to force sync/mousemove event\n\t\tupdateCursor(null, true, true);\n\n\t\tif (_dragging)\n\t\t\tdragging = _dragging;\n\t}\n\n\tfunction dblClick(e, src, _l, _t, _w, _h, _i) {\n\t\tif (cursor._lock)\n\t\t\treturn;\n\n\t\tsetCursorEvent(e);\n\n\t\tautoScaleX();\n\n\t\thideSelect();\n\n\t\tif (e != null)\n\t\t\tpubSync(dblclick, self, mouseLeft1, mouseTop1, plotWidCss, plotHgtCss, null);\n\t}\n\n\tfunction syncPxRatio() {\n\t\taxes.forEach(syncFontSize);\n\t\t_setSize(self.width, self.height, true);\n\t}\n\n\ton(dppxchange, win, syncPxRatio);\n\n\t// internal pub/sub\n\tconst events = {};\n\n\tevents.mousedown = mouseDown;\n\tevents.mousemove = mouseMove;\n\tevents.mouseup = mouseUp;\n\tevents.dblclick = dblClick;\n\tevents[\"setSeries\"] = (e, src, idx, opts) => {\n\t\tlet seriesIdxMatcher = syncOpts.match[2];\n\t\tidx = seriesIdxMatcher(self, src, idx);\n\t\tidx != -1 && setSeries(idx, opts, true, false);\n\t};\n\n\tif (cursor.show) {\n\t\tonMouse(mousedown, over, mouseDown);\n\t\tonMouse(mousemove, over, mouseMove);\n\t\tonMouse(mouseenter, over, e => {\n\t\t\tsetCursorEvent(e);\n\t\t\tsyncRect(false);\n\t\t});\n\t\tonMouse(mouseleave, over, mouseLeave);\n\n\t\tonMouse(dblclick, over, dblClick);\n\n\t\tcursorPlots.add(self);\n\n\t\tself.syncRect = syncRect;\n\t}\n\n\t// external on/off\n\tconst hooks = self.hooks = opts.hooks || {};\n\n\tfunction fire(evName, a1, a2) {\n\t\tif (deferHooks)\n\t\t\thooksQueue.push([evName, a1, a2]);\n\t\telse {\n\t\t\tif (evName in hooks) {\n\t\t\t\thooks[evName].forEach(fn => {\n\t\t\t\t\tfn.call(null, self, a1, a2);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t(opts.plugins || []).forEach(p => {\n\t\tfor (let evName in p.hooks)\n\t\t\thooks[evName] = (hooks[evName] || []).concat(p.hooks[evName]);\n\t});\n\n\tconst seriesIdxMatcher = (self, src, srcSeriesIdx) => srcSeriesIdx;\n\n\tconst syncOpts = assign({\n\t\tkey: null,\n\t\tsetSeries: false,\n\t\tfilters: {\n\t\t\tpub: retTrue,\n\t\t\tsub: retTrue,\n\t\t},\n\t\tscales: [xScaleKey, series[1] ? series[1].scale : null],\n\t\tmatch: [retEq, retEq, seriesIdxMatcher],\n\t\tvalues: [null, null],\n\t}, cursor.sync);\n\n\tif (syncOpts.match.length == 2)\n\t\tsyncOpts.match.push(seriesIdxMatcher);\n\n\tcursor.sync = syncOpts;\n\n\tconst syncKey = syncOpts.key;\n\n\tconst sync = _sync(syncKey);\n\n\tfunction pubSync(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.pub(type, src, x, y, w, h, i))\n\t\t\tsync.pub(type, src, x, y, w, h, i);\n\t}\n\n\tsync.sub(self);\n\n\tfunction pub(type, src, x, y, w, h, i) {\n\t\tif (syncOpts.filters.sub(type, src, x, y, w, h, i))\n\t\t\tevents[type](null, src, x, y, w, h, i);\n\t}\n\n\tself.pub = pub;\n\n\tfunction destroy() {\n\t\tsync.unsub(self);\n\t\tcursorPlots.delete(self);\n\t\tmouseListeners.clear();\n\t\toff(dppxchange, win, syncPxRatio);\n\t\troot.remove();\n\t\tlegendTable?.remove(); // in case mounted outside of root\n\t\tfire(\"destroy\");\n\t}\n\n\tself.destroy = destroy;\n\n\tfunction _init() {\n\t\tfire(\"init\", opts, data);\n\n\t\tsetData(data || opts.data, false);\n\n\t\tif (pendScales[xScaleKey])\n\t\t\tsetScale(xScaleKey, pendScales[xScaleKey]);\n\t\telse\n\t\t\tautoScaleX();\n\n\t\tshouldSetSelect = select.show && (select.width > 0 || select.height > 0);\n\t\tshouldSetCursor = shouldSetLegend = true;\n\n\t\t_setSize(opts.width, opts.height);\n\t}\n\n\tseries.forEach(initSeries);\n\n\taxes.forEach(initAxis);\n\n\tif (then) {\n\t\tif (then instanceof HTMLElement) {\n\t\t\tthen.appendChild(root);\n\t\t\t_init();\n\t\t}\n\t\telse\n\t\t\tthen(self, _init);\n\t}\n\telse\n\t\t_init();\n\n\treturn self;\n}\n\nuPlot.assign = assign;\nuPlot.fmtNum = fmtNum;\nuPlot.rangeNum = rangeNum;\nuPlot.rangeLog = rangeLog;\nuPlot.rangeAsinh = rangeAsinh;\nuPlot.orient = orient;\nuPlot.pxRatio = pxRatio;\n\n{\n\tuPlot.join = join;\n}\n\n{\n\tuPlot.fmtDate = fmtDate;\n\tuPlot.tzDate = tzDate;\n}\n\nuPlot.sync = _sync;\n\n{\n\tuPlot.addGap = addGap;\n\tuPlot.clipGaps = clipGaps;\n\n\tlet paths = uPlot.paths = {\n\t\tpoints,\n\t};\n\n\t(paths.linear = linear);\n\t(paths.stepped = stepped);\n\t(paths.bars = bars);\n\t(paths.spline = monotoneCubic);\n}\n\nexport { uPlot as default };\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","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"./\";","////////////////////////////////////////////////////////////////////////////////\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: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // 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(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (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\nfunction 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 === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\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: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // 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 loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\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?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a