@av-pi-studio/web-client 0.0.8
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/.tsbuildinfo +1 -0
- package/dist/web/assets/BinaryFallbackViewer-BVnOJSh_.js +2 -0
- package/dist/web/assets/BinaryFallbackViewer-BVnOJSh_.js.map +1 -0
- package/dist/web/assets/BinaryFallbackViewer-CLiNWU_S.css +1 -0
- package/dist/web/assets/ChatPanel-BOR3MYdN.js +3 -0
- package/dist/web/assets/ChatPanel-BOR3MYdN.js.map +1 -0
- package/dist/web/assets/ChatPanel-DW5U4HRf.css +1 -0
- package/dist/web/assets/CodeView-BJb8T6q4.js +2 -0
- package/dist/web/assets/CodeView-BJb8T6q4.js.map +1 -0
- package/dist/web/assets/CodeView-CLRODhB8.css +1 -0
- package/dist/web/assets/DiffView-B4H-yHuX.js +3 -0
- package/dist/web/assets/DiffView-B4H-yHuX.js.map +1 -0
- package/dist/web/assets/DiffView-CRbeRztO.css +1 -0
- package/dist/web/assets/FilePanel-DIInFr3h.css +1 -0
- package/dist/web/assets/FilePanel-lERDJldp.js +3 -0
- package/dist/web/assets/FilePanel-lERDJldp.js.map +1 -0
- package/dist/web/assets/ImageViewer-Cnr0mhRu.js +2 -0
- package/dist/web/assets/ImageViewer-Cnr0mhRu.js.map +1 -0
- package/dist/web/assets/ImageViewer-ijzMsq8H.css +1 -0
- package/dist/web/assets/MarkdownFileViewer-BD5Ri_Fb.css +1 -0
- package/dist/web/assets/MarkdownFileViewer-CDHJBxdH.js +2 -0
- package/dist/web/assets/MarkdownFileViewer-CDHJBxdH.js.map +1 -0
- package/dist/web/assets/TerminalPanel-BQj62G6N.css +1 -0
- package/dist/web/assets/TerminalPanel-cnkK_YF5.js +2 -0
- package/dist/web/assets/TerminalPanel-cnkK_YF5.js.map +1 -0
- package/dist/web/assets/TextViewer-DWYO-J8z.js +2 -0
- package/dist/web/assets/TextViewer-DWYO-J8z.js.map +1 -0
- package/dist/web/assets/VideoViewer-BBuZ4wou.css +1 -0
- package/dist/web/assets/VideoViewer-D2ZnEQoA.js +2 -0
- package/dist/web/assets/VideoViewer-D2ZnEQoA.js.map +1 -0
- package/dist/web/assets/index-DnTTpAX5.js +3 -0
- package/dist/web/assets/index-DnTTpAX5.js.map +1 -0
- package/dist/web/assets/index-DrGTLQo0.css +1 -0
- package/dist/web/assets/markdown-BQwXm0MF.css +1 -0
- package/dist/web/assets/markdown-Biwdm3dP.js +2 -0
- package/dist/web/assets/markdown-Biwdm3dP.js.map +1 -0
- package/dist/web/assets/use-file-download-BpyWNVxA.js +2 -0
- package/dist/web/assets/use-file-download-BpyWNVxA.js.map +1 -0
- package/dist/web/assets/vendor-BFXtRv5b.js +83 -0
- package/dist/web/assets/vendor-BFXtRv5b.js.map +1 -0
- package/dist/web/assets/vendor-dnd-D9kA7FgH.js +6 -0
- package/dist/web/assets/vendor-dnd-D9kA7FgH.js.map +1 -0
- package/dist/web/assets/vendor-highlight-DaTzDdJW.js +5 -0
- package/dist/web/assets/vendor-highlight-DaTzDdJW.js.map +1 -0
- package/dist/web/assets/vendor-icons-DUloQbkI.js +182 -0
- package/dist/web/assets/vendor-icons-DUloQbkI.js.map +1 -0
- package/dist/web/assets/vendor-markdown-CpaoCv-a.js +36 -0
- package/dist/web/assets/vendor-markdown-CpaoCv-a.js.map +1 -0
- package/dist/web/assets/vendor-overlays-Bo99M0pM.js +2 -0
- package/dist/web/assets/vendor-overlays-Bo99M0pM.js.map +1 -0
- package/dist/web/assets/vendor-query-CAh-Aqig.js +2 -0
- package/dist/web/assets/vendor-query-CAh-Aqig.js.map +1 -0
- package/dist/web/assets/vendor-react-BoIQBqDW.js +50 -0
- package/dist/web/assets/vendor-react-BoIQBqDW.js.map +1 -0
- package/dist/web/assets/vendor-terminal-BhzX2_ts.js +10 -0
- package/dist/web/assets/vendor-terminal-BhzX2_ts.js.map +1 -0
- package/dist/web/assets/vendor-terminal-DYP7pi_n.css +32 -0
- package/dist/web/index.html +21 -0
- package/package.json +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor-query-CAh-Aqig.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/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/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/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/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","QueryCache","_queries","queryHash","queryInMap","queries","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","useBaseQuery","Observer","subscribed","isNewCacheEntry","React.useState","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","unsubscribe","useQuery","createLazyMeasurementsView","count","flat","getItemKey","cache","prop","receiver","c","s","memo","getDeps","opts","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","prev","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]}
|