{"version":3,"file":"tanstack.js","sources":["../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/thenable.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.62.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/isRestoring.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../node_modules/.pnpm/@tanstack+react-query@5.62.3_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","../../node_modules/.pnpm/@tanstack+react-query-devtools@5.62.3_@tanstack+react-query@5.62.3_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-query-devtools/build/modern/index.js","../../node_modules/.pnpm/@tanstack+table-core@8.20.5/node_modules/@tanstack/table-core/build/lib/index.mjs","../../node_modules/.pnpm/@tanstack+react-table@8.20.5_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-table/build/lib/index.mjs"],"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/utils.ts\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 resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\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).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(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 ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\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 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 }\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 = 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}\nexport {\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 resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && 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/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && 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/thenable.ts\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}\nexport {\n pendingThenable\n};\n//# sourceMappingURL=thenable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, 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 isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\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 isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\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 ?? (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 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/notifyManager.ts\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 = (cb) => setTimeout(cb, 0);\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 notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, 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 = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\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.#cache = config.cache;\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 promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\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, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\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 reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(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.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !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) {\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 invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\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 queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\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 context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\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 const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\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 }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\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 onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\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 return this.#retryer.start();\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 return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\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 };\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 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/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 cache: this,\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/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\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 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);\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: 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 this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\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 );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\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 );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\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 Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\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 const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\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 ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } 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 Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\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 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)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.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\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.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)\n 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)\n 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 getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n } else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\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 const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n 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 const refetchFilters = {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\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()).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.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\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 let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...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","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.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 if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\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, notifyOptions) {\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 resolveEnabled(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(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(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 || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(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 const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\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 (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 = 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 (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = 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) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n 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 if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.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 } else {\n data = newState.data;\n }\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 } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\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 (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: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\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 };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\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 (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult(notifyOptions) {\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 defaultNotifyOptions = {};\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 if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\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 resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === 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 (resolveEnabled(options.enabled, query) !== false) {\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 || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(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/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.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/isRestoring.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=isRestoring.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","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\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}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && 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 if (defaultedOptions.staleTime === void 0) {\n defaultedOptions.staleTime = 1e3;\n }\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\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 { isServer, 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 \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.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 client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\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 React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = isRestoring ? noop : observer.subscribe(notifyManager.batchCalls(onStoreChange));\n observer.updateResult();\n return unsubscribe;\n },\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\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: client.getQueryCache().get(defaultedOptions.queryHash)\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !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 client.getQueryCache().get(defaultedOptions.queryHash)?.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","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","\"use client\";\n\n// src/index.ts\nimport * as Devtools from \"./ReactQueryDevtools.js\";\nimport * as DevtoolsPanel from \"./ReactQueryDevtoolsPanel.js\";\nvar ReactQueryDevtools2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : Devtools.ReactQueryDevtools;\nvar ReactQueryDevtoolsPanel2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : DevtoolsPanel.ReactQueryDevtoolsPanel;\nexport {\n ReactQueryDevtools2 as ReactQueryDevtools,\n ReactQueryDevtoolsPanel2 as ReactQueryDevtoolsPanel\n};\n//# sourceMappingURL=index.js.map","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys = 'nested.foo.0.bar'\n// const test2: DeepKeys = 'nested.bar'\n\n// const helper = createColumnHelper()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\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;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\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(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = _contextDocument || typeof document !== 'undefined' ? document : null;\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n"],"names":["Subscribable","listener","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","type","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","key","a","b","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","i","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","FocusManager","_a","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","setup","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","cancel","cancelOptions","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","error","retry","retryDelay","delay","shouldRetry","createNotifyManager","queue","transactions","notifyFn","callback","batchNotifyFn","scheduleFn","cb","schedule","flush","originalQueue","args","fn","notifyManager","Removable","_gcTimeout","newGcTime","Query","_Query_instances","_initialState","_revertState","_cache","_retryer","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","state","setStateOptions","promise","_b","observer","x","abortController","addSignalProperty","object","fetchFn","queryFn","queryFnContext","context","_c","onError","_d","action","reducer","fetchState","hasData","initialDataUpdatedAt","QueryCache","_queries","client","queryHash","queryInMap","defaultedFilters","queries","event","Mutation","_Mutation_instances","_observers","_mutationCache","variables","restored","isPaused","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_p","_o","_r","_q","_t","_s","MutationCache","_mutations","_mutationId","__privateWrapper","scope","scopeFor","mutations","firstPendingMutation","m","foundMutation","pausedMutations","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","currentPage","cancelled","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","defaultedOptions","queryCache","refetchFilters","defaultedCancelOptions","promises","defaults","queryDefault","QueryObserver","_QueryObserver_instances","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_currentThenable","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","mounted","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","prevResult","prevResultState","prevResultOptions","queryInitialState","newState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","nextResult","isStale","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","nextInterval","shouldLoadOnMount","field","optimisticResult","MutationObserver","_MutationObserver_instances","_currentMutation","_mutateOptions","updateResult_fn","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","throwError","params","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","throwOnError","ensureSuspenseTimers","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useBaseQuery","Observer","isNewCacheEntry","React.useState","React.useSyncExternalStore","React.useCallback","onStoreChange","unsubscribe","useQuery","useMutation","mutate","mutateOptions","ReactQueryDevtools2","createColumnHelper","accessor","column","makeStateUpdater","instance","old","isFunction","d","isNumberArray","flattenBy","arr","getChildren","flat","recurse","subArr","memo","getDeps","opts","deps","depArgs","depTime","newDeps","dep","index","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","str","num","getMemoOptions","tableOptions","debugLevel","onChange","_tableOptions$debugAl","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","feature","createColumn","columnDef","depth","parent","_ref","_resolvedColumnDef$id","resolvedColumnDef","accessorKey","id","accessorFn","originalRow","_result","_column$columns","orderColumns","_column$columns2","leafColumns","debug","createHeader","_options$id","header","leafHeaders","recurseHeader","h","Headers","allColumns","left","right","_left$map$filter","_right$map$filter","leftColumns","rightColumns","centerColumns","buildHeaderGroups","_left$map$filter2","orderedLeafColumns","_right$map$filter2","headerGroups","headerGroup","flatHeaders","_header$subHeaders","_header$subHeaders2","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","isPlaceholder","bottomHeaders","recurseHeadersForSpans","headers","colSpan","rowSpan","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_row$getValue","parentRows","currentRow","parentRow","allCells","acc","ColumnFaceting","includesString","filterValue","_filterValue$toString","search","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","rowValue","unsafeMin","unsafeMax","parsedMin","parsedMax","temp","filterFns","ColumnFiltering","firstRow","_table$options$filter","_table$options$filter2","_column$columnDef$ena","_table$options$enable","_table$options$enable2","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","filterFn","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","updateFn","_functionalUpdate","filter","defaultState","_table$initialState$c","_table$initialState","sum","_leafRows","childRows","next","nextValue","extent","mean","leafRows","count","median","values","mid","nums","unique","uniqueCount","_columnId","aggregationFns","ColumnGrouping","props","_toString","_props$getValue","_table$getState$group","_table$getState$group2","canGroup","_table$options$aggreg","_table$options$aggreg2","_table$initialState$g","_row$subRows","grouping","groupedColumnMode","nonGroupingColumns","col","g","ColumnOrdering","position","_getVisibleLeafColumns","_columns$","_columns","columnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","getDefaultColumnPinningState","ColumnPinning","columnIds","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","_d$columnDef$enablePi","leafColumnIds","isLeft","isRight","leftAndRight","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","defaultColumnSizing","getDefaultColumnSizingInfoState","ColumnSizing","_column$columnDef$min","_column$columnDef$max","columnSize","_ref2","rest","_header$column$getSiz","prevSiblingHeader","_contextDocument","canResize","e","isTouchStartEvent","startSize","columnSizingStart","clientX","newColumnSizing","updateOffset","eventType","clientXPos","_old$startOffset","_old$startSize","deltaDirection","deltaOffset","deltaPercentage","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","touchEvents","_e$touches$","passiveIfSupported","passiveEventSupported","_table$initialState$c2","_table$getHeaderGroup","_table$getHeaderGroup2","_table$getLeftHeaderG","_table$getLeftHeaderG2","_table$getCenterHeade","_table$getCenterHeade2","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","ColumnVisibility","childColumns","c","cells","makeVisibleColumnsMethod","getColumns","_value","obj","_target","GlobalFaceting","GlobalFiltering","_table$getCoreRowMode","_table$options$getCol","globalFilterFn","RowExpanding","registered","queued","_table$options$autoRe","expanded","_table$initialState$e","splitId","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","_table$options$getRow","isFullyExpanded","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","RowPagination","safeUpdater","_table$initialState$p","pageIndex","maxPageIndex","_table$initialState$p2","_table$initialState$p3","_table$initialState2","pageSize","topRowIndex","_table$options$pageCo","newPageCount","pageCount","pageOptions","_table$options$pageCo2","_table$options$rowCou","getDefaultRowPinningState","RowPinning","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","enablePinning","top","bottom","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","_ref5","_table$initialState$r","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","allRows","topPinnedRowIds","bottomPinnedRowIds","topAndBottom","RowSelection","rowSelection","preGroupedFlatRows","resolvedValue","mutateRowIsSelected","rowModel","selectRowsFn","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","_table$getState$rowSe","totalSelected","isSelected","_opts$selectChildren","selectedRowIds","isRowSelected","isSubRowSelected","_table$options$enable3","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","rows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","toString","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","bn","combo","sortingFns","RowSorting","firstRows","isString","_table$options$sortin","_table$options$sortin2","desc","multi","nextSortingOrder","hasManualValue","existingSorting","existingIndex","newSorting","sortAction","nextDesc","_table$options$maxMul","_column$columnDef$sor","firstSortDirection","isSorted","_column$columnDef$ena2","_table$getState$sorti","columnSort","_table$getState$sorti2","_table$getState$sorti3","canSort","_table$initialState$s","builtInFeatures","createTable","_options$_features","_options$initialState","_features","defaultOptions","mergeOptions","initialState","_feature$getInitialSt","queuedTimeout","coreInstance","newOptions","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","columnDefs","recurseColumns","groupingColumnDef","flatColumns","getCoreRowModel","accessRows","originalRows","_row$originalSubRows","getExpandedRowModel","paginateExpandedRows","expandRows","expandedRows","handleRow","getSortedRowModel","sorting","sortingState","sortedFlatRows","availableSorting","sort","_table$getColumn","columnInfoById","sortEntry","sortData","sortedData","_sortEntry$desc","columnInfo","sortUndefined","isDesc","sortInt","aValue","bValue","aUndefined","bUndefined","flexRender","Comp","isReactComponent","React.createElement","component","isClassComponent","isExoticComponent","proto","useReactTable","resolvedOptions","tableRef","setState","prev"],"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]}