{"version":3,"file":"8029.3cb01ff9.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/@sentry/core/esm/constants.js","webpack://@finviz/website/../node_modules/@sentry/core/esm/exports.js","webpack://@finviz/website/../node_modules/@sentry/core/esm/hub.js","webpack://@finviz/website/../node_modules/@sentry/core/esm/scope.js","webpack://@finviz/website/../node_modules/@sentry/core/esm/session.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/browser.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/env.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/is.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/logger.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/misc.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/node.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/object.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/string.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/syncpromise.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/time.js","webpack://@finviz/website/../node_modules/@sentry/utils/esm/worldwide.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/assign/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/parse/index.js","webpack://@finviz/website/../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://@finviz/website/../node_modules/use-sync-external-store/shim/index.js","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/focusManager.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/logger.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/mutation.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/query.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/queryCache.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/queryClient.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/removable.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/retryer.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/subscribable.mjs","webpack://@finviz/website/../node_modules/@tanstack/query-core/build/lib/utils.mjs","webpack://@finviz/website/../node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","webpack://@finviz/website/../node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","webpack://@finviz/website/../node_modules/@tanstack/react-query/build/lib/utils.mjs","webpack://@finviz/website/../node_modules/d3-array/src/extent.js","webpack://@finviz/website/../node_modules/d3-array/src/nice.js","webpack://@finviz/website/../node_modules/d3-axis/src/identity.js","webpack://@finviz/website/../node_modules/d3-axis/src/axis.js","webpack://@finviz/website/../node_modules/d3-selection/src/selector.js","webpack://@finviz/website/../node_modules/d3-selection/src/selectorAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/array.js","webpack://@finviz/website/../node_modules/d3-selection/src/matcher.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChild.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChildren.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sparse.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/enter.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/data.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sort.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespaces.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespace.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/attr.js","webpack://@finviz/website/../node_modules/d3-selection/src/window.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/style.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/property.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/classed.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/text.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/html.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/raise.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/lower.js","webpack://@finviz/website/../node_modules/d3-selection/src/creator.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/insert.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/remove.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/clone.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/on.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/dispatch.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/select.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/filter.js","webpack://@finviz/website/../node_modules/d3-selection/src/constant.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/exit.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/join.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/merge.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/order.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/call.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/nodes.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/node.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/size.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/empty.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/each.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/append.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/datum.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/iterator.js","webpack://@finviz/website/../node_modules/d3-dispatch/src/dispatch.js","webpack://@finviz/website/../node_modules/d3-timer/src/timer.js","webpack://@finviz/website/../node_modules/d3-timer/src/timeout.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/schedule.js","webpack://@finviz/website/../node_modules/d3-transition/src/interrupt.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/parse.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/decompose.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/tween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/interpolate.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attr.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attrTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/delay.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/duration.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selection.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/style.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/select.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selectAll.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/filter.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/merge.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/transition.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/on.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/styleTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/text.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/textTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/remove.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/ease.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/easeVarying.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/end.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/transition.js","webpack://@finviz/website/../node_modules/d3-ease/src/cubic.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/interrupt.js","webpack://@finviz/website/../node_modules/d3-brush/src/brush.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/round.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/dice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/slice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/accessors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/constant.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://@finviz/website/../node_modules/d3-selection/src/select.js","webpack://@finviz/website/../node_modules/d3-path/src/path.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/constant.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/math.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/arc.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/array.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/point.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/line.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/descending.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/identity.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/pie.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/basis.js","webpack://@finviz/website/../node_modules/d3-drag/src/noevent.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/zoom.js","webpack://@finviz/website/../node_modules/d3-selection/src/pointer.js","webpack://@finviz/website/../node_modules/d3-selection/src/sourceEvent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/constant.js","webpack://@finviz/website/../node_modules/d3-zoom/src/event.js","webpack://@finviz/website/../node_modules/d3-zoom/src/transform.js","webpack://@finviz/website/../node_modules/d3-zoom/src/noevent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/zoom.js","webpack://@finviz/website/../node_modules/d3-drag/src/nodrag.js"],"sourcesContent":["const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { logger, uuid4 } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const client = getCurrentHub().getClient();\n if (!client) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig);\n }\n\n return uuid4();\n}\n\nexport { addBreadcrumb, captureCheckIn, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, getGlobalSingleton } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nconst API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n\n /** Contains the last event id of a captured event. */\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {this._version = _version;\n this._stack = [{ scope }];\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level,\n hint,\n ) {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this.getScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this.getScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this.getScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this.getScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this.getScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setContext(name, context) {\n this.getScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && !result) {\n // eslint-disable-next-line no-console\n console.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _callExtensionMethod(method, ...args) {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\nfunction getGlobalHub(registry = getMainCarrier()) {\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\nfunction ensureHubOnCarrier(carrier, parent = getGlobalHub()) {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(carrier) || getHubFromCarrier(carrier).isOlderThan(API_VERSION)) {\n const globalHubTopStack = parent.getStackTop();\n setHubOnCarrier(carrier, new Hub(globalHubTopStack.client, Scope.clone(globalHubTopStack.scope)));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nfunction runWithAsyncContext(callback, options = {}) {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, ensureHubOnCarrier, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, runWithAsyncContext, setAsyncContextStrategy, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n newScope._sdkProcessingMetadata = { ...scope._sdkProcessingMetadata };\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transaction = this._span.transaction;\n if (transaction) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: transaction.getDynamicSamplingContext(),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { isString } from './is.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\nexport { getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // @ts-ignore \"npm\" is injected by rollup during build process\n return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const originalConsole = GLOBAL_OBJ.console ;\n const wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n const originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n const getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { isNodeEnv, dynamicRequire } from './node.js';\nimport { getGlobalObject } from './worldwide.js';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nconst dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nconst timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nconst usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = WINDOW;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","/** Internal global with common properties and Sentry extensions */\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function () {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nfunction getGlobalObject() {\n return GLOBAL_OBJ ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.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 networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error('undefined'));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject('Missing queryFn'));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const 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 const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const 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 for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction 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\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n 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 ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n 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 removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const 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 const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = [];\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n this.listeners.push(listener);\n this.onSubscribe();\n return () => {\n this.listeners = this.listeners.filter(x => x !== listener);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.length > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => array2.indexOf(x) === -1);\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\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 if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\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}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction 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(key => !partialDeepEqual(a[key], b[key]));\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\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const 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\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const 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\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(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\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, 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(context, contextSharing) {\n if (context) {\n return context;\n }\n\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\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, 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};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n","export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n"],"names":["DEFAULT_ENVIRONMENT","captureException","exception","captureContext","captureMessage","message","level","undefined","context","setUser","user","withScope","callback","API_VERSION","DEFAULT_BREADCRUMBS","Hub","constructor","client","scope","_version","this","_stack","bindClient","isOlderThan","version","getStackTop","setupIntegrations","pushScope","clone","getScope","getStack","push","getClient","popScope","length","pop","hint","eventId","_lastEventId","event_id","syntheticException","Error","_withClient","originalException","captureEvent","event","type","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","getOptions","mergedBreadcrumb","timestamp","finalBreadcrumb","emit","setTags","tags","setExtras","extras","setTag","key","value","setExtra","extra","setContext","name","configureScope","run","oldHub","makeMain","getIntegration","integration","_oO","__SENTRY_DEBUG__","warn","id","startTransaction","customSamplingContext","result","_callExtensionMethod","console","traceHeaders","captureSession","endSession","_sendSessionUpdate","session","getSession","setSession","startSession","release","environment","userAgent","navigator","getUser","currentSession","status","shouldSendDefaultPii","options","Boolean","sendDefaultPii","method","args","sentry","getMainCarrier","__SENTRY__","extensions","apply","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","acs","getGlobalHub","hasHubOnCarrier","carrier","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setSpan","span","getSpan","getTransaction","transaction","update","updatedScope","Object","keys","contexts","clear","maxCrumbs","slice","getLastBreadcrumb","clearBreadcrumbs","addAttachment","attachment","getAttachments","clearAttachments","applyToEvent","trace","getTraceContext","sdkProcessingMetadata","dynamicSamplingContext","getDynamicSamplingContext","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","index","resolve","reject","processor","log","then","final","forEach","concat","addGlobalEventProcessor","makeSession","startingTime","sid","init","started","duration","errors","ignoreDuration","toJSON","Date","toISOString","did","attrs","ip_address","ipAddress","user_agent","sessionToJSON","updateSession","email","username","closeSession","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","Array","isArray","maxStringLength","_htmlElementAsString","parentNode","reverse","join","el","className","classes","attr","i","tagName","toLowerCase","keyAttrPairs","filter","keyAttr","getAttribute","map","keyAttrPair","split","allowedAttrs","getLocationHref","document","location","href","oO","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","getSDKSource","objectToString","prototype","toString","isError","wat","call","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","isNaN","base","_e","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enabled","logger","enable","disable","uuid4","gbl","crypto","msCrypto","randomUUID","replace","getRandomByte","getRandomValues","Uint8Array","Math","random","c","getFirstException","values","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","data","checkOrSetAlreadyCaught","__sentry_captured__","err","arrayify","maybeArray","isNodeEnv","process","dynamicRequire","mod","request","require","fill","source","replacementFactory","original","wrapped","markFunctionWrapped","_Oo","addNonEnumerableProperty","obj","defineProperty","writable","configurable","proto","getOriginalFunction","func","urlEncode","object","encodeURIComponent","convertToPlainObject","stack","getOwnProperties","newObj","target","serializeEventTarget","currentTarget","CustomEvent","detail","extractedProps","property","hasOwnProperty","extractExceptionKeysForMessage","maxLength","sort","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","Map","memoizationMap","memoVal","get","returnValue","set","item","truncate","str","max","safeJoin","input","delimiter","output","String","e","stringMatchesSomePattern","testString","patterns","requireExactStringMatch","some","pattern","test","includes","isMatchingPattern","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","_","__init","_state","PENDING","__init2","_handlers","executor","__init3","__init4","__init5","__init6","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","val","onfinally","isRejected","_setResult","RESOLVED","REJECTED","state","_value","cachedHandlers","handler","dateTimestampSource","nowSeconds","now","platformPerformance","module","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","bind","timestampInSeconds","_browserPerformanceTimeOriginMode","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","isGlobalObj","GLOBAL_OBJ","globalThis","window","self","g","getGlobalObject","getGlobalSingleton","creator","dirtyObject","TypeError","setUTCDay","dirtyDate","dirtyDay","dirtyOptions","requiredArgs","arguments","locale","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","toInteger","RangeError","date","toDate","day","diff","getUTCDay","setUTCDate","getUTCDate","numericPatterns","timezonePatterns","parseNumericPattern","string","valueCallback","matchResult","match","parseInt","rest","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","floor","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","year","G","priority","parse","token","_options","era","width","flags","setUTCFullYear","setUTCHours","incompatibleTokens","y","isTwoDigitYear","ordinalNumber","unit","validate","_date","getUTCFullYear","normalizedTwoDigitYear","Y","getUTCWeekYear","firstWeekContainsDate","startOfUTCWeek","R","_match","_flags","firstWeekOfYear","startOfUTCISOWeek","u","Q","quarter","setUTCMonth","q","M","month","L","w","dirtyWeek","week","getUTCWeek","setUTCWeek","I","dirtyISOWeek","isoWeek","getUTCISOWeek","setUTCISOWeek","d","subPriority","isLeapYear","getUTCMonth","D","E","wholeWeekDays","setUTCISODay","a","dayPeriod","b","B","h","isPM","getUTCHours","H","K","k","hours","m","setUTCMinutes","s","setUTCSeconds","S","pow","setUTCMilliseconds","X","timestampIsSet","getTime","x","t","_token","T","TIMEZONE_UNIT_PRIORITY","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","NaN","subFnOptions","setters","dateToSystemTimezone","tokens","substring","firstCharacter","longFormatter","longFormatters","formatLong","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleToken","_i","usedToken","indexOf","fullToken","parseResult","uniquePrioritySetters","setter","array","setterArray","utcDate","subMilliseconds","getTimezoneOffsetInMilliseconds","convertedDate","setFullYear","setHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","is","l","useState","useEffect","useLayoutEffect","p","useDebugValue","r","getSnapshot","f","createElement","inst","exports","useSyncExternalStore","FocusManager","super","setup","onFocus","addEventListener","listener","removeEventListener","onSubscribe","cleanup","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","listeners","isFocused","visibilityState","focusManager","defaultLogger","Mutation","config","defaultOptions","mutationId","mutationCache","observers","getDefaultState","setOptions","scheduleGc","updateCacheTime","cacheTime","meta","setState","dispatch","addObserver","observer","clearGcTimeout","notify","mutation","removeObserver","optionalRemove","remove","_this$retryer$continu","_this$retryer","retryer","continue","execute","executeMutation","_this$options$retry","fn","mutationFn","variables","Promise","onFail","failureCount","error","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","onMutate","onSuccess","onSettled","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","onError","action","failureReason","isPaused","reducer","batch","onMutationUpdate","notifyManager","queue","transactions","notifyFn","batchNotifyFn","schedule","flush","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","OnlineManager","onOnline","online","setOnline","isOnline","onLine","onlineManager","Query","abortSignalConsumed","cache","queryKey","queryHash","initialState","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","fetchStatus","setData","updatedAt","manual","setStateOptions","cancel","catch","destroy","silent","reset","isActive","isDisabled","getObserversCount","isStale","getCurrentResult","isStaleByTime","staleTime","_this$retryer2","find","shouldFetchOnWindowFocus","refetch","cancelRefetch","_this$retryer3","shouldFetchOnReconnect","query","revert","cancelRetry","invalidate","fetch","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","continueRetry","queryFn","abortController","queryFnContext","pageParam","addSignalProperty","enumerable","signal","fetchFn","_context$fetchOptions2","behavior","onFetch","revertState","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","isFetchingOptimistic","abort","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","_action$meta","_action$dataUpdatedAt","onQueryUpdate","QueryCache","queries","queriesMap","build","_options$queryHash","getLogger","defaultQueryOptions","getQueryDefaults","add","queryInMap","getAll","arg1","arg2","filters","exact","findAll","MutationCache","mutations","defaultMutationOptions","mutationKey","getMutationDefaults","resumePausedMutations","_this$resuming","resuming","pausedMutations","reduce","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","isFetchingNextPage","direction","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","cancelled","buildNewPages","param","page","previous","fetchPage","_context$signal","_context$signal2","aborted","queryFnResult","getNextPageParam","getPreviousPageParam","QueryClient","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","subscribe","unsubscribeOnline","unmount","_this$unsubscribeFocu","_this$unsubscribeOnli","isFetching","isMutating","fetching","getQueryData","_this$queryCache$find","ensureQueryData","arg3","parsedOptions","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","updater","prevData","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","all","invalidateQueries","_ref","_filters$refetchType","refetchType","_options$cancelRefetc","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","Removable","gcTimeout","setTimeout","newCacheTime","Infinity","clearTimeout","defaultRetryDelay","min","canFetch","CancelledError","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","pause","continueResolve","canContinue","promiseOrValue","_config$retry","_config$retryDelay","delay","shouldRetry","Subscribable","isServer","noop","functionalUpdate","isValidTimeout","timeUntilStale","parseQueryArgs","isQueryKey","parseMutationArgs","parseFilterArgs","matchQuery","predicate","stale","hashQueryKeyByOptions","partialMatchKey","matchMutation","hashQueryKey","queryKeyHashFn","JSON","stringify","partialDeepEqual","replaceEqualDeep","isPlainArray","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","scheduleMicrotask","getAbortController","AbortController","replaceData","isDataEqual","structuralSharing","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","queryClient","QueryClientProvider","children","Context","Provider","shouldThrowError","_useErrorBoundary","params","extent","valueof","nice","start","stop","count","prestep","step","isFinite","ceil","right","bottom","left","epsilon","translateX","translateY","number","scale","center","offset","bandwidth","round","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","transform","ticks","domain","format","identity","spacing","range","range0","range1","position","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","append","line","select","text","merge","insert","transition","each","from","tickSize","axisRight","axisBottom","axisLeft","none","selector","querySelector","empty","querySelectorAll","arrayAll","matches","childMatcher","node","childFirst","firstElementChild","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","has","delete","arraylike","ascending","appendChild","child","insertBefore","next","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","styleRemove","style","removeProperty","styleConstant","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","trim","classList","ClassList","_node","_names","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","j","onAdd","contextListener","dispatchEvent","createEvent","initEvent","bubbles","cancelable","dispatchConstant","dispatchFunction","splice","contains","root","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","enterGroup","updateGroup","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","nodes","size","getAttributeNS","classed","html","create","before","deep","typenames","parseTypenames","Symbol","iterator","Dispatch","types","that","taskHead","taskTail","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","time","restart","wake","timerFlush","t0","t2","t1","nap","poke","clearInterval","setInterval","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","tween","ease","active","svgNode","degrees","PI","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","color","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","end","interrupt","defaultTiming","number1","number2","sum","hierarchy","mapChildren","objectChildren","childs","Node","depth","eachBefore","computeHeight","copyData","x0","y0","x1","y1","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","current","phi","squarifyRatio","ratio","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","rows","dice","custom","squarify","required","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","padding","paddingOuter","resquarify","_squarify","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","rect","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","Linear","_context","defined","curve","defined0","lineStart","lineEnd","point","sortValues","descending","pie","arcs","pa","Basis","areaStart","_line","areaEnd","_point","nonpassivecapture","capture","passive","preventDefault","stopImmediatePropagation","cosh","exp","zoomRho","rho","rho2","rho4","zoom","ux0","uy0","w0","ux1","uy1","w1","d1","b0","b1","coshr0","sinh","SQRT2","_1","_2","sourceEvent","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","clientLeft","top","clientTop","pageX","pageY","ZoomEvent","defineProperties","Transform","applyX","applyY","invert","invertX","invertY","rescaleX","rescaleY","__zoom","ctrlKey","button","SVGElement","hasAttribute","viewBox","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","maxTouchPoints","defaultConstrain","translateExtent","touchstarting","touchfirst","touchending","constrain","wheelDelta","touchable","scaleExtent","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","gesture","clean","__zooming","Gesture","taps","wheel","mouse","view","moved","noclick","MozUserSelect","__noselect","changedTouches","k1","shiftKey","touches","identifier","touch0","touch1","l0","l1","dp","dl","hypot","collection","scaleBy","scaleTo","translateBy","translateTo","clickDistance"],"sourceRoot":""}