@tanstack/query-core 5.0.0-alpha.18 → 5.0.0-alpha.19

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":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #previousQueryResult?: QueryObserverResult<TData, TError>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = []\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval ?? false\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n const prevQueryResult = queryChange\n ? this.#currentResult\n : this.#previousQueryResult\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(prevQueryResult?.data as TQueryData | undefined)\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(prevResult?.data, placeholderData, options) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwErrors) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n this.#previousQueryResult = this.#currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["_classPrivateFieldLooseKey","QueryObserver","Subscribable","constructor","client","options","undefined","Set","_classPrivateFieldLooseBase","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","prevQueryResult","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","data","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","dataUpdatedAt","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","isStale","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","promise","throwOnError","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
1
+ {"version":3,"file":"queryObserver.js","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last defined query data.\n // It will be used to pass the previous data to the placeholder function between renders.\n #lastDefinedQueryData?: TQueryData\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = []\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval ?? false\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(this.#lastDefinedQueryData)\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastDefinedQueryData = this.#currentResultState.data\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwErrors) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["_classPrivateFieldLooseKey","QueryObserver","Subscribable","constructor","client","options","undefined","Set","_classPrivateFieldLooseBase","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","data","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","dataUpdatedAt","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","isStale","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","promise","throwOnError","catch","noop","isServer","isValidTimeout","time","timeUntilStale","timeout","setTimeout","refetchInterval","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":";;;;;;;;;AAuBsD,IAAA,OAAA,gBAAAA,mDAAA,CAAA,QAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,yBAAA,gBAAAA,mDAAA,CAAA,0BAAA,CAAA,CAAA;AAAA,IAAA,cAAA,gBAAAA,mDAAA,CAAA,eAAA,CAAA,CAAA;AAAA,IAAA,mBAAA,gBAAAA,mDAAA,CAAA,oBAAA,CAAA,CAAA;AAAA,IAAA,qBAAA,gBAAAA,mDAAA,CAAA,sBAAA,CAAA,CAAA;AAAA,IAAA,YAAA,gBAAAA,mDAAA,CAAA,aAAA,CAAA,CAAA;AAAA,IAAA,SAAA,gBAAAA,mDAAA,CAAA,UAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,qBAAA,gBAAAA,mDAAA,CAAA,sBAAA,CAAA,CAAA;AAAA,IAAA,eAAA,gBAAAA,mDAAA,CAAA,gBAAA,CAAA,CAAA;AAAA,IAAA,kBAAA,gBAAAA,mDAAA,CAAA,mBAAA,CAAA,CAAA;AAAA,IAAA,uBAAA,gBAAAA,mDAAA,CAAA,wBAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,mBAAA,gBAAAA,mDAAA,CAAA,oBAAA,CAAA,CAAA;AAAA,IAAA,uBAAA,gBAAAA,mDAAA,CAAA,wBAAA,CAAA,CAAA;AAAA,IAAA,sBAAA,gBAAAA,mDAAA,CAAA,uBAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,kBAAA,gBAAAA,mDAAA,CAAA,mBAAA,CAAA,CAAA;AAAA,IAAA,qBAAA,gBAAAA,mDAAA,CAAA,sBAAA,CAAA,CAAA;AAAA,IAAA,aAAA,gBAAAA,mDAAA,CAAA,cAAA,CAAA,CAAA;AAAA,IAAA,YAAA,gBAAAA,mDAAA,CAAA,aAAA,CAAA,CAAA;AAAA,IAAA,OAAA,gBAAAA,mDAAA,CAAA,QAAA,CAAA,CAAA;AAgB/C,MAAMC,aAAa,SAMhBC,yBAAY,CAAuC;AAwB3D;AACA;;AAOAC,EAAAA,WAAW,CACTC,MAAmB,EACnBC,OAMC,EACD;AACA,IAAA,KAAK,EAAE,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,OAAA,EAAA;AAAA,MAAA,KAAA,EAAA,QAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,YAAA,EAAA;AAAA,MAAA,KAAA,EAAA,aAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,KAAA,EAAA,cAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,qBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,sBAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,kBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,mBAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,KAAA,EAAA,cAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,sBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,uBAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,uBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,wBAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,mBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,oBAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,KAAA,EAAA,cAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,OAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;MAAA,KAhC2DC,EAAAA,SAAAA;AAAS,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,yBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;MAAA,KACjBA,EAAAA,SAAAA;AAAS,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,cAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;MAAA,KAChBA,EAAAA,SAAAA;AAAS,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,mBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,qBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,YAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,SAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,qBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,eAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,kBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,uBAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAAA,KAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,aAAA,EAAA;AAAA,MAAA,QAAA,EAAA,IAAA;AAAA,MAAA,KAAA,EAkBd,IAAIC,GAAG,EAAA;AAAE,KAAA,CAAA,CAAA;AAcvD,IAAAC,oDAAA,CAAA,IAAI,sBAAWJ,MAAM,CAAA;IACrB,IAAI,CAACC,OAAO,GAAGA,OAAO,CAAA;AACtB,IAAAG,oDAAA,CAAA,IAAI,gCAAgB,IAAI,CAAA;IACxB,IAAI,CAACC,WAAW,EAAE,CAAA;AAClB,IAAA,IAAI,CAACC,UAAU,CAACL,OAAO,CAAC,CAAA;AAC1B,GAAA;AAEUI,EAAAA,WAAW,GAAS;IAC5B,IAAI,CAACE,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,GAAA;AAEUC,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;AAC/B,MAAAP,oDAAA,CAAA,IAAI,EAAeQ,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,WAAW,CAAC,IAAI,CAAC,CAAA;MAEpC,IAAIC,kBAAkB,sDAAC,IAAI,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAgB,IAAI,CAACZ,OAAO,CAAC,EAAE;QACxDG,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,OAAA;MAEAA,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,KAAA;AACF,GAAA;AAEUU,EAAAA,aAAa,GAAS;AAC9B,IAAA,IAAI,CAAC,IAAI,CAACJ,SAAS,CAACC,MAAM,EAAE;MAC1B,IAAI,CAACI,OAAO,EAAE,CAAA;AAChB,KAAA;AACF,GAAA;AAEAC,EAAAA,sBAAsB,GAAY;AAChC,IAAA,OAAOC,aAAa,CAAAb,oDAAA,CAClB,IAAI,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EACJ,IAAI,CAACH,OAAO,EACZ,IAAI,CAACA,OAAO,CAACiB,kBAAkB,CAChC,CAAA;AACH,GAAA;AAEAC,EAAAA,wBAAwB,GAAY;AAClC,IAAA,OAAOF,aAAa,CAAAb,oDAAA,CAClB,IAAI,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EACJ,IAAI,CAACH,OAAO,EACZ,IAAI,CAACA,OAAO,CAACmB,oBAAoB,CAClC,CAAA;AACH,GAAA;AAEAL,EAAAA,OAAO,GAAS;IACd,IAAI,CAACL,SAAS,GAAG,EAAE,CAAA;IACnBN,oDAAI,CAAA,IAAA,EAAA,kBAAA,CAAA,CAAA,kBAAA,CAAA,EAAA,CAAA;IACJA,oDAAI,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA;AACJ,IAAAA,oDAAA,CAAA,IAAI,EAAeiB,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,cAAc,CAAC,IAAI,CAAC,CAAA;AACzC,GAAA;AAEAf,EAAAA,UAAU,CACRL,OAMC,EACDqB,aAA6B,EACvB;AACN,IAAA,MAAMC,WAAW,GAAG,IAAI,CAACtB,OAAO,CAAA;IAChC,MAAMuB,SAAS,GAAGpB,oDAAA,CAAA,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;IAEpC,IAAI,CAACH,OAAO,GAAGG,oDAAA,CAAA,IAAI,oBAASqB,mBAAmB,CAACxB,OAAO,CAAC,CAAA;IAExD,IAAI,CAACyB,yBAAmB,CAACH,WAAW,EAAE,IAAI,CAACtB,OAAO,CAAC,EAAE;AACnD,MAAAG,oDAAA,CAAA,IAAI,EAASuB,OAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,aAAa,EAAE,CAACC,MAAM,CAAC;AAClCC,QAAAA,IAAI,EAAE,wBAAwB;QAC9BC,KAAK,EAAA1B,oDAAA,CAAE,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA;AACzB2B,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IACE,OAAO,IAAI,CAAC9B,OAAO,CAAC+B,OAAO,KAAK,WAAW,IAC3C,OAAO,IAAI,CAAC/B,OAAO,CAAC+B,OAAO,KAAK,SAAS,EACzC;AACA,MAAA,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACrD,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC,IAAI,CAAChC,OAAO,CAACiC,QAAQ,EAAE;AAC1B,MAAA,IAAI,CAACjC,OAAO,CAACiC,QAAQ,GAAGX,WAAW,CAACW,QAAQ,CAAA;AAC9C,KAAA;IAEA9B,oDAAI,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA;AAEJ,IAAA,MAAM+B,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;;AAEnC;AACA,IAAA,IACED,OAAO,IACPE,qBAAqB,CAAAjC,oDAAA,CACnB,IAAI,EACJoB,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,EAAAA,SAAS,EACT,IAAI,CAACvB,OAAO,EACZsB,WAAW,CACZ,EACD;MACAnB,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,KAAA;;AAEA;AACA,IAAAA,oDAAA,CAAA,IAAI,gCAAekB,aAAa,CAAA,CAAA;;AAEhC;IACA,IACEa,OAAO,KACN/B,oDAAA,CAAA,IAAI,EAAmBoB,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,KAAAA,SAAS,IAC/B,IAAI,CAACvB,OAAO,CAAC+B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5C,IAAI,CAAC/B,OAAO,CAACqC,SAAS,KAAKf,WAAW,CAACe,SAAS,CAAC,EACnD;MACAlC,oDAAI,CAAA,IAAA,EAAA,mBAAA,CAAA,CAAA,mBAAA,CAAA,EAAA,CAAA;AACN,KAAA;IAEA,MAAMmC,mBAAmB,GAAGnC,oDAAA,CAAA,IAAI,EAA0B,uBAAA,CAAA,CAAA,uBAAA,CAAA,EAAA,CAAA;;AAE1D;IACA,IACE+B,OAAO,KACN/B,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,KAAmBoB,SAAS,IAC/B,IAAI,CAACvB,OAAO,CAAC+B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5CO,mBAAmB,KAAKnC,oDAAA,CAAA,IAAI,EAAwB,uBAAA,CAAA,CAAA,uBAAA,CAAA,CAAC,EACvD;AACA,MAAAA,oDAAA,CAAA,IAAI,kDAAwBmC,mBAAmB,CAAA,CAAA;AACjD,KAAA;AACF,GAAA;EAEAC,mBAAmB,CACjBvC,OAMC,EACmC;AACpC,IAAA,MAAM6B,KAAK,GAAG1B,oDAAI,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAASuB,aAAa,EAAE,CAACc,KAAK,CAACrC,oDAAA,CAAA,IAAI,EAAUH,OAAAA,CAAAA,CAAAA,OAAAA,CAAAA,EAAAA,OAAO,CAAC,CAAA;AAEvE,IAAA,OAAO,IAAI,CAACyC,YAAY,CAACZ,KAAK,EAAE7B,OAAO,CAAC,CAAA;AAC1C,GAAA;AAEA0C,EAAAA,gBAAgB,GAAuC;AACrD,IAAA,OAAAvC,oDAAA,CAAO,IAAI,EAAA,cAAA,CAAA,CAAA,cAAA,CAAA,CAAA;AACb,GAAA;EAEAwC,WAAW,CACTC,MAA0C,EACN;IACpC,MAAMC,aAAa,GAAG,EAAwC,CAAA;IAE9DC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,OAAO,CAAEC,GAAG,IAAK;AACnCH,MAAAA,MAAM,CAACI,cAAc,CAACL,aAAa,EAAEI,GAAG,EAAE;AACxCE,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,GAAG,EAAE,MAAM;AACT,UAAAlD,oDAAA,CAAA,IAAI,EAAemD,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,GAAG,CAACL,GAAG,CAA8B,CAAA;UACxD,OAAOL,MAAM,CAACK,GAAG,CAA8B,CAAA;AACjD,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOJ,aAAa,CAAA;AACtB,GAAA;AAEAU,EAAAA,eAAe,GAAuD;AACpE,IAAA,OAAApD,oDAAA,CAAO,IAAI,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACb,GAAA;AAEAG,EAAAA,OAAO,CAAC;IAAE,GAAGN,OAAAA;GAAyB,GAAG,EAAE,EAEzC;IACA,OAAO,IAAI,CAACwD,KAAK,CAAC;MAChB,GAAGxD,OAAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAyD,eAAe,CACbzD,OAMC,EAC4C;AAC7C,IAAA,MAAM0D,gBAAgB,GAAGvD,oDAAA,CAAA,IAAI,oBAASqB,mBAAmB,CAACxB,OAAO,CAAC,CAAA;AAElE,IAAA,MAAM6B,KAAK,GAAG1B,oDAAI,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CACfuB,aAAa,EAAE,CACfc,KAAK,CAACrC,oDAAA,CAAA,IAAI,EAAUuD,OAAAA,CAAAA,CAAAA,OAAAA,CAAAA,EAAAA,gBAAgB,CAAC,CAAA;IACxC7B,KAAK,CAAC8B,oBAAoB,GAAG,IAAI,CAAA;AAEjC,IAAA,OAAO9B,KAAK,CAAC2B,KAAK,EAAE,CAACI,IAAI,CAAC,MAAM,IAAI,CAACnB,YAAY,CAACZ,KAAK,EAAE6B,gBAAgB,CAAC,CAAC,CAAA;AAC7E,GAAA;EAEUF,KAAK,CACbK,YAAkC,EACW;AAAA,IAAA,IAAA,qBAAA,CAAA;AAC7C,IAAA,OAAO1D,yDAAI,EAAe,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACxB,MAAA,GAAG0D,YAAY;AACfC,MAAAA,aAAa,EAAED,CAAAA,qBAAAA,GAAAA,YAAY,CAACC,aAAa,KAAI,IAAA,GAAA,qBAAA,GAAA,IAAA;KAC9C,CAAA,CAAEF,IAAI,CAAC,MAAM;MACZzD,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACJ,MAAA,OAAAA,oDAAA,CAAO,IAAI,EAAA,cAAA,CAAA,CAAA,cAAA,CAAA,CAAA;AACb,KAAC,CAAC,CAAA;AACJ,GAAA;AAoGUsC,EAAAA,YAAY,CACpBZ,KAAyD,EACzD7B,OAMC,EACmC;IACpC,MAAMuB,SAAS,GAAGpB,oDAAA,CAAA,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACpC,IAAA,MAAMmB,WAAW,GAAG,IAAI,CAACtB,OAAO,CAAA;IAChC,MAAM+D,UAAU,GAAG5D,oDAAA,CAAA,IAAI,EAEV,cAAA,CAAA,CAAA,cAAA,CAAA,CAAA;IACb,MAAM6D,eAAe,GAAG7D,oDAAA,CAAA,IAAI,EAAoB,mBAAA,CAAA,CAAA,mBAAA,CAAA,CAAA;IAChD,MAAM8D,iBAAiB,GAAG9D,oDAAA,CAAA,IAAI,EAAsB,qBAAA,CAAA,CAAA,qBAAA,CAAA,CAAA;AACpD,IAAA,MAAM+D,WAAW,GAAGrC,KAAK,KAAKN,SAAS,CAAA;IACvC,MAAM4C,iBAAiB,GAAGD,WAAW,GACjCrC,KAAK,CAACuC,KAAK,GACXjE,oDAAA,CAAA,IAAI,EAA0B,yBAAA,CAAA,CAAA,yBAAA,CAAA,CAAA;IAElC,MAAM;AAAEiE,MAAAA,KAAAA;AAAM,KAAC,GAAGvC,KAAK,CAAA;IACvB,IAAI;MAAEwC,KAAK;MAAEC,cAAc;MAAEC,WAAW;AAAEC,MAAAA,MAAAA;AAAO,KAAC,GAAGJ,KAAK,CAAA;IAC1D,IAAIK,iBAAiB,GAAG,KAAK,CAAA;AAC7B,IAAA,IAAIC,IAAuB,CAAA;;AAE3B;IACA,IAAI1E,OAAO,CAAC2E,kBAAkB,EAAE;AAC9B,MAAA,MAAMzC,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;MAEnC,MAAMyC,YAAY,GAAG,CAAC1C,OAAO,IAAItB,kBAAkB,CAACiB,KAAK,EAAE7B,OAAO,CAAC,CAAA;AAEnE,MAAA,MAAM6E,eAAe,GACnB3C,OAAO,IAAIE,qBAAqB,CAACP,KAAK,EAAEN,SAAS,EAAEvB,OAAO,EAAEsB,WAAW,CAAC,CAAA;MAE1E,IAAIsD,YAAY,IAAIC,eAAe,EAAE;AACnCN,QAAAA,WAAW,GAAGO,gBAAQ,CAACjD,KAAK,CAAC7B,OAAO,CAAC+E,WAAW,CAAC,GAC7C,UAAU,GACV,QAAQ,CAAA;AACZ,QAAA,IAAI,CAACX,KAAK,CAACY,aAAa,EAAE;AACxBR,UAAAA,MAAM,GAAG,SAAS,CAAA;AACpB,SAAA;AACF,OAAA;AACA,MAAA,IAAIxE,OAAO,CAAC2E,kBAAkB,KAAK,aAAa,EAAE;AAChDJ,QAAAA,WAAW,GAAG,MAAM,CAAA;AACtB,OAAA;AACF,KAAA;;AAEA;IACA,IAAIvE,OAAO,CAACiF,MAAM,IAAI,OAAOb,KAAK,CAACM,IAAI,KAAK,WAAW,EAAE;AACvD;AACA,MAAA,IACEX,UAAU,IACVK,KAAK,CAACM,IAAI,MAAKV,eAAe,IAAfA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAEU,IAAI,KACpC1E,OAAO,CAACiF,MAAM,KAAK9E,oDAAA,CAAA,IAAI,uBAAU,EACjC;QACAuE,IAAI,GAAAvE,oDAAA,CAAG,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AAC3B,OAAC,MAAM;QACL,IAAI;UACFA,oDAAI,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA,SAAA,CAAA,GAAaH,OAAO,CAACiF,MAAM,CAAA;UAC/BP,IAAI,GAAG1E,OAAO,CAACiF,MAAM,CAACb,KAAK,CAACM,IAAI,CAAC,CAAA;AACjCA,UAAAA,IAAI,GAAGQ,iBAAW,CAACnB,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEW,IAAI,EAAEA,IAAI,EAAE1E,OAAO,CAAC,CAAA;AACnD,UAAAG,oDAAA,CAAA,IAAI,kCAAiBuE,IAAI,CAAA;AACzB,UAAAvE,oDAAA,CAAA,IAAI,gCAAgB,IAAI,CAAA;SACzB,CAAC,OAAOgF,WAAW,EAAE;AACpB,UAAAhF,oDAAA,CAAA,IAAI,gCAAgBgF,WAAqB,CAAA;AAC3C,SAAA;AACF,OAAA;AACF,KAAA;AACA;SACK;MACHT,IAAI,GAAGN,KAAK,CAACM,IAAwB,CAAA;AACvC,KAAA;;AAEA;AACA,IAAA,IACE,OAAO1E,OAAO,CAACoF,eAAe,KAAK,WAAW,IAC9C,OAAOV,IAAI,KAAK,WAAW,IAC3BF,MAAM,KAAK,SAAS,EACpB;AACA,MAAA,IAAIY,eAAe,CAAA;;AAEnB;AACA,MAAA,IACErB,UAAU,IAAA,IAAA,IAAVA,UAAU,CAAEU,iBAAiB,IAC7BzE,OAAO,CAACoF,eAAe,MAAKnB,iBAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAEmB,eAAe,CAC9D,EAAA;QACAA,eAAe,GAAGrB,UAAU,CAACW,IAAI,CAAA;AACnC,OAAC,MAAM;AACLU,QAAAA,eAAe,GACb,OAAOpF,OAAO,CAACoF,eAAe,KAAK,UAAU,GAEvCpF,OAAO,CAACoF,eAAe,CACvBjF,oDAAA,CAAA,IAAI,gDAAuB,GAC7BH,OAAO,CAACoF,eAAe,CAAA;QAC7B,IAAIpF,OAAO,CAACiF,MAAM,IAAI,OAAOG,eAAe,KAAK,WAAW,EAAE;UAC5D,IAAI;AACFA,YAAAA,eAAe,GAAGpF,OAAO,CAACiF,MAAM,CAACG,eAAe,CAAC,CAAA;AACjD,YAAAjF,oDAAA,CAAA,IAAI,gCAAgB,IAAI,CAAA;WACzB,CAAC,OAAOgF,WAAW,EAAE;AACpB,YAAAhF,oDAAA,CAAA,IAAI,gCAAgBgF,WAAqB,CAAA;AAC3C,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,IAAI,OAAOC,eAAe,KAAK,WAAW,EAAE;AAC1CZ,QAAAA,MAAM,GAAG,SAAS,CAAA;AAClBE,QAAAA,IAAI,GAAGQ,iBAAW,CAChBnB,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEW,IAAI,EAChBU,eAAe,EACfpF,OAAO,CACC,CAAA;AACVyE,QAAAA,iBAAiB,GAAG,IAAI,CAAA;AAC1B,OAAA;AACF,KAAA;AAEA,IAAA,IAAAtE,oDAAA,CAAI,IAAI,EAAe,YAAA,CAAA,CAAA,YAAA,CAAA,EAAA;MACrBkE,KAAK,GAAAlE,oDAAA,CAAG,IAAI,EAAoB,YAAA,CAAA,CAAA,YAAA,CAAA,CAAA;MAChCuE,IAAI,GAAAvE,oDAAA,CAAG,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACzBmE,MAAAA,cAAc,GAAGe,IAAI,CAACC,GAAG,EAAE,CAAA;AAC3Bd,MAAAA,MAAM,GAAG,OAAO,CAAA;AAClB,KAAA;AAEA,IAAA,MAAMe,UAAU,GAAGhB,WAAW,KAAK,UAAU,CAAA;AAC7C,IAAA,MAAMiB,SAAS,GAAGhB,MAAM,KAAK,SAAS,CAAA;AACtC,IAAA,MAAMiB,OAAO,GAAGjB,MAAM,KAAK,OAAO,CAAA;AAElC,IAAA,MAAMkB,SAAS,GAAGF,SAAS,IAAID,UAAU,CAAA;AAEzC,IAAA,MAAM3C,MAA8C,GAAG;MACrD4B,MAAM;MACND,WAAW;MACXiB,SAAS;MACTG,SAAS,EAAEnB,MAAM,KAAK,SAAS;MAC/BiB,OAAO;AACPG,MAAAA,gBAAgB,EAAEF,SAAS;MAC3BA,SAAS;MACThB,IAAI;MACJM,aAAa,EAAEZ,KAAK,CAACY,aAAa;MAClCX,KAAK;MACLC,cAAc;MACduB,YAAY,EAAEzB,KAAK,CAAC0B,iBAAiB;MACrCC,aAAa,EAAE3B,KAAK,CAAC4B,kBAAkB;MACvCC,gBAAgB,EAAE7B,KAAK,CAAC6B,gBAAgB;MACxCC,SAAS,EAAE9B,KAAK,CAAC+B,eAAe,GAAG,CAAC,IAAI/B,KAAK,CAAC6B,gBAAgB,GAAG,CAAC;AAClEG,MAAAA,mBAAmB,EACjBhC,KAAK,CAAC+B,eAAe,GAAGhC,iBAAiB,CAACgC,eAAe,IACzD/B,KAAK,CAAC6B,gBAAgB,GAAG9B,iBAAiB,CAAC8B,gBAAgB;MAC7DV,UAAU;AACVc,MAAAA,YAAY,EAAEd,UAAU,IAAI,CAACC,SAAS;AACtCc,MAAAA,cAAc,EAAEb,OAAO,IAAIrB,KAAK,CAACY,aAAa,KAAK,CAAC;MACpDuB,QAAQ,EAAEhC,WAAW,KAAK,QAAQ;MAClCE,iBAAiB;AACjB+B,MAAAA,cAAc,EAAEf,OAAO,IAAIrB,KAAK,CAACY,aAAa,KAAK,CAAC;AACpDyB,MAAAA,OAAO,EAAEA,OAAO,CAAC5E,KAAK,EAAE7B,OAAO,CAAC;MAChCM,OAAO,EAAE,IAAI,CAACA,OAAAA;KACf,CAAA;AAED,IAAA,OAAOsC,MAAM,CAAA;AACf,GAAA;EA6EA8D,aAAa,CAACC,MAA6B,EAAQ;IACjD,MAAMtF,aAA4B,GAAG,EAAE,CAAA;AAEvC,IAAA,IAAIsF,MAAM,CAAC/E,IAAI,KAAK,SAAS,EAAE;AAC7BP,MAAAA,aAAa,CAACuF,SAAS,GAAG,CAACD,MAAM,CAACE,MAAM,CAAA;AAC1C,KAAC,MAAM,IAAIF,MAAM,CAAC/E,IAAI,KAAK,OAAO,IAAI,CAACkF,wBAAgB,CAACH,MAAM,CAACtC,KAAK,CAAC,EAAE;MACrEhD,aAAa,CAAC0F,OAAO,GAAG,IAAI,CAAA;AAC9B,KAAA;AAEA,IAAA5G,oDAAA,CAAA,IAAI,gCAAekB,aAAa,CAAA,CAAA;AAEhC,IAAA,IAAI,IAAI,CAACc,YAAY,EAAE,EAAE;MACvBhC,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,KAAA;AACF,GAAA;AA2BF,CAAA;AAAC,SAAA,cAAA,CAvXG0D,YAAmC,EACF;AACjC;EACA1D,oDAAI,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA,YAAA,CAAA,EAAA,CAAA;;AAEJ;EACA,IAAI6G,OAAwC,GAAG7G,oDAAA,CAAA,IAAI,EAAeqD,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,KAAK,CACrE,IAAI,CAACxD,OAAO,EACZ6D,YAAY,CACb,CAAA;AAED,EAAA,IAAI,EAACA,YAAY,IAAA,IAAA,IAAZA,YAAY,CAAEoD,YAAY,CAAE,EAAA;AAC/BD,IAAAA,OAAO,GAAGA,OAAO,CAACE,KAAK,CAACC,UAAI,CAAC,CAAA;AAC/B,GAAA;AAEA,EAAA,OAAOH,OAAO,CAAA;AAChB,CAAA;AAAC,SAE2B,oBAAA,GAAA;EAC1B7G,oDAAI,CAAA,IAAA,EAAA,kBAAA,CAAA,CAAA,kBAAA,CAAA,EAAA,CAAA;AAEJ,EAAA,IACEiH,cAAQ,IACRjH,oDAAI,CAAA,IAAA,EAAA,cAAA,CAAA,CAAA,cAAA,CAAA,CAAgBsG,OAAO,IAC3B,CAACY,oBAAc,CAAC,IAAI,CAACrH,OAAO,CAACqC,SAAS,CAAC,EACvC;AACA,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,MAAMiF,IAAI,GAAGC,oBAAc,CACzBpH,oDAAI,CAAA,IAAA,EAAA,cAAA,CAAA,CAAA,cAAA,CAAA,CAAgB6E,aAAa,EACjC,IAAI,CAAChF,OAAO,CAACqC,SAAS,CACvB,CAAA;;AAED;AACA;AACA,EAAA,MAAMmF,OAAO,GAAGF,IAAI,GAAG,CAAC,CAAA;EAExBnH,oDAAI,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA,eAAA,CAAA,GAAmBsH,UAAU,CAAC,MAAM;AACtC,IAAA,IAAI,CAACtH,oDAAA,CAAA,IAAI,EAAgBsG,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,OAAO,EAAE;MAChCtG,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,KAAA;GACD,EAAEqH,OAAO,CAAC,CAAA;AACb,CAAA;AAAC,SAEyB,wBAAA,GAAA;AAAA,EAAA,IAAA,qBAAA,CAAA;AACxB,EAAA,OAAO,OAAO,IAAI,CAACxH,OAAO,CAAC0H,eAAe,KAAK,UAAU,GACrD,IAAI,CAAC1H,OAAO,CAAC0H,eAAe,CAC1BvH,oDAAA,CAAA,IAAI,EAAgBuE,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,IAAI,EACxBvE,oDAAA,CAAA,IAAI,EACL,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA,GAAA,CAAA,qBAAA,GACD,IAAI,CAACH,OAAO,CAAC0H,eAAe,KAAA,IAAA,GAAA,qBAAA,GAAI,KAAK,CAAA;AAC3C,CAAA;AAAC,SAAA,uBAAA,CAEsBC,YAA4B,EAAQ;EACzDxH,oDAAI,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,CAAA;AAEJ,EAAAA,oDAAA,CAAA,IAAI,sDAA2BwH,YAAY,CAAA;AAE3C,EAAA,IACEP,cAAQ,IACR,IAAI,CAACpH,OAAO,CAAC+B,OAAO,KAAK,KAAK,IAC9B,CAACsF,oBAAc,sDAAC,IAAI,EAAA,uBAAA,CAAA,CAAA,uBAAA,CAAA,CAAyB,IAC7ClH,oDAAI,CAAA,IAAA,EAAA,uBAAA,CAAA,CAAA,uBAAA,CAAA,KAA6B,CAAC,EAClC;AACA,IAAA,OAAA;AACF,GAAA;EAEAA,oDAAI,CAAA,IAAA,EAAA,kBAAA,CAAA,CAAA,kBAAA,CAAA,GAAsByH,WAAW,CAAC,MAAM;IAC1C,IACE,IAAI,CAAC5H,OAAO,CAAC6H,2BAA2B,IACxCC,yBAAY,CAACC,SAAS,EAAE,EACxB;MACA5H,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA;AACN,KAAA;GACD,EAAAA,oDAAA,CAAE,IAAI,EAAyB,uBAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA;AAClC,CAAA;AAAC,SAEqB,cAAA,GAAA;EACpBA,oDAAI,CAAA,IAAA,EAAA,mBAAA,CAAA,CAAA,mBAAA,CAAA,EAAA,CAAA;AACJ,EAAAA,oDAAA,CAAA,IAAI,uGAAwB,IAAI,EAAA,uBAAA,CAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,CAAA;AAClC,CAAA;AAAC,SAE0B,mBAAA,GAAA;AACzB,EAAA,IAAAA,oDAAA,CAAI,IAAI,EAAkB,eAAA,CAAA,CAAA,eAAA,CAAA,EAAA;IACxB6H,YAAY,CAAA7H,oDAAA,CAAC,IAAI,EAAiB,eAAA,CAAA,CAAA,eAAA,CAAA,CAAA,CAAA;AAClC,IAAAA,oDAAA,CAAA,IAAI,sCAAmBF,SAAS,CAAA;AAClC,GAAA;AACF,CAAA;AAAC,SAE6B,sBAAA,GAAA;AAC5B,EAAA,IAAAE,oDAAA,CAAI,IAAI,EAAqB,kBAAA,CAAA,CAAA,kBAAA,CAAA,EAAA;IAC3B8H,aAAa,CAAA9H,oDAAA,CAAC,IAAI,EAAoB,kBAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA;AACtC,IAAAA,oDAAA,CAAA,IAAI,4CAAsBF,SAAS,CAAA;AACrC,GAAA;AACF,CAAA;AAAC,SAAA,cAAA,CAoKaoB,aAA6B,EAAQ;EACjD,MAAM0C,UAAU,GAAG5D,oDAAA,CAAA,IAAI,EAEV,cAAA,CAAA,CAAA,cAAA,CAAA,CAAA;EAEb,MAAM+H,UAAU,GAAG,IAAI,CAACzF,YAAY,CAACtC,oDAAA,CAAA,IAAI,EAAgB,aAAA,CAAA,CAAA,aAAA,CAAA,EAAA,IAAI,CAACH,OAAO,CAAC,CAAA;EACtEG,oDAAI,CAAA,IAAA,EAAA,mBAAA,CAAA,CAAA,mBAAA,CAAA,GAAuBA,oDAAI,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA,aAAA,CAAA,CAAeiE,KAAK,CAAA;EACnDjE,oDAAI,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA,qBAAA,CAAA,GAAyB,IAAI,CAACH,OAAO,CAAA;;AAEzC;AACA,EAAA,IAAIyB,yBAAmB,CAACyG,UAAU,EAAEnE,UAAU,CAAC,EAAE;AAC/C,IAAA,OAAA;AACF,GAAA;AAEA,EAAA,IAAI5D,oDAAI,CAAA,IAAA,EAAA,mBAAA,CAAA,CAAA,mBAAA,CAAA,CAAqBuE,IAAI,KAAKzE,SAAS,EAAE;IAC/CE,oDAAI,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA,qBAAA,CAAA,GAAyBA,oDAAI,CAAA,IAAA,EAAA,mBAAA,CAAA,CAAA,mBAAA,CAAA,CAAqBuE,IAAI,CAAA;AAC5D,GAAA;AACA,EAAAvE,oDAAA,CAAA,IAAI,oCAAkB+H,UAAU,CAAA;;AAEhC;EACA,MAAMC,oBAAmC,GAAG,EAAE,CAAA;EAE9C,MAAMC,qBAAqB,GAAG,MAAe;IAC3C,IAAI,CAACrE,UAAU,EAAE;AACf,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,MAAM;AAAEsE,MAAAA,mBAAAA;KAAqB,GAAG,IAAI,CAACrI,OAAO,CAAA;IAE5C,IACEqI,mBAAmB,KAAK,KAAK,IAC5B,CAACA,mBAAmB,IAAI,CAAClI,oDAAA,CAAA,IAAI,EAAemI,aAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,IAAK,EAClD;AACA,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,MAAMC,aAAa,GAAG,IAAIrI,GAAG,CAACmI,mBAAmB,IAAnBA,IAAAA,GAAAA,mBAAmB,GAAIlI,oDAAA,CAAA,IAAI,EAAe,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA,CAAA;AAExE,IAAA,IAAI,IAAI,CAACH,OAAO,CAACwI,WAAW,EAAE;AAC5BD,MAAAA,aAAa,CAACjF,GAAG,CAAC,OAAO,CAAC,CAAA;AAC5B,KAAA;IAEA,OAAOR,MAAM,CAACC,IAAI,CAAC5C,oDAAA,CAAA,IAAI,kCAAgB,CAACsI,IAAI,CAAExF,GAAG,IAAK;MACpD,MAAMyF,QAAQ,GAAGzF,GAAgC,CAAA;MACjD,MAAM0F,OAAO,GAAGxI,oDAAA,CAAA,IAAI,EAAgBuI,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,QAAQ,CAAC,KAAK3E,UAAU,CAAC2E,QAAQ,CAAC,CAAA;AACtE,MAAA,OAAOC,OAAO,IAAIJ,aAAa,CAACK,GAAG,CAACF,QAAQ,CAAC,CAAA;AAC/C,KAAC,CAAC,CAAA;GACH,CAAA;EAED,IAAI,CAAArH,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEZ,SAAS,MAAK,KAAK,IAAI2H,qBAAqB,EAAE,EAAE;IACjED,oBAAoB,CAAC1H,SAAS,GAAG,IAAI,CAAA;AACvC,GAAA;AAEA,EAAAN,oDAAA,CAAA,IAAI,EAAS,OAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAAE,IAAA,GAAGgI,oBAAoB;IAAE,GAAG9G,aAAAA;GAAe,CAAA,CAAA;AAC5D,CAAA;AAAC,SAEoB,aAAA,GAAA;AACnB,EAAA,MAAMQ,KAAK,GAAG1B,oDAAI,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAASuB,aAAa,EAAE,CAACc,KAAK,CAAArC,oDAAA,CAAC,IAAI,EAAA,OAAA,CAAA,CAAA,OAAA,CAAA,EAAU,IAAI,CAACH,OAAO,CAAC,CAAA;AAE5E,EAAA,IAAI6B,KAAK,KAAA1B,oDAAA,CAAK,IAAI,EAAA,aAAA,CAAA,CAAA,aAAA,CAAc,EAAE;AAChC,IAAA,OAAA;AACF,GAAA;EAEA,MAAMoB,SAAS,GAAGpB,oDAAA,CAAA,IAAI,EAET,aAAA,CAAA,CAAA,aAAA,CAAA,CAAA;AACb,EAAAA,oDAAA,CAAA,IAAI,kCAAiB0B,KAAK,CAAA;EAC1B1B,oDAAI,CAAA,IAAA,EAAA,yBAAA,CAAA,CAAA,yBAAA,CAAA,GAA6B0B,KAAK,CAACuC,KAAK,CAAA;AAE5C,EAAA,IAAI,IAAI,CAACjC,YAAY,EAAE,EAAE;AACvBZ,IAAAA,SAAS,oBAATA,SAAS,CAAEH,cAAc,CAAC,IAAI,CAAC,CAAA;AAC/BS,IAAAA,KAAK,CAAClB,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,GAAA;AACF,CAAA;AAAC,SAAA,QAAA,CAkBOU,aAA4B,EAAQ;EAC1CwH,2BAAa,CAACC,KAAK,CAAC,MAAM;AACxB;IACA,IAAIzH,aAAa,CAACuF,SAAS,EAAE;AAAA,MAAA,IAAA,qBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,cAAA,CAAA;MAC3B,CAAI,qBAAA,GAAA,CAAA,aAAA,GAAA,IAAA,CAAC5G,OAAO,EAAC4G,SAAS,qBAAtB,qBAAyB,CAAA,IAAA,CAAA,aAAA,EAAAzG,oDAAA,CAAA,IAAI,EAAgBuE,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,IAAI,CAAE,CAAA;MACnD,CAAI,qBAAA,GAAA,CAAA,cAAA,GAAA,IAAA,CAAC1E,OAAO,EAAC+I,SAAS,KAAA,IAAA,GAAA,KAAA,CAAA,GAAtB,qBAAyB,CAAA,IAAA,CAAA,cAAA,EAAA5I,oDAAA,CAAA,IAAI,EAAgBuE,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,IAAI,EAAE,IAAI,CAAC,CAAA;AAC1D,KAAC,MAAM,IAAIrD,aAAa,CAAC0F,OAAO,EAAE;AAAA,MAAA,IAAA,qBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,CAAA;MAChC,CAAI,qBAAA,GAAA,CAAA,cAAA,GAAA,IAAA,CAAC/G,OAAO,EAAC+G,OAAO,qBAApB,qBAAuB,CAAA,IAAA,CAAA,cAAA,EAAA5G,oDAAA,CAAA,IAAI,EAAgBkE,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,KAAK,CAAE,CAAA;MAClD,CAAI,sBAAA,GAAA,CAAA,cAAA,GAAA,IAAA,CAACrE,OAAO,EAAC+I,SAAS,KAAA,IAAA,GAAA,KAAA,CAAA,GAAtB,sBAAyB9I,CAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAS,EAAEE,oDAAA,CAAA,IAAI,EAAgBkE,cAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAAAA,KAAK,CAAC,CAAA;AAChE,KAAA;;AAEA;IACA,IAAIhD,aAAa,CAACZ,SAAS,EAAE;AAC3B,MAAA,IAAI,CAACA,SAAS,CAACuC,OAAO,CAAEgG,QAAQ,IAAK;QACnCA,QAAQ,CAAA7I,oDAAA,CAAC,IAAI,EAAgB,cAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA;AAC/B,OAAC,CAAC,CAAA;AACJ,KAAA;;AAEA;AACA,IAAAA,oDAAA,CAAA,IAAI,EAASuB,OAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,aAAa,EAAE,CAACC,MAAM,CAAC;MAClCE,KAAK,EAAA1B,oDAAA,CAAE,IAAI,EAAc,aAAA,CAAA,CAAA,aAAA,CAAA;AACzByB,MAAAA,IAAI,EAAE,wBAAA;AACR,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACJ,CAAA;AAGF,SAASqH,iBAAiB,CACxBpH,KAAgC,EAChC7B,OAAiD,EACxC;EACT,OACEA,OAAO,CAAC+B,OAAO,KAAK,KAAK,IACzB,CAACF,KAAK,CAACuC,KAAK,CAACY,aAAa,IAC1B,EAAEnD,KAAK,CAACuC,KAAK,CAACI,MAAM,KAAK,OAAO,IAAIxE,OAAO,CAACkJ,YAAY,KAAK,KAAK,CAAC,CAAA;AAEvE,CAAA;AAEA,SAAStI,kBAAkB,CACzBiB,KAAgC,EAChC7B,OAAsD,EAC7C;EACT,OACEiJ,iBAAiB,CAACpH,KAAK,EAAE7B,OAAO,CAAC,IAChC6B,KAAK,CAACuC,KAAK,CAACY,aAAa,GAAG,CAAC,IAC5BhE,aAAa,CAACa,KAAK,EAAE7B,OAAO,EAAEA,OAAO,CAACmJ,cAAc,CAAE,CAAA;AAE5D,CAAA;AAEA,SAASnI,aAAa,CACpBa,KAAgC,EAChC7B,OAAsD,EACtDoJ,KAEwC,EACxC;AACA,EAAA,IAAIpJ,OAAO,CAAC+B,OAAO,KAAK,KAAK,EAAE;AAC7B,IAAA,MAAMsH,KAAK,GAAG,OAAOD,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACvH,KAAK,CAAC,GAAGuH,KAAK,CAAA;AAEhE,IAAA,OAAOC,KAAK,KAAK,QAAQ,IAAKA,KAAK,KAAK,KAAK,IAAI5C,OAAO,CAAC5E,KAAK,EAAE7B,OAAO,CAAE,CAAA;AAC3E,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,CAAA;AAEA,SAASoC,qBAAqB,CAC5BP,KAAgC,EAChCN,SAAoC,EACpCvB,OAAsD,EACtDsB,WAA0D,EACjD;AACT,EAAA,OACEtB,OAAO,CAAC+B,OAAO,KAAK,KAAK,KACxBF,KAAK,KAAKN,SAAS,IAAID,WAAW,CAACS,OAAO,KAAK,KAAK,CAAC,KACrD,CAAC/B,OAAO,CAACsJ,QAAQ,IAAIzH,KAAK,CAACuC,KAAK,CAACI,MAAM,KAAK,OAAO,CAAC,IACrDiC,OAAO,CAAC5E,KAAK,EAAE7B,OAAO,CAAC,CAAA;AAE3B,CAAA;AAEA,SAASyG,OAAO,CACd5E,KAAgC,EAChC7B,OAAsD,EAC7C;AACT,EAAA,OAAO6B,KAAK,CAAC0H,aAAa,CAACvJ,OAAO,CAACqC,SAAS,CAAC,CAAA;AAC/C;;;;"}
@@ -11,10 +11,12 @@ class QueryObserver extends Subscribable {
11
11
  #currentResult = undefined;
12
12
  #currentResultState;
13
13
  #currentResultOptions;
14
- #previousQueryResult;
15
14
  #selectError;
16
15
  #selectFn;
17
16
  #selectResult;
17
+ // This property keeps track of the last defined query data.
18
+ // It will be used to pass the previous data to the placeholder function between renders.
19
+ #lastDefinedQueryData;
18
20
  #staleTimeoutId;
19
21
  #refetchIntervalId;
20
22
  #currentRefetchInterval;
@@ -209,7 +211,6 @@ class QueryObserver extends Subscribable {
209
211
  const prevResultOptions = this.#currentResultOptions;
210
212
  const queryChange = query !== prevQuery;
211
213
  const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;
212
- const prevQueryResult = queryChange ? this.#currentResult : this.#previousQueryResult;
213
214
  const {
214
215
  state
215
216
  } = query;
@@ -268,7 +269,7 @@ class QueryObserver extends Subscribable {
268
269
  if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {
269
270
  placeholderData = prevResult.data;
270
271
  } else {
271
- placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(prevQueryResult?.data) : options.placeholderData;
272
+ placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(this.#lastDefinedQueryData) : options.placeholderData;
272
273
  if (options.select && typeof placeholderData !== 'undefined') {
273
274
  try {
274
275
  placeholderData = options.select(placeholderData);
@@ -332,6 +333,9 @@ class QueryObserver extends Subscribable {
332
333
  if (shallowEqualObjects(nextResult, prevResult)) {
333
334
  return;
334
335
  }
336
+ if (this.#currentResultState.data !== undefined) {
337
+ this.#lastDefinedQueryData = this.#currentResultState.data;
338
+ }
335
339
  this.#currentResult = nextResult;
336
340
 
337
341
  // Determine which callbacks to trigger
@@ -372,7 +376,6 @@ class QueryObserver extends Subscribable {
372
376
  const prevQuery = this.#currentQuery;
373
377
  this.#currentQuery = query;
374
378
  this.#currentQueryInitialState = query.state;
375
- this.#previousQueryResult = this.#currentResult;
376
379
  if (this.hasListeners()) {
377
380
  prevQuery?.removeObserver(this);
378
381
  query.addObserver(this);
@@ -1 +1 @@
1
- {"version":3,"file":"queryObserver.mjs","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #previousQueryResult?: QueryObserverResult<TData, TError>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = []\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval ?? false\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n const prevQueryResult = queryChange\n ? this.#currentResult\n : this.#previousQueryResult\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(prevQueryResult?.data as TQueryData | undefined)\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(prevResult?.data, placeholderData, options) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwErrors) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n this.#previousQueryResult = this.#currentResult\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","refetchInterval","data","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","prevQueryResult","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":";;;;;;AAuCO,MAAMA,aAAa,SAMhBC,YAAY,CAAuC;AAS3D,EAAA,OAAO,CAAA;EACP,aAAa,GAAuDC,SAAS,CAAA;EAC7E,yBAAyB,GAAmCA,SAAS,CAAA;EACrE,cAAc,GAAuCA,SAAS,CAAA;AAC9D,EAAA,mBAAmB,CAAA;AACnB,EAAA,qBAAqB,CAAA;AAOrB,EAAA,oBAAoB,CAAA;AACpB,EAAA,YAAY,CAAA;AACZ,EAAA,SAAS,CAAA;AACT,EAAA,aAAa,CAAA;AACb,EAAA,eAAe,CAAA;AACf,EAAA,kBAAkB,CAAA;AAClB,EAAA,uBAAuB,CAAA;AACvB,EAAA,aAAa,GAAmC,IAAIC,GAAG,EAAE,CAAA;AAEzDC,EAAAA,WAAW,CACTC,MAAmB,EACnBC,OAMC,EACD;AACA,IAAA,KAAK,EAAE,CAAA;AAEP,IAAA,IAAI,CAAC,OAAO,GAAGD,MAAM,CAAA;IACrB,IAAI,CAACC,OAAO,GAAGA,OAAO,CAAA;AACtB,IAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxB,IAAI,CAACC,WAAW,EAAE,CAAA;AAClB,IAAA,IAAI,CAACC,UAAU,CAACF,OAAO,CAAC,CAAA;AAC1B,GAAA;AAEUC,EAAAA,WAAW,GAAS;IAC5B,IAAI,CAACE,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AACxC,GAAA;AAEUC,EAAAA,WAAW,GAAS;AAC5B,IAAA,IAAI,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;AAC/B,MAAA,IAAI,CAAC,aAAa,CAACC,WAAW,CAAC,IAAI,CAAC,CAAA;MAEpC,IAAIC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAACT,OAAO,CAAC,EAAE;QACxD,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;MAEA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;AACF,GAAA;AAEUU,EAAAA,aAAa,GAAS;AAC9B,IAAA,IAAI,CAAC,IAAI,CAACJ,SAAS,CAACC,MAAM,EAAE;MAC1B,IAAI,CAACI,OAAO,EAAE,CAAA;AAChB,KAAA;AACF,GAAA;AAEAC,EAAAA,sBAAsB,GAAY;AAChC,IAAA,OAAOC,aAAa,CAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAACb,OAAO,EACZ,IAAI,CAACA,OAAO,CAACc,kBAAkB,CAChC,CAAA;AACH,GAAA;AAEAC,EAAAA,wBAAwB,GAAY;AAClC,IAAA,OAAOF,aAAa,CAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAACb,OAAO,EACZ,IAAI,CAACA,OAAO,CAACgB,oBAAoB,CAClC,CAAA;AACH,GAAA;AAEAL,EAAAA,OAAO,GAAS;IACd,IAAI,CAACL,SAAS,GAAG,EAAE,CAAA;IACnB,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACzB,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,IAAA,IAAI,CAAC,aAAa,CAACW,cAAc,CAAC,IAAI,CAAC,CAAA;AACzC,GAAA;AAEAf,EAAAA,UAAU,CACRF,OAMC,EACDkB,aAA6B,EACvB;AACN,IAAA,MAAMC,WAAW,GAAG,IAAI,CAACnB,OAAO,CAAA;AAChC,IAAA,MAAMoB,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;IAEpC,IAAI,CAACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAACqB,mBAAmB,CAACrB,OAAO,CAAC,CAAA;IAExD,IAAI,CAACsB,mBAAmB,CAACH,WAAW,EAAE,IAAI,CAACnB,OAAO,CAAC,EAAE;MACnD,IAAI,CAAC,OAAO,CAACuB,aAAa,EAAE,CAACC,MAAM,CAAC;AAClCC,QAAAA,IAAI,EAAE,wBAAwB;AAC9BC,QAAAA,KAAK,EAAE,IAAI,CAAC,aAAa;AACzBC,QAAAA,QAAQ,EAAE,IAAA;AACZ,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,IACE,OAAO,IAAI,CAAC3B,OAAO,CAAC4B,OAAO,KAAK,WAAW,IAC3C,OAAO,IAAI,CAAC5B,OAAO,CAAC4B,OAAO,KAAK,SAAS,EACzC;AACA,MAAA,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACrD,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC,IAAI,CAAC7B,OAAO,CAAC8B,QAAQ,EAAE;AAC1B,MAAA,IAAI,CAAC9B,OAAO,CAAC8B,QAAQ,GAAGX,WAAW,CAACW,QAAQ,CAAA;AAC9C,KAAA;IAEA,IAAI,CAAC,YAAY,EAAE,CAAA;AAEnB,IAAA,MAAMC,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;;AAEnC;AACA,IAAA,IACED,OAAO,IACPE,qBAAqB,CACnB,IAAI,CAAC,aAAa,EAClBb,SAAS,EACT,IAAI,CAACpB,OAAO,EACZmB,WAAW,CACZ,EACD;MACA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;;AAEA;AACA,IAAA,IAAI,CAAC,aAAa,CAACD,aAAa,CAAC,CAAA;;AAEjC;AACA,IAAA,IACEa,OAAO,KACN,IAAI,CAAC,aAAa,KAAKX,SAAS,IAC/B,IAAI,CAACpB,OAAO,CAAC4B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5C,IAAI,CAAC5B,OAAO,CAACkC,SAAS,KAAKf,WAAW,CAACe,SAAS,CAAC,EACnD;MACA,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC5B,KAAA;AAEA,IAAA,MAAMC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAA;;AAE1D;IACA,IACEJ,OAAO,KACN,IAAI,CAAC,aAAa,KAAKX,SAAS,IAC/B,IAAI,CAACpB,OAAO,CAAC4B,OAAO,KAAKT,WAAW,CAACS,OAAO,IAC5CO,mBAAmB,KAAK,IAAI,CAAC,uBAAuB,CAAC,EACvD;AACA,MAAA,IAAI,CAAC,sBAAsB,CAACA,mBAAmB,CAAC,CAAA;AAClD,KAAA;AACF,GAAA;EAEAC,mBAAmB,CACjBpC,OAMC,EACmC;AACpC,IAAA,MAAM0B,KAAK,GAAG,IAAI,CAAC,OAAO,CAACH,aAAa,EAAE,CAACc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAErC,OAAO,CAAC,CAAA;AAEvE,IAAA,OAAO,IAAI,CAACsC,YAAY,CAACZ,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAC1C,GAAA;AAEAuC,EAAAA,gBAAgB,GAAuC;IACrD,OAAO,IAAI,CAAC,cAAc,CAAA;AAC5B,GAAA;EAEAC,WAAW,CACTC,MAA0C,EACN;IACpC,MAAMC,aAAa,GAAG,EAAwC,CAAA;IAE9DC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,OAAO,CAAEC,GAAG,IAAK;AACnCH,MAAAA,MAAM,CAACI,cAAc,CAACL,aAAa,EAAEI,GAAG,EAAE;AACxCE,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,GAAG,EAAE,MAAM;AACT,UAAA,IAAI,CAAC,aAAa,CAACC,GAAG,CAACL,GAAG,CAA8B,CAAA;UACxD,OAAOL,MAAM,CAACK,GAAG,CAA8B,CAAA;AACjD,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOJ,aAAa,CAAA;AACtB,GAAA;AAEAU,EAAAA,eAAe,GAAuD;IACpE,OAAO,IAAI,CAAC,aAAa,CAAA;AAC3B,GAAA;AAEAjD,EAAAA,OAAO,CAAC;IAAE,GAAGH,OAAAA;GAAyB,GAAG,EAAE,EAEzC;IACA,OAAO,IAAI,CAACqD,KAAK,CAAC;MAChB,GAAGrD,OAAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAsD,eAAe,CACbtD,OAMC,EAC4C;IAC7C,MAAMuD,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAClC,mBAAmB,CAACrB,OAAO,CAAC,CAAA;AAElE,IAAA,MAAM0B,KAAK,GAAG,IAAI,CAAC,OAAO,CACvBH,aAAa,EAAE,CACfc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAEkB,gBAAgB,CAAC,CAAA;IACxC7B,KAAK,CAAC8B,oBAAoB,GAAG,IAAI,CAAA;AAEjC,IAAA,OAAO9B,KAAK,CAAC2B,KAAK,EAAE,CAACI,IAAI,CAAC,MAAM,IAAI,CAACnB,YAAY,CAACZ,KAAK,EAAE6B,gBAAgB,CAAC,CAAC,CAAA;AAC7E,GAAA;EAEUF,KAAK,CACbK,YAAkC,EACW;AAC7C,IAAA,OAAO,IAAI,CAAC,aAAa,CAAC;AACxB,MAAA,GAAGA,YAAY;AACfC,MAAAA,aAAa,EAAED,YAAY,CAACC,aAAa,IAAI,IAAA;AAC/C,KAAC,CAAC,CAACF,IAAI,CAAC,MAAM;MACZ,IAAI,CAAC,aAAa,EAAE,CAAA;MACpB,OAAO,IAAI,CAAC,cAAc,CAAA;AAC5B,KAAC,CAAC,CAAA;AACJ,GAAA;EAEA,aAAa,CACXC,YAAmC,EACF;AACjC;IACA,IAAI,CAAC,YAAY,EAAE,CAAA;;AAEnB;AACA,IAAA,IAAIE,OAAwC,GAAG,IAAI,CAAC,aAAa,CAACP,KAAK,CACrE,IAAI,CAACrD,OAAO,EACZ0D,YAAY,CACb,CAAA;AAED,IAAA,IAAI,CAACA,YAAY,EAAEG,YAAY,EAAE;AAC/BD,MAAAA,OAAO,GAAGA,OAAO,CAACE,KAAK,CAACC,IAAI,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,OAAOH,OAAO,CAAA;AAChB,GAAA;AAEA,EAAA,mBAAmB,GAAS;IAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAEzB,IAAA,IACEI,QAAQ,IACR,IAAI,CAAC,cAAc,CAACC,OAAO,IAC3B,CAACC,cAAc,CAAC,IAAI,CAAClE,OAAO,CAACkC,SAAS,CAAC,EACvC;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMiC,IAAI,GAAGC,cAAc,CACzB,IAAI,CAAC,cAAc,CAACC,aAAa,EACjC,IAAI,CAACrE,OAAO,CAACkC,SAAS,CACvB,CAAA;;AAED;AACA;AACA,IAAA,MAAMoC,OAAO,GAAGH,IAAI,GAAG,CAAC,CAAA;AAExB,IAAA,IAAI,CAAC,eAAe,GAAGI,UAAU,CAAC,MAAM;AACtC,MAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAACN,OAAO,EAAE;QAChC,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;KACD,EAAEK,OAAO,CAAC,CAAA;AACb,GAAA;AAEA,EAAA,uBAAuB,GAAG;AACxB,IAAA,OAAO,OAAO,IAAI,CAACtE,OAAO,CAACwE,eAAe,KAAK,UAAU,GACrD,IAAI,CAACxE,OAAO,CAACwE,eAAe,CAC1B,IAAI,CAAC,cAAc,CAACC,IAAI,EACxB,IAAI,CAAC,aAAa,CACnB,GACD,IAAI,CAACzE,OAAO,CAACwE,eAAe,IAAI,KAAK,CAAA;AAC3C,GAAA;EAEA,sBAAsB,CAACE,YAA4B,EAAQ;IACzD,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAE5B,IAAA,IAAI,CAAC,uBAAuB,GAAGA,YAAY,CAAA;IAE3C,IACEV,QAAQ,IACR,IAAI,CAAChE,OAAO,CAAC4B,OAAO,KAAK,KAAK,IAC9B,CAACsC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAC7C,IAAI,CAAC,uBAAuB,KAAK,CAAC,EAClC;AACA,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC,kBAAkB,GAAGS,WAAW,CAAC,MAAM;MAC1C,IACE,IAAI,CAAC3E,OAAO,CAAC4E,2BAA2B,IACxCC,YAAY,CAACC,SAAS,EAAE,EACxB;QACA,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,OAAA;AACF,KAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;AAClC,GAAA;AAEA,EAAA,aAAa,GAAS;IACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAA;AAC7D,GAAA;AAEA,EAAA,kBAAkB,GAAS;AACzB,IAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxBC,MAAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AAClC,MAAA,IAAI,CAAC,eAAe,GAAGnF,SAAS,CAAA;AAClC,KAAA;AACF,GAAA;AAEA,EAAA,qBAAqB,GAAS;AAC5B,IAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3BoF,MAAAA,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AACtC,MAAA,IAAI,CAAC,kBAAkB,GAAGpF,SAAS,CAAA;AACrC,KAAA;AACF,GAAA;AAEU0C,EAAAA,YAAY,CACpBZ,KAAyD,EACzD1B,OAMC,EACmC;AACpC,IAAA,MAAMoB,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;AACpC,IAAA,MAAMD,WAAW,GAAG,IAAI,CAACnB,OAAO,CAAA;AAChC,IAAA,MAAMiF,UAAU,GAAG,IAAI,CAAC,cAEX,CAAA;AACb,IAAA,MAAMC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAA;AAChD,IAAA,MAAMC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAA;AACpD,IAAA,MAAMC,WAAW,GAAG1D,KAAK,KAAKN,SAAS,CAAA;IACvC,MAAMiE,iBAAiB,GAAGD,WAAW,GACjC1D,KAAK,CAAC4D,KAAK,GACX,IAAI,CAAC,yBAAyB,CAAA;AAClC,IAAA,MAAMC,eAAe,GAAGH,WAAW,GAC/B,IAAI,CAAC,cAAc,GACnB,IAAI,CAAC,oBAAoB,CAAA;IAE7B,MAAM;AAAEE,MAAAA,KAAAA;AAAM,KAAC,GAAG5D,KAAK,CAAA;IACvB,IAAI;MAAE8D,KAAK;MAAEC,cAAc;MAAEC,WAAW;AAAEC,MAAAA,MAAAA;AAAO,KAAC,GAAGL,KAAK,CAAA;IAC1D,IAAIM,iBAAiB,GAAG,KAAK,CAAA;AAC7B,IAAA,IAAInB,IAAuB,CAAA;;AAE3B;IACA,IAAIzE,OAAO,CAAC6F,kBAAkB,EAAE;AAC9B,MAAA,MAAM9D,OAAO,GAAG,IAAI,CAACC,YAAY,EAAE,CAAA;MAEnC,MAAM8D,YAAY,GAAG,CAAC/D,OAAO,IAAItB,kBAAkB,CAACiB,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAEnE,MAAA,MAAM+F,eAAe,GACnBhE,OAAO,IAAIE,qBAAqB,CAACP,KAAK,EAAEN,SAAS,EAAEpB,OAAO,EAAEmB,WAAW,CAAC,CAAA;MAE1E,IAAI2E,YAAY,IAAIC,eAAe,EAAE;AACnCL,QAAAA,WAAW,GAAGM,QAAQ,CAACtE,KAAK,CAAC1B,OAAO,CAACiG,WAAW,CAAC,GAC7C,UAAU,GACV,QAAQ,CAAA;AACZ,QAAA,IAAI,CAACX,KAAK,CAACjB,aAAa,EAAE;AACxBsB,UAAAA,MAAM,GAAG,SAAS,CAAA;AACpB,SAAA;AACF,OAAA;AACA,MAAA,IAAI3F,OAAO,CAAC6F,kBAAkB,KAAK,aAAa,EAAE;AAChDH,QAAAA,WAAW,GAAG,MAAM,CAAA;AACtB,OAAA;AACF,KAAA;;AAEA;IACA,IAAI1F,OAAO,CAACkG,MAAM,IAAI,OAAOZ,KAAK,CAACb,IAAI,KAAK,WAAW,EAAE;AACvD;AACA,MAAA,IACEQ,UAAU,IACVK,KAAK,CAACb,IAAI,KAAKS,eAAe,EAAET,IAAI,IACpCzE,OAAO,CAACkG,MAAM,KAAK,IAAI,CAAC,SAAS,EACjC;AACAzB,QAAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AAC3B,OAAC,MAAM;QACL,IAAI;AACF,UAAA,IAAI,CAAC,SAAS,GAAGzE,OAAO,CAACkG,MAAM,CAAA;UAC/BzB,IAAI,GAAGzE,OAAO,CAACkG,MAAM,CAACZ,KAAK,CAACb,IAAI,CAAC,CAAA;UACjCA,IAAI,GAAG0B,WAAW,CAAClB,UAAU,EAAER,IAAI,EAAEA,IAAI,EAAEzE,OAAO,CAAC,CAAA;AACnD,UAAA,IAAI,CAAC,aAAa,GAAGyE,IAAI,CAAA;AACzB,UAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;SACzB,CAAC,OAAO2B,WAAW,EAAE;AACpB,UAAA,IAAI,CAAC,YAAY,GAAGA,WAAqB,CAAA;AAC3C,SAAA;AACF,OAAA;AACF,KAAA;AACA;SACK;MACH3B,IAAI,GAAGa,KAAK,CAACb,IAAwB,CAAA;AACvC,KAAA;;AAEA;AACA,IAAA,IACE,OAAOzE,OAAO,CAACqG,eAAe,KAAK,WAAW,IAC9C,OAAO5B,IAAI,KAAK,WAAW,IAC3BkB,MAAM,KAAK,SAAS,EACpB;AACA,MAAA,IAAIU,eAAe,CAAA;;AAEnB;MACA,IACEpB,UAAU,EAAEW,iBAAiB,IAC7B5F,OAAO,CAACqG,eAAe,KAAKlB,iBAAiB,EAAEkB,eAAe,EAC9D;QACAA,eAAe,GAAGpB,UAAU,CAACR,IAAI,CAAA;AACnC,OAAC,MAAM;AACL4B,QAAAA,eAAe,GACb,OAAOrG,OAAO,CAACqG,eAAe,KAAK,UAAU,GAEvCrG,OAAO,CAACqG,eAAe,CACvBd,eAAe,EAAEd,IAAI,CAA2B,GAClDzE,OAAO,CAACqG,eAAe,CAAA;QAC7B,IAAIrG,OAAO,CAACkG,MAAM,IAAI,OAAOG,eAAe,KAAK,WAAW,EAAE;UAC5D,IAAI;AACFA,YAAAA,eAAe,GAAGrG,OAAO,CAACkG,MAAM,CAACG,eAAe,CAAC,CAAA;AACjD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;WACzB,CAAC,OAAOD,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,GAAGA,WAAqB,CAAA;AAC3C,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,IAAI,OAAOC,eAAe,KAAK,WAAW,EAAE;AAC1CV,QAAAA,MAAM,GAAG,SAAS,CAAA;QAClBlB,IAAI,GAAG0B,WAAW,CAAClB,UAAU,EAAER,IAAI,EAAE4B,eAAe,EAAErG,OAAO,CAAU,CAAA;AACvE4F,QAAAA,iBAAiB,GAAG,IAAI,CAAA;AAC1B,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrBJ,MAAAA,KAAK,GAAG,IAAI,CAAC,YAAmB,CAAA;AAChCf,MAAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AACzBgB,MAAAA,cAAc,GAAGa,IAAI,CAACC,GAAG,EAAE,CAAA;AAC3BZ,MAAAA,MAAM,GAAG,OAAO,CAAA;AAClB,KAAA;AAEA,IAAA,MAAMa,UAAU,GAAGd,WAAW,KAAK,UAAU,CAAA;AAC7C,IAAA,MAAMe,SAAS,GAAGd,MAAM,KAAK,SAAS,CAAA;AACtC,IAAA,MAAMe,OAAO,GAAGf,MAAM,KAAK,OAAO,CAAA;AAElC,IAAA,MAAMgB,SAAS,GAAGF,SAAS,IAAID,UAAU,CAAA;AAEzC,IAAA,MAAM/D,MAA8C,GAAG;MACrDkD,MAAM;MACND,WAAW;MACXe,SAAS;MACTG,SAAS,EAAEjB,MAAM,KAAK,SAAS;MAC/Be,OAAO;AACPG,MAAAA,gBAAgB,EAAEF,SAAS;MAC3BA,SAAS;MACTlC,IAAI;MACJJ,aAAa,EAAEiB,KAAK,CAACjB,aAAa;MAClCmB,KAAK;MACLC,cAAc;MACdqB,YAAY,EAAExB,KAAK,CAACyB,iBAAiB;MACrCC,aAAa,EAAE1B,KAAK,CAAC2B,kBAAkB;MACvCC,gBAAgB,EAAE5B,KAAK,CAAC4B,gBAAgB;MACxCC,SAAS,EAAE7B,KAAK,CAAC8B,eAAe,GAAG,CAAC,IAAI9B,KAAK,CAAC4B,gBAAgB,GAAG,CAAC;AAClEG,MAAAA,mBAAmB,EACjB/B,KAAK,CAAC8B,eAAe,GAAG/B,iBAAiB,CAAC+B,eAAe,IACzD9B,KAAK,CAAC4B,gBAAgB,GAAG7B,iBAAiB,CAAC6B,gBAAgB;MAC7DV,UAAU;AACVc,MAAAA,YAAY,EAAEd,UAAU,IAAI,CAACC,SAAS;AACtCc,MAAAA,cAAc,EAAEb,OAAO,IAAIpB,KAAK,CAACjB,aAAa,KAAK,CAAC;MACpDmD,QAAQ,EAAE9B,WAAW,KAAK,QAAQ;MAClCE,iBAAiB;AACjB6B,MAAAA,cAAc,EAAEf,OAAO,IAAIpB,KAAK,CAACjB,aAAa,KAAK,CAAC;AACpDJ,MAAAA,OAAO,EAAEA,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAC;MAChCG,OAAO,EAAE,IAAI,CAACA,OAAAA;KACf,CAAA;AAED,IAAA,OAAOsC,MAAM,CAAA;AACf,GAAA;EAEA,aAAa,CAACvB,aAA6B,EAAQ;AACjD,IAAA,MAAM+D,UAAU,GAAG,IAAI,CAAC,cAEX,CAAA;AAEb,IAAA,MAAMyC,UAAU,GAAG,IAAI,CAACpF,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAACtC,OAAO,CAAC,CAAA;IACtE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAACsF,KAAK,CAAA;AACnD,IAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAACtF,OAAO,CAAA;;AAEzC;AACA,IAAA,IAAIsB,mBAAmB,CAACoG,UAAU,EAAEzC,UAAU,CAAC,EAAE;AAC/C,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAI,CAAC,cAAc,GAAGyC,UAAU,CAAA;;AAEhC;IACA,MAAMC,oBAAmC,GAAG,EAAE,CAAA;IAE9C,MAAMC,qBAAqB,GAAG,MAAe;MAC3C,IAAI,CAAC3C,UAAU,EAAE;AACf,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;MAEA,MAAM;AAAE4C,QAAAA,mBAAAA;OAAqB,GAAG,IAAI,CAAC7H,OAAO,CAAA;AAE5C,MAAA,IACE6H,mBAAmB,KAAK,KAAK,IAC5B,CAACA,mBAAmB,IAAI,CAAC,IAAI,CAAC,aAAa,CAACC,IAAK,EAClD;AACA,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;MAEA,MAAMC,aAAa,GAAG,IAAIlI,GAAG,CAACgI,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAA;AAExE,MAAA,IAAI,IAAI,CAAC7H,OAAO,CAACgI,WAAW,EAAE;AAC5BD,QAAAA,aAAa,CAAC5E,GAAG,CAAC,OAAO,CAAC,CAAA;AAC5B,OAAA;AAEA,MAAA,OAAOR,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAACqF,IAAI,CAAEnF,GAAG,IAAK;QACpD,MAAMoF,QAAQ,GAAGpF,GAAgC,CAAA;AACjD,QAAA,MAAMqF,OAAO,GAAG,IAAI,CAAC,cAAc,CAACD,QAAQ,CAAC,KAAKjD,UAAU,CAACiD,QAAQ,CAAC,CAAA;AACtE,QAAA,OAAOC,OAAO,IAAIJ,aAAa,CAACK,GAAG,CAACF,QAAQ,CAAC,CAAA;AAC/C,OAAC,CAAC,CAAA;KACH,CAAA;IAED,IAAIhH,aAAa,EAAEZ,SAAS,KAAK,KAAK,IAAIsH,qBAAqB,EAAE,EAAE;MACjED,oBAAoB,CAACrH,SAAS,GAAG,IAAI,CAAA;AACvC,KAAA;IAEA,IAAI,CAAC,OAAO,CAAC;AAAE,MAAA,GAAGqH,oBAAoB;MAAE,GAAGzG,aAAAA;AAAc,KAAC,CAAC,CAAA;AAC7D,GAAA;AAEA,EAAA,YAAY,GAAS;IACnB,MAAMQ,KAAK,GAAG,IAAI,CAAC,OAAO,CAACH,aAAa,EAAE,CAACc,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAACrC,OAAO,CAAC,CAAA;AAE5E,IAAA,IAAI0B,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;AAChC,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMN,SAAS,GAAG,IAAI,CAAC,aAEV,CAAA;AACb,IAAA,IAAI,CAAC,aAAa,GAAGM,KAAK,CAAA;AAC1B,IAAA,IAAI,CAAC,yBAAyB,GAAGA,KAAK,CAAC4D,KAAK,CAAA;AAC5C,IAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAA;AAE/C,IAAA,IAAI,IAAI,CAACtD,YAAY,EAAE,EAAE;AACvBZ,MAAAA,SAAS,EAAEH,cAAc,CAAC,IAAI,CAAC,CAAA;AAC/BS,MAAAA,KAAK,CAAClB,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;EAEA6H,aAAa,CAACC,MAA6B,EAAQ;IACjD,MAAMpH,aAA4B,GAAG,EAAE,CAAA;AAEvC,IAAA,IAAIoH,MAAM,CAAC7G,IAAI,KAAK,SAAS,EAAE;AAC7BP,MAAAA,aAAa,CAACqH,SAAS,GAAG,CAACD,MAAM,CAACE,MAAM,CAAA;AAC1C,KAAC,MAAM,IAAIF,MAAM,CAAC7G,IAAI,KAAK,OAAO,IAAI,CAACgH,gBAAgB,CAACH,MAAM,CAAC9C,KAAK,CAAC,EAAE;MACrEtE,aAAa,CAACwH,OAAO,GAAG,IAAI,CAAA;AAC9B,KAAA;AAEA,IAAA,IAAI,CAAC,aAAa,CAACxH,aAAa,CAAC,CAAA;AAEjC,IAAA,IAAI,IAAI,CAACc,YAAY,EAAE,EAAE;MACvB,IAAI,CAAC,aAAa,EAAE,CAAA;AACtB,KAAA;AACF,GAAA;EAEA,OAAO,CAACd,aAA4B,EAAQ;IAC1CyH,aAAa,CAACC,KAAK,CAAC,MAAM;AACxB;MACA,IAAI1H,aAAa,CAACqH,SAAS,EAAE;QAC3B,IAAI,CAACvI,OAAO,CAACuI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC9D,IAAI,CAAE,CAAA;AACnD,QAAA,IAAI,CAACzE,OAAO,CAAC6I,SAAS,GAAG,IAAI,CAAC,cAAc,CAACpE,IAAI,EAAE,IAAI,CAAC,CAAA;AAC1D,OAAC,MAAM,IAAIvD,aAAa,CAACwH,OAAO,EAAE;QAChC,IAAI,CAAC1I,OAAO,CAAC0I,OAAO,GAAG,IAAI,CAAC,cAAc,CAAClD,KAAK,CAAE,CAAA;AAClD,QAAA,IAAI,CAACxF,OAAO,CAAC6I,SAAS,GAAGjJ,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC4F,KAAK,CAAC,CAAA;AAChE,OAAA;;AAEA;MACA,IAAItE,aAAa,CAACZ,SAAS,EAAE;AAC3B,QAAA,IAAI,CAACA,SAAS,CAACuC,OAAO,CAAEiG,QAAQ,IAAK;AACnCA,UAAAA,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;AACJ,OAAA;;AAEA;MACA,IAAI,CAAC,OAAO,CAACvH,aAAa,EAAE,CAACC,MAAM,CAAC;AAClCE,QAAAA,KAAK,EAAE,IAAI,CAAC,aAAa;AACzBD,QAAAA,IAAI,EAAE,wBAAA;AACR,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AAEA,SAASsH,iBAAiB,CACxBrH,KAAgC,EAChC1B,OAAiD,EACxC;EACT,OACEA,OAAO,CAAC4B,OAAO,KAAK,KAAK,IACzB,CAACF,KAAK,CAAC4D,KAAK,CAACjB,aAAa,IAC1B,EAAE3C,KAAK,CAAC4D,KAAK,CAACK,MAAM,KAAK,OAAO,IAAI3F,OAAO,CAACgJ,YAAY,KAAK,KAAK,CAAC,CAAA;AAEvE,CAAA;AAEA,SAASvI,kBAAkB,CACzBiB,KAAgC,EAChC1B,OAAsD,EAC7C;EACT,OACE+I,iBAAiB,CAACrH,KAAK,EAAE1B,OAAO,CAAC,IAChC0B,KAAK,CAAC4D,KAAK,CAACjB,aAAa,GAAG,CAAC,IAC5BxD,aAAa,CAACa,KAAK,EAAE1B,OAAO,EAAEA,OAAO,CAACiJ,cAAc,CAAE,CAAA;AAE5D,CAAA;AAEA,SAASpI,aAAa,CACpBa,KAAgC,EAChC1B,OAAsD,EACtDkJ,KAEwC,EACxC;AACA,EAAA,IAAIlJ,OAAO,CAAC4B,OAAO,KAAK,KAAK,EAAE;AAC7B,IAAA,MAAMuH,KAAK,GAAG,OAAOD,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACxH,KAAK,CAAC,GAAGwH,KAAK,CAAA;AAEhE,IAAA,OAAOC,KAAK,KAAK,QAAQ,IAAKA,KAAK,KAAK,KAAK,IAAIlF,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAE,CAAA;AAC3E,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,CAAA;AAEA,SAASiC,qBAAqB,CAC5BP,KAAgC,EAChCN,SAAoC,EACpCpB,OAAsD,EACtDmB,WAA0D,EACjD;AACT,EAAA,OACEnB,OAAO,CAAC4B,OAAO,KAAK,KAAK,KACxBF,KAAK,KAAKN,SAAS,IAAID,WAAW,CAACS,OAAO,KAAK,KAAK,CAAC,KACrD,CAAC5B,OAAO,CAACoJ,QAAQ,IAAI1H,KAAK,CAAC4D,KAAK,CAACK,MAAM,KAAK,OAAO,CAAC,IACrD1B,OAAO,CAACvC,KAAK,EAAE1B,OAAO,CAAC,CAAA;AAE3B,CAAA;AAEA,SAASiE,OAAO,CACdvC,KAAgC,EAChC1B,OAAsD,EAC7C;AACT,EAAA,OAAO0B,KAAK,CAAC2H,aAAa,CAACrJ,OAAO,CAACkC,SAAS,CAAC,CAAA;AAC/C;;;;"}
1
+ {"version":3,"file":"queryObserver.mjs","sources":["../../src/queryObserver.ts"],"sourcesContent":["import type { DefaultedQueryObserverOptions, DefaultError } from './types'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { notifyManager } from './notifyManager'\nimport type {\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n QueryOptions,\n RefetchOptions,\n} from './types'\nimport type { Query, QueryState, Action, FetchOptions } from './query'\nimport type { QueryClient } from './queryClient'\nimport { focusManager } from './focusManager'\nimport { Subscribable } from './subscribable'\nimport { canFetch, isCancelledError } from './retryer'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\nexport interface NotifyOptions {\n listeners?: boolean\n onError?: boolean\n onSuccess?: boolean\n}\n\nexport interface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last defined query data.\n // It will be used to pass the previous data to the placeholder function between renders.\n #lastDefinedQueryData?: TQueryData\n #staleTimeoutId?: ReturnType<typeof setTimeout>\n #refetchIntervalId?: ReturnType<typeof setInterval>\n #currentRefetchInterval?: number | false\n #trackedProps: Set<keyof QueryObserverResult> = new Set()\n\n constructor(\n client: QueryClient,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.options = options\n this.#selectError = null\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = []\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n notifyOptions?: NotifyOptions,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n if (\n typeof this.options.enabled !== 'undefined' &&\n typeof this.options.enabled !== 'boolean'\n ) {\n throw new Error('Expected enabled to be a boolean')\n }\n\n // Keep previous query key if the user does not supply one\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey\n }\n\n this.#updateQuery()\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.#updateResult(notifyOptions)\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n this.options.staleTime !== prevOptions.staleTime)\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n this.options.enabled !== prevOptions.enabled ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n return this.createResult(query, options)\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n ): QueryObserverResult<TData, TError> {\n const trackedResult = {} as QueryObserverResult<TData, TError>\n\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.#trackedProps.add(key as keyof QueryObserverResult)\n return result[key as keyof QueryObserverResult]\n },\n })\n })\n\n return trackedResult\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n query.isFetchingOptimistic = true\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.#updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: ObserverFetchOptions,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options as QueryOptions<TQueryFnData, TError, TQueryData, TQueryKey>,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n\n if (\n isServer ||\n this.#currentResult.isStale ||\n !isValidTimeout(this.options.staleTime)\n ) {\n return\n }\n\n const time = timeUntilStale(\n this.#currentResult.dataUpdatedAt,\n this.options.staleTime,\n )\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.#updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(\n this.#currentResult.data,\n this.#currentQuery,\n )\n : this.options.refetchInterval ?? false\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n this.options.enabled === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let { error, errorUpdatedAt, fetchStatus, status } = state\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode)\n ? 'fetching'\n : 'paused'\n if (!state.dataUpdatedAt) {\n status = 'pending'\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle'\n }\n }\n\n // Select data if needed\n if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (\n prevResult &&\n state.data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(state.data)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n // Use query data\n else {\n data = state.data as unknown as TData\n }\n\n // Show placeholder data if needed\n if (\n typeof options.placeholderData !== 'undefined' &&\n typeof data === 'undefined' &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n } else {\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(this.#lastDefinedQueryData)\n : options.placeholderData\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData)\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError as any\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: state.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount:\n state.dataUpdateCount > queryInitialState.dataUpdateCount ||\n state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n }\n\n return result as QueryObserverResult<TData, TError>\n }\n\n #updateResult(notifyOptions?: NotifyOptions): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastDefinedQueryData = this.#currentResultState.data\n }\n this.#currentResult = nextResult\n\n // Determine which callbacks to trigger\n const defaultNotifyOptions: NotifyOptions = {}\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n\n if (\n notifyOnChangeProps === 'all' ||\n (!notifyOnChangeProps && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(notifyOnChangeProps ?? this.#trackedProps)\n\n if (this.options.throwErrors) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n return changed && includedProps.has(typedKey)\n })\n }\n\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true\n }\n\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(action: Action<TData, TError>): void {\n const notifyOptions: NotifyOptions = {}\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true\n }\n\n this.#updateResult(notifyOptions)\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: NotifyOptions): void {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n this.options.onSuccess?.(this.#currentResult.data!)\n this.options.onSettled?.(this.#currentResult.data, null)\n } else if (notifyOptions.onError) {\n this.options.onError?.(this.#currentResult.error!)\n this.options.onSettled?.(undefined, this.#currentResult.error)\n }\n\n // Then trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n !query.state.dataUpdatedAt &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.dataUpdatedAt > 0 &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n options.enabled !== false &&\n (query !== prevQuery || prevOptions.enabled === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return query.isStaleByTime(options.staleTime)\n}\n"],"names":["QueryObserver","Subscribable","undefined","Set","constructor","client","options","bindMethods","setOptions","refetch","bind","onSubscribe","listeners","length","addObserver","shouldFetchOnMount","onUnsubscribe","destroy","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","removeObserver","notifyOptions","prevOptions","prevQuery","defaultQueryOptions","shallowEqualObjects","getQueryCache","notify","type","query","observer","enabled","Error","queryKey","mounted","hasListeners","shouldFetchOptionally","staleTime","nextRefetchInterval","getOptimisticResult","build","createResult","getCurrentResult","trackResult","result","trackedResult","Object","keys","forEach","key","defineProperty","configurable","enumerable","get","add","getCurrentQuery","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","then","fetchOptions","cancelRefetch","promise","throwOnError","catch","noop","isServer","isStale","isValidTimeout","time","timeUntilStale","dataUpdatedAt","timeout","setTimeout","refetchInterval","data","nextInterval","setInterval","refetchIntervalInBackground","focusManager","isFocused","clearTimeout","clearInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","state","error","errorUpdatedAt","fetchStatus","status","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","canFetch","networkMode","select","replaceData","selectError","placeholderData","Date","now","isFetching","isPending","isError","isLoading","isSuccess","isInitialLoading","failureCount","fetchFailureCount","failureReason","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isPaused","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","size","includedProps","throwErrors","some","typedKey","changed","has","onQueryUpdate","action","onSuccess","manual","isCancelledError","onError","notifyManager","batch","onSettled","listener","shouldLoadOnMount","retryOnMount","refetchOnMount","field","value","suspense","isStaleByTime"],"mappings":"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"}
@@ -1850,10 +1850,12 @@
1850
1850
  #currentResult = undefined;
1851
1851
  #currentResultState;
1852
1852
  #currentResultOptions;
1853
- #previousQueryResult;
1854
1853
  #selectError;
1855
1854
  #selectFn;
1856
1855
  #selectResult;
1856
+ // This property keeps track of the last defined query data.
1857
+ // It will be used to pass the previous data to the placeholder function between renders.
1858
+ #lastDefinedQueryData;
1857
1859
  #staleTimeoutId;
1858
1860
  #refetchIntervalId;
1859
1861
  #currentRefetchInterval;
@@ -2048,7 +2050,6 @@
2048
2050
  const prevResultOptions = this.#currentResultOptions;
2049
2051
  const queryChange = query !== prevQuery;
2050
2052
  const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;
2051
- const prevQueryResult = queryChange ? this.#currentResult : this.#previousQueryResult;
2052
2053
  const {
2053
2054
  state
2054
2055
  } = query;
@@ -2107,7 +2108,7 @@
2107
2108
  if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {
2108
2109
  placeholderData = prevResult.data;
2109
2110
  } else {
2110
- placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(prevQueryResult?.data) : options.placeholderData;
2111
+ placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData(this.#lastDefinedQueryData) : options.placeholderData;
2111
2112
  if (options.select && typeof placeholderData !== 'undefined') {
2112
2113
  try {
2113
2114
  placeholderData = options.select(placeholderData);
@@ -2171,6 +2172,9 @@
2171
2172
  if (shallowEqualObjects(nextResult, prevResult)) {
2172
2173
  return;
2173
2174
  }
2175
+ if (this.#currentResultState.data !== undefined) {
2176
+ this.#lastDefinedQueryData = this.#currentResultState.data;
2177
+ }
2174
2178
  this.#currentResult = nextResult;
2175
2179
 
2176
2180
  // Determine which callbacks to trigger
@@ -2211,7 +2215,6 @@
2211
2215
  const prevQuery = this.#currentQuery;
2212
2216
  this.#currentQuery = query;
2213
2217
  this.#currentQueryInitialState = query.state;
2214
- this.#previousQueryResult = this.#currentResult;
2215
2218
  if (this.hasListeners()) {
2216
2219
  prevQuery?.removeObserver(this);
2217
2220
  query.addObserver(this);