@espresso-lab/mantine-data-table 2.2.1 → 2.2.3
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/Context/DataTableContext.d.ts +1 -1
- package/dist/DataTable/CreateModal.d.ts +2 -1
- package/dist/DataTable/DataTable.d.ts +1 -1
- package/dist/DataTable/DeleteModal.d.ts +2 -1
- package/dist/DataTable/EntityForm.d.ts +1 -1
- package/dist/DataTable/FieldCard.d.ts +2 -2
- package/dist/DataTable/MobileCardList.d.ts +1 -1
- package/dist/DataTable/SubTable.d.ts +2 -1
- package/dist/DataTable/UpdateModal.d.ts +2 -1
- package/dist/Hooks/useApi.d.ts +3 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +570 -585
- 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","Da","wa","$t","Sa","Xt","Ra","Ee","We","xa","ka","Ma","va","jt","Ea","qt","Ia","Yt","Z","Ha","en","Oa","ht","nn","_a","Ct","Wa","za","Ba","Y","Ga","Pt","Va","Xa","Fa","Qa","Ua","Ja","ja","Ka","Ya","fn","er","tr","nr","yn","Cn","or","lr","ar","rr","sr","ir","vt","cr","dr","mr","ur","Fe","br","pr","fr","gr","vn","Tr","kn","wr","Dr","Sr","Cr","$e","Pr","hr","yr","Rr","Xe","xr","Ue","vr","Qe","Mr","Mt","On","Nr","Lr","Ir","_n","kt","U","kr","je","Er","Or","Wn","Hr","zn","_r","Ar","Je","zr","qe","Wr","be","Xr","$r","Et","Fr","Ye","Gr","Vr","G","Ze","Xn","Br","Qn","Qr","Kr","Ur","ae","ol","et","tl","nl","jn","qr","Yr","Zr","el","Jr","jr","qn","rl","il","ll","sl","Lt","Ie","no","ul","ge","eo","dl","fl","cl","ml","pl","bl","hl","Te","Cl","Tl","ao","gl","Pl","yl","Sl","Dl","wl","Ml","vl","Ne","io","xl","Rl","co","El","Ll","kl","po","mo","tt","Il","Nl","_l","Ol","ot","bo","nt","Vl","It","at","Nt","F","ho","Al","To","zl"],"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/EntityForm.tsx","../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/utils/filter.ts","../src/DataTable/FieldCard.tsx","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTable.tsx","../src/DataTable/SubTable.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 const subscribed = options.subscribed !== false;\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && subscribed;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"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 interface FieldViolation {\n field: string;\n message: string;\n}\n\nexport class ApiError extends Error {\n readonly status: number;\n readonly violations?: FieldViolation[];\n\n constructor(message: string, status: number, violations?: FieldViolation[]) {\n super(message);\n this.name = \"ApiError\";\n this.status = status;\n this.violations = violations;\n }\n}\n\nexport function getFieldViolations(error: unknown): FieldViolation[] | undefined {\n return error instanceof ApiError ? error.violations : undefined;\n}\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 ApiError(`HTTP ${resp.status}: ${resp.statusText}`, resp.status);\n }\n let errorJson: { message?: string; error?: string; title?: string; violations?: FieldViolation[] } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new ApiError(responseText, resp.status);\n }\n const violations = Array.isArray(errorJson?.violations)\n ? errorJson.violations\n .filter((v) => v?.field && v?.message)\n .map((v) => ({ field: String(v.field), message: String(v.message) }))\n : undefined;\n throw new ApiError(\n errorJson?.message ?? errorJson?.error ?? errorJson?.title ?? responseText,\n resp.status,\n violations,\n );\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\nconst toKey = (queryKey: Array<string | number>): string[] => queryKey.map((k) => k.toString());\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: [...toKey(queryKey), 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: toKey(queryKey),\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: toKey(queryKey),\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: toKey(queryKey)\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: toKey(queryKey),\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: toKey(queryKey)\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: toKey(queryKey),\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: toKey(queryKey)\n });\n },\n });\n}\n","import { Alert, Button, Checkbox, Group, NumberInput, Stepper, Textarea, TextInput } from \"@mantine/core\";\nimport { DateInput } from \"@mantine/dates\";\nimport { useForm } from \"@mantine/form\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { BaseEntity, getFieldViolations } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\n\nfunction resolveRequired<T>(field: Field<T>, values: Partial<T>): boolean {\n return typeof field.required === \"function\" ? field.required(values) : !!field.required;\n}\n\nfunction buildInitialValues<T>(fields: Field<T>[]): T {\n return 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}\n\nfunction buildValidation<T>(fields: Field<T>[]) {\n return 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\nfunction cleanValues<T>(rawValues: T): T {\n return Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([key, value]) => [key, value === \"\" ? undefined : value]),\n ) as T;\n}\n\nfunction normalizeLoadedValues<T>(data: T, fields: Field<T>[]): T {\n const values = { ...data };\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 return values;\n}\n\nconst violationFieldId = (path: string) => path.split(\".\").pop() ?? path;\n\nfunction mapFieldViolations(error: unknown, fieldIds: Set<string>): Record<string, string> {\n return Object.fromEntries(\n (getFieldViolations(error) ?? [])\n .filter((violation) => fieldIds.has(violationFieldId(violation.field)))\n .map((violation) => [violationFieldId(violation.field), violation.message]),\n );\n}\n\nfunction resolveGeneralError(error: Error | null | undefined, fieldIds: Set<string>): string | undefined {\n const violations = getFieldViolations(error);\n if (!violations) return error?.message;\n const unmapped = violations.filter((violation) => !fieldIds.has(violationFieldId(violation.field)));\n return unmapped.length > 0 ? unmapped.map((violation) => violation.message).join(\", \") : undefined;\n}\n\nexport interface EntityFormProps<T extends BaseEntity> {\n fields: Field<T>[];\n steps?: StepConfig[];\n record?: T;\n recordId?: string | number;\n submitting: boolean;\n error?: Error | null;\n onPersist: (values: T) => Promise<void>;\n onClose: () => void;\n}\n\nexport function EntityForm<T extends BaseEntity>({\n fields,\n steps,\n record,\n recordId,\n submitting,\n error,\n onPersist,\n onClose,\n}: EntityFormProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState(false);\n\n const form = useForm<T>({\n mode: \"uncontrolled\",\n initialValues: buildInitialValues(fields),\n validate: buildValidation(fields),\n });\n\n useEffect(() => {\n if (record) {\n const values = normalizeLoadedValues(record, fields);\n form.initialize(values);\n form.setValues(values);\n }\n }, [record]);\n\n const fieldIds = new Set(fields.map((f) => String(f.id)));\n const generalError = resolveGeneralError(error, fieldIds);\n\n const stepsAvailable = [...new Set(fields.filter((f) => typeof f.step === \"number\").map((f) => f.step as number))];\n const hasSteps = stepsAvailable.length > 0;\n const isLastStep = active === stepsAvailable.length - 1;\n\n function renderField(field: Field<T>) {\n const values = form.getValues();\n if (field.conditional && !field.conditional(values)) return null;\n const required = resolveRequired(field, values);\n const inputProps = form.getInputProps(field.id as string);\n\n switch (field.type) {\n case \"number\":\n return <NumberInput key={form.key(field.id)} decimalSeparator=\",\" thousandSeparator=\".\" label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"date\":\n return <DateInput key={form.key(field.id)} valueFormat=\"DD.MM.YYYY\" clearable label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"boolean\":\n return <Checkbox key={form.key(field.id)} mt=\"md\" label={field.column.title} required={required} {...form.getInputProps(field.id as string, { type: \"checkbox\" })} />;\n case \"textarea\":\n return <Textarea key={form.key(field.id)} minRows={3} autosize label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"custom\":\n return field.render?.(\n { ...values, ...(recordId != null && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n { error: inputProps.error, required },\n );\n default:\n return <TextInput key={form.key(field.id)} type={field.id.includes(\"email\") ? \"email\" : undefined} label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n }\n }\n\n const fieldsToRender = (step?: number) =>\n (step === undefined ? fields : fields.filter((f) => f.step === step)).map((field) => (\n <Fragment key={field.id}>{renderField(field)}</Fragment>\n ));\n\n return (\n <>\n {generalError && (\n <Alert variant=\"outline\" color=\"red\" title=\"Fehler aufgetreten\" mb=\"lg\">\n {generalError}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (raw) => {\n const values = cleanValues(raw as T);\n try {\n await onPersist(values);\n } catch (submitError) {\n const fieldErrors = mapFieldViolations(submitError, fieldIds);\n if (Object.keys(fieldErrors).length > 0) form.setErrors(fieldErrors);\n return;\n }\n if (hasSteps && !isLastStep) {\n setActive((current) => current + 1);\n } else {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n })}\n >\n {hasSteps ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step key={step} {...(steps?.[step - 1] ? { label: steps[step - 1].label } : {})}>\n {fieldsToRender(step)}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fieldsToRender()\n )}\n\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button variant=\"outline\" onClick={() => (hasSteps && active > 0 ? setActive((current) => current - 1) : onClose())}>\n {hasSteps && active > 0 ? \"Zurück\" : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={submitting}>\n {hasSteps && !isLastStep ? \"Weiter\" : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","import { useState } from \"react\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\nimport { EntityForm } from \"./EntityForm.tsx\";\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 [recordId, setRecordId] = useState<string | number>();\n\n const { mutateAsync: create, isPending: isCreating, error: createError } = useAddOne<T>(apiPath, queryKey);\n const { mutateAsync: update, isPending: isUpdating, error: updateError } = useUpdateOne<T>(apiPath, queryKey);\n\n const persist = async (values: T) => {\n if (recordId != null) {\n await update({ ...values, id: recordId });\n } else {\n const created = await create(values);\n setRecordId(created.id);\n onCreated?.(created.id);\n }\n };\n\n return (\n <EntityForm\n fields={fields}\n steps={steps}\n recordId={recordId}\n submitting={isCreating || isUpdating}\n error={createError ?? updateError}\n onPersist={persist}\n onClose={onClose}\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 Al,Table as zl}from\"@mantine/core\";import{useMergedRef as It}from\"@mantine/hooks\";import To from\"clsx\";import{useCallback as Nt,useEffect as Wl,useLayoutEffect as Bl,useMemo as Vl,useRef as at}from\"react\";import{parseThemeColor as Da}from\"@mantine/core\";function W(e,t,n){return e?Da({color:typeof e==\"object\"?e[n]:e,theme:t}).value:void 0}function Vt({theme:e,c:t,backgroundColor:n,borderColor:o,rowBorderColor:r,stripedColor:l,highlightOnHoverColor:a}){return{\"--mantine-datatable-color-light\":W(t,e,\"light\"),\"--mantine-datatable-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-background-color-dark\":W(n,e,\"dark\"),\"--mantine-datatable-border-color-light\":W(o,e,\"light\"),\"--mantine-datatable-border-color-dark\":W(o,e,\"dark\"),\"--mantine-datatable-row-border-color-light\":W(r,e,\"light\"),\"--mantine-datatable-row-border-color-dark\":W(r,e,\"dark\"),\"--mantine-datatable-striped-color-light\":W(l,e,\"light\"),\"--mantine-datatable-striped-color-dark\":W(l,e,\"dark\"),\"--mantine-datatable-highlight-on-hover-color-light\":W(a,e,\"light\"),\"--mantine-datatable-highlight-on-hover-color-dark\":W(a,e,\"dark\")}}function ze({theme:e,paginationActiveTextColor:t,paginationActiveBackgroundColor:n}){return{\"--mantine-datatable-pagination-active-text-color-light\":W(t,e,\"light\"),\"--mantine-datatable-pagination-active-text-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-pagination-active-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-pagination-active-background-color-dark\":W(n,e,\"dark\")}}function Gt({theme:e,color:t,backgroundColor:n}){return{\"--mantine-datatable-row-color-light\":W(t,e,\"light\"),\"--mantine-datatable-row-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-row-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-row-background-color-dark\":W(n,e,\"dark\")}}import{useState as $t}from\"react\";import{createSafeContext as wa}from\"@mantine/core\";var[Ft,ye]=wa(\"useDataTableColumnsContext must be used within DataTableColumnProvider\");import{jsx as Sa}from\"react/jsx-runtime\";var Tt=e=>{let{children:t,columnsOrder:n,setColumnsOrder:o,columnsToggle:r,setColumnsToggle:l,columnsPinning:a,setColumnsPinning:s,resetColumnsOrder:c,resetColumnsToggle:d,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:b,beginResize:m,endResize:S,pinnedMap:f}=e,[C,L]=$t(\"\"),[w,I]=$t(\"\");return Sa(Ft,{value:{sourceColumn:C,setSourceColumn:L,targetColumn:w,setTargetColumn:I,columnsToggle:r,setColumnsToggle:l,columnsPinning:a,setColumnsPinning:s,swapColumns:()=>{if(!n||!o||!C||!w)return;let h=f.get(C),g=f.get(w);if(h?.logicalSide!==g?.logicalSide)return;let v=n.indexOf(C),M=n.indexOf(w);if(v!==-1&&M!==-1){let T=[...n],[P]=T.splice(v,1);T.splice(M,0,P),o(T)}},resetColumnsOrder:c,resetColumnsToggle:d,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:b,beginResize:m,endResize:S},children:t})};import{jsx as Xt}from\"react/jsx-runtime\";function Ut(){return Xt(\"tr\",{className:\"mantine-datatable-empty-row\",children:Xt(\"td\",{})})}import{Center as xa,Text as va}from\"@mantine/core\";import{jsx as Ee,jsxs as Ra}from\"react/jsx-runtime\";function Qt(){return Ra(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ee(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ee(\"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\"}),Ee(\"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\"}),Ee(\"path\",{d:\"M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4\"}),Ee(\"path\",{d:\"M3 3l18 18\"})]})}import{Fragment as Ma,jsx as We,jsxs as ka}from\"react/jsx-runtime\";function Kt({icon:e,text:t,active:n,children:o}){return We(xa,{className:\"mantine-datatable-empty-state\",\"data-active\":n||void 0,children:o||ka(Ma,{children:[e||We(\"div\",{className:\"mantine-datatable-empty-state-icon\",children:We(Qt,{})}),We(va,{component:\"div\",size:\"sm\",c:\"dimmed\",children:t})]})})}import{TableTfoot as cr,TableTr as ur}from\"@mantine/core\";import dr from\"clsx\";import{TableTh as ar}from\"@mantine/core\";import rr from\"clsx\";import{useCallback as mi,useRef as pi,useState as fi}from\"react\";import{useLocalStorage as Ea}from\"@mantine/hooks\";import{useEffect as La,useMemo as jt}from\"react\";function Jt({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=jt(()=>t.map(i=>({accessor:i.accessor,defaultPinned:i.pinned,pinnable:!!i.pinnable,pinned:i.pinned})),[t]),[r,l]=Ea({key:e?`${e}-columns-pinning`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),a=r??o;function s(i){e&&l(typeof i==\"function\"?u=>i(u??o):i)}let c=jt(()=>{if(!a)return o;let i=[];return a.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultPinned:u.pinned,pinnable:!!u.pinnable,pinned:u.pinned})}),i},[a,t,o]);La(()=>{e&&a&&JSON.stringify(c)!==JSON.stringify(a)&&l(c)},[e,c,a,l]);let d=()=>{s(o)};return e?{columnsPinning:c,setColumnsPinning:s,resetColumnsPinning:d}:{columnsPinning:o,setColumnsPinning:s,resetColumnsPinning:d}}import{useLocalStorage as Ia}from\"@mantine/hooks\";import{useEffect as Na,useMemo as qt}from\"react\";function Zt({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=qt(()=>t?t.map(i=>i.accessor):[],[t]),[r,l]=Ia({key:e?`${e}-columns-order`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),a=r??o;function s(i){e&&l(i)}let c=qt(()=>{if(!a)return o;let i=[];return a.forEach(u=>{t.find(p=>p.accessor===u)&&i.push(u)}),t.forEach(u=>{i.includes(u.accessor)||i.push(u.accessor)}),i},[a,t,o]);Na(()=>{e&&a&&JSON.stringify(c)!==JSON.stringify(a)&&l(c)},[e,c,a,l]);let d=()=>{s(o)};return e?{columnsOrder:c,setColumnsOrder:s,resetColumnsOrder:d}:{columnsOrder:a,setColumnsOrder:s,resetColumnsOrder:d}}import{useLocalStorage as Ha}from\"@mantine/hooks\";import{useCallback as Z,useEffect as ht,useMemo as Yt,useRef as Oa,useState as en}from\"react\";function tn({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o}){let r=Yt(()=>t.some(y=>y.resizable&&!y.hidden&&y.accessor!==\"__selection__\"),[t]),l=Z(()=>t.filter(y=>y.accessor!==\"__selection__\").map(y=>({[y.accessor]:y.width??\"auto\"})),[t]),[a,s]=Ha({key:e?`${e}-columns-width`:\"\",defaultValue:e?l():void 0,getInitialValueInEffect:n}),[c,d]=en(()=>e&&a&&a.length>0?a:l()),[i,u]=en(!1),p=Oa(!1);ht(()=>{e&&(!a||a.length===0||d(a))},[e,a]),ht(()=>{d(y=>{let h=new Set(t.filter(P=>P.accessor!==\"__selection__\").map(P=>String(P.accessor))),g=y.filter(P=>h.has(Object.keys(P)[0])),v=new Set(g.map(P=>Object.keys(P)[0])),M=!1;for(let P of t){if(P.accessor===\"__selection__\")continue;let R=String(P.accessor);v.has(R)||(g.push({[R]:P.width??\"auto\"}),M=!0)}return g.length!==y.length||M?g:y})},[t]);let b=Z(y=>{let h=y.filter(g=>g.accessor!==\"__selection__\");h.length!==0&&(p.current=!0,d(g=>g.map(v=>{let M=Object.keys(v)[0],T=h.find(P=>P.accessor===M);return T?{[M]:T.width}:v})))},[]);ht(()=>{!e||!p.current||i||(p.current=!1,s(c))},[e,c,i,s]);let m=Z((y,h)=>{b([{accessor:y,width:h}])},[b]),S=Z(y=>{b(y)},[b]),f=Z(()=>{u(!0);let y=o?.current;if(!y)return;let h=Array.from(y.querySelectorAll(\"th[data-accessor]\"));if(h.length===0)return;let g=[];for(let v of h){let M=v.getAttribute(\"data-accessor\");if(!M||M===\"__selection__\")continue;let T=Math.round(v.getBoundingClientRect().width);g.push({[M]:`${T}px`})}p.current=!0,d(g)},[o]),C=Z(()=>{u(!1)},[]),L=Z(()=>{let y=l();p.current=!0,d(y),u(!1)},[l]),w=Yt(()=>{if(!r)return!1;let y=t.filter(h=>h.resizable&&!h.hidden&&h.accessor!==\"__selection__\");return c.filter(h=>{let g=Object.keys(h)[0];return y.some(v=>v.accessor===g)}).every(h=>{let g=Object.values(h)[0];return g===\"auto\"||g===\"initial\"})},[r,t,c]),I=Z(()=>{},[]);return{columnsWidth:c,setColumnsWidth:b,setColumnWidth:m,setMultipleColumnWidths:S,resetColumnsWidth:L,hasResizableColumns:r,allResizableWidthsInitial:w,measureAndSetColumnWidths:I,isResizing:i,beginResize:f,endResize:C}}import{useMemo as Ct}from\"react\";import{useLocalStorage as _a}from\"@mantine/hooks\";import{useEffect as Aa,useMemo as nn}from\"react\";function on({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=nn(()=>t?.map(i=>({accessor:i.accessor,defaultToggle:i.defaultToggle||!0,toggleable:i.toggleable,toggled:i.defaultToggle===void 0?!0:i.defaultToggle})),[t]),[r,l]=_a({key:e?`${e}-columns-toggle`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),a=r??o;function s(i){e&&l(i)}let c=nn(()=>{if(!a)return o;let i=[];return a.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultToggle:u.defaultToggle||!0,toggleable:u.toggleable,toggled:u.defaultToggle===void 0?!0:u.defaultToggle})}),i},[a,t,o]);Aa(()=>{e&&a&&JSON.stringify(c)!==JSON.stringify(a)&&l(c)},[e,c,a,l]);let d=()=>{s(o)};return e?{columnsToggle:c,setColumnsToggle:s,resetColumnsToggle:d}:{columnsToggle:a,setColumnsToggle:s,resetColumnsToggle:d}}var an=({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o,scrollViewportRef:r})=>{let{columnsOrder:l,setColumnsOrder:a,resetColumnsOrder:s}=Zt({key:e,columns:t,getInitialValueInEffect:n}),{columnsToggle:c,setColumnsToggle:d,resetColumnsToggle:i}=on({key:e,columns:t,getInitialValueInEffect:n}),{columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:b}=Jt({key:e,columns:t,getInitialValueInEffect:n}),{columnsWidth:m,setColumnsWidth:S,setColumnWidth:f,setMultipleColumnWidths:C,resetColumnsWidth:L,hasResizableColumns:w,allResizableWidthsInitial:I,measureAndSetColumnWidths:y,isResizing:h,beginResize:g,endResize:v}=tn({key:e,columns:t,getInitialValueInEffect:n,headerRef:o,scrollViewportRef:r}),M=Ct(()=>{let R;l?R=l.map(D=>t.find(O=>O.accessor===D)).map(D=>{let O=u.find(A=>A.accessor===D?.accessor),z=D?.pinnable?O?.pinned:D?.pinned;return{...D,hidden:D?.hidden||!c.find(A=>A.accessor===D?.accessor)?.toggled,pinned:z}}):R=t;let k=R.filter(D=>D.pinned===\"left\"),H=R.filter(D=>!D.pinned),E=R.filter(D=>D.pinned===\"right\");return[...k,...H,...E].map(D=>{if(D?.accessor===\"__selection__\")return D;let O=D?.accessor,z=m.find(K=>O in K);if(!z)return D;let A=z[O];return A===void 0||A===\"auto\"||A===\"initial\"?D:{...D,width:A}})},[t,l,c,u,m]),T=Ct(()=>{let R=M.filter(k=>!k.hidden&&k.accessor!==\"__selection__\");return R.length===0?!1:R.every(k=>typeof k.width==\"string\"&&/px$/.test(k.width))},[M]),P=Ct(()=>{if(!T)return null;let R=0;for(let k of M){if(k.hidden||k.accessor===\"__selection__\")continue;let H=k.width;if(typeof H!=\"string\")continue;let E=parseInt(H,10);Number.isNaN(E)||(R+=E)}return R>0?R:null},[T,M]);return{effectiveColumns:M,setColumnsOrder:a,columnsOrder:l,resetColumnsOrder:s,columnsToggle:c,setColumnsToggle:d,resetColumnsToggle:i,columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:b,columnsWidth:m,setColumnsWidth:S,setColumnWidth:f,setMultipleColumnWidths:C,resetColumnsWidth:L,hasResizableColumns:w,allResizableWidthsInitial:I,measureAndSetColumnWidths:y,isResizing:h,isLocked:T,tableWidth:P,beginResize:g,endResize:v}};import{rem as Va}from\"@mantine/core\";import{useCallback as Ga,useEffect as Pt,useRef as Y}from\"react\";import{useEffect as za,useLayoutEffect as Wa}from\"react\";var fe=typeof window<\"u\"?Wa:za;import{useRef as Ba}from\"react\";function yt(e){let t=Ba(e);return t.current=e,t}var rn=\"--mantine-datatable-header-height\",ln=\"--mantine-datatable-footer-height\",sn=\"--mantine-datatable-selection-column-width\",cn=\"--mantine-datatable-last-row-border-bottom\";function X(e,t,n){e?.style.setProperty(t,n)}function wt(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 Dt(e,t,n){if(e){let o=new ResizeObserver(r=>{let l=r[0];l&&t(wt(l))});return o.observe(e),()=>{o.disconnect(),n()}}}function un({scrollCallbacks:e,withRowBorders:t}){let n={root:Y(null),table:Y(null),scrollViewport:Y(null),header:Y(null),footer:Y(null),selectionColumnHeader:Y(null)},{root:o,table:r,scrollViewport:l,header:a,footer:s,selectionColumnHeader:c}=n,d=yt({withRowBorders:t}),i=yt(e),u=Y(()=>{}),p=Y(()=>{}),b=Ga(m=>{i.current.onScroll?.(m),u.current()},[]);return Pt(()=>Dt(a.current,m=>{X(o.current,rn,`${m.height}px`)},()=>X(o.current,rn,\"0\")),[a.current]),Pt(()=>Dt(s.current,m=>{X(o.current,ln,`${m.height}px`)},()=>X(o.current,ln,\"0\")),[s.current]),Pt(()=>Dt(c.current,m=>{X(o.current,sn,`${m.width}px`)},()=>X(o.current,sn,\"0\")),[c.current]),fe(()=>{if(typeof window>\"u\")return;let m={top:!0,bottom:!0,left:!0,right:!0},S={width:0,height:0},f={width:0,height:0};function C(h,g){let v=m[h];return m[h]=g,X(o.current,`--mantine-datatable-${h}-shadow-opacity`,g?\"0\":\"1\"),v}function L(){let h=S.height-f.height,g=h<0;X(o.current,\"--mantine-datatable-footer-position\",g?\"relative\":\"sticky\"),X(o.current,\"--mantine-datatable-footer-bottom\",g?`${h}px`:\"0\")}function w(){d.current.withRowBorders&&S.height<f.height?X(o.current,cn,`${Va(\"1px\")} solid var(--mantine-datatable-border-color)`):X(o.current,cn,\"unset\")}p.current=w;function I(){let h=i.current,g=l.current,v=g?.scrollTop??0,M=g?.scrollLeft??0,T=v===0,P=S.height-v-f.height<1,R=C(\"top\",T),k=C(\"bottom\",P);T&&T!==R&&h.onScrollToTop?.(),P&&P!==k&&h.onScrollToBottom?.();let H=g?getComputedStyle(g).direction===\"rtl\":!1,E=(g?.scrollWidth??0)-f.width,x,D;if(H){let A=Math.abs(M);D=A<1,x=E-A<1}else x=M<1,D=S.width-M-f.width<1;let O=C(\"left\",x),z=C(\"right\",D);x&&x!==O&&h.onScrollToLeft?.(),D&&D!==z&&h.onScrollToRight?.()}u.current=I;let y=new ResizeObserver(h=>{for(let g of h)switch(g.target.tagName){case\"TABLE\":{S=wt(g);break}case\"DIV\":{f=wt(g);break}}I(),L(),w()});return y.observe(r.current),y.observe(l.current),()=>{y.disconnect()}},[]),fe(()=>{p.current()},[t]),{refs:n,onScroll:b}}import{useCallback as Fa,useEffect as $a,useState as Xa}from\"react\";function dn({columns:e,theadRef:t,tbodyRef:n,selectionColumnHeaderRef:o,selectionVisible:r,pinFirstColumn:l,pinLastColumn:a}){let[s,c]=Xa(new Map),d=Fa(()=>{if(!l&&!a&&!e.some(T=>T.pinned))return;let p=t.current??n.current;if(!p)return;let b=!!t.current,m=b?p.querySelector(\"tr:last-of-type\"):p.querySelector(\"tr:first-of-type\");if(!m)return;let S=getComputedStyle(p).direction===\"rtl\",f=new Map;if(b)m.querySelectorAll(\"th[data-accessor]\").forEach(T=>{let P=T.dataset.accessor;if(P){let R=T.getBoundingClientRect().width;R>0&&f.set(P,R)}});else{let T=e.filter(R=>!R.hidden);m.querySelectorAll(\"td:not(.mantine-datatable-row-selector-cell):not(.mantine-datatable-row-expansion-cell)\").forEach((R,k)=>{if(T[k]){let H=R.getBoundingClientRect().width;H>0&&f.set(String(T[k].accessor),H)}})}let C=0;if(r){let T=o.current??p.querySelector(b?\".mantine-datatable-header-selector-cell\":\".mantine-datatable-row-selector-cell\");T&&(C=T.getBoundingClientRect().width)}let L=e.filter(T=>!T.hidden&&f.has(String(T.accessor))).map(T=>String(T.accessor)),w=new Map;for(let T of e){let P=String(T.accessor);L.includes(P)&&(T.pinned?w.set(P,T.pinned):l&&P===L[0]&&!w.has(P)?w.set(P,\"left\"):a&&P===L[L.length-1]&&!w.has(P)&&w.set(P,\"right\"))}let I=L.filter(T=>w.get(T)===\"left\"),y=L.filter(T=>w.get(T)===\"right\"),h=new Map,g=C;I.forEach((T,P)=>{h.set(T,{position:S?\"right\":\"left\",logicalSide:\"left\",offset:g,isBoundary:P===I.length-1}),g+=f.get(T)||0});let v=-.4,M=[...y].reverse();M.forEach((T,P)=>{h.set(T,{position:S?\"left\":\"right\",logicalSide:\"right\",offset:v,isBoundary:P===M.length-1}),v+=f.get(T)||0}),c(T=>{if(T.size!==h.size)return h;for(let[P,R]of h){let k=T.get(P);if(!k||k.position!==R.position||k.logicalSide!==R.logicalSide||k.offset!==R.offset||k.isBoundary!==R.isBoundary)return h}return T})},[e,r,t,n,o,l,a]);$a(()=>{if(!l&&!a&&!e.some(f=>f.pinned))return;let p=t.current??n.current;if(!p)return;let b=!!t.current,m=b?p.querySelector(\"tr:last-of-type\"):p.querySelector(\"tr:first-of-type\");if(!m)return;let S=new ResizeObserver(d);return m.querySelectorAll(b?\"th\":\"td\").forEach(f=>{S.observe(f)}),()=>S.disconnect()},[t,n,d]),fe(d,[d]);let i=[...s.values()].some(p=>p.logicalSide===\"left\"),u=[...s.values()].some(p=>p.logicalSide===\"right\");return{pinnedMap:s,hasLeftPinned:i,hasRightPinned:u}}import{useEffect as Ua,useState as Qa}from\"react\";function mn(e){let[t,n]=Qa(null),o=e?.join(\":\")||\"\";return Ua(()=>{n(null)},[o]),{lastSelectionChangeIndex:t,setLastSelectionChangeIndex:n}}import{useEffect as Ka,useRef as ja,useState as Ja}from\"react\";function qa(e,t){let n=()=>{t(e.map(r=>r.matches))},o=e.map(r=>{try{return r.addEventListener(\"change\",n),()=>r.removeEventListener(\"change\",n)}catch{return r.addListener(n),()=>r.removeListener(n)}});return()=>{o.forEach(r=>{r()})}}function Za(e,t){return t||(typeof window<\"u\"&&\"matchMedia\"in window?e.map(n=>window.matchMedia(n).matches):e.map(()=>!1))}function pn(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){let[o,r]=Ja(n?t:Za(e,t)),l=ja(null);return Ka(()=>{if(\"matchMedia\"in window)return l.current=e.map(a=>window.matchMedia(a)),r(l.current.map(a=>a.matches)),qa(l.current,a=>{r(a)})},[e]),o}import{useMantineTheme as Ya}from\"@mantine/core\";import{useMemo as fn}from\"react\";function bn(e){let t=Ya(),n=fn(()=>e.map(r=>(typeof r==\"function\"?r(t):r)??\"\"),[e,t]),o=fn(()=>e.map(()=>!0),[e]);return pn(n,o)}import{useMantineTheme as er}from\"@mantine/core\";import{useMediaQuery as tr}from\"@mantine/hooks\";function ee(e){let t=er(),n=typeof e==\"function\"?e(t):e;return tr(n||\"\",!0)}import{useState as nr}from\"react\";function Pe(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 gn(e,t,n){return e.filter(o=>!t.map(n).includes(n(o)))}function Be(e,t){return e.filter((n,o,r)=>o===r.findIndex(l=>t(n)===t(l)))}function St(e,t){return t?t.match(/([^[.\\]])+/g).reduce((o,r)=>o&&o[r],e):void 0}function B(e,t){return typeof t==\"string\"?St(e,t):t(e)}function os(e,t){let n=structuredClone(t),o=n[e.source.index];return e.destination&&(n.splice(e.source.index,1),n.splice(e.destination.index,0,o)),n}function as(e,t){let n=structuredClone(t),o=e.destination;if(!o)return n;let r=n[e.source.index],l=n[o.index];return n.splice(o.index,1,r),n.splice(e.source.index,1,l),n}function Rt(e){return!e||e.length===0?0:Math.max(...e.map(t=>t.groups&&t.groups.length>0?1+Rt(t.groups):1))}function Le(e){let t=[];for(let n of e)n.columns&&n.columns.length>0?t.push(...n.columns.filter(o=>o!=null)):n.groups&&n.groups.length>0&&t.push(...Le(n.groups));return t.filter(n=>n!=null)}function Ve(e,t){return e.columns&&e.columns.length>0?e.columns.filter((n,o)=>n.hidden?!1:t?t[o]!==!1:!0).length:e.groups&&e.groups.length>0?e.groups.reduce((n,o)=>n+Ve(o,t),0):0}function xt(e,t,n=0){if(n===t)return[...e];let o=[];for(let r of e)r.groups&&r.groups.length>0&&o.push(...xt(r.groups,t,n+1));return o}function Tn(e,t,n){return n?!e||t:!1}function hn({rowExpansion:e,records:t,idAccessor:n}){let o=[];if(e&&t){let{trigger:s,allowMultiple:c,initiallyExpanded:d}=e;t&&s===\"always\"?o=t.map(i=>B(i,n)):d&&(o=t.filter((i,u)=>d({record:i,index:u})).map(i=>B(i,n)),c||(o=[o[0]]))}let r,l,a=nr(o);if(e){let{expandable:s,trigger:c,allowMultiple:d,collapseProps:i,content:u}=e;e.expanded?{recordIds:r,onRecordIdsChange:l}=e.expanded:[r,l]=a;let p=b=>l?.(r.filter(m=>m!==B(b,n)));return{expandOnClick:c!==\"always\"&&c!==\"never\",isRowExpanded:b=>c===\"always\"?!0:r.includes(B(b,n)),isExpandable:({record:b,index:m})=>s?s({record:b,index:m}):!0,expandRow:b=>{let m=B(b,n);l?.(d?[...r,m]:[m])},collapseRow:p,collapseProps:i,content:({record:b,index:m})=>()=>u({record:b,index:m,collapse:()=>p(b)})}}}import{useTimeout as Cn}from\"@mantine/hooks\";import{useEffect as or,useState as yn}from\"react\";function Pn(e,t){let[n,o]=yn(e),[r,l]=yn(e),a=Cn(()=>o(!0),0),s=Cn(()=>l(!1),t||200);return or(()=>{e?(s.clear(),l(!0),a.start()):(a.clear(),o(!1),s.start())},[a,s,e]),{expanded:n,visible:r}}var De=\"mantine-datatable-nowrap\",we=\"mantine-datatable-ellipsis\",Q=\"mantine-datatable-pointer-cursor\",Ge=\"mantine-datatable-context-menu-cursor\",Dn=\"mantine-datatable-text-selection-disabled\",te=\"mantine-datatable-text-align-left\",ne=\"mantine-datatable-text-align-center\",oe=\"mantine-datatable-text-align-right\";import{jsx as lr}from\"react/jsx-runtime\";function wn({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,title:r,noWrap:l,ellipsis:a,textAlign:s,width:c}){return ee(o)?lr(ar,{\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:rr({[De]:l||a,[we]:a,[te]:s===\"left\",[ne]:s===\"center\",[oe]:s===\"right\"},e),style:[{width:c,minWidth:c,maxWidth:c},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],children:r}):null}import{TableTh as ir}from\"@mantine/core\";import{jsx as sr}from\"react/jsx-runtime\";function Sn({shadowVisible:e}){return sr(ir,{className:\"mantine-datatable-footer-selector-placeholder-cell\",\"data-shadow-visible\":e||void 0})}import{jsx as vt,jsxs as mr}from\"react/jsx-runtime\";function Rn({className:e,style:t,columns:n,defaultColumnProps:o,pinnedMap:r,selectionVisible:l,selectorCellShadowVisible:a,ref:s}){return vt(cr,{ref:s,className:dr(\"mantine-datatable-footer\",e),style:t,children:mr(ur,{children:[l&&vt(Sn,{shadowVisible:a}),n.map(({hidden:c,...d})=>{if(c)return null;let{accessor:i,visibleMediaQuery:u,textAlign:p,width:b,footer:m,footerClassName:S,footerStyle:f,noWrap:C,ellipsis:L}={...o,...d};return vt(wn,{pinnedInfo:r.get(String(i)),className:S,style:f,visibleMediaQuery:u,textAlign:p,width:b,title:m,noWrap:C,ellipsis:L},i)})]})})}import{Checkbox as jr,Group as Jr,Popover as qr,PopoverDropdown as Zr,PopoverTarget as Yr,Stack as el,TableThead as tl,TableTr as jn}from\"@mantine/core\";import nl from\"clsx\";import{useState as ol}from\"react\";import{TableTh as pr}from\"@mantine/core\";import fr from\"clsx\";import{useMemo as Fe}from\"react\";import{jsx as br}from\"react/jsx-runtime\";function xn({group:{id:e,columns:t,groups:n,title:o,textAlign:r,className:l,style:a},pinnedInfo:s,maxDepth:c,currentDepth:d,previousGroups:i,isLastGroup:u,withColumnBorders:p=!1,totalTableColumns:b}){let m=Fe(()=>t&&t.length>0?t:n&&n.length>0?Le([{id:e,columns:t,groups:n}]):[],[t,n,e]),S=Fe(()=>m.map(({visibleMediaQuery:g})=>g),[m]),f=bn(S),C=Fe(()=>Ve({id:e,columns:t,groups:n},f),[e,t,n,f]),L=Fe(()=>i.reduce((g,v)=>g+Ve(v,f),0),[i,f]),I=n&&n.length>0?1:c-d,y=L+C<b,h=Tn(u,y,p);return C>0?br(pr,{colSpan:C,rowSpan:I>1?I:void 0,\"data-pinned\":s?.position,\"data-pinned-shadow\":s?.isBoundary?s.position:void 0,className:fr(\"mantine-datatable-column-group-header-cell\",{[te]:r===\"left\",[ne]:r===\"center\",[oe]:r===\"right\",\"mantine-datatable-column-group-header-cell--needs-border\":h},l),style:[a,s&&{position:\"sticky\",[s.position]:s.offset,overflow:\"visible\"}],children:o??Pe(e)}):null}import{ActionIcon as Xn,Box as Br,Center as Ze,Flex as Vr,Group as Gr,TableTh as Fr}from\"@mantine/core\";import Ye from\"clsx\";import{useRef as $r,useState as Xr}from\"react\";import{ActionIcon as hr,Popover as Cr,PopoverDropdown as yr,PopoverTarget as Pr}from\"@mantine/core\";import{useClickOutside as Dr,useDisclosure as wr}from\"@mantine/hooks\";import{jsx as vn,jsxs as gr}from\"react/jsx-runtime\";function Mn(){return gr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[vn(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),vn(\"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 kn,jsxs as Tr}from\"react/jsx-runtime\";function En(){return Tr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[kn(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),kn(\"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 $e,jsxs as Sr}from\"react/jsx-runtime\";function Ln({children:e,isActive:t,filterPopoverProps:n,filterPopoverDisableClickOutside:o}){let[r,{close:l,toggle:a}]=wr(!1),s=t?En:Mn,c=Dr(l);return o&&(c=void 0),Sr(Cr,{withArrow:!0,shadow:\"md\",trapFocus:!0,...n,opened:r,onClose:l,onDismiss:l,children:[$e(Pr,{children:$e(hr,{className:\"mantine-datatable-header-cell-filter-action-icon\",\"data-active\":t||void 0,size:\"sm\",variant:\"default\",onClick:d=>{d.preventDefault(),a()},onKeyDown:d=>d.stopPropagation(),children:$e(s,{})})}),$e(yr,{ref:c,onClick:d=>d.stopPropagation(),onKeyDown:d=>d.stopPropagation(),children:typeof e==\"function\"?e({close:l}):e})]})}import{ActionIcon as je,Center as kr,Group as Er,Popover as kt}from\"@mantine/core\";import{useCallback as Lr,useEffect as Ir,useRef as Nr,useState as On}from\"react\";import{jsx as Xe,jsxs as Rr}from\"react/jsx-runtime\";function In(){return Rr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Xe(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Xe(\"path\",{d:\"M5 12l14 0\"}),Xe(\"path\",{d:\"M5 12l6 6\"}),Xe(\"path\",{d:\"M5 12l6 -6\"})]})}import{jsx as Ue,jsxs as xr}from\"react/jsx-runtime\";function Nn(){return xr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ue(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ue(\"path\",{d:\"M5 12l14 0\"}),Ue(\"path\",{d:\"M19 12l-6 6\"}),Ue(\"path\",{d:\"M19 12l-6 -6\"})]})}import{jsx as Qe,jsxs as vr}from\"react/jsx-runtime\";function Hn(){return vr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Qe(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Qe(\"path\",{d:\"M9 4v6l-2 4v2h10v-2l-2-4v-6\"}),Qe(\"path\",{d:\"M12 16v5\"}),Qe(\"path\",{d:\"M8 4h8\"})]})}import{jsx as Mt,jsxs as Mr}from\"react/jsx-runtime\";function Ke(){return Mr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Mt(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Mt(\"path\",{d:\"M18 6l-12 12\"}),Mt(\"path\",{d:\"M6 6l12 12\"})]})}import{jsx as U,jsxs as _n}from\"react/jsx-runtime\";function An({currentPinned:e,onPinChange:t}){let[n,o]=On(!1),r=Nr(null),[l,a]=On(!1),s=Lr(()=>{if(r.current){let p=getComputedStyle(r.current).direction;a(p===\"rtl\")}},[]);fe(()=>{s()},[s]),Ir(()=>{n&&s()},[n,s]);let c=l?\"right\":\"left\",d=l?\"left\":\"right\",i=e===c,u=e===d;return _n(kt,{opened:n,onChange:o,position:\"bottom\",withArrow:!0,shadow:\"sm\",children:[U(kt.Target,{children:U(kr,{ref:r,className:\"mantine-datatable-header-cell-pinnable-icon\",role:\"button\",\"aria-label\":\"Pin column\",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:U(je,{size:\"xs\",variant:\"light\",onClick:p=>p.stopPropagation(),children:U(Hn,{})})})}),U(kt.Dropdown,{onClick:p=>p.stopPropagation(),onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:\"mantine-datatable-pinnable-dropdown\",children:_n(Er,{gap:4,children:[U(je,{size:\"sm\",variant:i?\"filled\":\"light\",onClick:()=>t(i?void 0:c),\"aria-label\":\"Pin left\",children:U(In,{})}),U(je,{size:\"sm\",variant:u?\"filled\":\"light\",onClick:()=>t(u?void 0:d),\"aria-label\":\"Pin right\",children:U(Nn,{})}),e&&U(je,{size:\"sm\",variant:\"light\",color:\"red\",onClick:()=>t(void 0),\"aria-label\":\"Unpin\",children:U(Ke,{})})]})})]})}import{useDirection as Hr}from\"@mantine/core\";import{useCallback as zn,useRef as Wn,useState as Or}from\"react\";import{jsx as _r}from\"react/jsx-runtime\";var Bn=50,Vn=e=>{let{accessor:t,columnRef:n}=e,[o,r]=Or(!1),l=Wn(0),a=Wn({current:0,next:0}),{dir:s}=Hr(),c=s===\"rtl\",{setMultipleColumnWidths:d,beginResize:i,endResize:u}=ye(),p=zn(m=>{if(m.preventDefault(),m.stopPropagation(),!n.current)return;let S=n.current,f=S.nextElementSibling;for(;f;){let h=f.getAttribute(\"data-accessor\");if(h&&h!==\"__selection__\")break;f=f.nextElementSibling}if(!f)return;let C=f.getAttribute(\"data-accessor\");if(!C)return;let L=S.offsetWidth,w=f.offsetWidth;i(),r(!0),l.current=m.clientX,a.current={current:L,next:w};let I=h=>{let g=h.clientX-l.current;c&&(g=-g);let v=a.current.current-Bn,M=a.current.next-Bn,T=Math.max(-v,Math.min(g,M)),P=a.current.current+T,R=a.current.next-T;d([{accessor:t,width:`${P}px`},{accessor:C,width:`${R}px`}])},y=()=>{r(!1),document.body.style.cursor=\"initial\",document.body.style.userSelect=\"initial\",u(),document.removeEventListener(\"mousemove\",I),document.removeEventListener(\"mouseup\",y)};document.body.style.cursor=\"col-resize\",document.body.style.userSelect=\"none\",document.addEventListener(\"mousemove\",I),document.addEventListener(\"mouseup\",y)},[t,n,c,d,i,u]),b=zn(()=>{if(!n.current)return;let S=n.current.nextElementSibling,f=[{accessor:t,width:\"auto\"}];if(S){let C=S.getAttribute(\"data-accessor\");C&&C!==\"__selection__\"&&f.push({accessor:C,width:\"auto\"})}d(f)},[t,n,d]);return _r(\"div\",{className:\"mantine-datatable-header-resizable-handle\",style:{cursor:o?\"col-resize\":void 0},onMouseDown:p,onDoubleClick:b,onClick:m=>m.stopPropagation(),title:\"Drag to resize column, double-click to reset\"})};import{jsx as Je,jsxs as Ar}from\"react/jsx-runtime\";function Gn(){return Ar(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Je(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Je(\"path\",{d:\"M8 7l4 -4l4 4\"}),Je(\"path\",{d:\"M8 17l4 4l4 -4\"}),Je(\"path\",{d:\"M12 3l0 18\"})]})}import{jsx as qe,jsxs as zr}from\"react/jsx-runtime\";function Fn(){return zr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[qe(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),qe(\"path\",{d:\"M12 5l0 14\"}),qe(\"path\",{d:\"M16 9l-4 -4\"}),qe(\"path\",{d:\"M8 9l4 -4\"})]})}import{jsx as be,jsxs as Wr}from\"react/jsx-runtime\";function $n(){return Wr(\"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:\"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),be(\"path\",{d:\"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),be(\"path\",{d:\"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),be(\"path\",{d:\"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),be(\"path\",{d:\"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),be(\"path\",{d:\"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"})]})}import{jsx as G,jsxs as Et}from\"react/jsx-runtime\";function Un({className:e,style:t,pinnedInfo:n,accessor:o,visibleMediaQuery:r,title:l,sortable:a,draggable:s,toggleable:c,pinnable:d,resizable:i,sortIcons:u,textAlign:p,width:b,sortStatus:m,onSortStatusChange:S,filter:f,filterPopoverProps:C,filterPopoverDisableClickOutside:L,filtering:w,sortKey:I}){let{setSourceColumn:y,setTargetColumn:h,swapColumns:g,columnsToggle:v,setColumnsToggle:M,columnsPinning:T,setColumnsPinning:P}=ye(),[R,k]=Xr(!1),H=$r(null),x=T?.find(_=>_.accessor===o)?.pinned;if(!ee(r))return null;let D=l??Pe(o),O=typeof D==\"string\"?D:void 0,z=a&&S?_=>{_?.defaultPrevented||S({sortKey:I,columnAccessor:o,direction:m?.columnAccessor===o?m.direction===\"asc\"?\"desc\":\"asc\":m?.direction??\"asc\"})}:void 0,A=_=>{_.stopPropagation(),y(o),k(!1)},K=_=>{_.preventDefault(),h(o),k(!0)},re=()=>{h(o),k(!1),g()},le=()=>{k(!0)},ie=()=>{k(!1)},se=_=>{_.stopPropagation(),M(v.map($=>$.accessor===o?{...$,toggled:!1}:$))},ce=_=>{P($=>$.map(j=>j.accessor===o?{...j,pinned:_}:j))};return Et(Fr,{\"data-accessor\":o,\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:Ye({\"mantine-datatable-header-cell-sortable\":a,\"mantine-datatable-header-cell-toggleable\":c,\"mantine-datatable-header-cell-pinnable\":d,\"mantine-datatable-header-cell-resizable\":i},e),style:[{width:b,...i?{}:{minWidth:b,maxWidth:b}},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],role:a?\"button\":void 0,tabIndex:a?0:void 0,onClick:z,onKeyDown:_=>_.key===\"Enter\"&&z?.(),ref:H,children:[Et(Gr,{className:\"mantine-datatable-header-cell-sortable-group\",justify:\"space-between\",wrap:\"nowrap\",children:[Et(Vr,{align:\"center\",w:\"100%\",className:Ye({\"mantine-datatable-header-cell-draggable\":s,\"mantine-datatable-header-cell-drag-over\":R}),draggable:s,onDragStart:s?A:void 0,onDragEnter:s?le:void 0,onDragOver:s?K:void 0,onDrop:s?re:void 0,onDragLeave:s?ie:void 0,children:[s?G(Ze,{role:\"img\",\"aria-label\":\"Drag column\",children:G(Xn,{className:\"mantine-datatable-header-cell-draggable-action-icon\",variant:\"subtle\",size:\"xs\",onClick:_=>{_.stopPropagation()},children:G($n,{})})}):null,G(Br,{className:Ye(\"mantine-datatable-header-cell-sortable-text\",{[te]:p===\"left\",[ne]:p===\"center\",[oe]:p===\"right\"},De,we),title:O,children:D})]}),d?G(An,{currentPinned:x,onPinChange:ce}):null,c?G(Ze,{className:\"mantine-datatable-header-cell-toggleable-icon\",role:\"img\",\"aria-label\":\"Toggle column\",children:G(Xn,{size:\"xs\",variant:\"light\",onClick:se,children:G(Ke,{})})}):null,a||m?.columnAccessor===o?m?.columnAccessor===o?G(Ze,{className:Ye(\"mantine-datatable-header-cell-sortable-icon\",{\"mantine-datatable-header-cell-sortable-icon-reversed\":m.direction===\"desc\"}),role:\"img\",\"aria-label\":`Sorted ${m.direction===\"desc\"?\"descending\":\"ascending\"}`,children:u?.sorted||G(Fn,{})}):G(Ze,{className:\"mantine-datatable-header-cell-sortable-unsorted-icon\",role:\"img\",\"aria-label\":\"Not sorted\",children:u?.unsorted||G(Gn,{})}):null,f?G(Ln,{filterPopoverProps:C,isActive:!!w,filterPopoverDisableClickOutside:L,children:f}):null]}),i&&o!==\"__selection__\"?G(Vn,{accessor:o,columnRef:H}):null]})}import{Checkbox as Ur,TableTh as Qr}from\"@mantine/core\";import Kr from\"clsx\";import{jsx as Qn}from\"react/jsx-runtime\";function Kn({className:e,style:t,trigger:n,shadowVisible:o,checked:r,indeterminate:l,checkboxProps:a,onChange:s,rowSpan:c,ref:d}){let i=!a.disabled;return Qn(Qr,{ref:d,className:Kr(\"mantine-datatable-header-selector-cell\",{[Q]:n===\"cell\"&&i},e),style:t,rowSpan:c,\"data-shadow-visible\":o||void 0,\"data-accessor\":\"__selection__\",onClick:n===\"cell\"&&i?s:void 0,children:Qn(Ur,{classNames:i?{input:Q}:void 0,checked:r,indeterminate:l,onChange:s,...a,disabled:!(s||a.onChange)||a.disabled})})}import{jsx as ae,jsxs as et}from\"react/jsx-runtime\";function al(e,t){let o=(e.columns??[]).filter(u=>!u.hidden).map(u=>String(u.accessor)),r=o.map(u=>t.get(u)).filter(Boolean);if(r.length===0||r.length!==o.length)return;let l=new Set(r.map(u=>u.logicalSide));if(l.size>1)return;let a=[...l][0],s=a===\"left\"?o[0]:o[o.length-1],c=t.get(s);if(!c)return;let d=a===\"left\"?o[o.length-1]:o[0],i=t.get(d);return{...c,isBoundary:i?.isBoundary??!1}}function Jn({selectionColumnHeaderRef:e,className:t,style:n,sortStatus:o,sortIcons:r,onSortStatusChange:l,columns:a,defaultColumnProps:s,groups:c,pinnedMap:d,selectionTrigger:i,selectionVisible:u,selectionChecked:p,selectionIndeterminate:b,onSelectionChange:m,selectionCheckboxProps:S,selectorCellShadowVisible:f,selectionColumnClassName:C,selectionColumnStyle:L,withColumnBorders:w=!1,ref:I}){let y=c?Rt(c):0,h=y>0?y+1:1,g=u?ae(Kn,{ref:e,className:C,style:L,trigger:i,shadowVisible:f,checked:p,indeterminate:b,checkboxProps:S,onChange:m,rowSpan:c?h:void 0}):null,{columnsToggle:v,setColumnsToggle:M}=ye(),[T,P]=ol(!1),R=a.some(E=>E.toggleable),k=R?Object.fromEntries(a.map(({accessor:E,title:x})=>[E,x??Pe(String(E))])):void 0,H=et(tl,{className:nl(\"mantine-datatable-header\",t),style:n,ref:I,onContextMenu:R?E=>{E.preventDefault(),P(x=>!x)}:void 0,children:[c&&Array.from({length:y},(E,x)=>{let D=xt(c,x);return et(jn,{children:[x===0&&g,D.map((O,z)=>ae(xn,{group:O,pinnedInfo:al(O,d),maxDepth:y,currentDepth:x,previousGroups:D.slice(0,z),isLastGroup:z===D.length-1,withColumnBorders:w,totalTableColumns:a.length},O.id))]},`group-depth-${x}`)}),et(jn,{children:[!c&&g,a.map(({hidden:E,...x},D)=>{if(E)return null;let{accessor:O,visibleMediaQuery:z,textAlign:A,width:K,title:re,sortable:le,draggable:ie,toggleable:se,pinnable:ce,resizable:_,titleClassName:$,titleStyle:j,filter:J,filterPopoverProps:rt,filterPopoverDisableClickOutside:lt,filtering:it,sortKey:st}={...s,...x};return ae(Un,{accessor:O,pinnedInfo:d.get(String(O)),className:$,style:j,visibleMediaQuery:z,textAlign:A,width:K,title:re,sortable:le,draggable:ie,toggleable:se,pinnable:ce,resizable:_&&D<a.length-1,sortStatus:o,sortIcons:r,sortKey:st,onSortStatusChange:l,filter:J,filterPopoverProps:rt,filterPopoverDisableClickOutside:lt,filtering:it},O)})]})]});return R?et(qr,{position:\"bottom\",withArrow:!0,shadow:\"md\",opened:T,onChange:P,children:[ae(Yr,{children:H}),ae(Zr,{children:ae(el,{children:v.filter(E=>E.toggleable).map(E=>ae(Jr,{children:ae(jr,{classNames:{label:\"mantine-datatable-header-column-toggle-checkbox-label\"},size:\"xs\",label:k[E.accessor],checked:E.toggled,onChange:x=>{M(v.map(D=>D.accessor===E.accessor?{...D,toggled:x.currentTarget.checked}:D))}})},E.accessor))})})]}):H}import{Center as rl,Loader as ll}from\"@mantine/core\";import il from\"clsx\";import{jsx as qn}from\"react/jsx-runtime\";function Zn({fetching:e,customContent:t,backgroundBlur:n,size:o,type:r,color:l}){return qn(rl,{className:il(\"mantine-datatable-loader\",{\"mantine-datatable-loader-fetching\":e}),style:[{backdropFilter:n?`blur(${n}px)`:void 0}],children:e&&(t||qn(ll,{size:o,type:r,color:l}))})}import{Box as gl,Pagination as Tl,rem as hl,Text as Cl}from\"@mantine/core\";import ao from\"clsx\";import{Button as cl,Group as ul,Menu as dl,MenuDropdown as ml,MenuItem as pl,MenuTarget as fl,rem as Ie,Text as eo}from\"@mantine/core\";import bl from\"clsx\";import{jsx as Lt,jsxs as sl}from\"react/jsx-runtime\";function Yn(){return sl(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Lt(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Lt(\"path\",{d:\"M8 9l4 -4l4 4\"}),Lt(\"path\",{d:\"M16 15l-4 4l-4 -4\"})]})}import{jsx as ge,jsxs as no}from\"react/jsx-runtime\";var to={xs:Ie(22),sm:Ie(26),md:Ie(32),lg:Ie(38),xl:Ie(44)};function oo({size:e,label:t,values:n,value:o,activeTextColor:r,activeBackgroundColor:l,onChange:a}){return no(ul,{gap:\"xs\",children:[ge(eo,{component:\"div\",size:e,children:t}),no(dl,{withinPortal:!0,withArrow:!0,offset:2,classNames:{arrow:\"mantine-datatable-page-size-selector-menu-arrow\"},children:[ge(fl,{children:ge(cl,{size:e,variant:\"default\",classNames:{section:\"mantine-datatable-page-size-selector-button-icon\"},rightSection:ge(Yn,{}),style:[{fontWeight:\"normal\"},s=>({height:to[e],paddingLeft:s.spacing[e],paddingRight:s.spacing[e]})],children:o})}),ge(ml,{children:n.map(s=>{let c=s===o;return ge(pl,{className:bl({\"mantine-datatable-page-size-selector-active\":c}),style:[{height:to[e]},c&&(r||l)?d=>ze({theme:d,paginationActiveTextColor:r,paginationActiveBackgroundColor:l}):void 0],disabled:c,onClick:()=>a(s),children:ge(eo,{component:\"div\",size:e,children:s})},s)})})]})]})}import{Fragment as yl,jsx as Te,jsxs as Pl}from\"react/jsx-runtime\";function ro({className:e,style:t,fetching:n,page:o,onPageChange:r,paginationWithEdges:l,paginationWithControls:a,paginationActiveTextColor:s,paginationActiveBackgroundColor:c,paginationSize:d,loadingText:i,noRecordsText:u,paginationText:p,totalRecords:b,recordsPerPage:m,onRecordsPerPageChange:S,recordsPerPageLabel:f,recordsPerPageOptions:C,recordsLength:L,horizontalSpacing:w,paginationWrapBreakpoint:I,getPaginationControlProps:y,getPaginationItemProps:h,renderPagination:g}){let v;if(b){let x=(o-1)*m+1,D=x+(L||0)-1;v=p({from:x,to:D,totalRecords:b})}else v=n?i:u;let M=b&&m?Math.max(1,Math.ceil(b/m)):1,T=b?(o-1)*(m??0)+1:void 0,P=b?(T??1)+(L??0)-1:void 0,k=!ee(({breakpoints:x})=>`(min-width: ${typeof I==\"number\"?`${hl(I)}rem`:x[I]||I})`),H={Text:x=>Te(Cl,{component:\"div\",className:\"mantine-datatable-pagination-text\",size:d,...x,children:v}),PageSizeSelector:x=>C?Te(oo,{activeTextColor:s,activeBackgroundColor:c,size:d,label:f,values:C,value:m,onChange:S,...x}):null,Pagination:x=>Te(Tl,{classNames:{root:ao(\"mantine-datatable-pagination-pages\",{\"mantine-datatable-pagination-pages-fetching\":n||!L}),control:\"mantine-datatable-pagination-pages-control\"},style:s||c?D=>ze({theme:D,paginationActiveTextColor:s,paginationActiveBackgroundColor:c}):void 0,withEdges:l,withControls:a,value:o,onChange:r,size:d,total:M,getControlProps:y,getItemProps:h,...x})},E={state:{paginationSize:d,page:o,totalPages:M,totalRecords:b,recordsPerPage:m,recordsLength:L,fetching:n,from:T,to:P,isWrapped:k},actions:{setPage:x=>r?.(x),setRecordsPerPage:S?x=>S(x):void 0},Controls:H};return Te(gl,{px:w??\"xs\",py:\"xs\",className:ao(\"mantine-datatable-pagination\",e),style:[{flexDirection:k?\"column\":\"row\"},t],children:typeof g==\"function\"?g(E):Pl(yl,{children:[Te(H.Text,{}),Te(H.PageSizeSelector,{}),Te(H.Pagination,{})]})})}import{TableTr as Il}from\"@mantine/core\";import Nl from\"clsx\";import{TableTd as Dl}from\"@mantine/core\";import wl from\"clsx\";import{jsx as Sl}from\"react/jsx-runtime\";function lo({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,record:r,index:l,onClick:a,onDoubleClick:s,onContextMenu:c,noWrap:d,ellipsis:i,textAlign:u,width:p,accessor:b,render:m,defaultRender:S,customCellAttributes:f}){return ee(o)?Sl(Dl,{\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:wl({[De]:d||i,[we]:i,[Q]:a||s,[Ge]:c,[te]:u===\"left\",[ne]:u===\"center\",[oe]:u===\"right\"},e),style:[{width:p,minWidth:p,maxWidth:p},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],onClick:a,onDoubleClick:s,onContextMenu:c,...f?.(r,l),children:m?m(r,l):S?S(r,l,b):St(r,b)}):null}import{Collapse as Rl,TableTd as xl,TableTr as io}from\"@mantine/core\";import{Fragment as vl,jsx as Ne,jsxs as Ml}from\"react/jsx-runtime\";function so({open:e,colSpan:t,content:n,collapseProps:o}){let{expanded:r,visible:l}=Pn(e,o?.transitionDuration);return l?Ml(vl,{children:[Ne(io,{}),Ne(io,{children:Ne(xl,{className:\"mantine-datatable-row-expansion-cell\",colSpan:t,children:Ne(Rl,{expanded:r,...o,children:Ne(\"div\",{className:\"mantine-datatable-row-expansion-cell-content\",children:n()})})})})]}):null}import{Checkbox as kl,TableTd as El}from\"@mantine/core\";import Ll from\"clsx\";import{jsx as co}from\"react/jsx-runtime\";function uo({className:e,style:t,record:n,index:o,trigger:r,onChange:l,withRightShadow:a,checkboxProps:s,getCheckboxProps:c,...d}){let i={...s,...c(n,o)},u=!d.disabled&&!i.disabled,p=b=>{b.stopPropagation(),r===\"cell\"&&u&&l?.(b)};return co(El,{className:Ll(\"mantine-datatable-row-selector-cell\",{[Q]:r===\"cell\"&&u},e),style:t,\"data-shadow-visible\":a||void 0,onClick:p,children:co(kl,{classNames:u?{input:Q}:void 0,onChange:l,...d,...i})})}import{Fragment as mo,jsx as tt,jsxs as po}from\"react/jsx-runtime\";function fo({record:e,index:t,columns:n,defaultColumnProps:o,pinnedMap:r,defaultColumnRender:l,selectionTrigger:a,selectionVisible:s,selectionChecked:c,onSelectionChange:d,isRecordSelectable:i,selectionCheckboxProps:u,getSelectionCheckboxProps:p,onClick:b,onDoubleClick:m,onContextMenu:S,onCellClick:f,onCellDoubleClick:C,onCellContextMenu:L,expansion:w,customAttributes:I,color:y,backgroundColor:h,className:g,style:v,selectorCellShadowVisible:M,selectionColumnClassName:T,selectionColumnStyle:P,rowFactory:R}){let k=po(mo,{children:[s&&tt(uo,{className:T,style:P,record:e,index:t,trigger:a,withRightShadow:M,checked:c,disabled:!d||(i?!i(e,t):!1),onChange:d,checkboxProps:u,getCheckboxProps:p}),n.map(({hidden:x,hiddenContent:D,...O},z)=>{if(x||D)return null;let{accessor:A,visibleMediaQuery:K,textAlign:re,noWrap:le,ellipsis:ie,width:se,render:ce,cellsClassName:_,cellsStyle:$,customCellAttributes:j}={...o,...O};return tt(lo,{pinnedInfo:r.get(String(A)),className:typeof _==\"function\"?_(e,t):_,style:$?.(e,t),visibleMediaQuery:K,record:e,index:t,onClick:f?J=>f({event:J,record:e,index:t,column:O,columnIndex:z}):void 0,onDoubleClick:C?J=>C({event:J,record:e,index:t,column:O,columnIndex:z}):void 0,onContextMenu:L?J=>L({event:J,record:e,index:t,column:O,columnIndex:z}):void 0,accessor:A,textAlign:re,noWrap:le,ellipsis:ie,width:se,render:ce,defaultRender:l,customCellAttributes:j},A)})]}),H=w&&tt(so,{colSpan:n.filter(({hidden:x})=>!x).length+(s?1:0),open:w.isRowExpanded(e),content:w.content({record:e,index:t}),collapseProps:w.collapseProps}),E=Hl({record:e,index:t,selectionChecked:c,onClick:b,onDoubleClick:m,onContextMenu:S,expansion:w,customAttributes:I,color:y,backgroundColor:h,className:g,style:v});return R?R({record:e,index:t,rowProps:E,children:k,expandedElement:H}):po(mo,{children:[tt(Il,{...E,children:k}),H]})}function Hl({record:e,index:t,selectionChecked:n,onClick:o,onDoubleClick:r,onContextMenu:l,expansion:a,customAttributes:s,color:c,backgroundColor:d,className:i,style:u}){return{className:Nl(\"mantine-datatable-row\",{[Q]:o||r||a?.isExpandable({record:e,index:t})&&a?.expandOnClick},{[Ge]:l},typeof i==\"function\"?i(e,t):i),\"data-selected\":n||void 0,onClick:p=>{if(a){let{isExpandable:b,isRowExpanded:m,expandOnClick:S,expandRow:f,collapseRow:C}=a;b({record:e,index:t})&&S&&(m(e)?C(e):f(e))}o?.({event:p,record:e,index:t})},onDoubleClick:r?p=>r({event:p,record:e,index:t}):void 0,onContextMenu:l?p=>l({event:p,record:e,index:t}):void 0,style:[c||d?p=>{let b=c?.(e,t),m=d?.(e,t);return Gt({theme:p,color:b,backgroundColor:m})}:void 0,u?.(e,t)],...s?.(e,t)??{}}}import{Box as bo,ScrollArea as Ol}from\"@mantine/core\";import nt from\"clsx\";import{jsx as ot,jsxs as _l}from\"react/jsx-runtime\";function go({leftShadowBehind:e,rightShadowBehind:t,onScrollPositionChange:n,children:o,viewportRef:r,scrollAreaProps:l}){return _l(Ol,{...l,viewportRef:r,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:n,children:[o,ot(bo,{className:nt(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-top-shadow\")}),ot(\"div\",{className:nt(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-left-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":e})}),ot(\"div\",{className:nt(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-right-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":t})}),ot(bo,{className:nt(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-bottom-shadow\")})]})}import{jsx as F,jsxs as ho}from\"react/jsx-runtime\";function Gl({withTableBorder:e,borderRadius:t,textSelectionDisabled:n,height:o=\"100%\",minHeight:r,maxHeight:l,shadow:a,verticalAlign:s=\"center\",fetching:c,columns:d,storeColumnsKey:i,groups:u,pinFirstColumn:p,pinLastColumn:b,defaultColumnProps:m,defaultColumnRender:S,idAccessor:f=\"id\",records:C,selectionTrigger:L=\"checkbox\",selectedRecords:w,onSelectedRecordsChange:I,selectionColumnClassName:y,selectionColumnStyle:h,isRecordSelectable:g,selectionCheckboxProps:v,allRecordsSelectionCheckboxProps:M={\"aria-label\":\"Select all records\"},getRecordSelectionCheckboxProps:T=(ue,V)=>({\"aria-label\":`Select record ${V+1}`}),sortStatus:P,sortIcons:R,onSortStatusChange:k,horizontalSpacing:H,page:E,onPageChange:x,totalRecords:D,recordsPerPage:O,onRecordsPerPageChange:z,recordsPerPageOptions:A,recordsPerPageLabel:K=\"Records per page\",paginationWithEdges:re,paginationWithControls:le,paginationActiveTextColor:ie,paginationActiveBackgroundColor:se,paginationSize:ce=\"sm\",paginationText:_=({from:ue,to:V,totalRecords:dt})=>`${ue} - ${V} / ${dt}`,paginationWrapBreakpoint:$=\"sm\",getPaginationControlProps:j=ue=>ue===\"previous\"?{\"aria-label\":\"Previous page\"}:ue===\"next\"?{\"aria-label\":\"Next page\"}:{},getPaginationItemProps:J,renderPagination:rt,loaderBackgroundBlur:lt,customLoader:it,loaderSize:st,loaderType:Co,loaderColor:yo,loadingText:Po=\"...\",emptyState:Do,noRecordsText:Ht=\"No records\",noRecordsIcon:wo,highlightOnHover:So,striped:Ro,noHeader:xo,onRowClick:vo,onRowDoubleClick:Mo,onRowContextMenu:ko,onCellClick:Eo,onCellDoubleClick:Lo,onCellContextMenu:Io,onScroll:No,onScrollToTop:Ho,onScrollToBottom:Oo,onScrollToLeft:_o,onScrollToRight:Ao,c:zo,backgroundColor:Wo,borderColor:Bo,rowBorderColor:Vo,stripedColor:Go,highlightOnHoverColor:Fo,rowColor:$o,rowBackgroundColor:Xo,rowExpansion:Uo,rowClassName:Qo,rowStyle:Ko,customRowAttributes:jo,scrollViewportRef:Jo,scrollAreaProps:qo,tableRef:Zo,bodyRef:Yo,m:ea,my:ta,mx:na,mt:oa,mb:aa,ml:ra,mr:la,className:ia,classNames:Se,style:sa,styles:Re,rowFactory:ca,tableWrapper:ct,...ut}){let ue=Vl(()=>u?Le(u):d,[d,u]),{refs:V,onScroll:dt}=un({scrollCallbacks:{onScroll:No,onScrollToTop:Ho,onScrollToBottom:Oo,onScrollToLeft:_o,onScrollToRight:Ao},withRowBorders:ut.withRowBorders}),q=an({key:i,columns:ue,headerRef:V.header,scrollViewportRef:V.scrollViewport}),xe=q.effectiveColumns,ua=It(V.table,Zo),da=It(V.scrollViewport,Jo),Ot=at(null),ma=It(Ot,Yo),pa=hn({rowExpansion:Uo,records:C,idAccessor:f}),{pinnedMap:ve,hasLeftPinned:_t,hasRightPinned:fa}=dn({columns:xe,theadRef:V.header,tbodyRef:Ot,selectionColumnHeaderRef:V.selectionColumnHeader,selectionVisible:!!w,pinFirstColumn:p,pinLastColumn:b}),He=at(!1),At=at(E),mt=at(C),ba=Nt(N=>{He.current=!0,mt.current=C,x(N)},[x,C]);Wl(()=>{At.current!==E&&(He.current=!0,mt.current=C,At.current=E)},[E,C]);let Me=C?.length;Bl(()=>{if(!He.current||c||C===mt.current)return;let N=V.scrollViewport.current;if(!N)return;let de=requestAnimationFrame(()=>{N.scrollTo({top:0,left:0}),He.current=!1});return()=>cancelAnimationFrame(de)},[c,C,V.scrollViewport]);let zt=C?.map(N=>B(N,f)),he=!!w,ke=w?.map(N=>B(N,f)),Wt=zt!==void 0&&ke!==void 0&&ke.length>0,pt=g?C?.filter(g):C,Oe=pt?.map(N=>B(N,f)),_e=Wt&&Oe.every(N=>ke.includes(N)),ga=Wt&&Oe.some(N=>ke.includes(N)),Ta=Nt(()=>{w&&I&&I(_e?w.filter(N=>!Oe.includes(B(N,f))):Be([...w,...pt],N=>B(N,f)))},[_e,f,I,Oe,pt,w]),{lastSelectionChangeIndex:Ae,setLastSelectionChangeIndex:ha}=mn(zt),ft=he&&!_t,Ca={m:ea,my:ta,mx:na,mt:oa,mb:aa,ml:ra,mr:la},ya=Nt(({children:N})=>ct?ct({children:N}):N,[ct]);return F(Tt,{...q,pinnedMap:ve,children:ho(Al,{ref:V.root,...Ca,className:To(\"mantine-datatable\",{\"mantine-datatable-with-border\":e},ia,Se?.root),style:[N=>({...Vt({theme:N,c:zo,backgroundColor:Wo,borderColor:Bo,rowBorderColor:Vo,stripedColor:Go,highlightOnHoverColor:Fo}),borderRadius:N.radius[t]||t,boxShadow:N.shadows[a]||a,height:o,minHeight:r,maxHeight:l}),sa,Re?.root,{position:\"relative\"}],children:[F(go,{viewportRef:da,leftShadowBehind:he||_t,rightShadowBehind:fa,onScrollPositionChange:dt,scrollAreaProps:qo,children:F(ya,{children:ho(zl,{ref:ua,horizontalSpacing:H,className:To(\"mantine-datatable-table\",{[Dn]:n,\"mantine-datatable-vertical-align-top\":s===\"top\",\"mantine-datatable-vertical-align-bottom\":s===\"bottom\",\"mantine-datatable-selection-column-visible\":he,\"mantine-datatable-resizable-columns\":q.hasResizableColumns,\"mantine-datatable-resize-locked\":q.isLocked,\"mantine-datatable-resizing\":q.isResizing},Se?.table),style:{...Re?.table,...q.isLocked?{tableLayout:\"fixed\"}:null,...q.tableWidth!=null?{width:`${q.tableWidth}px`}:null},\"data-striped\":Me&&Ro||void 0,\"data-highlight-on-hover\":So||void 0,...ut,children:[xo?null:F(Tt,{...q,pinnedMap:ve,children:F(Jn,{ref:V.header,selectionColumnHeaderRef:V.selectionColumnHeader,className:Se?.header,style:Re?.header,columns:xe,defaultColumnProps:m,groups:u,pinnedMap:ve,sortStatus:P,sortIcons:R,onSortStatusChange:k,selectionTrigger:L,selectionVisible:he,selectionChecked:_e,selectionIndeterminate:ga&&!_e,onSelectionChange:Ta,selectionCheckboxProps:{...v,...M},selectorCellShadowVisible:ft,selectionColumnClassName:y,selectionColumnStyle:h,withColumnBorders:ut.withColumnBorders})}),F(\"tbody\",{ref:ma,children:Me?C.map((N,de)=>{let bt=B(N,f),gt=ke?.includes(bt)||!1,Bt;return I&&w&&(Bt=Pa=>{if(Pa.nativeEvent.shiftKey&&Ae!==null){let Ce=C.filter(de>Ae?(me,pe)=>pe>=Ae&&pe<=de&&(g?g(me,pe):!0):(me,pe)=>pe>=de&&pe<=Ae&&(g?g(me,pe):!0));I(gt?gn(w,Ce,me=>B(me,f)):Be([...w,...Ce],me=>B(me,f)))}else I(gt?w.filter(Ce=>B(Ce,f)!==bt):Be([...w,N],Ce=>B(Ce,f)));ha(de)}),F(fo,{record:N,index:de,columns:xe,defaultColumnProps:m,pinnedMap:ve,defaultColumnRender:S,selectionTrigger:L,selectionVisible:he,selectionChecked:gt,onSelectionChange:Bt,isRecordSelectable:g,selectionCheckboxProps:v,getSelectionCheckboxProps:T,onClick:vo,onDoubleClick:Mo,onCellClick:Eo,onCellDoubleClick:Lo,onContextMenu:ko,onCellContextMenu:Io,expansion:pa,color:$o,backgroundColor:Xo,className:Qo,style:Ko,customAttributes:jo,selectorCellShadowVisible:ft,selectionColumnClassName:y,selectionColumnStyle:h,idAccessor:f,rowFactory:ca},bt)}):F(Ut,{})}),xe.some(({footer:N})=>N)&&F(Rn,{ref:V.footer,className:Se?.footer,style:Re?.footer,columns:xe,defaultColumnProps:m,pinnedMap:ve,selectionVisible:he,selectorCellShadowVisible:ft})]})})}),!!(E&&Me)&&F(ro,{className:Se?.pagination,style:Re?.pagination,horizontalSpacing:H,fetching:c,page:E,onPageChange:ba,totalRecords:D,recordsPerPage:O,onRecordsPerPageChange:z,recordsPerPageOptions:A,recordsPerPageLabel:K,paginationWithEdges:re,paginationWithControls:le,paginationActiveTextColor:ie,paginationActiveBackgroundColor:se,paginationSize:ce,paginationText:_,paginationWrapBreakpoint:$,getPaginationControlProps:j,getPaginationItemProps:J,noRecordsText:Ht,loadingText:Po,recordsLength:Me,renderPagination:rt}),F(Zn,{fetching:c,backgroundBlur:lt,customContent:it,size:st,type:Co,color:yo}),F(Kt,{icon:wo,text:Ht,active:!c&&!Me,children:Do})]})})}import{TableTr as Fl}from\"@mantine/core\";import{useMergedRef as $l}from\"@mantine/hooks\";import{useEffect as Xl,useRef as Ul}from\"react\";import{jsx as Kl}from\"react/jsx-runtime\";function Ql({className:e,children:t,isDragging:n,ref:o,...r}){let l=Ul(null),a=$l(l,o);return Xl(()=>{if(!l.current||!n)return;let i=l.current.parentElement.parentElement.children[0].children[0];for(let u=0;u<i.children.length;u++){let b=i.children[u].getBoundingClientRect(),m=l.current.children[u];m.style.height=`${b.height}px`,m.style.width=`${b.width}px`,m.style.minWidth=`${b.width}px`,m.style.maxWidth=`${b.width}px`}},[n,t]),Kl(Fl,{\"data-is-dragging\":n,ref:a,...r,className:e,children:t})}export{Gl as DataTable,Ql as DataTableDraggableRow,Ve as calculateColSpan,gn as differenceBy,Le as flattenColumns,xt as getGroupsAtDepth,Rt as getMaxGroupDepth,B as getRecordId,St as getValueAtPath,Pe as humanize,Tn as needsRightBorder,os as reorderRecords,as as swapRecords,Be as uniqBy,an as useDataTableColumns};\n//# sourceMappingURL=index.mjs.map","import { Group, Skeleton, Stack } from \"@mantine/core\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\nimport { EntityForm } from \"./EntityForm.tsx\";\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 { data, isLoading } = useGetOne<T>(apiPath, queryKey, id);\n const { mutateAsync: update, isPending, error } = useUpdateOne<T>(apiPath, queryKey);\n\n if (isLoading || !data) {\n return (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array.from({ length: fields.length }).map((_, index) => (\n <Skeleton key={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 }\n\n const persist = async (values: T) => {\n await update({ ...values, id });\n };\n\n return (\n <EntityForm\n fields={fields}\n steps={steps}\n record={data}\n recordId={id}\n submitting={isPending}\n error={error}\n onPersist={persist}\n onClose={onClose}\n />\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { ReactNode, useEffect, useState } from \"react\";\n\nexport interface DeleteModalProps<T> {\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n selectedRecords: T[];\n confirmMessage?: (records: T[]) => ReactNode;\n}\n\nexport function DeleteModal<T extends BaseEntity>({\n queryKey,\n apiPath,\n onClose,\n selectedRecords,\n confirmMessage,\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 {confirmMessage\n ? confirmMessage(records)\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 | ((prev: T) => T)) => void] {\n const storageKey = `use_persistent_storage_${key}`;\n\n const [state, setState] = useState<T>(() => {\n try {\n const storedValue = localStorage.getItem(storageKey);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n } catch {\n return initialValue;\n }\n });\n\n const setPersistentState = (value: T | ((prev: T) => T)) => {\n setState((prev) => {\n const next = value instanceof Function ? value(prev) : value;\n localStorage.setItem(storageKey, JSON.stringify(next));\n return next;\n });\n };\n\n return [state, setPersistentState];\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","type 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\nexport type Filter = DateFilter | StringFilter | BooleanFilter;\n\nfunction hasId(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && \"id\" in value;\n}\n\nfunction arrayItemMatches(item: unknown, filterValue: string[]): boolean {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filterValue.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (hasId(obj) && filterValue.includes(obj.id as string)) return true;\n return Object.values(obj).some(\n (prop) =>\n (typeof prop === \"string\" && filterValue.includes(prop)) ||\n (hasId(prop) && filterValue.includes(prop.id as string)),\n );\n }\n return false;\n}\n\nfunction matchesQuery(value: unknown, filterValue: string | string[]): boolean {\n if (Array.isArray(filterValue)) {\n if (Array.isArray(value)) return value.some((item) => arrayItemMatches(item, filterValue));\n if (hasId(value)) return filterValue.includes(value.id as string);\n return false;\n }\n return typeof value === \"string\" && value.includes(filterValue);\n}\n\nfunction matchesDate(value: unknown, [from, to]: DatesRangeValue): boolean {\n if (!from && !to) return true;\n if (typeof value !== \"string\") return true;\n const date = value.split(\" \")[0];\n if (from && to) return date >= from && date <= to;\n if (from) return date >= from;\n return date <= to!;\n}\n\nfunction matchesFilter<T>(record: T, filter: Filter): boolean {\n if (filter.value === undefined) return true;\n const value = (record as Record<string, unknown>)[filter.id as string];\n switch (filter.type) {\n case \"query\":\n return matchesQuery(value, filter.value);\n case \"date\":\n return matchesDate(value, filter.value);\n case \"boolean\":\n return value === filter.value;\n }\n}\n\nexport function applyFilters<T>(data: T[], filters?: Filter[]): T[] {\n if (!filters || filters.length === 0) return data;\n return data.filter((record) => filters.every((filter) => matchesFilter(record, filter)));\n}\n","import { Box, Divider, Group, Text } from \"@mantine/core\";\nimport React from \"react\";\n\nexport interface FieldRow {\n label: React.ReactNode;\n value: React.ReactNode;\n}\n\nexport function FieldCardRows({ rows }: { readonly rows: readonly FieldRow[] }) {\n return (\n <>\n {rows.map((row, index) => (\n <Box key={typeof row.label === \"string\" ? row.label : index}>\n {index > 0 && <Divider />}\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"flex-start\" gap=\"md\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\" style={{ flexShrink: 0 }}>\n {row.label}\n </Text>\n <Box ta=\"right\" fz=\"sm\" style={{ minWidth: 0 }}>\n {row.value}\n </Box>\n </Group>\n </Box>\n ))}\n </>\n );\n}\n\nexport function FieldCard({ rows }: { readonly rows: readonly FieldRow[] }) {\n return (\n <Box\n bg=\"var(--mantine-color-gray-light)\"\n style={{ borderRadius: \"var(--mantine-radius-md)\", overflow: \"hidden\" }}\n >\n <FieldCardRows rows={rows} />\n </Box>\n );\n}\n","import { Accordion, ActionIcon, Box, Collapse, Divider, Group, Indicator, Menu, Pagination, Popover, Select, Stack, Text } from \"@mantine/core\";\nimport { BaseEntity } from \"../Hooks/useApi\";\nimport { Action, Field } from \"./DataTable\";\nimport React, { useState } from \"react\";\nimport { IconDotsVertical, IconFilter, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\nimport { FieldCardRows, FieldRow } from \"./FieldCard\";\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 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 expandable?: (record: T) => boolean;\n content: (record: T, isMobile: boolean) => React.ReactNode;\n expanded?: {\n recordIds: unknown[];\n onRecordIdsChange: (recordIds: unknown[]) => void;\n };\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\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n onRowClick,\n actions,\n canUpdate,\n canDelete,\n pagination,\n sort,\n rowExpansion,\n}: MobileCardListProps<T>) {\n const [internalExpandedIds, setInternalExpandedIds] = useState<Set<string | number>>(new Set());\n const controlledExpansion = rowExpansion?.expanded;\n\n const isExpanded = (id: string | number) =>\n controlledExpansion ? controlledExpansion.recordIds.includes(id) : internalExpandedIds.has(id);\n\n const toggleExpansion = (id: string | number) => {\n if (controlledExpansion) {\n const { recordIds, onRecordIdsChange } = controlledExpansion;\n onRecordIdsChange(\n recordIds.includes(id) ? recordIds.filter((r) => r !== id) : [...recordIds, id],\n );\n } else {\n setInternalExpandedIds((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 };\n const listFields = fields.filter((f) => f.list && f.column && !f.column.hidden);\n\n const filterFields = fields.filter((f) => f.column && f.column.filter != null);\n const activeFilterIds = filterFields.filter((f) => f.column.filtering).map((f) => f.id);\n const hasActiveFilter = activeFilterIds.length > 0;\n const defaultOpenFilters = hasActiveFilter ? activeFilterIds : filterFields.slice(0, 1).map((f) => f.id);\n const [filterOpen, setFilterOpen] = useState(false);\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 handleCardClick = (record: T, index: number, event: React.MouseEvent) => {\n onRowClick?.({ record, index, event });\n };\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {((sort && sortOptions.length > 0) || filterFields.length > 0) && (\n <Group gap=\"xs\" wrap=\"nowrap\" justify=\"flex-end\">\n {sort && sortOptions.length > 0 && (\n <>\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 </>\n )}\n {filterFields.length > 0 && (\n <Popover opened={filterOpen} onChange={setFilterOpen} position=\"bottom-end\" withArrow shadow=\"md\" trapFocus>\n <Popover.Target>\n <Indicator inline disabled={!hasActiveFilter} color=\"green\" withBorder>\n <ActionIcon\n variant={hasActiveFilter ? \"filled\" : \"default\"}\n size=\"input-sm\"\n onClick={() => setFilterOpen((o) => !o)}\n aria-label=\"Filter\"\n >\n <IconFilter size={18} />\n </ActionIcon>\n </Indicator>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <Accordion multiple defaultValue={defaultOpenFilters} style={{ minWidth: 260, maxWidth: 320 }}>\n {filterFields.map((f) => (\n <Accordion.Item key={f.id} value={f.id}>\n <Accordion.Control>\n <Group gap=\"xs\">\n <Text fw={600} fz=\"sm\">{(f.column.title as string) ?? f.id}</Text>\n {f.column.filtering && (\n <Box w={8} h={8} bg=\"green\" style={{ borderRadius: \"50%\" }} />\n )}\n </Group>\n </Accordion.Control>\n <Accordion.Panel>\n {typeof f.column.filter === \"function\"\n ? f.column.filter({ close: () => setFilterOpen(false) })\n : f.column.filter}\n </Accordion.Panel>\n </Accordion.Item>\n ))}\n </Accordion>\n </Popover.Dropdown>\n </Popover>\n )}\n </Group>\n )}\n\n {records.length === 0 && (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n )}\n\n {records.map((record, index) => {\n const recordKey = record.id ?? index;\n const canExpand = !!rowExpansion && (!rowExpansion.expandable || rowExpansion.expandable(record));\n const expanded = canExpand && isExpanded(recordKey);\n\n return (\n <React.Fragment key={recordKey}>\n <Box\n bg=\"var(--mantine-color-body)\"\n bd=\"1px solid var(--mantine-color-default-border)\"\n style={{\n borderRadius: \"var(--mantine-radius-md)\",\n overflow: \"hidden\",\n }}\n >\n <Box\n w=\"100%\"\n style={{ cursor: onRowClick || canExpand ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (canExpand && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {actions && actions.length > 0 && (\n <Group px=\"sm\" pt=\"sm\" justify=\"flex-end\">\n {(() => {\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 <FieldCardRows\n rows={listFields.map<FieldRow>((field) => ({\n label: (field.column.title as React.ReactNode) ?? field.id,\n value: renderFieldValue(record, field),\n }))}\n />\n </Box>\n {canExpand && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion!.content(record, true)}\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, Flex, 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, IconChevronRight, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus, getValueAtPath } 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 { applyFilters, Filter } from \"../utils/filter\";\nimport { MobileCardList } from \"./MobileCardList\";\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 expandable?: (record: T) => boolean;\n content: (record: T, isMobile: boolean) => 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 deleteConfirmMessage?: (records: T[]) => React.ReactNode;\n editRecordId?: string | null;\n onEditRecordIdChange?: (id: string | null) => void;\n}\n\nconst PAGE_SIZES = [10, 15, 50, 100, 500];\n\nexport function DataTable<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 deleteConfirmMessage,\n editRecordId,\n onEditRecordIdChange,\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 = applyFilters(Array.isArray(allData) ? allData : [], filters);\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 [internalExpandedIds, setInternalExpandedIds] = useState<unknown[]>([]);\n const expandedRecordIds = rowExpansion?.expanded?.recordIds ?? internalExpandedIds;\n const handleExpandedRecordIdsChange = rowExpansion?.expanded?.onRecordIdsChange ?? setInternalExpandedIds;\n\n const toggleExpanded = (id: unknown) => {\n if (expandedRecordIds.includes(id)) {\n handleExpandedRecordIdsChange(expandedRecordIds.filter((x) => x !== id));\n } else {\n handleExpandedRecordIdsChange(rowExpansion?.allowMultiple ? [...expandedRecordIds, id] : [id]);\n }\n };\n\n const firstColumnIndex = fields.findIndex((field) => field.list && field.column && !field.column.hidden);\n const expansionFields: Field<T>[] =\n rowExpansion && firstColumnIndex >= 0\n ? fields.map((field, index) => {\n if (index !== firstColumnIndex) return field;\n const originalRender = field.column.render;\n return {\n ...field,\n column: {\n ...field.column,\n render: (record: T, recordIndex: number) => {\n const expandable = rowExpansion.expandable ? rowExpansion.expandable(record) : true;\n return (\n <Group gap=\"xs\" wrap=\"nowrap\" align=\"center\">\n {expandable ? (\n <Box\n component=\"span\"\n aria-label=\"Aufklappen\"\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n toggleExpanded(record.id);\n }}\n style={{ display: \"inline-flex\", flexShrink: 0, cursor: \"pointer\" }}\n >\n <IconChevronRight\n size={16}\n style={{\n color: \"var(--mantine-primary-color-filled)\",\n transform: expandedRecordIds.includes(record.id) ? \"rotate(90deg)\" : undefined,\n transition: \"transform 200ms ease\",\n }}\n />\n </Box>\n ) : (\n <Box w={16} style={{ flexShrink: 0 }} />\n )}\n {originalRender\n ? originalRender(record, recordIndex)\n : String(getValueAtPath(record, field.column.accessor) ?? \"\")}\n </Group>\n );\n },\n },\n };\n })\n : fields;\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 useEffect(() => {\n if (editRecordId && sortedData.length > 0) {\n const record = sortedData.find((r) => r.id === editRecordId);\n if (record) {\n setSelectedRecords([record]);\n setUpdateModalOpen(true);\n onEditRecordIdChange?.(null);\n }\n }\n }, [editRecordId, sortedData]);\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 <Flex\n gap=\"xs\"\n align={{ base: \"stretch\", sm: \"center\" }}\n direction={{ base: \"column\", sm: \"row\" }}\n justify={title ? \"space-between\" : \"flex-end\"}\n wrap=\"wrap\"\n >\n {title &&\n (typeof title === \"string\" ? (\n <Title order={4}>{title}</Title>\n ) : (\n title\n ))}\n <Flex\n align={{ base: \"stretch\", sm: \"center\" }}\n direction={{ base: \"column\", sm: \"row\" }}\n gap=\"xs\"\n wrap=\"wrap\"\n justify={{ base: \"flex-start\", sm: \"flex-end\" }}\n ml={{ base: 0, sm: \"auto\" }}\n >\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 </Flex>\n </Flex>\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 trigger: onRowClick ? \"never\" : \"click\",\n content: ({ record }: { record: T }) => rowExpansion.content(record, false),\n expanded: { recordIds: expandedRecordIds, onRecordIdsChange: handleExpandedRecordIdsChange },\n ...(rowExpansion.expandable && {\n expandable: ({ record }: { record: T }) => rowExpansion.expandable!(record),\n }),\n },\n })}\n columns={expansionFields.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={expansionFields}\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: {\n content: rowExpansion.content,\n expanded: { recordIds: expandedRecordIds, onRecordIdsChange: handleExpandedRecordIdsChange },\n ...(rowExpansion.expandable && { expandable: rowExpansion.expandable }),\n },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\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 confirmMessage={deleteConfirmMessage}\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 { Stack } from \"@mantine/core\";\nimport React from \"react\";\nimport {\n DataTable as MantineDataTable,\n DataTableColumn,\n DataTableProps as MantineDataTableProps,\n getRecordId,\n getValueAtPath,\n humanize,\n} from \"mantine-datatable\";\nimport { FieldCard, FieldRow } from \"./FieldCard\";\n\nexport type SubTableColumn<T> = DataTableColumn<T> & {\n hideOnMobile?: (record: T) => boolean;\n};\n\nexport type SubTableProps<T> = Omit<MantineDataTableProps<T>, \"columns\"> & {\n mobile: boolean;\n columns: SubTableColumn<T>[];\n};\n\nexport function SubTable<T>({ mobile, columns, ...props }: SubTableProps<T>) {\n if (mobile) {\n const records = (props.records ?? []) as T[];\n return (\n <Stack gap=\"sm\" style={{ fontVariantNumeric: \"tabular-nums\" }}>\n {records.map((record, index) => {\n const rows: FieldRow[] = columns\n .filter((column) => !column.hidden && !column.hideOnMobile?.(record))\n .map((column) => ({\n label: column.title ?? humanize(String(column.accessor)),\n value: column.render\n ? column.render(record, index)\n : (getValueAtPath(record, column.accessor) as React.ReactNode),\n }));\n const key = props.idAccessor ? (getRecordId(record, props.idAccessor) as React.Key) : index;\n return <FieldCard key={key} rows={rows} />;\n })}\n </Stack>\n );\n }\n\n // @ts-expect-error - DataTableProps is a discriminated union (columns vs groups) that does not survive Omit + spread\n return <MantineDataTable columns={columns} {...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,26,27],"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","Sa","Ra","Ut","xa","Qt","va","Le","Be","Ma","La","Ea","ka","Yt","Ia","tn","Ha","on","Y","Oa","an","za","wt","ln","_a","St","Va","Ba","Ga","ee","$a","xt","Fa","Qa","Xa","ja","Ka","Za","qa","Ja","tr","hn","nr","or","ar","Dn","Pn","rr","sr","lr","ir","ur","cr","kt","dr","pr","fr","mr","Xe","Tr","br","gr","hr","kn","Cr","Ln","Rr","Sr","xr","Pr","Ue","wr","yr","Dr","vr","Qe","Mr","Ke","kr","je","Er","Et","zn","Ar","Nr","Hr","_n","Lt","U","Lr","qe","Ir","zr","Vn","Or","Bn","_r","Wr","Ze","Br","Ye","Vr","ge","Qr","Ur","It","Xr","tt","$r","Fr","G","et","Qn","Gr","jn","jr","Jr","Kr","re","rl","nt","ol","al","qn","Yr","tl","el","nl","Zr","qr","Yn","il","cl","sl","ul","Nt","Ne","ao","ml","Te","no","pl","gl","dl","fl","bl","Tl","yl","he","Pl","Cl","lo","hl","wl","Dl","xl","Sl","Rl","El","kl","He","co","Ml","vl","mo","Il","Nl","Ll","bo","fo","ot","Hl","Al","_l","zl","rt","To","at","Fl","Ht","lt","At","F","yo","Wl","Co","Bl"],"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/EntityForm.tsx","../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/utils/filter.ts","../src/DataTable/FieldCard.tsx","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTable.tsx","../src/DataTable/SubTable.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 const subscribed = options.subscribed !== false;\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && subscribed;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"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 { QueryClient, useMutation, useQuery } from \"@tanstack/react-query\";\nimport { useDataTable } from \"./useDataTable.ts\";\nimport type { GetHeaders } from \"../Context/DataTableContext.tsx\";\n\nexport interface FieldViolation {\n field: string;\n message: string;\n}\n\nexport class ApiError extends Error {\n readonly status: number;\n readonly violations?: FieldViolation[];\n\n constructor(message: string, status: number, violations?: FieldViolation[]) {\n super(message);\n this.name = \"ApiError\";\n this.status = status;\n this.violations = violations;\n }\n}\n\nexport function getFieldViolations(error: unknown): FieldViolation[] | undefined {\n return error instanceof ApiError ? error.violations : undefined;\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 ApiError(`HTTP ${resp.status}: ${resp.statusText}`, resp.status);\n }\n let errorJson: { message?: string; error?: string; title?: string; violations?: FieldViolation[] } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new ApiError(responseText, resp.status);\n }\n const violations = Array.isArray(errorJson?.violations)\n ? errorJson.violations\n .filter((v) => v?.field && v?.message)\n .map((v) => ({ field: String(v.field), message: String(v.message) }))\n : undefined;\n throw new ApiError(\n errorJson?.message ?? errorJson?.error ?? errorJson?.title ?? responseText,\n resp.status,\n violations,\n );\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\nconst toKey = (queryKey: Array<string | number>): string[] => queryKey.map((k) => k.toString());\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: [...toKey(queryKey), 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: toKey(queryKey),\n queryFn: () => getAll<T>(`${baseUrl}${apiPath}`, getHeaders),\n enabled,\n });\n}\n\nfunction invalidateAfterMutation(\n queryClient: QueryClient,\n queryKey: Array<string | number>,\n connectedQueryKeys?: Array<Array<string | number>>,\n) {\n return Promise.all([\n queryClient.invalidateQueries({ queryKey: toKey(queryKey) }),\n ...(connectedQueryKeys ?? []).map((connectedQueryKey) =>\n queryClient.invalidateQueries({ queryKey: connectedQueryKey }),\n ),\n ]);\n}\n\nexport function useAddOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n connectedQueryKeys?: Array<Array<string | number>>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, Omit<T, \"id\">>({\n mutationKey: toKey(queryKey),\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled: () => invalidateAfterMutation(queryClient, queryKey, connectedQueryKeys),\n });\n}\n\nexport function useUpdateOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n connectedQueryKeys?: Array<Array<string | number>>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, AtLeast<T, \"id\">>({\n mutationKey: toKey(queryKey),\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled: () => invalidateAfterMutation(queryClient, queryKey, connectedQueryKeys),\n });\n}\n\nexport function useDeleteOne(\n apiPath: string,\n queryKey: Array<string | number>,\n connectedQueryKeys?: Array<Array<string | number>>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<void, Error, string | number>({\n mutationKey: toKey(queryKey),\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled: () => invalidateAfterMutation(queryClient, queryKey, connectedQueryKeys),\n });\n}\n","import { Alert, Button, Checkbox, Group, NumberInput, Stepper, Textarea, TextInput } from \"@mantine/core\";\nimport { DateInput } from \"@mantine/dates\";\nimport { useForm } from \"@mantine/form\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { BaseEntity, getFieldViolations } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\n\nfunction resolveRequired<T>(field: Field<T>, values: Partial<T>): boolean {\n return typeof field.required === \"function\" ? field.required(values) : !!field.required;\n}\n\nfunction buildInitialValues<T>(fields: Field<T>[]): T {\n return 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}\n\nfunction buildValidation<T>(fields: Field<T>[]) {\n return 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\nfunction cleanValues<T>(rawValues: T): T {\n return Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([key, value]) => [key, value === \"\" ? undefined : value]),\n ) as T;\n}\n\nfunction normalizeLoadedValues<T>(data: T, fields: Field<T>[]): T {\n const values = { ...data };\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 return values;\n}\n\nconst violationFieldId = (path: string) => path.split(\".\").pop() ?? path;\n\nfunction mapFieldViolations(error: unknown, fieldIds: Set<string>): Record<string, string> {\n return Object.fromEntries(\n (getFieldViolations(error) ?? [])\n .filter((violation) => fieldIds.has(violationFieldId(violation.field)))\n .map((violation) => [violationFieldId(violation.field), violation.message]),\n );\n}\n\nfunction resolveGeneralError(error: Error | null | undefined, fieldIds: Set<string>): string | undefined {\n const violations = getFieldViolations(error);\n if (!violations) return error?.message;\n const unmapped = violations.filter((violation) => !fieldIds.has(violationFieldId(violation.field)));\n return unmapped.length > 0 ? unmapped.map((violation) => violation.message).join(\", \") : undefined;\n}\n\nexport interface EntityFormProps<T extends BaseEntity> {\n fields: Field<T>[];\n steps?: StepConfig[];\n record?: T;\n recordId?: string | number;\n submitting: boolean;\n error?: Error | null;\n onPersist: (values: T) => Promise<void>;\n onClose: () => void;\n}\n\nexport function EntityForm<T extends BaseEntity>({\n fields,\n steps,\n record,\n recordId,\n submitting,\n error,\n onPersist,\n onClose,\n}: EntityFormProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState(false);\n\n const form = useForm<T>({\n mode: \"uncontrolled\",\n initialValues: buildInitialValues(fields),\n validate: buildValidation(fields),\n });\n\n useEffect(() => {\n if (record) {\n const values = normalizeLoadedValues(record, fields);\n form.initialize(values);\n form.setValues(values);\n }\n }, [record]);\n\n const fieldIds = new Set(fields.map((f) => String(f.id)));\n const generalError = resolveGeneralError(error, fieldIds);\n\n const stepsAvailable = [...new Set(fields.filter((f) => typeof f.step === \"number\").map((f) => f.step as number))];\n const hasSteps = stepsAvailable.length > 0;\n const isLastStep = active === stepsAvailable.length - 1;\n\n function renderField(field: Field<T>) {\n const values = form.getValues();\n if (field.conditional && !field.conditional(values)) return null;\n const required = resolveRequired(field, values);\n const inputProps = form.getInputProps(field.id as string);\n\n switch (field.type) {\n case \"number\":\n return <NumberInput key={form.key(field.id)} decimalSeparator=\",\" thousandSeparator=\".\" label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"date\":\n return <DateInput key={form.key(field.id)} valueFormat=\"DD.MM.YYYY\" clearable label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"boolean\":\n return <Checkbox key={form.key(field.id)} mt=\"md\" label={field.column.title} required={required} {...form.getInputProps(field.id as string, { type: \"checkbox\" })} />;\n case \"textarea\":\n return <Textarea key={form.key(field.id)} minRows={3} autosize label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n case \"custom\":\n return field.render?.(\n { ...values, ...(recordId != null && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n { error: inputProps.error, required },\n );\n default:\n return <TextInput key={form.key(field.id)} type={field.id.includes(\"email\") ? \"email\" : undefined} label={field.column.title} placeholder={field.placeholder ?? \"\"} required={required} {...inputProps} />;\n }\n }\n\n const fieldsToRender = (step?: number) =>\n (step === undefined ? fields : fields.filter((f) => f.step === step)).map((field) => (\n <Fragment key={field.id}>{renderField(field)}</Fragment>\n ));\n\n return (\n <>\n {generalError && (\n <Alert variant=\"outline\" color=\"red\" title=\"Fehler aufgetreten\" mb=\"lg\">\n {generalError}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (raw) => {\n const values = cleanValues(raw as T);\n try {\n await onPersist(values);\n } catch (submitError) {\n const fieldErrors = mapFieldViolations(submitError, fieldIds);\n if (Object.keys(fieldErrors).length > 0) form.setErrors(fieldErrors);\n return;\n }\n if (hasSteps && !isLastStep) {\n setActive((current) => current + 1);\n } else {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n })}\n >\n {hasSteps ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step key={step} {...(steps?.[step - 1] ? { label: steps[step - 1].label } : {})}>\n {fieldsToRender(step)}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fieldsToRender()\n )}\n\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button variant=\"outline\" onClick={() => (hasSteps && active > 0 ? setActive((current) => current - 1) : onClose())}>\n {hasSteps && active > 0 ? \"Zurück\" : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={submitting}>\n {hasSteps && !isLastStep ? \"Weiter\" : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","import { useState } from \"react\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\nimport { EntityForm } from \"./EntityForm.tsx\";\n\nexport interface CreateModalProps<T> {\n fields: Field<T>[];\n onClose: () => void;\n queryKey: (string | number)[];\n connectedQueryKeys?: (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 connectedQueryKeys,\n apiPath,\n steps,\n onCreated,\n}: CreateModalProps<T>) {\n const [recordId, setRecordId] = useState<string | number>();\n\n const { mutateAsync: create, isPending: isCreating, error: createError } = useAddOne<T>(apiPath, queryKey, connectedQueryKeys);\n const { mutateAsync: update, isPending: isUpdating, error: updateError } = useUpdateOne<T>(apiPath, queryKey, connectedQueryKeys);\n\n const persist = async (values: T) => {\n if (recordId != null) {\n await update({ ...values, id: recordId });\n } else {\n const created = await create(values);\n setRecordId(created.id);\n onCreated?.(created.id);\n }\n };\n\n return (\n <EntityForm\n fields={fields}\n steps={steps}\n recordId={recordId}\n submitting={isCreating || isUpdating}\n error={createError ?? updateError}\n onPersist={persist}\n onClose={onClose}\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 Wl,Table as Bl}from\"@mantine/core\";import{useMergedRef as Ht}from\"@mantine/hooks\";import Co from\"clsx\";import{useCallback as At,useEffect as Vl,useLayoutEffect as Gl,useMemo as Fl,useRef as lt}from\"react\";import{parseThemeColor as Sa}from\"@mantine/core\";function W(e,t,n){return e?Sa({color:typeof e==\"object\"?e[n]:e,theme:t}).value:void 0}function Ft({theme:e,c:t,backgroundColor:n,borderColor:o,rowBorderColor:a,stripedColor:r,highlightOnHoverColor:l}){return{\"--mantine-datatable-color-light\":W(t,e,\"light\"),\"--mantine-datatable-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-background-color-dark\":W(n,e,\"dark\"),\"--mantine-datatable-border-color-light\":W(o,e,\"light\"),\"--mantine-datatable-border-color-dark\":W(o,e,\"dark\"),\"--mantine-datatable-row-border-color-light\":W(a,e,\"light\"),\"--mantine-datatable-row-border-color-dark\":W(a,e,\"dark\"),\"--mantine-datatable-striped-color-light\":W(r,e,\"light\"),\"--mantine-datatable-striped-color-dark\":W(r,e,\"dark\"),\"--mantine-datatable-highlight-on-hover-color-light\":W(l,e,\"light\"),\"--mantine-datatable-highlight-on-hover-color-dark\":W(l,e,\"dark\")}}function We({theme:e,paginationActiveTextColor:t,paginationActiveBackgroundColor:n}){return{\"--mantine-datatable-pagination-active-text-color-light\":W(t,e,\"light\"),\"--mantine-datatable-pagination-active-text-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-pagination-active-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-pagination-active-background-color-dark\":W(n,e,\"dark\")}}function $t({theme:e,color:t,backgroundColor:n}){return{\"--mantine-datatable-row-color-light\":W(t,e,\"light\"),\"--mantine-datatable-row-color-dark\":W(t,e,\"dark\"),\"--mantine-datatable-row-background-color-light\":W(n,e,\"light\"),\"--mantine-datatable-row-background-color-dark\":W(n,e,\"dark\")}}import{useState as Ut}from\"react\";import{createSafeContext as Ra}from\"@mantine/core\";var[Xt,Pe]=Ra(\"useDataTableColumnsContext must be used within DataTableColumnProvider\");import{jsx as xa}from\"react/jsx-runtime\";var Ct=e=>{let{children:t,columnsOrder:n,setColumnsOrder:o,columnsToggle:a,setColumnsToggle:r,columnsPinning:l,setColumnsPinning:s,resetColumnsOrder:c,resetColumnsToggle:m,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:T,beginResize:d,endResize:S,pinnedMap:b}=e,[C,E]=Ut(\"\"),[D,L]=Ut(\"\");return xa(Xt,{value:{sourceColumn:C,setSourceColumn:E,targetColumn:D,setTargetColumn:L,columnsToggle:a,setColumnsToggle:r,columnsPinning:l,setColumnsPinning:s,swapColumns:()=>{if(!n||!o||!C||!D)return;let f=b.get(C),h=b.get(D);if(f?.logicalSide!==h?.logicalSide)return;let w=n.indexOf(C),M=n.indexOf(D);if(w!==-1&&M!==-1){let g=[...n],[R]=g.splice(w,1);g.splice(M,0,R),o(g)}},resetColumnsOrder:c,resetColumnsToggle:m,resetColumnsPinning:i,setColumnWidth:u,setMultipleColumnWidths:p,resetColumnsWidth:T,beginResize:d,endResize:S},children:t})};import{jsx as Qt}from\"react/jsx-runtime\";function Kt(){return Qt(\"tr\",{className:\"mantine-datatable-empty-row\",children:Qt(\"td\",{})})}import{Center as Ma,Text as ka}from\"@mantine/core\";import{jsx as Le,jsxs as va}from\"react/jsx-runtime\";function jt(){return va(\"svg\",{width:\"24\",height:\"24\",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:\"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\"}),Le(\"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\"}),Le(\"path\",{d:\"M4 12v6c0 1.657 3.582 3 8 3c3.217 0 5.991 -.712 7.261 -1.74m.739 -3.26v-4\"}),Le(\"path\",{d:\"M3 3l18 18\"})]})}import{Fragment as Ea,jsx as Be,jsxs as La}from\"react/jsx-runtime\";function Jt({icon:e,text:t,active:n,children:o}){return Be(Ma,{className:\"mantine-datatable-empty-state\",\"data-active\":n||void 0,children:o||La(Ea,{children:[e||Be(\"div\",{className:\"mantine-datatable-empty-state-icon\",children:Be(jt,{})}),Be(ka,{component:\"div\",size:\"sm\",c:\"dimmed\",children:t})]})})}import{TableTfoot as dr,TableTr as mr}from\"@mantine/core\";import pr from\"clsx\";import{TableTh as lr}from\"@mantine/core\";import ir from\"clsx\";import{useCallback as fi,useRef as bi,useState as gi}from\"react\";import{useLocalStorage as Ia}from\"@mantine/hooks\";import{useEffect as Na,useMemo as Yt}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 Z(e,t,n){return!Array.isArray(e)||n&&!e.every(n)?t:e}function Ve(e){return typeof e==\"object\"&&e!==null&&typeof e.accessor==\"string\"}function qt(e,t,n){return e.filter(o=>!t.map(n).includes(n(o)))}function Ge(e,t){return e.filter((n,o,a)=>o===a.findIndex(r=>t(n)===t(r)))}function yt(e,t){return t?t.match(/([^[.\\]])+/g).reduce((o,a)=>o&&o[a],e):void 0}function B(e,t){return typeof t==\"string\"?yt(e,t):t(e)}function hi(e,t){let n=structuredClone(t),o=n[e.source.index];return e.destination&&(n.splice(e.source.index,1),n.splice(e.destination.index,0,o)),n}function Ci(e,t){let n=structuredClone(t),o=e.destination;if(!o)return n;let a=n[e.source.index],r=n[o.index];return n.splice(o.index,1,a),n.splice(e.source.index,1,r),n}function Pt(e){return!e||e.length===0?0:Math.max(...e.map(t=>t.groups&&t.groups.length>0?1+Pt(t.groups):1))}function Ie(e){let t=[];for(let n of e)n.columns&&n.columns.length>0?t.push(...n.columns.filter(o=>o!=null)):n.groups&&n.groups.length>0&&t.push(...Ie(n.groups));return t.filter(n=>n!=null)}function Fe(e,t){return e.columns&&e.columns.length>0?e.columns.filter((n,o)=>n.hidden?!1:t?t[o]!==!1:!0).length:e.groups&&e.groups.length>0?e.groups.reduce((n,o)=>n+Fe(o,t),0):0}function Dt(e,t,n=0){if(n===t)return[...e];let o=[];for(let a of e)a.groups&&a.groups.length>0&&o.push(...Dt(a.groups,t,n+1));return o}function Zt(e,t,n){return n?!e||t:!1}function en({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=Yt(()=>t.map(i=>({accessor:i.accessor,defaultPinned:i.pinned,pinnable:!!i.pinnable,pinned:i.pinned})),[t]),[a,r]=Ia({key:e?`${e}-columns-pinning`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=Z(a,o,Ve);function s(i){e&&r(typeof i==\"function\"?u=>i(u??o):i)}let c=Yt(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultPinned:u.pinned,pinnable:!!u.pinnable,pinned:u.pinned})}),i},[l,t,o]);Na(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsPinning:c,setColumnsPinning:s,resetColumnsPinning:m}:{columnsPinning:o,setColumnsPinning:s,resetColumnsPinning:m}}import{useLocalStorage as Ha}from\"@mantine/hooks\";import{useEffect as Aa,useMemo as tn}from\"react\";function nn({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=tn(()=>t?t.map(i=>i.accessor):[],[t]),[a,r]=Ha({key:e?`${e}-columns-order`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=Z(a,o,i=>typeof i==\"string\");function s(i){e&&r(i)}let c=tn(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u)&&i.push(u)}),t.forEach(u=>{i.includes(u.accessor)||i.push(u.accessor)}),i},[l,t,o]);Aa(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsOrder:c,setColumnsOrder:s,resetColumnsOrder:m}:{columnsOrder:l,setColumnsOrder:s,resetColumnsOrder:m}}import{useLocalStorage as Oa}from\"@mantine/hooks\";import{useCallback as Y,useEffect as wt,useMemo as on,useRef as za,useState as an}from\"react\";function rn({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o}){let a=on(()=>t.some(f=>f.resizable&&!f.hidden&&f.accessor!==\"__selection__\"),[t]),r=Y(()=>t.filter(f=>f.accessor!==\"__selection__\").map(f=>({[f.accessor]:f.width??\"auto\"})),[t]),[l,s]=Oa({key:e?`${e}-columns-width`:\"\",defaultValue:e?r():void 0,getInitialValueInEffect:n}),c=Z(l,[],f=>typeof f==\"object\"&&f!==null),[m,i]=an(()=>e&&c.length>0?c:r()),[u,p]=an(!1),T=za(!1);wt(()=>{e&&(!c||c.length===0||i(c))},[e,c]),wt(()=>{i(f=>{let h=new Set(t.filter(y=>y.accessor!==\"__selection__\").map(y=>String(y.accessor))),w=f.filter(y=>h.has(Object.keys(y)[0])),M=new Set(w.map(y=>Object.keys(y)[0])),g=!1;for(let y of t){if(y.accessor===\"__selection__\")continue;let v=String(y.accessor);M.has(v)||(w.push({[v]:y.width??\"auto\"}),g=!0)}return w.length!==f.length||g?w:f})},[t]);let d=Y(f=>{let h=f.filter(w=>w.accessor!==\"__selection__\");h.length!==0&&(T.current=!0,i(w=>w.map(M=>{let g=Object.keys(M)[0],R=h.find(y=>y.accessor===g);return R?{[g]:R.width}:M})))},[]);wt(()=>{!e||!T.current||u||(T.current=!1,s(m))},[e,m,u,s]);let S=Y((f,h)=>{d([{accessor:f,width:h}])},[d]),b=Y(f=>{d(f)},[d]),C=Y(()=>{p(!0);let f=o?.current;if(!f)return;let h=Array.from(f.querySelectorAll(\"th[data-accessor]\"));if(h.length===0)return;let w=[];for(let M of h){let g=M.getAttribute(\"data-accessor\");if(!g||g===\"__selection__\")continue;let R=Math.round(M.getBoundingClientRect().width);w.push({[g]:`${R}px`})}T.current=!0,i(w)},[o]),E=Y(()=>{p(!1)},[]),D=Y(()=>{let f=r();T.current=!0,i(f),p(!1)},[r]),L=on(()=>{if(!a)return!1;let f=t.filter(h=>h.resizable&&!h.hidden&&h.accessor!==\"__selection__\");return m.filter(h=>{let w=Object.keys(h)[0];return f.some(M=>M.accessor===w)}).every(h=>{let w=Object.values(h)[0];return w===\"auto\"||w===\"initial\"})},[a,t,m]),N=Y(()=>{},[]);return{columnsWidth:m,setColumnsWidth:d,setColumnWidth:S,setMultipleColumnWidths:b,resetColumnsWidth:D,hasResizableColumns:a,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:u,beginResize:C,endResize:E}}import{useMemo as St}from\"react\";import{useLocalStorage as _a}from\"@mantine/hooks\";import{useEffect as Wa,useMemo as ln}from\"react\";function sn({key:e,columns:t=[],getInitialValueInEffect:n=!0}){let o=ln(()=>t?.map(i=>({accessor:i.accessor,defaultToggle:i.defaultToggle||!0,toggleable:i.toggleable,toggled:i.defaultToggle===void 0?!0:i.defaultToggle})),[t]),[a,r]=_a({key:e?`${e}-columns-toggle`:\"\",defaultValue:e?o:void 0,getInitialValueInEffect:n}),l=Z(a,o,Ve);function s(i){e&&r(i)}let c=ln(()=>{if(!l)return o;let i=[];return l.forEach(u=>{t.find(p=>p.accessor===u.accessor)&&i.push(u)}),t.forEach(u=>{i.find(p=>p.accessor===u.accessor)||i.push({accessor:u.accessor,defaultToggle:u.defaultToggle||!0,toggleable:u.toggleable,toggled:u.defaultToggle===void 0?!0:u.defaultToggle})}),i},[l,t,o]);Wa(()=>{e&&l&&JSON.stringify(c)!==JSON.stringify(l)&&r(c)},[e,c,l,r]);let m=()=>{s(o)};return e?{columnsToggle:c,setColumnsToggle:s,resetColumnsToggle:m}:{columnsToggle:l,setColumnsToggle:s,resetColumnsToggle:m}}var cn=({key:e,columns:t=[],getInitialValueInEffect:n=!0,headerRef:o,scrollViewportRef:a})=>{let{columnsOrder:r,setColumnsOrder:l,resetColumnsOrder:s}=nn({key:e,columns:t,getInitialValueInEffect:n}),{columnsToggle:c,setColumnsToggle:m,resetColumnsToggle:i}=sn({key:e,columns:t,getInitialValueInEffect:n}),{columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:T}=en({key:e,columns:t,getInitialValueInEffect:n}),{columnsWidth:d,setColumnsWidth:S,setColumnWidth:b,setMultipleColumnWidths:C,resetColumnsWidth:E,hasResizableColumns:D,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:f,beginResize:h,endResize:w}=rn({key:e,columns:t,getInitialValueInEffect:n,headerRef:o,scrollViewportRef:a}),M=St(()=>{let y;r?y=r.map(P=>t.find(A=>A.accessor===P)).map(P=>{let A=u.find(z=>z.accessor===P?.accessor),_=P?.pinnable?A?.pinned:P?.pinned;return{...P,hidden:P?.hidden||!c.find(z=>z.accessor===P?.accessor)?.toggled,pinned:_}}):y=t;let v=y.filter(P=>P.pinned===\"left\"),H=y.filter(P=>!P.pinned),k=y.filter(P=>P.pinned===\"right\");return[...v,...H,...k].map(P=>{if(P?.accessor===\"__selection__\")return P;let A=P?.accessor,_=d.find(K=>A in K);if(!_)return P;let z=_[A];return z===void 0||z===\"auto\"||z===\"initial\"?P:{...P,width:z}})},[t,r,c,u,d]),g=St(()=>{let y=M.filter(v=>!v.hidden&&v.accessor!==\"__selection__\");return y.length===0?!1:y.every(v=>typeof v.width==\"string\"&&/px$/.test(v.width))},[M]),R=St(()=>{if(!g)return null;let y=0;for(let v of M){if(v.hidden||v.accessor===\"__selection__\")continue;let H=v.width;if(typeof H!=\"string\")continue;let k=parseInt(H,10);Number.isNaN(k)||(y+=k)}return y>0?y:null},[g,M]);return{effectiveColumns:M,setColumnsOrder:l,columnsOrder:r,resetColumnsOrder:s,columnsToggle:c,setColumnsToggle:m,resetColumnsToggle:i,columnsPinning:u,setColumnsPinning:p,resetColumnsPinning:T,columnsWidth:d,setColumnsWidth:S,setColumnWidth:b,setMultipleColumnWidths:C,resetColumnsWidth:E,hasResizableColumns:D,allResizableWidthsInitial:L,measureAndSetColumnWidths:N,isResizing:f,isLocked:g,tableWidth:R,beginResize:h,endResize:w}};import{rem as Fa}from\"@mantine/core\";import{useCallback as $a,useEffect as xt,useRef as ee}from\"react\";import{useEffect as Ba,useLayoutEffect as Va}from\"react\";var be=typeof window<\"u\"?Va:Ba;import{useRef as Ga}from\"react\";function Rt(e){let t=Ga(e);return t.current=e,t}var un=\"--mantine-datatable-header-height\",dn=\"--mantine-datatable-footer-height\",mn=\"--mantine-datatable-selection-column-width\",pn=\"--mantine-datatable-last-row-border-bottom\";function X(e,t,n){e?.style.setProperty(t,n)}function Mt(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 vt(e,t,n){if(e){let o=new ResizeObserver(a=>{let r=a[0];r&&t(Mt(r))});return o.observe(e),()=>{o.disconnect(),n()}}}function fn({scrollCallbacks:e,withRowBorders:t}){let n={root:ee(null),table:ee(null),scrollViewport:ee(null),header:ee(null),footer:ee(null),selectionColumnHeader:ee(null)},{root:o,table:a,scrollViewport:r,header:l,footer:s,selectionColumnHeader:c}=n,m=Rt({withRowBorders:t}),i=Rt(e),u=ee(()=>{}),p=ee(()=>{}),T=$a(d=>{i.current.onScroll?.(d),u.current()},[]);return xt(()=>vt(l.current,d=>{X(o.current,un,`${d.height}px`)},()=>X(o.current,un,\"0\")),[l.current]),xt(()=>vt(s.current,d=>{X(o.current,dn,`${d.height}px`)},()=>X(o.current,dn,\"0\")),[s.current]),xt(()=>vt(c.current,d=>{X(o.current,mn,`${d.width}px`)},()=>X(o.current,mn,\"0\")),[c.current]),be(()=>{if(typeof window>\"u\")return;let d={top:!0,bottom:!0,left:!0,right:!0},S={width:0,height:0},b={width:0,height:0};function C(f,h){let w=d[f];return d[f]=h,X(o.current,`--mantine-datatable-${f}-shadow-opacity`,h?\"0\":\"1\"),w}function E(){let f=S.height-b.height,h=f<0;X(o.current,\"--mantine-datatable-footer-position\",h?\"relative\":\"sticky\"),X(o.current,\"--mantine-datatable-footer-bottom\",h?`${f}px`:\"0\")}function D(){m.current.withRowBorders&&S.height<b.height?X(o.current,pn,`${Fa(\"1px\")} solid var(--mantine-datatable-border-color)`):X(o.current,pn,\"unset\")}p.current=D;function L(){let f=i.current,h=r.current,w=h?.scrollTop??0,M=h?.scrollLeft??0,g=w===0,R=S.height-w-b.height<1,y=C(\"top\",g),v=C(\"bottom\",R);g&&g!==y&&f.onScrollToTop?.(),R&&R!==v&&f.onScrollToBottom?.();let H=h?getComputedStyle(h).direction===\"rtl\":!1,k=(h?.scrollWidth??0)-b.width,x,P;if(H){let z=Math.abs(M);P=z<1,x=k-z<1}else x=M<1,P=S.width-M-b.width<1;let A=C(\"left\",x),_=C(\"right\",P);x&&x!==A&&f.onScrollToLeft?.(),P&&P!==_&&f.onScrollToRight?.()}u.current=L;let N=new ResizeObserver(f=>{for(let h of f)switch(h.target.tagName){case\"TABLE\":{S=Mt(h);break}case\"DIV\":{b=Mt(h);break}}L(),E(),D()});return N.observe(a.current),N.observe(r.current),()=>{N.disconnect()}},[]),be(()=>{p.current()},[t]),{refs:n,onScroll:T}}import{useCallback as Xa,useEffect as Ua,useState as Qa}from\"react\";function bn({columns:e,theadRef:t,tbodyRef:n,selectionColumnHeaderRef:o,selectionVisible:a,pinFirstColumn:r,pinLastColumn:l}){let[s,c]=Qa(new Map),m=Xa(()=>{if(!r&&!l&&!e.some(g=>g.pinned))return;let p=t.current??n.current;if(!p)return;let T=!!t.current,d=T?p.querySelector(\"tr:last-of-type\"):p.querySelector(\"tr:first-of-type\");if(!d)return;let S=getComputedStyle(p).direction===\"rtl\",b=new Map;if(T)d.querySelectorAll(\"th[data-accessor]\").forEach(g=>{let R=g.dataset.accessor;if(R){let y=g.getBoundingClientRect().width;y>0&&b.set(R,y)}});else{let g=e.filter(y=>!y.hidden);d.querySelectorAll(\"td:not(.mantine-datatable-row-selector-cell):not(.mantine-datatable-row-expansion-cell)\").forEach((y,v)=>{if(g[v]){let H=y.getBoundingClientRect().width;H>0&&b.set(String(g[v].accessor),H)}})}let C=0;if(a){let g=o.current??p.querySelector(T?\".mantine-datatable-header-selector-cell\":\".mantine-datatable-row-selector-cell\");g&&(C=g.getBoundingClientRect().width)}let E=e.filter(g=>!g.hidden&&b.has(String(g.accessor))).map(g=>String(g.accessor)),D=new Map;for(let g of e){let R=String(g.accessor);E.includes(R)&&(g.pinned?D.set(R,g.pinned):r&&R===E[0]&&!D.has(R)?D.set(R,\"left\"):l&&R===E[E.length-1]&&!D.has(R)&&D.set(R,\"right\"))}let L=E.filter(g=>D.get(g)===\"left\"),N=E.filter(g=>D.get(g)===\"right\"),f=new Map,h=C;L.forEach((g,R)=>{f.set(g,{position:S?\"right\":\"left\",logicalSide:\"left\",offset:h,isBoundary:R===L.length-1}),h+=b.get(g)||0});let w=-.4,M=[...N].reverse();M.forEach((g,R)=>{f.set(g,{position:S?\"left\":\"right\",logicalSide:\"right\",offset:w,isBoundary:R===M.length-1}),w+=b.get(g)||0}),c(g=>{if(g.size!==f.size)return f;for(let[R,y]of f){let v=g.get(R);if(!v||v.position!==y.position||v.logicalSide!==y.logicalSide||v.offset!==y.offset||v.isBoundary!==y.isBoundary)return f}return g})},[e,a,t,n,o,r,l]);Ua(()=>{if(!r&&!l&&!e.some(b=>b.pinned))return;let p=t.current??n.current;if(!p)return;let T=!!t.current,d=T?p.querySelector(\"tr:last-of-type\"):p.querySelector(\"tr:first-of-type\");if(!d)return;let S=new ResizeObserver(m);return d.querySelectorAll(T?\"th\":\"td\").forEach(b=>{S.observe(b)}),()=>S.disconnect()},[t,n,m]),be(m,[m]);let i=[...s.values()].some(p=>p.logicalSide===\"left\"),u=[...s.values()].some(p=>p.logicalSide===\"right\");return{pinnedMap:s,hasLeftPinned:i,hasRightPinned:u}}import{useEffect as Ka,useState as ja}from\"react\";function gn(e){let[t,n]=ja(null),o=e?.join(\":\")||\"\";return Ka(()=>{n(null)},[o]),{lastSelectionChangeIndex:t,setLastSelectionChangeIndex:n}}import{useEffect as Ja,useRef as qa,useState as Za}from\"react\";function Ya(e,t){let n=()=>{t(e.map(a=>a.matches))},o=e.map(a=>{try{return a.addEventListener(\"change\",n),()=>a.removeEventListener(\"change\",n)}catch{return a.addListener(n),()=>a.removeListener(n)}});return()=>{o.forEach(a=>{a()})}}function er(e,t){return t||(typeof window<\"u\"&&\"matchMedia\"in window?e.map(n=>window.matchMedia(n).matches):e.map(()=>!1))}function Tn(e,t,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){let[o,a]=Za(n?t:er(e,t)),r=qa(null);return Ja(()=>{if(\"matchMedia\"in window)return r.current=e.map(l=>window.matchMedia(l)),a(r.current.map(l=>l.matches)),Ya(r.current,l=>{a(l)})},[e]),o}import{useMantineTheme as tr}from\"@mantine/core\";import{useMemo as hn}from\"react\";function Cn(e){let t=tr(),n=hn(()=>e.map(a=>(typeof a==\"function\"?a(t):a)??\"\"),[e,t]),o=hn(()=>e.map(()=>!0),[e]);return Tn(n,o)}import{useMantineTheme as nr}from\"@mantine/core\";import{useMediaQuery as or}from\"@mantine/hooks\";function te(e){let t=nr(),n=typeof e==\"function\"?e(t):e;return or(n||\"\",!0)}import{useState as ar}from\"react\";function yn({rowExpansion:e,records:t,idAccessor:n}){let o=[];if(e&&t){let{trigger:s,allowMultiple:c,initiallyExpanded:m}=e;t&&s===\"always\"?o=t.map(i=>B(i,n)):m&&(o=t.filter((i,u)=>m({record:i,index:u})).map(i=>B(i,n)),c||(o=[o[0]]))}let a,r,l=ar(o);if(e){let{expandable:s,trigger:c,allowMultiple:m,collapseProps:i,content:u}=e;e.expanded?{recordIds:a,onRecordIdsChange:r}=e.expanded:[a,r]=l;let p=T=>r?.(a.filter(d=>d!==B(T,n)));return{expandOnClick:c!==\"always\"&&c!==\"never\",isRowExpanded:T=>c===\"always\"?!0:a.includes(B(T,n)),isExpandable:({record:T,index:d})=>s?s({record:T,index:d}):!0,expandRow:T=>{let d=B(T,n);r?.(m?[...a,d]:[d])},collapseRow:p,collapseProps:i,content:({record:T,index:d})=>()=>u({record:T,index:d,collapse:()=>p(T)})}}}import{useTimeout as Pn}from\"@mantine/hooks\";import{useEffect as rr,useState as Dn}from\"react\";function wn(e,t){let[n,o]=Dn(e),[a,r]=Dn(e),l=Pn(()=>o(!0),0),s=Pn(()=>r(!1),t||200);return rr(()=>{e?(s.clear(),r(!0),l.start()):(l.clear(),o(!1),s.start())},[l,s,e]),{expanded:n,visible:a}}var we=\"mantine-datatable-nowrap\",Se=\"mantine-datatable-ellipsis\",Q=\"mantine-datatable-pointer-cursor\",$e=\"mantine-datatable-context-menu-cursor\",Sn=\"mantine-datatable-text-selection-disabled\",ne=\"mantine-datatable-text-align-left\",oe=\"mantine-datatable-text-align-center\",ae=\"mantine-datatable-text-align-right\";import{jsx as sr}from\"react/jsx-runtime\";function Rn({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,title:a,noWrap:r,ellipsis:l,textAlign:s,width:c}){return te(o)?sr(lr,{\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:ir({[we]:r||l,[Se]:l,[ne]:s===\"left\",[oe]:s===\"center\",[ae]:s===\"right\"},e),style:[{width:c,minWidth:c,maxWidth:c},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],children:a}):null}import{TableTh as cr}from\"@mantine/core\";import{jsx as ur}from\"react/jsx-runtime\";function xn({shadowVisible:e}){return ur(cr,{className:\"mantine-datatable-footer-selector-placeholder-cell\",\"data-shadow-visible\":e||void 0})}import{jsx as kt,jsxs as fr}from\"react/jsx-runtime\";function vn({className:e,style:t,columns:n,defaultColumnProps:o,pinnedMap:a,selectionVisible:r,selectorCellShadowVisible:l,ref:s}){return kt(dr,{ref:s,className:pr(\"mantine-datatable-footer\",e),style:t,children:fr(mr,{children:[r&&kt(xn,{shadowVisible:l}),n.map(({hidden:c,...m})=>{if(c)return null;let{accessor:i,visibleMediaQuery:u,textAlign:p,width:T,footer:d,footerClassName:S,footerStyle:b,noWrap:C,ellipsis:E}={...o,...m};return kt(Rn,{pinnedInfo:a.get(String(i)),className:S,style:b,visibleMediaQuery:u,textAlign:p,width:T,title:d,noWrap:C,ellipsis:E},i)})]})})}import{Checkbox as qr,Group as Zr,Popover as Yr,PopoverDropdown as el,PopoverTarget as tl,Stack as nl,TableThead as ol,TableTr as qn}from\"@mantine/core\";import al from\"clsx\";import{useState as rl}from\"react\";import{TableTh as br}from\"@mantine/core\";import gr from\"clsx\";import{useMemo as Xe}from\"react\";import{jsx as Tr}from\"react/jsx-runtime\";function Mn({group:{id:e,columns:t,groups:n,title:o,textAlign:a,className:r,style:l},pinnedInfo:s,maxDepth:c,currentDepth:m,previousGroups:i,isLastGroup:u,withColumnBorders:p=!1,totalTableColumns:T}){let d=Xe(()=>t&&t.length>0?t:n&&n.length>0?Ie([{id:e,columns:t,groups:n}]):[],[t,n,e]),S=Xe(()=>d.map(({visibleMediaQuery:h})=>h),[d]),b=Cn(S),C=Xe(()=>Fe({id:e,columns:t,groups:n},b),[e,t,n,b]),E=Xe(()=>i.reduce((h,w)=>h+Fe(w,b),0),[i,b]),L=n&&n.length>0?1:c-m,N=E+C<T,f=Zt(u,N,p);return C>0?Tr(br,{colSpan:C,rowSpan:L>1?L:void 0,\"data-pinned\":s?.position,\"data-pinned-shadow\":s?.isBoundary?s.position:void 0,className:gr(\"mantine-datatable-column-group-header-cell\",{[ne]:a===\"left\",[oe]:a===\"center\",[ae]:a===\"right\",\"mantine-datatable-column-group-header-cell--needs-border\":f},r),style:[l,s&&{position:\"sticky\",[s.position]:s.offset,overflow:\"visible\"}],children:o??De(e)}):null}import{ActionIcon as Qn,Box as Gr,Center as et,Flex as Fr,Group as $r,TableTh as Xr}from\"@mantine/core\";import tt from\"clsx\";import{useRef as Ur,useState as Qr}from\"react\";import{ActionIcon as yr,Popover as Pr,PopoverDropdown as Dr,PopoverTarget as wr}from\"@mantine/core\";import{useClickOutside as Sr,useDisclosure as Rr}from\"@mantine/hooks\";import{jsx as kn,jsxs as hr}from\"react/jsx-runtime\";function En(){return hr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[kn(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),kn(\"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 Ln,jsxs as Cr}from\"react/jsx-runtime\";function In(){return Cr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ln(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ln(\"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 Ue,jsxs as xr}from\"react/jsx-runtime\";function Nn({children:e,isActive:t,filterPopoverProps:n,filterPopoverDisableClickOutside:o}){let[a,{close:r,toggle:l}]=Rr(!1),s=t?In:En,c=Sr(r);return o&&(c=void 0),xr(Pr,{withArrow:!0,shadow:\"md\",trapFocus:!0,...n,opened:a,onClose:r,onDismiss:r,children:[Ue(wr,{children:Ue(yr,{className:\"mantine-datatable-header-cell-filter-action-icon\",\"data-active\":t||void 0,size:\"sm\",variant:\"default\",onClick:m=>{m.preventDefault(),l()},onKeyDown:m=>m.stopPropagation(),children:Ue(s,{})})}),Ue(Dr,{ref:c,onClick:m=>m.stopPropagation(),onKeyDown:m=>m.stopPropagation(),children:typeof e==\"function\"?e({close:r}):e})]})}import{ActionIcon as qe,Center as Lr,Group as Ir,Popover as Lt}from\"@mantine/core\";import{useCallback as Nr,useEffect as Hr,useRef as Ar,useState as zn}from\"react\";import{jsx as Qe,jsxs as vr}from\"react/jsx-runtime\";function Hn(){return vr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Qe(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Qe(\"path\",{d:\"M5 12l14 0\"}),Qe(\"path\",{d:\"M5 12l6 6\"}),Qe(\"path\",{d:\"M5 12l6 -6\"})]})}import{jsx as Ke,jsxs as Mr}from\"react/jsx-runtime\";function An(){return Mr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ke(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ke(\"path\",{d:\"M5 12l14 0\"}),Ke(\"path\",{d:\"M19 12l-6 6\"}),Ke(\"path\",{d:\"M19 12l-6 -6\"})]})}import{jsx as je,jsxs as kr}from\"react/jsx-runtime\";function On(){return kr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[je(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),je(\"path\",{d:\"M9 4v6l-2 4v2h10v-2l-2-4v-6\"}),je(\"path\",{d:\"M12 16v5\"}),je(\"path\",{d:\"M8 4h8\"})]})}import{jsx as Et,jsxs as Er}from\"react/jsx-runtime\";function Je(){return Er(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Et(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Et(\"path\",{d:\"M18 6l-12 12\"}),Et(\"path\",{d:\"M6 6l12 12\"})]})}import{jsx as U,jsxs as _n}from\"react/jsx-runtime\";function Wn({currentPinned:e,onPinChange:t}){let[n,o]=zn(!1),a=Ar(null),[r,l]=zn(!1),s=Nr(()=>{if(a.current){let p=getComputedStyle(a.current).direction;l(p===\"rtl\")}},[]);be(()=>{s()},[s]),Hr(()=>{n&&s()},[n,s]);let c=r?\"right\":\"left\",m=r?\"left\":\"right\",i=e===c,u=e===m;return _n(Lt,{opened:n,onChange:o,position:\"bottom\",withArrow:!0,shadow:\"sm\",children:[U(Lt.Target,{children:U(Lr,{ref:a,className:\"mantine-datatable-header-cell-pinnable-icon\",role:\"button\",\"aria-label\":\"Pin column\",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:U(qe,{size:\"xs\",variant:\"light\",onClick:p=>p.stopPropagation(),children:U(On,{})})})}),U(Lt.Dropdown,{onClick:p=>p.stopPropagation(),onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),className:\"mantine-datatable-pinnable-dropdown\",children:_n(Ir,{gap:4,children:[U(qe,{size:\"sm\",variant:i?\"filled\":\"light\",onClick:()=>t(i?void 0:c),\"aria-label\":\"Pin left\",children:U(Hn,{})}),U(qe,{size:\"sm\",variant:u?\"filled\":\"light\",onClick:()=>t(u?void 0:m),\"aria-label\":\"Pin right\",children:U(An,{})}),e&&U(qe,{size:\"sm\",variant:\"light\",color:\"red\",onClick:()=>t(void 0),\"aria-label\":\"Unpin\",children:U(Je,{})})]})})]})}import{useDirection as Or}from\"@mantine/core\";import{useCallback as Bn,useRef as Vn,useState as zr}from\"react\";import{jsx as _r}from\"react/jsx-runtime\";var Gn=50,Fn=e=>{let{accessor:t,columnRef:n}=e,[o,a]=zr(!1),r=Vn(0),l=Vn({current:0,next:0}),{dir:s}=Or(),c=s===\"rtl\",{setMultipleColumnWidths:m,beginResize:i,endResize:u}=Pe(),p=Bn(d=>{if(d.preventDefault(),d.stopPropagation(),!n.current)return;let S=n.current,b=S.nextElementSibling;for(;b;){let f=b.getAttribute(\"data-accessor\");if(f&&f!==\"__selection__\")break;b=b.nextElementSibling}if(!b)return;let C=b.getAttribute(\"data-accessor\");if(!C)return;let E=S.offsetWidth,D=b.offsetWidth;i(),a(!0),r.current=d.clientX,l.current={current:E,next:D};let L=f=>{let h=f.clientX-r.current;c&&(h=-h);let w=l.current.current-Gn,M=l.current.next-Gn,g=Math.max(-w,Math.min(h,M)),R=l.current.current+g,y=l.current.next-g;m([{accessor:t,width:`${R}px`},{accessor:C,width:`${y}px`}])},N=()=>{a(!1),document.body.style.cursor=\"initial\",document.body.style.userSelect=\"initial\",u(),document.removeEventListener(\"mousemove\",L),document.removeEventListener(\"mouseup\",N)};document.body.style.cursor=\"col-resize\",document.body.style.userSelect=\"none\",document.addEventListener(\"mousemove\",L),document.addEventListener(\"mouseup\",N)},[t,n,c,m,i,u]),T=Bn(()=>{if(!n.current)return;let S=n.current.nextElementSibling,b=[{accessor:t,width:\"auto\"}];if(S){let C=S.getAttribute(\"data-accessor\");C&&C!==\"__selection__\"&&b.push({accessor:C,width:\"auto\"})}m(b)},[t,n,m]);return _r(\"div\",{className:\"mantine-datatable-header-resizable-handle\",style:{cursor:o?\"col-resize\":void 0},onMouseDown:p,onDoubleClick:T,onClick:d=>d.stopPropagation(),title:\"Drag to resize column, double-click to reset\"})};import{jsx as Ze,jsxs as Wr}from\"react/jsx-runtime\";function $n(){return Wr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ze(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ze(\"path\",{d:\"M8 7l4 -4l4 4\"}),Ze(\"path\",{d:\"M8 17l4 4l4 -4\"}),Ze(\"path\",{d:\"M12 3l0 18\"})]})}import{jsx as Ye,jsxs as Br}from\"react/jsx-runtime\";function Xn(){return Br(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Ye(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Ye(\"path\",{d:\"M12 5l0 14\"}),Ye(\"path\",{d:\"M16 9l-4 -4\"}),Ye(\"path\",{d:\"M8 9l4 -4\"})]})}import{jsx as ge,jsxs as Vr}from\"react/jsx-runtime\";function Un(){return Vr(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[ge(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),ge(\"path\",{d:\"M9 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),ge(\"path\",{d:\"M9 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),ge(\"path\",{d:\"M9 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),ge(\"path\",{d:\"M15 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),ge(\"path\",{d:\"M15 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"}),ge(\"path\",{d:\"M15 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\"})]})}import{jsx as G,jsxs as It}from\"react/jsx-runtime\";function Kn({className:e,style:t,pinnedInfo:n,accessor:o,visibleMediaQuery:a,title:r,sortable:l,draggable:s,toggleable:c,pinnable:m,resizable:i,sortIcons:u,textAlign:p,width:T,sortStatus:d,onSortStatusChange:S,filter:b,filterPopoverProps:C,filterPopoverDisableClickOutside:E,filtering:D,sortKey:L}){let{setSourceColumn:N,setTargetColumn:f,swapColumns:h,columnsToggle:w,setColumnsToggle:M,columnsPinning:g,setColumnsPinning:R}=Pe(),[y,v]=Qr(!1),H=Ur(null),x=g?.find(O=>O.accessor===o)?.pinned;if(!te(a))return null;let P=r??De(o),A=typeof P==\"string\"?P:void 0,_=l&&S?O=>{O?.defaultPrevented||S({sortKey:L,columnAccessor:o,direction:d?.columnAccessor===o?d.direction===\"asc\"?\"desc\":\"asc\":d?.direction??\"asc\"})}:void 0,z=O=>{O.stopPropagation(),N(o),v(!1)},K=O=>{O.preventDefault(),f(o),v(!0)},le=()=>{f(o),v(!1),h()},ie=()=>{v(!0)},se=()=>{v(!1)},ce=O=>{O.stopPropagation(),M(w.map($=>$.accessor===o?{...$,toggled:!1}:$))},ue=O=>{R($=>$.map(j=>j.accessor===o?{...j,pinned:O}:j))};return It(Xr,{\"data-accessor\":o,\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:tt({\"mantine-datatable-header-cell-sortable\":l,\"mantine-datatable-header-cell-toggleable\":c,\"mantine-datatable-header-cell-pinnable\":m,\"mantine-datatable-header-cell-resizable\":i},e),style:[{width:T,...i?{}:{minWidth:T,maxWidth:T}},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],role:l?\"button\":void 0,tabIndex:l?0:void 0,onClick:_,onKeyDown:O=>O.key===\"Enter\"&&_?.(),ref:H,children:[It($r,{className:\"mantine-datatable-header-cell-sortable-group\",justify:\"space-between\",wrap:\"nowrap\",children:[It(Fr,{align:\"center\",w:\"100%\",className:tt({\"mantine-datatable-header-cell-draggable\":s,\"mantine-datatable-header-cell-drag-over\":y}),draggable:s,onDragStart:s?z:void 0,onDragEnter:s?ie:void 0,onDragOver:s?K:void 0,onDrop:s?le:void 0,onDragLeave:s?se:void 0,children:[s?G(et,{role:\"img\",\"aria-label\":\"Drag column\",children:G(Qn,{className:\"mantine-datatable-header-cell-draggable-action-icon\",variant:\"subtle\",size:\"xs\",onClick:O=>{O.stopPropagation()},children:G(Un,{})})}):null,G(Gr,{className:tt(\"mantine-datatable-header-cell-sortable-text\",{[ne]:p===\"left\",[oe]:p===\"center\",[ae]:p===\"right\"},we,Se),title:A,children:P})]}),m?G(Wn,{currentPinned:x,onPinChange:ue}):null,c?G(et,{className:\"mantine-datatable-header-cell-toggleable-icon\",role:\"img\",\"aria-label\":\"Toggle column\",children:G(Qn,{size:\"xs\",variant:\"light\",onClick:ce,children:G(Je,{})})}):null,l||d?.columnAccessor===o?d?.columnAccessor===o?G(et,{className:tt(\"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||G(Xn,{})}):G(et,{className:\"mantine-datatable-header-cell-sortable-unsorted-icon\",role:\"img\",\"aria-label\":\"Not sorted\",children:u?.unsorted||G($n,{})}):null,b?G(Nn,{filterPopoverProps:C,isActive:!!D,filterPopoverDisableClickOutside:E,children:b}):null]}),i&&o!==\"__selection__\"?G(Fn,{accessor:o,columnRef:H}):null]})}import{Checkbox as Kr,TableTh as jr}from\"@mantine/core\";import Jr from\"clsx\";import{jsx as jn}from\"react/jsx-runtime\";function Jn({className:e,style:t,trigger:n,shadowVisible:o,checked:a,indeterminate:r,checkboxProps:l,onChange:s,rowSpan:c,ref:m}){let i=!l.disabled;return jn(jr,{ref:m,className:Jr(\"mantine-datatable-header-selector-cell\",{[Q]:n===\"cell\"&&i},e),style:t,rowSpan:c,\"data-shadow-visible\":o||void 0,\"data-accessor\":\"__selection__\",onClick:n===\"cell\"&&i?s:void 0,children:jn(Kr,{classNames:i?{input:Q}:void 0,checked:a,indeterminate:r,onChange:s,...l,disabled:!(s||l.onChange)||l.disabled})})}import{jsx as re,jsxs as nt}from\"react/jsx-runtime\";function ll(e,t){let o=(e.columns??[]).filter(u=>!u.hidden).map(u=>String(u.accessor)),a=o.map(u=>t.get(u)).filter(Boolean);if(a.length===0||a.length!==o.length)return;let r=new Set(a.map(u=>u.logicalSide));if(r.size>1)return;let l=[...r][0],s=l===\"left\"?o[0]:o[o.length-1],c=t.get(s);if(!c)return;let m=l===\"left\"?o[o.length-1]:o[0],i=t.get(m);return{...c,isBoundary:i?.isBoundary??!1}}function Zn({selectionColumnHeaderRef:e,className:t,style:n,sortStatus:o,sortIcons:a,onSortStatusChange:r,columns:l,defaultColumnProps:s,groups:c,pinnedMap:m,selectionTrigger:i,selectionVisible:u,selectionChecked:p,selectionIndeterminate:T,onSelectionChange:d,selectionCheckboxProps:S,selectorCellShadowVisible:b,selectionColumnClassName:C,selectionColumnStyle:E,withColumnBorders:D=!1,ref:L}){let N=c?Pt(c):0,f=N>0?N+1:1,h=u?re(Jn,{ref:e,className:C,style:E,trigger:i,shadowVisible:b,checked:p,indeterminate:T,checkboxProps:S,onChange:d,rowSpan:c?f:void 0}):null,{columnsToggle:w,setColumnsToggle:M}=Pe(),[g,R]=rl(!1),y=l.some(k=>k.toggleable),v=y?Object.fromEntries(l.map(({accessor:k,title:x})=>[k,x??De(String(k))])):void 0,H=nt(ol,{className:al(\"mantine-datatable-header\",t),style:n,ref:L,onContextMenu:y?k=>{k.preventDefault(),R(x=>!x)}:void 0,children:[c&&Array.from({length:N},(k,x)=>{let P=Dt(c,x);return nt(qn,{children:[x===0&&h,P.map((A,_)=>re(Mn,{group:A,pinnedInfo:ll(A,m),maxDepth:N,currentDepth:x,previousGroups:P.slice(0,_),isLastGroup:_===P.length-1,withColumnBorders:D,totalTableColumns:l.length},A.id))]},`group-depth-${x}`)}),nt(qn,{children:[!c&&h,l.map(({hidden:k,...x},P)=>{if(k)return null;let{accessor:A,visibleMediaQuery:_,textAlign:z,width:K,title:le,sortable:ie,draggable:se,toggleable:ce,pinnable:ue,resizable:O,titleClassName:$,titleStyle:j,filter:J,filterPopoverProps:it,filterPopoverDisableClickOutside:st,filtering:ct,sortKey:ut}={...s,...x};return re(Kn,{accessor:A,pinnedInfo:m.get(String(A)),className:$,style:j,visibleMediaQuery:_,textAlign:z,width:K,title:le,sortable:ie,draggable:se,toggleable:ce,pinnable:ue,resizable:O&&P<l.length-1,sortStatus:o,sortIcons:a,sortKey:ut,onSortStatusChange:r,filter:J,filterPopoverProps:it,filterPopoverDisableClickOutside:st,filtering:ct},A)})]})]});return y?nt(Yr,{position:\"bottom\",withArrow:!0,shadow:\"md\",opened:g,onChange:R,children:[re(tl,{children:H}),re(el,{children:re(nl,{children:w.filter(k=>k.toggleable).map(k=>re(Zr,{children:re(qr,{classNames:{label:\"mantine-datatable-header-column-toggle-checkbox-label\"},size:\"xs\",label:v[k.accessor],checked:k.toggled,onChange:x=>{M(w.map(P=>P.accessor===k.accessor?{...P,toggled:x.currentTarget.checked}:P))}})},k.accessor))})})]}):H}import{Center as il,Loader as sl}from\"@mantine/core\";import cl from\"clsx\";import{jsx as Yn}from\"react/jsx-runtime\";function eo({fetching:e,customContent:t,backgroundBlur:n,size:o,type:a,color:r}){return Yn(il,{className:cl(\"mantine-datatable-loader\",{\"mantine-datatable-loader-fetching\":e}),style:[{backdropFilter:n?`blur(${n}px)`:void 0}],children:e&&(t||Yn(sl,{size:o,type:a,color:r}))})}import{Box as hl,Pagination as Cl,rem as yl,Text as Pl}from\"@mantine/core\";import lo from\"clsx\";import{Button as dl,Group as ml,Menu as pl,MenuDropdown as fl,MenuItem as bl,MenuTarget as gl,rem as Ne,Text as no}from\"@mantine/core\";import Tl from\"clsx\";import{jsx as Nt,jsxs as ul}from\"react/jsx-runtime\";function to(){return ul(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",strokeWidth:\"2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[Nt(\"path\",{stroke:\"none\",d:\"M0 0h24v24H0z\",fill:\"none\"}),Nt(\"path\",{d:\"M8 9l4 -4l4 4\"}),Nt(\"path\",{d:\"M16 15l-4 4l-4 -4\"})]})}import{jsx as Te,jsxs as ao}from\"react/jsx-runtime\";var oo={xs:Ne(22),sm:Ne(26),md:Ne(32),lg:Ne(38),xl:Ne(44)};function ro({size:e,label:t,values:n,value:o,activeTextColor:a,activeBackgroundColor:r,onChange:l}){return ao(ml,{gap:\"xs\",children:[Te(no,{component:\"div\",size:e,children:t}),ao(pl,{withinPortal:!0,withArrow:!0,offset:2,classNames:{arrow:\"mantine-datatable-page-size-selector-menu-arrow\"},children:[Te(gl,{children:Te(dl,{size:e,variant:\"default\",classNames:{section:\"mantine-datatable-page-size-selector-button-icon\"},rightSection:Te(to,{}),style:[{fontWeight:\"normal\"},s=>({height:oo[e],paddingLeft:s.spacing[e],paddingRight:s.spacing[e]})],children:o})}),Te(fl,{children:n.map(s=>{let c=s===o;return Te(bl,{className:Tl({\"mantine-datatable-page-size-selector-active\":c}),style:[{height:oo[e]},c&&(a||r)?m=>We({theme:m,paginationActiveTextColor:a,paginationActiveBackgroundColor:r}):void 0],disabled:c,onClick:()=>l(s),children:Te(no,{component:\"div\",size:e,children:s})},s)})})]})]})}import{Fragment as Dl,jsx as he,jsxs as wl}from\"react/jsx-runtime\";function io({className:e,style:t,fetching:n,page:o,onPageChange:a,paginationWithEdges:r,paginationWithControls:l,paginationActiveTextColor:s,paginationActiveBackgroundColor:c,paginationSize:m,loadingText:i,noRecordsText:u,paginationText:p,totalRecords:T,recordsPerPage:d,onRecordsPerPageChange:S,recordsPerPageLabel:b,recordsPerPageOptions:C,recordsLength:E,horizontalSpacing:D,paginationWrapBreakpoint:L,getPaginationControlProps:N,getPaginationItemProps:f,renderPagination:h}){let w;if(T){let x=(o-1)*d+1,P=x+(E||0)-1;w=p({from:x,to:P,totalRecords:T})}else w=n?i:u;let M=T&&d?Math.max(1,Math.ceil(T/d)):1,g=T?(o-1)*(d??0)+1:void 0,R=T?(g??1)+(E??0)-1:void 0,v=!te(({breakpoints:x})=>`(min-width: ${typeof L==\"number\"?`${yl(L)}rem`:x[L]||L})`),H={Text:x=>he(Pl,{component:\"div\",className:\"mantine-datatable-pagination-text\",size:m,...x,children:w}),PageSizeSelector:x=>C?he(ro,{activeTextColor:s,activeBackgroundColor:c,size:m,label:b,values:C,value:d,onChange:S,...x}):null,Pagination:x=>he(Cl,{classNames:{root:lo(\"mantine-datatable-pagination-pages\",{\"mantine-datatable-pagination-pages-fetching\":n||!E}),control:\"mantine-datatable-pagination-pages-control\"},style:s||c?P=>We({theme:P,paginationActiveTextColor:s,paginationActiveBackgroundColor:c}):void 0,withEdges:r,withControls:l,value:o,onChange:a,size:m,total:M,getControlProps:N,getItemProps:f,...x})},k={state:{paginationSize:m,page:o,totalPages:M,totalRecords:T,recordsPerPage:d,recordsLength:E,fetching:n,from:g,to:R,isWrapped:v},actions:{setPage:x=>a?.(x),setRecordsPerPage:S?x=>S(x):void 0},Controls:H};return he(hl,{px:D??\"xs\",py:\"xs\",className:lo(\"mantine-datatable-pagination\",e),style:[{flexDirection:v?\"column\":\"row\"},t],children:typeof h==\"function\"?h(k):wl(Dl,{children:[he(H.Text,{}),he(H.PageSizeSelector,{}),he(H.Pagination,{})]})})}import{TableTr as Hl}from\"@mantine/core\";import Al from\"clsx\";import{TableTd as Sl}from\"@mantine/core\";import Rl from\"clsx\";import{jsx as xl}from\"react/jsx-runtime\";function so({className:e,style:t,pinnedInfo:n,visibleMediaQuery:o,record:a,index:r,onClick:l,onDoubleClick:s,onContextMenu:c,noWrap:m,ellipsis:i,textAlign:u,width:p,accessor:T,render:d,defaultRender:S,customCellAttributes:b}){return te(o)?xl(Sl,{\"data-pinned\":n?.position,\"data-pinned-shadow\":n?.isBoundary?n.position:void 0,className:Rl({[we]:m||i,[Se]:i,[Q]:l||s,[$e]:c,[ne]:u===\"left\",[oe]:u===\"center\",[ae]:u===\"right\"},e),style:[{width:p,minWidth:p,maxWidth:p},t,n&&{position:\"sticky\",[n.position]:n.offset,overflow:\"visible\"}],onClick:l,onDoubleClick:s,onContextMenu:c,...b?.(a,r),children:d?d(a,r):S?S(a,r,T):yt(a,T)}):null}import{Collapse as vl,TableTd as Ml,TableTr as co}from\"@mantine/core\";import{Fragment as kl,jsx as He,jsxs as El}from\"react/jsx-runtime\";function uo({open:e,colSpan:t,content:n,collapseProps:o}){let{expanded:a,visible:r}=wn(e,o?.transitionDuration);return r?El(kl,{children:[He(co,{}),He(co,{children:He(Ml,{className:\"mantine-datatable-row-expansion-cell\",colSpan:t,children:He(vl,{expanded:a,...o,children:He(\"div\",{className:\"mantine-datatable-row-expansion-cell-content\",children:n()})})})})]}):null}import{Checkbox as Ll,TableTd as Il}from\"@mantine/core\";import Nl from\"clsx\";import{jsx as mo}from\"react/jsx-runtime\";function po({className:e,style:t,record:n,index:o,trigger:a,onChange:r,withRightShadow:l,checkboxProps:s,getCheckboxProps:c,...m}){let i={...s,...c(n,o)},u=!m.disabled&&!i.disabled,p=T=>{T.stopPropagation(),a===\"cell\"&&u&&r?.(T)};return mo(Il,{className:Nl(\"mantine-datatable-row-selector-cell\",{[Q]:a===\"cell\"&&u},e),style:t,\"data-shadow-visible\":l||void 0,onClick:p,children:mo(Ll,{classNames:u?{input:Q}:void 0,onChange:r,...m,...i})})}import{Fragment as fo,jsx as ot,jsxs as bo}from\"react/jsx-runtime\";function go({record:e,index:t,columns:n,defaultColumnProps:o,pinnedMap:a,defaultColumnRender:r,selectionTrigger:l,selectionVisible:s,selectionChecked:c,onSelectionChange:m,isRecordSelectable:i,selectionCheckboxProps:u,getSelectionCheckboxProps:p,onClick:T,onDoubleClick:d,onContextMenu:S,onCellClick:b,onCellDoubleClick:C,onCellContextMenu:E,expansion:D,customAttributes:L,color:N,backgroundColor:f,className:h,style:w,selectorCellShadowVisible:M,selectionColumnClassName:g,selectionColumnStyle:R,rowFactory:y}){let v=bo(fo,{children:[s&&ot(po,{className:g,style:R,record:e,index:t,trigger:l,withRightShadow:M,checked:c,disabled:!m||(i?!i(e,t):!1),onChange:m,checkboxProps:u,getCheckboxProps:p}),n.map(({hidden:x,hiddenContent:P,...A},_)=>{if(x||P)return null;let{accessor:z,visibleMediaQuery:K,textAlign:le,noWrap:ie,ellipsis:se,width:ce,render:ue,cellsClassName:O,cellsStyle:$,customCellAttributes:j}={...o,...A};return ot(so,{pinnedInfo:a.get(String(z)),className:typeof O==\"function\"?O(e,t):O,style:$?.(e,t),visibleMediaQuery:K,record:e,index:t,onClick:b?J=>b({event:J,record:e,index:t,column:A,columnIndex:_}):void 0,onDoubleClick:C?J=>C({event:J,record:e,index:t,column:A,columnIndex:_}):void 0,onContextMenu:E?J=>E({event:J,record:e,index:t,column:A,columnIndex:_}):void 0,accessor:z,textAlign:le,noWrap:ie,ellipsis:se,width:ce,render:ue,defaultRender:r,customCellAttributes:j},z)})]}),H=D&&ot(uo,{colSpan:n.filter(({hidden:x})=>!x).length+(s?1:0),open:D.isRowExpanded(e),content:D.content({record:e,index:t}),collapseProps:D.collapseProps}),k=Ol({record:e,index:t,selectionChecked:c,onClick:T,onDoubleClick:d,onContextMenu:S,expansion:D,customAttributes:L,color:N,backgroundColor:f,className:h,style:w});return y?y({record:e,index:t,rowProps:k,children:v,expandedElement:H}):bo(fo,{children:[ot(Hl,{...k,children:v}),H]})}function Ol({record:e,index:t,selectionChecked:n,onClick:o,onDoubleClick:a,onContextMenu:r,expansion:l,customAttributes:s,color:c,backgroundColor:m,className:i,style:u}){return{className:Al(\"mantine-datatable-row\",{[Q]:o||a||l?.isExpandable({record:e,index:t})&&l?.expandOnClick},{[$e]:r},typeof i==\"function\"?i(e,t):i),\"data-selected\":n||void 0,onClick:p=>{if(l){let{isExpandable:T,isRowExpanded:d,expandOnClick:S,expandRow:b,collapseRow:C}=l;T({record:e,index:t})&&S&&(d(e)?C(e):b(e))}o?.({event:p,record:e,index:t})},onDoubleClick:a?p=>a({event:p,record:e,index:t}):void 0,onContextMenu:r?p=>r({event:p,record:e,index:t}):void 0,style:[c||m?p=>{let T=c?.(e,t),d=m?.(e,t);return $t({theme:p,color:T,backgroundColor:d})}:void 0,u?.(e,t)],...s?.(e,t)??{}}}import{Box as To,ScrollArea as zl}from\"@mantine/core\";import at from\"clsx\";import{jsx as rt,jsxs as _l}from\"react/jsx-runtime\";function ho({leftShadowBehind:e,rightShadowBehind:t,onScrollPositionChange:n,children:o,viewportRef:a,scrollAreaProps:r}){return _l(zl,{...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:n,children:[o,rt(To,{className:at(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-top-shadow\")}),rt(\"div\",{className:at(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-left-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":e})}),rt(\"div\",{className:at(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-right-shadow\",{\"mantine-datatable-scroll-area-shadow-behind\":t})}),rt(To,{className:at(\"mantine-datatable-scroll-area-shadow\",\"mantine-datatable-scroll-area-bottom-shadow\")})]})}import{jsx as F,jsxs as yo}from\"react/jsx-runtime\";function $l({withTableBorder:e,borderRadius:t,textSelectionDisabled:n,height:o=\"100%\",minHeight:a,maxHeight:r,shadow:l,verticalAlign:s=\"center\",fetching:c,columns:m,storeColumnsKey:i,groups:u,pinFirstColumn:p,pinLastColumn:T,defaultColumnProps:d,defaultColumnRender:S,idAccessor:b=\"id\",records:C,selectionTrigger:E=\"checkbox\",selectedRecords:D,onSelectedRecordsChange:L,selectionColumnClassName:N,selectionColumnStyle:f,isRecordSelectable:h,selectionCheckboxProps:w,allRecordsSelectionCheckboxProps:M={\"aria-label\":\"Select all records\"},getRecordSelectionCheckboxProps:g=(de,V)=>({\"aria-label\":`Select record ${V+1}`}),sortStatus:R,sortIcons:y,onSortStatusChange:v,horizontalSpacing:H,page:k,onPageChange:x,totalRecords:P,recordsPerPage:A,onRecordsPerPageChange:_,recordsPerPageOptions:z,recordsPerPageLabel:K=\"Records per page\",paginationWithEdges:le,paginationWithControls:ie,paginationActiveTextColor:se,paginationActiveBackgroundColor:ce,paginationSize:ue=\"sm\",paginationText:O=({from:de,to:V,totalRecords:pt})=>`${de} - ${V} / ${pt}`,paginationWrapBreakpoint:$=\"sm\",getPaginationControlProps:j=de=>de===\"previous\"?{\"aria-label\":\"Previous page\"}:de===\"next\"?{\"aria-label\":\"Next page\"}:{},getPaginationItemProps:J,renderPagination:it,loaderBackgroundBlur:st,customLoader:ct,loaderSize:ut,loaderType:Po,loaderColor:Do,loadingText:wo=\"...\",emptyState:So,noRecordsText:Ot=\"No records\",noRecordsIcon:Ro,highlightOnHover:xo,striped:vo,noHeader:Mo,onRowClick:ko,onRowDoubleClick:Eo,onRowContextMenu:Lo,onCellClick:Io,onCellDoubleClick:No,onCellContextMenu:Ho,onScroll:Ao,onScrollToTop:Oo,onScrollToBottom:zo,onScrollToLeft:_o,onScrollToRight:Wo,c:Bo,backgroundColor:Vo,borderColor:Go,rowBorderColor:Fo,stripedColor:$o,highlightOnHoverColor:Xo,rowColor:Uo,rowBackgroundColor:Qo,rowExpansion:Ko,rowClassName:jo,rowStyle:Jo,customRowAttributes:qo,scrollViewportRef:Zo,scrollAreaProps:Yo,tableRef:ea,bodyRef:ta,m:na,my:oa,mx:aa,mt:ra,mb:la,ml:ia,mr:sa,className:ca,classNames:Re,style:ua,styles:xe,rowFactory:da,tableWrapper:dt,...mt}){let de=Fl(()=>u?Ie(u):m,[m,u]),{refs:V,onScroll:pt}=fn({scrollCallbacks:{onScroll:Ao,onScrollToTop:Oo,onScrollToBottom:zo,onScrollToLeft:_o,onScrollToRight:Wo},withRowBorders:mt.withRowBorders}),q=cn({key:i,columns:de,headerRef:V.header,scrollViewportRef:V.scrollViewport}),ve=q.effectiveColumns,ma=Ht(V.table,ea),pa=Ht(V.scrollViewport,Zo),zt=lt(null),fa=Ht(zt,ta),ba=yn({rowExpansion:Ko,records:C,idAccessor:b}),{pinnedMap:Me,hasLeftPinned:_t,hasRightPinned:ga}=bn({columns:ve,theadRef:V.header,tbodyRef:zt,selectionColumnHeaderRef:V.selectionColumnHeader,selectionVisible:!!D,pinFirstColumn:p,pinLastColumn:T}),Ae=lt(!1),Wt=lt(k),ft=lt(C),Ta=At(I=>{Ae.current=!0,ft.current=C,x(I)},[x,C]);Vl(()=>{Wt.current!==k&&(Ae.current=!0,ft.current=C,Wt.current=k)},[k,C]);let ke=C?.length;Gl(()=>{if(!Ae.current||c||C===ft.current)return;let I=V.scrollViewport.current;if(!I)return;let me=requestAnimationFrame(()=>{I.scrollTo({top:0,left:0}),Ae.current=!1});return()=>cancelAnimationFrame(me)},[c,C,V.scrollViewport]);let Bt=C?.map(I=>B(I,b)),Ce=!!D,Ee=D?.map(I=>B(I,b)),Vt=Bt!==void 0&&Ee!==void 0&&Ee.length>0,bt=h?C?.filter(h):C,Oe=bt?.map(I=>B(I,b)),ze=Vt&&Oe.every(I=>Ee.includes(I)),ha=Vt&&Oe.some(I=>Ee.includes(I)),Ca=At(()=>{D&&L&&L(ze?D.filter(I=>!Oe.includes(B(I,b))):Ge([...D,...bt],I=>B(I,b)))},[ze,b,L,Oe,bt,D]),{lastSelectionChangeIndex:_e,setLastSelectionChangeIndex:ya}=gn(Bt),gt=Ce&&!_t,Pa={m:na,my:oa,mx:aa,mt:ra,mb:la,ml:ia,mr:sa},Da=At(({children:I})=>dt?dt({children:I}):I,[dt]);return F(Ct,{...q,pinnedMap:Me,children:yo(Wl,{ref:V.root,...Pa,className:Co(\"mantine-datatable\",{\"mantine-datatable-with-border\":e},ca,Re?.root),style:[I=>({...Ft({theme:I,c:Bo,backgroundColor:Vo,borderColor:Go,rowBorderColor:Fo,stripedColor:$o,highlightOnHoverColor:Xo}),borderRadius:I.radius[t]||t,boxShadow:I.shadows[l]||l,height:o,minHeight:a,maxHeight:r}),ua,xe?.root,{position:\"relative\"}],children:[F(ho,{viewportRef:pa,leftShadowBehind:Ce||_t,rightShadowBehind:ga,onScrollPositionChange:pt,scrollAreaProps:Yo,children:F(Da,{children:yo(Bl,{ref:ma,horizontalSpacing:H,className:Co(\"mantine-datatable-table\",{[Sn]:n,\"mantine-datatable-vertical-align-top\":s===\"top\",\"mantine-datatable-vertical-align-bottom\":s===\"bottom\",\"mantine-datatable-selection-column-visible\":Ce,\"mantine-datatable-resizable-columns\":q.hasResizableColumns,\"mantine-datatable-resize-locked\":q.isLocked,\"mantine-datatable-resizing\":q.isResizing},Re?.table),style:{...xe?.table,...q.isLocked?{tableLayout:\"fixed\"}:null,...q.tableWidth!=null?{width:`${q.tableWidth}px`}:null},\"data-striped\":ke&&vo||void 0,\"data-highlight-on-hover\":xo||void 0,...mt,children:[Mo?null:F(Ct,{...q,pinnedMap:Me,children:F(Zn,{ref:V.header,selectionColumnHeaderRef:V.selectionColumnHeader,className:Re?.header,style:xe?.header,columns:ve,defaultColumnProps:d,groups:u,pinnedMap:Me,sortStatus:R,sortIcons:y,onSortStatusChange:v,selectionTrigger:E,selectionVisible:Ce,selectionChecked:ze,selectionIndeterminate:ha&&!ze,onSelectionChange:Ca,selectionCheckboxProps:{...w,...M},selectorCellShadowVisible:gt,selectionColumnClassName:N,selectionColumnStyle:f,withColumnBorders:mt.withColumnBorders})}),F(\"tbody\",{ref:fa,children:ke?C.map((I,me)=>{let Tt=B(I,b),ht=Ee?.includes(Tt)||!1,Gt;return L&&D&&(Gt=wa=>{if(wa.nativeEvent.shiftKey&&_e!==null){let ye=C.filter(me>_e?(pe,fe)=>fe>=_e&&fe<=me&&(h?h(pe,fe):!0):(pe,fe)=>fe>=me&&fe<=_e&&(h?h(pe,fe):!0));L(ht?qt(D,ye,pe=>B(pe,b)):Ge([...D,...ye],pe=>B(pe,b)))}else L(ht?D.filter(ye=>B(ye,b)!==Tt):Ge([...D,I],ye=>B(ye,b)));ya(me)}),F(go,{record:I,index:me,columns:ve,defaultColumnProps:d,pinnedMap:Me,defaultColumnRender:S,selectionTrigger:E,selectionVisible:Ce,selectionChecked:ht,onSelectionChange:Gt,isRecordSelectable:h,selectionCheckboxProps:w,getSelectionCheckboxProps:g,onClick:ko,onDoubleClick:Eo,onCellClick:Io,onCellDoubleClick:No,onContextMenu:Lo,onCellContextMenu:Ho,expansion:ba,color:Uo,backgroundColor:Qo,className:jo,style:Jo,customAttributes:qo,selectorCellShadowVisible:gt,selectionColumnClassName:N,selectionColumnStyle:f,idAccessor:b,rowFactory:da},Tt)}):F(Kt,{})}),ve.some(({footer:I})=>I)&&F(vn,{ref:V.footer,className:Re?.footer,style:xe?.footer,columns:ve,defaultColumnProps:d,pinnedMap:Me,selectionVisible:Ce,selectorCellShadowVisible:gt})]})})}),!!(k&&ke)&&F(io,{className:Re?.pagination,style:xe?.pagination,horizontalSpacing:H,fetching:c,page:k,onPageChange:Ta,totalRecords:P,recordsPerPage:A,onRecordsPerPageChange:_,recordsPerPageOptions:z,recordsPerPageLabel:K,paginationWithEdges:le,paginationWithControls:ie,paginationActiveTextColor:se,paginationActiveBackgroundColor:ce,paginationSize:ue,paginationText:O,paginationWrapBreakpoint:$,getPaginationControlProps:j,getPaginationItemProps:J,noRecordsText:Ot,loadingText:wo,recordsLength:ke,renderPagination:it}),F(eo,{fetching:c,backgroundBlur:st,customContent:ct,size:ut,type:Po,color:Do}),F(Jt,{icon:Ro,text:Ot,active:!c&&!ke,children:So})]})})}import{TableTr as Xl}from\"@mantine/core\";import{useMergedRef as Ul}from\"@mantine/hooks\";import{useEffect as Ql,useRef as Kl}from\"react\";import{jsx as Jl}from\"react/jsx-runtime\";function jl({className:e,children:t,isDragging:n,ref:o,...a}){let r=Kl(null),l=Ul(r,o);return Ql(()=>{if(!r.current||!n)return;let i=r.current.parentElement.parentElement.children[0].children[0];for(let u=0;u<i.children.length;u++){let T=i.children[u].getBoundingClientRect(),d=r.current.children[u];d.style.height=`${T.height}px`,d.style.width=`${T.width}px`,d.style.minWidth=`${T.width}px`,d.style.maxWidth=`${T.width}px`}},[n,t]),Jl(Xl,{\"data-is-dragging\":n,ref:l,...a,className:e,children:t})}export{$l as DataTable,jl as DataTableDraggableRow,Fe as calculateColSpan,qt as differenceBy,Ie as flattenColumns,Dt as getGroupsAtDepth,Pt as getMaxGroupDepth,B as getRecordId,yt as getValueAtPath,Ve as hasStringAccessor,De as humanize,Zt as needsRightBorder,hi as reorderRecords,Z as sanitizeStoredArray,Ci as swapRecords,Ge as uniqBy,cn as useDataTableColumns};\n//# sourceMappingURL=index.mjs.map","import { Group, Skeleton, Stack } from \"@mantine/core\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTable.tsx\";\nimport { EntityForm } from \"./EntityForm.tsx\";\n\nexport interface UpdateModalProps<T> {\n fields: Field<T>[];\n steps?: StepConfig[];\n onClose: () => void;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n id: string | number;\n}\n\nexport function UpdateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n connectedQueryKeys,\n apiPath,\n id,\n steps,\n}: UpdateModalProps<T>) {\n const { data, isLoading } = useGetOne<T>(apiPath, queryKey, id);\n const { mutateAsync: update, isPending, error } = useUpdateOne<T>(apiPath, queryKey, connectedQueryKeys);\n\n if (isLoading || !data) {\n return (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array.from({ length: fields.length }).map((_, index) => (\n <Skeleton key={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 }\n\n const persist = async (values: T) => {\n await update({ ...values, id });\n };\n\n return (\n <EntityForm\n fields={fields}\n steps={steps}\n record={data}\n recordId={id}\n submitting={isPending}\n error={error}\n onPersist={persist}\n onClose={onClose}\n />\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { ReactNode, useEffect, useState } from \"react\";\n\nexport interface DeleteModalProps<T> {\n onClose: () => void;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n selectedRecords: T[];\n confirmMessage?: (records: T[]) => ReactNode;\n}\n\nexport function DeleteModal<T extends BaseEntity>({\n queryKey,\n connectedQueryKeys,\n apiPath,\n onClose,\n selectedRecords,\n confirmMessage,\n}: DeleteModalProps<T>) {\n const {\n mutateAsync: del,\n isError: isDeleteError,\n error: deleteError,\n isPending: isDeletePending,\n } = useDeleteOne(apiPath, queryKey, connectedQueryKeys);\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 {confirmMessage\n ? confirmMessage(records)\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 | ((prev: T) => T)) => void] {\n const storageKey = `use_persistent_storage_${key}`;\n\n const [state, setState] = useState<T>(() => {\n try {\n const storedValue = localStorage.getItem(storageKey);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n } catch {\n return initialValue;\n }\n });\n\n const setPersistentState = (value: T | ((prev: T) => T)) => {\n setState((prev) => {\n const next = value instanceof Function ? value(prev) : value;\n localStorage.setItem(storageKey, JSON.stringify(next));\n return next;\n });\n };\n\n return [state, setPersistentState];\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","type 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\nexport type Filter = DateFilter | StringFilter | BooleanFilter;\n\nfunction hasId(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && \"id\" in value;\n}\n\nfunction arrayItemMatches(item: unknown, filterValue: string[]): boolean {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filterValue.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (hasId(obj) && filterValue.includes(obj.id as string)) return true;\n return Object.values(obj).some(\n (prop) =>\n (typeof prop === \"string\" && filterValue.includes(prop)) ||\n (hasId(prop) && filterValue.includes(prop.id as string)),\n );\n }\n return false;\n}\n\nfunction matchesQuery(value: unknown, filterValue: string | string[]): boolean {\n if (Array.isArray(filterValue)) {\n if (Array.isArray(value)) return value.some((item) => arrayItemMatches(item, filterValue));\n if (hasId(value)) return filterValue.includes(value.id as string);\n return false;\n }\n return typeof value === \"string\" && value.includes(filterValue);\n}\n\nfunction matchesDate(value: unknown, [from, to]: DatesRangeValue): boolean {\n if (!from && !to) return true;\n if (typeof value !== \"string\") return true;\n const date = value.split(\" \")[0];\n if (from && to) return date >= from && date <= to;\n if (from) return date >= from;\n return date <= to!;\n}\n\nfunction matchesFilter<T>(record: T, filter: Filter): boolean {\n if (filter.value === undefined) return true;\n const value = (record as Record<string, unknown>)[filter.id as string];\n switch (filter.type) {\n case \"query\":\n return matchesQuery(value, filter.value);\n case \"date\":\n return matchesDate(value, filter.value);\n case \"boolean\":\n return value === filter.value;\n }\n}\n\nexport function applyFilters<T>(data: T[], filters?: Filter[]): T[] {\n if (!filters || filters.length === 0) return data;\n return data.filter((record) => filters.every((filter) => matchesFilter(record, filter)));\n}\n","import { Box, Divider, Group, Text } from \"@mantine/core\";\nimport React from \"react\";\n\nexport interface FieldRow {\n label: React.ReactNode;\n value: React.ReactNode;\n}\n\nexport function FieldCardRows({ rows }: { readonly rows: readonly FieldRow[] }) {\n return (\n <>\n {rows.map((row, index) => (\n <Box key={typeof row.label === \"string\" ? row.label : index}>\n {index > 0 && <Divider />}\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"flex-start\" gap=\"md\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\" style={{ flexShrink: 0 }}>\n {row.label}\n </Text>\n <Box ta=\"right\" fz=\"sm\" style={{ minWidth: 0 }}>\n {row.value}\n </Box>\n </Group>\n </Box>\n ))}\n </>\n );\n}\n\nexport function FieldCard({ rows }: { readonly rows: readonly FieldRow[] }) {\n return (\n <Box\n bg=\"var(--mantine-color-gray-light)\"\n style={{ borderRadius: \"var(--mantine-radius-md)\", overflow: \"hidden\" }}\n >\n <FieldCardRows rows={rows} />\n </Box>\n );\n}\n","import { Accordion, ActionIcon, Box, Collapse, Divider, Group, Indicator, Menu, Pagination, Popover, Select, Stack, Text } from \"@mantine/core\";\nimport { BaseEntity } from \"../Hooks/useApi\";\nimport { Action, Field } from \"./DataTable\";\nimport React, { useState } from \"react\";\nimport { IconDotsVertical, IconFilter, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\nimport { FieldCardRows, FieldRow } from \"./FieldCard\";\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 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 expandable?: (record: T) => boolean;\n content: (record: T, isMobile: boolean) => React.ReactNode;\n expanded?: {\n recordIds: unknown[];\n onRecordIdsChange: (recordIds: unknown[]) => void;\n };\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\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n onRowClick,\n actions,\n canUpdate,\n canDelete,\n pagination,\n sort,\n rowExpansion,\n}: MobileCardListProps<T>) {\n const [internalExpandedIds, setInternalExpandedIds] = useState<Set<string | number>>(new Set());\n const controlledExpansion = rowExpansion?.expanded;\n\n const isExpanded = (id: string | number) =>\n controlledExpansion ? controlledExpansion.recordIds.includes(id) : internalExpandedIds.has(id);\n\n const toggleExpansion = (id: string | number) => {\n if (controlledExpansion) {\n const { recordIds, onRecordIdsChange } = controlledExpansion;\n onRecordIdsChange(\n recordIds.includes(id) ? recordIds.filter((r) => r !== id) : [...recordIds, id],\n );\n } else {\n setInternalExpandedIds((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 };\n const listFields = fields.filter((f) => f.list && f.column && !f.column.hidden);\n\n const filterFields = fields.filter((f) => f.column && f.column.filter != null);\n const activeFilterIds = filterFields.filter((f) => f.column.filtering).map((f) => f.id);\n const hasActiveFilter = activeFilterIds.length > 0;\n const defaultOpenFilters = hasActiveFilter ? activeFilterIds : filterFields.slice(0, 1).map((f) => f.id);\n const [filterOpen, setFilterOpen] = useState(false);\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 handleCardClick = (record: T, index: number, event: React.MouseEvent) => {\n onRowClick?.({ record, index, event });\n };\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {((sort && sortOptions.length > 0) || filterFields.length > 0) && (\n <Group gap=\"xs\" wrap=\"nowrap\" justify=\"flex-end\">\n {sort && sortOptions.length > 0 && (\n <>\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 </>\n )}\n {filterFields.length > 0 && (\n <Popover opened={filterOpen} onChange={setFilterOpen} position=\"bottom-end\" withArrow shadow=\"md\" trapFocus>\n <Popover.Target>\n <Indicator inline disabled={!hasActiveFilter} color=\"green\" withBorder>\n <ActionIcon\n variant={hasActiveFilter ? \"filled\" : \"default\"}\n size=\"input-sm\"\n onClick={() => setFilterOpen((o) => !o)}\n aria-label=\"Filter\"\n >\n <IconFilter size={18} />\n </ActionIcon>\n </Indicator>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <Accordion multiple defaultValue={defaultOpenFilters} style={{ minWidth: 260, maxWidth: 320 }}>\n {filterFields.map((f) => (\n <Accordion.Item key={f.id} value={f.id}>\n <Accordion.Control>\n <Group gap=\"xs\">\n <Text fw={600} fz=\"sm\">{(f.column.title as string) ?? f.id}</Text>\n {f.column.filtering && (\n <Box w={8} h={8} bg=\"green\" style={{ borderRadius: \"50%\" }} />\n )}\n </Group>\n </Accordion.Control>\n <Accordion.Panel>\n {typeof f.column.filter === \"function\"\n ? f.column.filter({ close: () => setFilterOpen(false) })\n : f.column.filter}\n </Accordion.Panel>\n </Accordion.Item>\n ))}\n </Accordion>\n </Popover.Dropdown>\n </Popover>\n )}\n </Group>\n )}\n\n {records.length === 0 && (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n )}\n\n {records.map((record, index) => {\n const recordKey = record.id ?? index;\n const canExpand = !!rowExpansion && (!rowExpansion.expandable || rowExpansion.expandable(record));\n const expanded = canExpand && isExpanded(recordKey);\n\n return (\n <React.Fragment key={recordKey}>\n <Box\n bg=\"var(--mantine-color-body)\"\n bd=\"1px solid var(--mantine-color-default-border)\"\n style={{\n borderRadius: \"var(--mantine-radius-md)\",\n overflow: \"hidden\",\n }}\n >\n <Box\n w=\"100%\"\n style={{ cursor: onRowClick || canExpand ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (canExpand && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {actions && actions.length > 0 && (\n <Group px=\"sm\" pt=\"sm\" justify=\"flex-end\">\n {(() => {\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 <FieldCardRows\n rows={listFields.map<FieldRow>((field) => ({\n label: (field.column.title as React.ReactNode) ?? field.id,\n value: renderFieldValue(record, field),\n }))}\n />\n </Box>\n {canExpand && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion!.content(record, true)}\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, Flex, 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, IconChevronRight, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus, getValueAtPath } from \"mantine-datatable\";\nimport { UpdateModal } from \"./UpdateModal.tsx\";\nimport { DeleteModal } from \"./DeleteModal.tsx\";\nimport { usePersistentState } from \"../Hooks/usePersistentState.ts\";\nimport { sortData } from \"../utils/sort\";\nimport { applyFilters, Filter } from \"../utils/filter\";\nimport { MobileCardList } from \"./MobileCardList\";\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 expandable?: (record: T) => boolean;\n content: (record: T, isMobile: boolean) => 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 deleteConfirmMessage?: (records: T[]) => React.ReactNode;\n editRecordId?: string | null;\n onEditRecordIdChange?: (id: string | null) => void;\n}\n\nconst PAGE_SIZES = [10, 15, 50, 100, 500];\n\nexport function DataTable<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 deleteConfirmMessage,\n editRecordId,\n onEditRecordIdChange,\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 filteredData = applyFilters(Array.isArray(allData) ? allData : [], filters);\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 [internalExpandedIds, setInternalExpandedIds] = useState<unknown[]>([]);\n const expandedRecordIds = rowExpansion?.expanded?.recordIds ?? internalExpandedIds;\n const handleExpandedRecordIdsChange = rowExpansion?.expanded?.onRecordIdsChange ?? setInternalExpandedIds;\n\n const toggleExpanded = (id: unknown) => {\n if (expandedRecordIds.includes(id)) {\n handleExpandedRecordIdsChange(expandedRecordIds.filter((x) => x !== id));\n } else {\n handleExpandedRecordIdsChange(rowExpansion?.allowMultiple ? [...expandedRecordIds, id] : [id]);\n }\n };\n\n const firstColumnIndex = fields.findIndex((field) => field.list && field.column && !field.column.hidden);\n const expansionFields: Field<T>[] =\n rowExpansion && firstColumnIndex >= 0\n ? fields.map((field, index) => {\n if (index !== firstColumnIndex) return field;\n const originalRender = field.column.render;\n return {\n ...field,\n column: {\n ...field.column,\n render: (record: T, recordIndex: number) => {\n const expandable = rowExpansion.expandable ? rowExpansion.expandable(record) : true;\n return (\n <Group gap=\"xs\" wrap=\"nowrap\" align=\"center\">\n {expandable ? (\n <Box\n component=\"span\"\n aria-label=\"Aufklappen\"\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n toggleExpanded(record.id);\n }}\n style={{ display: \"inline-flex\", flexShrink: 0, cursor: \"pointer\" }}\n >\n <IconChevronRight\n size={16}\n style={{\n color: \"var(--mantine-primary-color-filled)\",\n transform: expandedRecordIds.includes(record.id) ? \"rotate(90deg)\" : undefined,\n transition: \"transform 200ms ease\",\n }}\n />\n </Box>\n ) : (\n <Box w={16} style={{ flexShrink: 0 }} />\n )}\n {originalRender\n ? originalRender(record, recordIndex)\n : String(getValueAtPath(record, field.column.accessor) ?? \"\")}\n </Group>\n );\n },\n },\n };\n })\n : fields;\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 useEffect(() => {\n if (editRecordId && sortedData.length > 0) {\n const record = sortedData.find((r) => r.id === editRecordId);\n if (record) {\n setSelectedRecords([record]);\n setUpdateModalOpen(true);\n onEditRecordIdChange?.(null);\n }\n }\n }, [editRecordId, sortedData]);\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 <Flex\n gap=\"xs\"\n align={{ base: \"stretch\", sm: \"center\" }}\n direction={{ base: \"column\", sm: \"row\" }}\n justify={title ? \"space-between\" : \"flex-end\"}\n wrap=\"wrap\"\n >\n {title &&\n (typeof title === \"string\" ? (\n <Title order={4}>{title}</Title>\n ) : (\n title\n ))}\n <Flex\n align={{ base: \"stretch\", sm: \"center\" }}\n direction={{ base: \"column\", sm: \"row\" }}\n gap=\"xs\"\n wrap=\"wrap\"\n justify={{ base: \"flex-start\", sm: \"flex-end\" }}\n ml={{ base: 0, sm: \"auto\" }}\n >\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 </Flex>\n </Flex>\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 trigger: onRowClick ? \"never\" : \"click\",\n content: ({ record }: { record: T }) => rowExpansion.content(record, false),\n expanded: { recordIds: expandedRecordIds, onRecordIdsChange: handleExpandedRecordIdsChange },\n ...(rowExpansion.expandable && {\n expandable: ({ record }: { record: T }) => rowExpansion.expandable!(record),\n }),\n },\n })}\n columns={expansionFields.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={expansionFields}\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: {\n content: rowExpansion.content,\n expanded: { recordIds: expandedRecordIds, onRecordIdsChange: handleExpandedRecordIdsChange },\n ...(rowExpansion.expandable && { expandable: rowExpansion.expandable }),\n },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\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 connectedQueryKeys={connectedQueryKeys}\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 connectedQueryKeys={connectedQueryKeys}\n apiPath={effectiveMutationApiPath}\n selectedRecords={selectedRecords}\n confirmMessage={deleteConfirmMessage}\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 connectedQueryKeys={connectedQueryKeys}\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 { Stack } from \"@mantine/core\";\nimport React from \"react\";\nimport {\n DataTable as MantineDataTable,\n DataTableColumn,\n DataTableProps as MantineDataTableProps,\n getRecordId,\n getValueAtPath,\n humanize,\n} from \"mantine-datatable\";\nimport { FieldCard, FieldRow } from \"./FieldCard\";\n\nexport type SubTableColumn<T> = DataTableColumn<T> & {\n hideOnMobile?: (record: T) => boolean;\n};\n\nexport type SubTableProps<T> = Omit<MantineDataTableProps<T>, \"columns\"> & {\n mobile: boolean;\n columns: SubTableColumn<T>[];\n};\n\nexport function SubTable<T>({ mobile, columns, ...props }: SubTableProps<T>) {\n if (mobile) {\n const records = (props.records ?? []) as T[];\n return (\n <Stack gap=\"sm\" style={{ fontVariantNumeric: \"tabular-nums\" }}>\n {records.map((record, index) => {\n const rows: FieldRow[] = columns\n .filter((column) => !column.hidden && !column.hideOnMobile?.(record))\n .map((column) => ({\n label: column.title ?? humanize(String(column.accessor)),\n value: column.render\n ? column.render(record, index)\n : (getValueAtPath(record, column.accessor) as React.ReactNode),\n }));\n const key = props.idAccessor ? (getRecordId(record, props.idAccessor) as React.Key) : index;\n return <FieldCard key={key} rows={rows} />;\n })}\n </Stack>\n );\n }\n\n // @ts-expect-error - DataTableProps is a discriminated union (columns vs groups) that does not survive Omit + spread\n return <MantineDataTable columns={columns} {...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,26,27],"mappings":"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"}
|