{"version":3,"file":"static/chunks/9900-a4285d028d34a2bf.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://_N_E/../../node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","webpack://_N_E/../../src/useSuspenseInfiniteQuery.ts","webpack://_N_E/../../node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/object/cloneDeep.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/error/AbortError.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/delay.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/error/TimeoutError.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/timeout.mjs","webpack://_N_E/../../node_modules/es-toolkit/dist/promise/withTimeout.mjs","webpack://_N_E/../src/InView.tsx","webpack://_N_E/../src/observe.ts","webpack://_N_E/../src/useInView.tsx"],"sourcesContent":["// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options, notifyOptions) {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior()\n },\n notifyOptions\n );\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","'use client'\nimport { InfiniteQueryObserver, skipToken } from '@tanstack/query-core'\nimport { useBaseQuery } from './useBaseQuery'\nimport { defaultThrowOnError } from './suspense'\nimport type {\n DefaultError,\n InfiniteData,\n InfiniteQueryObserverSuccessResult,\n QueryClient,\n QueryKey,\n QueryObserver,\n} from '@tanstack/query-core'\nimport type {\n UseSuspenseInfiniteQueryOptions,\n UseSuspenseInfiniteQueryResult,\n} from './types'\n\nexport function useSuspenseInfiniteQuery<\n TQueryFnData,\n TError = DefaultError,\n TData = InfiniteData,\n TQueryKey extends QueryKey = QueryKey,\n TPageParam = unknown,\n>(\n options: UseSuspenseInfiniteQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryFnData,\n TQueryKey,\n TPageParam\n >,\n queryClient?: QueryClient,\n): UseSuspenseInfiniteQueryResult {\n if (process.env.NODE_ENV !== 'production') {\n if ((options.queryFn as any) === skipToken) {\n console.error('skipToken is not allowed for useSuspenseInfiniteQuery')\n }\n }\n\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n },\n InfiniteQueryObserver as typeof QueryObserver,\n queryClient,\n ) as InfiniteQueryObserverSuccessResult\n}\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned != null) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n","class AbortError extends Error {\n constructor(message = 'The operation was aborted') {\n super(message);\n this.name = 'AbortError';\n }\n}\n\nexport { AbortError };\n","import { AbortError } from '../error/AbortError.mjs';\n\nfunction delay(ms, { signal } = {}) {\n return new Promise((resolve, reject) => {\n const abortError = () => {\n reject(new AbortError());\n };\n const abortHandler = () => {\n clearTimeout(timeoutId);\n abortError();\n };\n if (signal?.aborted) {\n return abortError();\n }\n const timeoutId = setTimeout(() => {\n signal?.removeEventListener('abort', abortHandler);\n resolve();\n }, ms);\n signal?.addEventListener('abort', abortHandler, { once: true });\n });\n}\n\nexport { delay };\n","class TimeoutError extends Error {\n constructor(message = 'The operation was timed out') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport { TimeoutError };\n","import { delay } from './delay.mjs';\nimport { TimeoutError } from '../error/TimeoutError.mjs';\n\nasync function timeout(ms) {\n await delay(ms);\n throw new TimeoutError();\n}\n\nexport { timeout };\n","import { timeout } from './timeout.mjs';\n\nasync function withTimeout(run, ms) {\n return Promise.race([run(), timeout(ms)]);\n}\n\nexport { withTimeout };\n","import * as React from \"react\";\nimport type { IntersectionObserverProps, PlainChildrenProps } from \"./index\";\nimport { observe } from \"./observe\";\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== \"function\";\n}\n\n/**\n ## Render props\n\n To use the `` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n \n {({ inView, ref, entry }) => (\n
\n

{`Header inside viewport ${inView}.`}

\n
\n )}\n
\n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the ``, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n console.log('Inview:', inView)}>\n

Plain children are always rendered. Use onChange to monitor state.

\n
\n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n }\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props as PlainChildrenProps;\n\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import type { ObserverInstanceCallback } from \"./index\";\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map>;\n }\n>();\n\nconst RootIds: WeakMap = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit[\"root\"]) {\n if (!root) return \"0\";\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter(\n (key) => options[key as keyof IntersectionObserverInit] !== undefined,\n )\n .map((key) => {\n return `${key}_${\n key === \"root\"\n ? getRootId(options.root)\n : options[key as keyof IntersectionObserverInit]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map>();\n // biome-ignore lint/style/useConst: It's fine to use let here, as we are going to assign it later\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === \"undefined\" &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from \"react\";\nimport type { InViewHookResponse, IntersectionOptions } from \"./index\";\nimport { observe } from \"./observe\";\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\n/**\n * React Hooks make it easy to monitor the `inView` state of your components. Call\n * the `useInView` hook with the (optional) [options](#options) you need. It will\n * return an array containing a `ref`, the `inView` status and the current\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\n * report the status.\n *\n * @example\n * ```jsx\n * import React from 'react';\n * import { useInView } from 'react-intersection-observer';\n *\n * const Component = () => {\n * const { ref, inView, entry } = useInView({\n * threshold: 0,\n * });\n *\n * return (\n *
\n *

{`Header inside viewport ${inView}.`}

\n *
\n * );\n * };\n * ```\n */\nexport function useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange,\n}: IntersectionOptions = {}): InViewHookResponse {\n const [ref, setRef] = React.useState(null);\n const callback = React.useRef(onChange);\n const [state, setState] = React.useState({\n inView: !!initialInView,\n entry: undefined,\n });\n\n // Store the onChange callback in a `ref`, so we can access the latest instance\n // inside the `useEffect`, but without triggering a rerender.\n callback.current = onChange;\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: threshold is not correctly detected as a dependency\n React.useEffect(\n () => {\n // Ensure we have node ref, and that we shouldn't skip observing\n if (skip || !ref) return;\n\n let unobserve: (() => void) | undefined;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry,\n });\n if (callback.current) callback.current(inView, entry);\n\n if (entry.isIntersecting && triggerOnce && unobserve) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve();\n unobserve = undefined;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay,\n ],\n );\n\n const entryTarget = state.entry?.target;\n const previousEntryTarget = React.useRef(undefined);\n if (\n !ref &&\n entryTarget &&\n !triggerOnce &&\n !skip &&\n previousEntryTarget.current !== entryTarget\n ) {\n // If we don't have a node ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: undefined,\n });\n }\n\n const result = [setRef, state.inView, state.entry] as InViewHookResponse;\n\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n\n return result;\n}\n"],"names":["infiniteQueryBehavior","pages","onFetch","context","query","options","direction","fetchOptions","meta","fetchMore","oldPages","state","data","oldPageParams","pageParams","result","currentPage","fetchFn","cancelled","addSignalProperty","Object","defineProperty","object","enumerable","get","signal","aborted","addEventListener","queryFn","_utils_js__WEBPACK_IMPORTED_MODULE_0__","cG","fetchPage","param","previous","Promise","reject","length","resolve","queryFnContext","client","queryKey","pageParam","page","maxPages","addTo","Ht","VX","oldData","pageParamFn","getPreviousPageParam","getNextPageParam","remainingPages","initialPageParam","persister","lastIndex","hasNextPage","hasPreviousPage","InfiniteQueryObserver","_queryObserver_js__WEBPACK_IMPORTED_MODULE_0__","z","constructor","bindMethods","fetchNextPage","bind","fetchPreviousPage","setOptions","notifyOptions","behavior","_infiniteQueryBehavior_js__WEBPACK_IMPORTED_MODULE_1__","Gm","getOptimisticResult","fetch","createResult","parentResult","isFetching","isRefetching","isError","isRefetchError","fetchDirection","fetchMeta","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","Qy","ZF","useSuspenseInfiniteQuery","queryClient","useBaseQuery","enabled","suspense","throwOnError","defaultThrowOnError","cloneDeepWithImpl","valueToClone","keyToClone","objectToClone","stack","Map","cloneValue","cloned","value","has","Array","isArray","set","i","hasOwn","index","input","Date","getTime","RegExp","source","flags","key","Set","add","undefined","Buffer","isBuffer","subarray","ArrayBuffer","isView","x","DataView","getPrototypeOf","SharedArrayBuffer","slice","buffer","byteOffset","byteLength","copyProperties","File","name","type","Blob","Error","message","cause","isCloneableObject","getTag","h","tags","mn","a4","LP","bZ","Vf","XU","yK","H1","Ey","CP","dB","b7","oV","P4","vu","YA","gH","WL","p_","Mw","kj","Fl","create","target","keys","getSymbols","descriptor","getOwnPropertyDescriptor","writable","cloneDeep","obj","AbortError","delay","ms","abortError","abortHandler","clearTimeout","timeoutId","setTimeout","removeEventListener","once","TimeoutError","timeout","g","withTimeout","run","race","observerMap","RootIds","WeakMap","rootId","unsupportedValue","useInView","_a","threshold","trackVisibility","rootMargin","root","triggerOnce","skip","initialInView","fallbackInView","onChange","arguments","ref","setRef","React2","callback","setState","inView","entry","current","unobserve","observe","element","window","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","intersectionRatio","time","boundingClientRect","intersectionRect","rootBounds","id","observer","elements","createObserver","sort","filter","map","concat","toString","instance","thresholds","entries","forEach","some","isVisible","callbacks","push","splice","indexOf","delete","size","disconnect","entryTarget","previousEntryTarget","React"],"sourceRoot":""}