@espresso-lab/mantine-data-table 2.1.5 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +4 -4
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +15 -15
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","names":["#setup","#cleanup","#focused","#providerCalled","#provider","#setup","#cleanup","#online","#client","#selectError","#currentThenable","#currentQuery","#executeFetch","#updateTimers","#clearStaleTimeout","#clearRefetchInterval","#updateQuery","#updateStaleTimeout","#computeRefetchInterval","#currentRefetchInterval","#updateRefetchInterval","#currentResult","#currentResultOptions","#currentResultState","#trackedProps","#staleTimeoutId","#refetchIntervalId","#currentQueryInitialState","#lastQueryWithDefinedData","#selectFn","#selectResult","#notify","#client","#updateResult","#currentMutation","#notify","#currentResult","#mutateOptions","React","React","React","React","React","ta","kt","oa","Et","na","Re","We","aa","ia","la","ra","sa","Ht","Ot","Ie","re","ca","st","ua","da","pa","ma","fa","K","Ta","dt","ba","ha","ga","Da","ya","Ca","Sa","Qt","Ra","Pa","va","qt","Yt","Ma","Na","ka","Ea","Wa","La","gt","Ia","Oa","_a","Ha","Ae","Ba","Aa","za","Va","lo","Ga","so","Ka","Qa","Ja","$a","ze","Ua","Fa","Xa","Za","po","ja","mo","Ya","qa","Be","er","Ve","tr","le","or","ht","sr","ir","Ct","lr","Fe","rr","ar","z","Ge","Co","nr","cr","Do","dr","mr","ur","q","Dr","$e","Cr","yr","wo","br","gr","Tr","hr","fr","pr","Ro","xr","Sr","wr","Rr","Pr","yt","ve","Lo","Mr","ie","Eo","kr","Lr","vr","Er","Nr","Wr","_r","ee","Or","Ho","Hr","Io","Ir","Ar","Vr","zr","Br","Xr","$r","Me","Ao","Fr","Gr","Bo","Qr","Kr","Ur","Fo","Go","Ue","Jr","jr","qr","Yr","Ke","Xo","Qe","al","rl","Qo","xt","Dt","B","Jo","el","Ko","tl"],"sources":["../node_modules/@tanstack/query-core/build/modern/subscribable.js","../node_modules/@tanstack/query-core/build/modern/focusManager.js","../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../node_modules/@tanstack/query-core/build/modern/utils.js","../node_modules/@tanstack/query-core/build/modern/environmentManager.js","../node_modules/@tanstack/query-core/build/modern/thenable.js","../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../node_modules/@tanstack/query-core/build/modern/retryer.js","../node_modules/@tanstack/query-core/build/modern/query.js","../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../node_modules/@tanstack/query-core/build/modern/mutation.js","../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../node_modules/@tanstack/react-query/build/modern/suspense.js","../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../node_modules/@tanstack/react-query/build/modern/useQuery.js","../node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/Context/DataTableContext.tsx","../src/Hooks/useDataTable.ts","../src/Hooks/useApi.ts","../src/DataTable/CreateModal.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/mantine-datatable/dist/index.mjs","../src/DataTable/UpdateModal.tsx","../src/DataTable/DeleteModal.tsx","../src/Hooks/usePersistentState.ts","../src/utils/sort.ts","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTableInner.tsx","../src/DataTable/DataTable.tsx"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction 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).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, 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 get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => 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.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof 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();\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 return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return 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 && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || 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/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/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 onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\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/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.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","import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { createContext, ReactNode } from \"react\";\n\nexport type GetHeaders = () => Promise<HeadersInit>;\n\nexport interface State {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n}\n\ninterface DataTableContextProps {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n children: ReactNode | ReactNode[];\n}\n\nexport const DataTableContext = createContext<State | undefined>(undefined);\n\nconst defaultGetHeaders: GetHeaders = async () => ({\n \"Content-Type\": \"application/json\",\n});\n\nexport function DataTableProvider({\n children,\n baseUrl,\n queryClient,\n getHeaders = defaultGetHeaders,\n}: DataTableContextProps) {\n return (\n <DataTableContext.Provider value={{ baseUrl, queryClient, getHeaders }}>\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n </DataTableContext.Provider>\n );\n}\n","import { useContext } from \"react\";\nimport { DataTableContext, State } from \"../Context/DataTableContext.tsx\";\n\nexport function useDataTable(): State {\n const context = useContext(DataTableContext);\n\n if (!context) {\n throw new Error(\"useDataTable must be used within a DataTableProvider\");\n }\n\n return context;\n}\n","import { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { useDataTable } from \"./useDataTable.ts\";\nimport type { GetHeaders } from \"../Context/DataTableContext.tsx\";\n\nexport function parseApiError(error: unknown): { message: string; code?: string; details?: unknown } {\n if (typeof error === \"string\") {\n try {\n const parsed = JSON.parse(error);\n return {\n message: parsed.message || error,\n code: parsed.code,\n details: parsed.details,\n };\n } catch {\n return { message: error };\n }\n }\n if (error instanceof Error) {\n return { message: error.message };\n }\n return { message: \"Unbekannter Fehler\" };\n}\n\nasync function fetchWithError(url: string, init: RequestInit): Promise<Response> {\n const resp = await fetch(url, init);\n if (resp.status >= 400) {\n const responseText = await resp.text();\n if (!responseText) {\n throw new Error(`HTTP ${resp.status}: ${resp.statusText}`);\n }\n let errorJson: { message?: string; error?: string } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new Error(responseText);\n }\n throw new Error(errorJson?.message ?? errorJson?.error ?? responseText);\n }\n return resp;\n}\n\nexport interface BaseEntity {\n id: string | number;\n}\n\ntype AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport async function getAll<T extends BaseEntity>(\n path: string,\n getHeaders: GetHeaders,\n): Promise<T[]> {\n const resp = await fetchWithError(path, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function getOne<T extends BaseEntity>(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${id}`, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function deleteOne(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<void> {\n await fetchWithError(`${path}/${id}`, { method: \"DELETE\", headers: await getHeaders() });\n}\n\nexport async function createOne<C, T extends BaseEntity>(\n path: string,\n item: C,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(path, {\n method: \"POST\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as unknown as T;\n return resp.json();\n}\n\nexport async function api<R, U>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n getHeaders: GetHeaders,\n payload?: U,\n): Promise<R> {\n const resp = await fetchWithError(path, {\n method,\n headers: await getHeaders(),\n body: payload ? JSON.stringify(payload) : undefined,\n });\n if (resp.status === 204) return undefined as R;\n return resp.json();\n}\n\nexport async function updateOne<T extends BaseEntity>(\n path: string,\n item: AtLeast<T, \"id\">,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${item.id}`, {\n method: \"PUT\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as T;\n return resp.json();\n}\n\nexport function useGetOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n id?: string | number,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T>({\n queryKey: [...queryKey.map((k) => k.toString()), String(id?.toString())],\n queryFn: () => getOne<T>(`${baseUrl}${apiPath}`, id!, getHeaders),\n enabled: !!id,\n });\n}\n\nexport function useGetAll<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n enabled: boolean = true,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T[]>({\n queryKey: [...queryKey.map((k) => k.toString())],\n queryFn: () => getAll<T>(`${baseUrl}${apiPath}`, getHeaders),\n enabled,\n });\n}\n\nexport function useAddOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, Omit<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useUpdateOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, AtLeast<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useDeleteOne(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<void, Error, string | number>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Stepper,\n Textarea,\n TextInput,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\nimport { Fragment, useState } from \"react\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface CreateModalProps<T> {\n fields: Field<T>[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n steps?: StepConfig[];\n onCreated?: (id: string | number) => void;\n}\n\nexport function CreateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n steps,\n onCreated,\n}: CreateModalProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n const [recordId, setRecordId] = useState<string | number>();\n\n const {\n mutateAsync: create,\n isError: isCreateError,\n error: createError,\n isPending: isCreatePending,\n } = useAddOne<T>(apiPath, queryKey);\n const { mutateAsync: update, isPending: isUpdatePending } = useUpdateOne<T>(\n apiPath,\n queryKey,\n );\n\n const isPending = isCreatePending || isUpdatePending;\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (false as T[keyof T])\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n if (!resolveRequired(field, values)) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), ...(recordId && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isCreateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={createError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {createError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n if (recordId) {\n await update({ ...values, id: recordId } as T);\n } else {\n const result = await create(values as T);\n setRecordId(result.id);\n onCreated?.(result.id);\n }\n\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isCreateError) {\n setActive(active + 1);\n }\n } else {\n if (!isCreateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";import{Box as el,Table as tl}from\"@mantine/core\";import{useMergedRef as Qo}from\"@mantine/hooks\";import Ko from\"clsx\";import{useCallback as Dt,useEffect as ol,useLayoutEffect as nl,useMemo as al,useRef as xt,useState as rl}from\"react\";import{useState as kt}from\"react\";import{createSafeContext as ta}from\"@mantine/core\";var[Mt,ue]=ta(\"useDataTableColumnsContext must be used within DataTableColumnProvider\");import{jsx as oa}from\"react/jsx-runtime\";var it=e=>{let{children:t,columnsOrder:o,setColumnsOrder:n,columnsToggle:a,setColumnsToggle:r,resetColumnsOrder:l,resetColumnsToggle:c,setColumnWidth:m,setMultipleColumnWidths:u,resetColumnsWidth:f}=e,[p,d]=kt(\"\"),[s,i]=kt(\"\");return oa(Mt,{value:{sourceColumn:p,setSourceColumn:d,targetColumn:s,setTargetColumn:i,columnsToggle:a,setColumnsToggle:r,swapColumns:()=>{if(!o||!n||!p||!s)return;let h=o.indexOf(p),y=o.indexOf(s);if(h!==-1&&y!==-1){let v=o.splice(h,1)[0];o.splice(y,0,v),n([...o])}},resetColumnsOrder:l,resetColumnsToggle:c,setColumnWidth:m,setMultipleColumnWidths:u,resetColumnsWidth:f},children:t})};import{jsx as Et}from\"react/jsx-runtime\";function Nt(){return Et(\"tr\",{className:\"mantine-datatable-empty-row\",children:Et(\"td\",{})})}import{Center as aa,Text as ra}from\"@mantine/core\";import{jsx as Re,jsxs as na}from\"react/jsx-runtime\";function Lt(){return na(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Re(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Re(\"path\",{d:\"M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74\"}),Re(\"path\",{d:\"M4 6v6c0 1.657 3.582 3 8 3c.986 0 1.93 -.067 2.802 -.19m3.187 -.82c1.251 -.53 2.011 -1.228 2.011 -1.99v-6\"}),Re(\"path\",{d:\"M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4\"}),Re(\"path\",{d:\"M3 3l18 18\"})]})}import{Fragment as la,jsx as We,jsxs as ia}from\"react/jsx-runtime\";function Wt({icon:e,text:t,active:o,children:n}){return We(aa,{className:\"mantine-datatable-empty-state\",\"data-active\":o||void 0,children:n||ia(la,{children:[e||We(\"div\",{className:\"mantine-datatable-empty-state-icon\",children:We(Lt,{})}),We(ra,{component:\"div\",size:\"sm\",c:\"dimmed\",children:t})]})})}import{TableTfoot as Ia,TableTr as Ha}from\"@mantine/core\";import Oa from\"clsx\";import{TableTh as ka}from\"@mantine/core\";import Ea from\"clsx\";import{useCallback as Ml,useRef as kl,useState as El}from\"react\";import{useLocalStorage as sa}from\"@mantine/hooks\";function It({key:e,columns:t=[],getInitialValueInEffect:o=!0}){function n(p,d){let s=[];return p.forEach(i=>{d.find(g=>g.accessor===i)&&s.push(i)}),d.forEach(i=>{s.includes(i.accessor)||s.push(i.accessor)}),s}let a=t&&t.map(p=>p.accessor)||[],[r,l]=sa({key:e?`${e}-columns-order`:\"\",defaultValue:e?a:void 0,getInitialValueInEffect:o});function c(p){e&&l(p)}let m=()=>{c(a)};if(!e)return{columnsOrder:r,setColumnsOrder:c,resetColumnsOrder:m};let u=n(r,t),f=JSON.stringify(r);return JSON.stringify(u)!==f&&c(u),{columnsOrder:u,setColumnsOrder:c,resetColumnsOrder:m}}import{useLocalStorage as ca}from\"@mantine/hooks\";import{useCallback as re,useEffect as st,useMemo as Ie,useRef as Ht,useState as Ot}from\"react\";function _t({key:e,columns:t=[],getInitialValueInEffect:o=!0,headerRef:n,onFixedLayoutChange:a}){let r=Ht(!1),l=Ht({}),[c,m]=Ot(!0),u=Ie(()=>t.some(b=>b.resizable&&!b.hidden&&b.accessor!==\"__selection__\"),[t]),f=Ie(()=>t.filter(b=>b.resizable&&!b.hidden&&b.accessor!==\"__selection__\"),[t]),p=Ie(()=>f.some(b=>b.width===void 0||b.width===\"\"||b.width===\"initial\"),[f]),d=re(()=>t.filter(b=>b.accessor!==\"__selection__\").map(b=>({[b.accessor]:b.width??\"auto\"})),[t]),[s,i]=ca({key:e?`${e}-columns-width`:\"\",defaultValue:e?d():void 0,getInitialValueInEffect:!1}),[g,h]=Ot(()=>d());st(()=>{m(!1)},[]);let y=re(()=>{if(!n?.current||c)return{};let b=n.current,x=Array.from(b.querySelectorAll(\"th[data-accessor]\")),k={};return x.forEach(E=>{let L=E.getAttribute(\"data-accessor\");if(!L||L===\"__selection__\")return;let C=f.find(w=>w.accessor===L);if(C&&(C.width===void 0||C.width===\"\"||C.width===\"initial\")){let w=E.getBoundingClientRect();k[L]=Math.round(w.width)}}),k},[n,f,c]),v=re(b=>{let x=b.filter(E=>E.accessor!==\"__selection__\"),k=g.map(E=>{let L=Object.keys(E)[0],C=x.find(w=>w.accessor===L);return C?{[L]:C.width}:E});h(k),e&&i(k)},[g,e,i]),M=re(b=>{v(b)},[v]),R=re(()=>{if(!(!n?.current||!a||c))if(p)a(!1),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let b=y();l.current={...l.current,...b};let x=t.filter(k=>k.accessor!==\"__selection__\").map(k=>{let E=k.accessor,L=s?.find(w=>Object.keys(w)[0]===E);if(L&&L[E]!==\"auto\")return{[E]:L[E]};let C=b[E];return C?{[E]:`${C}px`}:{[E]:k.width??\"auto\"}});h(x),setTimeout(()=>{a(!0),r.current=!0},10)})});else{let b=t.filter(x=>x.accessor!==\"__selection__\").map(x=>({[x.accessor]:x.width??\"auto\"}));h(b),a(!0),r.current=!0}},[n,a,c,p,y,t,s]),W=R;st(()=>{if(!u||!a||c){a?.(!1);return}r.current=!1;let b=setTimeout(()=>{R()},50);return()=>clearTimeout(b)},[u,a,c,R]),st(()=>{c||!e||!o||s&&s.length>0&&h(s)},[c,e,o,s]);let D=re(()=>{e&&i(d()),l.current={},r.current=!1,a&&(a(!1),setTimeout(()=>{R()},10))},[e,i,d,a,R]),T=re((b,x)=>{v([{accessor:b,width:x}])},[v]),P=Ie(()=>u?g.filter(b=>{let x=Object.keys(b)[0];return f.some(k=>k.accessor===x)}).every(b=>{let x=Object.values(b)[0];return x===\"auto\"||x===\"initial\"}):!1,[u,g,f]);return{columnsWidth:g,setColumnsWidth:v,setColumnWidth:T,setMultipleColumnWidths:M,resetColumnsWidth:D,hasResizableColumns:u,allResizableWidthsInitial:P,measureAndSetColumnWidths:W}}import{useMemo as da}from\"react\";import{useLocalStorage as ua}from\"@mantine/hooks\";function At({key:e,columns:t=[],getInitialValueInEffect:o=!0}){function n(p,d){let s=[];return p.forEach(i=>{d.find(g=>g.accessor===i.accessor)&&s.push(i)}),d.forEach(i=>{s.find(g=>g.accessor===i.accessor)||s.push({accessor:i.accessor,defaultToggle:i.defaultToggle||!0,toggleable:i.toggleable,toggled:i.defaultToggle===void 0?!0:i.defaultToggle})}),s}let a=t&&t.map(p=>({accessor:p.accessor,defaultToggle:p.defaultToggle||!0,toggleable:p.toggleable,toggled:p.defaultToggle===void 0?!0:p.defaultToggle})),[r,l]=ua({key:e?`${e}-columns-toggle`:\"\",defaultValue:e?a:void 0,getInitialValueInEffect:o});function c(p){e&&l(p)}let m=()=>{c(a)};if(!e)return{columnsToggle:r,setColumnsToggle:c,resetColumnsToggle:m};let u=n(r,t),f=JSON.stringify(r);return JSON.stringify(u)!==f&&c(u),{columnsToggle:u,setColumnsToggle:c,resetColumnsToggle:m}}var zt=({key:e,columns:t=[],getInitialValueInEffect:o=!0,headerRef:n,scrollViewportRef:a,onFixedLayoutChange:r})=>{let{columnsOrder:l,setColumnsOrder:c,resetColumnsOrder:m}=It({key:e,columns:t,getInitialValueInEffect:o}),{columnsToggle:u,setColumnsToggle:f,resetColumnsToggle:p}=At({key:e,columns:t,getInitialValueInEffect:o}),{columnsWidth:d,setColumnsWidth:s,setColumnWidth:i,setMultipleColumnWidths:g,resetColumnsWidth:h,hasResizableColumns:y,allResizableWidthsInitial:v,measureAndSetColumnWidths:M}=_t({key:e,columns:t,getInitialValueInEffect:o,headerRef:n,scrollViewportRef:a,onFixedLayoutChange:r});return{effectiveColumns:da(()=>l?l.map(T=>t.find(P=>P.accessor===T)).map(T=>({...T,hidden:T?.hidden||!u.find(P=>P.accessor===T?.accessor)?.toggled})).map(T=>T?.accessor===\"__selection__\"?T:{...T,width:d.find(P=>P[T?.accessor])?.[T?.accessor]}):t,[t,l,u,d]),setColumnsOrder:c,columnsOrder:l,resetColumnsOrder:m,columnsToggle:u,setColumnsToggle:f,resetColumnsToggle:p,columnsWidth:d,setColumnsWidth:s,setColumnWidth:i,setMultipleColumnWidths:g,resetColumnsWidth:h,hasResizableColumns:y,allResizableWidthsInitial:v,measureAndSetColumnWidths:M}};import{rem as ba}from\"@mantine/core\";import{useCallback as Ta,useEffect as dt,useRef as K}from\"react\";import{useEffect as ma,useLayoutEffect as pa}from\"react\";var ct=typeof window<\"u\"?pa:ma;import{useRef as fa}from\"react\";function ut(e){let t=fa(e);return t.current=e,t}var Bt=\"--mantine-datatable-header-height\",Vt=\"--mantine-datatable-footer-height\",Gt=\"--mantine-datatable-selection-column-width\",Ft=\"--mantine-datatable-last-row-border-bottom\";function G(e,t,o){e?.style.setProperty(t,o)}function pt(e){let t=e.borderBoxSize?.[0]||e.contentBoxSize?.[0];return t?{width:t.inlineSize,height:t.blockSize}:{width:e.contentRect.width,height:e.contentRect.height}}function mt(e,t,o){if(e){let n=new ResizeObserver(a=>{let r=a[0];r&&t(pt(r))});return n.observe(e),()=>{n.disconnect(),o()}}}function $t({scrollCallbacks:e,withRowBorders:t}){let o={root:K(null),table:K(null),scrollViewport:K(null),header:K(null),footer:K(null),selectionColumnHeader:K(null)},{root:n,table:a,scrollViewport:r,header:l,footer:c,selectionColumnHeader:m}=o,u=ut({withRowBorders:t}),f=ut(e),p=K(()=>{}),d=K(()=>{}),s=Ta(i=>{f.current.onScroll?.(i),p.current()},[]);return dt(()=>mt(l.current,i=>{G(n.current,Bt,`${i.height}px`)},()=>G(n.current,Bt,\"0\")),[l.current]),dt(()=>mt(c.current,i=>{G(n.current,Vt,`${i.height}px`)},()=>G(n.current,Vt,\"0\")),[c.current]),dt(()=>mt(m.current,i=>{G(n.current,Gt,`${i.width}px`)},()=>G(n.current,Gt,\"0\")),[m.current]),ct(()=>{if(typeof window===void 0)return;let i={top:!0,bottom:!0,left:!0,right:!0},g={width:0,height:0},h={width:0,height:0};function y(D,T){let P=i[D];return i[D]=T,G(n.current,`--mantine-datatable-${D}-shadow-opacity`,T?\"0\":\"1\"),P}function v(){let D=g.height-h.height,T=D<0;G(n.current,\"--mantine-datatable-footer-position\",T?\"relative\":\"sticky\"),G(n.current,\"--mantine-datatable-footer-bottom\",T?`${D}px`:\"0\")}function M(){u.current.withRowBorders&&g.height<h.height?G(n.current,Ft,`${ba(\"1px\")} solid var(--mantine-datatable-border-color)`):G(n.current,Ft,\"unset\")}d.current=M;function R(){let D=f.current,T=r.current,P=T?.scrollTop??0,b=T?.scrollLeft??0,x=P===0,k=g.height-P-h.height<1,E=y(\"top\",x),L=y(\"bottom\",k);x&&x!==E&&D.onScrollToTop?.(),k&&k!==L&&D.onScrollToBottom?.();let C=T?getComputedStyle(T).direction===\"rtl\":!1,w=(T?.scrollWidth??0)-h.width,S,I;if(C){let F=Math.abs(b);I=F<1,S=w-F<1}else S=b<1,I=g.width-b-h.width<1;let A=y(\"left\",S),H=y(\"right\",I);S&&S!==A&&D.onScrollToLeft?.(),I&&I!==H&&D.onScrollToRight?.()}p.current=R;let W=new ResizeObserver(D=>{for(let T of D)switch(T.target.tagName){case\"TABLE\":{g=pt(T);break}case\"DIV\":{h=pt(T);break}}R(),v(),M()});return W.observe(a.current),W.observe(r.current),()=>{W.disconnect()}},[]),ct(()=>{d.current()},[t]),{refs:o,onScroll:s}}import{useEffect as ga,useState as ha}from\"react\";function Xt(e){let[t,o]=ha(null),n=e?.join(\":\")||\"\";return ga(()=>{o(null)},[n]),{lastSelectionChangeIndex:t,setLastSelectionChangeIndex:o}}import{useEffect as Ca,useRef as ya,useState as Da}from\"react\";function xa(e,t){let o=()=>{t(e.map(a=>a.matches))},n=e.map(a=>{try{return a.addEventListener(\"change\",o),()=>a.removeEventListener(\"change\",o)}catch{return a.addListener(o),()=>a.removeListener(o)}});return()=>{n.forEach(a=>a())}}function wa(e,t){return t||(typeof window<\"u\"&&\"matchMedia\"in window?e.map(o=>window.matchMedia(o).matches):e.map(()=>!1))}function Ut(e,t,{getInitialValueInEffect:o}={getInitialValueInEffect:!0}){let[n,a]=Da(o?t:wa(e,t)),r=ya(null);return Ca(()=>{if(\"matchMedia\"in window)return r.current=e.map(l=>window.matchMedia(l)),a(r.current.map(l=>l.matches)),xa(r.current,l=>{a(l)})},[e]),n}import{useMantineTheme as Sa}from\"@mantine/core\";import{useMemo as Qt}from\"react\";function Kt(e){let t=Sa(),o=Qt(()=>e.map(a=>(typeof a==\"function\"?a(t):a)??\"\"),[e,t]),n=Qt(()=>e.map(()=>!0),[e]);return Ut(o,n)}import{useMantineTheme as Ra}from\"@mantine/core\";import{useMediaQuery as Pa}from\"@mantine/hooks\";function J(e){let t=Ra(),o=typeof e==\"function\"?e(t):e;return Pa(o||\"\",!0)}import{useState as va}from\"react\";function de(e){let t=e.replace(/([a-z\\d])([A-Z]+)/g,\"$1 $2\").replace(/\\W|_/g,\" \").trim().toLowerCase();return`${t.charAt(0).toUpperCase()}${t.slice(1)}`}function Jt(e,t,o){return e.filter(n=>!t.map(o).includes(o(n)))}function He(e,t){return e.filter((o,n,a)=>n===a.findIndex(r=>t(o)===t(r)))}function ft(e,t){return t?t.match(/([^[.\\]])+/g).reduce((n,a)=>n&&n[a],e):void 0}function _(e,t){return typeof t==\"string\"?ft(e,t):t(e)}function ui(e,t){let o=structuredClone(t),n=o[e.source.index];return e.destination&&(o.splice(e.source.index,1),o.splice(e.destination.index,0,n)),o}function di(e,t){let o=structuredClone(t),n=e.destination;if(!n)return o;let a=o[e.source.index],r=o[n.index];return o.splice(n.index,1,a),o.splice(e.source.index,1,r),o}function bt(e){return!e||e.length===0?0:Math.max(...e.map(t=>t.groups&&t.groups.length>0?1+bt(t.groups):1))}function Pe(e){let t=[];for(let o of e)o.columns&&o.columns.length>0?t.push(...o.columns.filter(n=>n!=null)):o.groups&&o.groups.length>0&&t.push(...Pe(o.groups));return t.filter(o=>o!=null)}function Oe(e,t){return e.columns&&e.columns.length>0?e.columns.filter((o,n)=>o.hidden?!1:t?t[n]!==!1:!0).length:e.groups&&e.groups.length>0?e.groups.reduce((o,n)=>o+Oe(n,t),0):0}function Tt(e,t,o=0){if(o===t)return[...e];let n=[];for(let a of e)a.groups&&a.groups.length>0&&n.push(...Tt(a.groups,t,o+1));return n}function jt(e,t,o){return o?!e||t:!1}function Zt({rowExpansion:e,records:t,idAccessor:o}){let n=[];if(e&&t){let{trigger:c,allowMultiple:m,initiallyExpanded:u}=e;t&&c===\"always\"?n=t.map(f=>_(f,o)):u&&(n=t.filter((f,p)=>u({record:f,index:p})).map(f=>_(f,o)),m||(n=[n[0]]))}let a,r,l=va(n);if(e){let{expandable:c,trigger:m,allowMultiple:u,collapseProps:f,content:p}=e;e.expanded?{recordIds:a,onRecordIdsChange:r}=e.expanded:[a,r]=l;let d=s=>r?.(a.filter(i=>i!==_(s,o)));return{expandOnClick:m!==\"always\"&&m!==\"never\",isRowExpanded:s=>m===\"always\"?!0:a.includes(_(s,o)),isExpandable:({record:s,index:i})=>c?c({record:s,index:i}):!0,expandRow:s=>{let i=_(s,o);r?.(u?[...a,i]:[i])},collapseRow:d,collapseProps:f,content:({record:s,index:i})=>()=>p({record:s,index:i,collapse:()=>d(s)})}}}import{useTimeout as Yt}from\"@mantine/hooks\";import{useEffect as Ma,useState as qt}from\"react\";function eo(e,t){let[o,n]=qt(e),[a,r]=qt(e),l=Yt(()=>n(!0),0),c=Yt(()=>r(!1),t||200);return Ma(()=>{e?(c.clear(),r(!0),l.start()):(l.clear(),n(!1),c.start())},[l,c,e]),{expanded:o,visible:a}}var me=\"mantine-datatable-nowrap\",pe=\"mantine-datatable-ellipsis\",X=\"mantine-datatable-pointer-cursor\",_e=\"mantine-datatable-context-menu-cursor\",to=\"mantine-datatable-text-selection-disabled\",j=\"mantine-datatable-text-align-left\",Z=\"mantine-datatable-text-align-center\",Y=\"mantine-datatable-text-align-right\";import{jsx as Na}from\"react/jsx-runtime\";function oo({className:e,style:t,visibleMediaQuery:o,title:n,noWrap:a,ellipsis:r,textAlign:l,width:c}){return J(o)?Na(ka,{className:Ea({[me]:a||r,[pe]:r,[j]:l===\"left\",[Z]:l===\"center\",[Y]:l===\"right\"},e),style:[{width:c,minWidth:c,maxWidth:c},t],children:n}):null}import{TableTh as La}from\"@mantine/core\";import{jsx as Wa}from\"react/jsx-runtime\";function no({shadowVisible:e}){return Wa(La,{className:\"mantine-datatable-footer-selector-placeholder-cell\",\"data-shadow-visible\":e||void 0})}import{jsx as gt,jsxs as _a}from\"react/jsx-runtime\";function ao({className:e,style:t,columns:o,defaultColumnProps:n,selectionVisible:a,selectorCellShadowVisible:r,ref:l}){return gt(Ia,{ref:l,className:Oa(\"mantine-datatable-footer\",e),style:t,children:_a(Ha,{children:[a&>(no,{shadowVisible:r}),o.map(({hidden:c,...m})=>{if(c)return null;let{accessor:u,visibleMediaQuery:f,textAlign:p,width:d,footer:s,footerClassName:i,footerStyle:g,noWrap:h,ellipsis:y}={...n,...m};return gt(oo,{className:i,style:g,visibleMediaQuery:f,textAlign:p,width:d,title:s,noWrap:h,ellipsis:y},u)})]})})}import{Checkbox as pr,Group as fr,Popover as br,PopoverDropdown as Tr,PopoverTarget as gr,Stack as hr,TableThead as Cr,TableTr as wo}from\"@mantine/core\";import yr from\"clsx\";import{useState as Dr}from\"react\";import{TableTh as Aa}from\"@mantine/core\";import za from\"clsx\";import{useMemo as Ae}from\"react\";import{jsx as Ba}from\"react/jsx-runtime\";function ro({group:{id:e,columns:t,groups:o,title:n,textAlign:a,className:r,style:l},maxDepth:c,currentDepth:m,previousGroups:u,isLastGroup:f,withColumnBorders:p=!1,totalTableColumns:d}){let s=Ae(()=>t&&t.length>0?t:o&&o.length>0?Pe([{id:e,columns:t,groups:o}]):[],[t,o,e]),i=Ae(()=>s.map(({visibleMediaQuery:D})=>D),[s]),g=Kt(i),h=Ae(()=>Oe({id:e,columns:t,groups:o},g),[e,t,o,g]),y=Ae(()=>u.reduce((D,T)=>D+Oe(T,g),0),[u,g]),M=o&&o.length>0?1:c-m,R=y+h<d,W=jt(f,R,p);return h>0?Ba(Aa,{colSpan:h,rowSpan:M>1?M:void 0,className:za(\"mantine-datatable-column-group-header-cell\",{[j]:a===\"left\",[Z]:a===\"center\",[Y]:a===\"right\",\"mantine-datatable-column-group-header-cell--needs-border\":W},r),style:l,children:n??de(e)}):null}import{ActionIcon as Co,Box as nr,Center as Ge,Flex as ar,Group as rr,TableTh as lr}from\"@mantine/core\";import Fe from\"clsx\";import{useRef as ir,useState as sr}from\"react\";import{ActionIcon as Fa,Popover as $a,PopoverDropdown as Xa,PopoverTarget as Ua}from\"@mantine/core\";import{useClickOutside as Qa,useDisclosure as Ka}from\"@mantine/hooks\";import{jsx as lo,jsxs as Va}from\"react/jsx-runtime\";function io(){return Va(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[lo(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),lo(\"path\",{d:\"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z\"})]})}import{jsx as so,jsxs as Ga}from\"react/jsx-runtime\";function co(){return Ga(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[so(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),so(\"path\",{d:\"M20 3h-16a1 1 0 0 0 -1 1v2.227l.008 .223a3 3 0 0 0 .772 1.795l4.22 4.641v8.114a1 1 0 0 0 1.316 .949l6 -2l.108 -.043a1 1 0 0 0 .576 -.906v-6.586l4.121 -4.12a3 3 0 0 0 .879 -2.123v-2.171a1 1 0 0 0 -1 -1z\",strokeWidth:\"0\",fill:\"currentColor\"})]})}import{jsx as ze,jsxs as Ja}from\"react/jsx-runtime\";function uo({children:e,isActive:t,filterPopoverProps:o,filterPopoverDisableClickOutside:n}){let[a,{close:r,toggle:l}]=Ka(!1),c=t?co:io,m=Qa(r);return n&&(m=void 0),Ja($a,{withArrow:!0,shadow:\"md\",opened:a,onClose:r,trapFocus:!0,...o,children:[ze(Ua,{children:ze(Fa,{className:\"mantine-datatable-header-cell-filter-action-icon\",\"data-active\":t||void 0,size:\"sm\",variant:\"default\",onClick:u=>{u.preventDefault(),l()},onKeyDown:u=>u.stopPropagation(),children:ze(c,{})})}),ze(Xa,{ref:m,onClick:u=>u.stopPropagation(),onKeyDown:u=>u.stopPropagation(),children:typeof e==\"function\"?e({close:r}):e})]})}import{useDirection as ja}from\"@mantine/core\";import{useCallback as mo,useRef as po,useState as Za}from\"react\";import{jsx as Ya}from\"react/jsx-runtime\";var fo=e=>{let{accessor:t,columnRef:o}=e,[n,a]=Za(!1),r=po(0),l=po({current:0,next:0}),{dir:c}=ja(),m=c===\"rtl\",{setMultipleColumnWidths:u}=ue(),f=mo(d=>{if(d.preventDefault(),d.stopPropagation(),!o.current)return;let s=o.current,i=s.nextElementSibling;for(;i;){let W=i.getAttribute(\"data-accessor\");if(W&&W!==\"__selection__\")break;i=i.nextElementSibling}if(!i)return;let g=i.getAttribute(\"data-accessor\");if(!g)return;let h=g===\"__selection__\";a(!0),r.current=d.clientX;let y=s.offsetWidth,v=i.offsetWidth;l.current={current:y,next:v};let M=W=>{if(!o.current)return;let D=o.current,T=D.nextElementSibling;if(!T)return;let P=W.clientX-r.current;m&&(P=-P);let b=50,x=l.current.current-b,k=l.current.next-b,E=Math.max(-x,Math.min(P,k)),L=l.current.current+E,C=l.current.next-E;D.style.width=`${L}px`,T.style.width=`${C}px`,D.style.minWidth=`${L}px`,D.style.maxWidth=`${L}px`,T.style.minWidth=`${C}px`,T.style.maxWidth=`${C}px`},R=()=>{if(!o.current)return;let W=o.current,D=W.nextElementSibling;a(!1),document.body.style.cursor=\"initial\",document.body.style.userSelect=\"initial\";let T=parseInt(W.style.width)||W.offsetWidth,P=D?parseInt(D.style.width)||D.offsetWidth:0,b=[{accessor:t,width:`${T}px`}];if(D&&!h){let x=D.getAttribute(\"data-accessor\");x&&b.push({accessor:x,width:`${P}px`})}setTimeout(()=>{u(b)},0),document.removeEventListener(\"mousemove\",M),document.removeEventListener(\"mouseup\",R)};document.body.style.cursor=\"col-resize\",document.body.style.userSelect=\"none\",document.addEventListener(\"mousemove\",M),document.addEventListener(\"mouseup\",R)},[t,o,m,u]),p=mo(()=>{if(!o.current)return;let d=o.current,s=d.nextElementSibling;d.style.width=\"\",d.style.minWidth=\"\",d.style.maxWidth=\"\";let i=[{accessor:t,width:\"auto\"}];if(s){s.style.width=\"\",s.style.minWidth=\"\",s.style.maxWidth=\"\";let g=s.getAttribute(\"data-accessor\");g&&g!==\"__selection__\"&&i.push({accessor:g,width:\"auto\"})}setTimeout(()=>{u(i)},0)},[t,o,u]);return Ya(\"div\",{className:\"mantine-datatable-header-resizable-handle\",style:{cursor:n?\"col-resize\":void 0},onMouseDown:f,onDoubleClick:p,onClick:d=>d.stopPropagation(),title:\"Drag to resize column, double-click to reset\"})};import{jsx as Be,jsxs as qa}from\"react/jsx-runtime\";function bo(){return qa(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Be(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Be(\"path\",{d:\"M12 5l0 14\"}),Be(\"path\",{d:\"M16 9l-4 -4\"}),Be(\"path\",{d:\"M8 9l4 -4\"})]})}import{jsx as Ve,jsxs as er}from\"react/jsx-runtime\";function To(){return er(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ve(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ve(\"path\",{d:\"M8 7l4 -4l4 4\"}),Ve(\"path\",{d:\"M8 17l4 4l4 -4\"}),Ve(\"path\",{d:\"M12 3l0 18\"})]})}import{jsx as le,jsxs as tr}from\"react/jsx-runtime\";function go(){return tr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[le(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),le(\"path\",{d:\"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"})]})}import{jsx as ht,jsxs as or}from\"react/jsx-runtime\";function ho(){return or(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[ht(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),ht(\"path\",{d:\"M18 6l-12 12\"}),ht(\"path\",{d:\"M6 6l12 12\"})]})}import{Fragment as cr,jsx as z,jsxs as Ct}from\"react/jsx-runtime\";function yo({className:e,style:t,accessor:o,visibleMediaQuery:n,title:a,sortable:r,draggable:l,toggleable:c,resizable:m,sortIcons:u,textAlign:f,width:p,sortStatus:d,onSortStatusChange:s,filter:i,filterPopoverProps:g,filterPopoverDisableClickOutside:h,filtering:y,sortKey:v}){let{setSourceColumn:M,setTargetColumn:R,swapColumns:W,setColumnsToggle:D}=ue(),[T,P]=sr(!1),b=ir(null);if(!J(n))return null;let x=a??de(o),k=typeof x==\"string\"?x:void 0,E=r&&s?H=>{H?.defaultPrevented||s({sortKey:v,columnAccessor:o,direction:d?.columnAccessor===o?d.direction===\"asc\"?\"desc\":\"asc\":d?.direction??\"asc\"})}:void 0,L=H=>{H.stopPropagation(),M(o),P(!1)},C=H=>{H.preventDefault(),R(o),P(!0)},w=()=>{R(o),P(!1),W()},S=()=>{P(!0)},I=()=>{P(!1)},A=H=>{H.stopPropagation(),D(F=>F.map(U=>U.accessor===o?{...U,toggled:!1}:U))};return Ct(lr,{\"data-accessor\":o,className:Fe({\"mantine-datatable-header-cell-sortable\":r,\"mantine-datatable-header-cell-toggleable\":c,\"mantine-datatable-header-cell-resizable\":m},e),style:[{width:p,...m?{}:{minWidth:p,maxWidth:p}},t],role:r?\"button\":void 0,tabIndex:r?0:void 0,onClick:E,onKeyDown:H=>H.key===\"Enter\"&&E?.(),ref:b,children:[Ct(rr,{className:\"mantine-datatable-header-cell-sortable-group\",justify:\"space-between\",wrap:\"nowrap\",children:[Ct(ar,{align:\"center\",w:\"100%\",className:Fe({\"mantine-datatable-header-cell-draggable\":l,\"mantine-datatable-header-cell-drag-over\":T}),draggable:l,onDragStart:l?L:void 0,onDragEnter:l?S:void 0,onDragOver:l?C:void 0,onDrop:l?w:void 0,onDragLeave:l?I:void 0,children:[l?z(Ge,{role:\"img\",\"aria-label\":\"Drag column\",children:z(Co,{className:\"mantine-datatable-header-cell-draggable-action-icon\",variant:\"subtle\",size:\"xs\",onClick:H=>{H.stopPropagation()},children:z(go,{})})}):null,z(nr,{className:Fe(\"mantine-datatable-header-cell-sortable-text\",{[j]:f===\"left\",[Z]:f===\"center\",[Y]:f===\"right\"},me,pe),title:k,children:x})]}),c?z(Ge,{className:\"mantine-datatable-header-cell-toggleable-icon\",role:\"img\",\"aria-label\":\"Toggle column\",children:z(Co,{size:\"xs\",variant:\"light\",onClick:A,children:z(ho,{})})}):null,r||d?.columnAccessor===o?z(cr,{children:d?.columnAccessor===o?z(Ge,{className:Fe(\"mantine-datatable-header-cell-sortable-icon\",{\"mantine-datatable-header-cell-sortable-icon-reversed\":d.direction===\"desc\"}),role:\"img\",\"aria-label\":`Sorted ${d.direction===\"desc\"?\"descending\":\"ascending\"}`,children:u?.sorted||z(bo,{})}):z(Ge,{className:\"mantine-datatable-header-cell-sortable-unsorted-icon\",role:\"img\",\"aria-label\":\"Not sorted\",children:u?.unsorted||z(To,{})})}):null,i?z(uo,{filterPopoverProps:g,isActive:!!y,filterPopoverDisableClickOutside:h,children:i}):null]}),m&&o!==\"__selection__\"?z(fo,{accessor:o,columnRef:b}):null]})}import{Checkbox as ur,TableTh as dr}from\"@mantine/core\";import mr from\"clsx\";import{jsx as Do}from\"react/jsx-runtime\";function xo({className:e,style:t,trigger:o,shadowVisible:n,checked:a,indeterminate:r,checkboxProps:l,onChange:c,rowSpan:m,ref:u}){let f=!l.disabled;return Do(dr,{ref:u,className:mr(\"mantine-datatable-header-selector-cell\",{[X]:o===\"cell\"&&f},e),style:t,rowSpan:m,\"data-shadow-visible\":n||void 0,\"data-accessor\":\"__selection__\",onClick:o===\"cell\"&&f?c:void 0,children:Do(ur,{classNames:f?{input:X}:void 0,checked:a,indeterminate:r,onChange:c,...l,disabled:!(c||l.onChange)||l.disabled})})}import{jsx as q,jsxs as $e}from\"react/jsx-runtime\";function So({selectionColumnHeaderRef:e,className:t,style:o,sortStatus:n,sortIcons:a,onSortStatusChange:r,columns:l,defaultColumnProps:c,groups:m,selectionTrigger:u,selectionVisible:f,selectionChecked:p,selectionIndeterminate:d,onSelectionChange:s,selectionCheckboxProps:i,selectorCellShadowVisible:g,selectionColumnClassName:h,selectionColumnStyle:y,withColumnBorders:v=!1,ref:M}){let R=m?bt(m):0,W=R>0?R+1:1,D=f?q(xo,{ref:e,className:h,style:y,trigger:u,shadowVisible:g,checked:p,indeterminate:d,checkboxProps:i,onChange:s,rowSpan:m?W:void 0}):null,{columnsToggle:T,setColumnsToggle:P}=ue(),[b,x]=Dr(!1),k=l.some(C=>C.toggleable),E=k?Object.fromEntries(l.map(({accessor:C,title:w})=>[C,w??de(String(C))])):void 0,L=$e(Cr,{className:yr(\"mantine-datatable-header\",t),style:o,ref:M,onContextMenu:k?C=>{C.preventDefault(),x(w=>!w)}:void 0,children:[m&&Array.from({length:R},(C,w)=>{let S=Tt(m,w);return $e(wo,{children:[w===0&&D,S.map((I,A)=>q(ro,{group:I,maxDepth:R,currentDepth:w,previousGroups:S.slice(0,A),isLastGroup:A===S.length-1,withColumnBorders:v,totalTableColumns:l.length},I.id))]},`group-depth-${w}`)}),$e(wo,{children:[!m&&D,l.map(({hidden:C,...w},S)=>{if(C)return null;let{accessor:I,visibleMediaQuery:A,textAlign:H,width:F,title:U,sortable:fe,draggable:be,toggleable:Te,resizable:ge,titleClassName:te,titleStyle:he,filter:Ce,filterPopoverProps:Q,filterPopoverDisableClickOutside:Je,filtering:je,sortKey:Ze}={...c,...w};return q(yo,{accessor:I,className:te,style:he,visibleMediaQuery:A,textAlign:H,width:F,title:U,sortable:fe,draggable:be,toggleable:Te,resizable:ge&&S<l.length-1,sortStatus:n,sortIcons:a,sortKey:Ze,onSortStatusChange:r,filter:Ce,filterPopoverProps:Q,filterPopoverDisableClickOutside:Je,filtering:je},I)})]})]});return k?$e(br,{position:\"bottom\",withArrow:!0,shadow:\"md\",opened:b,onChange:x,children:[q(gr,{children:L}),q(Tr,{children:q(hr,{children:T.filter(C=>C.toggleable).map(C=>q(fr,{children:q(pr,{classNames:{label:\"mantine-datatable-header-column-toggle-checkbox-label\"},size:\"xs\",label:E[C.accessor],checked:C.toggled,onChange:w=>{P(T.map(S=>S.accessor===C.accessor?{...S,toggled:w.currentTarget.checked}:S))}})},C.accessor))})})]}):L}import{Center as xr,Loader as wr}from\"@mantine/core\";import Sr from\"clsx\";import{jsx as Ro}from\"react/jsx-runtime\";function Po({fetching:e,customContent:t,backgroundBlur:o,size:n,type:a,color:r}){return Ro(xr,{className:Sr(\"mantine-datatable-loader\",{\"mantine-datatable-loader-fetching\":e}),style:[{backdropFilter:o?`blur(${o}px)`:void 0}],children:e&&(t||Ro(wr,{size:n,type:a,color:r}))})}import{Box as Ir,Pagination as Hr,Text as Or,rem as _r}from\"@mantine/core\";import Io from\"clsx\";import{Button as vr,Group as Mr,Menu as kr,MenuDropdown as Er,MenuItem as Nr,MenuTarget as Lr,Text as Eo,rem as ve}from\"@mantine/core\";import Wr from\"clsx\";import{parseThemeColor as Rr}from\"@mantine/core\";function O(e,t,o){return e?Rr({color:typeof e==\"object\"?e[o]:e,theme:t}).value:void 0}function vo({theme:e,c:t,backgroundColor:o,borderColor:n,rowBorderColor:a,stripedColor:r,highlightOnHoverColor:l}){return{\"--mantine-datatable-color-light\":O(t,e,\"light\"),\"--mantine-datatable-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-background-color-dark\":O(o,e,\"dark\"),\"--mantine-datatable-border-color-light\":O(n,e,\"light\"),\"--mantine-datatable-border-color-dark\":O(n,e,\"dark\"),\"--mantine-datatable-row-border-color-light\":O(a,e,\"light\"),\"--mantine-datatable-row-border-color-dark\":O(a,e,\"dark\"),\"--mantine-datatable-striped-color-light\":O(r,e,\"light\"),\"--mantine-datatable-striped-color-dark\":O(r,e,\"dark\"),\"--mantine-datatable-highlight-on-hover-color-light\":O(l,e,\"light\"),\"--mantine-datatable-highlight-on-hover-color-dark\":O(l,e,\"dark\")}}function Xe({theme:e,paginationActiveTextColor:t,paginationActiveBackgroundColor:o}){return{\"--mantine-datatable-pagination-active-text-color-light\":O(t,e,\"light\"),\"--mantine-datatable-pagination-active-text-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-pagination-active-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-pagination-active-background-color-dark\":O(o,e,\"dark\")}}function Mo({theme:e,color:t,backgroundColor:o}){return{\"--mantine-datatable-row-color-light\":O(t,e,\"light\"),\"--mantine-datatable-row-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-row-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-row-background-color-dark\":O(o,e,\"dark\")}}import{jsx as yt,jsxs as Pr}from\"react/jsx-runtime\";function ko(){return Pr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[yt(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),yt(\"path\",{d:\"M8 9l4 -4l4 4\"}),yt(\"path\",{d:\"M16 15l-4 4l-4 -4\"})]})}import{jsx as ie,jsxs as Lo}from\"react/jsx-runtime\";var No={xs:ve(22),sm:ve(26),md:ve(32),lg:ve(38),xl:ve(44)};function Wo({size:e,label:t,values:o,value:n,activeTextColor:a,activeBackgroundColor:r,onChange:l}){return Lo(Mr,{gap:\"xs\",children:[ie(Eo,{component:\"div\",size:e,children:t}),Lo(kr,{withinPortal:!0,withArrow:!0,offset:2,classNames:{arrow:\"mantine-datatable-page-size-selector-menu-arrow\"},children:[ie(Lr,{children:ie(vr,{size:e,variant:\"default\",classNames:{section:\"mantine-datatable-page-size-selector-button-icon\"},rightSection:ie(ko,{}),style:[{fontWeight:\"normal\"},c=>({height:No[e],paddingLeft:c.spacing[e],paddingRight:c.spacing[e]})],children:n})}),ie(Er,{children:o.map(c=>{let m=c===n;return ie(Nr,{className:Wr({\"mantine-datatable-page-size-selector-active\":m}),style:[{height:No[e]},m&&(a||r)?u=>Xe({theme:u,paginationActiveTextColor:a,paginationActiveBackgroundColor:r}):void 0],disabled:m,onClick:()=>l(c),children:ie(Eo,{component:\"div\",size:e,children:c})},c)})})]})]})}import{Fragment as Ho,jsx as ee,jsxs as Ar}from\"react/jsx-runtime\";function Oo({className:e,style:t,fetching:o,page:n,onPageChange:a,paginationWithEdges:r,paginationWithControls:l,paginationActiveTextColor:c,paginationActiveBackgroundColor:m,paginationSize:u,loadingText:f,noRecordsText:p,paginationText:d,totalRecords:s,recordsPerPage:i,onRecordsPerPageChange:g,recordsPerPageLabel:h,recordsPerPageOptions:y,recordsLength:v,horizontalSpacing:M,paginationWrapBreakpoint:R,getPaginationControlProps:W,getPaginationItemProps:D,renderPagination:T}){let P;if(s){let S=(n-1)*i+1,I=S+(v||0)-1;P=d({from:S,to:I,totalRecords:s})}else P=o?f:p;let b=s&&i?Math.max(1,Math.ceil(s/i)):1,x=s?(n-1)*(i??0)+1:void 0,k=s?(x??1)+(v??0)-1:void 0,L=!J(({breakpoints:S})=>`(min-width: ${typeof R==\"number\"?`${_r(R)}rem`:S[R]||R})`),C={Text:S=>ee(Or,{component:\"div\",className:\"mantine-datatable-pagination-text\",size:u,...S,children:P}),PageSizeSelector:S=>y?ee(Wo,{activeTextColor:c,activeBackgroundColor:m,size:u,label:h,values:y,value:i,onChange:g,...S}):ee(Ho,{}),Pagination:S=>ee(Hr,{classNames:{root:Io(\"mantine-datatable-pagination-pages\",{\"mantine-datatable-pagination-pages-fetching\":o||!v}),control:\"mantine-datatable-pagination-pages-control\"},style:c||m?I=>Xe({theme:I,paginationActiveTextColor:c,paginationActiveBackgroundColor:m}):void 0,withEdges:r,withControls:l,value:n,onChange:a,size:u,total:b,getControlProps:W,getItemProps:D,...S})},w={state:{paginationSize:u,page:n,totalPages:b,totalRecords:s,recordsPerPage:i,recordsLength:v,fetching:o,from:x,to:k,isWrapped:L},actions:{setPage:S=>a?.(S),setRecordsPerPage:g?S=>g(S):void 0},Controls:C};return ee(Ir,{px:M??\"xs\",py:\"xs\",className:Io(\"mantine-datatable-pagination\",e),style:[{flexDirection:L?\"column\":\"row\"},t],children:typeof T==\"function\"?T(w):Ar(Ho,{children:[ee(C.Text,{}),ee(C.PageSizeSelector,{}),ee(C.Pagination,{})]})})}import{TableTr as Jr}from\"@mantine/core\";import jr from\"clsx\";import{TableTd as zr}from\"@mantine/core\";import Br from\"clsx\";import{jsx as Vr}from\"react/jsx-runtime\";function _o({className:e,style:t,visibleMediaQuery:o,record:n,index:a,onClick:r,onDoubleClick:l,onContextMenu:c,noWrap:m,ellipsis:u,textAlign:f,width:p,accessor:d,render:s,defaultRender:i,customCellAttributes:g}){return J(o)?Vr(zr,{className:Br({[me]:m||u,[pe]:u,[X]:r||l,[_e]:c,[j]:f===\"left\",[Z]:f===\"center\",[Y]:f===\"right\"},e),style:[{width:p,minWidth:p,maxWidth:p},t],onClick:r,onDoubleClick:l,onContextMenu:c,...g?.(n,a),children:s?s(n,a):i?i(n,a,d):ft(n,d)}):null}import{Collapse as Gr,TableTd as Fr,TableTr as Ao}from\"@mantine/core\";import{Fragment as $r,jsx as Me,jsxs as Xr}from\"react/jsx-runtime\";function zo({open:e,colSpan:t,content:o,collapseProps:n}){let{expanded:a,visible:r}=eo(e,n?.transitionDuration);return r?Xr($r,{children:[Me(Ao,{}),Me(Ao,{children:Me(Fr,{className:\"mantine-datatable-row-expansion-cell\",colSpan:t,children:Me(Gr,{in:a,...n,children:Me(\"div\",{className:\"mantine-datatable-row-expansion-cell-content\",children:o()})})})})]}):null}import{Checkbox as Ur,TableTd as Qr}from\"@mantine/core\";import Kr from\"clsx\";import{jsx as Bo}from\"react/jsx-runtime\";function Vo({className:e,style:t,record:o,index:n,trigger:a,onChange:r,withRightShadow:l,checkboxProps:c,getCheckboxProps:m,...u}){let f={...c,...m(o,n)},p=!u.disabled&&!f.disabled,d=s=>{s.stopPropagation(),a===\"cell\"&&p&&r?.(s)};return Bo(Qr,{className:Kr(\"mantine-datatable-row-selector-cell\",{[X]:a===\"cell\"&&p},e),style:t,\"data-shadow-visible\":l||void 0,onClick:d,children:Bo(Ur,{classNames:p?{input:X}:void 0,onChange:r,...u,...f})})}import{Fragment as Go,jsx as Ue,jsxs as Fo}from\"react/jsx-runtime\";function $o({record:e,index:t,columns:o,defaultColumnProps:n,defaultColumnRender:a,selectionTrigger:r,selectionVisible:l,selectionChecked:c,onSelectionChange:m,isRecordSelectable:u,selectionCheckboxProps:f,getSelectionCheckboxProps:p,onClick:d,onDoubleClick:s,onContextMenu:i,onCellClick:g,onCellDoubleClick:h,onCellContextMenu:y,expansion:v,customAttributes:M,color:R,backgroundColor:W,className:D,style:T,selectorCellShadowVisible:P,selectionColumnClassName:b,selectionColumnStyle:x,rowFactory:k}){let E=Fo(Go,{children:[l&&Ue(Vo,{className:b,style:x,record:e,index:t,trigger:r,withRightShadow:P,checked:c,disabled:!m||(u?!u(e,t):!1),onChange:m,checkboxProps:f,getCheckboxProps:p}),o.map(({hidden:w,hiddenContent:S,...I},A)=>{if(w||S)return null;let{accessor:H,visibleMediaQuery:F,textAlign:U,noWrap:fe,ellipsis:be,width:Te,render:ge,cellsClassName:te,cellsStyle:he,customCellAttributes:Ce}={...n,...I};return Ue(_o,{className:typeof te==\"function\"?te(e,t):te,style:he?.(e,t),visibleMediaQuery:F,record:e,index:t,onClick:g?Q=>g({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,onDoubleClick:h?Q=>h({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,onContextMenu:y?Q=>y({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,accessor:H,textAlign:U,noWrap:fe,ellipsis:be,width:Te,render:ge,defaultRender:a,customCellAttributes:Ce},H)})]}),L=v&&Ue(zo,{colSpan:o.filter(({hidden:w})=>!w).length+(l?1:0),open:v.isRowExpanded(e),content:v.content({record:e,index:t}),collapseProps:v.collapseProps}),C=Zr({record:e,index:t,selectionChecked:c,onClick:d,onDoubleClick:s,onContextMenu:i,expansion:v,customAttributes:M,color:R,backgroundColor:W,className:D,style:T});return k?k({record:e,index:t,rowProps:C,children:E,expandedElement:L}):Fo(Go,{children:[Ue(Jr,{...C,children:E}),L]})}function Zr({record:e,index:t,selectionChecked:o,onClick:n,onDoubleClick:a,onContextMenu:r,expansion:l,customAttributes:c,color:m,backgroundColor:u,className:f,style:p}){return{className:jr(\"mantine-datatable-row\",{[X]:n||a||l?.isExpandable({record:e,index:t})&&l?.expandOnClick},{[_e]:r},typeof f==\"function\"?f(e,t):f),\"data-selected\":o||void 0,onClick:d=>{if(l){let{isExpandable:s,isRowExpanded:i,expandOnClick:g,expandRow:h,collapseRow:y}=l;s({record:e,index:t})&&g&&(i(e)?y(e):h(e))}n?.({event:d,record:e,index:t})},onDoubleClick:a?d=>a({event:d,record:e,index:t}):void 0,onContextMenu:r?d=>r({event:d,record:e,index:t}):void 0,style:[m||u?d=>{let s=m?.(e,t),i=u?.(e,t);return Mo({theme:d,color:s,backgroundColor:i})}:void 0,p?.(e,t)],...c?.(e,t)??{}}}import{Box as Xo,ScrollArea as Yr}from\"@mantine/core\";import Qe from\"clsx\";import{jsx as Ke,jsxs as qr}from\"react/jsx-runtime\";function Uo({leftShadowBehind:e,rightShadowBehind:t,onScrollPositionChange:o,children:n,viewportRef:a,scrollAreaProps:r}){return qr(Yr,{...r,viewportRef:a,classNames:{root:\"mantine-datatable-scroll-area\",scrollbar:\"mantine-datatable-scroll-area-scrollbar\",thumb:\"mantine-datatable-scroll-area-thumb\",corner:\"mantine-datatable-scroll-area-corner\"},onScrollPositionChange:o,children:[n,Ke(Xo,{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-top-shadow\")}),Ke(\"div\",{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-left-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":e})}),Ke(\"div\",{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-right-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":t})}),Ke(Xo,{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-bottom-shadow\")})]})}import{jsx as B,jsxs as Jo}from\"react/jsx-runtime\";function ll({withTableBorder:e,borderRadius:t,textSelectionDisabled:o,height:n=\"100%\",minHeight:a,maxHeight:r,shadow:l,verticalAlign:c=\"center\",fetching:m,columns:u,storeColumnsKey:f,groups:p,pinFirstColumn:d,pinLastColumn:s,defaultColumnProps:i,defaultColumnRender:g,idAccessor:h=\"id\",records:y,selectionTrigger:v=\"checkbox\",selectedRecords:M,onSelectedRecordsChange:R,selectionColumnClassName:W,selectionColumnStyle:D,isRecordSelectable:T,selectionCheckboxProps:P,allRecordsSelectionCheckboxProps:b={\"aria-label\":\"Select all records\"},getRecordSelectionCheckboxProps:x=(V,xe)=>({\"aria-label\":`Select record ${xe+1}`}),sortStatus:k,sortIcons:E,onSortStatusChange:L,horizontalSpacing:C,page:w,onPageChange:S,totalRecords:I,recordsPerPage:A,onRecordsPerPageChange:H,recordsPerPageOptions:F,recordsPerPageLabel:U=\"Records per page\",paginationWithEdges:fe,paginationWithControls:be,paginationActiveTextColor:Te,paginationActiveBackgroundColor:ge,paginationSize:te=\"sm\",paginationText:he=({from:V,to:xe,totalRecords:et})=>`${V} - ${xe} / ${et}`,paginationWrapBreakpoint:Ce=\"sm\",getPaginationControlProps:Q=V=>V===\"previous\"?{\"aria-label\":\"Previous page\"}:V===\"next\"?{\"aria-label\":\"Next page\"}:{},getPaginationItemProps:Je,renderPagination:je,loaderBackgroundBlur:Ze,customLoader:jo,loaderSize:Zo,loaderType:Yo,loaderColor:qo,loadingText:en=\"...\",emptyState:tn,noRecordsText:wt=\"No records\",noRecordsIcon:on,highlightOnHover:nn,striped:an,noHeader:rn,onRowClick:ln,onRowDoubleClick:sn,onRowContextMenu:cn,onCellClick:un,onCellDoubleClick:dn,onCellContextMenu:mn,onScroll:pn,onScrollToTop:fn,onScrollToBottom:bn,onScrollToLeft:Tn,onScrollToRight:gn,c:hn,backgroundColor:Cn,borderColor:yn,rowBorderColor:Dn,stripedColor:xn,highlightOnHoverColor:wn,rowColor:Sn,rowBackgroundColor:Rn,rowExpansion:Pn,rowClassName:vn,rowStyle:Mn,customRowAttributes:kn,scrollViewportRef:En,scrollAreaProps:Nn,tableRef:Ln,bodyRef:Wn,m:In,my:Hn,mx:On,mt:_n,mb:An,ml:zn,mr:Bn,className:Vn,classNames:ye,style:Gn,styles:De,rowFactory:Fn,tableWrapper:Ye,...qe}){let V=al(()=>p?Pe(p):u,[u,p]),[xe,et]=rl(!1),{refs:$,onScroll:$n}=$t({scrollCallbacks:{onScroll:pn,onScrollToTop:fn,onScrollToBottom:bn,onScrollToLeft:Tn,onScrollToRight:gn},withRowBorders:qe.withRowBorders}),tt=zt({key:f,columns:V,headerRef:$.header,scrollViewportRef:$.scrollViewport,onFixedLayoutChange:et}),Xn=Qo($.table,Ln),Un=Qo($.scrollViewport,En),Qn=Zt({rowExpansion:Pn,records:y,idAccessor:h}),ke=xt(!1),St=xt(w),ot=xt(y),Kn=Dt(N=>{ke.current=!0,ot.current=y,S(N)},[S,y]);ol(()=>{St.current!==w&&(ke.current=!0,ot.current=y,St.current=w)},[w,y]);let we=y?.length;nl(()=>{if(!ke.current||m||y===ot.current)return;let N=$.scrollViewport.current;if(!N)return;let oe=requestAnimationFrame(()=>{N.scrollTo({top:0,left:0}),ke.current=!1});return()=>cancelAnimationFrame(oe)},[m,y,$.scrollViewport]);let Rt=y?.map(N=>_(N,h)),se=!!M,Se=M?.map(N=>_(N,h)),Pt=Rt!==void 0&&Se!==void 0&&Se.length>0,nt=T?y?.filter(T):y,Ee=nt?.map(N=>_(N,h)),Ne=Pt&&Ee.every(N=>Se.includes(N)),Jn=Pt&&Ee.some(N=>Se.includes(N)),jn=Dt(()=>{M&&R&&R(Ne?M.filter(N=>!Ee.includes(_(N,h))):He([...M,...nt],N=>_(N,h)))},[Ne,h,R,Ee,nt,M]),{lastSelectionChangeIndex:Le,setLastSelectionChangeIndex:Zn}=Xt(Rt),at=se&&!d,Yn={m:In,my:Hn,mx:On,mt:_n,mb:An,ml:zn,mr:Bn},qn=Dt(({children:N})=>Ye?Ye({children:N}):N,[Ye]);return B(it,{...tt,children:Jo(el,{ref:$.root,...Yn,className:Ko(\"mantine-datatable\",{\"mantine-datatable-with-border\":e},Vn,ye?.root),style:[N=>({...vo({theme:N,c:hn,backgroundColor:Cn,borderColor:yn,rowBorderColor:Dn,stripedColor:xn,highlightOnHoverColor:wn}),borderRadius:N.radius[t]||t,boxShadow:N.shadows[l]||l,height:n,minHeight:a,maxHeight:r}),Gn,De?.root,{position:\"relative\"}],children:[B(Uo,{viewportRef:Un,leftShadowBehind:se||!!d,rightShadowBehind:s,onScrollPositionChange:$n,scrollAreaProps:Nn,children:B(qn,{children:Jo(tl,{ref:Xn,horizontalSpacing:C,className:Ko(\"mantine-datatable-table\",{[to]:o,\"mantine-datatable-vertical-align-top\":c===\"top\",\"mantine-datatable-vertical-align-bottom\":c===\"bottom\",\"mantine-datatable-pin-last-column\":s,\"mantine-datatable-selection-column-visible\":se,\"mantine-datatable-pin-first-column\":d,\"mantine-datatable-resizable-columns\":tt.hasResizableColumns&&xe},ye?.table),style:{...De?.table},\"data-striped\":we&&an||void 0,\"data-highlight-on-hover\":nn||void 0,...qe,children:[rn?null:B(it,{...tt,children:B(So,{ref:$.header,selectionColumnHeaderRef:$.selectionColumnHeader,className:ye?.header,style:De?.header,columns:V,defaultColumnProps:i,groups:p,sortStatus:k,sortIcons:E,onSortStatusChange:L,selectionTrigger:v,selectionVisible:se,selectionChecked:Ne,selectionIndeterminate:Jn&&!Ne,onSelectionChange:jn,selectionCheckboxProps:{...P,...b},selectorCellShadowVisible:at,selectionColumnClassName:W,selectionColumnStyle:D,withColumnBorders:qe.withColumnBorders})}),B(\"tbody\",{ref:Wn,children:we?y.map((N,oe)=>{let rt=_(N,h),lt=Se?.includes(rt)||!1,vt;return R&&M&&(vt=ea=>{if(ea.nativeEvent.shiftKey&&Le!==null){let ce=y.filter(oe>Le?(ne,ae)=>ae>=Le&&ae<=oe&&(T?T(ne,ae):!0):(ne,ae)=>ae>=oe&&ae<=Le&&(T?T(ne,ae):!0));R(lt?Jt(M,ce,ne=>_(ne,h)):He([...M,...ce],ne=>_(ne,h)))}else R(lt?M.filter(ce=>_(ce,h)!==rt):He([...M,N],ce=>_(ce,h)));Zn(oe)}),B($o,{record:N,index:oe,columns:V,defaultColumnProps:i,defaultColumnRender:g,selectionTrigger:v,selectionVisible:se,selectionChecked:lt,onSelectionChange:vt,isRecordSelectable:T,selectionCheckboxProps:P,getSelectionCheckboxProps:x,onClick:ln,onDoubleClick:sn,onCellClick:un,onCellDoubleClick:dn,onContextMenu:cn,onCellContextMenu:mn,expansion:Qn,color:Sn,backgroundColor:Rn,className:vn,style:Mn,customAttributes:kn,selectorCellShadowVisible:at,selectionColumnClassName:W,selectionColumnStyle:D,idAccessor:h,rowFactory:Fn},rt)}):B(Nt,{})}),V.some(({footer:N})=>N)&&B(ao,{ref:$.footer,className:ye?.footer,style:De?.footer,columns:V,defaultColumnProps:i,selectionVisible:se,selectorCellShadowVisible:at})]})})}),!!(w&&we)&&B(Oo,{className:ye?.pagination,style:De?.pagination,horizontalSpacing:C,fetching:m,page:w,onPageChange:Kn,totalRecords:I,recordsPerPage:A,onRecordsPerPageChange:H,recordsPerPageOptions:F,recordsPerPageLabel:U,paginationWithEdges:fe,paginationWithControls:be,paginationActiveTextColor:Te,paginationActiveBackgroundColor:ge,paginationSize:te,paginationText:he,paginationWrapBreakpoint:Ce,getPaginationControlProps:Q,getPaginationItemProps:Je,noRecordsText:wt,loadingText:en,recordsLength:we,renderPagination:je}),B(Po,{fetching:m,backgroundBlur:Ze,customContent:jo,size:Zo,type:Yo,color:qo}),B(Wt,{icon:on,text:wt,active:!m&&!we,children:tn})]})})}import{TableTr as il}from\"@mantine/core\";import{useMergedRef as sl}from\"@mantine/hooks\";import{useEffect as cl,useRef as ul}from\"react\";import{jsx as ml}from\"react/jsx-runtime\";function dl({className:e,children:t,isDragging:o,ref:n,...a}){let r=ul(null),l=sl(r,n);return cl(()=>{if(!r.current||!o)return;let f=r.current.parentElement.parentElement.children[0].children[0];for(let p=0;p<f.children.length;p++){let s=f.children[p].getBoundingClientRect(),i=r.current.children[p];i.style.height=s.height+\"px\",i.style.width=s.width+\"px\",i.style.minWidth=s.width+\"px\",i.style.maxWidth=s.width+\"px\"}},[o,t]),ml(il,{\"data-is-dragging\":o,ref:l,...a,className:e,children:t})}export{ll as DataTable,dl as DataTableDraggableRow,Oe as calculateColSpan,Jt as differenceBy,Pe as flattenColumns,Tt as getGroupsAtDepth,bt as getMaxGroupDepth,_ as getRecordId,ft as getValueAtPath,de as humanize,jt as needsRightBorder,ui as reorderRecords,di as swapRecords,He as uniqBy,zt as useDataTableColumns};\n//# sourceMappingURL=index.mjs.map","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Skeleton,\n Stack,\n Stepper,\n Textarea,\n TextInput\n} from \"@mantine/core\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface UpdateModalProps<T> {\n fields: Field<T>[];\n steps?: StepConfig[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n id: string | number;\n}\n\nexport function UpdateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n id,\n steps,\n}: UpdateModalProps<T>) {\n const [active, setActive] = useState<number>(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n\n const { data, isLoading: isDataLoading } = useGetOne<T>(\n apiPath,\n queryKey,\n id,\n );\n const {\n mutateAsync: update,\n isError: isUpdateError,\n error: updateError,\n isPending,\n } = useUpdateOne<T>(apiPath, queryKey);\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (field.defaultValue ?? (false as T[keyof T]))\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n const isReq = typeof field.required === \"function\"\n ? field.required(values)\n : !!field.required;\n if (!isReq) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n useEffect(() => {\n if (data) {\n const values = { ...data } as T;\n fields.forEach((field) => {\n const key = field.id as keyof T;\n if (field.type === \"boolean\" && values[key] === null) {\n values[key] = false as T[keyof T];\n } else if (field.type === \"date\" && values[key]) {\n values[key] = new Date(values[key] as unknown as string) as unknown as T[keyof T];\n } else if (values[key] === null) {\n values[key] = \"\" as T[keyof T];\n }\n });\n form.initialize(values);\n form.setValues(values);\n }\n }, [data]);\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), id } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isUpdateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={updateError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {updateError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n {isDataLoading ? (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array(fields.length)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-field-${index}`} height={35} />\n ))}\n <Group mt=\"md\" justify=\"end\">\n <Skeleton width={100} height={36} />\n <Skeleton width={100} height={36} />\n </Group>\n </Stack>\n ) : (\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n await update({\n ...values,\n id,\n } as T);\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isUpdateError) {\n setActive(active + 1);\n }\n } else {\n if (!isUpdateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n )}\n </>\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { useEffect, useState } from \"react\";\n\nexport interface DeleteModalProps<T> {\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n selectedRecords: T[];\n}\n\nexport function DeleteModal<T extends BaseEntity>({\n queryKey,\n apiPath,\n onClose,\n selectedRecords,\n}: DeleteModalProps<T>) {\n const {\n mutateAsync: del,\n isError: isDeleteError,\n error: deleteError,\n isPending: isDeletePending,\n } = useDeleteOne(apiPath, queryKey);\n\n const [records, setRecords] = useState<T[]>(selectedRecords);\n const [isDeleting, setIsDeleting] = useState(false);\n const isLoading = isDeleting || isDeletePending;\n\n useEffect(() => {\n if (!records.length) {\n onClose();\n }\n }, [onClose, records]);\n\n if (!records.length) {\n return <></>;\n }\n\n return (\n <>\n {isDeleteError && deleteError.message && (\n <Alert variant=\"outline\" color=\"red\" title={deleteError.name}>\n {deleteError.message}\n </Alert>\n )}\n\n <Text>\n {records.length === 1\n ? `Soll ${records.length} Eintrag wirklich gelöscht werden?`\n : `Sollen ${records.length} Einträge wirklich gelöscht werden?`}\n </Text>\n <Group mt=\"md\" justify=\"end\">\n <Button onClick={onClose} variant=\"outline\" disabled={isLoading}>\n Abbrechen\n </Button>\n <Button\n color=\"red\"\n loading={isLoading}\n onClick={async () => {\n setIsDeleting(true);\n try {\n await Promise.all(records.map((record) => del(record.id)));\n setRecords([]);\n } finally {\n setIsDeleting(false);\n }\n }}\n >\n Löschen\n </Button>\n </Group>\n </>\n );\n}\n","import { useState } from \"react\";\n\nexport function usePersistentState<T>(\n initialValue: T,\n key: string,\n): [T, (value: T) => void] {\n const [state, setState] = useState<T>(() => {\n const storedValue = localStorage.getItem(`use_persistent_storage_${key}`);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n });\n\n const setStateWrapper = (newState: T) => {\n setState(newState);\n localStorage.setItem(\n `use_persistent_storage_${key}`,\n JSON.stringify(newState),\n );\n };\n\n return [state, setStateWrapper];\n}\n","type ColumnType = \"string\" | \"number\" | \"date\" | \"mixed\";\n\nconst DATE_PATTERNS = [\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/,\n /^\\d{4}-\\d{2}-\\d{2}$/,\n /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\n /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\n];\n\nconst detectColumnType = <T>(data: T[], field: keyof T): ColumnType => {\n const nonNullValues = data\n .map((item) => item[field])\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\n if (nonNullValues.length === 0) return \"string\";\n\n const sample = nonNullValues.slice(0, 100);\n const types = { string: 0, number: 0, date: 0 };\n\n sample.forEach((value) => {\n if (typeof value === \"number\") {\n types.number++;\n } else if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed !== \"\" && !isNaN(Number(trimmed)) && !isNaN(parseFloat(trimmed))) {\n types.number++;\n return;\n }\n if (DATE_PATTERNS.some((pattern) => pattern.test(trimmed))) {\n const dateValue = new Date(trimmed);\n if (!isNaN(dateValue.getTime())) {\n types.date++;\n return;\n }\n }\n types.string++;\n } else if (value instanceof Date) {\n types.date++;\n } else {\n types.string++;\n }\n });\n\n const total = types.string + types.number + types.date;\n if (types.date / total >= 0.6) return \"date\";\n if (types.number / total >= 0.6) return \"number\";\n if (types.string / total >= 0.6) return \"string\";\n return \"mixed\";\n};\n\nfunction toSortValue(value: unknown, columnType: ColumnType): string | number | null {\n switch (columnType) {\n case \"date\":\n if (typeof value === \"string\") {\n const d = new Date(value.trim());\n return isNaN(d.getTime()) ? null : d.getTime();\n }\n if (value instanceof Date) return value.getTime();\n return null;\n case \"number\":\n if (typeof value === \"number\") return value;\n const num = parseFloat(String(value).trim());\n return isNaN(num) ? null : num;\n case \"string\":\n return (typeof value === \"string\" ? value : String(value)).toLowerCase().trim();\n default:\n return String(value).toLowerCase().trim();\n }\n}\n\nexport const sortData = <T>(\n data: T[],\n field: keyof T,\n direction: \"asc\" | \"desc\" = \"asc\",\n): T[] => {\n if (!data || data.length === 0) return [];\n\n const columnType = detectColumnType(data, field);\n\n return [...data].sort((a, b) => {\n const aValue = a[field];\n const bValue = b[field];\n\n const aIsNull = aValue === null || aValue === undefined || aValue === \"\";\n const bIsNull = bValue === null || bValue === undefined || bValue === \"\";\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return direction === \"asc\" ? -1 : 1;\n if (bIsNull) return direction === \"asc\" ? 1 : -1;\n\n const aSortValue = toSortValue(aValue, columnType);\n const bSortValue = toSortValue(bValue, columnType);\n\n if (aSortValue === null && bSortValue === null) return 0;\n if (aSortValue === null) return direction === \"asc\" ? 1 : -1;\n if (bSortValue === null) return direction === \"asc\" ? -1 : 1;\n\n if (aSortValue < bSortValue) return direction === \"asc\" ? -1 : 1;\n if (aSortValue > bSortValue) return direction === \"asc\" ? 1 : -1;\n return 0;\n });\n};\n","import { ActionIcon, Box, Checkbox, Collapse, Divider, Group, Menu, Pagination, Select, Stack, Text } from \"@mantine/core\";\nimport { BaseEntity } from \"../Hooks/useApi\";\nimport { Action, Field } from \"./DataTableInner\";\nimport React, { useState } from \"react\";\nimport { IconChevronDown, IconDotsVertical, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\n\ninterface SortConfig {\n field: string;\n direction: \"asc\" | \"desc\";\n onSortChange: (field: string, direction: \"asc\" | \"desc\") => void;\n}\n\ninterface MobileCardListProps<T extends BaseEntity> {\n records: T[];\n fields: Field<T>[];\n selection?: boolean;\n selectedRecords?: T[];\n onSelectedRecordsChange?: (records: T[]) => void;\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n actions?: Action<T>[];\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n pagination?: {\n totalRecords: number;\n recordsPerPage: number;\n page: number;\n onPageChange: (page: number) => void;\n recordsPerPageOptions?: number[];\n onRecordsPerPageChange?: (size: number) => void;\n };\n sort?: SortConfig;\n rowExpansion?: {\n content: (record: T) => React.ReactNode;\n };\n}\n\nfunction getNestedValue(record: Record<string, unknown>, accessor: string): unknown {\n return accessor.split(\".\").reduce<unknown>((obj, key) => {\n if (obj && typeof obj === \"object\" && key in (obj as Record<string, unknown>)) {\n return (obj as Record<string, unknown>)[key];\n }\n return undefined;\n }, record);\n}\n\nfunction renderFieldValue<T extends BaseEntity>(record: T, field: Field<T>): React.ReactNode {\n const column = field.column;\n\n if (column.render) {\n return column.render(record, 0);\n }\n\n const accessor = (column.accessor ?? field.id) as string;\n const value = getNestedValue(record as unknown as Record<string, unknown>, accessor);\n\n if (value === null || value === undefined) {\n return <Text c=\"dimmed\">–</Text>;\n }\n\n if (typeof value === \"boolean\") {\n return <Text fz=\"sm\">{value ? \"Ja\" : \"Nein\"}</Text>;\n }\n\n return <Text fz=\"sm\">{String(value)}</Text>;\n}\n\nfunction MobileCardRow<T extends BaseEntity>({ field, record }: { field: Field<T>; record: T }) {\n return (\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"center\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\">\n {(field.column.title as string) ?? field.id}\n </Text>\n <Box ta=\"right\" fz=\"sm\">\n {renderFieldValue(record, field)}\n </Box>\n </Group>\n );\n}\n\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n selection,\n selectedRecords = [],\n onSelectedRecordsChange,\n onRowClick,\n actions,\n canUpdate,\n canDelete,\n pagination,\n sort,\n rowExpansion,\n}: MobileCardListProps<T>) {\n const [expandedIds, setExpandedIds] = useState<Set<string | number>>(new Set());\n\n const toggleExpansion = (id: string | number) => {\n setExpandedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n };\n const listFields = fields.filter((f) => f.list && f.column);\n\n const sortOptions = listFields\n .filter((f) => f.column.sortable !== false)\n .reduce<{ value: string; label: string }[]>((acc, f) => {\n const value = (f.column.accessor ?? f.id) as string;\n if (!acc.some((o) => o.value === value)) {\n acc.push({ value, label: (f.column.title as string) ?? f.id });\n }\n return acc;\n }, []);\n\n const isSelected = (record: T) =>\n selectedRecords.some((r) => r.id === record.id);\n\n const toggleSelection = (record: T) => {\n if (!onSelectedRecordsChange) return;\n if (isSelected(record)) {\n onSelectedRecordsChange(selectedRecords.filter((r) => r.id !== record.id));\n } else {\n onSelectedRecordsChange([...selectedRecords, record]);\n }\n };\n\n const handleCardClick = (record: T, index: number, event: React.MouseEvent) => {\n if (onRowClick) {\n onRowClick({ record, index, event });\n } else if (selection) {\n toggleSelection(record);\n }\n };\n\n if (records.length === 0) {\n return (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n );\n }\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {sort && sortOptions.length > 0 && (\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Select\n data={sortOptions}\n value={sort.field}\n onChange={(value) => value && sort.onSortChange(value, sort.direction)}\n allowDeselect={false}\n style={{ flex: 1 }}\n />\n <ActionIcon\n variant=\"filled\"\n size=\"input-sm\"\n onClick={() => sort.onSortChange(sort.field, sort.direction === \"asc\" ? \"desc\" : \"asc\")}\n >\n {sort.direction === \"asc\" ? <IconSortAscending size={18} /> : <IconSortDescending size={18} />}\n </ActionIcon>\n </Group>\n )}\n\n {records.map((record, index) => {\n const selected = isSelected(record);\n const clickable = !!onRowClick || !!selection;\n\n const recordKey = record.id ?? index;\n const expanded = expandedIds.has(recordKey);\n\n return (\n <React.Fragment key={recordKey}>\n <Box\n bg={selected ? \"var(--mantine-primary-color-light)\" : \"var(--mantine-color-body)\"}\n bd={!selected ? \"1px solid var(--mantine-color-default-border)\" : undefined}\n style={{\n borderRadius: \"var(--mantine-radius-md)\",\n overflow: \"hidden\",\n }}\n >\n <Box\n w=\"100%\"\n style={{ cursor: clickable || rowExpansion ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (rowExpansion && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {(selection || rowExpansion || (actions && actions.length > 0)) && (\n <Group px=\"sm\" pt=\"sm\" justify=\"space-between\">\n <Group gap=\"xs\">\n {rowExpansion && (\n <Box\n c=\"var(--mantine-primary-color-filled)\"\n style={{ cursor: \"pointer\", display: \"flex\", alignItems: \"center\" }}\n onClick={(e: React.MouseEvent) => { e.stopPropagation(); toggleExpansion(recordKey); }}\n >\n <IconChevronDown\n size={16}\n style={{ transform: expanded ? \"rotate(0deg)\" : \"rotate(-90deg)\", transition: \"transform 200ms\" }}\n />\n </Box>\n )}\n {selection && (\n <Checkbox\n checked={selected}\n onChange={() => toggleSelection(record)}\n onClick={(e) => e.stopPropagation()}\n />\n )}\n </Group>\n {actions && actions.length > 0 && (() => {\n const filteredActions = actions.filter((action) => {\n if (action.label === \"Bearbeiten\" && canUpdate && !canUpdate(record)) return false;\n if (action.label === \"Löschen\" && canDelete && !canDelete(record)) return false;\n return true;\n });\n if (filteredActions.length === 0) return null;\n return (\n <Menu shadow=\"md\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"subtle\"\n color=\"gray\"\n size=\"sm\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <IconDotsVertical size={16} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n {filteredActions.map((action, actionIndex) => (\n <Menu.Item\n key={`card_action_${actionIndex}`}\n leftSection={action.icon}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n action.onClick([record]);\n }}\n >\n {action.label}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n })()}\n </Group>\n )}\n {listFields.map((field, fieldIndex) => (\n <React.Fragment key={field.id}>\n {fieldIndex > 0 && <Divider />}\n <MobileCardRow field={field} record={record} />\n </React.Fragment>\n ))}\n </Box>\n {rowExpansion && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion.content(record)}\n </Box>\n </Collapse>\n )}\n </Box>\n </React.Fragment>\n );\n })}\n\n {pagination && pagination.totalRecords > pagination.recordsPerPage && (\n <Stack gap=\"xs\" mt=\"sm\">\n <Group justify=\"center\">\n <Pagination\n total={Math.ceil(pagination.totalRecords / pagination.recordsPerPage)}\n value={pagination.page}\n onChange={pagination.onPageChange}\n size=\"sm\"\n />\n </Group>\n {pagination.recordsPerPageOptions && pagination.onRecordsPerPageChange && (\n <Group justify=\"center\" gap=\"xs\">\n <Text fz=\"xs\" c=\"dimmed\">Einträge pro Seite:</Text>\n <Select\n data={pagination.recordsPerPageOptions.map((o) => ({ value: String(o), label: String(o) }))}\n value={String(pagination.recordsPerPage)}\n onChange={(v) => v && pagination.onRecordsPerPageChange!(Number(v))}\n allowDeselect={false}\n size=\"xs\"\n w={70}\n />\n </Group>\n )}\n </Stack>\n )}\n </Stack>\n );\n}\n","import { ActionIcon, Alert, Box, Button, Group, Menu, Modal, Skeleton, Stack, Tabs, Title } from \"@mantine/core\";\nimport { BaseEntity, useGetAll } from \"../Hooks/useApi\";\nimport React, { useEffect, useState } from \"react\";\nimport { CreateModal } from \"./CreateModal\";\nimport { IconCaretDownFilled, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus } from \"mantine-datatable\";\nimport { UpdateModal } from \"./UpdateModal.tsx\";\nimport { DeleteModal } from \"./DeleteModal.tsx\";\nimport { useDataTable } from \"../Hooks/useDataTable.ts\";\nimport { usePersistentState } from \"../Hooks/usePersistentState.ts\";\nimport { sortData } from \"../utils/sort\";\nimport { MobileCardList } from \"./MobileCardList\";\n\ntype DatesRangeValue = [string | null, string | null];\n\ninterface DateFilter {\n id: string | number;\n type: \"date\";\n value?: DatesRangeValue;\n}\n\ninterface StringFilter {\n id: string | number;\n type: \"query\";\n value?: string | string[];\n}\n\ninterface BooleanFilter {\n id: string | number;\n type: \"boolean\";\n value?: boolean;\n}\n\ntype Filter = DateFilter | StringFilter | BooleanFilter;\n\nexport type FieldType =\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"custom\"\n | \"date\"\n | \"textarea\";\n\nexport interface Field<T> {\n id: string;\n defaultValue?: T[keyof T];\n required?: boolean | ((values: Partial<T>) => boolean);\n step?: number;\n list: boolean;\n create: boolean;\n update: boolean;\n delete: boolean;\n type?: FieldType;\n placeholder?: string;\n conditional?: (values: Partial<T>) => boolean;\n render?: (\n values: T,\n setValues: (values: Partial<T>) => void,\n hideButtons: (value: boolean) => void,\n validationProps?: {\n error?: string;\n required?: boolean;\n },\n ) => React.ReactNode;\n column: DataTableColumn<T>;\n}\n\nexport interface Action<T extends BaseEntity> {\n icon?: React.ReactNode;\n label: string;\n onClick: (records: T[]) => void;\n disabled?: (records: T[]) => boolean;\n}\n\nexport interface TabOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n queryParams?: Record<string, string | number | boolean | null>;\n apiPath?: string;\n mutationApiPath?: string;\n}\n\nexport interface StepConfig {\n label: string;\n description?: string;\n}\n\nexport interface DataTableProps<T extends BaseEntity> {\n title?: string | React.ReactNode;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n mutationApiPath?: string;\n queryParams?: Record<string, string | number | boolean | null>;\n filters?: Filter[];\n buttons?: React.ReactNode[];\n createButtonText?: string;\n actions?: Action<T>[];\n selection?: boolean;\n pagination?: boolean;\n steps?: StepConfig[];\n fields: Field<T>[];\n defaultSort?: {\n field: string;\n direction: \"asc\" | \"desc\";\n };\n onSortChange?: (field: string, direction: \"asc\" | \"desc\") => void;\n tabs?: TabOption[];\n defaultTab?: string;\n activeTab?: string | null;\n onActiveTabChange?: (tabValue: string | null) => void;\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n showRefresh?: boolean;\n rowExpansion?: {\n allowMultiple?: boolean;\n content: (record: T) => React.ReactNode;\n expanded?: {\n recordIds: unknown[];\n onRecordIdsChange: (recordIds: unknown[]) => void;\n };\n };\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n mobileCards?: boolean;\n}\n\nconst PAGE_SIZES = [10, 15, 50, 100, 500];\n\nexport function DataTableInner<T extends BaseEntity>({\n title,\n queryKey,\n connectedQueryKeys,\n apiPath,\n mutationApiPath,\n buttons,\n fields,\n selection,\n pagination,\n filters,\n actions,\n steps,\n defaultSort,\n onSortChange,\n createButtonText,\n queryParams,\n tabs,\n defaultTab,\n activeTab: controlledActiveTab,\n onActiveTabChange,\n canUpdate,\n canDelete,\n showRefresh = true,\n rowExpansion,\n onRowClick,\n mobileCards = false,\n}: DataTableProps<T>) {\n const [internalActiveTab, setInternalActiveTab] = useState<string | null>(\n defaultTab || (tabs && tabs.length > 0 ? tabs[0].value : null),\n );\n\n const activeTab =\n controlledActiveTab !== undefined ? controlledActiveTab : internalActiveTab;\n\n const handleTabChange = (value: string | null) => {\n if (controlledActiveTab === undefined) {\n setInternalActiveTab(value);\n }\n if (onActiveTabChange) {\n onActiveTabChange(value);\n }\n };\n\n const currentTab = tabs?.find((tab) => tab.value === activeTab);\n const currentTabParams = currentTab?.queryParams || {};\n const effectiveApiPath = currentTab?.apiPath ?? apiPath;\n const effectiveMutationApiPath = currentTab?.mutationApiPath ?? mutationApiPath ?? effectiveApiPath;\n const allQueryParams = { ...queryParams, ...currentTabParams };\n\n const queryString: string = allQueryParams\n ? \"?\" +\n Object.entries(allQueryParams)\n .filter(([, value]) => value !== null && value !== undefined)\n .map(([key, value]) => `${key}=${encodeURIComponent(value ?? \"\")}`)\n .join(\"&\")\n : \"\";\n\n const effectiveQueryKey = activeTab ? [...queryKey, activeTab] : queryKey;\n\n const {\n data: allData,\n isLoading,\n isError,\n isRefetching,\n refetch,\n } = useGetAll<T>(effectiveApiPath + queryString, effectiveQueryKey);\n\n const { queryClient } = useDataTable();\n\n useEffect(() => {\n if (!allData || !Array.isArray(allData)) return;\n\n connectedQueryKeys?.forEach((connectedQueryKey) =>\n queryClient.invalidateQueries({ queryKey: connectedQueryKey }),\n );\n }, [allData, connectedQueryKeys, queryClient]);\n\n const filteredData =\n (!allData || !Array.isArray(allData))\n ? []\n : (!filters || filters.length === 0)\n ? allData\n : allData.filter((record: T) => filters.every((filter) => {\n if (filter.value === undefined) return true;\n\n const key = filter.id as keyof T;\n if (filter.type === \"query\") {\n const recordValue = record[key];\n if (Array.isArray(filter.value)) {\n if (Array.isArray(recordValue)) {\n return recordValue.some((item: unknown) => {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filter.value!.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (\"id\" in obj && filter.value!.includes(obj.id as string)) {\n return true;\n }\n for (const prop in obj) {\n const propValue = obj[prop];\n if (\n typeof propValue === \"string\" &&\n filter.value!.includes(propValue)\n ) {\n return true;\n }\n if (\n propValue &&\n typeof propValue === \"object\" &&\n \"id\" in (propValue as Record<string, unknown>)\n ) {\n if (filter.value!.includes((propValue as Record<string, unknown>).id as string)) {\n return true;\n }\n }\n }\n }\n return false;\n });\n }\n if (\n recordValue &&\n typeof recordValue === \"object\" &&\n \"id\" in recordValue\n ) {\n return filter.value.includes((recordValue as Record<string, unknown>).id as string);\n }\n return false;\n }\n return (\n typeof recordValue === \"string\" &&\n recordValue.includes(filter.value)\n );\n } else if (filter.type === \"date\") {\n const dateValue = filter.value as DatesRangeValue;\n if (!dateValue) return true;\n\n const [from, to] = dateValue;\n if (!from && !to) return true;\n const recordDate = record[key];\n if (typeof recordDate === \"string\") {\n const recordDateStr = recordDate.split(\" \")[0];\n if (from && to) {\n return recordDateStr >= from && recordDateStr <= to;\n } else if (from && !to) {\n return recordDateStr >= from;\n } else if (!from && to) {\n return recordDateStr <= to;\n }\n }\n return true;\n } else if (filter.type === \"boolean\") {\n const recordValue = record[key];\n return recordValue === filter.value;\n }\n return true;\n }));\n\n const [sortStatus, setSortStatus] = useState<DataTableSortStatus<T>>({\n columnAccessor: defaultSort?.field ?? fields[0].id,\n direction: defaultSort?.direction ?? \"desc\",\n });\n \n const handleSortChange = (newSortStatus: DataTableSortStatus<T>) => {\n setSortStatus(newSortStatus);\n if (onSortChange) {\n onSortChange(String(newSortStatus.columnAccessor), newSortStatus.direction);\n }\n };\n\n const sortedData = sortData(\n filteredData,\n sortStatus.columnAccessor as keyof T,\n sortStatus.direction,\n );\n\n const [pageSize, setPageSize] = usePersistentState(\n PAGE_SIZES[1],\n \"mantine-table-page-size\",\n );\n const [page, setPage] = useState(1);\n\n const records = pagination ? sortedData.slice((page - 1) * pageSize, page * pageSize) : sortedData;\n\n const [selectedRecords, setSelectedRecords] = useState<T[]>([]);\n\n useEffect(() => {\n setSelectedRecords([]);\n }, [activeTab]);\n\n const [createModalOpen, setCreateModalOpen] = useState(false);\n const [updateModalOpen, setUpdateModalOpen] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n\n const hasUpdateField = fields.some((field) => field.update);\n const hasDeleteField = fields.some((field) => field.delete);\n\n const mobileActions: Action<T>[] = [];\n if (hasUpdateField) {\n mobileActions.push({\n icon: <IconPencil size={14} />,\n label: \"Bearbeiten\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setUpdateModalOpen(true);\n },\n });\n }\n if (actions) {\n mobileActions.push(...actions);\n }\n if (hasDeleteField) {\n mobileActions.push({\n icon: <IconTrash size={14} />,\n label: \"Löschen\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setDeleteModalOpen(true);\n },\n });\n }\n\n return (\n <>\n <Group gap=\"xs\" justify={title ? \"space-between\" : \"end\"} align=\"center\" wrap=\"wrap\">\n {title &&\n (typeof title === \"string\" ? (\n <Title order={4}>{title}</Title>\n ) : (\n title\n ))}\n <Group align=\"center\" gap=\"xs\" wrap=\"wrap\" justify=\"end\" style={{ marginLeft: \"auto\" }}>\n {showRefresh && (\n <ActionIcon\n variant=\"subtle\"\n onClick={() => refetch()}\n aria-label=\"Neuladen\"\n >\n <IconRefresh />\n </ActionIcon>\n )}\n {(fields.some((field) => field.update) || selection) && (() => {\n const hasUpdateAction = fields.find((field) => field.update) && \n (!canUpdate || (selectedRecords.length > 0 && canUpdate(selectedRecords[0])));\n const hasDeleteAction = fields.find((field) => field.delete) && \n (!canDelete || (selectedRecords.length > 0 && canDelete(selectedRecords[0])));\n const hasCustomActions = (actions ?? []).length > 0;\n const hasAnyAction = hasUpdateAction || hasDeleteAction || hasCustomActions;\n\n return (\n <Box {...(mobileCards ? { visibleFrom: \"sm\" } : {})}>\n <Menu shadow=\"md\">\n <Menu.Target>\n <Button\n variant=\"outline\"\n rightSection={<IconCaretDownFilled size={14} />}\n disabled={!selectedRecords.length || !hasAnyAction}\n >\n Aktionen\n </Button>\n </Menu.Target>\n <Menu.Dropdown>\n {hasUpdateAction && (\n <Menu.Item\n leftSection={<IconPencil size={14} />}\n onClick={() => setUpdateModalOpen(true)}\n disabled={selectedRecords.length !== 1}\n >\n Bearbeiten\n </Menu.Item>\n )}\n {(actions ?? []).map((action, index) => (\n <Menu.Item\n {...(action.icon && { leftSection: action.icon })}\n key={`custom_action_${index}`}\n onClick={() => action.onClick(selectedRecords)}\n disabled={action.disabled?.(selectedRecords) ?? false}\n >\n {action.label}\n </Menu.Item>\n ))}\n {hasDeleteAction && (\n <Menu.Item\n leftSection={<IconTrash size={14} />}\n onClick={() => setDeleteModalOpen(true)}\n color=\"red\"\n >\n Löschen\n </Menu.Item>\n )}\n </Menu.Dropdown>\n </Menu>\n </Box>\n );\n })()}\n {fields.find((field) => field.create) && (\n <Button\n onClick={() => setCreateModalOpen(true)}\n disabled={isLoading}\n >\n {createButtonText ?? \"Erstellen\"}\n </Button>\n )}\n {buttons}\n </Group>\n </Group>\n\n {tabs && tabs.length > 0 && (\n <Tabs value={activeTab} onChange={handleTabChange} mt=\"md\">\n <Tabs.List>\n {tabs.map((tab) => (\n <Tabs.Tab\n key={tab.value}\n value={tab.value}\n leftSection={tab.icon}\n >\n {tab.label}\n </Tabs.Tab>\n ))}\n </Tabs.List>\n </Tabs>\n )}\n\n {isError && (\n <Alert\n mt=\"md\"\n variant=\"light\"\n color=\"red\"\n title=\"Es ist ein Fehler aufgetreten.\"\n icon={<IconInfoCircle />}\n >\n Bitte versuche es später erneut oder sende eine Nachricht an unseren\n Support.\n </Alert>\n )}\n\n {(isLoading || isRefetching) && (\n <Stack my=\"md\">\n <Skeleton height={40} />\n {Array(5)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-${index}`} height={35} />\n ))}\n </Stack>\n )}\n\n {!isLoading && !isRefetching && (\n <>\n <Box {...(mobileCards ? { visibleFrom: \"sm\" } : {})}>\n {/* @ts-expect-error - conditional pagination spread not compatible with strict prop types */}\n <MantineDataTable\n my=\"md\"\n striped\n highlightOnHover\n minHeight={150}\n fetching={isError}\n records={records}\n sortStatus={sortStatus}\n onSortStatusChange={handleSortChange}\n {...(selection && {\n selectedRecords,\n onSelectedRecordsChange: setSelectedRecords,\n })}\n {...(pagination &&\n records.length && {\n totalRecords: sortedData.length,\n recordsPerPage: pageSize,\n onPageChange: setPage,\n page,\n recordsPerPageOptions: PAGE_SIZES,\n onRecordsPerPageChange: setPageSize,\n recordsPerPageLabel: \"Einträge pro Seite\",\n })}\n {...(rowExpansion && {\n rowExpansion: {\n allowMultiple: rowExpansion.allowMultiple ?? false,\n content: ({ record }: { record: T }) => rowExpansion.content(record),\n ...(rowExpansion.expanded && {\n expanded: rowExpansion.expanded,\n }),\n },\n })}\n columns={fields.map((field) => field.column)}\n noRecordsText=\"Keine Einträge gefunden\"\n onRowClick={onRowClick}\n {...(onRowClick && { style: { cursor: \"pointer\" } })}\n />\n </Box>\n\n {mobileCards && (\n <Box hiddenFrom=\"sm\">\n <MobileCardList\n records={records}\n fields={fields}\n selection={selection}\n selectedRecords={selectedRecords}\n onSelectedRecordsChange={setSelectedRecords}\n onRowClick={onRowClick}\n sort={{\n field: String(sortStatus.columnAccessor),\n direction: sortStatus.direction,\n onSortChange: (field, direction) => {\n handleSortChange({ columnAccessor: field as keyof T, direction });\n },\n }}\n {...(pagination && records.length && {\n pagination: {\n totalRecords: sortedData.length,\n recordsPerPage: pageSize,\n page,\n onPageChange: setPage,\n recordsPerPageOptions: PAGE_SIZES,\n onRecordsPerPageChange: (size: number) => { setPageSize(size); setPage(1); },\n },\n })}\n {...(rowExpansion && {\n rowExpansion: { content: rowExpansion.content },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\n )}\n\n\n </>\n )}\n\n <Modal\n opened={updateModalOpen}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Bearbeiten\"}\n >\n {selectedRecords.length > 0 && (\n <UpdateModal<T>\n fields={fields.filter((field) => field.update)}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n id={selectedRecords[0].id}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n steps={steps}\n />\n )}\n </Modal>\n\n {selectedRecords.length > 0 && (\n <Modal\n opened={deleteModalOpen}\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Löschen\"}\n >\n <DeleteModal<T>\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n selectedRecords={selectedRecords}\n />\n </Modal>\n )}\n\n <Modal\n opened={createModalOpen}\n onClose={() => {\n setCreateModalOpen(false);\n }}\n title={title ?? \"Anlegen\"}\n >\n <CreateModal<T>\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n onClose={() => {\n setCreateModalOpen(false);\n }}\n fields={fields.filter((field) => field.create)}\n steps={steps}\n />\n </Modal>\n </>\n );\n}\n","import { BaseEntity } from \"../Hooks/useApi.ts\";\nimport { DataTableInner, DataTableProps } from \"./DataTableInner.tsx\";\n\nexport function DataTable<T extends BaseEntity>(props: DataTableProps<T>) {\n return <DataTableInner<T> {...props} />;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,26],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","names":["#setup","#cleanup","#focused","#providerCalled","#provider","#setup","#cleanup","#online","#client","#selectError","#currentThenable","#currentQuery","#executeFetch","#updateTimers","#clearStaleTimeout","#clearRefetchInterval","#updateQuery","#updateStaleTimeout","#computeRefetchInterval","#currentRefetchInterval","#updateRefetchInterval","#currentResult","#currentResultOptions","#currentResultState","#trackedProps","#staleTimeoutId","#refetchIntervalId","#currentQueryInitialState","#lastQueryWithDefinedData","#selectFn","#selectResult","#notify","#client","#updateResult","#currentMutation","#notify","#currentResult","#mutateOptions","React","React","React","React","React"],"sources":["../node_modules/@tanstack/query-core/build/modern/subscribable.js","../node_modules/@tanstack/query-core/build/modern/focusManager.js","../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../node_modules/@tanstack/query-core/build/modern/utils.js","../node_modules/@tanstack/query-core/build/modern/environmentManager.js","../node_modules/@tanstack/query-core/build/modern/thenable.js","../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../node_modules/@tanstack/query-core/build/modern/retryer.js","../node_modules/@tanstack/query-core/build/modern/query.js","../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../node_modules/@tanstack/query-core/build/modern/mutation.js","../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../node_modules/@tanstack/react-query/build/modern/suspense.js","../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../node_modules/@tanstack/react-query/build/modern/useQuery.js","../node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/Context/DataTableContext.tsx","../src/Hooks/useDataTable.ts","../src/Hooks/useApi.ts","../src/DataTable/CreateModal.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/mantine-datatable/dist/index.mjs","../src/DataTable/UpdateModal.tsx","../src/DataTable/DeleteModal.tsx","../src/Hooks/usePersistentState.ts","../src/utils/sort.ts","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTableInner.tsx","../src/DataTable/DataTable.tsx"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveQueryBoolean(option, query) {\n return typeof option === \"function\" ? option(query) : option;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar Query = class extends Removable {\n #queryType;\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get queryType() {\n return this.#queryType;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n if (options?._type) {\n this.#queryType = options._type;\n }\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state) {\n this.#dispatch({ type: \"setState\", state });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveQueryBoolean(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n const behavior = this.#queryType === \"infinite\" ? infiniteQueryBehavior(\n this.options.pages\n ) : this.options.behavior;\n behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId !== void 0) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId !== void 0) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveQueryBoolean(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryBoolean(options.retryOnMount, query) === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/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 onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\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/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.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","import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { createContext, ReactNode } from \"react\";\n\nexport type GetHeaders = () => Promise<HeadersInit>;\n\nexport interface State {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n}\n\ninterface DataTableContextProps {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n children: ReactNode | ReactNode[];\n}\n\nexport const DataTableContext = createContext<State | undefined>(undefined);\n\nconst defaultGetHeaders: GetHeaders = async () => ({\n \"Content-Type\": \"application/json\",\n});\n\nexport function DataTableProvider({\n children,\n baseUrl,\n queryClient,\n getHeaders = defaultGetHeaders,\n}: DataTableContextProps) {\n return (\n <DataTableContext.Provider value={{ baseUrl, queryClient, getHeaders }}>\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n </DataTableContext.Provider>\n );\n}\n","import { useContext } from \"react\";\nimport { DataTableContext, State } from \"../Context/DataTableContext.tsx\";\n\nexport function useDataTable(): State {\n const context = useContext(DataTableContext);\n\n if (!context) {\n throw new Error(\"useDataTable must be used within a DataTableProvider\");\n }\n\n return context;\n}\n","import { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { useDataTable } from \"./useDataTable.ts\";\nimport type { GetHeaders } from \"../Context/DataTableContext.tsx\";\n\nexport function parseApiError(error: unknown): { message: string; code?: string; details?: unknown } {\n if (typeof error === \"string\") {\n try {\n const parsed = JSON.parse(error);\n return {\n message: parsed.message || error,\n code: parsed.code,\n details: parsed.details,\n };\n } catch {\n return { message: error };\n }\n }\n if (error instanceof Error) {\n return { message: error.message };\n }\n return { message: \"Unbekannter Fehler\" };\n}\n\nasync function fetchWithError(url: string, init: RequestInit): Promise<Response> {\n const resp = await fetch(url, init);\n if (resp.status >= 400) {\n const responseText = await resp.text();\n if (!responseText) {\n throw new Error(`HTTP ${resp.status}: ${resp.statusText}`);\n }\n let errorJson: { message?: string; error?: string } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new Error(responseText);\n }\n throw new Error(errorJson?.message ?? errorJson?.error ?? responseText);\n }\n return resp;\n}\n\nexport interface BaseEntity {\n id: string | number;\n}\n\ntype AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport async function getAll<T extends BaseEntity>(\n path: string,\n getHeaders: GetHeaders,\n): Promise<T[]> {\n const resp = await fetchWithError(path, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function getOne<T extends BaseEntity>(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${id}`, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function deleteOne(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<void> {\n await fetchWithError(`${path}/${id}`, { method: \"DELETE\", headers: await getHeaders() });\n}\n\nexport async function createOne<C, T extends BaseEntity>(\n path: string,\n item: C,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(path, {\n method: \"POST\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as unknown as T;\n return resp.json();\n}\n\nexport async function api<R, U>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n getHeaders: GetHeaders,\n payload?: U,\n): Promise<R> {\n const resp = await fetchWithError(path, {\n method,\n headers: await getHeaders(),\n body: payload ? JSON.stringify(payload) : undefined,\n });\n if (resp.status === 204) return undefined as R;\n return resp.json();\n}\n\nexport async function updateOne<T extends BaseEntity>(\n path: string,\n item: AtLeast<T, \"id\">,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${item.id}`, {\n method: \"PUT\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as T;\n return resp.json();\n}\n\nexport function useGetOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n id?: string | number,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T>({\n queryKey: [...queryKey.map((k) => k.toString()), String(id?.toString())],\n queryFn: () => getOne<T>(`${baseUrl}${apiPath}`, id!, getHeaders),\n enabled: !!id,\n });\n}\n\nexport function useGetAll<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n enabled: boolean = true,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T[]>({\n queryKey: [...queryKey.map((k) => k.toString())],\n queryFn: () => getAll<T>(`${baseUrl}${apiPath}`, getHeaders),\n enabled,\n });\n}\n\nexport function useAddOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, Omit<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useUpdateOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, AtLeast<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useDeleteOne(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<void, Error, string | number>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Stepper,\n Textarea,\n TextInput,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\nimport { Fragment, useState } from \"react\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface CreateModalProps<T> {\n fields: Field<T>[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n steps?: StepConfig[];\n onCreated?: (id: string | number) => void;\n}\n\nexport function CreateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n steps,\n onCreated,\n}: CreateModalProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n const [recordId, setRecordId] = useState<string | number>();\n\n const {\n mutateAsync: create,\n isError: isCreateError,\n error: createError,\n isPending: isCreatePending,\n } = useAddOne<T>(apiPath, queryKey);\n const { mutateAsync: update, isPending: isUpdatePending } = useUpdateOne<T>(\n apiPath,\n queryKey,\n );\n\n const isPending = isCreatePending || isUpdatePending;\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (false as T[keyof T])\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n if (!resolveRequired(field, values)) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), ...(recordId && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isCreateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={createError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {createError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n if (recordId) {\n await update({ ...values, id: recordId } as T);\n } else {\n const result = await create(values as T);\n setRecordId(result.id);\n onCreated?.(result.id);\n }\n\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isCreateError) {\n setActive(active + 1);\n }\n } else {\n if (!isCreateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";import{Box as el,Table as tl}from\"@mantine/core\";import{useMergedRef as Qo}from\"@mantine/hooks\";import Ko from\"clsx\";import{useCallback as Dt,useEffect as ol,useLayoutEffect as nl,useMemo as al,useRef as xt,useState as rl}from\"react\";import{useState as kt}from\"react\";import{createSafeContext as ta}from\"@mantine/core\";var[Mt,ue]=ta(\"useDataTableColumnsContext must be used within DataTableColumnProvider\");import{jsx as oa}from\"react/jsx-runtime\";var it=e=>{let{children:t,columnsOrder:o,setColumnsOrder:n,columnsToggle:a,setColumnsToggle:r,resetColumnsOrder:l,resetColumnsToggle:c,setColumnWidth:m,setMultipleColumnWidths:u,resetColumnsWidth:f}=e,[p,d]=kt(\"\"),[s,i]=kt(\"\");return oa(Mt,{value:{sourceColumn:p,setSourceColumn:d,targetColumn:s,setTargetColumn:i,columnsToggle:a,setColumnsToggle:r,swapColumns:()=>{if(!o||!n||!p||!s)return;let h=o.indexOf(p),y=o.indexOf(s);if(h!==-1&&y!==-1){let v=o.splice(h,1)[0];o.splice(y,0,v),n([...o])}},resetColumnsOrder:l,resetColumnsToggle:c,setColumnWidth:m,setMultipleColumnWidths:u,resetColumnsWidth:f},children:t})};import{jsx as Et}from\"react/jsx-runtime\";function Nt(){return Et(\"tr\",{className:\"mantine-datatable-empty-row\",children:Et(\"td\",{})})}import{Center as aa,Text as ra}from\"@mantine/core\";import{jsx as Re,jsxs as na}from\"react/jsx-runtime\";function Lt(){return na(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Re(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Re(\"path\",{d:\"M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74\"}),Re(\"path\",{d:\"M4 6v6c0 1.657 3.582 3 8 3c.986 0 1.93 -.067 2.802 -.19m3.187 -.82c1.251 -.53 2.011 -1.228 2.011 -1.99v-6\"}),Re(\"path\",{d:\"M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4\"}),Re(\"path\",{d:\"M3 3l18 18\"})]})}import{Fragment as la,jsx as We,jsxs as ia}from\"react/jsx-runtime\";function Wt({icon:e,text:t,active:o,children:n}){return We(aa,{className:\"mantine-datatable-empty-state\",\"data-active\":o||void 0,children:n||ia(la,{children:[e||We(\"div\",{className:\"mantine-datatable-empty-state-icon\",children:We(Lt,{})}),We(ra,{component:\"div\",size:\"sm\",c:\"dimmed\",children:t})]})})}import{TableTfoot as Ia,TableTr as Ha}from\"@mantine/core\";import Oa from\"clsx\";import{TableTh as ka}from\"@mantine/core\";import Ea from\"clsx\";import{useCallback as Ml,useRef as kl,useState as El}from\"react\";import{useLocalStorage as sa}from\"@mantine/hooks\";function It({key:e,columns:t=[],getInitialValueInEffect:o=!0}){function n(p,d){let s=[];return p.forEach(i=>{d.find(g=>g.accessor===i)&&s.push(i)}),d.forEach(i=>{s.includes(i.accessor)||s.push(i.accessor)}),s}let a=t&&t.map(p=>p.accessor)||[],[r,l]=sa({key:e?`${e}-columns-order`:\"\",defaultValue:e?a:void 0,getInitialValueInEffect:o});function c(p){e&&l(p)}let m=()=>{c(a)};if(!e)return{columnsOrder:r,setColumnsOrder:c,resetColumnsOrder:m};let u=n(r,t),f=JSON.stringify(r);return JSON.stringify(u)!==f&&c(u),{columnsOrder:u,setColumnsOrder:c,resetColumnsOrder:m}}import{useLocalStorage as ca}from\"@mantine/hooks\";import{useCallback as re,useEffect as st,useMemo as Ie,useRef as Ht,useState as Ot}from\"react\";function _t({key:e,columns:t=[],getInitialValueInEffect:o=!0,headerRef:n,onFixedLayoutChange:a}){let r=Ht(!1),l=Ht({}),[c,m]=Ot(!0),u=Ie(()=>t.some(b=>b.resizable&&!b.hidden&&b.accessor!==\"__selection__\"),[t]),f=Ie(()=>t.filter(b=>b.resizable&&!b.hidden&&b.accessor!==\"__selection__\"),[t]),p=Ie(()=>f.some(b=>b.width===void 0||b.width===\"\"||b.width===\"initial\"),[f]),d=re(()=>t.filter(b=>b.accessor!==\"__selection__\").map(b=>({[b.accessor]:b.width??\"auto\"})),[t]),[s,i]=ca({key:e?`${e}-columns-width`:\"\",defaultValue:e?d():void 0,getInitialValueInEffect:!1}),[g,h]=Ot(()=>d());st(()=>{m(!1)},[]);let y=re(()=>{if(!n?.current||c)return{};let b=n.current,x=Array.from(b.querySelectorAll(\"th[data-accessor]\")),k={};return x.forEach(E=>{let L=E.getAttribute(\"data-accessor\");if(!L||L===\"__selection__\")return;let C=f.find(w=>w.accessor===L);if(C&&(C.width===void 0||C.width===\"\"||C.width===\"initial\")){let w=E.getBoundingClientRect();k[L]=Math.round(w.width)}}),k},[n,f,c]),v=re(b=>{let x=b.filter(E=>E.accessor!==\"__selection__\"),k=g.map(E=>{let L=Object.keys(E)[0],C=x.find(w=>w.accessor===L);return C?{[L]:C.width}:E});h(k),e&&i(k)},[g,e,i]),M=re(b=>{v(b)},[v]),R=re(()=>{if(!(!n?.current||!a||c))if(p)a(!1),requestAnimationFrame(()=>{requestAnimationFrame(()=>{let b=y();l.current={...l.current,...b};let x=t.filter(k=>k.accessor!==\"__selection__\").map(k=>{let E=k.accessor,L=s?.find(w=>Object.keys(w)[0]===E);if(L&&L[E]!==\"auto\")return{[E]:L[E]};let C=b[E];return C?{[E]:`${C}px`}:{[E]:k.width??\"auto\"}});h(x),setTimeout(()=>{a(!0),r.current=!0},10)})});else{let b=t.filter(x=>x.accessor!==\"__selection__\").map(x=>({[x.accessor]:x.width??\"auto\"}));h(b),a(!0),r.current=!0}},[n,a,c,p,y,t,s]),W=R;st(()=>{if(!u||!a||c){a?.(!1);return}r.current=!1;let b=setTimeout(()=>{R()},50);return()=>clearTimeout(b)},[u,a,c,R]),st(()=>{c||!e||!o||s&&s.length>0&&h(s)},[c,e,o,s]);let D=re(()=>{e&&i(d()),l.current={},r.current=!1,a&&(a(!1),setTimeout(()=>{R()},10))},[e,i,d,a,R]),T=re((b,x)=>{v([{accessor:b,width:x}])},[v]),P=Ie(()=>u?g.filter(b=>{let x=Object.keys(b)[0];return f.some(k=>k.accessor===x)}).every(b=>{let x=Object.values(b)[0];return x===\"auto\"||x===\"initial\"}):!1,[u,g,f]);return{columnsWidth:g,setColumnsWidth:v,setColumnWidth:T,setMultipleColumnWidths:M,resetColumnsWidth:D,hasResizableColumns:u,allResizableWidthsInitial:P,measureAndSetColumnWidths:W}}import{useMemo as da}from\"react\";import{useLocalStorage as ua}from\"@mantine/hooks\";function At({key:e,columns:t=[],getInitialValueInEffect:o=!0}){function n(p,d){let s=[];return p.forEach(i=>{d.find(g=>g.accessor===i.accessor)&&s.push(i)}),d.forEach(i=>{s.find(g=>g.accessor===i.accessor)||s.push({accessor:i.accessor,defaultToggle:i.defaultToggle||!0,toggleable:i.toggleable,toggled:i.defaultToggle===void 0?!0:i.defaultToggle})}),s}let a=t&&t.map(p=>({accessor:p.accessor,defaultToggle:p.defaultToggle||!0,toggleable:p.toggleable,toggled:p.defaultToggle===void 0?!0:p.defaultToggle})),[r,l]=ua({key:e?`${e}-columns-toggle`:\"\",defaultValue:e?a:void 0,getInitialValueInEffect:o});function c(p){e&&l(p)}let m=()=>{c(a)};if(!e)return{columnsToggle:r,setColumnsToggle:c,resetColumnsToggle:m};let u=n(r,t),f=JSON.stringify(r);return JSON.stringify(u)!==f&&c(u),{columnsToggle:u,setColumnsToggle:c,resetColumnsToggle:m}}var zt=({key:e,columns:t=[],getInitialValueInEffect:o=!0,headerRef:n,scrollViewportRef:a,onFixedLayoutChange:r})=>{let{columnsOrder:l,setColumnsOrder:c,resetColumnsOrder:m}=It({key:e,columns:t,getInitialValueInEffect:o}),{columnsToggle:u,setColumnsToggle:f,resetColumnsToggle:p}=At({key:e,columns:t,getInitialValueInEffect:o}),{columnsWidth:d,setColumnsWidth:s,setColumnWidth:i,setMultipleColumnWidths:g,resetColumnsWidth:h,hasResizableColumns:y,allResizableWidthsInitial:v,measureAndSetColumnWidths:M}=_t({key:e,columns:t,getInitialValueInEffect:o,headerRef:n,scrollViewportRef:a,onFixedLayoutChange:r});return{effectiveColumns:da(()=>l?l.map(T=>t.find(P=>P.accessor===T)).map(T=>({...T,hidden:T?.hidden||!u.find(P=>P.accessor===T?.accessor)?.toggled})).map(T=>T?.accessor===\"__selection__\"?T:{...T,width:d.find(P=>P[T?.accessor])?.[T?.accessor]}):t,[t,l,u,d]),setColumnsOrder:c,columnsOrder:l,resetColumnsOrder:m,columnsToggle:u,setColumnsToggle:f,resetColumnsToggle:p,columnsWidth:d,setColumnsWidth:s,setColumnWidth:i,setMultipleColumnWidths:g,resetColumnsWidth:h,hasResizableColumns:y,allResizableWidthsInitial:v,measureAndSetColumnWidths:M}};import{rem as ba}from\"@mantine/core\";import{useCallback as Ta,useEffect as dt,useRef as K}from\"react\";import{useEffect as ma,useLayoutEffect as pa}from\"react\";var ct=typeof window<\"u\"?pa:ma;import{useRef as fa}from\"react\";function ut(e){let t=fa(e);return t.current=e,t}var Bt=\"--mantine-datatable-header-height\",Vt=\"--mantine-datatable-footer-height\",Gt=\"--mantine-datatable-selection-column-width\",Ft=\"--mantine-datatable-last-row-border-bottom\";function G(e,t,o){e?.style.setProperty(t,o)}function pt(e){let t=e.borderBoxSize?.[0]||e.contentBoxSize?.[0];return t?{width:t.inlineSize,height:t.blockSize}:{width:e.contentRect.width,height:e.contentRect.height}}function mt(e,t,o){if(e){let n=new ResizeObserver(a=>{let r=a[0];r&&t(pt(r))});return n.observe(e),()=>{n.disconnect(),o()}}}function $t({scrollCallbacks:e,withRowBorders:t}){let o={root:K(null),table:K(null),scrollViewport:K(null),header:K(null),footer:K(null),selectionColumnHeader:K(null)},{root:n,table:a,scrollViewport:r,header:l,footer:c,selectionColumnHeader:m}=o,u=ut({withRowBorders:t}),f=ut(e),p=K(()=>{}),d=K(()=>{}),s=Ta(i=>{f.current.onScroll?.(i),p.current()},[]);return dt(()=>mt(l.current,i=>{G(n.current,Bt,`${i.height}px`)},()=>G(n.current,Bt,\"0\")),[l.current]),dt(()=>mt(c.current,i=>{G(n.current,Vt,`${i.height}px`)},()=>G(n.current,Vt,\"0\")),[c.current]),dt(()=>mt(m.current,i=>{G(n.current,Gt,`${i.width}px`)},()=>G(n.current,Gt,\"0\")),[m.current]),ct(()=>{if(typeof window===void 0)return;let i={top:!0,bottom:!0,left:!0,right:!0},g={width:0,height:0},h={width:0,height:0};function y(D,T){let P=i[D];return i[D]=T,G(n.current,`--mantine-datatable-${D}-shadow-opacity`,T?\"0\":\"1\"),P}function v(){let D=g.height-h.height,T=D<0;G(n.current,\"--mantine-datatable-footer-position\",T?\"relative\":\"sticky\"),G(n.current,\"--mantine-datatable-footer-bottom\",T?`${D}px`:\"0\")}function M(){u.current.withRowBorders&&g.height<h.height?G(n.current,Ft,`${ba(\"1px\")} solid var(--mantine-datatable-border-color)`):G(n.current,Ft,\"unset\")}d.current=M;function R(){let D=f.current,T=r.current,P=T?.scrollTop??0,b=T?.scrollLeft??0,x=P===0,k=g.height-P-h.height<1,E=y(\"top\",x),L=y(\"bottom\",k);x&&x!==E&&D.onScrollToTop?.(),k&&k!==L&&D.onScrollToBottom?.();let C=T?getComputedStyle(T).direction===\"rtl\":!1,w=(T?.scrollWidth??0)-h.width,S,I;if(C){let F=Math.abs(b);I=F<1,S=w-F<1}else S=b<1,I=g.width-b-h.width<1;let A=y(\"left\",S),H=y(\"right\",I);S&&S!==A&&D.onScrollToLeft?.(),I&&I!==H&&D.onScrollToRight?.()}p.current=R;let W=new ResizeObserver(D=>{for(let T of D)switch(T.target.tagName){case\"TABLE\":{g=pt(T);break}case\"DIV\":{h=pt(T);break}}R(),v(),M()});return W.observe(a.current),W.observe(r.current),()=>{W.disconnect()}},[]),ct(()=>{d.current()},[t]),{refs:o,onScroll:s}}import{useEffect as ga,useState as ha}from\"react\";function Xt(e){let[t,o]=ha(null),n=e?.join(\":\")||\"\";return ga(()=>{o(null)},[n]),{lastSelectionChangeIndex:t,setLastSelectionChangeIndex:o}}import{useEffect as Ca,useRef as ya,useState as Da}from\"react\";function xa(e,t){let o=()=>{t(e.map(a=>a.matches))},n=e.map(a=>{try{return a.addEventListener(\"change\",o),()=>a.removeEventListener(\"change\",o)}catch{return a.addListener(o),()=>a.removeListener(o)}});return()=>{n.forEach(a=>a())}}function wa(e,t){return t||(typeof window<\"u\"&&\"matchMedia\"in window?e.map(o=>window.matchMedia(o).matches):e.map(()=>!1))}function Ut(e,t,{getInitialValueInEffect:o}={getInitialValueInEffect:!0}){let[n,a]=Da(o?t:wa(e,t)),r=ya(null);return Ca(()=>{if(\"matchMedia\"in window)return r.current=e.map(l=>window.matchMedia(l)),a(r.current.map(l=>l.matches)),xa(r.current,l=>{a(l)})},[e]),n}import{useMantineTheme as Sa}from\"@mantine/core\";import{useMemo as Qt}from\"react\";function Kt(e){let t=Sa(),o=Qt(()=>e.map(a=>(typeof a==\"function\"?a(t):a)??\"\"),[e,t]),n=Qt(()=>e.map(()=>!0),[e]);return Ut(o,n)}import{useMantineTheme as Ra}from\"@mantine/core\";import{useMediaQuery as Pa}from\"@mantine/hooks\";function J(e){let t=Ra(),o=typeof e==\"function\"?e(t):e;return Pa(o||\"\",!0)}import{useState as va}from\"react\";function de(e){let t=e.replace(/([a-z\\d])([A-Z]+)/g,\"$1 $2\").replace(/\\W|_/g,\" \").trim().toLowerCase();return`${t.charAt(0).toUpperCase()}${t.slice(1)}`}function Jt(e,t,o){return e.filter(n=>!t.map(o).includes(o(n)))}function He(e,t){return e.filter((o,n,a)=>n===a.findIndex(r=>t(o)===t(r)))}function ft(e,t){return t?t.match(/([^[.\\]])+/g).reduce((n,a)=>n&&n[a],e):void 0}function _(e,t){return typeof t==\"string\"?ft(e,t):t(e)}function ui(e,t){let o=structuredClone(t),n=o[e.source.index];return e.destination&&(o.splice(e.source.index,1),o.splice(e.destination.index,0,n)),o}function di(e,t){let o=structuredClone(t),n=e.destination;if(!n)return o;let a=o[e.source.index],r=o[n.index];return o.splice(n.index,1,a),o.splice(e.source.index,1,r),o}function bt(e){return!e||e.length===0?0:Math.max(...e.map(t=>t.groups&&t.groups.length>0?1+bt(t.groups):1))}function Pe(e){let t=[];for(let o of e)o.columns&&o.columns.length>0?t.push(...o.columns.filter(n=>n!=null)):o.groups&&o.groups.length>0&&t.push(...Pe(o.groups));return t.filter(o=>o!=null)}function Oe(e,t){return e.columns&&e.columns.length>0?e.columns.filter((o,n)=>o.hidden?!1:t?t[n]!==!1:!0).length:e.groups&&e.groups.length>0?e.groups.reduce((o,n)=>o+Oe(n,t),0):0}function Tt(e,t,o=0){if(o===t)return[...e];let n=[];for(let a of e)a.groups&&a.groups.length>0&&n.push(...Tt(a.groups,t,o+1));return n}function jt(e,t,o){return o?!e||t:!1}function Zt({rowExpansion:e,records:t,idAccessor:o}){let n=[];if(e&&t){let{trigger:c,allowMultiple:m,initiallyExpanded:u}=e;t&&c===\"always\"?n=t.map(f=>_(f,o)):u&&(n=t.filter((f,p)=>u({record:f,index:p})).map(f=>_(f,o)),m||(n=[n[0]]))}let a,r,l=va(n);if(e){let{expandable:c,trigger:m,allowMultiple:u,collapseProps:f,content:p}=e;e.expanded?{recordIds:a,onRecordIdsChange:r}=e.expanded:[a,r]=l;let d=s=>r?.(a.filter(i=>i!==_(s,o)));return{expandOnClick:m!==\"always\"&&m!==\"never\",isRowExpanded:s=>m===\"always\"?!0:a.includes(_(s,o)),isExpandable:({record:s,index:i})=>c?c({record:s,index:i}):!0,expandRow:s=>{let i=_(s,o);r?.(u?[...a,i]:[i])},collapseRow:d,collapseProps:f,content:({record:s,index:i})=>()=>p({record:s,index:i,collapse:()=>d(s)})}}}import{useTimeout as Yt}from\"@mantine/hooks\";import{useEffect as Ma,useState as qt}from\"react\";function eo(e,t){let[o,n]=qt(e),[a,r]=qt(e),l=Yt(()=>n(!0),0),c=Yt(()=>r(!1),t||200);return Ma(()=>{e?(c.clear(),r(!0),l.start()):(l.clear(),n(!1),c.start())},[l,c,e]),{expanded:o,visible:a}}var me=\"mantine-datatable-nowrap\",pe=\"mantine-datatable-ellipsis\",X=\"mantine-datatable-pointer-cursor\",_e=\"mantine-datatable-context-menu-cursor\",to=\"mantine-datatable-text-selection-disabled\",j=\"mantine-datatable-text-align-left\",Z=\"mantine-datatable-text-align-center\",Y=\"mantine-datatable-text-align-right\";import{jsx as Na}from\"react/jsx-runtime\";function oo({className:e,style:t,visibleMediaQuery:o,title:n,noWrap:a,ellipsis:r,textAlign:l,width:c}){return J(o)?Na(ka,{className:Ea({[me]:a||r,[pe]:r,[j]:l===\"left\",[Z]:l===\"center\",[Y]:l===\"right\"},e),style:[{width:c,minWidth:c,maxWidth:c},t],children:n}):null}import{TableTh as La}from\"@mantine/core\";import{jsx as Wa}from\"react/jsx-runtime\";function no({shadowVisible:e}){return Wa(La,{className:\"mantine-datatable-footer-selector-placeholder-cell\",\"data-shadow-visible\":e||void 0})}import{jsx as gt,jsxs as _a}from\"react/jsx-runtime\";function ao({className:e,style:t,columns:o,defaultColumnProps:n,selectionVisible:a,selectorCellShadowVisible:r,ref:l}){return gt(Ia,{ref:l,className:Oa(\"mantine-datatable-footer\",e),style:t,children:_a(Ha,{children:[a&>(no,{shadowVisible:r}),o.map(({hidden:c,...m})=>{if(c)return null;let{accessor:u,visibleMediaQuery:f,textAlign:p,width:d,footer:s,footerClassName:i,footerStyle:g,noWrap:h,ellipsis:y}={...n,...m};return gt(oo,{className:i,style:g,visibleMediaQuery:f,textAlign:p,width:d,title:s,noWrap:h,ellipsis:y},u)})]})})}import{Checkbox as pr,Group as fr,Popover as br,PopoverDropdown as Tr,PopoverTarget as gr,Stack as hr,TableThead as Cr,TableTr as wo}from\"@mantine/core\";import yr from\"clsx\";import{useState as Dr}from\"react\";import{TableTh as Aa}from\"@mantine/core\";import za from\"clsx\";import{useMemo as Ae}from\"react\";import{jsx as Ba}from\"react/jsx-runtime\";function ro({group:{id:e,columns:t,groups:o,title:n,textAlign:a,className:r,style:l},maxDepth:c,currentDepth:m,previousGroups:u,isLastGroup:f,withColumnBorders:p=!1,totalTableColumns:d}){let s=Ae(()=>t&&t.length>0?t:o&&o.length>0?Pe([{id:e,columns:t,groups:o}]):[],[t,o,e]),i=Ae(()=>s.map(({visibleMediaQuery:D})=>D),[s]),g=Kt(i),h=Ae(()=>Oe({id:e,columns:t,groups:o},g),[e,t,o,g]),y=Ae(()=>u.reduce((D,T)=>D+Oe(T,g),0),[u,g]),M=o&&o.length>0?1:c-m,R=y+h<d,W=jt(f,R,p);return h>0?Ba(Aa,{colSpan:h,rowSpan:M>1?M:void 0,className:za(\"mantine-datatable-column-group-header-cell\",{[j]:a===\"left\",[Z]:a===\"center\",[Y]:a===\"right\",\"mantine-datatable-column-group-header-cell--needs-border\":W},r),style:l,children:n??de(e)}):null}import{ActionIcon as Co,Box as nr,Center as Ge,Flex as ar,Group as rr,TableTh as lr}from\"@mantine/core\";import Fe from\"clsx\";import{useRef as ir,useState as sr}from\"react\";import{ActionIcon as Fa,Popover as $a,PopoverDropdown as Xa,PopoverTarget as Ua}from\"@mantine/core\";import{useClickOutside as Qa,useDisclosure as Ka}from\"@mantine/hooks\";import{jsx as lo,jsxs as Va}from\"react/jsx-runtime\";function io(){return Va(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[lo(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),lo(\"path\",{d:\"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z\"})]})}import{jsx as so,jsxs as Ga}from\"react/jsx-runtime\";function co(){return Ga(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[so(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),so(\"path\",{d:\"M20 3h-16a1 1 0 0 0 -1 1v2.227l.008 .223a3 3 0 0 0 .772 1.795l4.22 4.641v8.114a1 1 0 0 0 1.316 .949l6 -2l.108 -.043a1 1 0 0 0 .576 -.906v-6.586l4.121 -4.12a3 3 0 0 0 .879 -2.123v-2.171a1 1 0 0 0 -1 -1z\",strokeWidth:\"0\",fill:\"currentColor\"})]})}import{jsx as ze,jsxs as Ja}from\"react/jsx-runtime\";function uo({children:e,isActive:t,filterPopoverProps:o,filterPopoverDisableClickOutside:n}){let[a,{close:r,toggle:l}]=Ka(!1),c=t?co:io,m=Qa(r);return n&&(m=void 0),Ja($a,{withArrow:!0,shadow:\"md\",opened:a,onClose:r,trapFocus:!0,...o,children:[ze(Ua,{children:ze(Fa,{className:\"mantine-datatable-header-cell-filter-action-icon\",\"data-active\":t||void 0,size:\"sm\",variant:\"default\",onClick:u=>{u.preventDefault(),l()},onKeyDown:u=>u.stopPropagation(),children:ze(c,{})})}),ze(Xa,{ref:m,onClick:u=>u.stopPropagation(),onKeyDown:u=>u.stopPropagation(),children:typeof e==\"function\"?e({close:r}):e})]})}import{useDirection as ja}from\"@mantine/core\";import{useCallback as mo,useRef as po,useState as Za}from\"react\";import{jsx as Ya}from\"react/jsx-runtime\";var fo=e=>{let{accessor:t,columnRef:o}=e,[n,a]=Za(!1),r=po(0),l=po({current:0,next:0}),{dir:c}=ja(),m=c===\"rtl\",{setMultipleColumnWidths:u}=ue(),f=mo(d=>{if(d.preventDefault(),d.stopPropagation(),!o.current)return;let s=o.current,i=s.nextElementSibling;for(;i;){let W=i.getAttribute(\"data-accessor\");if(W&&W!==\"__selection__\")break;i=i.nextElementSibling}if(!i)return;let g=i.getAttribute(\"data-accessor\");if(!g)return;let h=g===\"__selection__\";a(!0),r.current=d.clientX;let y=s.offsetWidth,v=i.offsetWidth;l.current={current:y,next:v};let M=W=>{if(!o.current)return;let D=o.current,T=D.nextElementSibling;if(!T)return;let P=W.clientX-r.current;m&&(P=-P);let b=50,x=l.current.current-b,k=l.current.next-b,E=Math.max(-x,Math.min(P,k)),L=l.current.current+E,C=l.current.next-E;D.style.width=`${L}px`,T.style.width=`${C}px`,D.style.minWidth=`${L}px`,D.style.maxWidth=`${L}px`,T.style.minWidth=`${C}px`,T.style.maxWidth=`${C}px`},R=()=>{if(!o.current)return;let W=o.current,D=W.nextElementSibling;a(!1),document.body.style.cursor=\"initial\",document.body.style.userSelect=\"initial\";let T=parseInt(W.style.width)||W.offsetWidth,P=D?parseInt(D.style.width)||D.offsetWidth:0,b=[{accessor:t,width:`${T}px`}];if(D&&!h){let x=D.getAttribute(\"data-accessor\");x&&b.push({accessor:x,width:`${P}px`})}setTimeout(()=>{u(b)},0),document.removeEventListener(\"mousemove\",M),document.removeEventListener(\"mouseup\",R)};document.body.style.cursor=\"col-resize\",document.body.style.userSelect=\"none\",document.addEventListener(\"mousemove\",M),document.addEventListener(\"mouseup\",R)},[t,o,m,u]),p=mo(()=>{if(!o.current)return;let d=o.current,s=d.nextElementSibling;d.style.width=\"\",d.style.minWidth=\"\",d.style.maxWidth=\"\";let i=[{accessor:t,width:\"auto\"}];if(s){s.style.width=\"\",s.style.minWidth=\"\",s.style.maxWidth=\"\";let g=s.getAttribute(\"data-accessor\");g&&g!==\"__selection__\"&&i.push({accessor:g,width:\"auto\"})}setTimeout(()=>{u(i)},0)},[t,o,u]);return Ya(\"div\",{className:\"mantine-datatable-header-resizable-handle\",style:{cursor:n?\"col-resize\":void 0},onMouseDown:f,onDoubleClick:p,onClick:d=>d.stopPropagation(),title:\"Drag to resize column, double-click to reset\"})};import{jsx as Be,jsxs as qa}from\"react/jsx-runtime\";function bo(){return qa(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Be(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Be(\"path\",{d:\"M12 5l0 14\"}),Be(\"path\",{d:\"M16 9l-4 -4\"}),Be(\"path\",{d:\"M8 9l4 -4\"})]})}import{jsx as Ve,jsxs as er}from\"react/jsx-runtime\";function To(){return er(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ve(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ve(\"path\",{d:\"M8 7l4 -4l4 4\"}),Ve(\"path\",{d:\"M8 17l4 4l4 -4\"}),Ve(\"path\",{d:\"M12 3l0 18\"})]})}import{jsx as le,jsxs as tr}from\"react/jsx-runtime\";function go(){return tr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[le(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),le(\"path\",{d:\"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),le(\"path\",{d:\"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"})]})}import{jsx as ht,jsxs as or}from\"react/jsx-runtime\";function ho(){return or(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[ht(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),ht(\"path\",{d:\"M18 6l-12 12\"}),ht(\"path\",{d:\"M6 6l12 12\"})]})}import{Fragment as cr,jsx as z,jsxs as Ct}from\"react/jsx-runtime\";function yo({className:e,style:t,accessor:o,visibleMediaQuery:n,title:a,sortable:r,draggable:l,toggleable:c,resizable:m,sortIcons:u,textAlign:f,width:p,sortStatus:d,onSortStatusChange:s,filter:i,filterPopoverProps:g,filterPopoverDisableClickOutside:h,filtering:y,sortKey:v}){let{setSourceColumn:M,setTargetColumn:R,swapColumns:W,setColumnsToggle:D}=ue(),[T,P]=sr(!1),b=ir(null);if(!J(n))return null;let x=a??de(o),k=typeof x==\"string\"?x:void 0,E=r&&s?H=>{H?.defaultPrevented||s({sortKey:v,columnAccessor:o,direction:d?.columnAccessor===o?d.direction===\"asc\"?\"desc\":\"asc\":d?.direction??\"asc\"})}:void 0,L=H=>{H.stopPropagation(),M(o),P(!1)},C=H=>{H.preventDefault(),R(o),P(!0)},w=()=>{R(o),P(!1),W()},S=()=>{P(!0)},I=()=>{P(!1)},A=H=>{H.stopPropagation(),D(F=>F.map(U=>U.accessor===o?{...U,toggled:!1}:U))};return Ct(lr,{\"data-accessor\":o,className:Fe({\"mantine-datatable-header-cell-sortable\":r,\"mantine-datatable-header-cell-toggleable\":c,\"mantine-datatable-header-cell-resizable\":m},e),style:[{width:p,...m?{}:{minWidth:p,maxWidth:p}},t],role:r?\"button\":void 0,tabIndex:r?0:void 0,onClick:E,onKeyDown:H=>H.key===\"Enter\"&&E?.(),ref:b,children:[Ct(rr,{className:\"mantine-datatable-header-cell-sortable-group\",justify:\"space-between\",wrap:\"nowrap\",children:[Ct(ar,{align:\"center\",w:\"100%\",className:Fe({\"mantine-datatable-header-cell-draggable\":l,\"mantine-datatable-header-cell-drag-over\":T}),draggable:l,onDragStart:l?L:void 0,onDragEnter:l?S:void 0,onDragOver:l?C:void 0,onDrop:l?w:void 0,onDragLeave:l?I:void 0,children:[l?z(Ge,{role:\"img\",\"aria-label\":\"Drag column\",children:z(Co,{className:\"mantine-datatable-header-cell-draggable-action-icon\",variant:\"subtle\",size:\"xs\",onClick:H=>{H.stopPropagation()},children:z(go,{})})}):null,z(nr,{className:Fe(\"mantine-datatable-header-cell-sortable-text\",{[j]:f===\"left\",[Z]:f===\"center\",[Y]:f===\"right\"},me,pe),title:k,children:x})]}),c?z(Ge,{className:\"mantine-datatable-header-cell-toggleable-icon\",role:\"img\",\"aria-label\":\"Toggle column\",children:z(Co,{size:\"xs\",variant:\"light\",onClick:A,children:z(ho,{})})}):null,r||d?.columnAccessor===o?z(cr,{children:d?.columnAccessor===o?z(Ge,{className:Fe(\"mantine-datatable-header-cell-sortable-icon\",{\"mantine-datatable-header-cell-sortable-icon-reversed\":d.direction===\"desc\"}),role:\"img\",\"aria-label\":`Sorted ${d.direction===\"desc\"?\"descending\":\"ascending\"}`,children:u?.sorted||z(bo,{})}):z(Ge,{className:\"mantine-datatable-header-cell-sortable-unsorted-icon\",role:\"img\",\"aria-label\":\"Not sorted\",children:u?.unsorted||z(To,{})})}):null,i?z(uo,{filterPopoverProps:g,isActive:!!y,filterPopoverDisableClickOutside:h,children:i}):null]}),m&&o!==\"__selection__\"?z(fo,{accessor:o,columnRef:b}):null]})}import{Checkbox as ur,TableTh as dr}from\"@mantine/core\";import mr from\"clsx\";import{jsx as Do}from\"react/jsx-runtime\";function xo({className:e,style:t,trigger:o,shadowVisible:n,checked:a,indeterminate:r,checkboxProps:l,onChange:c,rowSpan:m,ref:u}){let f=!l.disabled;return Do(dr,{ref:u,className:mr(\"mantine-datatable-header-selector-cell\",{[X]:o===\"cell\"&&f},e),style:t,rowSpan:m,\"data-shadow-visible\":n||void 0,\"data-accessor\":\"__selection__\",onClick:o===\"cell\"&&f?c:void 0,children:Do(ur,{classNames:f?{input:X}:void 0,checked:a,indeterminate:r,onChange:c,...l,disabled:!(c||l.onChange)||l.disabled})})}import{jsx as q,jsxs as $e}from\"react/jsx-runtime\";function So({selectionColumnHeaderRef:e,className:t,style:o,sortStatus:n,sortIcons:a,onSortStatusChange:r,columns:l,defaultColumnProps:c,groups:m,selectionTrigger:u,selectionVisible:f,selectionChecked:p,selectionIndeterminate:d,onSelectionChange:s,selectionCheckboxProps:i,selectorCellShadowVisible:g,selectionColumnClassName:h,selectionColumnStyle:y,withColumnBorders:v=!1,ref:M}){let R=m?bt(m):0,W=R>0?R+1:1,D=f?q(xo,{ref:e,className:h,style:y,trigger:u,shadowVisible:g,checked:p,indeterminate:d,checkboxProps:i,onChange:s,rowSpan:m?W:void 0}):null,{columnsToggle:T,setColumnsToggle:P}=ue(),[b,x]=Dr(!1),k=l.some(C=>C.toggleable),E=k?Object.fromEntries(l.map(({accessor:C,title:w})=>[C,w??de(String(C))])):void 0,L=$e(Cr,{className:yr(\"mantine-datatable-header\",t),style:o,ref:M,onContextMenu:k?C=>{C.preventDefault(),x(w=>!w)}:void 0,children:[m&&Array.from({length:R},(C,w)=>{let S=Tt(m,w);return $e(wo,{children:[w===0&&D,S.map((I,A)=>q(ro,{group:I,maxDepth:R,currentDepth:w,previousGroups:S.slice(0,A),isLastGroup:A===S.length-1,withColumnBorders:v,totalTableColumns:l.length},I.id))]},`group-depth-${w}`)}),$e(wo,{children:[!m&&D,l.map(({hidden:C,...w},S)=>{if(C)return null;let{accessor:I,visibleMediaQuery:A,textAlign:H,width:F,title:U,sortable:fe,draggable:be,toggleable:Te,resizable:ge,titleClassName:te,titleStyle:he,filter:Ce,filterPopoverProps:Q,filterPopoverDisableClickOutside:Je,filtering:je,sortKey:Ze}={...c,...w};return q(yo,{accessor:I,className:te,style:he,visibleMediaQuery:A,textAlign:H,width:F,title:U,sortable:fe,draggable:be,toggleable:Te,resizable:ge&&S<l.length-1,sortStatus:n,sortIcons:a,sortKey:Ze,onSortStatusChange:r,filter:Ce,filterPopoverProps:Q,filterPopoverDisableClickOutside:Je,filtering:je},I)})]})]});return k?$e(br,{position:\"bottom\",withArrow:!0,shadow:\"md\",opened:b,onChange:x,children:[q(gr,{children:L}),q(Tr,{children:q(hr,{children:T.filter(C=>C.toggleable).map(C=>q(fr,{children:q(pr,{classNames:{label:\"mantine-datatable-header-column-toggle-checkbox-label\"},size:\"xs\",label:E[C.accessor],checked:C.toggled,onChange:w=>{P(T.map(S=>S.accessor===C.accessor?{...S,toggled:w.currentTarget.checked}:S))}})},C.accessor))})})]}):L}import{Center as xr,Loader as wr}from\"@mantine/core\";import Sr from\"clsx\";import{jsx as Ro}from\"react/jsx-runtime\";function Po({fetching:e,customContent:t,backgroundBlur:o,size:n,type:a,color:r}){return Ro(xr,{className:Sr(\"mantine-datatable-loader\",{\"mantine-datatable-loader-fetching\":e}),style:[{backdropFilter:o?`blur(${o}px)`:void 0}],children:e&&(t||Ro(wr,{size:n,type:a,color:r}))})}import{Box as Ir,Pagination as Hr,Text as Or,rem as _r}from\"@mantine/core\";import Io from\"clsx\";import{Button as vr,Group as Mr,Menu as kr,MenuDropdown as Er,MenuItem as Nr,MenuTarget as Lr,Text as Eo,rem as ve}from\"@mantine/core\";import Wr from\"clsx\";import{parseThemeColor as Rr}from\"@mantine/core\";function O(e,t,o){return e?Rr({color:typeof e==\"object\"?e[o]:e,theme:t}).value:void 0}function vo({theme:e,c:t,backgroundColor:o,borderColor:n,rowBorderColor:a,stripedColor:r,highlightOnHoverColor:l}){return{\"--mantine-datatable-color-light\":O(t,e,\"light\"),\"--mantine-datatable-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-background-color-dark\":O(o,e,\"dark\"),\"--mantine-datatable-border-color-light\":O(n,e,\"light\"),\"--mantine-datatable-border-color-dark\":O(n,e,\"dark\"),\"--mantine-datatable-row-border-color-light\":O(a,e,\"light\"),\"--mantine-datatable-row-border-color-dark\":O(a,e,\"dark\"),\"--mantine-datatable-striped-color-light\":O(r,e,\"light\"),\"--mantine-datatable-striped-color-dark\":O(r,e,\"dark\"),\"--mantine-datatable-highlight-on-hover-color-light\":O(l,e,\"light\"),\"--mantine-datatable-highlight-on-hover-color-dark\":O(l,e,\"dark\")}}function Xe({theme:e,paginationActiveTextColor:t,paginationActiveBackgroundColor:o}){return{\"--mantine-datatable-pagination-active-text-color-light\":O(t,e,\"light\"),\"--mantine-datatable-pagination-active-text-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-pagination-active-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-pagination-active-background-color-dark\":O(o,e,\"dark\")}}function Mo({theme:e,color:t,backgroundColor:o}){return{\"--mantine-datatable-row-color-light\":O(t,e,\"light\"),\"--mantine-datatable-row-color-dark\":O(t,e,\"dark\"),\"--mantine-datatable-row-background-color-light\":O(o,e,\"light\"),\"--mantine-datatable-row-background-color-dark\":O(o,e,\"dark\")}}import{jsx as yt,jsxs as Pr}from\"react/jsx-runtime\";function ko(){return Pr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[yt(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),yt(\"path\",{d:\"M8 9l4 -4l4 4\"}),yt(\"path\",{d:\"M16 15l-4 4l-4 -4\"})]})}import{jsx as ie,jsxs as Lo}from\"react/jsx-runtime\";var No={xs:ve(22),sm:ve(26),md:ve(32),lg:ve(38),xl:ve(44)};function Wo({size:e,label:t,values:o,value:n,activeTextColor:a,activeBackgroundColor:r,onChange:l}){return Lo(Mr,{gap:\"xs\",children:[ie(Eo,{component:\"div\",size:e,children:t}),Lo(kr,{withinPortal:!0,withArrow:!0,offset:2,classNames:{arrow:\"mantine-datatable-page-size-selector-menu-arrow\"},children:[ie(Lr,{children:ie(vr,{size:e,variant:\"default\",classNames:{section:\"mantine-datatable-page-size-selector-button-icon\"},rightSection:ie(ko,{}),style:[{fontWeight:\"normal\"},c=>({height:No[e],paddingLeft:c.spacing[e],paddingRight:c.spacing[e]})],children:n})}),ie(Er,{children:o.map(c=>{let m=c===n;return ie(Nr,{className:Wr({\"mantine-datatable-page-size-selector-active\":m}),style:[{height:No[e]},m&&(a||r)?u=>Xe({theme:u,paginationActiveTextColor:a,paginationActiveBackgroundColor:r}):void 0],disabled:m,onClick:()=>l(c),children:ie(Eo,{component:\"div\",size:e,children:c})},c)})})]})]})}import{Fragment as Ho,jsx as ee,jsxs as Ar}from\"react/jsx-runtime\";function Oo({className:e,style:t,fetching:o,page:n,onPageChange:a,paginationWithEdges:r,paginationWithControls:l,paginationActiveTextColor:c,paginationActiveBackgroundColor:m,paginationSize:u,loadingText:f,noRecordsText:p,paginationText:d,totalRecords:s,recordsPerPage:i,onRecordsPerPageChange:g,recordsPerPageLabel:h,recordsPerPageOptions:y,recordsLength:v,horizontalSpacing:M,paginationWrapBreakpoint:R,getPaginationControlProps:W,getPaginationItemProps:D,renderPagination:T}){let P;if(s){let S=(n-1)*i+1,I=S+(v||0)-1;P=d({from:S,to:I,totalRecords:s})}else P=o?f:p;let b=s&&i?Math.max(1,Math.ceil(s/i)):1,x=s?(n-1)*(i??0)+1:void 0,k=s?(x??1)+(v??0)-1:void 0,L=!J(({breakpoints:S})=>`(min-width: ${typeof R==\"number\"?`${_r(R)}rem`:S[R]||R})`),C={Text:S=>ee(Or,{component:\"div\",className:\"mantine-datatable-pagination-text\",size:u,...S,children:P}),PageSizeSelector:S=>y?ee(Wo,{activeTextColor:c,activeBackgroundColor:m,size:u,label:h,values:y,value:i,onChange:g,...S}):ee(Ho,{}),Pagination:S=>ee(Hr,{classNames:{root:Io(\"mantine-datatable-pagination-pages\",{\"mantine-datatable-pagination-pages-fetching\":o||!v}),control:\"mantine-datatable-pagination-pages-control\"},style:c||m?I=>Xe({theme:I,paginationActiveTextColor:c,paginationActiveBackgroundColor:m}):void 0,withEdges:r,withControls:l,value:n,onChange:a,size:u,total:b,getControlProps:W,getItemProps:D,...S})},w={state:{paginationSize:u,page:n,totalPages:b,totalRecords:s,recordsPerPage:i,recordsLength:v,fetching:o,from:x,to:k,isWrapped:L},actions:{setPage:S=>a?.(S),setRecordsPerPage:g?S=>g(S):void 0},Controls:C};return ee(Ir,{px:M??\"xs\",py:\"xs\",className:Io(\"mantine-datatable-pagination\",e),style:[{flexDirection:L?\"column\":\"row\"},t],children:typeof T==\"function\"?T(w):Ar(Ho,{children:[ee(C.Text,{}),ee(C.PageSizeSelector,{}),ee(C.Pagination,{})]})})}import{TableTr as Jr}from\"@mantine/core\";import jr from\"clsx\";import{TableTd as zr}from\"@mantine/core\";import Br from\"clsx\";import{jsx as Vr}from\"react/jsx-runtime\";function _o({className:e,style:t,visibleMediaQuery:o,record:n,index:a,onClick:r,onDoubleClick:l,onContextMenu:c,noWrap:m,ellipsis:u,textAlign:f,width:p,accessor:d,render:s,defaultRender:i,customCellAttributes:g}){return J(o)?Vr(zr,{className:Br({[me]:m||u,[pe]:u,[X]:r||l,[_e]:c,[j]:f===\"left\",[Z]:f===\"center\",[Y]:f===\"right\"},e),style:[{width:p,minWidth:p,maxWidth:p},t],onClick:r,onDoubleClick:l,onContextMenu:c,...g?.(n,a),children:s?s(n,a):i?i(n,a,d):ft(n,d)}):null}import{Collapse as Gr,TableTd as Fr,TableTr as Ao}from\"@mantine/core\";import{Fragment as $r,jsx as Me,jsxs as Xr}from\"react/jsx-runtime\";function zo({open:e,colSpan:t,content:o,collapseProps:n}){let{expanded:a,visible:r}=eo(e,n?.transitionDuration);return r?Xr($r,{children:[Me(Ao,{}),Me(Ao,{children:Me(Fr,{className:\"mantine-datatable-row-expansion-cell\",colSpan:t,children:Me(Gr,{in:a,...n,children:Me(\"div\",{className:\"mantine-datatable-row-expansion-cell-content\",children:o()})})})})]}):null}import{Checkbox as Ur,TableTd as Qr}from\"@mantine/core\";import Kr from\"clsx\";import{jsx as Bo}from\"react/jsx-runtime\";function Vo({className:e,style:t,record:o,index:n,trigger:a,onChange:r,withRightShadow:l,checkboxProps:c,getCheckboxProps:m,...u}){let f={...c,...m(o,n)},p=!u.disabled&&!f.disabled,d=s=>{s.stopPropagation(),a===\"cell\"&&p&&r?.(s)};return Bo(Qr,{className:Kr(\"mantine-datatable-row-selector-cell\",{[X]:a===\"cell\"&&p},e),style:t,\"data-shadow-visible\":l||void 0,onClick:d,children:Bo(Ur,{classNames:p?{input:X}:void 0,onChange:r,...u,...f})})}import{Fragment as Go,jsx as Ue,jsxs as Fo}from\"react/jsx-runtime\";function $o({record:e,index:t,columns:o,defaultColumnProps:n,defaultColumnRender:a,selectionTrigger:r,selectionVisible:l,selectionChecked:c,onSelectionChange:m,isRecordSelectable:u,selectionCheckboxProps:f,getSelectionCheckboxProps:p,onClick:d,onDoubleClick:s,onContextMenu:i,onCellClick:g,onCellDoubleClick:h,onCellContextMenu:y,expansion:v,customAttributes:M,color:R,backgroundColor:W,className:D,style:T,selectorCellShadowVisible:P,selectionColumnClassName:b,selectionColumnStyle:x,rowFactory:k}){let E=Fo(Go,{children:[l&&Ue(Vo,{className:b,style:x,record:e,index:t,trigger:r,withRightShadow:P,checked:c,disabled:!m||(u?!u(e,t):!1),onChange:m,checkboxProps:f,getCheckboxProps:p}),o.map(({hidden:w,hiddenContent:S,...I},A)=>{if(w||S)return null;let{accessor:H,visibleMediaQuery:F,textAlign:U,noWrap:fe,ellipsis:be,width:Te,render:ge,cellsClassName:te,cellsStyle:he,customCellAttributes:Ce}={...n,...I};return Ue(_o,{className:typeof te==\"function\"?te(e,t):te,style:he?.(e,t),visibleMediaQuery:F,record:e,index:t,onClick:g?Q=>g({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,onDoubleClick:h?Q=>h({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,onContextMenu:y?Q=>y({event:Q,record:e,index:t,column:I,columnIndex:A}):void 0,accessor:H,textAlign:U,noWrap:fe,ellipsis:be,width:Te,render:ge,defaultRender:a,customCellAttributes:Ce},H)})]}),L=v&&Ue(zo,{colSpan:o.filter(({hidden:w})=>!w).length+(l?1:0),open:v.isRowExpanded(e),content:v.content({record:e,index:t}),collapseProps:v.collapseProps}),C=Zr({record:e,index:t,selectionChecked:c,onClick:d,onDoubleClick:s,onContextMenu:i,expansion:v,customAttributes:M,color:R,backgroundColor:W,className:D,style:T});return k?k({record:e,index:t,rowProps:C,children:E,expandedElement:L}):Fo(Go,{children:[Ue(Jr,{...C,children:E}),L]})}function Zr({record:e,index:t,selectionChecked:o,onClick:n,onDoubleClick:a,onContextMenu:r,expansion:l,customAttributes:c,color:m,backgroundColor:u,className:f,style:p}){return{className:jr(\"mantine-datatable-row\",{[X]:n||a||l?.isExpandable({record:e,index:t})&&l?.expandOnClick},{[_e]:r},typeof f==\"function\"?f(e,t):f),\"data-selected\":o||void 0,onClick:d=>{if(l){let{isExpandable:s,isRowExpanded:i,expandOnClick:g,expandRow:h,collapseRow:y}=l;s({record:e,index:t})&&g&&(i(e)?y(e):h(e))}n?.({event:d,record:e,index:t})},onDoubleClick:a?d=>a({event:d,record:e,index:t}):void 0,onContextMenu:r?d=>r({event:d,record:e,index:t}):void 0,style:[m||u?d=>{let s=m?.(e,t),i=u?.(e,t);return Mo({theme:d,color:s,backgroundColor:i})}:void 0,p?.(e,t)],...c?.(e,t)??{}}}import{Box as Xo,ScrollArea as Yr}from\"@mantine/core\";import Qe from\"clsx\";import{jsx as Ke,jsxs as qr}from\"react/jsx-runtime\";function Uo({leftShadowBehind:e,rightShadowBehind:t,onScrollPositionChange:o,children:n,viewportRef:a,scrollAreaProps:r}){return qr(Yr,{...r,viewportRef:a,classNames:{root:\"mantine-datatable-scroll-area\",scrollbar:\"mantine-datatable-scroll-area-scrollbar\",thumb:\"mantine-datatable-scroll-area-thumb\",corner:\"mantine-datatable-scroll-area-corner\"},onScrollPositionChange:o,children:[n,Ke(Xo,{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-top-shadow\")}),Ke(\"div\",{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-left-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":e})}),Ke(\"div\",{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-right-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":t})}),Ke(Xo,{className:Qe(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-bottom-shadow\")})]})}import{jsx as B,jsxs as Jo}from\"react/jsx-runtime\";function ll({withTableBorder:e,borderRadius:t,textSelectionDisabled:o,height:n=\"100%\",minHeight:a,maxHeight:r,shadow:l,verticalAlign:c=\"center\",fetching:m,columns:u,storeColumnsKey:f,groups:p,pinFirstColumn:d,pinLastColumn:s,defaultColumnProps:i,defaultColumnRender:g,idAccessor:h=\"id\",records:y,selectionTrigger:v=\"checkbox\",selectedRecords:M,onSelectedRecordsChange:R,selectionColumnClassName:W,selectionColumnStyle:D,isRecordSelectable:T,selectionCheckboxProps:P,allRecordsSelectionCheckboxProps:b={\"aria-label\":\"Select all records\"},getRecordSelectionCheckboxProps:x=(V,xe)=>({\"aria-label\":`Select record ${xe+1}`}),sortStatus:k,sortIcons:E,onSortStatusChange:L,horizontalSpacing:C,page:w,onPageChange:S,totalRecords:I,recordsPerPage:A,onRecordsPerPageChange:H,recordsPerPageOptions:F,recordsPerPageLabel:U=\"Records per page\",paginationWithEdges:fe,paginationWithControls:be,paginationActiveTextColor:Te,paginationActiveBackgroundColor:ge,paginationSize:te=\"sm\",paginationText:he=({from:V,to:xe,totalRecords:et})=>`${V} - ${xe} / ${et}`,paginationWrapBreakpoint:Ce=\"sm\",getPaginationControlProps:Q=V=>V===\"previous\"?{\"aria-label\":\"Previous page\"}:V===\"next\"?{\"aria-label\":\"Next page\"}:{},getPaginationItemProps:Je,renderPagination:je,loaderBackgroundBlur:Ze,customLoader:jo,loaderSize:Zo,loaderType:Yo,loaderColor:qo,loadingText:en=\"...\",emptyState:tn,noRecordsText:wt=\"No records\",noRecordsIcon:on,highlightOnHover:nn,striped:an,noHeader:rn,onRowClick:ln,onRowDoubleClick:sn,onRowContextMenu:cn,onCellClick:un,onCellDoubleClick:dn,onCellContextMenu:mn,onScroll:pn,onScrollToTop:fn,onScrollToBottom:bn,onScrollToLeft:Tn,onScrollToRight:gn,c:hn,backgroundColor:Cn,borderColor:yn,rowBorderColor:Dn,stripedColor:xn,highlightOnHoverColor:wn,rowColor:Sn,rowBackgroundColor:Rn,rowExpansion:Pn,rowClassName:vn,rowStyle:Mn,customRowAttributes:kn,scrollViewportRef:En,scrollAreaProps:Nn,tableRef:Ln,bodyRef:Wn,m:In,my:Hn,mx:On,mt:_n,mb:An,ml:zn,mr:Bn,className:Vn,classNames:ye,style:Gn,styles:De,rowFactory:Fn,tableWrapper:Ye,...qe}){let V=al(()=>p?Pe(p):u,[u,p]),[xe,et]=rl(!1),{refs:$,onScroll:$n}=$t({scrollCallbacks:{onScroll:pn,onScrollToTop:fn,onScrollToBottom:bn,onScrollToLeft:Tn,onScrollToRight:gn},withRowBorders:qe.withRowBorders}),tt=zt({key:f,columns:V,headerRef:$.header,scrollViewportRef:$.scrollViewport,onFixedLayoutChange:et}),Xn=Qo($.table,Ln),Un=Qo($.scrollViewport,En),Qn=Zt({rowExpansion:Pn,records:y,idAccessor:h}),ke=xt(!1),St=xt(w),ot=xt(y),Kn=Dt(N=>{ke.current=!0,ot.current=y,S(N)},[S,y]);ol(()=>{St.current!==w&&(ke.current=!0,ot.current=y,St.current=w)},[w,y]);let we=y?.length;nl(()=>{if(!ke.current||m||y===ot.current)return;let N=$.scrollViewport.current;if(!N)return;let oe=requestAnimationFrame(()=>{N.scrollTo({top:0,left:0}),ke.current=!1});return()=>cancelAnimationFrame(oe)},[m,y,$.scrollViewport]);let Rt=y?.map(N=>_(N,h)),se=!!M,Se=M?.map(N=>_(N,h)),Pt=Rt!==void 0&&Se!==void 0&&Se.length>0,nt=T?y?.filter(T):y,Ee=nt?.map(N=>_(N,h)),Ne=Pt&&Ee.every(N=>Se.includes(N)),Jn=Pt&&Ee.some(N=>Se.includes(N)),jn=Dt(()=>{M&&R&&R(Ne?M.filter(N=>!Ee.includes(_(N,h))):He([...M,...nt],N=>_(N,h)))},[Ne,h,R,Ee,nt,M]),{lastSelectionChangeIndex:Le,setLastSelectionChangeIndex:Zn}=Xt(Rt),at=se&&!d,Yn={m:In,my:Hn,mx:On,mt:_n,mb:An,ml:zn,mr:Bn},qn=Dt(({children:N})=>Ye?Ye({children:N}):N,[Ye]);return B(it,{...tt,children:Jo(el,{ref:$.root,...Yn,className:Ko(\"mantine-datatable\",{\"mantine-datatable-with-border\":e},Vn,ye?.root),style:[N=>({...vo({theme:N,c:hn,backgroundColor:Cn,borderColor:yn,rowBorderColor:Dn,stripedColor:xn,highlightOnHoverColor:wn}),borderRadius:N.radius[t]||t,boxShadow:N.shadows[l]||l,height:n,minHeight:a,maxHeight:r}),Gn,De?.root,{position:\"relative\"}],children:[B(Uo,{viewportRef:Un,leftShadowBehind:se||!!d,rightShadowBehind:s,onScrollPositionChange:$n,scrollAreaProps:Nn,children:B(qn,{children:Jo(tl,{ref:Xn,horizontalSpacing:C,className:Ko(\"mantine-datatable-table\",{[to]:o,\"mantine-datatable-vertical-align-top\":c===\"top\",\"mantine-datatable-vertical-align-bottom\":c===\"bottom\",\"mantine-datatable-pin-last-column\":s,\"mantine-datatable-selection-column-visible\":se,\"mantine-datatable-pin-first-column\":d,\"mantine-datatable-resizable-columns\":tt.hasResizableColumns&&xe},ye?.table),style:{...De?.table},\"data-striped\":we&&an||void 0,\"data-highlight-on-hover\":nn||void 0,...qe,children:[rn?null:B(it,{...tt,children:B(So,{ref:$.header,selectionColumnHeaderRef:$.selectionColumnHeader,className:ye?.header,style:De?.header,columns:V,defaultColumnProps:i,groups:p,sortStatus:k,sortIcons:E,onSortStatusChange:L,selectionTrigger:v,selectionVisible:se,selectionChecked:Ne,selectionIndeterminate:Jn&&!Ne,onSelectionChange:jn,selectionCheckboxProps:{...P,...b},selectorCellShadowVisible:at,selectionColumnClassName:W,selectionColumnStyle:D,withColumnBorders:qe.withColumnBorders})}),B(\"tbody\",{ref:Wn,children:we?y.map((N,oe)=>{let rt=_(N,h),lt=Se?.includes(rt)||!1,vt;return R&&M&&(vt=ea=>{if(ea.nativeEvent.shiftKey&&Le!==null){let ce=y.filter(oe>Le?(ne,ae)=>ae>=Le&&ae<=oe&&(T?T(ne,ae):!0):(ne,ae)=>ae>=oe&&ae<=Le&&(T?T(ne,ae):!0));R(lt?Jt(M,ce,ne=>_(ne,h)):He([...M,...ce],ne=>_(ne,h)))}else R(lt?M.filter(ce=>_(ce,h)!==rt):He([...M,N],ce=>_(ce,h)));Zn(oe)}),B($o,{record:N,index:oe,columns:V,defaultColumnProps:i,defaultColumnRender:g,selectionTrigger:v,selectionVisible:se,selectionChecked:lt,onSelectionChange:vt,isRecordSelectable:T,selectionCheckboxProps:P,getSelectionCheckboxProps:x,onClick:ln,onDoubleClick:sn,onCellClick:un,onCellDoubleClick:dn,onContextMenu:cn,onCellContextMenu:mn,expansion:Qn,color:Sn,backgroundColor:Rn,className:vn,style:Mn,customAttributes:kn,selectorCellShadowVisible:at,selectionColumnClassName:W,selectionColumnStyle:D,idAccessor:h,rowFactory:Fn},rt)}):B(Nt,{})}),V.some(({footer:N})=>N)&&B(ao,{ref:$.footer,className:ye?.footer,style:De?.footer,columns:V,defaultColumnProps:i,selectionVisible:se,selectorCellShadowVisible:at})]})})}),!!(w&&we)&&B(Oo,{className:ye?.pagination,style:De?.pagination,horizontalSpacing:C,fetching:m,page:w,onPageChange:Kn,totalRecords:I,recordsPerPage:A,onRecordsPerPageChange:H,recordsPerPageOptions:F,recordsPerPageLabel:U,paginationWithEdges:fe,paginationWithControls:be,paginationActiveTextColor:Te,paginationActiveBackgroundColor:ge,paginationSize:te,paginationText:he,paginationWrapBreakpoint:Ce,getPaginationControlProps:Q,getPaginationItemProps:Je,noRecordsText:wt,loadingText:en,recordsLength:we,renderPagination:je}),B(Po,{fetching:m,backgroundBlur:Ze,customContent:jo,size:Zo,type:Yo,color:qo}),B(Wt,{icon:on,text:wt,active:!m&&!we,children:tn})]})})}import{TableTr as il}from\"@mantine/core\";import{useMergedRef as sl}from\"@mantine/hooks\";import{useEffect as cl,useRef as ul}from\"react\";import{jsx as ml}from\"react/jsx-runtime\";function dl({className:e,children:t,isDragging:o,ref:n,...a}){let r=ul(null),l=sl(r,n);return cl(()=>{if(!r.current||!o)return;let f=r.current.parentElement.parentElement.children[0].children[0];for(let p=0;p<f.children.length;p++){let s=f.children[p].getBoundingClientRect(),i=r.current.children[p];i.style.height=s.height+\"px\",i.style.width=s.width+\"px\",i.style.minWidth=s.width+\"px\",i.style.maxWidth=s.width+\"px\"}},[o,t]),ml(il,{\"data-is-dragging\":o,ref:l,...a,className:e,children:t})}export{ll as DataTable,dl as DataTableDraggableRow,Oe as calculateColSpan,Jt as differenceBy,Pe as flattenColumns,Tt as getGroupsAtDepth,bt as getMaxGroupDepth,_ as getRecordId,ft as getValueAtPath,de as humanize,jt as needsRightBorder,ui as reorderRecords,di as swapRecords,He as uniqBy,zt as useDataTableColumns};\n//# sourceMappingURL=index.mjs.map","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Skeleton,\n Stack,\n Stepper,\n Textarea,\n TextInput\n} from \"@mantine/core\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface UpdateModalProps<T> {\n fields: Field<T>[];\n steps?: StepConfig[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n id: string | number;\n}\n\nexport function UpdateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n id,\n steps,\n}: UpdateModalProps<T>) {\n const [active, setActive] = useState<number>(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n\n const { data, isLoading: isDataLoading } = useGetOne<T>(\n apiPath,\n queryKey,\n id,\n );\n const {\n mutateAsync: update,\n isError: isUpdateError,\n error: updateError,\n isPending,\n } = useUpdateOne<T>(apiPath, queryKey);\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (field.defaultValue ?? (false as T[keyof T]))\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n const isReq = typeof field.required === \"function\"\n ? field.required(values)\n : !!field.required;\n if (!isReq) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n useEffect(() => {\n if (data) {\n const values = { ...data } as T;\n fields.forEach((field) => {\n const key = field.id as keyof T;\n if (field.type === \"boolean\" && values[key] === null) {\n values[key] = false as T[keyof T];\n } else if (field.type === \"date\" && values[key]) {\n values[key] = new Date(values[key] as unknown as string) as unknown as T[keyof T];\n } else if (values[key] === null) {\n values[key] = \"\" as T[keyof T];\n }\n });\n form.initialize(values);\n form.setValues(values);\n }\n }, [data]);\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), id } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isUpdateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={updateError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {updateError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n {isDataLoading ? (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array(fields.length)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-field-${index}`} height={35} />\n ))}\n <Group mt=\"md\" justify=\"end\">\n <Skeleton width={100} height={36} />\n <Skeleton width={100} height={36} />\n </Group>\n </Stack>\n ) : (\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n await update({\n ...values,\n id,\n } as T);\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isUpdateError) {\n setActive(active + 1);\n }\n } else {\n if (!isUpdateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n )}\n </>\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { useEffect, useState } from \"react\";\n\nexport interface DeleteModalProps<T> {\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n selectedRecords: T[];\n}\n\nexport function DeleteModal<T extends BaseEntity>({\n queryKey,\n apiPath,\n onClose,\n selectedRecords,\n}: DeleteModalProps<T>) {\n const {\n mutateAsync: del,\n isError: isDeleteError,\n error: deleteError,\n isPending: isDeletePending,\n } = useDeleteOne(apiPath, queryKey);\n\n const [records, setRecords] = useState<T[]>(selectedRecords);\n const [isDeleting, setIsDeleting] = useState(false);\n const isLoading = isDeleting || isDeletePending;\n\n useEffect(() => {\n if (!records.length) {\n onClose();\n }\n }, [onClose, records]);\n\n if (!records.length) {\n return <></>;\n }\n\n return (\n <>\n {isDeleteError && deleteError.message && (\n <Alert variant=\"outline\" color=\"red\" title={deleteError.name}>\n {deleteError.message}\n </Alert>\n )}\n\n <Text>\n {records.length === 1\n ? `Soll ${records.length} Eintrag wirklich gelöscht werden?`\n : `Sollen ${records.length} Einträge wirklich gelöscht werden?`}\n </Text>\n <Group mt=\"md\" justify=\"end\">\n <Button onClick={onClose} variant=\"outline\" disabled={isLoading}>\n Abbrechen\n </Button>\n <Button\n color=\"red\"\n loading={isLoading}\n onClick={async () => {\n setIsDeleting(true);\n try {\n await Promise.all(records.map((record) => del(record.id)));\n setRecords([]);\n } finally {\n setIsDeleting(false);\n }\n }}\n >\n Löschen\n </Button>\n </Group>\n </>\n );\n}\n","import { useState } from \"react\";\n\nexport function usePersistentState<T>(\n initialValue: T,\n key: string,\n): [T, (value: T) => void] {\n const [state, setState] = useState<T>(() => {\n const storedValue = localStorage.getItem(`use_persistent_storage_${key}`);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n });\n\n const setStateWrapper = (newState: T) => {\n setState(newState);\n localStorage.setItem(\n `use_persistent_storage_${key}`,\n JSON.stringify(newState),\n );\n };\n\n return [state, setStateWrapper];\n}\n","type ColumnType = \"string\" | \"number\" | \"date\" | \"mixed\";\n\nconst DATE_PATTERNS = [\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/,\n /^\\d{4}-\\d{2}-\\d{2}$/,\n /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\n /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\n];\n\nconst detectColumnType = <T>(data: T[], field: keyof T): ColumnType => {\n const nonNullValues = data\n .map((item) => item[field])\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\n if (nonNullValues.length === 0) return \"string\";\n\n const sample = nonNullValues.slice(0, 100);\n const types = { string: 0, number: 0, date: 0 };\n\n sample.forEach((value) => {\n if (typeof value === \"number\") {\n types.number++;\n } else if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed !== \"\" && !isNaN(Number(trimmed)) && !isNaN(parseFloat(trimmed))) {\n types.number++;\n return;\n }\n if (DATE_PATTERNS.some((pattern) => pattern.test(trimmed))) {\n const dateValue = new Date(trimmed);\n if (!isNaN(dateValue.getTime())) {\n types.date++;\n return;\n }\n }\n types.string++;\n } else if (value instanceof Date) {\n types.date++;\n } else {\n types.string++;\n }\n });\n\n const total = types.string + types.number + types.date;\n if (types.date / total >= 0.6) return \"date\";\n if (types.number / total >= 0.6) return \"number\";\n if (types.string / total >= 0.6) return \"string\";\n return \"mixed\";\n};\n\nfunction toSortValue(value: unknown, columnType: ColumnType): string | number | null {\n switch (columnType) {\n case \"date\":\n if (typeof value === \"string\") {\n const d = new Date(value.trim());\n return isNaN(d.getTime()) ? null : d.getTime();\n }\n if (value instanceof Date) return value.getTime();\n return null;\n case \"number\":\n if (typeof value === \"number\") return value;\n const num = parseFloat(String(value).trim());\n return isNaN(num) ? null : num;\n case \"string\":\n return (typeof value === \"string\" ? value : String(value)).toLowerCase().trim();\n default:\n return String(value).toLowerCase().trim();\n }\n}\n\nexport const sortData = <T>(\n data: T[],\n field: keyof T,\n direction: \"asc\" | \"desc\" = \"asc\",\n): T[] => {\n if (!data || data.length === 0) return [];\n\n const columnType = detectColumnType(data, field);\n\n return [...data].sort((a, b) => {\n const aValue = a[field];\n const bValue = b[field];\n\n const aIsNull = aValue === null || aValue === undefined || aValue === \"\";\n const bIsNull = bValue === null || bValue === undefined || bValue === \"\";\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return direction === \"asc\" ? -1 : 1;\n if (bIsNull) return direction === \"asc\" ? 1 : -1;\n\n const aSortValue = toSortValue(aValue, columnType);\n const bSortValue = toSortValue(bValue, columnType);\n\n if (aSortValue === null && bSortValue === null) return 0;\n if (aSortValue === null) return direction === \"asc\" ? 1 : -1;\n if (bSortValue === null) return direction === \"asc\" ? -1 : 1;\n\n if (aSortValue < bSortValue) return direction === \"asc\" ? -1 : 1;\n if (aSortValue > bSortValue) return direction === \"asc\" ? 1 : -1;\n return 0;\n });\n};\n","import { ActionIcon, Box, Checkbox, Collapse, Divider, Group, Menu, Pagination, Select, Stack, Text } from \"@mantine/core\";\nimport { BaseEntity } from \"../Hooks/useApi\";\nimport { Action, Field } from \"./DataTableInner\";\nimport React, { useState } from \"react\";\nimport { IconChevronDown, IconDotsVertical, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\n\ninterface SortConfig {\n field: string;\n direction: \"asc\" | \"desc\";\n onSortChange: (field: string, direction: \"asc\" | \"desc\") => void;\n}\n\ninterface MobileCardListProps<T extends BaseEntity> {\n records: T[];\n fields: Field<T>[];\n selection?: boolean;\n selectedRecords?: T[];\n onSelectedRecordsChange?: (records: T[]) => void;\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n actions?: Action<T>[];\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n pagination?: {\n totalRecords: number;\n recordsPerPage: number;\n page: number;\n onPageChange: (page: number) => void;\n recordsPerPageOptions?: number[];\n onRecordsPerPageChange?: (size: number) => void;\n };\n sort?: SortConfig;\n rowExpansion?: {\n content: (record: T) => React.ReactNode;\n };\n}\n\nfunction getNestedValue(record: Record<string, unknown>, accessor: string): unknown {\n return accessor.split(\".\").reduce<unknown>((obj, key) => {\n if (obj && typeof obj === \"object\" && key in (obj as Record<string, unknown>)) {\n return (obj as Record<string, unknown>)[key];\n }\n return undefined;\n }, record);\n}\n\nfunction renderFieldValue<T extends BaseEntity>(record: T, field: Field<T>): React.ReactNode {\n const column = field.column;\n\n if (column.render) {\n return column.render(record, 0);\n }\n\n const accessor = (column.accessor ?? field.id) as string;\n const value = getNestedValue(record as unknown as Record<string, unknown>, accessor);\n\n if (value === null || value === undefined) {\n return <Text c=\"dimmed\">–</Text>;\n }\n\n if (typeof value === \"boolean\") {\n return <Text fz=\"sm\">{value ? \"Ja\" : \"Nein\"}</Text>;\n }\n\n return <Text fz=\"sm\">{String(value)}</Text>;\n}\n\nfunction MobileCardRow<T extends BaseEntity>({ field, record }: { field: Field<T>; record: T }) {\n return (\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"center\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\">\n {(field.column.title as string) ?? field.id}\n </Text>\n <Box ta=\"right\" fz=\"sm\">\n {renderFieldValue(record, field)}\n </Box>\n </Group>\n );\n}\n\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n selection,\n selectedRecords = [],\n onSelectedRecordsChange,\n onRowClick,\n actions,\n canUpdate,\n canDelete,\n pagination,\n sort,\n rowExpansion,\n}: MobileCardListProps<T>) {\n const [expandedIds, setExpandedIds] = useState<Set<string | number>>(new Set());\n\n const toggleExpansion = (id: string | number) => {\n setExpandedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n };\n const listFields = fields.filter((f) => f.list && f.column);\n\n const sortOptions = listFields\n .filter((f) => f.column.sortable !== false)\n .reduce<{ value: string; label: string }[]>((acc, f) => {\n const value = (f.column.accessor ?? f.id) as string;\n if (!acc.some((o) => o.value === value)) {\n acc.push({ value, label: (f.column.title as string) ?? f.id });\n }\n return acc;\n }, []);\n\n const isSelected = (record: T) =>\n selectedRecords.some((r) => r.id === record.id);\n\n const toggleSelection = (record: T) => {\n if (!onSelectedRecordsChange) return;\n if (isSelected(record)) {\n onSelectedRecordsChange(selectedRecords.filter((r) => r.id !== record.id));\n } else {\n onSelectedRecordsChange([...selectedRecords, record]);\n }\n };\n\n const handleCardClick = (record: T, index: number, event: React.MouseEvent) => {\n if (onRowClick) {\n onRowClick({ record, index, event });\n } else if (selection) {\n toggleSelection(record);\n }\n };\n\n if (records.length === 0) {\n return (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n );\n }\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {sort && sortOptions.length > 0 && (\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Select\n data={sortOptions}\n value={sort.field}\n onChange={(value) => value && sort.onSortChange(value, sort.direction)}\n allowDeselect={false}\n style={{ flex: 1 }}\n />\n <ActionIcon\n variant=\"filled\"\n size=\"input-sm\"\n onClick={() => sort.onSortChange(sort.field, sort.direction === \"asc\" ? \"desc\" : \"asc\")}\n >\n {sort.direction === \"asc\" ? <IconSortAscending size={18} /> : <IconSortDescending size={18} />}\n </ActionIcon>\n </Group>\n )}\n\n {records.map((record, index) => {\n const selected = isSelected(record);\n const clickable = !!onRowClick || !!selection;\n\n const recordKey = record.id ?? index;\n const expanded = expandedIds.has(recordKey);\n\n return (\n <React.Fragment key={recordKey}>\n <Box\n bg={selected ? \"var(--mantine-primary-color-light)\" : \"var(--mantine-color-body)\"}\n bd={!selected ? \"1px solid var(--mantine-color-default-border)\" : undefined}\n style={{\n borderRadius: \"var(--mantine-radius-md)\",\n overflow: \"hidden\",\n }}\n >\n <Box\n w=\"100%\"\n style={{ cursor: clickable || rowExpansion ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (rowExpansion && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {(selection || rowExpansion || (actions && actions.length > 0)) && (\n <Group px=\"sm\" pt=\"sm\" justify=\"space-between\">\n <Group gap=\"xs\">\n {rowExpansion && (\n <Box\n c=\"var(--mantine-primary-color-filled)\"\n style={{ cursor: \"pointer\", display: \"flex\", alignItems: \"center\" }}\n onClick={(e: React.MouseEvent) => { e.stopPropagation(); toggleExpansion(recordKey); }}\n >\n <IconChevronDown\n size={16}\n style={{ transform: expanded ? \"rotate(0deg)\" : \"rotate(-90deg)\", transition: \"transform 200ms\" }}\n />\n </Box>\n )}\n {selection && (\n <Checkbox\n checked={selected}\n onChange={() => toggleSelection(record)}\n onClick={(e) => e.stopPropagation()}\n />\n )}\n </Group>\n {actions && actions.length > 0 && (() => {\n const filteredActions = actions.filter((action) => {\n if (action.label === \"Bearbeiten\" && canUpdate && !canUpdate(record)) return false;\n if (action.label === \"Löschen\" && canDelete && !canDelete(record)) return false;\n return true;\n });\n if (filteredActions.length === 0) return null;\n return (\n <Menu shadow=\"md\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"subtle\"\n color=\"gray\"\n size=\"sm\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <IconDotsVertical size={16} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n {filteredActions.map((action, actionIndex) => (\n <Menu.Item\n key={`card_action_${actionIndex}`}\n leftSection={action.icon}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n action.onClick([record]);\n }}\n >\n {action.label}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n })()}\n </Group>\n )}\n {listFields.map((field, fieldIndex) => (\n <React.Fragment key={field.id}>\n {fieldIndex > 0 && <Divider />}\n <MobileCardRow field={field} record={record} />\n </React.Fragment>\n ))}\n </Box>\n {rowExpansion && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion.content(record)}\n </Box>\n </Collapse>\n )}\n </Box>\n </React.Fragment>\n );\n })}\n\n {pagination && pagination.totalRecords > pagination.recordsPerPage && (\n <Stack gap=\"xs\" mt=\"sm\">\n <Group justify=\"center\">\n <Pagination\n total={Math.ceil(pagination.totalRecords / pagination.recordsPerPage)}\n value={pagination.page}\n onChange={pagination.onPageChange}\n size=\"sm\"\n />\n </Group>\n {pagination.recordsPerPageOptions && pagination.onRecordsPerPageChange && (\n <Group justify=\"center\" gap=\"xs\">\n <Text fz=\"xs\" c=\"dimmed\">Einträge pro Seite:</Text>\n <Select\n data={pagination.recordsPerPageOptions.map((o) => ({ value: String(o), label: String(o) }))}\n value={String(pagination.recordsPerPage)}\n onChange={(v) => v && pagination.onRecordsPerPageChange!(Number(v))}\n allowDeselect={false}\n size=\"xs\"\n w={70}\n />\n </Group>\n )}\n </Stack>\n )}\n </Stack>\n );\n}\n","import { ActionIcon, Alert, Box, Button, Group, Menu, Modal, Skeleton, Stack, Tabs, Title } from \"@mantine/core\";\nimport { BaseEntity, useGetAll } from \"../Hooks/useApi\";\nimport React, { useEffect, useState } from \"react\";\nimport { CreateModal } from \"./CreateModal\";\nimport { IconCaretDownFilled, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus } from \"mantine-datatable\";\nimport { UpdateModal } from \"./UpdateModal.tsx\";\nimport { DeleteModal } from \"./DeleteModal.tsx\";\nimport { useDataTable } from \"../Hooks/useDataTable.ts\";\nimport { usePersistentState } from \"../Hooks/usePersistentState.ts\";\nimport { sortData } from \"../utils/sort\";\nimport { MobileCardList } from \"./MobileCardList\";\n\ntype DatesRangeValue = [string | null, string | null];\n\ninterface DateFilter {\n id: string | number;\n type: \"date\";\n value?: DatesRangeValue;\n}\n\ninterface StringFilter {\n id: string | number;\n type: \"query\";\n value?: string | string[];\n}\n\ninterface BooleanFilter {\n id: string | number;\n type: \"boolean\";\n value?: boolean;\n}\n\ntype Filter = DateFilter | StringFilter | BooleanFilter;\n\nexport type FieldType =\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"custom\"\n | \"date\"\n | \"textarea\";\n\nexport interface Field<T> {\n id: string;\n defaultValue?: T[keyof T];\n required?: boolean | ((values: Partial<T>) => boolean);\n step?: number;\n list: boolean;\n create: boolean;\n update: boolean;\n delete: boolean;\n type?: FieldType;\n placeholder?: string;\n conditional?: (values: Partial<T>) => boolean;\n render?: (\n values: T,\n setValues: (values: Partial<T>) => void,\n hideButtons: (value: boolean) => void,\n validationProps?: {\n error?: string;\n required?: boolean;\n },\n ) => React.ReactNode;\n column: DataTableColumn<T>;\n}\n\nexport interface Action<T extends BaseEntity> {\n icon?: React.ReactNode;\n label: string;\n onClick: (records: T[]) => void;\n disabled?: (records: T[]) => boolean;\n}\n\nexport interface TabOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n queryParams?: Record<string, string | number | boolean | null>;\n apiPath?: string;\n mutationApiPath?: string;\n}\n\nexport interface StepConfig {\n label: string;\n description?: string;\n}\n\nexport interface DataTableProps<T extends BaseEntity> {\n title?: string | React.ReactNode;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n mutationApiPath?: string;\n queryParams?: Record<string, string | number | boolean | null>;\n filters?: Filter[];\n buttons?: React.ReactNode[];\n createButtonText?: string;\n actions?: Action<T>[];\n selection?: boolean;\n pagination?: boolean;\n steps?: StepConfig[];\n fields: Field<T>[];\n defaultSort?: {\n field: string;\n direction: \"asc\" | \"desc\";\n };\n onSortChange?: (field: string, direction: \"asc\" | \"desc\") => void;\n tabs?: TabOption[];\n defaultTab?: string;\n activeTab?: string | null;\n onActiveTabChange?: (tabValue: string | null) => void;\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n showRefresh?: boolean;\n rowExpansion?: {\n allowMultiple?: boolean;\n content: (record: T) => React.ReactNode;\n expanded?: {\n recordIds: unknown[];\n onRecordIdsChange: (recordIds: unknown[]) => void;\n };\n };\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n mobileCards?: boolean;\n}\n\nconst PAGE_SIZES = [10, 15, 50, 100, 500];\n\nexport function DataTableInner<T extends BaseEntity>({\n title,\n queryKey,\n connectedQueryKeys,\n apiPath,\n mutationApiPath,\n buttons,\n fields,\n selection,\n pagination,\n filters,\n actions,\n steps,\n defaultSort,\n onSortChange,\n createButtonText,\n queryParams,\n tabs,\n defaultTab,\n activeTab: controlledActiveTab,\n onActiveTabChange,\n canUpdate,\n canDelete,\n showRefresh = true,\n rowExpansion,\n onRowClick,\n mobileCards = false,\n}: DataTableProps<T>) {\n const [internalActiveTab, setInternalActiveTab] = useState<string | null>(\n defaultTab || (tabs && tabs.length > 0 ? tabs[0].value : null),\n );\n\n const activeTab =\n controlledActiveTab !== undefined ? controlledActiveTab : internalActiveTab;\n\n const handleTabChange = (value: string | null) => {\n if (controlledActiveTab === undefined) {\n setInternalActiveTab(value);\n }\n if (onActiveTabChange) {\n onActiveTabChange(value);\n }\n };\n\n const currentTab = tabs?.find((tab) => tab.value === activeTab);\n const currentTabParams = currentTab?.queryParams || {};\n const effectiveApiPath = currentTab?.apiPath ?? apiPath;\n const effectiveMutationApiPath = currentTab?.mutationApiPath ?? mutationApiPath ?? effectiveApiPath;\n const allQueryParams = { ...queryParams, ...currentTabParams };\n\n const queryString: string = allQueryParams\n ? \"?\" +\n Object.entries(allQueryParams)\n .filter(([, value]) => value !== null && value !== undefined)\n .map(([key, value]) => `${key}=${encodeURIComponent(value ?? \"\")}`)\n .join(\"&\")\n : \"\";\n\n const effectiveQueryKey = activeTab ? [...queryKey, activeTab] : queryKey;\n\n const {\n data: allData,\n isLoading,\n isError,\n isRefetching,\n refetch,\n } = useGetAll<T>(effectiveApiPath + queryString, effectiveQueryKey);\n\n const { queryClient } = useDataTable();\n\n useEffect(() => {\n if (!allData || !Array.isArray(allData)) return;\n\n connectedQueryKeys?.forEach((connectedQueryKey) =>\n queryClient.invalidateQueries({ queryKey: connectedQueryKey }),\n );\n }, [allData, connectedQueryKeys, queryClient]);\n\n const filteredData =\n (!allData || !Array.isArray(allData))\n ? []\n : (!filters || filters.length === 0)\n ? allData\n : allData.filter((record: T) => filters.every((filter) => {\n if (filter.value === undefined) return true;\n\n const key = filter.id as keyof T;\n if (filter.type === \"query\") {\n const recordValue = record[key];\n if (Array.isArray(filter.value)) {\n if (Array.isArray(recordValue)) {\n return recordValue.some((item: unknown) => {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filter.value!.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (\"id\" in obj && filter.value!.includes(obj.id as string)) {\n return true;\n }\n for (const prop in obj) {\n const propValue = obj[prop];\n if (\n typeof propValue === \"string\" &&\n filter.value!.includes(propValue)\n ) {\n return true;\n }\n if (\n propValue &&\n typeof propValue === \"object\" &&\n \"id\" in (propValue as Record<string, unknown>)\n ) {\n if (filter.value!.includes((propValue as Record<string, unknown>).id as string)) {\n return true;\n }\n }\n }\n }\n return false;\n });\n }\n if (\n recordValue &&\n typeof recordValue === \"object\" &&\n \"id\" in recordValue\n ) {\n return filter.value.includes((recordValue as Record<string, unknown>).id as string);\n }\n return false;\n }\n return (\n typeof recordValue === \"string\" &&\n recordValue.includes(filter.value)\n );\n } else if (filter.type === \"date\") {\n const dateValue = filter.value as DatesRangeValue;\n if (!dateValue) return true;\n\n const [from, to] = dateValue;\n if (!from && !to) return true;\n const recordDate = record[key];\n if (typeof recordDate === \"string\") {\n const recordDateStr = recordDate.split(\" \")[0];\n if (from && to) {\n return recordDateStr >= from && recordDateStr <= to;\n } else if (from && !to) {\n return recordDateStr >= from;\n } else if (!from && to) {\n return recordDateStr <= to;\n }\n }\n return true;\n } else if (filter.type === \"boolean\") {\n const recordValue = record[key];\n return recordValue === filter.value;\n }\n return true;\n }));\n\n const [sortStatus, setSortStatus] = useState<DataTableSortStatus<T>>({\n columnAccessor: defaultSort?.field ?? fields[0].id,\n direction: defaultSort?.direction ?? \"desc\",\n });\n \n const handleSortChange = (newSortStatus: DataTableSortStatus<T>) => {\n setSortStatus(newSortStatus);\n if (onSortChange) {\n onSortChange(String(newSortStatus.columnAccessor), newSortStatus.direction);\n }\n };\n\n const sortedData = sortData(\n filteredData,\n sortStatus.columnAccessor as keyof T,\n sortStatus.direction,\n );\n\n const [pageSize, setPageSize] = usePersistentState(\n PAGE_SIZES[1],\n \"mantine-table-page-size\",\n );\n const [page, setPage] = useState(1);\n\n const records = pagination ? sortedData.slice((page - 1) * pageSize, page * pageSize) : sortedData;\n\n const [selectedRecords, setSelectedRecords] = useState<T[]>([]);\n\n useEffect(() => {\n setSelectedRecords([]);\n }, [activeTab]);\n\n const [createModalOpen, setCreateModalOpen] = useState(false);\n const [updateModalOpen, setUpdateModalOpen] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n\n const hasUpdateField = fields.some((field) => field.update);\n const hasDeleteField = fields.some((field) => field.delete);\n\n const mobileActions: Action<T>[] = [];\n if (hasUpdateField) {\n mobileActions.push({\n icon: <IconPencil size={14} />,\n label: \"Bearbeiten\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setUpdateModalOpen(true);\n },\n });\n }\n if (actions) {\n mobileActions.push(...actions);\n }\n if (hasDeleteField) {\n mobileActions.push({\n icon: <IconTrash size={14} />,\n label: \"Löschen\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setDeleteModalOpen(true);\n },\n });\n }\n\n return (\n <>\n <Group gap=\"xs\" justify={title ? \"space-between\" : \"end\"} align=\"center\" wrap=\"wrap\">\n {title &&\n (typeof title === \"string\" ? (\n <Title order={4}>{title}</Title>\n ) : (\n title\n ))}\n <Group align=\"center\" gap=\"xs\" wrap=\"wrap\" justify=\"end\" style={{ marginLeft: \"auto\" }}>\n {showRefresh && (\n <ActionIcon\n variant=\"subtle\"\n onClick={() => refetch()}\n aria-label=\"Neuladen\"\n >\n <IconRefresh />\n </ActionIcon>\n )}\n {(fields.some((field) => field.update) || selection) && (() => {\n const hasUpdateAction = fields.find((field) => field.update) && \n (!canUpdate || (selectedRecords.length > 0 && canUpdate(selectedRecords[0])));\n const hasDeleteAction = fields.find((field) => field.delete) && \n (!canDelete || (selectedRecords.length > 0 && canDelete(selectedRecords[0])));\n const hasCustomActions = (actions ?? []).length > 0;\n const hasAnyAction = hasUpdateAction || hasDeleteAction || hasCustomActions;\n\n return (\n <Box {...(mobileCards ? { visibleFrom: \"sm\" } : {})}>\n <Menu shadow=\"md\">\n <Menu.Target>\n <Button\n variant=\"outline\"\n rightSection={<IconCaretDownFilled size={14} />}\n disabled={!selectedRecords.length || !hasAnyAction}\n >\n Aktionen\n </Button>\n </Menu.Target>\n <Menu.Dropdown>\n {hasUpdateAction && (\n <Menu.Item\n leftSection={<IconPencil size={14} />}\n onClick={() => setUpdateModalOpen(true)}\n disabled={selectedRecords.length !== 1}\n >\n Bearbeiten\n </Menu.Item>\n )}\n {(actions ?? []).map((action, index) => (\n <Menu.Item\n {...(action.icon && { leftSection: action.icon })}\n key={`custom_action_${index}`}\n onClick={() => action.onClick(selectedRecords)}\n disabled={action.disabled?.(selectedRecords) ?? false}\n >\n {action.label}\n </Menu.Item>\n ))}\n {hasDeleteAction && (\n <Menu.Item\n leftSection={<IconTrash size={14} />}\n onClick={() => setDeleteModalOpen(true)}\n color=\"red\"\n >\n Löschen\n </Menu.Item>\n )}\n </Menu.Dropdown>\n </Menu>\n </Box>\n );\n })()}\n {fields.find((field) => field.create) && (\n <Button\n onClick={() => setCreateModalOpen(true)}\n disabled={isLoading}\n >\n {createButtonText ?? \"Erstellen\"}\n </Button>\n )}\n {buttons}\n </Group>\n </Group>\n\n {tabs && tabs.length > 0 && (\n <Tabs value={activeTab} onChange={handleTabChange} mt=\"md\">\n <Tabs.List>\n {tabs.map((tab) => (\n <Tabs.Tab\n key={tab.value}\n value={tab.value}\n leftSection={tab.icon}\n >\n {tab.label}\n </Tabs.Tab>\n ))}\n </Tabs.List>\n </Tabs>\n )}\n\n {isError && (\n <Alert\n mt=\"md\"\n variant=\"light\"\n color=\"red\"\n title=\"Es ist ein Fehler aufgetreten.\"\n icon={<IconInfoCircle />}\n >\n Bitte versuche es später erneut oder sende eine Nachricht an unseren\n Support.\n </Alert>\n )}\n\n {(isLoading || isRefetching) && (\n <Stack my=\"md\">\n <Skeleton height={40} />\n {Array(5)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-${index}`} height={35} />\n ))}\n </Stack>\n )}\n\n {!isLoading && !isRefetching && (\n <>\n <Box {...(mobileCards ? { visibleFrom: \"sm\" } : {})}>\n {/* @ts-expect-error - conditional pagination spread not compatible with strict prop types */}\n <MantineDataTable\n my=\"md\"\n striped\n highlightOnHover\n minHeight={150}\n fetching={isError}\n records={records}\n sortStatus={sortStatus}\n onSortStatusChange={handleSortChange}\n {...(selection && {\n selectedRecords,\n onSelectedRecordsChange: setSelectedRecords,\n })}\n {...(pagination &&\n records.length && {\n totalRecords: sortedData.length,\n recordsPerPage: pageSize,\n onPageChange: setPage,\n page,\n recordsPerPageOptions: PAGE_SIZES,\n onRecordsPerPageChange: setPageSize,\n recordsPerPageLabel: \"Einträge pro Seite\",\n })}\n {...(rowExpansion && {\n rowExpansion: {\n allowMultiple: rowExpansion.allowMultiple ?? false,\n content: ({ record }: { record: T }) => rowExpansion.content(record),\n ...(rowExpansion.expanded && {\n expanded: rowExpansion.expanded,\n }),\n },\n })}\n columns={fields.map((field) => field.column)}\n noRecordsText=\"Keine Einträge gefunden\"\n onRowClick={onRowClick}\n {...(onRowClick && { style: { cursor: \"pointer\" } })}\n />\n </Box>\n\n {mobileCards && (\n <Box hiddenFrom=\"sm\">\n <MobileCardList\n records={records}\n fields={fields}\n selection={selection}\n selectedRecords={selectedRecords}\n onSelectedRecordsChange={setSelectedRecords}\n onRowClick={onRowClick}\n sort={{\n field: String(sortStatus.columnAccessor),\n direction: sortStatus.direction,\n onSortChange: (field, direction) => {\n handleSortChange({ columnAccessor: field as keyof T, direction });\n },\n }}\n {...(pagination && records.length && {\n pagination: {\n totalRecords: sortedData.length,\n recordsPerPage: pageSize,\n page,\n onPageChange: setPage,\n recordsPerPageOptions: PAGE_SIZES,\n onRecordsPerPageChange: (size: number) => { setPageSize(size); setPage(1); },\n },\n })}\n {...(rowExpansion && {\n rowExpansion: { content: rowExpansion.content },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\n )}\n\n\n </>\n )}\n\n <Modal\n opened={updateModalOpen}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Bearbeiten\"}\n >\n {selectedRecords.length > 0 && (\n <UpdateModal<T>\n fields={fields.filter((field) => field.update)}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n id={selectedRecords[0].id}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n steps={steps}\n />\n )}\n </Modal>\n\n {selectedRecords.length > 0 && (\n <Modal\n opened={deleteModalOpen}\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Löschen\"}\n >\n <DeleteModal<T>\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n selectedRecords={selectedRecords}\n />\n </Modal>\n )}\n\n <Modal\n opened={createModalOpen}\n onClose={() => {\n setCreateModalOpen(false);\n }}\n title={title ?? \"Anlegen\"}\n >\n <CreateModal<T>\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n onClose={() => {\n setCreateModalOpen(false);\n }}\n fields={fields.filter((field) => field.create)}\n steps={steps}\n />\n </Modal>\n </>\n );\n}\n","import { BaseEntity } from \"../Hooks/useApi.ts\";\nimport { DataTableInner, DataTableProps } from \"./DataTableInner.tsx\";\n\nexport function DataTable<T extends BaseEntity>(props: DataTableProps<T>) {\n return <DataTableInner<T> {...props} />;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,26],"mappings":"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"}
|