@espresso-lab/mantine-data-table 2.1.10 → 2.1.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.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","xa","Ma","va","Wa","za","ar","rr","ir","cr","dr","ur","pr","fr","Cr","Pr","hr","yr","kt","kr","je","Er","Fr","Ye","Gr","Vr","Ze","Xn","Br","Qr","Kr","Ur","tl","nl","jn","qr","Yr","Zr","el","Jr","jr","rl","il","ll","ul","eo","dl","fl","cl","ml","pl","bl","Cl","Tl","ao","gl","yl","Dl","wl","vl","io","xl","Rl","El","Ll","kl","mo","Il","Nl","Ol","bo","nt","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/CreateModal.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/mantine-datatable/dist/index.mjs","../src/DataTable/UpdateModal.tsx","../src/DataTable/DeleteModal.tsx","../src/Hooks/usePersistentState.ts","../src/utils/sort.ts","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTableInner.tsx","../src/DataTable/DataTable.tsx"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveQueryBoolean(option, query) {\n return typeof option === \"function\" ? option(query) : option;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar Query = class extends Removable {\n #queryType;\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get queryType() {\n return this.#queryType;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n if (options?._type) {\n this.#queryType = options._type;\n }\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state) {\n this.#dispatch({ type: \"setState\", state });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveQueryBoolean(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n const behavior = this.#queryType === \"infinite\" ? infiniteQueryBehavior(\n this.options.pages\n ) : this.options.behavior;\n behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId !== void 0) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId !== void 0) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveQueryBoolean(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryBoolean(options.retryOnMount, query) === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !environmentManager.isServer() && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { createContext, ReactNode } from \"react\";\n\nexport type GetHeaders = () => Promise<HeadersInit>;\n\nexport interface State {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n}\n\ninterface DataTableContextProps {\n baseUrl: string;\n queryClient: QueryClient;\n getHeaders: GetHeaders;\n children: ReactNode | ReactNode[];\n}\n\nexport const DataTableContext = createContext<State | undefined>(undefined);\n\nconst defaultGetHeaders: GetHeaders = async () => ({\n \"Content-Type\": \"application/json\",\n});\n\nexport function DataTableProvider({\n children,\n baseUrl,\n queryClient,\n getHeaders = defaultGetHeaders,\n}: DataTableContextProps) {\n return (\n <DataTableContext.Provider value={{ baseUrl, queryClient, getHeaders }}>\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n </DataTableContext.Provider>\n );\n}\n","import { useContext } from \"react\";\nimport { DataTableContext, State } from \"../Context/DataTableContext.tsx\";\n\nexport function useDataTable(): State {\n const context = useContext(DataTableContext);\n\n if (!context) {\n throw new Error(\"useDataTable must be used within a DataTableProvider\");\n }\n\n return context;\n}\n","import { useMutation, useQuery } from \"@tanstack/react-query\";\nimport { useDataTable } from \"./useDataTable.ts\";\nimport type { GetHeaders } from \"../Context/DataTableContext.tsx\";\n\nexport function parseApiError(error: unknown): { message: string; code?: string; details?: unknown } {\n if (typeof error === \"string\") {\n try {\n const parsed = JSON.parse(error);\n return {\n message: parsed.message || error,\n code: parsed.code,\n details: parsed.details,\n };\n } catch {\n return { message: error };\n }\n }\n if (error instanceof Error) {\n return { message: error.message };\n }\n return { message: \"Unbekannter Fehler\" };\n}\n\nasync function fetchWithError(url: string, init: RequestInit): Promise<Response> {\n const resp = await fetch(url, init);\n if (resp.status >= 400) {\n const responseText = await resp.text();\n if (!responseText) {\n throw new Error(`HTTP ${resp.status}: ${resp.statusText}`);\n }\n let errorJson: { message?: string; error?: string } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new Error(responseText);\n }\n throw new Error(errorJson?.message ?? errorJson?.error ?? responseText);\n }\n return resp;\n}\n\nexport interface BaseEntity {\n id: string | number;\n}\n\ntype AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport async function getAll<T extends BaseEntity>(\n path: string,\n getHeaders: GetHeaders,\n): Promise<T[]> {\n const resp = await fetchWithError(path, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function getOne<T extends BaseEntity>(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${id}`, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function deleteOne(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<void> {\n await fetchWithError(`${path}/${id}`, { method: \"DELETE\", headers: await getHeaders() });\n}\n\nexport async function createOne<C, T extends BaseEntity>(\n path: string,\n item: C,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(path, {\n method: \"POST\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as unknown as T;\n return resp.json();\n}\n\nexport async function api<R, U>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n getHeaders: GetHeaders,\n payload?: U,\n): Promise<R> {\n const resp = await fetchWithError(path, {\n method,\n headers: await getHeaders(),\n body: payload ? JSON.stringify(payload) : undefined,\n });\n if (resp.status === 204) return undefined as R;\n return resp.json();\n}\n\nexport async function updateOne<T extends BaseEntity>(\n path: string,\n item: AtLeast<T, \"id\">,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${item.id}`, {\n method: \"PUT\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as T;\n return resp.json();\n}\n\nexport function useGetOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n id?: string | number,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T>({\n queryKey: [...queryKey.map((k) => k.toString()), String(id?.toString())],\n queryFn: () => getOne<T>(`${baseUrl}${apiPath}`, id!, getHeaders),\n enabled: !!id,\n });\n}\n\nexport function useGetAll<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n enabled: boolean = true,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T[]>({\n queryKey: [...queryKey.map((k) => k.toString())],\n queryFn: () => getAll<T>(`${baseUrl}${apiPath}`, getHeaders),\n enabled,\n });\n}\n\nexport function useAddOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, Omit<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useUpdateOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, AtLeast<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useDeleteOne(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<void, Error, string | number>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Stepper,\n Textarea,\n TextInput,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\nimport { Fragment, useState } from \"react\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface CreateModalProps<T> {\n fields: Field<T>[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n steps?: StepConfig[];\n onCreated?: (id: string | number) => void;\n}\n\nexport function CreateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n steps,\n onCreated,\n}: CreateModalProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n const [recordId, setRecordId] = useState<string | number>();\n\n const {\n mutateAsync: create,\n isError: isCreateError,\n error: createError,\n isPending: isCreatePending,\n } = useAddOne<T>(apiPath, queryKey);\n const { mutateAsync: update, isPending: isUpdatePending } = useUpdateOne<T>(\n apiPath,\n queryKey,\n );\n\n const isPending = isCreatePending || isUpdatePending;\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (false as T[keyof T])\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n if (!resolveRequired(field, values)) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), ...(recordId && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isCreateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={createError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {createError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n if (recordId) {\n await update({ ...values, id: recordId } as T);\n } else {\n const result = await create(values as T);\n setRecordId(result.id);\n onCreated?.(result.id);\n }\n\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isCreateError) {\n setActive(active + 1);\n }\n } else {\n if (!isCreateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";import{Box as 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 {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Skeleton,\n Stack,\n Stepper,\n Textarea,\n TextInput\n} from \"@mantine/core\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface UpdateModalProps<T> {\n fields: Field<T>[];\n steps?: StepConfig[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n id: string | number;\n}\n\nexport function UpdateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n id,\n steps,\n}: UpdateModalProps<T>) {\n const [active, setActive] = useState<number>(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n\n const { data, isLoading: isDataLoading } = useGetOne<T>(\n apiPath,\n queryKey,\n id,\n );\n const {\n mutateAsync: update,\n isError: isUpdateError,\n error: updateError,\n isPending,\n } = useUpdateOne<T>(apiPath, queryKey);\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (field.defaultValue ?? (false as T[keyof T]))\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n const isReq = typeof field.required === \"function\"\n ? field.required(values)\n : !!field.required;\n if (!isReq) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n useEffect(() => {\n if (data) {\n const values = { ...data } as T;\n fields.forEach((field) => {\n const key = field.id as keyof T;\n if (field.type === \"boolean\" && values[key] === null) {\n values[key] = false as T[keyof T];\n } else if (field.type === \"date\" && values[key]) {\n values[key] = new Date(values[key] as unknown as string) as unknown as T[keyof T];\n } else if (values[key] === null) {\n values[key] = \"\" as T[keyof T];\n }\n });\n form.initialize(values);\n form.setValues(values);\n }\n }, [data]);\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), id } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isUpdateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={updateError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {updateError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n {isDataLoading ? (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array(fields.length)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-field-${index}`} height={35} />\n ))}\n <Group mt=\"md\" justify=\"end\">\n <Skeleton width={100} height={36} />\n <Skeleton width={100} height={36} />\n </Group>\n </Stack>\n ) : (\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n await update({\n ...values,\n id,\n } as T);\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isUpdateError) {\n setActive(active + 1);\n }\n } else {\n if (!isUpdateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n )}\n </>\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { 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) => void] {\n const [state, setState] = useState<T>(() => {\n const storedValue = localStorage.getItem(`use_persistent_storage_${key}`);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n });\n\n const setStateWrapper = (newState: T) => {\n setState(newState);\n localStorage.setItem(\n `use_persistent_storage_${key}`,\n JSON.stringify(newState),\n );\n };\n\n return [state, setStateWrapper];\n}\n","type ColumnType = \"string\" | \"number\" | \"date\" | \"mixed\";\n\nconst DATE_PATTERNS = [\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/,\n /^\\d{4}-\\d{2}-\\d{2}$/,\n /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\n /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\n];\n\nconst detectColumnType = <T>(data: T[], field: keyof T): ColumnType => {\n const nonNullValues = data\n .map((item) => item[field])\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\n if (nonNullValues.length === 0) return \"string\";\n\n const sample = nonNullValues.slice(0, 100);\n const types = { string: 0, number: 0, date: 0 };\n\n sample.forEach((value) => {\n if (typeof value === \"number\") {\n types.number++;\n } else if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed !== \"\" && !isNaN(Number(trimmed)) && !isNaN(parseFloat(trimmed))) {\n types.number++;\n return;\n }\n if (DATE_PATTERNS.some((pattern) => pattern.test(trimmed))) {\n const dateValue = new Date(trimmed);\n if (!isNaN(dateValue.getTime())) {\n types.date++;\n return;\n }\n }\n types.string++;\n } else if (value instanceof Date) {\n types.date++;\n } else {\n types.string++;\n }\n });\n\n const total = types.string + types.number + types.date;\n if (types.date / total >= 0.6) return \"date\";\n if (types.number / total >= 0.6) return \"number\";\n if (types.string / total >= 0.6) return \"string\";\n return \"mixed\";\n};\n\nfunction toSortValue(value: unknown, columnType: ColumnType): string | number | null {\n switch (columnType) {\n case \"date\":\n if (typeof value === \"string\") {\n const d = new Date(value.trim());\n return isNaN(d.getTime()) ? null : d.getTime();\n }\n if (value instanceof Date) return value.getTime();\n return null;\n case \"number\":\n if (typeof value === \"number\") return value;\n const num = parseFloat(String(value).trim());\n return isNaN(num) ? null : num;\n case \"string\":\n return (typeof value === \"string\" ? value : String(value)).toLowerCase().trim();\n default:\n return String(value).toLowerCase().trim();\n }\n}\n\nexport const sortData = <T>(\n data: T[],\n field: keyof T,\n direction: \"asc\" | \"desc\" = \"asc\",\n): T[] => {\n if (!data || data.length === 0) return [];\n\n const columnType = detectColumnType(data, field);\n\n return [...data].sort((a, b) => {\n const aValue = a[field];\n const bValue = b[field];\n\n const aIsNull = aValue === null || aValue === undefined || aValue === \"\";\n const bIsNull = bValue === null || bValue === undefined || bValue === \"\";\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return direction === \"asc\" ? -1 : 1;\n if (bIsNull) return direction === \"asc\" ? 1 : -1;\n\n const aSortValue = toSortValue(aValue, columnType);\n const bSortValue = toSortValue(bValue, columnType);\n\n if (aSortValue === null && bSortValue === null) return 0;\n if (aSortValue === null) return direction === \"asc\" ? 1 : -1;\n if (bSortValue === null) return direction === \"asc\" ? -1 : 1;\n\n if (aSortValue < bSortValue) return direction === \"asc\" ? -1 : 1;\n if (aSortValue > bSortValue) return direction === \"asc\" ? 1 : -1;\n return 0;\n });\n};\n","import { ActionIcon, Box, Checkbox, Collapse, Divider, Group, Menu, Pagination, Select, Stack, Text } from \"@mantine/core\";\nimport { BaseEntity } from \"../Hooks/useApi\";\nimport { Action, Field } from \"./DataTableInner\";\nimport React, { useState } from \"react\";\nimport { IconChevronDown, IconDotsVertical, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\n\ninterface SortConfig {\n field: string;\n direction: \"asc\" | \"desc\";\n onSortChange: (field: string, direction: \"asc\" | \"desc\") => void;\n}\n\ninterface MobileCardListProps<T extends BaseEntity> {\n records: T[];\n fields: Field<T>[];\n selection?: boolean;\n selectedRecords?: T[];\n onSelectedRecordsChange?: (records: T[]) => void;\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n actions?: Action<T>[];\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n pagination?: {\n totalRecords: number;\n recordsPerPage: number;\n page: number;\n onPageChange: (page: number) => void;\n recordsPerPageOptions?: number[];\n onRecordsPerPageChange?: (size: number) => void;\n };\n sort?: SortConfig;\n rowExpansion?: {\n content: (record: T) => React.ReactNode;\n };\n}\n\nfunction getNestedValue(record: Record<string, unknown>, accessor: string): unknown {\n return accessor.split(\".\").reduce<unknown>((obj, key) => {\n if (obj && typeof obj === \"object\" && key in (obj as Record<string, unknown>)) {\n return (obj as Record<string, unknown>)[key];\n }\n return undefined;\n }, record);\n}\n\nfunction renderFieldValue<T extends BaseEntity>(record: T, field: Field<T>): React.ReactNode {\n const column = field.column;\n\n if (column.render) {\n return column.render(record, 0);\n }\n\n const accessor = (column.accessor ?? field.id) as string;\n const value = getNestedValue(record as unknown as Record<string, unknown>, accessor);\n\n if (value === null || value === undefined) {\n return <Text c=\"dimmed\">–</Text>;\n }\n\n if (typeof value === \"boolean\") {\n return <Text fz=\"sm\">{value ? \"Ja\" : \"Nein\"}</Text>;\n }\n\n return <Text fz=\"sm\">{String(value)}</Text>;\n}\n\nfunction MobileCardRow<T extends BaseEntity>({ field, record }: { field: Field<T>; record: T }) {\n return (\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"center\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\">\n {(field.column.title as string) ?? field.id}\n </Text>\n <Box ta=\"right\" fz=\"sm\">\n {renderFieldValue(record, field)}\n </Box>\n </Group>\n );\n}\n\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n selection,\n selectedRecords = [],\n onSelectedRecordsChange,\n onRowClick,\n actions,\n canUpdate,\n canDelete,\n pagination,\n sort,\n rowExpansion,\n}: MobileCardListProps<T>) {\n const [expandedIds, setExpandedIds] = useState<Set<string | number>>(new Set());\n\n const toggleExpansion = (id: string | number) => {\n setExpandedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n };\n const listFields = fields.filter((f) => f.list && f.column);\n\n const sortOptions = listFields\n .filter((f) => f.column.sortable !== false)\n .reduce<{ value: string; label: string }[]>((acc, f) => {\n const value = (f.column.accessor ?? f.id) as string;\n if (!acc.some((o) => o.value === value)) {\n acc.push({ value, label: (f.column.title as string) ?? f.id });\n }\n return acc;\n }, []);\n\n const isSelected = (record: T) =>\n selectedRecords.some((r) => r.id === record.id);\n\n const toggleSelection = (record: T) => {\n if (!onSelectedRecordsChange) return;\n if (isSelected(record)) {\n onSelectedRecordsChange(selectedRecords.filter((r) => r.id !== record.id));\n } else {\n onSelectedRecordsChange([...selectedRecords, record]);\n }\n };\n\n const handleCardClick = (record: T, index: number, event: React.MouseEvent) => {\n if (onRowClick) {\n onRowClick({ record, index, event });\n } else if (selection) {\n toggleSelection(record);\n }\n };\n\n if (records.length === 0) {\n return (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n );\n }\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {sort && sortOptions.length > 0 && (\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Select\n data={sortOptions}\n value={sort.field}\n onChange={(value) => value && sort.onSortChange(value, sort.direction)}\n allowDeselect={false}\n style={{ flex: 1 }}\n />\n <ActionIcon\n variant=\"filled\"\n size=\"input-sm\"\n onClick={() => sort.onSortChange(sort.field, sort.direction === \"asc\" ? \"desc\" : \"asc\")}\n >\n {sort.direction === \"asc\" ? <IconSortAscending size={18} /> : <IconSortDescending size={18} />}\n </ActionIcon>\n </Group>\n )}\n\n {records.map((record, index) => {\n const selected = isSelected(record);\n const clickable = !!onRowClick || !!selection;\n\n const recordKey = record.id ?? index;\n const expanded = expandedIds.has(recordKey);\n\n return (\n <React.Fragment key={recordKey}>\n <Box\n bg={selected ? \"var(--mantine-primary-color-light)\" : \"var(--mantine-color-body)\"}\n bd={!selected ? \"1px solid var(--mantine-color-default-border)\" : undefined}\n style={{\n borderRadius: \"var(--mantine-radius-md)\",\n overflow: \"hidden\",\n }}\n >\n <Box\n w=\"100%\"\n style={{ cursor: clickable || rowExpansion ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (rowExpansion && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {(selection || rowExpansion || (actions && actions.length > 0)) && (\n <Group px=\"sm\" pt=\"sm\" justify=\"space-between\">\n <Group gap=\"xs\">\n {rowExpansion && (\n <Box\n c=\"var(--mantine-primary-color-filled)\"\n style={{ cursor: \"pointer\", display: \"flex\", alignItems: \"center\" }}\n onClick={(e: React.MouseEvent) => { e.stopPropagation(); toggleExpansion(recordKey); }}\n >\n <IconChevronDown\n size={16}\n style={{ transform: expanded ? \"rotate(0deg)\" : \"rotate(-90deg)\", transition: \"transform 200ms\" }}\n />\n </Box>\n )}\n {selection && (\n <Checkbox\n checked={selected}\n onChange={() => toggleSelection(record)}\n onClick={(e) => e.stopPropagation()}\n />\n )}\n </Group>\n {actions && actions.length > 0 && (() => {\n const filteredActions = actions.filter((action) => {\n if (action.label === \"Bearbeiten\" && canUpdate && !canUpdate(record)) return false;\n if (action.label === \"Löschen\" && canDelete && !canDelete(record)) return false;\n return true;\n });\n if (filteredActions.length === 0) return null;\n return (\n <Menu shadow=\"md\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"subtle\"\n color=\"gray\"\n size=\"sm\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <IconDotsVertical size={16} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n {filteredActions.map((action, actionIndex) => (\n <Menu.Item\n key={`card_action_${actionIndex}`}\n leftSection={action.icon}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n action.onClick([record]);\n }}\n >\n {action.label}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n })()}\n </Group>\n )}\n {listFields.map((field, fieldIndex) => (\n <React.Fragment key={field.id}>\n {fieldIndex > 0 && <Divider />}\n <MobileCardRow field={field} record={record} />\n </React.Fragment>\n ))}\n </Box>\n {rowExpansion && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion.content(record)}\n </Box>\n </Collapse>\n )}\n </Box>\n </React.Fragment>\n );\n })}\n\n {pagination && pagination.totalRecords > pagination.recordsPerPage && (\n <Stack gap=\"xs\" mt=\"sm\">\n <Group justify=\"center\">\n <Pagination\n total={Math.ceil(pagination.totalRecords / pagination.recordsPerPage)}\n value={pagination.page}\n onChange={pagination.onPageChange}\n size=\"sm\"\n />\n </Group>\n {pagination.recordsPerPageOptions && pagination.onRecordsPerPageChange && (\n <Group justify=\"center\" gap=\"xs\">\n <Text fz=\"xs\" c=\"dimmed\">Einträge pro Seite:</Text>\n <Select\n data={pagination.recordsPerPageOptions.map((o) => ({ value: String(o), label: String(o) }))}\n value={String(pagination.recordsPerPage)}\n onChange={(v) => v && pagination.onRecordsPerPageChange!(Number(v))}\n allowDeselect={false}\n size=\"xs\"\n w={70}\n />\n </Group>\n )}\n </Stack>\n )}\n </Stack>\n );\n}\n","import { ActionIcon, Alert, Box, Button, Flex, Menu, Modal, Skeleton, Stack, Tabs, Title } from \"@mantine/core\";\nimport { BaseEntity, useGetAll } from \"../Hooks/useApi\";\nimport React, { useEffect, useState } from \"react\";\nimport { CreateModal } from \"./CreateModal\";\nimport { IconCaretDownFilled, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus } from \"mantine-datatable\";\nimport { UpdateModal } from \"./UpdateModal.tsx\";\nimport { DeleteModal } from \"./DeleteModal.tsx\";\nimport { useDataTable } from \"../Hooks/useDataTable.ts\";\nimport { usePersistentState } from \"../Hooks/usePersistentState.ts\";\nimport { sortData } from \"../utils/sort\";\nimport { MobileCardList } from \"./MobileCardList\";\n\ntype DatesRangeValue = [string | null, string | null];\n\ninterface DateFilter {\n id: string | number;\n type: \"date\";\n value?: DatesRangeValue;\n}\n\ninterface StringFilter {\n id: string | number;\n type: \"query\";\n value?: string | string[];\n}\n\ninterface BooleanFilter {\n id: string | number;\n type: \"boolean\";\n value?: boolean;\n}\n\ntype Filter = DateFilter | StringFilter | BooleanFilter;\n\nexport type FieldType =\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"custom\"\n | \"date\"\n | \"textarea\";\n\nexport interface Field<T> {\n id: string;\n defaultValue?: T[keyof T];\n required?: boolean | ((values: Partial<T>) => boolean);\n step?: number;\n list: boolean;\n create: boolean;\n update: boolean;\n delete: boolean;\n type?: FieldType;\n placeholder?: string;\n conditional?: (values: Partial<T>) => boolean;\n render?: (\n values: T,\n setValues: (values: Partial<T>) => void,\n hideButtons: (value: boolean) => void,\n validationProps?: {\n error?: string;\n required?: boolean;\n },\n ) => React.ReactNode;\n column: DataTableColumn<T>;\n}\n\nexport interface Action<T extends BaseEntity> {\n icon?: React.ReactNode;\n label: string;\n onClick: (records: T[]) => void;\n disabled?: (records: T[]) => boolean;\n}\n\nexport interface TabOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n queryParams?: Record<string, string | number | boolean | null>;\n apiPath?: string;\n mutationApiPath?: string;\n}\n\nexport interface StepConfig {\n label: string;\n description?: string;\n}\n\nexport interface DataTableProps<T extends BaseEntity> {\n title?: string | React.ReactNode;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n mutationApiPath?: string;\n queryParams?: Record<string, string | number | boolean | null>;\n filters?: Filter[];\n buttons?: React.ReactNode[];\n createButtonText?: string;\n actions?: Action<T>[];\n selection?: boolean;\n pagination?: boolean;\n steps?: StepConfig[];\n fields: Field<T>[];\n defaultSort?: {\n field: string;\n direction: \"asc\" | \"desc\";\n };\n onSortChange?: (field: string, direction: \"asc\" | \"desc\") => void;\n tabs?: TabOption[];\n defaultTab?: string;\n activeTab?: string | null;\n onActiveTabChange?: (tabValue: string | null) => void;\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n showRefresh?: boolean;\n rowExpansion?: {\n allowMultiple?: boolean;\n content: (record: T) => React.ReactNode;\n expanded?: {\n recordIds: unknown[];\n onRecordIdsChange: (recordIds: unknown[]) => void;\n };\n };\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n mobileCards?: boolean;\n deleteConfirmMessage?: (records: T[]) => React.ReactNode;\n}\n\nconst PAGE_SIZES = [10, 15, 50, 100, 500];\n\nexport function DataTableInner<T extends BaseEntity>({\n title,\n queryKey,\n connectedQueryKeys,\n apiPath,\n mutationApiPath,\n buttons,\n fields,\n selection,\n pagination,\n filters,\n actions,\n steps,\n defaultSort,\n onSortChange,\n createButtonText,\n queryParams,\n tabs,\n defaultTab,\n activeTab: controlledActiveTab,\n onActiveTabChange,\n canUpdate,\n canDelete,\n showRefresh = true,\n rowExpansion,\n onRowClick,\n mobileCards = false,\n deleteConfirmMessage,\n}: DataTableProps<T>) {\n const [internalActiveTab, setInternalActiveTab] = useState<string | null>(\n defaultTab || (tabs && tabs.length > 0 ? tabs[0].value : null),\n );\n\n const activeTab =\n controlledActiveTab !== undefined ? controlledActiveTab : internalActiveTab;\n\n const handleTabChange = (value: string | null) => {\n if (controlledActiveTab === undefined) {\n setInternalActiveTab(value);\n }\n if (onActiveTabChange) {\n onActiveTabChange(value);\n }\n };\n\n const currentTab = tabs?.find((tab) => tab.value === activeTab);\n const currentTabParams = currentTab?.queryParams || {};\n const effectiveApiPath = currentTab?.apiPath ?? apiPath;\n const effectiveMutationApiPath = currentTab?.mutationApiPath ?? mutationApiPath ?? effectiveApiPath;\n const allQueryParams = { ...queryParams, ...currentTabParams };\n\n const queryString: string = allQueryParams\n ? \"?\" +\n Object.entries(allQueryParams)\n .filter(([, value]) => value !== null && value !== undefined)\n .map(([key, value]) => `${key}=${encodeURIComponent(value ?? \"\")}`)\n .join(\"&\")\n : \"\";\n\n const effectiveQueryKey = activeTab ? [...queryKey, activeTab] : queryKey;\n\n const {\n data: allData,\n isLoading,\n isError,\n isRefetching,\n refetch,\n } = useGetAll<T>(effectiveApiPath + queryString, effectiveQueryKey);\n\n const { queryClient } = useDataTable();\n\n useEffect(() => {\n if (!allData || !Array.isArray(allData)) return;\n\n connectedQueryKeys?.forEach((connectedQueryKey) =>\n queryClient.invalidateQueries({ queryKey: connectedQueryKey }),\n );\n }, [allData, connectedQueryKeys, queryClient]);\n\n const filteredData =\n (!allData || !Array.isArray(allData))\n ? []\n : (!filters || filters.length === 0)\n ? allData\n : allData.filter((record: T) => filters.every((filter) => {\n if (filter.value === undefined) return true;\n\n const key = filter.id as keyof T;\n if (filter.type === \"query\") {\n const recordValue = record[key];\n if (Array.isArray(filter.value)) {\n if (Array.isArray(recordValue)) {\n return recordValue.some((item: unknown) => {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filter.value!.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (\"id\" in obj && filter.value!.includes(obj.id as string)) {\n return true;\n }\n for (const prop in obj) {\n const propValue = obj[prop];\n if (\n typeof propValue === \"string\" &&\n filter.value!.includes(propValue)\n ) {\n return true;\n }\n if (\n propValue &&\n typeof propValue === \"object\" &&\n \"id\" in (propValue as Record<string, unknown>)\n ) {\n if (filter.value!.includes((propValue as Record<string, unknown>).id as string)) {\n return true;\n }\n }\n }\n }\n return false;\n });\n }\n if (\n recordValue &&\n typeof recordValue === \"object\" &&\n \"id\" in recordValue\n ) {\n return filter.value.includes((recordValue as Record<string, unknown>).id as string);\n }\n return false;\n }\n return (\n typeof recordValue === \"string\" &&\n recordValue.includes(filter.value)\n );\n } else if (filter.type === \"date\") {\n const dateValue = filter.value as DatesRangeValue;\n if (!dateValue) return true;\n\n const [from, to] = dateValue;\n if (!from && !to) return true;\n const recordDate = record[key];\n if (typeof recordDate === \"string\") {\n const recordDateStr = recordDate.split(\" \")[0];\n if (from && to) {\n return recordDateStr >= from && recordDateStr <= to;\n } else if (from && !to) {\n return recordDateStr >= from;\n } else if (!from && to) {\n return recordDateStr <= to;\n }\n }\n return true;\n } else if (filter.type === \"boolean\") {\n const recordValue = record[key];\n return recordValue === filter.value;\n }\n return true;\n }));\n\n const [sortStatus, setSortStatus] = useState<DataTableSortStatus<T>>({\n columnAccessor: defaultSort?.field ?? fields[0].id,\n direction: defaultSort?.direction ?? \"desc\",\n });\n \n const handleSortChange = (newSortStatus: DataTableSortStatus<T>) => {\n setSortStatus(newSortStatus);\n if (onSortChange) {\n onSortChange(String(newSortStatus.columnAccessor), newSortStatus.direction);\n }\n };\n\n const sortedData = sortData(\n filteredData,\n sortStatus.columnAccessor as keyof T,\n sortStatus.direction,\n );\n\n const [pageSize, setPageSize] = usePersistentState(\n PAGE_SIZES[1],\n \"mantine-table-page-size\",\n );\n const [page, setPage] = useState(1);\n\n const records = pagination ? sortedData.slice((page - 1) * pageSize, page * pageSize) : sortedData;\n\n const [selectedRecords, setSelectedRecords] = useState<T[]>([]);\n\n useEffect(() => {\n setSelectedRecords([]);\n }, [activeTab]);\n\n const [createModalOpen, setCreateModalOpen] = useState(false);\n const [updateModalOpen, setUpdateModalOpen] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n\n const hasUpdateField = fields.some((field) => field.update);\n const hasDeleteField = fields.some((field) => field.delete);\n\n const mobileActions: Action<T>[] = [];\n if (hasUpdateField) {\n mobileActions.push({\n icon: <IconPencil size={14} />,\n label: \"Bearbeiten\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setUpdateModalOpen(true);\n },\n });\n }\n if (actions) {\n mobileActions.push(...actions);\n }\n if (hasDeleteField) {\n mobileActions.push({\n icon: <IconTrash size={14} />,\n label: \"Löschen\",\n onClick: (records: T[]) => {\n setSelectedRecords(records);\n setDeleteModalOpen(true);\n },\n });\n }\n\n return (\n <>\n <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 content: ({ record }: { record: T }) => rowExpansion.content(record),\n ...(rowExpansion.expanded && {\n expanded: rowExpansion.expanded,\n }),\n },\n })}\n columns={fields.map((field) => field.column)}\n noRecordsText=\"Keine Einträge gefunden\"\n onRowClick={onRowClick}\n {...(onRowClick && { style: { cursor: \"pointer\" } })}\n />\n </Box>\n\n {mobileCards && (\n <Box hiddenFrom=\"sm\">\n <MobileCardList\n records={records}\n fields={fields}\n selection={selection}\n selectedRecords={selectedRecords}\n onSelectedRecordsChange={setSelectedRecords}\n onRowClick={onRowClick}\n sort={{\n field: String(sortStatus.columnAccessor),\n direction: sortStatus.direction,\n onSortChange: (field, direction) => {\n handleSortChange({ columnAccessor: field as keyof T, direction });\n },\n }}\n {...(pagination && records.length && {\n pagination: {\n totalRecords: sortedData.length,\n recordsPerPage: pageSize,\n page,\n onPageChange: setPage,\n recordsPerPageOptions: PAGE_SIZES,\n onRecordsPerPageChange: (size: number) => { setPageSize(size); setPage(1); },\n },\n })}\n {...(rowExpansion && {\n rowExpansion: { content: rowExpansion.content },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\n )}\n\n\n </>\n )}\n\n <Modal\n opened={updateModalOpen}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Bearbeiten\"}\n >\n {selectedRecords.length > 0 && (\n <UpdateModal<T>\n fields={fields.filter((field) => field.update)}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n id={selectedRecords[0].id}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n steps={steps}\n />\n )}\n </Modal>\n\n {selectedRecords.length > 0 && (\n <Modal\n opened={deleteModalOpen}\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Löschen\"}\n >\n <DeleteModal<T>\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n selectedRecords={selectedRecords}\n 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 { BaseEntity } from \"../Hooks/useApi.ts\";\nimport { DataTableInner, DataTableProps } from \"./DataTableInner.tsx\";\n\nexport function DataTable<T extends BaseEntity>(props: DataTableProps<T>) {\n return <DataTableInner<T> {...props} />;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,26],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.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","xa","Ma","va","Wa","za","ar","rr","ir","cr","dr","ur","pr","fr","Cr","Pr","hr","yr","kt","kr","je","Er","Fr","Ye","Gr","Vr","Ze","Xn","Br","Qr","Kr","Ur","tl","nl","jn","qr","Yr","Zr","el","Jr","jr","rl","il","ll","ul","eo","dl","fl","cl","ml","pl","bl","Cl","Tl","ao","gl","yl","Dl","wl","vl","io","xl","Rl","El","Ll","kl","mo","Il","Nl","Ol","bo","nt","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/CreateModal.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/mantine-datatable/dist/index.mjs","../src/DataTable/UpdateModal.tsx","../src/DataTable/DeleteModal.tsx","../src/Hooks/usePersistentState.ts","../src/utils/sort.ts","../src/DataTable/MobileCardList.tsx","../src/DataTable/DataTableInner.tsx","../src/DataTable/DataTable.tsx"],"sourcesContent":["// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support the default provider's concrete timer ID, which is\n // infeasible across environments.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveQueryBoolean(option, query) {\n return typeof option === \"function\" ? option(query) : option;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/environmentManager.ts\nimport { isServer } from \"./utils.js\";\nvar environmentManager = /* @__PURE__ */ (() => {\n let isServerFn = () => isServer;\n return {\n /**\n * Returns whether the current runtime should be treated as a server environment.\n */\n isServer() {\n return isServerFn();\n },\n /**\n * Overrides the server check globally.\n */\n setIsServer(isServerValue) {\n isServerFn = isServerValue;\n }\n };\n})();\nexport {\n environmentManager\n};\n//# sourceMappingURL=environmentManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (typeof window !== \"undefined\" && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (environmentManager.isServer() ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar Query = class extends Removable {\n #queryType;\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get queryType() {\n return this.#queryType;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n if (options?._type) {\n this.#queryType = options._type;\n }\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state) {\n this.#dispatch({ type: \"setState\", state });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n get resetState() {\n return this.#initialState;\n }\n reset() {\n this.destroy();\n this.setState(this.resetState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveQueryBoolean(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || !this.isFetched();\n }\n isFetched() {\n return this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed || this.#isInitialPausedFetch()) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n #isInitialPausedFetch() {\n return this.state.fetchStatus === \"paused\" && this.state.status === \"pending\";\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n const behavior = this.#queryType === \"infinite\" ? infiniteQueryBehavior(\n this.options.pages\n ) : this.options.behavior;\n behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { environmentManager } from \"./environmentManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isValidTimeout,\n noop,\n replaceData,\n resolveQueryBoolean,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveQueryBoolean(this.options.enabled, this.#currentQuery) !== resolveQueryBoolean(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (environmentManager.isServer() || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (environmentManager.isServer() || resolveQueryBoolean(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId !== void 0) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId !== void 0) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: query.isFetched(),\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveQueryBoolean(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryBoolean(options.retryOnMount, query) === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveQueryBoolean(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveQueryBoolean(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveQueryBoolean(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { environmentManager, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n 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 function parseApiError(error: unknown): { message: string; code?: string; details?: unknown } {\n if (typeof error === \"string\") {\n try {\n const parsed = JSON.parse(error);\n return {\n message: parsed.message || error,\n code: parsed.code,\n details: parsed.details,\n };\n } catch {\n return { message: error };\n }\n }\n if (error instanceof Error) {\n return { message: error.message };\n }\n return { message: \"Unbekannter Fehler\" };\n}\n\nasync function fetchWithError(url: string, init: RequestInit): Promise<Response> {\n const resp = await fetch(url, init);\n if (resp.status >= 400) {\n const responseText = await resp.text();\n if (!responseText) {\n throw new Error(`HTTP ${resp.status}: ${resp.statusText}`);\n }\n let errorJson: { message?: string; error?: string } | null = null;\n try {\n errorJson = JSON.parse(responseText);\n } catch {\n throw new Error(responseText);\n }\n throw new Error(errorJson?.message ?? errorJson?.error ?? responseText);\n }\n return resp;\n}\n\nexport interface BaseEntity {\n id: string | number;\n}\n\ntype AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;\n\nexport async function getAll<T extends BaseEntity>(\n path: string,\n getHeaders: GetHeaders,\n): Promise<T[]> {\n const resp = await fetchWithError(path, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function getOne<T extends BaseEntity>(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${id}`, { method: \"GET\", headers: await getHeaders() });\n return resp.json();\n}\n\nexport async function deleteOne(\n path: string,\n id: string | number,\n getHeaders: GetHeaders,\n): Promise<void> {\n await fetchWithError(`${path}/${id}`, { method: \"DELETE\", headers: await getHeaders() });\n}\n\nexport async function createOne<C, T extends BaseEntity>(\n path: string,\n item: C,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(path, {\n method: \"POST\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as unknown as T;\n return resp.json();\n}\n\nexport async function api<R, U>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n getHeaders: GetHeaders,\n payload?: U,\n): Promise<R> {\n const resp = await fetchWithError(path, {\n method,\n headers: await getHeaders(),\n body: payload ? JSON.stringify(payload) : undefined,\n });\n if (resp.status === 204) return undefined as R;\n return resp.json();\n}\n\nexport async function updateOne<T extends BaseEntity>(\n path: string,\n item: AtLeast<T, \"id\">,\n getHeaders: GetHeaders,\n): Promise<T> {\n const resp = await fetchWithError(`${path}/${item.id}`, {\n method: \"PUT\",\n headers: await getHeaders(),\n body: JSON.stringify(item),\n });\n if (resp.status === 204) return item as T;\n return resp.json();\n}\n\nexport function useGetOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n id?: string | number,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T>({\n queryKey: [...queryKey.map((k) => k.toString()), String(id?.toString())],\n queryFn: () => getOne<T>(`${baseUrl}${apiPath}`, id!, getHeaders),\n enabled: !!id,\n });\n}\n\nexport function useGetAll<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n enabled: boolean = true,\n) {\n const { baseUrl, getHeaders } = useDataTable();\n return useQuery<T[]>({\n queryKey: [...queryKey.map((k) => k.toString())],\n queryFn: () => getAll<T>(`${baseUrl}${apiPath}`, getHeaders),\n enabled,\n });\n}\n\nexport function useAddOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, Omit<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n createOne<Omit<T, \"id\">, T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useUpdateOne<T extends BaseEntity>(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<T, Error, AtLeast<T, \"id\">>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (item) =>\n updateOne<T>(`${baseUrl}${apiPath}`, item, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n\nexport function useDeleteOne(\n apiPath: string,\n queryKey: Array<string | number>,\n) {\n const { baseUrl, queryClient, getHeaders } = useDataTable();\n return useMutation<void, Error, string | number>({\n mutationKey: [...queryKey.map((k) => k.toString())],\n mutationFn: (id) => deleteOne(`${baseUrl}${apiPath}`, id, getHeaders),\n onSettled() {\n return queryClient.invalidateQueries({\n queryKey: [...queryKey.map((k) => k.toString())]\n });\n },\n });\n}\n","import {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Stepper,\n Textarea,\n TextInput,\n} from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useAddOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\nimport { Fragment, useState } from \"react\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface CreateModalProps<T> {\n fields: Field<T>[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n steps?: StepConfig[];\n onCreated?: (id: string | number) => void;\n}\n\nexport function CreateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n steps,\n onCreated,\n}: CreateModalProps<T>) {\n const [active, setActive] = useState(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n const [recordId, setRecordId] = useState<string | number>();\n\n const {\n mutateAsync: create,\n isError: isCreateError,\n error: createError,\n isPending: isCreatePending,\n } = useAddOne<T>(apiPath, queryKey);\n const { mutateAsync: update, isPending: isUpdatePending } = useUpdateOne<T>(\n apiPath,\n queryKey,\n );\n\n const isPending = isCreatePending || isUpdatePending;\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (false as T[keyof T])\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n if (!resolveRequired(field, values)) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), ...(recordId && { id: recordId }) } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isCreateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={createError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {createError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n if (recordId) {\n await update({ ...values, id: recordId } as T);\n } else {\n const result = await create(values as T);\n setRecordId(result.id);\n onCreated?.(result.id);\n }\n\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isCreateError) {\n setActive(active + 1);\n }\n } else {\n if (!isCreateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n </>\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";import{Box as 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 {\n Alert,\n Button,\n Checkbox,\n Group,\n NumberInput,\n Skeleton,\n Stack,\n Stepper,\n Textarea,\n TextInput\n} from \"@mantine/core\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { useForm } from \"@mantine/form\";\nimport { BaseEntity, useGetOne, useUpdateOne } from \"../Hooks/useApi\";\nimport { Field, StepConfig } from \"./DataTableInner.tsx\";\n// @ts-expect-error - FormRule not publicly exported from @mantine/form\nimport type { FormRule } from \"@mantine/form/lib/types\";\nimport { DateInput } from \"@mantine/dates\";\n\nexport interface UpdateModalProps<T> {\n fields: Field<T>[];\n steps?: StepConfig[];\n onClose: () => void;\n queryKey: (string | number)[];\n apiPath: string;\n id: string | number;\n}\n\nexport function UpdateModal<T extends BaseEntity>({\n fields,\n onClose,\n queryKey,\n apiPath,\n id,\n steps,\n}: UpdateModalProps<T>) {\n const [active, setActive] = useState<number>(0);\n const [hideButtons, setHideButtons] = useState<boolean>(false);\n\n const { data, isLoading: isDataLoading } = useGetOne<T>(\n apiPath,\n queryKey,\n id,\n );\n const {\n mutateAsync: update,\n isError: isUpdateError,\n error: updateError,\n isPending,\n } = useUpdateOne<T>(apiPath, queryKey);\n\n const stepsAvailable = [\n ...new Set(\n fields\n .filter((f) => typeof f.step === \"number\")\n .map((f) => f.step as number),\n ),\n ];\n\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: fields.reduce((acc, field) => {\n acc[field.id as keyof T] =\n field.type === \"boolean\"\n ? (field.defaultValue ?? (false as T[keyof T]))\n : (field.defaultValue ?? (\"\" as T[keyof T]));\n return acc;\n }, {} as T),\n validate: fields\n .filter((field) => field.required)\n .reduce(\n (acc, field) => {\n acc[field.id as keyof T] = (value: never, values: T) => {\n if (field.conditional && !field.conditional(values)) return null;\n const isReq = typeof field.required === \"function\"\n ? field.required(values)\n : !!field.required;\n if (!isReq) return null;\n return value ? null : \"Pflichtfeld\";\n };\n return acc;\n },\n {} as Partial<{ [Key in keyof T]: FormRule<T[Key], T> }>,\n ),\n });\n\n useEffect(() => {\n if (data) {\n const values = { ...data } as T;\n fields.forEach((field) => {\n const key = field.id as keyof T;\n if (field.type === \"boolean\" && values[key] === null) {\n values[key] = false as T[keyof T];\n } else if (field.type === \"date\" && values[key]) {\n values[key] = new Date(values[key] as unknown as string) as unknown as T[keyof T];\n } else if (values[key] === null) {\n values[key] = \"\" as T[keyof T];\n }\n });\n form.initialize(values);\n form.setValues(values);\n }\n }, [data]);\n\n function resolveRequired(field: Field<T>, values?: Partial<T>): boolean {\n if (typeof field.required === \"function\") {\n return field.required(values ?? ({} as Partial<T>));\n }\n return !!field.required;\n }\n\n function renderField(field: Field<T>) {\n const formValues = form.getValues();\n if (field.conditional && !field.conditional(formValues)) {\n return null;\n }\n const isRequired = resolveRequired(field, formValues);\n return (\n <Fragment key={field.id}>\n {(field.type === undefined || field.type == \"text\") && (\n <TextInput\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n type={field.id.includes(\"email\") ? \"email\" : undefined}\n required={isRequired}\n />\n )}\n\n {field.type === \"number\" && (\n <NumberInput\n decimalSeparator=\",\"\n label={field.column.title}\n key={form.key(field.id)}\n placeholder={field.placeholder ?? \"\"}\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"date\" && (\n <DateInput\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n valueFormat={\"DD.MM.YYYY\"}\n clearable\n {...form.getInputProps(field.id as string)}\n required={isRequired}\n />\n )}\n\n {field.type === \"boolean\" && (\n <Checkbox\n mt=\"md\"\n label={field.column.title}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string, { type: \"checkbox\" })}\n required={isRequired}\n />\n )}\n\n {field.type === \"textarea\" && (\n <Textarea\n label={field.column.title}\n placeholder={field.placeholder ?? \"\"}\n key={form.key(field.id)}\n {...form.getInputProps(field.id as string)}\n minRows={3}\n autosize\n required={isRequired}\n />\n )}\n\n {field.type === \"custom\" &&\n field.render &&\n field.render(\n { ...form.getValues(), id } as T,\n form.setValues,\n setHideButtons,\n {\n error: form.getInputProps(field.id as string).error,\n required: isRequired,\n },\n )}\n </Fragment>\n );\n }\n\n return (\n <>\n {isUpdateError && (\n <Alert\n variant=\"outline\"\n color=\"red\"\n title={updateError?.name ?? \"Fehler aufgetreten\"}\n mb=\"lg\"\n >\n {updateError?.message ?? \"Fehler aufgetreten\"}\n </Alert>\n )}\n\n {isDataLoading ? (\n <Stack gap=\"md\">\n <Skeleton height={40} />\n {Array(fields.length)\n .fill(0)\n .map((_, index) => (\n <Skeleton key={`skeleton-field-${index}`} height={35} />\n ))}\n <Group mt=\"md\" justify=\"end\">\n <Skeleton width={100} height={36} />\n <Skeleton width={100} height={36} />\n </Group>\n </Stack>\n ) : (\n <form\n onSubmit={form.onSubmit(async (rawValues) => {\n const values = Object.fromEntries(\n Object.entries(rawValues as Record<string, unknown>).map(([k, v]) => [k, v === \"\" ? undefined : v]),\n ) as unknown as typeof rawValues;\n await update({\n ...values,\n id,\n } as T);\n if (stepsAvailable.length && active < stepsAvailable.length - 1) {\n if (!isUpdateError) {\n setActive(active + 1);\n }\n } else {\n if (!isUpdateError) {\n form.setInitialValues(values);\n form.reset();\n onClose();\n }\n }\n })}\n >\n {stepsAvailable.length ? (\n <Stepper active={active} size=\"sm\">\n {stepsAvailable.map((step) => (\n <Stepper.Step\n key={step}\n {...(steps && steps[step - 1]\n ? { label: steps[step - 1].label }\n : {})}\n >\n {fields\n .filter((f) => f.step === step)\n .map((field) => renderField(field))}\n </Stepper.Step>\n ))}\n </Stepper>\n ) : (\n fields.map((field) => renderField(field))\n )}\n {!hideButtons && (\n <Group mt=\"md\" justify=\"end\">\n <Button\n onClick={() =>\n stepsAvailable.length\n ? active === 0\n ? onClose()\n : setActive(active - 1)\n : onClose()\n }\n variant=\"outline\"\n >\n {stepsAvailable.length\n ? active === 0\n ? \"Abbrechen\"\n : \"Zurück\"\n : \"Abbrechen\"}\n </Button>\n <Button type=\"submit\" loading={isPending}>\n {stepsAvailable.length\n ? active === stepsAvailable.length - 1\n ? \"Speichern\"\n : \"Weiter\"\n : \"Speichern\"}\n </Button>\n </Group>\n )}\n </form>\n )}\n </>\n );\n}\n","import { Alert, Button, Group, Text } from \"@mantine/core\";\nimport { BaseEntity, useDeleteOne } from \"../Hooks/useApi\";\nimport { 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) => void] {\n const [state, setState] = useState<T>(() => {\n const storedValue = localStorage.getItem(`use_persistent_storage_${key}`);\n return storedValue ? (JSON.parse(storedValue) as T) : initialValue;\n });\n\n const setStateWrapper = (newState: T) => {\n setState(newState);\n localStorage.setItem(\n `use_persistent_storage_${key}`,\n JSON.stringify(newState),\n );\n };\n\n return [state, setStateWrapper];\n}\n","type ColumnType = \"string\" | \"number\" | \"date\" | \"mixed\";\n\nconst DATE_PATTERNS = [\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/,\n /^\\d{4}-\\d{2}-\\d{2}$/,\n /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/,\n /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/,\n];\n\nconst detectColumnType = <T>(data: T[], field: keyof T): ColumnType => {\n const nonNullValues = data\n .map((item) => item[field])\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\n if (nonNullValues.length === 0) return \"string\";\n\n const sample = nonNullValues.slice(0, 100);\n const types = { string: 0, number: 0, date: 0 };\n\n sample.forEach((value) => {\n if (typeof value === \"number\") {\n types.number++;\n } else if (typeof value === \"string\") {\n const trimmed = value.trim();\n if (trimmed !== \"\" && !isNaN(Number(trimmed)) && !isNaN(parseFloat(trimmed))) {\n types.number++;\n return;\n }\n if (DATE_PATTERNS.some((pattern) => pattern.test(trimmed))) {\n const dateValue = new Date(trimmed);\n if (!isNaN(dateValue.getTime())) {\n types.date++;\n return;\n }\n }\n types.string++;\n } else if (value instanceof Date) {\n types.date++;\n } else {\n types.string++;\n }\n });\n\n const total = types.string + types.number + types.date;\n if (types.date / total >= 0.6) return \"date\";\n if (types.number / total >= 0.6) return \"number\";\n if (types.string / total >= 0.6) return \"string\";\n return \"mixed\";\n};\n\nfunction toSortValue(value: unknown, columnType: ColumnType): string | number | null {\n switch (columnType) {\n case \"date\":\n if (typeof value === \"string\") {\n const d = new Date(value.trim());\n return isNaN(d.getTime()) ? null : d.getTime();\n }\n if (value instanceof Date) return value.getTime();\n return null;\n case \"number\":\n if (typeof value === \"number\") return value;\n const num = parseFloat(String(value).trim());\n return isNaN(num) ? null : num;\n case \"string\":\n return (typeof value === \"string\" ? value : String(value)).toLowerCase().trim();\n default:\n return String(value).toLowerCase().trim();\n }\n}\n\nexport const sortData = <T>(\n data: T[],\n field: keyof T,\n direction: \"asc\" | \"desc\" = \"asc\",\n): T[] => {\n if (!data || data.length === 0) return [];\n\n const columnType = detectColumnType(data, field);\n\n return [...data].sort((a, b) => {\n const aValue = a[field];\n const bValue = b[field];\n\n const aIsNull = aValue === null || aValue === undefined || aValue === \"\";\n const bIsNull = bValue === null || bValue === undefined || bValue === \"\";\n\n if (aIsNull && bIsNull) return 0;\n if (aIsNull) return direction === \"asc\" ? -1 : 1;\n if (bIsNull) return direction === \"asc\" ? 1 : -1;\n\n const aSortValue = toSortValue(aValue, columnType);\n const bSortValue = toSortValue(bValue, columnType);\n\n if (aSortValue === null && bSortValue === null) return 0;\n if (aSortValue === null) return direction === \"asc\" ? 1 : -1;\n if (bSortValue === null) return direction === \"asc\" ? -1 : 1;\n\n if (aSortValue < bSortValue) return direction === \"asc\" ? -1 : 1;\n if (aSortValue > bSortValue) return direction === \"asc\" ? 1 : -1;\n return 0;\n });\n};\n","import { 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 \"./DataTableInner\";\nimport React, { useState } from \"react\";\nimport { IconDotsVertical, IconFilter, IconSortAscending, IconSortDescending } from \"@tabler/icons-react\";\n\ninterface SortConfig {\n field: string;\n direction: \"asc\" | \"desc\";\n onSortChange: (field: string, direction: \"asc\" | \"desc\") => void;\n}\n\ninterface MobileCardListProps<T extends BaseEntity> {\n records: T[];\n fields: Field<T>[];\n onRowClick?: (params: { record: T; index: number; event: React.MouseEvent }) => void;\n actions?: Action<T>[];\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n pagination?: {\n totalRecords: number;\n recordsPerPage: number;\n page: number;\n onPageChange: (page: number) => void;\n recordsPerPageOptions?: number[];\n onRecordsPerPageChange?: (size: number) => void;\n };\n sort?: SortConfig;\n rowExpansion?: {\n content: (record: T, 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\nfunction MobileCardRow<T extends BaseEntity>({ field, record }: { field: Field<T>; record: T }) {\n return (\n <Group wrap=\"nowrap\" justify=\"space-between\" align=\"center\" py=\"xs\" px=\"sm\">\n <Text fw={700} fz=\"sm\">\n {(field.column.title as string) ?? field.id}\n </Text>\n <Box ta=\"right\" fz=\"sm\">\n {renderFieldValue(record, field)}\n </Box>\n </Group>\n );\n}\n\nexport function MobileCardList<T extends BaseEntity>({\n records,\n fields,\n 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 if (records.length === 0) {\n return (\n <Text c=\"dimmed\" ta=\"center\" py=\"xl\">\n Keine Einträge gefunden\n </Text>\n );\n }\n\n return (\n <Stack gap=\"sm\" my=\"md\">\n {((sort && sortOptions.length > 0) || 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 disabled={!hasActiveFilter} color=\"blue\" size={8} offset={4}>\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=\"blue\" 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.map((record, index) => {\n const recordKey = record.id ?? index;\n const expanded = 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 || rowExpansion ? \"pointer\" : \"default\" }}\n onClick={(e: React.MouseEvent) => {\n if (rowExpansion && !onRowClick) {\n toggleExpansion(recordKey);\n } else {\n handleCardClick(record, index, e);\n }\n }}\n >\n {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 {listFields.map((field, fieldIndex) => (\n <React.Fragment key={field.id}>\n {fieldIndex > 0 && <Divider />}\n <MobileCardRow field={field} record={record} />\n </React.Fragment>\n ))}\n </Box>\n {rowExpansion && (\n <Collapse expanded={expanded}>\n <Divider />\n <Box px=\"sm\" py=\"sm\">\n {rowExpansion.content(record, 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, Menu, Modal, Skeleton, Stack, Tabs, Title } from \"@mantine/core\";\nimport { BaseEntity, useGetAll } from \"../Hooks/useApi\";\nimport React, { useEffect, useState } from \"react\";\nimport { CreateModal } from \"./CreateModal\";\nimport { IconCaretDownFilled, IconInfoCircle, IconPencil, IconRefresh, IconTrash } from \"@tabler/icons-react\";\nimport { DataTable as MantineDataTable, DataTableColumn, DataTableSortStatus } from \"mantine-datatable\";\nimport { UpdateModal } from \"./UpdateModal.tsx\";\nimport { DeleteModal } from \"./DeleteModal.tsx\";\nimport { useDataTable } from \"../Hooks/useDataTable.ts\";\nimport { usePersistentState } from \"../Hooks/usePersistentState.ts\";\nimport { sortData } from \"../utils/sort\";\nimport { MobileCardList } from \"./MobileCardList\";\n\ntype DatesRangeValue = [string | null, string | null];\n\ninterface DateFilter {\n id: string | number;\n type: \"date\";\n value?: DatesRangeValue;\n}\n\ninterface StringFilter {\n id: string | number;\n type: \"query\";\n value?: string | string[];\n}\n\ninterface BooleanFilter {\n id: string | number;\n type: \"boolean\";\n value?: boolean;\n}\n\ntype Filter = DateFilter | StringFilter | BooleanFilter;\n\nexport type FieldType =\n | \"text\"\n | \"number\"\n | \"boolean\"\n | \"custom\"\n | \"date\"\n | \"textarea\";\n\nexport interface Field<T> {\n id: string;\n defaultValue?: T[keyof T];\n required?: boolean | ((values: Partial<T>) => boolean);\n step?: number;\n list: boolean;\n create: boolean;\n update: boolean;\n delete: boolean;\n type?: FieldType;\n placeholder?: string;\n conditional?: (values: Partial<T>) => boolean;\n render?: (\n values: T,\n setValues: (values: Partial<T>) => void,\n hideButtons: (value: boolean) => void,\n validationProps?: {\n error?: string;\n required?: boolean;\n },\n ) => React.ReactNode;\n column: DataTableColumn<T>;\n}\n\nexport interface Action<T extends BaseEntity> {\n icon?: React.ReactNode;\n label: string;\n onClick: (records: T[]) => void;\n disabled?: (records: T[]) => boolean;\n}\n\nexport interface TabOption {\n value: string;\n label: string;\n icon?: React.ReactNode;\n queryParams?: Record<string, string | number | boolean | null>;\n apiPath?: string;\n mutationApiPath?: string;\n}\n\nexport interface StepConfig {\n label: string;\n description?: string;\n}\n\nexport interface DataTableProps<T extends BaseEntity> {\n title?: string | React.ReactNode;\n queryKey: (string | number)[];\n connectedQueryKeys?: (string | number)[][];\n apiPath: string;\n mutationApiPath?: string;\n queryParams?: Record<string, string | number | boolean | null>;\n filters?: Filter[];\n buttons?: React.ReactNode[];\n createButtonText?: string;\n actions?: Action<T>[];\n selection?: boolean;\n pagination?: boolean;\n steps?: StepConfig[];\n fields: Field<T>[];\n defaultSort?: {\n field: string;\n direction: \"asc\" | \"desc\";\n };\n onSortChange?: (field: string, direction: \"asc\" | \"desc\") => void;\n tabs?: TabOption[];\n defaultTab?: string;\n activeTab?: string | null;\n onActiveTabChange?: (tabValue: string | null) => void;\n canUpdate?: (record: T) => boolean;\n canDelete?: (record: T) => boolean;\n showRefresh?: boolean;\n rowExpansion?: {\n allowMultiple?: boolean;\n content: (record: T, 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 DataTableInner<T extends BaseEntity>({\n title,\n queryKey,\n connectedQueryKeys,\n apiPath,\n mutationApiPath,\n buttons,\n fields,\n selection,\n pagination,\n filters,\n actions,\n steps,\n defaultSort,\n onSortChange,\n createButtonText,\n queryParams,\n tabs,\n defaultTab,\n activeTab: controlledActiveTab,\n onActiveTabChange,\n canUpdate,\n canDelete,\n showRefresh = true,\n rowExpansion,\n onRowClick,\n mobileCards = false,\n 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 =\n (!allData || !Array.isArray(allData))\n ? []\n : (!filters || filters.length === 0)\n ? allData\n : allData.filter((record: T) => filters.every((filter) => {\n if (filter.value === undefined) return true;\n\n const key = filter.id as keyof T;\n if (filter.type === \"query\") {\n const recordValue = record[key];\n if (Array.isArray(filter.value)) {\n if (Array.isArray(recordValue)) {\n return recordValue.some((item: unknown) => {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return filter.value!.includes(String(item));\n }\n if (item && typeof item === \"object\") {\n const obj = item as Record<string, unknown>;\n if (\"id\" in obj && filter.value!.includes(obj.id as string)) {\n return true;\n }\n for (const prop in obj) {\n const propValue = obj[prop];\n if (\n typeof propValue === \"string\" &&\n filter.value!.includes(propValue)\n ) {\n return true;\n }\n if (\n propValue &&\n typeof propValue === \"object\" &&\n \"id\" in (propValue as Record<string, unknown>)\n ) {\n if (filter.value!.includes((propValue as Record<string, unknown>).id as string)) {\n return true;\n }\n }\n }\n }\n return false;\n });\n }\n if (\n recordValue &&\n typeof recordValue === \"object\" &&\n \"id\" in recordValue\n ) {\n return filter.value.includes((recordValue as Record<string, unknown>).id as string);\n }\n return false;\n }\n return (\n typeof recordValue === \"string\" &&\n recordValue.includes(filter.value)\n );\n } else if (filter.type === \"date\") {\n const dateValue = filter.value as DatesRangeValue;\n if (!dateValue) return true;\n\n const [from, to] = dateValue;\n if (!from && !to) return true;\n const recordDate = record[key];\n if (typeof recordDate === \"string\") {\n const recordDateStr = recordDate.split(\" \")[0];\n if (from && to) {\n return recordDateStr >= from && recordDateStr <= to;\n } else if (from && !to) {\n return recordDateStr >= from;\n } else if (!from && to) {\n return recordDateStr <= to;\n }\n }\n return true;\n } else if (filter.type === \"boolean\") {\n const recordValue = record[key];\n return recordValue === filter.value;\n }\n return true;\n }));\n\n const [sortStatus, setSortStatus] = useState<DataTableSortStatus<T>>({\n columnAccessor: defaultSort?.field ?? fields[0].id,\n direction: defaultSort?.direction ?? \"desc\",\n });\n \n const handleSortChange = (newSortStatus: DataTableSortStatus<T>) => {\n setSortStatus(newSortStatus);\n if (onSortChange) {\n onSortChange(String(newSortStatus.columnAccessor), newSortStatus.direction);\n }\n };\n\n const sortedData = sortData(\n filteredData,\n sortStatus.columnAccessor as keyof T,\n sortStatus.direction,\n );\n\n const [pageSize, setPageSize] = usePersistentState(\n PAGE_SIZES[1],\n \"mantine-table-page-size\",\n );\n const [page, setPage] = useState(1);\n\n const records = pagination ? sortedData.slice((page - 1) * pageSize, page * pageSize) : sortedData;\n\n const [selectedRecords, setSelectedRecords] = useState<T[]>([]);\n\n useEffect(() => {\n setSelectedRecords([]);\n }, [activeTab]);\n\n const [createModalOpen, setCreateModalOpen] = useState(false);\n const [updateModalOpen, setUpdateModalOpen] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n\n 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 content: ({ record }: { record: T }) => rowExpansion.content(record, false),\n ...(rowExpansion.expanded && {\n expanded: rowExpansion.expanded,\n }),\n },\n })}\n columns={fields.map((field) => field.column)}\n noRecordsText=\"Keine Einträge gefunden\"\n onRowClick={onRowClick}\n {...(onRowClick && { style: { cursor: \"pointer\" } })}\n />\n </Box>\n\n {mobileCards && (\n <Box hiddenFrom=\"sm\">\n <MobileCardList\n records={records}\n fields={fields}\n 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 ...(rowExpansion.expanded && { expanded: rowExpansion.expanded }),\n },\n })}\n {...(mobileActions.length > 0 && {\n actions: mobileActions,\n canUpdate,\n canDelete,\n })}\n />\n </Box>\n )}\n\n\n </>\n )}\n\n <Modal\n opened={updateModalOpen}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Bearbeiten\"}\n >\n {selectedRecords.length > 0 && (\n <UpdateModal<T>\n fields={fields.filter((field) => field.update)}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n id={selectedRecords[0].id}\n onClose={() => {\n setUpdateModalOpen(false);\n setSelectedRecords([]);\n }}\n steps={steps}\n />\n )}\n </Modal>\n\n {selectedRecords.length > 0 && (\n <Modal\n opened={deleteModalOpen}\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n title={title ?? \"Löschen\"}\n >\n <DeleteModal<T>\n onClose={() => {\n setDeleteModalOpen(false);\n setSelectedRecords([]);\n }}\n queryKey={queryKey}\n apiPath={effectiveMutationApiPath}\n selectedRecords={selectedRecords}\n 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 { BaseEntity } from \"../Hooks/useApi.ts\";\nimport { DataTableInner, DataTableProps } from \"./DataTableInner.tsx\";\n\nexport function DataTable<T extends BaseEntity>(props: DataTableProps<T>) {\n return <DataTableInner<T> {...props} />;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,26],"mappings":"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"}