@av-pi-studio/web-client 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web/assets/{BinaryFallbackViewer-BnWhdpeg.js → BinaryFallbackViewer-mLjhu11M.js} +2 -2
- package/dist/web/assets/{BinaryFallbackViewer-BnWhdpeg.js.map → BinaryFallbackViewer-mLjhu11M.js.map} +1 -1
- package/dist/web/assets/ChatPanel-B_B_2aOA.js +3 -0
- package/dist/web/assets/ChatPanel-B_B_2aOA.js.map +1 -0
- package/dist/web/assets/{CodeView-CtOlx2Hf.js → CodeView-CB09dqGQ.js} +2 -2
- package/dist/web/assets/{CodeView-CtOlx2Hf.js.map → CodeView-CB09dqGQ.js.map} +1 -1
- package/dist/web/assets/{FilePanel-CgECH-BF.js → FilePanel-Hla4aEUX.js} +3 -3
- package/dist/web/assets/{FilePanel-CgECH-BF.js.map → FilePanel-Hla4aEUX.js.map} +1 -1
- package/dist/web/assets/{ImageViewer-DufNRX54.js → ImageViewer-DtVjY-TF.js} +2 -2
- package/dist/web/assets/{ImageViewer-DufNRX54.js.map → ImageViewer-DtVjY-TF.js.map} +1 -1
- package/dist/web/assets/{MarkdownFileViewer-DDs4bgjE.js → MarkdownFileViewer-CCq6ncYt.js} +2 -2
- package/dist/web/assets/{MarkdownFileViewer-DDs4bgjE.js.map → MarkdownFileViewer-CCq6ncYt.js.map} +1 -1
- package/dist/web/assets/{TerminalPanel-BuhO09jx.js → TerminalPanel-CpqJXnEn.js} +2 -2
- package/dist/web/assets/{TerminalPanel-BuhO09jx.js.map → TerminalPanel-CpqJXnEn.js.map} +1 -1
- package/dist/web/assets/{TextViewer-fQRmhUYA.js → TextViewer-CcF-CYR9.js} +2 -2
- package/dist/web/assets/{TextViewer-fQRmhUYA.js.map → TextViewer-CcF-CYR9.js.map} +1 -1
- package/dist/web/assets/{VideoViewer-CJRC70tG.js → VideoViewer-qOKrbk4G.js} +2 -2
- package/dist/web/assets/{VideoViewer-CJRC70tG.js.map → VideoViewer-qOKrbk4G.js.map} +1 -1
- package/dist/web/assets/{index-Czdb4qso.js → index-Bo913WdX.js} +3 -3
- package/dist/web/assets/{index-Czdb4qso.js.map → index-Bo913WdX.js.map} +1 -1
- package/dist/web/assets/{use-file-download-DGFPkZIR.js → use-file-download-DBTB0i17.js} +2 -2
- package/dist/web/assets/{use-file-download-DGFPkZIR.js.map → use-file-download-DBTB0i17.js.map} +1 -1
- package/dist/web/assets/{vendor-query-D5H9KBcL.js → vendor-query-AtKBh_Yt.js} +2 -2
- package/dist/web/assets/{vendor-query-D5H9KBcL.js.map → vendor-query-AtKBh_Yt.js.map} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/web/assets/ChatPanel-CpySMxiE.js +0 -3
- package/dist/web/assets/ChatPanel-CpySMxiE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-query-D5H9KBcL.js","sources":["../../../../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/utils.js","../../../../../node_modules/@tanstack/query-core/build/modern/environmentManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../../../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../../../../node_modules/@tanstack/query-core/build/modern/removable.js","../../../../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../../../node_modules/@tanstack/query-core/build/modern/query.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../../../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../../../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\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 timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveQueryBoolean(option, query) {\n return typeof option === \"function\" ? option(query) : option;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (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 if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\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 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 setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = 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 if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (environmentManager.isServer() ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout !== void 0) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject(context.signal.reason);\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar Query = class extends Removable {\n #queryType;\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get queryType() {\n return this.#queryType;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n if (options?._type) {\n this.#queryType = options._type;\n }\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state) {\n this.#dispatch({ type: \"setState\", state });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveQueryBoolean(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `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 = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n const behavior = this.#queryType === \"infinite\" ? infiniteQueryBehavior(\n this.options.pages\n ) : this.options.behavior;\n behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `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 throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n 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 // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? 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\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId !== void 0) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId !== void 0) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveQueryBoolean(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryBoolean(options.retryOnMount, query) === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\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 optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\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};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #shouldSkipCombine() {\n return this.#options?.combine !== void 0 && this.#observers.some((observer, index) => {\n return observer.options.suspense && this.#result[index]?.data === void 0;\n });\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const shouldSkipCombine = this.#shouldSkipCombine();\n const previousResult = this.#combinedResult;\n const newResult = shouldSkipCombine ? previousResult : this.#combineResult(newTracked, this.#options?.combine);\n if (shouldSkipCombine || previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options._type = \"infinite\";\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options._type = \"infinite\";\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n const subscribed = options.subscribed !== false;\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && subscribed;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const gap = this.options.gap;\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== \"backward\")\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\n }\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n directDomUpdates = false,\n directDomUpdatesMode = \"transform\",\n ...options\n}) {\n const rerender = React.useReducer((x) => x + 1, 0)[1];\n const directRef = React.useRef({\n enabled: directDomUpdates,\n mode: directDomUpdatesMode,\n container: null,\n lastSize: null,\n // Keyed by the element itself so a remounted node (same key, new DOM\n // node — e.g. when `enabled` is toggled off then on) is treated as fresh\n // and gets its style written.\n lastPositions: /* @__PURE__ */ new WeakMap(),\n prevRange: null\n });\n directRef.current.enabled = directDomUpdates;\n directRef.current.mode = directDomUpdatesMode;\n const applyDirectStyles = (instance2) => {\n const state = directRef.current;\n if (!state.enabled || !state.container) return;\n const totalSize = instance2.getTotalSize();\n if (totalSize !== state.lastSize) {\n state.lastSize = totalSize;\n const sizeAxis = instance2.options.horizontal ? \"width\" : \"height\";\n state.container.style[sizeAxis] = `${totalSize}px`;\n }\n const horizontal = !!instance2.options.horizontal;\n const useTransform = state.mode === \"transform\";\n const posAxis = horizontal ? \"left\" : \"top\";\n const scrollMargin = instance2.options.scrollMargin;\n const items = instance2.getVirtualItems();\n for (const item of items) {\n const next = item.start - scrollMargin;\n const el = instance2.elementsCache.get(item.key);\n if (!el) continue;\n if (state.lastPositions.get(el) === next) continue;\n state.lastPositions.set(el, next);\n if (useTransform) {\n el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`;\n } else {\n el.style[posAxis] = `${next}px`;\n }\n }\n };\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n const state = directRef.current;\n let shouldRerender = true;\n if (state.enabled) {\n applyDirectStyles(instance2);\n const range = instance2.range;\n const prev = state.prevRange;\n shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex);\n if (shouldRerender) {\n state.prevRange = range ? {\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n isScrolling: instance2.isScrolling\n } : null;\n }\n }\n if (shouldRerender) {\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(() => {\n const v = new Virtualizer(resolvedOptions);\n return Object.assign(v, {\n containerRef: (node) => {\n const state = directRef.current;\n state.container = node;\n state.lastSize = null;\n if (node && state.enabled) {\n const total = v.getTotalSize();\n state.lastSize = total;\n const axis = v.options.horizontal ? \"width\" : \"height\";\n node.style[axis] = `${total}px`;\n }\n }\n });\n });\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n useIsomorphicLayoutEffect(() => {\n applyDirectStyles(instance);\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["Subscribable","listener","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","_provider","_providerCalled","provider","timeoutManager","systemSetTimeoutZero","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveQueryBoolean","option","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","aItem","bItem","v","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","environmentManager","isServerFn","isServerValue","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","config","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","_gcTimeout","newGcTime","infiniteQueryBehavior","pages","context","direction","_c","_b","oldPages","_d","oldPageParams","_e","currentPage","fetchFn","cancelled","addSignalProperty","queryFn","fetchPage","param","previous","queryFnContext","queryFnContext2","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","Query","_Query_instances","_queryType","_initialState","_revertState","_cache","_client","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","defaultState","successState","newData","__privateMethod","dispatch_fn","state","promise","observer","x","isInitialPausedFetch_fn","abortController","context2","behavior","_g","_f","_i","_h","_k","_j","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","client","_QueryObserver_instances","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","target","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","notifyOptions","shouldLoadOnMount","field","optimisticResult","Mutation","_Mutation_instances","_observers","_mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","_l","e","_n","_m","_p","_o","_r","_q","MutationCache","_mutations","_scopes","_mutationId","__privateWrapper","scope","scopeFor","scopedMutations","index","mutationsWithSameScope","firstPendingMutation","m","foundMutation","defaultedFilters","event","pausedMutations","difference","array1","array2","excludeSet","replaceAt","QueriesObserver","queries","_QueriesObserver_instances","_result","_queries","_options","_combinedResult","_lastCombine","_lastResult","_lastQueryHashes","_observerMatches","onUpdate_fn","prevObservers","newObserverMatches","findMatchingObservers_fn","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","combine","matches","queryHashes","r","combineResult_fn","trackResult_fn","observerResult","accessedProp","lastHashes","queryHashesChanged","hash","shouldSkipCombine_fn","prevObserversMap","previousObservers","observers","newTracked","shouldSkipCombine","previousResult","QueryCache","queryHash","queryInMap","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","defaults","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useQueries","defaultedQueries","React.useMemo","opts","queryOptions","React.useState","getCombinedResult","trackResult","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","useBaseQuery","Observer","subscribed","isNewCacheEntry","unsubscribe","useQuery","createLazyMeasurementsView","count","flat","getItemKey","cache","prop","receiver","c","s","memo","getDeps","deps","isInitial","memoizedFunction","newDeps","dep","notUndefined","msg","approxEqual","debounce","targetWindow","ms","_isIOSResult","isIOSWebKit","mtp","getRect","element","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","start","len","arr","observeElementRect","instance","cb","handler","rect","width","height","entries","entry","box","addEventListenerOptions","supportsScrollend","observeOffset","readOffset","registerScrollendEvent","offset","fallback","createHandler","isScrolling","endHandler","observeElementOffset","el","horizontal","isRtl","measureElement","cachedSize","scrollWithAdjustments","adjustments","elementScroll","Virtualizer","_ro","get","node","cacheKey","cachedNode","opts2","merged","anchor","followOnAppend","edgeKeysChanged","prevCount","nextCount","measurements","prevFirstKey","prevLastKey","anchorResolved","anchorDelta","anchorKey","anchorOffset","newMeasurements","idx","anchorItem","newOffset","sync","d","scrollElement","cached","prevOffset","scrollEl","onTouchStart","onTouchEnd","_offset","cur","delta","furthestMeasurementsFound","furthestMeasurements","measurement","previousFurthestMeasurement","paddingStart","scrollMargin","enabled","lanes","laneAssignmentMode","_itemSizeCacheVersion","itemSizeCache","min","gap","need","next","runningStart","prevIdx","measuredSize","size","view","laneLastIndex","cachedLane","lane","shouldCacheLane","prevIndex","prevInLane","furthestMeasurement","end","outerSize","scrollOffset","calculateRangeImpl","startIndex","endIndex","rangeExtractor","overscan","attributeName","indexStr","scrollIndex","bufferSize","minIndex","maxIndex","key2","prevNode","itemStart","itemSize","wasAtEnd","prevTotalSize","shouldAdjustScroll","indexes","virtualItems","k","useFlat","findNearestBinarySearch","doc","threshold","toOffset","align","maxOffset","now","initialAlign","offsetInfo","lastIdx","endByLane","snapshot","targetOffset","STABLE_FRAMES","targetChanged","viewport","distance","keepSmooth","low","high","getCurrentValue","middle","currentValue","findNearestBinarySearchFlat","startIndex2","endIndex2","limit","endPerLane","pos","startPerLane","useIsomorphicLayoutEffect","React.useLayoutEffect","useVirtualizerBase","useFlushSync","directDomUpdates","directDomUpdatesMode","rerender","React.useReducer","directRef","React.useRef","applyDirectStyles","instance2","totalSize","sizeAxis","useTransform","posAxis","resolvedOptions","shouldRerender","flushSync","total","axis","useVirtualizer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}
|
|
1
|
+
{"version":3,"file":"vendor-query-AtKBh_Yt.js","sources":["../../../../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/utils.js","../../../../../node_modules/@tanstack/query-core/build/modern/environmentManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../../../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../../../../node_modules/@tanstack/query-core/build/modern/removable.js","../../../../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../../../node_modules/@tanstack/query-core/build/modern/query.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../../../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../../../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../../../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../../../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\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 timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveQueryBoolean(option, query) {\n return typeof option === \"function\" ? option(query) : option;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (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 if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\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 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 setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = 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 if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (environmentManager.isServer() ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout !== void 0) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject(context.signal.reason);\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar Query = class extends Removable {\n #queryType;\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get queryType() {\n return this.#queryType;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n if (options?._type) {\n this.#queryType = options._type;\n }\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state) {\n this.#dispatch({ type: \"setState\", state });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveQueryBoolean(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `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 = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n const behavior = this.#queryType === \"infinite\" ? infiniteQueryBehavior(\n this.options.pages\n ) : this.options.behavior;\n behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `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 throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n 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 // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? 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\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId !== void 0) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId !== void 0) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveQueryBoolean(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryBoolean(options.retryOnMount, query) === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\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 optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\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};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #shouldSkipCombine() {\n return this.#options?.combine !== void 0 && this.#observers.some((observer, index) => {\n return observer.options.suspense && this.#result[index]?.data === void 0;\n });\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const shouldSkipCombine = this.#shouldSkipCombine();\n const previousResult = this.#combinedResult;\n const newResult = shouldSkipCombine ? previousResult : this.#combineResult(newTracked, this.#options?.combine);\n if (shouldSkipCombine || previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options._type = \"infinite\";\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options._type = \"infinite\";\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n const subscribed = options.subscribed !== false;\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && subscribed;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {\n return;\n }\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n const prevOffset = this.getScrollOffset();\n this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const gap = this.options.gap;\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n if (measurements.length === 0 || outerSize === 0) {\n this.range = null;\n return null;\n }\n this.range = calculateRangeImpl(\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can read\n // start/end directly from Float64Array, skipping the Proxy traps.\n lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n );\n return this.range;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust when the resize is an above-viewport item.\n // First measurement (!has(key)): always adjust — the item\n // has never been sized, so the estimate→actual delta must\n // be compensated regardless of scroll direction.\n // Re-measurement (has(key)): skip during backward scroll\n // to avoid the \"items jump while scrolling up\" cascade.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && (!this.itemSizeCache.has(key) || this.scrollDirection !== \"backward\")\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n if (this.scrollOffset !== null) {\n this.scrollOffset += this.scrollAdjustments;\n this.scrollAdjustments = 0;\n }\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction findNearestBinarySearchFlat(flat, high, value) {\n let low = 0;\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = flat[middle * 2];\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n return low > 0 ? low - 1 : 0;\n}\nfunction calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {\n const lastIndex = measurements.length - 1;\n if (measurements.length <= lanes) {\n return { startIndex: 0, endIndex: lastIndex };\n }\n if (lanes === 1 && flat !== null) {\n const startIndex2 = findNearestBinarySearchFlat(\n flat,\n lastIndex,\n scrollOffset\n );\n let endIndex2 = startIndex2;\n const limit = scrollOffset + outerSize;\n while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {\n endIndex2++;\n }\n return { startIndex: startIndex2, endIndex: endIndex2 };\n }\n const getStart = (index) => measurements[index].start;\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n directDomUpdates = false,\n directDomUpdatesMode = \"transform\",\n ...options\n}) {\n const rerender = React.useReducer((x) => x + 1, 0)[1];\n const directRef = React.useRef({\n enabled: directDomUpdates,\n mode: directDomUpdatesMode,\n container: null,\n lastSize: null,\n // Keyed by the element itself so a remounted node (same key, new DOM\n // node — e.g. when `enabled` is toggled off then on) is treated as fresh\n // and gets its style written.\n lastPositions: /* @__PURE__ */ new WeakMap(),\n prevRange: null\n });\n directRef.current.enabled = directDomUpdates;\n directRef.current.mode = directDomUpdatesMode;\n const applyDirectStyles = (instance2) => {\n const state = directRef.current;\n if (!state.enabled || !state.container) return;\n const totalSize = instance2.getTotalSize();\n if (totalSize !== state.lastSize) {\n state.lastSize = totalSize;\n const sizeAxis = instance2.options.horizontal ? \"width\" : \"height\";\n state.container.style[sizeAxis] = `${totalSize}px`;\n }\n const horizontal = !!instance2.options.horizontal;\n const useTransform = state.mode === \"transform\";\n const posAxis = horizontal ? \"left\" : \"top\";\n const scrollMargin = instance2.options.scrollMargin;\n const items = instance2.getVirtualItems();\n for (const item of items) {\n const next = item.start - scrollMargin;\n const el = instance2.elementsCache.get(item.key);\n if (!el) continue;\n if (state.lastPositions.get(el) === next) continue;\n state.lastPositions.set(el, next);\n if (useTransform) {\n el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`;\n } else {\n el.style[posAxis] = `${next}px`;\n }\n }\n };\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n const state = directRef.current;\n let shouldRerender = true;\n if (state.enabled) {\n applyDirectStyles(instance2);\n const range = instance2.range;\n const prev = state.prevRange;\n shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex);\n if (shouldRerender) {\n state.prevRange = range ? {\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n isScrolling: instance2.isScrolling\n } : null;\n }\n }\n if (shouldRerender) {\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(() => {\n const v = new Virtualizer(resolvedOptions);\n return Object.assign(v, {\n containerRef: (node) => {\n const state = directRef.current;\n state.container = node;\n state.lastSize = null;\n if (node && state.enabled) {\n const total = v.getTotalSize();\n state.lastSize = total;\n const axis = v.options.horizontal ? \"width\" : \"height\";\n node.style[axis] = `${total}px`;\n }\n }\n });\n });\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n useIsomorphicLayoutEffect(() => {\n applyDirectStyles(instance);\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["Subscribable","listener","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","_provider","_providerCalled","provider","timeoutManager","systemSetTimeoutZero","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveQueryBoolean","option","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","aItem","bItem","v","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","environmentManager","isServerFn","isServerValue","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","config","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","_gcTimeout","newGcTime","infiniteQueryBehavior","pages","context","direction","_c","_b","oldPages","_d","oldPageParams","_e","currentPage","fetchFn","cancelled","addSignalProperty","queryFn","fetchPage","param","previous","queryFnContext","queryFnContext2","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","Query","_Query_instances","_queryType","_initialState","_revertState","_cache","_client","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","defaultState","successState","newData","__privateMethod","dispatch_fn","state","promise","observer","x","isInitialPausedFetch_fn","abortController","context2","behavior","_g","_f","_i","_h","_k","_j","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","client","_QueryObserver_instances","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","target","defaultedOptions","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","notifyOptions","shouldLoadOnMount","field","optimisticResult","Mutation","_Mutation_instances","_observers","_mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","_l","e","_n","_m","_p","_o","_r","_q","MutationCache","_mutations","_scopes","_mutationId","__privateWrapper","scope","scopeFor","scopedMutations","index","mutationsWithSameScope","firstPendingMutation","m","foundMutation","defaultedFilters","event","pausedMutations","difference","array1","array2","excludeSet","replaceAt","QueriesObserver","queries","_QueriesObserver_instances","_result","_queries","_options","_combinedResult","_lastCombine","_lastResult","_lastQueryHashes","_observerMatches","onUpdate_fn","prevObservers","newObserverMatches","findMatchingObservers_fn","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","combine","matches","queryHashes","r","combineResult_fn","trackResult_fn","observerResult","accessedProp","lastHashes","queryHashesChanged","hash","shouldSkipCombine_fn","prevObserversMap","previousObservers","observers","newTracked","shouldSkipCombine","previousResult","QueryCache","queryHash","queryInMap","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","defaults","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useQueries","defaultedQueries","React.useMemo","opts","queryOptions","React.useState","getCombinedResult","trackResult","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","useBaseQuery","Observer","subscribed","isNewCacheEntry","unsubscribe","useQuery","createLazyMeasurementsView","count","flat","getItemKey","cache","prop","receiver","c","s","memo","getDeps","deps","isInitial","memoizedFunction","newDeps","dep","notUndefined","msg","approxEqual","debounce","targetWindow","ms","_isIOSResult","isIOSWebKit","mtp","getRect","element","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","start","len","arr","observeElementRect","instance","cb","handler","rect","width","height","entries","entry","box","addEventListenerOptions","supportsScrollend","observeOffset","readOffset","registerScrollendEvent","offset","fallback","createHandler","isScrolling","endHandler","observeElementOffset","el","horizontal","isRtl","measureElement","cachedSize","scrollWithAdjustments","adjustments","elementScroll","Virtualizer","_ro","get","node","cacheKey","cachedNode","opts2","merged","anchor","followOnAppend","edgeKeysChanged","prevCount","nextCount","measurements","prevFirstKey","prevLastKey","anchorResolved","anchorDelta","anchorKey","anchorOffset","newMeasurements","idx","anchorItem","newOffset","sync","d","scrollElement","cached","prevOffset","scrollEl","onTouchStart","onTouchEnd","_offset","cur","delta","furthestMeasurementsFound","furthestMeasurements","measurement","previousFurthestMeasurement","paddingStart","scrollMargin","enabled","lanes","laneAssignmentMode","_itemSizeCacheVersion","itemSizeCache","min","gap","need","next","runningStart","prevIdx","measuredSize","size","view","laneLastIndex","cachedLane","lane","shouldCacheLane","prevIndex","prevInLane","furthestMeasurement","end","outerSize","scrollOffset","calculateRangeImpl","startIndex","endIndex","rangeExtractor","overscan","attributeName","indexStr","scrollIndex","bufferSize","minIndex","maxIndex","key2","prevNode","itemStart","itemSize","wasAtEnd","prevTotalSize","shouldAdjustScroll","indexes","virtualItems","k","useFlat","findNearestBinarySearch","doc","threshold","toOffset","align","maxOffset","now","initialAlign","offsetInfo","lastIdx","endByLane","snapshot","targetOffset","STABLE_FRAMES","targetChanged","viewport","distance","keepSmooth","low","high","getCurrentValue","middle","currentValue","findNearestBinarySearchFlat","startIndex2","endIndex2","limit","endPerLane","pos","startPerLane","useIsomorphicLayoutEffect","React.useLayoutEffect","useVirtualizerBase","useFlushSync","directDomUpdates","directDomUpdatesMode","rerender","React.useReducer","directRef","React.useRef","applyDirectStyles","instance2","totalSize","sizeAxis","useTransform","posAxis","resolvedOptions","shouldRerender","flushSync","total","axis","useVirtualizer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}
|