virtua 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +5 -1
- /package/lib/core/{dom.d.ts → environment.d.ts} +0 -0
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/utils.ts","../src/core/cache.ts","../src/core/store.ts","../src/react/useIsomorphicLayoutEffect.ts","../src/react/utils.ts","../src/react/useLatestRef.ts","../src/react/useSelector.ts","../src/core/dom.ts","../src/core/scroller.ts","../src/react/useStatic.ts","../src/core/resizer.ts","../src/react/Viewport.tsx","../src/react/ListItem.tsx","../src/react/VList.tsx","../src/react/VGrid.tsx","../src/react/WVList.tsx"],"sourcesContent":["export const min = Math.min;\nexport const max = Math.max;\nexport const abs = Math.abs;\nexport const now = Date.now;\nexport const values = Object.values;\nexport const timeout = setTimeout;\nexport const clamp = (value, minValue, maxValue) => min(maxValue, max(minValue, value));\nexport const exists = (v) => v != null;\nexport const median = (arr) => {\n const s = [...arr].sort((a, b) => a - b);\n const mid = (arr.length / 2) | 0;\n return s.length % 2 === 0 ? (s[mid - 1] + s[mid]) / 2 : s[mid];\n};\nexport const debounce = (fn, ms) => {\n let id;\n const cancel = () => {\n if (exists(id)) {\n clearTimeout(id);\n }\n };\n const debouncedFn = () => {\n cancel();\n id = timeout(() => {\n id = null;\n fn();\n }, ms);\n };\n debouncedFn._cancel = cancel;\n return debouncedFn;\n};\nexport const throttle = (fn, ms) => {\n let time = now() - ms;\n return (...args) => {\n const n = now();\n if (time + ms < n) {\n time = n;\n fn(...args);\n }\n };\n};\nexport const once = (fn) => {\n let called;\n let cache;\n return ((...args) => {\n if (!called) {\n called = true;\n cache = fn(...args);\n }\n return cache;\n });\n};\n//# sourceMappingURL=utils.js.map","import { clamp, median, min } from \"./utils\";\nexport const UNCACHED = -1;\nexport const getItemSize = (cache, index) => {\n const size = cache._sizes[index];\n return size === UNCACHED ? cache._defaultItemSize : size;\n};\nexport const setItemSize = (cache, index, size) => {\n const isInitialMeasurement = cache._sizes[index] === UNCACHED;\n cache._sizes[index] = size;\n // mark as dirty\n cache._measuredOffsetIndex = min(index, cache._measuredOffsetIndex);\n return isInitialMeasurement;\n};\nexport const computeOffset = (cache, index) => {\n if (!cache._length)\n return 0;\n if (cache._measuredOffsetIndex >= index) {\n return cache._offsets[index];\n }\n let i = cache._measuredOffsetIndex;\n let top = cache._offsets[i];\n while (i < index) {\n top += getItemSize(cache, i);\n cache._offsets[++i] = top;\n }\n // mark as measured\n cache._measuredOffsetIndex = index;\n return top;\n};\nexport const computeTotalSize = (cache) => {\n if (!cache._length)\n return 0;\n return (computeOffset(cache, cache._length - 1) +\n getItemSize(cache, cache._length - 1));\n};\nexport const findIndex = (cache, i, distance) => {\n let sum = 0;\n if (distance >= 0) {\n // search forward\n while (i < cache._length - 1) {\n const h = getItemSize(cache, i++);\n if ((sum += h) >= distance) {\n if (sum - h / 2 >= distance) {\n i--;\n }\n break;\n }\n }\n }\n else {\n // search backward\n while (i > 0) {\n const h = getItemSize(cache, --i);\n if ((sum -= h) <= distance) {\n if (sum + h / 2 < distance) {\n i++;\n }\n break;\n }\n }\n }\n return clamp(i, 0, cache._length - 1);\n};\nexport const findStartIndexWithOffset = (cache, offset, initialIndex) => {\n return findIndex(cache, initialIndex, offset - computeOffset(cache, initialIndex));\n};\nexport const hasUnmeasuredItemsInRange = (cache, startIndex, endIndex) => {\n return cache._sizes.slice(startIndex, endIndex + 1).includes(UNCACHED);\n};\nexport const estimateDefaultItemSize = (cache) => {\n const measuredSizes = cache._sizes.filter((s) => s !== UNCACHED);\n // This function will be called after measurement so measured size array must be longer than 0\n const startItemSize = measuredSizes[0];\n cache._defaultItemSize = measuredSizes.every((s) => s === startItemSize)\n ? // Maybe a fixed size array\n startItemSize\n : // Maybe a variable size array\n median(measuredSizes);\n};\nconst appendCache = (cache, length, prepend) => {\n const key = prepend ? \"unshift\" : \"push\";\n for (let i = cache._length; i < length; i++) {\n cache._sizes[key](UNCACHED);\n // first offset must be 0\n cache._offsets.push(i === 0 ? 0 : UNCACHED);\n }\n cache._length = length;\n};\nexport const initCache = (length, itemSize) => {\n const cache = {\n _defaultItemSize: itemSize,\n _length: 0,\n _measuredOffsetIndex: 0,\n _sizes: [],\n _offsets: [],\n };\n appendCache(cache, length);\n return cache;\n};\nexport const updateCacheLength = (cache, length, isShift) => {\n const diff = length - cache._length;\n const isRemove = diff < 0;\n let shift;\n if (isRemove) {\n // Removed\n shift = (isShift ? cache._sizes.splice(0, -diff) : cache._sizes.splice(diff)).reduce((acc, removed) => acc + (removed === UNCACHED ? cache._defaultItemSize : removed), 0);\n cache._offsets.splice(diff);\n }\n else {\n // Added\n shift = cache._defaultItemSize * diff;\n appendCache(cache, cache._length + diff, isShift);\n }\n cache._measuredOffsetIndex = isShift\n ? // Discard cache for now\n 0\n : // measuredOffsetIndex shouldn't be less than 0 because it makes scrollSize NaN and cause infinite rerender.\n // https://github.com/inokawa/virtua/pull/160\n clamp(length - 1, 0, cache._measuredOffsetIndex);\n cache._length = length;\n return [shift, isRemove];\n};\n//# sourceMappingURL=cache.js.map","import { findStartIndexWithOffset, initCache, getItemSize, computeTotalSize, findIndex as findEndIndex, computeOffset as computeStartOffset, UNCACHED, setItemSize, hasUnmeasuredItemsInRange, estimateDefaultItemSize, updateCacheLength, } from \"./cache\";\nimport { abs, clamp, max, min } from \"./utils\";\nconst calculateJump = (cache, items) => {\n return items.reduce((acc, [index, size]) => {\n return acc + (size - getItemSize(cache, index));\n }, 0);\n};\n// Scroll offset and sizes can have sub-pixel value if window.devicePixelRatio has decimal value\nconst SUBPIXEL_THRESHOLD = 1.5; // 0.5 * 3\nexport const SCROLL_IDLE = 0;\nexport const SCROLL_DOWN = 1;\nexport const SCROLL_UP = 2;\nexport const ACTION_ITEM_RESIZE = 1;\nexport const ACTION_VIEWPORT_RESIZE = 2;\nexport const ACTION_ITEMS_LENGTH_CHANGE = 3;\nexport const ACTION_SCROLL = 4;\nexport const ACTION_BEFORE_MANUAL_SCROLL = 5;\nexport const ACTION_SCROLL_END = 6;\nexport const ACTION_MANUAL_SCROLL = 7;\nexport const UPDATE_SCROLL = 0b00001;\nexport const UPDATE_SIZE = 0b00010;\nexport const UPDATE_JUMP = 0b00100;\nexport const UPDATE_IS_SCROLLING = 0b01000;\nexport const UPDATE_SCROLL_WITH_EVENT = 0b10000;\nexport const createVirtualStore = (elementsCount, itemSize = 40, initialItemCount = 0, cache = initCache(elementsCount, itemSize), isReverse, shouldAutoEstimateItemSize) => {\n let viewportSize = itemSize * max(initialItemCount - 1, 0);\n let scrollOffset = 0;\n let jumpCount = 0;\n let jump = 0;\n let _scrollDirection = SCROLL_IDLE;\n let _isShifting = false;\n let _isManualScrolling = false;\n let _resized = false;\n let _prevRange = [0, initialItemCount];\n const subscribers = new Set();\n const getScrollSize = () => computeTotalSize(cache);\n const getScrollOffsetMax = () => getScrollSize() - viewportSize;\n const clampScrollOffset = (value) => {\n // Scroll offset may exceed min or max especially in Safari's elastic scrolling.\n return clamp(value, 0, getScrollOffsetMax());\n };\n const updateScrollDirection = (dir) => {\n const prev = _scrollDirection;\n _scrollDirection = dir;\n // Return true if scrolling is just started or stopped\n return (_scrollDirection !== prev &&\n (_scrollDirection === SCROLL_IDLE || prev === SCROLL_IDLE));\n };\n return {\n _getCache() {\n return JSON.parse(JSON.stringify(cache));\n },\n _getRange() {\n const [prevStartIndex, prevEndIndex] = _prevRange;\n const start = findStartIndexWithOffset(cache, scrollOffset, \n // Clamp because prevStartIndex may exceed the limit when children decreased a lot after scrolling\n min(prevStartIndex, cache._length - 1));\n const end = findEndIndex(cache, start, viewportSize);\n if (prevStartIndex === start && prevEndIndex === end) {\n return _prevRange;\n }\n return (_prevRange = [start, end]);\n },\n _isUnmeasuredItem(index) {\n return cache._sizes[index] === UNCACHED;\n },\n _hasUnmeasuredItemsInTargetViewport(offset) {\n const startIndex = findStartIndexWithOffset(cache, offset, _prevRange[0] // TODO binary search may be better here\n );\n return hasUnmeasuredItemsInRange(cache, max(0, startIndex - 1), min(cache._length - 1, findEndIndex(cache, startIndex, viewportSize) + 1));\n },\n _getItemOffset(index) {\n const offset = computeStartOffset(cache, index);\n if (isReverse) {\n return offset + max(0, viewportSize - getScrollSize());\n }\n return offset;\n },\n _getItemSize(index) {\n return getItemSize(cache, index);\n },\n _getItemsLength() {\n return cache._length;\n },\n _getScrollOffset() {\n return scrollOffset;\n },\n _getScrollOffsetMax: getScrollOffsetMax,\n _getIsScrolling() {\n return _scrollDirection !== SCROLL_IDLE;\n },\n _getViewportSize() {\n return viewportSize;\n },\n _getCorrectedScrollSize() {\n return max(getScrollSize(), viewportSize);\n },\n _getJumpCount() {\n return jumpCount;\n },\n _flushJump() {\n const prevJump = jump;\n jump = 0;\n return prevJump;\n },\n _subscribe(target, cb) {\n const sub = [target, cb];\n subscribers.add(sub);\n return () => {\n subscribers.delete(sub);\n };\n },\n _update(type, payload) {\n let shouldSync;\n let mutated = 0;\n switch (type) {\n case ACTION_ITEM_RESIZE: {\n const updated = payload.filter(([index, size]) => cache._sizes[index] !== size);\n // Skip if all items are cached and not updated\n if (!updated.length) {\n break;\n }\n // Calculate jump\n let diff = 0;\n if (_isShifting || _isManualScrolling) {\n // Should maintain visible position under specific situations\n if (scrollOffset === 0) {\n // Do nothing to stick to the start\n }\n else if (scrollOffset >\n getScrollOffsetMax() - SUBPIXEL_THRESHOLD) {\n // Keep end to stick to the end\n diff = calculateJump(cache, updated);\n }\n else {\n const [startIndex] = _prevRange;\n // Keep start at mid\n diff = calculateJump(cache, updated.filter(([index]) => index < startIndex));\n }\n }\n else if (_scrollDirection === SCROLL_UP) {\n // We can assume jumps occurred on the upper outside during reverse scrolling\n diff = calculateJump(cache, updated);\n }\n else {\n // Do nothing\n }\n if (diff) {\n jump = diff;\n jumpCount++;\n mutated += UPDATE_JUMP;\n }\n // Update item sizes\n let isNewItemMeasured = false;\n updated.forEach(([index, size]) => {\n if (setItemSize(cache, index, size)) {\n isNewItemMeasured = true;\n }\n });\n // Estimate initial item size from measured sizes\n if (shouldAutoEstimateItemSize &&\n isNewItemMeasured &&\n // TODO support reverse scroll also\n !scrollOffset) {\n estimateDefaultItemSize(cache);\n }\n mutated += UPDATE_SIZE;\n _resized = shouldSync = true;\n break;\n }\n case ACTION_VIEWPORT_RESIZE: {\n if (viewportSize !== payload) {\n viewportSize = payload;\n mutated = UPDATE_SIZE;\n }\n break;\n }\n case ACTION_ITEMS_LENGTH_CHANGE: {\n if (payload[1]) {\n // Calc distance before updating cache\n const distanceToEnd = getScrollOffsetMax() - scrollOffset;\n const [shift, isRemove] = updateCacheLength(cache, payload[0], true);\n const diff = isRemove ? -min(shift, distanceToEnd) : shift;\n jump += diff;\n scrollOffset = clampScrollOffset(scrollOffset + diff);\n jumpCount++;\n mutated = UPDATE_SCROLL + UPDATE_JUMP;\n _isShifting = true;\n }\n else {\n updateCacheLength(cache, payload[0]);\n }\n break;\n }\n case ACTION_SCROLL:\n case ACTION_BEFORE_MANUAL_SCROLL: {\n // Skip if offset is not changed\n if (scrollOffset === payload) {\n break;\n }\n if (type === ACTION_SCROLL) {\n // Scrolling after resizing will be caused by jump compensation\n const isJustResized = _resized;\n _resized = false;\n // Skip scroll direction detection just after resizing because it may result in the opposite direction.\n // Scroll events are dispatched enough so it's ok to skip some of them.\n if ((_scrollDirection === SCROLL_IDLE || !isJustResized) &&\n // Ignore until manual scrolling\n !_isManualScrolling) {\n if (updateScrollDirection(scrollOffset > payload ? SCROLL_UP : SCROLL_DOWN)) {\n mutated += UPDATE_IS_SCROLLING;\n }\n }\n // Ignore manual scroll because it may be called in useEffect/useLayoutEffect and cause the warn below.\n // Warning: flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\n //\n // Update synchronously if scrolled a lot\n shouldSync = abs(scrollOffset - payload) > viewportSize;\n mutated += UPDATE_SCROLL_WITH_EVENT;\n if (!isJustResized) {\n _isShifting = false;\n }\n }\n scrollOffset = clampScrollOffset(payload);\n mutated += UPDATE_SCROLL;\n break;\n }\n case ACTION_SCROLL_END: {\n if (updateScrollDirection(SCROLL_IDLE)) {\n mutated = UPDATE_IS_SCROLLING;\n }\n _isShifting = _isManualScrolling = false;\n break;\n }\n case ACTION_MANUAL_SCROLL: {\n _isManualScrolling = true;\n break;\n }\n }\n if (mutated) {\n subscribers.forEach(([target, cb]) => {\n // Early return to skip React's computation\n if (!(mutated & target)) {\n return;\n }\n cb(shouldSync);\n });\n }\n },\n };\n};\n//# sourceMappingURL=store.js.map","import { useEffect, useLayoutEffect } from \"react\";\n// https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nexport const useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { exists } from \"../core/utils\";\nexport const refKey = \"current\";\nexport const emptyComponents = {};\nconst forEach = (children, elements) => {\n if (Array.isArray(children)) {\n for (const c of children) {\n forEach(c, elements);\n }\n }\n else if (!exists(children) || typeof children === \"boolean\") {\n // filter out, that is the same as React.Children.toArray\n }\n else {\n elements.push(children);\n }\n};\n// Replace React.Children.forEach with our tiny implementation.\n// In our usage, just flatten children array keeping element instances and their keys, React.Children is redundant and slow.\n//\n// - React.Children.toArray is slow because it clones element instance.\n// - React.Children.map is slow because it clones element instance.\n// - React.Children.forEach is slow because it escapes and modifies keys even if they are unused.\n//\n// And React.Children seems to be in maintenance mode so it's unlikely it would be improved and ported to older versions.\n// https://github.com/reactjs/rfcs/pull/61#issuecomment-584402735\nexport const flattenChildren = (children) => {\n const elements = [];\n forEach(children, elements);\n return elements;\n};\n//# sourceMappingURL=utils.js.map","import { useRef } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { refKey } from \"./utils\";\nexport const useLatestRef = (value) => {\n const ref = useRef(value);\n useIsomorphicLayoutEffect(() => {\n ref[refKey] = value;\n }, [value]);\n return ref;\n};\n//# sourceMappingURL=useLatestRef.js.map","import { useLayoutEffect, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { refKey } from \"./utils\";\nimport { UPDATE_IS_SCROLLING, UPDATE_JUMP, UPDATE_SCROLL, UPDATE_SIZE, } from \"../core/store\";\nexport const SELECT_RANGE = UPDATE_SCROLL + UPDATE_SIZE;\nexport const SELECT_SCROLL_SIZE = UPDATE_SIZE;\nexport const SELECT_JUMP_COUNT = UPDATE_JUMP;\nexport const SELECT_IS_SCROLLING = UPDATE_IS_SCROLLING;\nexport const SELECT_ITEM = UPDATE_SIZE;\nexport const useSelector = (store, getSnapShot, target, shouldGetLatest) => {\n const [state, setState] = useState(getSnapShot);\n const getter = useLatestRef(getSnapShot);\n useLayoutEffect(() => {\n const update = () => {\n setState(() => getter[refKey]());\n };\n return store._subscribe(target, (sync) => {\n // TODO batch flushSync to remove shouldGetLatest argument if possible\n // https://github.com/facebook/react/issues/25191\n if (sync) {\n flushSync(update);\n }\n else {\n update();\n }\n });\n }, []);\n // especially for sort of items\n if (shouldGetLatest) {\n const snap = getSnapShot();\n if (state !== snap) {\n setState(snap);\n }\n }\n return state;\n};\n//# sourceMappingURL=useSelector.js.map","import { once } from \"./utils\";\n// The scroll position may be negative value in rtl direction.\n//\n// left right result\n// -100 0 true spec compliant\n// 0 100 false probably Chrome earlier than v85\n// https://github.com/othree/jquery.rtl-scroll-type\nexport const hasNegativeOffsetInRtl = /*#__PURE__*/ once((scrollable) => {\n const key = \"scrollLeft\";\n const prev = scrollable[key];\n scrollable[key] = 1;\n // scrollLeft can be positive under some specific situations even if negative mode, so we use `<` for now.\n const isNegative = scrollable[key] < 1;\n scrollable[key] = prev;\n return isNegative;\n});\n//# sourceMappingURL=dom.js.map","import { hasNegativeOffsetInRtl } from \"./dom\";\nimport { ACTION_SCROLL, ACTION_BEFORE_MANUAL_SCROLL, ACTION_SCROLL_END, UPDATE_SIZE, ACTION_MANUAL_SCROLL, } from \"./store\";\nimport { debounce, throttle, timeout, clamp } from \"./utils\";\n// Infer scroll state also from wheel events\n// Sometimes scroll events do not fire when frame dropped even if the visual have been already scrolled\nconst createOnWheel = (store, isHorizontal, onScrollStopped) => {\n return throttle((e) => {\n if (!store._getIsScrolling()) {\n // Scroll start should be detected with scroll event\n return;\n }\n if (e.ctrlKey) {\n // Probably a pinch-to-zoom gesture\n return;\n }\n // Get delta before checking deltaMode for firefox behavior\n // https://github.com/w3c/uievents/issues/181#issuecomment-392648065\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1392460#c34\n if (isHorizontal ? e.deltaX : e.deltaY) {\n const offset = store._getScrollOffset();\n if (offset > 0 && offset < store._getScrollOffsetMax()) {\n onScrollStopped();\n }\n }\n }, 50);\n};\nexport const createScroller = (store, isHorizontal, isRtl) => {\n let rootElement;\n let scrollToQueue;\n const scrollToKey = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n const getActualScrollSize = () => {\n if (!rootElement)\n return 0;\n // Use element's scrollHeight/scrollWidth instead of stored scrollSize.\n // This is because stored size may differ from the actual size, for example when a new item is added and not yet measured.\n return isHorizontal ? rootElement.scrollWidth : rootElement.scrollHeight;\n };\n const normalizeOffset = (offset, diff) => {\n if (isHorizontal && isRtl) {\n if (hasNegativeOffsetInRtl(rootElement)) {\n return -offset;\n }\n else {\n return diff ? -offset : store._getScrollOffsetMax() - offset;\n }\n }\n return offset;\n };\n const scrollManually = async (getOffset) => {\n if (!rootElement)\n return;\n const getTargetOffset = () => {\n // Adjust if the offset is over the end, to get correct startIndex.\n return clamp(getOffset(), 0, getActualScrollSize() - store._getViewportSize());\n };\n while (true) {\n // Sync viewport to scroll destination\n // In order to scroll to the correct position, mount the items and measure their sizes before scrolling.\n const targetOffset = getTargetOffset();\n store._update(ACTION_BEFORE_MANUAL_SCROLL, targetOffset);\n if (!store._hasUnmeasuredItemsInTargetViewport(targetOffset)) {\n break;\n }\n if (scrollToQueue) {\n // Cancel waiting scrollTo\n scrollToQueue[1]();\n }\n // Wait for the scroll destination items to be measured.\n const unsubscribe = store._subscribe(UPDATE_SIZE, () => {\n scrollToQueue && scrollToQueue[0]();\n });\n try {\n // The measurement will be done asynchronously and the timing is not predictable so we use promise.\n // For example, ResizeObserver may not fire when window is not visible.\n await new Promise((resolve, reject) => {\n let resolved = false;\n const resolveQueue = () => {\n if (resolved)\n return;\n resolved = true;\n resolve();\n scrollToQueue = undefined;\n };\n scrollToQueue = [resolveQueue, reject];\n // In some specific situation with VGrid, the promise never resolved so we resolve it if timed out.\n timeout(resolveQueue, 250);\n });\n }\n catch (e) {\n // canceled\n return;\n }\n finally {\n unsubscribe();\n }\n }\n // Scroll with the updated value\n rootElement[scrollToKey] = normalizeOffset(getTargetOffset());\n store._update(ACTION_MANUAL_SCROLL);\n };\n return {\n _initRoot(root) {\n rootElement = root;\n const syncViewportToScrollPosition = () => {\n store._update(ACTION_SCROLL, normalizeOffset(root[scrollToKey]));\n };\n const onScrollStopped = debounce(() => {\n // Check scroll position once just after scrolling stopped\n syncViewportToScrollPosition();\n store._update(ACTION_SCROLL_END);\n }, 150);\n const onScroll = () => {\n syncViewportToScrollPosition();\n onScrollStopped();\n };\n const onWheel = createOnWheel(store, isHorizontal, onScrollStopped);\n root.addEventListener(\"scroll\", onScroll);\n root.addEventListener(\"wheel\", onWheel, { passive: true });\n return () => {\n root.removeEventListener(\"scroll\", onScroll);\n root.removeEventListener(\"wheel\", onWheel);\n onScrollStopped._cancel();\n };\n },\n _getActualScrollSize: getActualScrollSize,\n _scrollTo(offset) {\n scrollManually(() => offset);\n },\n _scrollBy(offset) {\n offset += store._getScrollOffset();\n scrollManually(() => offset);\n },\n _scrollToIndex(index, align) {\n index = clamp(index, 0, store._getItemsLength() - 1);\n scrollManually(align === \"end\"\n ? () => store._getItemOffset(index) +\n store._getItemSize(index) -\n store._getViewportSize()\n : () => store._getItemOffset(index));\n },\n _fixScrollJump: (jump) => {\n if (!rootElement)\n return;\n rootElement[scrollToKey] += normalizeOffset(jump, true);\n },\n };\n};\nexport const createWindowScroller = (store, isHorizontal) => {\n const scrollToKey = isHorizontal ? \"scrollX\" : \"scrollY\";\n const offsetKey = isHorizontal ? \"offsetLeft\" : \"offsetTop\";\n return {\n _initRoot(rootElement) {\n let visible = false;\n const getOffsetToWindow = (node, offset) => {\n const nodeOffset = offset + node[offsetKey];\n const parent = node.offsetParent;\n if (node === document.body || !parent) {\n return nodeOffset;\n }\n return getOffsetToWindow(parent, nodeOffset);\n };\n const syncViewportToScrollPosition = () => {\n if (!visible)\n return;\n store._update(ACTION_SCROLL, window[scrollToKey] - getOffsetToWindow(rootElement, 0));\n };\n const onScrollStopped = debounce(() => {\n // Check scroll position once just after scrolling stopped\n syncViewportToScrollPosition();\n store._update(ACTION_SCROLL_END);\n }, 150);\n const onScroll = () => {\n syncViewportToScrollPosition();\n onScrollStopped();\n };\n const onWheel = createOnWheel(store, isHorizontal, onScrollStopped);\n const io = new IntersectionObserver(([entry]) => {\n visible = entry.isIntersecting;\n });\n io.observe(rootElement);\n window.addEventListener(\"scroll\", onScroll);\n window.addEventListener(\"wheel\", onWheel, { passive: true });\n return () => {\n io.disconnect();\n window.removeEventListener(\"scroll\", onScroll);\n window.removeEventListener(\"wheel\", onWheel);\n onScrollStopped._cancel();\n };\n },\n _fixScrollJump: (jump) => {\n // TODO support case two window scrollers exist in the same view\n window.scrollBy(isHorizontal ? jump : 0, isHorizontal ? 0 : jump);\n },\n };\n};\n//# sourceMappingURL=scroller.js.map","import { useRef } from \"react\";\nimport { refKey } from \"./utils\";\nexport const useStatic = (init) => {\n const ref = useRef();\n return ref[refKey] || (ref[refKey] = init());\n};\n//# sourceMappingURL=useStatic.js.map","import { ACTION_ITEM_RESIZE, ACTION_VIEWPORT_RESIZE, } from \"./store\";\nimport { exists, max, once } from \"./utils\";\nexport const createResizer = (store, isHorizontal) => {\n let rootElement;\n const sizeKey = isHorizontal ? \"width\" : \"height\";\n const mountedIndexes = new WeakMap();\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizes = [];\n for (const { target, contentRect } of entries) {\n if (target === rootElement) {\n store._update(ACTION_VIEWPORT_RESIZE, contentRect[sizeKey]);\n }\n else {\n const index = mountedIndexes.get(target);\n if (exists(index)) {\n resizes.push([index, contentRect[sizeKey]]);\n }\n }\n }\n if (resizes.length) {\n store._update(ACTION_ITEM_RESIZE, resizes);\n }\n });\n });\n return {\n _observeRoot(root) {\n rootElement = root;\n const ro = getResizeObserver();\n ro.observe(root);\n return () => {\n ro.disconnect();\n };\n },\n _observeItem(el, i) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, i);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\nexport const createWindowResizer = (store, isHorizontal) => {\n const sizeKey = isHorizontal ? \"width\" : \"height\";\n const windowSizeKey = isHorizontal ? \"innerWidth\" : \"innerHeight\";\n const mountedIndexes = new WeakMap();\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizes = [];\n for (const { target, contentRect } of entries) {\n const index = mountedIndexes.get(target);\n if (exists(index)) {\n resizes.push([index, contentRect[sizeKey]]);\n }\n }\n if (resizes.length) {\n store._update(ACTION_ITEM_RESIZE, resizes);\n }\n });\n });\n return {\n _observeRoot() {\n const cb = () => {\n store._update(ACTION_VIEWPORT_RESIZE, window[windowSizeKey]);\n };\n window.addEventListener(\"resize\", cb);\n cb();\n return () => {\n window.removeEventListener(\"resize\", cb);\n getResizeObserver().disconnect();\n };\n },\n _observeItem(el, i) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, i);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\nexport const createGridResizer = (vStore, hStore) => {\n let rootElement;\n const heightKey = \"height\";\n const widthKey = \"width\";\n const mountedIndexes = new WeakMap();\n const maybeCachedRowIndexes = new Set();\n const maybeCachedColIndexes = new Set();\n const sizeCache = new Map();\n const getKey = (rowIndex, colIndex) => `${rowIndex}-${colIndex}`;\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizedRows = new Set();\n const resizedCols = new Set();\n for (const { target, contentRect } of entries) {\n if (target === rootElement) {\n vStore._update(ACTION_VIEWPORT_RESIZE, contentRect[heightKey]);\n hStore._update(ACTION_VIEWPORT_RESIZE, contentRect[widthKey]);\n }\n else {\n const cell = mountedIndexes.get(target);\n if (cell) {\n const [rowIndex, colIndex] = cell;\n const key = getKey(rowIndex, colIndex);\n const prevSize = sizeCache.get(key);\n const size = [\n contentRect[heightKey],\n contentRect[widthKey],\n ];\n let rowResized;\n let colResized;\n if (!prevSize) {\n rowResized = colResized = true;\n }\n else {\n if (prevSize[0] !== size[0]) {\n rowResized = true;\n }\n if (prevSize[1] !== size[1]) {\n colResized = true;\n }\n }\n if (rowResized) {\n resizedRows.add(rowIndex);\n }\n if (colResized) {\n resizedCols.add(colIndex);\n }\n if (rowResized || colResized) {\n sizeCache.set(key, size);\n }\n }\n }\n }\n if (resizedRows.size) {\n const heightResizes = [];\n resizedRows.forEach((rowIndex) => {\n let maxHeight = 0;\n maybeCachedColIndexes.forEach((colIndex) => {\n const size = sizeCache.get(getKey(rowIndex, colIndex));\n if (size) {\n maxHeight = max(maxHeight, size[0]);\n }\n });\n if (maxHeight) {\n heightResizes.push([rowIndex, maxHeight]);\n }\n });\n vStore._update(ACTION_ITEM_RESIZE, heightResizes);\n }\n if (resizedCols.size) {\n const widthResizes = [];\n resizedCols.forEach((colIndex) => {\n let maxWidth = 0;\n maybeCachedRowIndexes.forEach((rowIndex) => {\n const size = sizeCache.get(getKey(rowIndex, colIndex));\n if (size) {\n maxWidth = max(maxWidth, size[1]);\n }\n });\n if (maxWidth) {\n widthResizes.push([colIndex, maxWidth]);\n }\n });\n hStore._update(ACTION_ITEM_RESIZE, widthResizes);\n }\n });\n });\n return {\n _observeRoot(root) {\n rootElement = root;\n const ro = getResizeObserver();\n ro.observe(root);\n return () => {\n ro.disconnect();\n };\n },\n _observeItem(el, rowIndex, colIndex) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, [rowIndex, colIndex]);\n maybeCachedRowIndexes.add(rowIndex);\n maybeCachedColIndexes.add(colIndex);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\n//# sourceMappingURL=resizer.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useMemo, } from \"react\";\nexport const Viewport = forwardRef(({ children, attrs, width, height, scrolling }, ref) => {\n return (_jsx(\"div\", { ref: ref, ...attrs, children: _jsx(\"div\", { style: useMemo(() => {\n return {\n position: \"relative\",\n visibility: \"hidden\",\n width: width !== null && width !== void 0 ? width : \"100%\",\n height: height !== null && height !== void 0 ? height : \"100%\",\n pointerEvents: scrolling ? \"none\" : \"auto\",\n };\n }, [width, height, scrolling]), children: children }) }));\n});\n//# sourceMappingURL=Viewport.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useRef, useMemo, } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_ITEM, useSelector } from \"./useSelector\";\nimport { refKey } from \"./utils\";\nexport const ListItem = memo(({ _children: children, _resizer: resizer, _store: store, _index: index, _element: Element, _isHorizontal: isHorizontal, _isRtl: isRtl, }) => {\n const ref = useRef(null);\n const offset = useSelector(store, () => store._getItemOffset(index), SELECT_ITEM, true);\n const hide = useSelector(store, () => store._isUnmeasuredItem(index), SELECT_ITEM, true);\n // The index may be changed if elements are inserted to or removed from the start of props.children\n useIsomorphicLayoutEffect(() => resizer._observeItem(ref[refKey], index), [index]);\n return (_jsx(Element, { ref: ref, style: useMemo(() => {\n const leftOrRightKey = isRtl ? \"right\" : \"left\";\n const style = {\n margin: 0,\n padding: 0,\n position: \"absolute\",\n [isHorizontal ? \"height\" : \"width\"]: \"100%\",\n [isHorizontal ? \"top\" : leftOrRightKey]: 0,\n [isHorizontal ? leftOrRightKey : \"top\"]: offset,\n visibility: hide ? \"hidden\" : \"visible\",\n // willChange: \"transform\",\n };\n if (isHorizontal) {\n style.display = \"flex\";\n }\n return style;\n }, [offset, hide]), children: children }));\n});\n//# sourceMappingURL=ListItem.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useRef, useMemo, forwardRef, useImperativeHandle, useEffect, } from \"react\";\nimport { UPDATE_SCROLL_WITH_EVENT, ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { exists, max, min, values } from \"../core/utils\";\nimport { createScroller } from \"../core/scroller\";\nimport { emptyComponents, flattenChildren, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { createResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport, } from \"./Viewport\";\nimport { ListItem } from \"./ListItem\";\n/**\n * Virtualized list component. See {@link VListProps} and {@link VListHandle}.\n */\nexport const VList = forwardRef(({ children, overscan = 4, initialItemSize, initialItemCount, shift, horizontal: horizontalProp, mode, cache, components: { Root: Viewport = DefaultViewport, Item: ItemElement = \"div\", } = emptyComponents, onScroll: onScrollProp, onScrollStop: onScrollStopProp, onRangeChange: onRangeChangeProp, ...viewportAttrs }, ref) => {\n // Memoize element array\n const elements = useMemo(() => flattenChildren(children), [children]);\n const count = elements.length;\n const onScroll = useLatestRef(onScrollProp);\n const onScrollStop = useLatestRef(onScrollStopProp);\n const [store, resizer, scroller, isHorizontal, isRtl] = useStatic(() => {\n const _isHorizontal = !!horizontalProp;\n const _isRtl = mode === \"rtl\";\n const _store = createVirtualStore(count, initialItemSize, initialItemCount, cache, mode === \"reverse\", !initialItemSize);\n return [\n _store,\n createResizer(_store, _isHorizontal),\n createScroller(_store, _isHorizontal, _isRtl),\n _isHorizontal,\n _isRtl,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (count !== store._getItemsLength()) {\n store._update(ACTION_ITEMS_LENGTH_CHANGE, [count, shift]);\n }\n const [startIndex, endIndex] = useSelector(store, store._getRange, SELECT_RANGE);\n const scrolling = useSelector(store, store._getIsScrolling, SELECT_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, SELECT_JUMP_COUNT);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const cleanup = scroller._initRoot(root);\n const cleanupOnScroll = store._subscribe(UPDATE_SCROLL_WITH_EVENT, () => {\n onScroll[refKey] && onScroll[refKey](store._getScrollOffset());\n });\n return () => {\n unobserve();\n cleanup();\n cleanupOnScroll();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = store._flushJump();\n if (!jump)\n return;\n scroller._fixScrollJump(jump);\n }, [jumpCount]);\n useEffect(() => {\n if (!scrolling) {\n onScrollStop[refKey] && onScrollStop[refKey]();\n }\n }, [scrolling]);\n useEffect(() => {\n if (!onRangeChangeProp)\n return;\n onRangeChangeProp(startIndex, endIndex);\n }, [startIndex, endIndex]);\n useImperativeHandle(ref, () => {\n return {\n get cache() {\n return store._getCache();\n },\n get scrollOffset() {\n return store._getScrollOffset();\n },\n get scrollSize() {\n return scroller._getActualScrollSize();\n },\n get viewportSize() {\n return store._getViewportSize();\n },\n scrollToIndex: scroller._scrollToIndex,\n scrollTo: scroller._scrollTo,\n scrollBy: scroller._scrollBy,\n };\n }, []);\n const overscanedStartIndex = max(startIndex - overscan, 0);\n const overscanedEndIndex = min(endIndex + overscan, count - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartIndex; i <= overscanedEndIndex; i++) {\n const e = elements[i];\n const key = e.key;\n res.push(_jsx(ListItem, { _resizer: resizer, _store: store, _index: i, _element: ItemElement, _children: e, _isHorizontal: isHorizontal, _isRtl: isRtl }, exists(key) ? key : \"_\" + i));\n }\n return res;\n }, [elements, overscanedStartIndex, overscanedEndIndex]);\n return (_jsx(Viewport, { ref: rootRef, width: isHorizontal ? scrollSize : undefined, height: isHorizontal ? undefined : scrollSize, scrolling: scrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: isHorizontal ? \"auto hidden\" : \"hidden auto\",\n display: isHorizontal ? \"inline-block\" : \"block\",\n contain: \"strict\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n // https://github.com/bvaughn/react-window/issues/395\n // willChange: \"transform\",\n width: \"100%\",\n height: \"100%\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=VList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useRef, useMemo, forwardRef, useImperativeHandle, } from \"react\";\nimport { ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_ITEM, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { max, min, values } from \"../core/utils\";\nimport { createScroller } from \"../core/scroller\";\nimport { emptyComponents, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { createGridResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport } from \"./Viewport\";\nconst genKey = (i, j) => `${i}-${j}`;\nconst Cell = memo(({ _children: children, _resizer: resizer, _vStore: vStore, _hStore: hStore, _rowIndex: rowIndex, _colIndex: colIndex, _element: Element, _isRtl: isRtl, }) => {\n const ref = useRef(null);\n const top = useSelector(vStore, () => vStore._getItemOffset(rowIndex), SELECT_ITEM, true);\n const left = useSelector(hStore, () => hStore._getItemOffset(colIndex), SELECT_ITEM, true);\n const vHide = useSelector(vStore, () => vStore._isUnmeasuredItem(rowIndex), SELECT_ITEM, true);\n const hHide = useSelector(hStore, () => hStore._isUnmeasuredItem(colIndex), SELECT_ITEM, true);\n const height = useSelector(vStore, () => vStore._getItemSize(rowIndex), SELECT_ITEM, true);\n const width = useSelector(hStore, () => hStore._getItemSize(colIndex), SELECT_ITEM, true);\n // The index may be changed if elements are inserted to or removed from the start of props.children\n useIsomorphicLayoutEffect(() => resizer._observeItem(ref[refKey], rowIndex, colIndex), [colIndex, rowIndex]);\n return (_jsx(Element, { ref: ref, style: useMemo(() => {\n const style = {\n display: \"grid\",\n margin: 0,\n padding: 0,\n position: \"absolute\",\n top: top,\n [isRtl ? \"right\" : \"left\"]: left,\n visibility: vHide || hHide ? \"hidden\" : \"visible\",\n minHeight: height,\n minWidth: width,\n };\n return style;\n }, [top, left, width, height, vHide, hHide]), children: children }));\n});\n/**\n * Virtualized grid component. See {@link VGridProps} and {@link VGridHandle}.\n */\nexport const VGrid = forwardRef(({ children, row: rowCount, col: colCount, cellHeight = 40, cellWidth = 100, overscan = 2, initialRowCount, initialColCount, rtl: rtlProp, components: { Root: Viewport = DefaultViewport, Cell: ItemElement = \"div\", } = emptyComponents, ...viewportAttrs }, ref) => {\n const [vStore, hStore, resizer, vScroller, hScroller, isRtl] = useStatic(() => {\n const _isRtl = !!rtlProp;\n const _vs = createVirtualStore(rowCount, cellHeight, initialRowCount);\n const _hs = createVirtualStore(colCount, cellWidth, initialColCount);\n return [\n _vs,\n _hs,\n createGridResizer(_vs, _hs),\n createScroller(_vs, false, _isRtl),\n createScroller(_hs, true, _isRtl),\n _isRtl,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (rowCount !== vStore._getItemsLength()) {\n vStore._update(ACTION_ITEMS_LENGTH_CHANGE, [rowCount]);\n }\n if (colCount !== hStore._getItemsLength()) {\n hStore._update(ACTION_ITEMS_LENGTH_CHANGE, [colCount]);\n }\n const [startRowIndex, endRowIndex] = useSelector(vStore, vStore._getRange, SELECT_RANGE);\n const [startColIndex, endColIndex] = useSelector(hStore, hStore._getRange, SELECT_RANGE);\n const verticalScrolling = useSelector(vStore, vStore._getIsScrolling, SELECT_IS_SCROLLING);\n const horizontalScrolling = useSelector(hStore, hStore._getIsScrolling, SELECT_IS_SCROLLING);\n const vJumpCount = useSelector(vStore, vStore._getJumpCount, SELECT_JUMP_COUNT);\n const hJumpCount = useSelector(hStore, hStore._getJumpCount, SELECT_JUMP_COUNT);\n const height = useSelector(vStore, vStore._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const width = useSelector(hStore, hStore._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const vCleanup = vScroller._initRoot(root);\n const hCleanup = hScroller._initRoot(root);\n return () => {\n unobserve();\n vCleanup();\n hCleanup();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = vStore._flushJump();\n if (!jump)\n return;\n vScroller._fixScrollJump(jump);\n }, [vJumpCount]);\n useIsomorphicLayoutEffect(() => {\n const jump = hStore._flushJump();\n if (!jump)\n return;\n hScroller._fixScrollJump(jump);\n }, [hJumpCount]);\n useImperativeHandle(ref, () => {\n return {\n get scrollOffset() {\n return [hStore._getScrollOffset(), vStore._getScrollOffset()];\n },\n get scrollSize() {\n return [\n hScroller._getActualScrollSize(),\n vScroller._getActualScrollSize(),\n ];\n },\n get viewportSize() {\n return [hStore._getViewportSize(), vStore._getViewportSize()];\n },\n scrollToIndex(indexX, indexY) {\n hScroller._scrollToIndex(indexX);\n vScroller._scrollToIndex(indexY);\n },\n scrollTo(offsetX, offsetY) {\n hScroller._scrollTo(offsetX);\n vScroller._scrollTo(offsetY);\n },\n scrollBy(offsetX, offsetY) {\n hScroller._scrollBy(offsetX);\n vScroller._scrollBy(offsetY);\n },\n };\n }, []);\n const render = useMemo(() => {\n const cache = new Map();\n return (rowIndex, colIndex) => {\n let e = cache.get(genKey(rowIndex, colIndex));\n if (!e) {\n cache.set(genKey(rowIndex, colIndex), (e = children({ rowIndex, colIndex })));\n }\n return e;\n };\n }, [children]);\n const overscanedStartRowIndex = max(startRowIndex - overscan, 0);\n const overscanedEndRowIndex = min(endRowIndex + overscan, rowCount - 1);\n const overscanedStartColIndex = max(startColIndex - overscan, 0);\n const overscanedEndColIndex = min(endColIndex + overscan, colCount - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartRowIndex; i <= overscanedEndRowIndex; i++) {\n for (let j = overscanedStartColIndex; j <= overscanedEndColIndex; j++) {\n res.push(_jsx(Cell, { _resizer: resizer, _vStore: vStore, _hStore: hStore, _rowIndex: i, _colIndex: j, _element: ItemElement, _children: render(i, j), _isRtl: isRtl }, genKey(i, j)));\n }\n }\n return res;\n }, [\n render,\n overscanedStartRowIndex,\n overscanedEndRowIndex,\n overscanedStartColIndex,\n overscanedEndColIndex,\n ]);\n return (_jsx(Viewport, { ref: rootRef, width: width, height: height, scrolling: verticalScrolling || horizontalScrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: \"auto\",\n contain: \"strict\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=VGrid.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useRef, useMemo, useEffect, forwardRef, useImperativeHandle, } from \"react\";\nimport { ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { exists, max, min, values } from \"../core/utils\";\nimport { createWindowScroller } from \"../core/scroller\";\nimport { emptyComponents, flattenChildren, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { createWindowResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport, } from \"./Viewport\";\nimport { ListItem } from \"./ListItem\";\n/**\n * Virtualized list component controlled by the window scrolling. See {@link WVListProps} and {@link WVListHandle}.\n */\nexport const WVList = forwardRef(({ children, overscan = 4, initialItemSize, initialItemCount, horizontal: horizontalProp, cache, components: { Root: Viewport = DefaultViewport, Item: ItemElement = \"div\", } = emptyComponents, onScrollStop: onScrollStopProp, onRangeChange: onRangeChangeProp, ...viewportAttrs }, ref) => {\n // Memoize element array\n const elements = useMemo(() => flattenChildren(children), [children]);\n const count = elements.length;\n const onScrollStop = useLatestRef(onScrollStopProp);\n const [store, resizer, scroller, isHorizontal] = useStatic(() => {\n const _isHorizontal = !!horizontalProp;\n const _store = createVirtualStore(count, initialItemSize, initialItemCount, cache, false, !initialItemSize);\n return [\n _store,\n createWindowResizer(_store, _isHorizontal),\n createWindowScroller(_store, _isHorizontal),\n _isHorizontal,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (count !== store._getItemsLength()) {\n store._update(ACTION_ITEMS_LENGTH_CHANGE, [count]);\n }\n const [startIndex, endIndex] = useSelector(store, store._getRange, SELECT_RANGE);\n const scrolling = useSelector(store, store._getIsScrolling, SELECT_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, SELECT_JUMP_COUNT);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const cleanup = scroller._initRoot(root);\n return () => {\n unobserve();\n cleanup();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = store._flushJump();\n if (!jump)\n return;\n scroller._fixScrollJump(jump);\n }, [jumpCount]);\n useEffect(() => {\n if (!scrolling) {\n onScrollStop[refKey] && onScrollStop[refKey]();\n }\n }, [scrolling]);\n useEffect(() => {\n if (!onRangeChangeProp)\n return;\n onRangeChangeProp(startIndex, endIndex);\n }, [startIndex, endIndex]);\n useImperativeHandle(ref, () => {\n return {\n get cache() {\n return store._getCache();\n },\n };\n }, []);\n const overscanedStartIndex = max(startIndex - overscan, 0);\n const overscanedEndIndex = min(endIndex + overscan, count - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartIndex; i <= overscanedEndIndex; i++) {\n const e = elements[i];\n const key = e.key;\n res.push(_jsx(ListItem, { _resizer: resizer, _store: store, _index: i, _element: ItemElement, _children: e, _isHorizontal: isHorizontal, _isRtl: false }, exists(key) ? key : \"_\" + i));\n }\n return res;\n }, [elements, overscanedStartIndex, overscanedEndIndex]);\n return (_jsx(Viewport, { ref: rootRef, width: isHorizontal ? scrollSize : undefined, height: isHorizontal ? undefined : scrollSize, scrolling: scrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: \"visible\",\n display: isHorizontal ? \"inline-block\" : \"block\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n // https://github.com/bvaughn/react-window/issues/395\n // willChange: \"transform\",\n width: isHorizontal ? \"auto\" : \"100%\",\n height: isHorizontal ? \"100%\" : \"auto\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=WVList.js.map"],"names":["min","Math","max","abs","now","Date","values","Object","timeout","setTimeout","clamp","value","minValue","maxValue","exists","v","debounce","fn","ms","id","cancel","clearTimeout","debouncedFn","_cancel","once","called","cache","args","UNCACHED","getItemSize","index","size","_sizes","_defaultItemSize","computeOffset","_length","_measuredOffsetIndex","_offsets","i","top","findIndex","distance","sum","h","findStartIndexWithOffset","offset","initialIndex","appendCache","length","prepend","key","push","updateCacheLength","isShift","diff","isRemove","shift","splice","reduce","acc","removed","calculateJump","items","createVirtualStore","elementsCount","itemSize","initialItemCount","initCache","isReverse","shouldAutoEstimateItemSize","viewportSize","scrollOffset","jumpCount","jump","_scrollDirection","_isShifting","_isManualScrolling","_resized","_prevRange","subscribers","Set","getScrollSize","computeTotalSize","getScrollOffsetMax","clampScrollOffset","updateScrollDirection","dir","prev","_getCache","JSON","parse","stringify","_getRange","prevStartIndex","prevEndIndex","start","end","findEndIndex","_isUnmeasuredItem","_hasUnmeasuredItemsInTargetViewport","startIndex","hasUnmeasuredItemsInRange","endIndex","slice","includes","_getItemOffset","computeStartOffset","_getItemSize","_getItemsLength","_getScrollOffset","_getScrollOffsetMax","_getIsScrolling","_getViewportSize","_getCorrectedScrollSize","_getJumpCount","_flushJump","prevJump","_subscribe","target","cb","sub","add","delete","_update","type","payload","shouldSync","mutated","updated","filter","isNewItemMeasured","forEach","setItemSize","isInitialMeasurement","measuredSizes","s","startItemSize","every","arr","sort","a","b","mid","median","estimateDefaultItemSize","distanceToEnd","UPDATE_SCROLL","isJustResized","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","refKey","emptyComponents","children","elements","Array","isArray","c","flattenChildren","useLatestRef","ref","useRef","useSelector","store","getSnapShot","shouldGetLatest","state","setState","useState","getter","update","sync","flushSync","snap","hasNegativeOffsetInRtl","scrollable","isNegative","createOnWheel","isHorizontal","onScrollStopped","throttle","time","n","e","ctrlKey","deltaX","deltaY","createScroller","isRtl","rootElement","scrollToQueue","scrollToKey","getActualScrollSize","scrollWidth","scrollHeight","normalizeOffset","scrollManually","async","getTargetOffset","getOffset","targetOffset","unsubscribe","Promise","resolve","reject","resolved","resolveQueue","undefined","_initRoot","root","syncViewportToScrollPosition","onScroll","onWheel","addEventListener","passive","removeEventListener","_getActualScrollSize","_scrollTo","_scrollBy","_scrollToIndex","align","_fixScrollJump","createWindowScroller","offsetKey","visible","getOffsetToWindow","node","nodeOffset","parent","offsetParent","document","body","io","IntersectionObserver","entry","isIntersecting","observe","disconnect","scrollBy","useStatic","init","createResizer","sizeKey","mountedIndexes","WeakMap","getResizeObserver","ResizeObserver","entries","resizes","contentRect","get","_observeRoot","ro","_observeItem","el","set","unobserve","createWindowResizer","windowSizeKey","createGridResizer","vStore","hStore","heightKey","widthKey","maybeCachedRowIndexes","maybeCachedColIndexes","sizeCache","Map","getKey","rowIndex","colIndex","resizedRows","resizedCols","cell","prevSize","rowResized","colResized","heightResizes","maxHeight","widthResizes","maxWidth","Viewport","forwardRef","attrs","width","height","scrolling","_jsx","jsx","style","useMemo","position","visibility","pointerEvents","ListItem","memo","_children","_resizer","resizer","_store","_index","_element","Element","_isHorizontal","_isRtl","hide","leftOrRightKey","margin","padding","display","VList","overscan","initialItemSize","horizontal","horizontalProp","mode","components","Root","DefaultViewport","Item","ItemElement","onScrollProp","onScrollStop","onScrollStopProp","onRangeChange","onRangeChangeProp","viewportAttrs","count","scroller","scrollSize","rootRef","cleanup","cleanupOnScroll","useImperativeHandle","scrollToIndex","scrollTo","overscanedStartIndex","overscanedEndIndex","res","overflow","contain","genKey","j","Cell","_vStore","_hStore","_rowIndex","_colIndex","left","vHide","hHide","minHeight","minWidth","VGrid","row","rowCount","col","colCount","cellHeight","cellWidth","initialRowCount","initialColCount","rtl","rtlProp","vScroller","hScroller","_vs","_hs","startRowIndex","endRowIndex","startColIndex","endColIndex","verticalScrolling","horizontalScrolling","vJumpCount","hJumpCount","vCleanup","hCleanup","indexX","indexY","offsetX","offsetY","render","overscanedStartRowIndex","overscanedEndRowIndex","overscanedStartColIndex","overscanedEndColIndex","WVList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/utils.ts","../src/core/cache.ts","../src/core/store.ts","../src/react/useIsomorphicLayoutEffect.ts","../src/react/utils.ts","../src/react/useLatestRef.ts","../src/react/useSelector.ts","../src/core/environment.ts","../src/core/scroller.ts","../src/react/useStatic.ts","../src/core/resizer.ts","../src/react/Viewport.tsx","../src/react/ListItem.tsx","../src/react/VList.tsx","../src/react/VGrid.tsx","../src/react/WVList.tsx"],"sourcesContent":["export const min = Math.min;\nexport const max = Math.max;\nexport const abs = Math.abs;\nexport const now = Date.now;\nexport const values = Object.values;\nexport const timeout = setTimeout;\nexport const clamp = (value, minValue, maxValue) => min(maxValue, max(minValue, value));\nexport const exists = (v) => v != null;\nexport const median = (arr) => {\n const s = [...arr].sort((a, b) => a - b);\n const mid = (arr.length / 2) | 0;\n return s.length % 2 === 0 ? (s[mid - 1] + s[mid]) / 2 : s[mid];\n};\nexport const debounce = (fn, ms) => {\n let id;\n const cancel = () => {\n if (exists(id)) {\n clearTimeout(id);\n }\n };\n const debouncedFn = () => {\n cancel();\n id = timeout(() => {\n id = null;\n fn();\n }, ms);\n };\n debouncedFn._cancel = cancel;\n return debouncedFn;\n};\nexport const throttle = (fn, ms) => {\n let time = now() - ms;\n return (...args) => {\n const n = now();\n if (time + ms < n) {\n time = n;\n fn(...args);\n }\n };\n};\nexport const once = (fn) => {\n let called;\n let cache;\n return ((...args) => {\n if (!called) {\n called = true;\n cache = fn(...args);\n }\n return cache;\n });\n};\n//# sourceMappingURL=utils.js.map","import { clamp, median, min } from \"./utils\";\nexport const UNCACHED = -1;\nexport const getItemSize = (cache, index) => {\n const size = cache._sizes[index];\n return size === UNCACHED ? cache._defaultItemSize : size;\n};\nexport const setItemSize = (cache, index, size) => {\n const isInitialMeasurement = cache._sizes[index] === UNCACHED;\n cache._sizes[index] = size;\n // mark as dirty\n cache._measuredOffsetIndex = min(index, cache._measuredOffsetIndex);\n return isInitialMeasurement;\n};\nexport const computeOffset = (cache, index) => {\n if (!cache._length)\n return 0;\n if (cache._measuredOffsetIndex >= index) {\n return cache._offsets[index];\n }\n let i = cache._measuredOffsetIndex;\n let top = cache._offsets[i];\n while (i < index) {\n top += getItemSize(cache, i);\n cache._offsets[++i] = top;\n }\n // mark as measured\n cache._measuredOffsetIndex = index;\n return top;\n};\nexport const computeTotalSize = (cache) => {\n if (!cache._length)\n return 0;\n return (computeOffset(cache, cache._length - 1) +\n getItemSize(cache, cache._length - 1));\n};\nexport const findIndex = (cache, i, distance) => {\n let sum = 0;\n if (distance >= 0) {\n // search forward\n while (i < cache._length - 1) {\n const h = getItemSize(cache, i++);\n if ((sum += h) >= distance) {\n if (sum - h / 2 >= distance) {\n i--;\n }\n break;\n }\n }\n }\n else {\n // search backward\n while (i > 0) {\n const h = getItemSize(cache, --i);\n if ((sum -= h) <= distance) {\n if (sum + h / 2 < distance) {\n i++;\n }\n break;\n }\n }\n }\n return clamp(i, 0, cache._length - 1);\n};\nexport const findStartIndexWithOffset = (cache, offset, initialIndex) => {\n return findIndex(cache, initialIndex, offset - computeOffset(cache, initialIndex));\n};\nexport const hasUnmeasuredItemsInRange = (cache, startIndex, endIndex) => {\n return cache._sizes.slice(startIndex, endIndex + 1).includes(UNCACHED);\n};\nexport const estimateDefaultItemSize = (cache) => {\n const measuredSizes = cache._sizes.filter((s) => s !== UNCACHED);\n // This function will be called after measurement so measured size array must be longer than 0\n const startItemSize = measuredSizes[0];\n cache._defaultItemSize = measuredSizes.every((s) => s === startItemSize)\n ? // Maybe a fixed size array\n startItemSize\n : // Maybe a variable size array\n median(measuredSizes);\n};\nconst appendCache = (cache, length, prepend) => {\n const key = prepend ? \"unshift\" : \"push\";\n for (let i = cache._length; i < length; i++) {\n cache._sizes[key](UNCACHED);\n // first offset must be 0\n cache._offsets.push(i === 0 ? 0 : UNCACHED);\n }\n cache._length = length;\n};\nexport const initCache = (length, itemSize) => {\n const cache = {\n _defaultItemSize: itemSize,\n _length: 0,\n _measuredOffsetIndex: 0,\n _sizes: [],\n _offsets: [],\n };\n appendCache(cache, length);\n return cache;\n};\nexport const updateCacheLength = (cache, length, isShift) => {\n const diff = length - cache._length;\n const isRemove = diff < 0;\n let shift;\n if (isRemove) {\n // Removed\n shift = (isShift ? cache._sizes.splice(0, -diff) : cache._sizes.splice(diff)).reduce((acc, removed) => acc + (removed === UNCACHED ? cache._defaultItemSize : removed), 0);\n cache._offsets.splice(diff);\n }\n else {\n // Added\n shift = cache._defaultItemSize * diff;\n appendCache(cache, cache._length + diff, isShift);\n }\n cache._measuredOffsetIndex = isShift\n ? // Discard cache for now\n 0\n : // measuredOffsetIndex shouldn't be less than 0 because it makes scrollSize NaN and cause infinite rerender.\n // https://github.com/inokawa/virtua/pull/160\n clamp(length - 1, 0, cache._measuredOffsetIndex);\n cache._length = length;\n return [shift, isRemove];\n};\n//# sourceMappingURL=cache.js.map","import { findStartIndexWithOffset, initCache, getItemSize, computeTotalSize, findIndex as findEndIndex, computeOffset as computeStartOffset, UNCACHED, setItemSize, hasUnmeasuredItemsInRange, estimateDefaultItemSize, updateCacheLength, } from \"./cache\";\nimport { abs, clamp, max, min } from \"./utils\";\nconst calculateJump = (cache, items) => {\n return items.reduce((acc, [index, size]) => {\n return acc + (size - getItemSize(cache, index));\n }, 0);\n};\n// Scroll offset and sizes can have sub-pixel value if window.devicePixelRatio has decimal value\nconst SUBPIXEL_THRESHOLD = 1.5; // 0.5 * 3\nexport const SCROLL_IDLE = 0;\nexport const SCROLL_DOWN = 1;\nexport const SCROLL_UP = 2;\nexport const ACTION_ITEM_RESIZE = 1;\nexport const ACTION_VIEWPORT_RESIZE = 2;\nexport const ACTION_ITEMS_LENGTH_CHANGE = 3;\nexport const ACTION_SCROLL = 4;\nexport const ACTION_BEFORE_MANUAL_SCROLL = 5;\nexport const ACTION_SCROLL_END = 6;\nexport const ACTION_MANUAL_SCROLL = 7;\nexport const UPDATE_SCROLL = 0b00001;\nexport const UPDATE_SIZE = 0b00010;\nexport const UPDATE_JUMP = 0b00100;\nexport const UPDATE_IS_SCROLLING = 0b01000;\nexport const UPDATE_SCROLL_WITH_EVENT = 0b10000;\nexport const createVirtualStore = (elementsCount, itemSize = 40, initialItemCount = 0, cache = initCache(elementsCount, itemSize), isReverse, shouldAutoEstimateItemSize) => {\n let viewportSize = itemSize * max(initialItemCount - 1, 0);\n let scrollOffset = 0;\n let jumpCount = 0;\n let jump = 0;\n let _scrollDirection = SCROLL_IDLE;\n let _isShifting = false;\n let _isManualScrolling = false;\n let _resized = false;\n let _prevRange = [0, initialItemCount];\n const subscribers = new Set();\n const getScrollSize = () => computeTotalSize(cache);\n const getScrollOffsetMax = () => getScrollSize() - viewportSize;\n const clampScrollOffset = (value) => {\n // Scroll offset may exceed min or max especially in Safari's elastic scrolling.\n return clamp(value, 0, getScrollOffsetMax());\n };\n const updateScrollDirection = (dir) => {\n const prev = _scrollDirection;\n _scrollDirection = dir;\n // Return true if scrolling is just started or stopped\n return (_scrollDirection !== prev &&\n (_scrollDirection === SCROLL_IDLE || prev === SCROLL_IDLE));\n };\n return {\n _getCache() {\n return JSON.parse(JSON.stringify(cache));\n },\n _getRange() {\n const [prevStartIndex, prevEndIndex] = _prevRange;\n const start = findStartIndexWithOffset(cache, scrollOffset, \n // Clamp because prevStartIndex may exceed the limit when children decreased a lot after scrolling\n min(prevStartIndex, cache._length - 1));\n const end = findEndIndex(cache, start, viewportSize);\n if (prevStartIndex === start && prevEndIndex === end) {\n return _prevRange;\n }\n return (_prevRange = [start, end]);\n },\n _isUnmeasuredItem(index) {\n return cache._sizes[index] === UNCACHED;\n },\n _hasUnmeasuredItemsInTargetViewport(offset) {\n const startIndex = findStartIndexWithOffset(cache, offset, _prevRange[0] // TODO binary search may be better here\n );\n return hasUnmeasuredItemsInRange(cache, max(0, startIndex - 1), min(cache._length - 1, findEndIndex(cache, startIndex, viewportSize) + 1));\n },\n _getItemOffset(index) {\n const offset = computeStartOffset(cache, index);\n if (isReverse) {\n return offset + max(0, viewportSize - getScrollSize());\n }\n return offset;\n },\n _getItemSize(index) {\n return getItemSize(cache, index);\n },\n _getItemsLength() {\n return cache._length;\n },\n _getScrollOffset() {\n return scrollOffset;\n },\n _getScrollOffsetMax: getScrollOffsetMax,\n _getIsScrolling() {\n return _scrollDirection !== SCROLL_IDLE;\n },\n _getViewportSize() {\n return viewportSize;\n },\n _getCorrectedScrollSize() {\n return max(getScrollSize(), viewportSize);\n },\n _getJumpCount() {\n return jumpCount;\n },\n _flushJump() {\n const prevJump = jump;\n jump = 0;\n return prevJump;\n },\n _subscribe(target, cb) {\n const sub = [target, cb];\n subscribers.add(sub);\n return () => {\n subscribers.delete(sub);\n };\n },\n _update(type, payload) {\n let shouldSync;\n let mutated = 0;\n switch (type) {\n case ACTION_ITEM_RESIZE: {\n const updated = payload.filter(([index, size]) => cache._sizes[index] !== size);\n // Skip if all items are cached and not updated\n if (!updated.length) {\n break;\n }\n // Calculate jump\n let diff = 0;\n if (_isShifting || _isManualScrolling) {\n // Should maintain visible position under specific situations\n if (scrollOffset === 0) {\n // Do nothing to stick to the start\n }\n else if (scrollOffset >\n getScrollOffsetMax() - SUBPIXEL_THRESHOLD) {\n // Keep end to stick to the end\n diff = calculateJump(cache, updated);\n }\n else {\n const [startIndex] = _prevRange;\n // Keep start at mid\n diff = calculateJump(cache, updated.filter(([index]) => index < startIndex));\n }\n }\n else if (_scrollDirection === SCROLL_UP) {\n // We can assume jumps occurred on the upper outside during reverse scrolling\n diff = calculateJump(cache, updated);\n }\n else {\n // Do nothing\n }\n if (diff) {\n jump = diff;\n jumpCount++;\n mutated += UPDATE_JUMP;\n }\n // Update item sizes\n let isNewItemMeasured = false;\n updated.forEach(([index, size]) => {\n if (setItemSize(cache, index, size)) {\n isNewItemMeasured = true;\n }\n });\n // Estimate initial item size from measured sizes\n if (shouldAutoEstimateItemSize &&\n isNewItemMeasured &&\n // TODO support reverse scroll also\n !scrollOffset) {\n estimateDefaultItemSize(cache);\n }\n mutated += UPDATE_SIZE;\n _resized = shouldSync = true;\n break;\n }\n case ACTION_VIEWPORT_RESIZE: {\n if (viewportSize !== payload) {\n viewportSize = payload;\n mutated = UPDATE_SIZE;\n }\n break;\n }\n case ACTION_ITEMS_LENGTH_CHANGE: {\n if (payload[1]) {\n // Calc distance before updating cache\n const distanceToEnd = getScrollOffsetMax() - scrollOffset;\n const [shift, isRemove] = updateCacheLength(cache, payload[0], true);\n const diff = isRemove ? -min(shift, distanceToEnd) : shift;\n jump += diff;\n scrollOffset = clampScrollOffset(scrollOffset + diff);\n jumpCount++;\n mutated = UPDATE_SCROLL + UPDATE_JUMP;\n _isShifting = true;\n }\n else {\n updateCacheLength(cache, payload[0]);\n }\n break;\n }\n case ACTION_SCROLL:\n case ACTION_BEFORE_MANUAL_SCROLL: {\n // Skip if offset is not changed\n if (scrollOffset === payload) {\n break;\n }\n if (type === ACTION_SCROLL) {\n // Scrolling after resizing will be caused by jump compensation\n const isJustResized = _resized;\n _resized = false;\n // Skip scroll direction detection just after resizing because it may result in the opposite direction.\n // Scroll events are dispatched enough so it's ok to skip some of them.\n if ((_scrollDirection === SCROLL_IDLE || !isJustResized) &&\n // Ignore until manual scrolling\n !_isManualScrolling) {\n if (updateScrollDirection(scrollOffset > payload ? SCROLL_UP : SCROLL_DOWN)) {\n mutated += UPDATE_IS_SCROLLING;\n }\n }\n // Ignore manual scroll because it may be called in useEffect/useLayoutEffect and cause the warn below.\n // Warning: flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\n //\n // Update synchronously if scrolled a lot\n shouldSync = abs(scrollOffset - payload) > viewportSize;\n mutated += UPDATE_SCROLL_WITH_EVENT;\n if (!isJustResized) {\n _isShifting = false;\n }\n }\n scrollOffset = clampScrollOffset(payload);\n mutated += UPDATE_SCROLL;\n break;\n }\n case ACTION_SCROLL_END: {\n if (updateScrollDirection(SCROLL_IDLE)) {\n mutated = UPDATE_IS_SCROLLING;\n }\n _isShifting = _isManualScrolling = false;\n break;\n }\n case ACTION_MANUAL_SCROLL: {\n _isManualScrolling = true;\n break;\n }\n }\n if (mutated) {\n subscribers.forEach(([target, cb]) => {\n // Early return to skip React's computation\n if (!(mutated & target)) {\n return;\n }\n cb(shouldSync);\n });\n }\n },\n };\n};\n//# sourceMappingURL=store.js.map","import { useEffect, useLayoutEffect } from \"react\";\n// https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nexport const useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { exists } from \"../core/utils\";\nexport const refKey = \"current\";\nexport const emptyComponents = {};\nconst forEach = (children, elements) => {\n if (Array.isArray(children)) {\n for (const c of children) {\n forEach(c, elements);\n }\n }\n else if (!exists(children) || typeof children === \"boolean\") {\n // filter out, that is the same as React.Children.toArray\n }\n else {\n elements.push(children);\n }\n};\n// Replace React.Children.forEach with our tiny implementation.\n// In our usage, just flatten children array keeping element instances and their keys, React.Children is redundant and slow.\n//\n// - React.Children.toArray is slow because it clones element instance.\n// - React.Children.map is slow because it clones element instance.\n// - React.Children.forEach is slow because it escapes and modifies keys even if they are unused.\n//\n// And React.Children seems to be in maintenance mode so it's unlikely it would be improved and ported to older versions.\n// https://github.com/reactjs/rfcs/pull/61#issuecomment-584402735\nexport const flattenChildren = (children) => {\n const elements = [];\n forEach(children, elements);\n return elements;\n};\n//# sourceMappingURL=utils.js.map","import { useRef } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { refKey } from \"./utils\";\nexport const useLatestRef = (value) => {\n const ref = useRef(value);\n useIsomorphicLayoutEffect(() => {\n ref[refKey] = value;\n }, [value]);\n return ref;\n};\n//# sourceMappingURL=useLatestRef.js.map","import { useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { refKey } from \"./utils\";\nimport { UPDATE_IS_SCROLLING, UPDATE_JUMP, UPDATE_SCROLL, UPDATE_SIZE, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nexport const SELECT_RANGE = UPDATE_SCROLL + UPDATE_SIZE;\nexport const SELECT_SCROLL_SIZE = UPDATE_SIZE;\nexport const SELECT_JUMP_COUNT = UPDATE_JUMP;\nexport const SELECT_IS_SCROLLING = UPDATE_IS_SCROLLING;\nexport const SELECT_ITEM = UPDATE_SIZE;\nexport const useSelector = (store, getSnapShot, target, shouldGetLatest) => {\n const [state, setState] = useState(getSnapShot);\n const getter = useLatestRef(getSnapShot);\n useIsomorphicLayoutEffect(() => {\n const update = () => {\n setState(() => getter[refKey]());\n };\n return store._subscribe(target, (sync) => {\n // TODO batch flushSync to remove shouldGetLatest argument if possible\n // https://github.com/facebook/react/issues/25191\n if (sync) {\n flushSync(update);\n }\n else {\n update();\n }\n });\n }, []);\n // especially for sort of items\n if (shouldGetLatest) {\n const snap = getSnapShot();\n if (state !== snap) {\n setState(snap);\n }\n }\n return state;\n};\n//# sourceMappingURL=useSelector.js.map","import { once } from \"./utils\";\n// The scroll position may be negative value in rtl direction.\n//\n// left right result\n// -100 0 true spec compliant\n// 0 100 false probably Chrome earlier than v85\n// https://github.com/othree/jquery.rtl-scroll-type\nexport const hasNegativeOffsetInRtl = /*#__PURE__*/ once((scrollable) => {\n const key = \"scrollLeft\";\n const prev = scrollable[key];\n scrollable[key] = 1;\n // scrollLeft can be positive under some specific situations even if negative mode, so we use `<` for now.\n const isNegative = scrollable[key] < 1;\n scrollable[key] = prev;\n return isNegative;\n});\n//# sourceMappingURL=environment.js.map","import { hasNegativeOffsetInRtl } from \"./environment\";\nimport { ACTION_SCROLL, ACTION_BEFORE_MANUAL_SCROLL, ACTION_SCROLL_END, UPDATE_SIZE, ACTION_MANUAL_SCROLL, } from \"./store\";\nimport { debounce, throttle, timeout, clamp } from \"./utils\";\n// Infer scroll state also from wheel events\n// Sometimes scroll events do not fire when frame dropped even if the visual have been already scrolled\nconst createOnWheel = (store, isHorizontal, onScrollStopped) => {\n return throttle((e) => {\n if (!store._getIsScrolling()) {\n // Scroll start should be detected with scroll event\n return;\n }\n if (e.ctrlKey) {\n // Probably a pinch-to-zoom gesture\n return;\n }\n // Get delta before checking deltaMode for firefox behavior\n // https://github.com/w3c/uievents/issues/181#issuecomment-392648065\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1392460#c34\n if (isHorizontal ? e.deltaX : e.deltaY) {\n const offset = store._getScrollOffset();\n if (offset > 0 && offset < store._getScrollOffsetMax()) {\n onScrollStopped();\n }\n }\n }, 50);\n};\nexport const createScroller = (store, isHorizontal, isRtl) => {\n let rootElement;\n let scrollToQueue;\n const scrollToKey = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n const getActualScrollSize = () => {\n if (!rootElement)\n return 0;\n // Use element's scrollHeight/scrollWidth instead of stored scrollSize.\n // This is because stored size may differ from the actual size, for example when a new item is added and not yet measured.\n return isHorizontal ? rootElement.scrollWidth : rootElement.scrollHeight;\n };\n const normalizeOffset = (offset, diff) => {\n if (isHorizontal && isRtl) {\n if (hasNegativeOffsetInRtl(rootElement)) {\n return -offset;\n }\n else {\n return diff ? -offset : store._getScrollOffsetMax() - offset;\n }\n }\n return offset;\n };\n const scrollManually = async (getOffset) => {\n if (!rootElement)\n return;\n const getTargetOffset = () => {\n // Adjust if the offset is over the end, to get correct startIndex.\n return clamp(getOffset(), 0, getActualScrollSize() - store._getViewportSize());\n };\n while (true) {\n // Sync viewport to scroll destination\n // In order to scroll to the correct position, mount the items and measure their sizes before scrolling.\n const targetOffset = getTargetOffset();\n store._update(ACTION_BEFORE_MANUAL_SCROLL, targetOffset);\n if (!store._hasUnmeasuredItemsInTargetViewport(targetOffset)) {\n break;\n }\n if (scrollToQueue) {\n // Cancel waiting scrollTo\n scrollToQueue[1]();\n }\n // Wait for the scroll destination items to be measured.\n const unsubscribe = store._subscribe(UPDATE_SIZE, () => {\n scrollToQueue && scrollToQueue[0]();\n });\n try {\n // The measurement will be done asynchronously and the timing is not predictable so we use promise.\n // For example, ResizeObserver may not fire when window is not visible.\n await new Promise((resolve, reject) => {\n let resolved = false;\n const resolveQueue = () => {\n if (resolved)\n return;\n resolved = true;\n resolve();\n scrollToQueue = undefined;\n };\n scrollToQueue = [resolveQueue, reject];\n // In some specific situation with VGrid, the promise never resolved so we resolve it if timed out.\n timeout(resolveQueue, 250);\n });\n }\n catch (e) {\n // canceled\n return;\n }\n finally {\n unsubscribe();\n }\n }\n // Scroll with the updated value\n rootElement[scrollToKey] = normalizeOffset(getTargetOffset());\n store._update(ACTION_MANUAL_SCROLL);\n };\n return {\n _initRoot(root) {\n rootElement = root;\n const syncViewportToScrollPosition = () => {\n store._update(ACTION_SCROLL, normalizeOffset(root[scrollToKey]));\n };\n const onScrollStopped = debounce(() => {\n // Check scroll position once just after scrolling stopped\n syncViewportToScrollPosition();\n store._update(ACTION_SCROLL_END);\n }, 150);\n const onScroll = () => {\n syncViewportToScrollPosition();\n onScrollStopped();\n };\n const onWheel = createOnWheel(store, isHorizontal, onScrollStopped);\n root.addEventListener(\"scroll\", onScroll);\n root.addEventListener(\"wheel\", onWheel, { passive: true });\n return () => {\n root.removeEventListener(\"scroll\", onScroll);\n root.removeEventListener(\"wheel\", onWheel);\n onScrollStopped._cancel();\n };\n },\n _getActualScrollSize: getActualScrollSize,\n _scrollTo(offset) {\n scrollManually(() => offset);\n },\n _scrollBy(offset) {\n offset += store._getScrollOffset();\n scrollManually(() => offset);\n },\n _scrollToIndex(index, align) {\n index = clamp(index, 0, store._getItemsLength() - 1);\n scrollManually(align === \"end\"\n ? () => store._getItemOffset(index) +\n store._getItemSize(index) -\n store._getViewportSize()\n : () => store._getItemOffset(index));\n },\n _fixScrollJump: (jump) => {\n if (!rootElement)\n return;\n rootElement[scrollToKey] += normalizeOffset(jump, true);\n },\n };\n};\nexport const createWindowScroller = (store, isHorizontal) => {\n const scrollToKey = isHorizontal ? \"scrollX\" : \"scrollY\";\n const offsetKey = isHorizontal ? \"offsetLeft\" : \"offsetTop\";\n return {\n _initRoot(rootElement) {\n let visible = false;\n const getOffsetToWindow = (node, offset) => {\n const nodeOffset = offset + node[offsetKey];\n const parent = node.offsetParent;\n if (node === document.body || !parent) {\n return nodeOffset;\n }\n return getOffsetToWindow(parent, nodeOffset);\n };\n const syncViewportToScrollPosition = () => {\n if (!visible)\n return;\n store._update(ACTION_SCROLL, window[scrollToKey] - getOffsetToWindow(rootElement, 0));\n };\n const onScrollStopped = debounce(() => {\n // Check scroll position once just after scrolling stopped\n syncViewportToScrollPosition();\n store._update(ACTION_SCROLL_END);\n }, 150);\n const onScroll = () => {\n syncViewportToScrollPosition();\n onScrollStopped();\n };\n const onWheel = createOnWheel(store, isHorizontal, onScrollStopped);\n const io = new IntersectionObserver(([entry]) => {\n visible = entry.isIntersecting;\n });\n io.observe(rootElement);\n window.addEventListener(\"scroll\", onScroll);\n window.addEventListener(\"wheel\", onWheel, { passive: true });\n return () => {\n io.disconnect();\n window.removeEventListener(\"scroll\", onScroll);\n window.removeEventListener(\"wheel\", onWheel);\n onScrollStopped._cancel();\n };\n },\n _fixScrollJump: (jump) => {\n // TODO support case two window scrollers exist in the same view\n window.scrollBy(isHorizontal ? jump : 0, isHorizontal ? 0 : jump);\n },\n };\n};\n//# sourceMappingURL=scroller.js.map","import { useRef } from \"react\";\nimport { refKey } from \"./utils\";\nexport const useStatic = (init) => {\n const ref = useRef();\n return ref[refKey] || (ref[refKey] = init());\n};\n//# sourceMappingURL=useStatic.js.map","import { ACTION_ITEM_RESIZE, ACTION_VIEWPORT_RESIZE, } from \"./store\";\nimport { exists, max, once } from \"./utils\";\nexport const createResizer = (store, isHorizontal) => {\n let rootElement;\n const sizeKey = isHorizontal ? \"width\" : \"height\";\n const mountedIndexes = new WeakMap();\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizes = [];\n for (const { target, contentRect } of entries) {\n if (target === rootElement) {\n store._update(ACTION_VIEWPORT_RESIZE, contentRect[sizeKey]);\n }\n else {\n const index = mountedIndexes.get(target);\n if (exists(index)) {\n resizes.push([index, contentRect[sizeKey]]);\n }\n }\n }\n if (resizes.length) {\n store._update(ACTION_ITEM_RESIZE, resizes);\n }\n });\n });\n return {\n _observeRoot(root) {\n rootElement = root;\n const ro = getResizeObserver();\n ro.observe(root);\n return () => {\n ro.disconnect();\n };\n },\n _observeItem(el, i) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, i);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\nexport const createWindowResizer = (store, isHorizontal) => {\n const sizeKey = isHorizontal ? \"width\" : \"height\";\n const windowSizeKey = isHorizontal ? \"innerWidth\" : \"innerHeight\";\n const mountedIndexes = new WeakMap();\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizes = [];\n for (const { target, contentRect } of entries) {\n const index = mountedIndexes.get(target);\n if (exists(index)) {\n resizes.push([index, contentRect[sizeKey]]);\n }\n }\n if (resizes.length) {\n store._update(ACTION_ITEM_RESIZE, resizes);\n }\n });\n });\n return {\n _observeRoot() {\n const cb = () => {\n store._update(ACTION_VIEWPORT_RESIZE, window[windowSizeKey]);\n };\n window.addEventListener(\"resize\", cb);\n cb();\n return () => {\n window.removeEventListener(\"resize\", cb);\n getResizeObserver().disconnect();\n };\n },\n _observeItem(el, i) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, i);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\nexport const createGridResizer = (vStore, hStore) => {\n let rootElement;\n const heightKey = \"height\";\n const widthKey = \"width\";\n const mountedIndexes = new WeakMap();\n const maybeCachedRowIndexes = new Set();\n const maybeCachedColIndexes = new Set();\n const sizeCache = new Map();\n const getKey = (rowIndex, colIndex) => `${rowIndex}-${colIndex}`;\n // Initialize ResizeObserver lazily for SSR\n const getResizeObserver = once(() => {\n // https://www.w3.org/TR/resize-observer/#intro\n return new ResizeObserver((entries) => {\n const resizedRows = new Set();\n const resizedCols = new Set();\n for (const { target, contentRect } of entries) {\n if (target === rootElement) {\n vStore._update(ACTION_VIEWPORT_RESIZE, contentRect[heightKey]);\n hStore._update(ACTION_VIEWPORT_RESIZE, contentRect[widthKey]);\n }\n else {\n const cell = mountedIndexes.get(target);\n if (cell) {\n const [rowIndex, colIndex] = cell;\n const key = getKey(rowIndex, colIndex);\n const prevSize = sizeCache.get(key);\n const size = [\n contentRect[heightKey],\n contentRect[widthKey],\n ];\n let rowResized;\n let colResized;\n if (!prevSize) {\n rowResized = colResized = true;\n }\n else {\n if (prevSize[0] !== size[0]) {\n rowResized = true;\n }\n if (prevSize[1] !== size[1]) {\n colResized = true;\n }\n }\n if (rowResized) {\n resizedRows.add(rowIndex);\n }\n if (colResized) {\n resizedCols.add(colIndex);\n }\n if (rowResized || colResized) {\n sizeCache.set(key, size);\n }\n }\n }\n }\n if (resizedRows.size) {\n const heightResizes = [];\n resizedRows.forEach((rowIndex) => {\n let maxHeight = 0;\n maybeCachedColIndexes.forEach((colIndex) => {\n const size = sizeCache.get(getKey(rowIndex, colIndex));\n if (size) {\n maxHeight = max(maxHeight, size[0]);\n }\n });\n if (maxHeight) {\n heightResizes.push([rowIndex, maxHeight]);\n }\n });\n vStore._update(ACTION_ITEM_RESIZE, heightResizes);\n }\n if (resizedCols.size) {\n const widthResizes = [];\n resizedCols.forEach((colIndex) => {\n let maxWidth = 0;\n maybeCachedRowIndexes.forEach((rowIndex) => {\n const size = sizeCache.get(getKey(rowIndex, colIndex));\n if (size) {\n maxWidth = max(maxWidth, size[1]);\n }\n });\n if (maxWidth) {\n widthResizes.push([colIndex, maxWidth]);\n }\n });\n hStore._update(ACTION_ITEM_RESIZE, widthResizes);\n }\n });\n });\n return {\n _observeRoot(root) {\n rootElement = root;\n const ro = getResizeObserver();\n ro.observe(root);\n return () => {\n ro.disconnect();\n };\n },\n _observeItem(el, rowIndex, colIndex) {\n const ro = getResizeObserver();\n mountedIndexes.set(el, [rowIndex, colIndex]);\n maybeCachedRowIndexes.add(rowIndex);\n maybeCachedColIndexes.add(colIndex);\n ro.observe(el);\n return () => {\n mountedIndexes.delete(el);\n ro.unobserve(el);\n };\n },\n };\n};\n//# sourceMappingURL=resizer.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useMemo, } from \"react\";\nexport const Viewport = forwardRef(({ children, attrs, width, height, scrolling }, ref) => {\n return (_jsx(\"div\", { ref: ref, ...attrs, children: _jsx(\"div\", { style: useMemo(() => {\n return {\n position: \"relative\",\n visibility: \"hidden\",\n width: width !== null && width !== void 0 ? width : \"100%\",\n height: height !== null && height !== void 0 ? height : \"100%\",\n pointerEvents: scrolling ? \"none\" : \"auto\",\n };\n }, [width, height, scrolling]), children: children }) }));\n});\n//# sourceMappingURL=Viewport.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useRef, useMemo, } from \"react\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_ITEM, useSelector } from \"./useSelector\";\nimport { refKey } from \"./utils\";\nexport const ListItem = memo(({ _children: children, _resizer: resizer, _store: store, _index: index, _element: Element, _isHorizontal: isHorizontal, _isRtl: isRtl, }) => {\n const ref = useRef(null);\n const offset = useSelector(store, () => store._getItemOffset(index), SELECT_ITEM, true);\n const hide = useSelector(store, () => store._isUnmeasuredItem(index), SELECT_ITEM, true);\n // The index may be changed if elements are inserted to or removed from the start of props.children\n useIsomorphicLayoutEffect(() => resizer._observeItem(ref[refKey], index), [index]);\n return (_jsx(Element, { ref: ref, style: useMemo(() => {\n const leftOrRightKey = isRtl ? \"right\" : \"left\";\n const style = {\n margin: 0,\n padding: 0,\n position: \"absolute\",\n [isHorizontal ? \"height\" : \"width\"]: \"100%\",\n [isHorizontal ? \"top\" : leftOrRightKey]: 0,\n [isHorizontal ? leftOrRightKey : \"top\"]: offset,\n visibility: hide ? \"hidden\" : \"visible\",\n // willChange: \"transform\",\n };\n if (isHorizontal) {\n style.display = \"flex\";\n }\n return style;\n }, [offset, hide]), children: children }));\n});\n//# sourceMappingURL=ListItem.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useRef, useMemo, forwardRef, useImperativeHandle, useEffect, } from \"react\";\nimport { UPDATE_SCROLL_WITH_EVENT, ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { exists, max, min, values } from \"../core/utils\";\nimport { createScroller } from \"../core/scroller\";\nimport { emptyComponents, flattenChildren, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { createResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport, } from \"./Viewport\";\nimport { ListItem } from \"./ListItem\";\n/**\n * Virtualized list component. See {@link VListProps} and {@link VListHandle}.\n */\nexport const VList = forwardRef(({ children, overscan = 4, initialItemSize, initialItemCount, shift, horizontal: horizontalProp, mode, cache, components: { Root: Viewport = DefaultViewport, Item: ItemElement = \"div\", } = emptyComponents, onScroll: onScrollProp, onScrollStop: onScrollStopProp, onRangeChange: onRangeChangeProp, ...viewportAttrs }, ref) => {\n // Memoize element array\n const elements = useMemo(() => flattenChildren(children), [children]);\n const count = elements.length;\n const onScroll = useLatestRef(onScrollProp);\n const onScrollStop = useLatestRef(onScrollStopProp);\n const [store, resizer, scroller, isHorizontal, isRtl] = useStatic(() => {\n const _isHorizontal = !!horizontalProp;\n const _isRtl = mode === \"rtl\";\n const _store = createVirtualStore(count, initialItemSize, initialItemCount, cache, mode === \"reverse\", !initialItemSize);\n return [\n _store,\n createResizer(_store, _isHorizontal),\n createScroller(_store, _isHorizontal, _isRtl),\n _isHorizontal,\n _isRtl,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (count !== store._getItemsLength()) {\n store._update(ACTION_ITEMS_LENGTH_CHANGE, [count, shift]);\n }\n const [startIndex, endIndex] = useSelector(store, store._getRange, SELECT_RANGE);\n const scrolling = useSelector(store, store._getIsScrolling, SELECT_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, SELECT_JUMP_COUNT);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const cleanup = scroller._initRoot(root);\n const cleanupOnScroll = store._subscribe(UPDATE_SCROLL_WITH_EVENT, () => {\n onScroll[refKey] && onScroll[refKey](store._getScrollOffset());\n });\n return () => {\n unobserve();\n cleanup();\n cleanupOnScroll();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = store._flushJump();\n if (!jump)\n return;\n scroller._fixScrollJump(jump);\n }, [jumpCount]);\n useEffect(() => {\n if (!scrolling) {\n onScrollStop[refKey] && onScrollStop[refKey]();\n }\n }, [scrolling]);\n useEffect(() => {\n if (!onRangeChangeProp)\n return;\n onRangeChangeProp(startIndex, endIndex);\n }, [startIndex, endIndex]);\n useImperativeHandle(ref, () => {\n return {\n get cache() {\n return store._getCache();\n },\n get scrollOffset() {\n return store._getScrollOffset();\n },\n get scrollSize() {\n return scroller._getActualScrollSize();\n },\n get viewportSize() {\n return store._getViewportSize();\n },\n scrollToIndex: scroller._scrollToIndex,\n scrollTo: scroller._scrollTo,\n scrollBy: scroller._scrollBy,\n };\n }, []);\n const overscanedStartIndex = max(startIndex - overscan, 0);\n const overscanedEndIndex = min(endIndex + overscan, count - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartIndex; i <= overscanedEndIndex; i++) {\n const e = elements[i];\n const key = e.key;\n res.push(_jsx(ListItem, { _resizer: resizer, _store: store, _index: i, _element: ItemElement, _children: e, _isHorizontal: isHorizontal, _isRtl: isRtl }, exists(key) ? key : \"_\" + i));\n }\n return res;\n }, [elements, overscanedStartIndex, overscanedEndIndex]);\n return (_jsx(Viewport, { ref: rootRef, width: isHorizontal ? scrollSize : undefined, height: isHorizontal ? undefined : scrollSize, scrolling: scrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: isHorizontal ? \"auto hidden\" : \"hidden auto\",\n display: isHorizontal ? \"inline-block\" : \"block\",\n contain: \"strict\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n // https://github.com/bvaughn/react-window/issues/395\n // willChange: \"transform\",\n width: \"100%\",\n height: \"100%\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=VList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useRef, useMemo, forwardRef, useImperativeHandle, } from \"react\";\nimport { ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_ITEM, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { max, min, values } from \"../core/utils\";\nimport { createScroller } from \"../core/scroller\";\nimport { emptyComponents, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { createGridResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport } from \"./Viewport\";\nconst genKey = (i, j) => `${i}-${j}`;\nconst Cell = memo(({ _children: children, _resizer: resizer, _vStore: vStore, _hStore: hStore, _rowIndex: rowIndex, _colIndex: colIndex, _element: Element, _isRtl: isRtl, }) => {\n const ref = useRef(null);\n const top = useSelector(vStore, () => vStore._getItemOffset(rowIndex), SELECT_ITEM, true);\n const left = useSelector(hStore, () => hStore._getItemOffset(colIndex), SELECT_ITEM, true);\n const vHide = useSelector(vStore, () => vStore._isUnmeasuredItem(rowIndex), SELECT_ITEM, true);\n const hHide = useSelector(hStore, () => hStore._isUnmeasuredItem(colIndex), SELECT_ITEM, true);\n const height = useSelector(vStore, () => vStore._getItemSize(rowIndex), SELECT_ITEM, true);\n const width = useSelector(hStore, () => hStore._getItemSize(colIndex), SELECT_ITEM, true);\n // The index may be changed if elements are inserted to or removed from the start of props.children\n useIsomorphicLayoutEffect(() => resizer._observeItem(ref[refKey], rowIndex, colIndex), [colIndex, rowIndex]);\n return (_jsx(Element, { ref: ref, style: useMemo(() => {\n const style = {\n display: \"grid\",\n margin: 0,\n padding: 0,\n position: \"absolute\",\n top: top,\n [isRtl ? \"right\" : \"left\"]: left,\n visibility: vHide || hHide ? \"hidden\" : \"visible\",\n minHeight: height,\n minWidth: width,\n };\n return style;\n }, [top, left, width, height, vHide, hHide]), children: children }));\n});\n/**\n * Virtualized grid component. See {@link VGridProps} and {@link VGridHandle}.\n */\nexport const VGrid = forwardRef(({ children, row: rowCount, col: colCount, cellHeight = 40, cellWidth = 100, overscan = 2, initialRowCount, initialColCount, rtl: rtlProp, components: { Root: Viewport = DefaultViewport, Cell: ItemElement = \"div\", } = emptyComponents, ...viewportAttrs }, ref) => {\n const [vStore, hStore, resizer, vScroller, hScroller, isRtl] = useStatic(() => {\n const _isRtl = !!rtlProp;\n const _vs = createVirtualStore(rowCount, cellHeight, initialRowCount);\n const _hs = createVirtualStore(colCount, cellWidth, initialColCount);\n return [\n _vs,\n _hs,\n createGridResizer(_vs, _hs),\n createScroller(_vs, false, _isRtl),\n createScroller(_hs, true, _isRtl),\n _isRtl,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (rowCount !== vStore._getItemsLength()) {\n vStore._update(ACTION_ITEMS_LENGTH_CHANGE, [rowCount]);\n }\n if (colCount !== hStore._getItemsLength()) {\n hStore._update(ACTION_ITEMS_LENGTH_CHANGE, [colCount]);\n }\n const [startRowIndex, endRowIndex] = useSelector(vStore, vStore._getRange, SELECT_RANGE);\n const [startColIndex, endColIndex] = useSelector(hStore, hStore._getRange, SELECT_RANGE);\n const verticalScrolling = useSelector(vStore, vStore._getIsScrolling, SELECT_IS_SCROLLING);\n const horizontalScrolling = useSelector(hStore, hStore._getIsScrolling, SELECT_IS_SCROLLING);\n const vJumpCount = useSelector(vStore, vStore._getJumpCount, SELECT_JUMP_COUNT);\n const hJumpCount = useSelector(hStore, hStore._getJumpCount, SELECT_JUMP_COUNT);\n const height = useSelector(vStore, vStore._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const width = useSelector(hStore, hStore._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const vCleanup = vScroller._initRoot(root);\n const hCleanup = hScroller._initRoot(root);\n return () => {\n unobserve();\n vCleanup();\n hCleanup();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = vStore._flushJump();\n if (!jump)\n return;\n vScroller._fixScrollJump(jump);\n }, [vJumpCount]);\n useIsomorphicLayoutEffect(() => {\n const jump = hStore._flushJump();\n if (!jump)\n return;\n hScroller._fixScrollJump(jump);\n }, [hJumpCount]);\n useImperativeHandle(ref, () => {\n return {\n get scrollOffset() {\n return [hStore._getScrollOffset(), vStore._getScrollOffset()];\n },\n get scrollSize() {\n return [\n hScroller._getActualScrollSize(),\n vScroller._getActualScrollSize(),\n ];\n },\n get viewportSize() {\n return [hStore._getViewportSize(), vStore._getViewportSize()];\n },\n scrollToIndex(indexX, indexY) {\n hScroller._scrollToIndex(indexX);\n vScroller._scrollToIndex(indexY);\n },\n scrollTo(offsetX, offsetY) {\n hScroller._scrollTo(offsetX);\n vScroller._scrollTo(offsetY);\n },\n scrollBy(offsetX, offsetY) {\n hScroller._scrollBy(offsetX);\n vScroller._scrollBy(offsetY);\n },\n };\n }, []);\n const render = useMemo(() => {\n const cache = new Map();\n return (rowIndex, colIndex) => {\n let e = cache.get(genKey(rowIndex, colIndex));\n if (!e) {\n cache.set(genKey(rowIndex, colIndex), (e = children({ rowIndex, colIndex })));\n }\n return e;\n };\n }, [children]);\n const overscanedStartRowIndex = max(startRowIndex - overscan, 0);\n const overscanedEndRowIndex = min(endRowIndex + overscan, rowCount - 1);\n const overscanedStartColIndex = max(startColIndex - overscan, 0);\n const overscanedEndColIndex = min(endColIndex + overscan, colCount - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartRowIndex; i <= overscanedEndRowIndex; i++) {\n for (let j = overscanedStartColIndex; j <= overscanedEndColIndex; j++) {\n res.push(_jsx(Cell, { _resizer: resizer, _vStore: vStore, _hStore: hStore, _rowIndex: i, _colIndex: j, _element: ItemElement, _children: render(i, j), _isRtl: isRtl }, genKey(i, j)));\n }\n }\n return res;\n }, [\n render,\n overscanedStartRowIndex,\n overscanedEndRowIndex,\n overscanedStartColIndex,\n overscanedEndColIndex,\n ]);\n return (_jsx(Viewport, { ref: rootRef, width: width, height: height, scrolling: verticalScrolling || horizontalScrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: \"auto\",\n contain: \"strict\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n width: \"100%\",\n height: \"100%\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=VGrid.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useRef, useMemo, useEffect, forwardRef, useImperativeHandle, } from \"react\";\nimport { ACTION_ITEMS_LENGTH_CHANGE, createVirtualStore } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { SELECT_IS_SCROLLING, SELECT_JUMP_COUNT, SELECT_RANGE, SELECT_SCROLL_SIZE, useSelector, } from \"./useSelector\";\nimport { exists, max, min, values } from \"../core/utils\";\nimport { createWindowScroller } from \"../core/scroller\";\nimport { emptyComponents, flattenChildren, refKey } from \"./utils\";\nimport { useStatic } from \"./useStatic\";\nimport { useLatestRef } from \"./useLatestRef\";\nimport { createWindowResizer } from \"../core/resizer\";\nimport { Viewport as DefaultViewport, } from \"./Viewport\";\nimport { ListItem } from \"./ListItem\";\n/**\n * Virtualized list component controlled by the window scrolling. See {@link WVListProps} and {@link WVListHandle}.\n */\nexport const WVList = forwardRef(({ children, overscan = 4, initialItemSize, initialItemCount, horizontal: horizontalProp, cache, components: { Root: Viewport = DefaultViewport, Item: ItemElement = \"div\", } = emptyComponents, onScrollStop: onScrollStopProp, onRangeChange: onRangeChangeProp, ...viewportAttrs }, ref) => {\n // Memoize element array\n const elements = useMemo(() => flattenChildren(children), [children]);\n const count = elements.length;\n const onScrollStop = useLatestRef(onScrollStopProp);\n const [store, resizer, scroller, isHorizontal] = useStatic(() => {\n const _isHorizontal = !!horizontalProp;\n const _store = createVirtualStore(count, initialItemSize, initialItemCount, cache, false, !initialItemSize);\n return [\n _store,\n createWindowResizer(_store, _isHorizontal),\n createWindowScroller(_store, _isHorizontal),\n _isHorizontal,\n ];\n });\n // The elements length and cached items length are different just after element is added/removed.\n if (count !== store._getItemsLength()) {\n store._update(ACTION_ITEMS_LENGTH_CHANGE, [count]);\n }\n const [startIndex, endIndex] = useSelector(store, store._getRange, SELECT_RANGE);\n const scrolling = useSelector(store, store._getIsScrolling, SELECT_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, SELECT_JUMP_COUNT);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, SELECT_SCROLL_SIZE, true);\n const rootRef = useRef(null);\n useIsomorphicLayoutEffect(() => {\n const root = rootRef[refKey];\n const unobserve = resizer._observeRoot(root);\n const cleanup = scroller._initRoot(root);\n return () => {\n unobserve();\n cleanup();\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n const jump = store._flushJump();\n if (!jump)\n return;\n scroller._fixScrollJump(jump);\n }, [jumpCount]);\n useEffect(() => {\n if (!scrolling) {\n onScrollStop[refKey] && onScrollStop[refKey]();\n }\n }, [scrolling]);\n useEffect(() => {\n if (!onRangeChangeProp)\n return;\n onRangeChangeProp(startIndex, endIndex);\n }, [startIndex, endIndex]);\n useImperativeHandle(ref, () => {\n return {\n get cache() {\n return store._getCache();\n },\n };\n }, []);\n const overscanedStartIndex = max(startIndex - overscan, 0);\n const overscanedEndIndex = min(endIndex + overscan, count - 1);\n const items = useMemo(() => {\n const res = [];\n for (let i = overscanedStartIndex; i <= overscanedEndIndex; i++) {\n const e = elements[i];\n const key = e.key;\n res.push(_jsx(ListItem, { _resizer: resizer, _store: store, _index: i, _element: ItemElement, _children: e, _isHorizontal: isHorizontal, _isRtl: false }, exists(key) ? key : \"_\" + i));\n }\n return res;\n }, [elements, overscanedStartIndex, overscanedEndIndex]);\n return (_jsx(Viewport, { ref: rootRef, width: isHorizontal ? scrollSize : undefined, height: isHorizontal ? undefined : scrollSize, scrolling: scrolling, attrs: useMemo(() => ({\n ...viewportAttrs,\n style: {\n overflow: \"visible\",\n display: isHorizontal ? \"inline-block\" : \"block\",\n // transform: \"translate3d(0px, 0px, 0px)\",\n // willChange: \"scroll-position\",\n // backfaceVisibility: \"hidden\",\n // https://github.com/bvaughn/react-window/issues/395\n // willChange: \"transform\",\n width: isHorizontal ? \"auto\" : \"100%\",\n height: isHorizontal ? \"100%\" : \"auto\",\n padding: 0,\n margin: 0,\n ...viewportAttrs.style,\n },\n }), values(viewportAttrs)), children: items }));\n});\n//# sourceMappingURL=WVList.js.map"],"names":["min","Math","max","abs","now","Date","values","Object","timeout","setTimeout","clamp","value","minValue","maxValue","exists","v","debounce","fn","ms","id","cancel","clearTimeout","debouncedFn","_cancel","once","called","cache","args","UNCACHED","getItemSize","index","size","_sizes","_defaultItemSize","computeOffset","_length","_measuredOffsetIndex","_offsets","i","top","findIndex","distance","sum","h","findStartIndexWithOffset","offset","initialIndex","appendCache","length","prepend","key","push","updateCacheLength","isShift","diff","isRemove","shift","splice","reduce","acc","removed","calculateJump","items","createVirtualStore","elementsCount","itemSize","initialItemCount","initCache","isReverse","shouldAutoEstimateItemSize","viewportSize","scrollOffset","jumpCount","jump","_scrollDirection","_isShifting","_isManualScrolling","_resized","_prevRange","subscribers","Set","getScrollSize","computeTotalSize","getScrollOffsetMax","clampScrollOffset","updateScrollDirection","dir","prev","_getCache","JSON","parse","stringify","_getRange","prevStartIndex","prevEndIndex","start","end","findEndIndex","_isUnmeasuredItem","_hasUnmeasuredItemsInTargetViewport","startIndex","hasUnmeasuredItemsInRange","endIndex","slice","includes","_getItemOffset","computeStartOffset","_getItemSize","_getItemsLength","_getScrollOffset","_getScrollOffsetMax","_getIsScrolling","_getViewportSize","_getCorrectedScrollSize","_getJumpCount","_flushJump","prevJump","_subscribe","target","cb","sub","add","delete","_update","type","payload","shouldSync","mutated","updated","filter","isNewItemMeasured","forEach","setItemSize","isInitialMeasurement","measuredSizes","s","startItemSize","every","arr","sort","a","b","mid","median","estimateDefaultItemSize","distanceToEnd","UPDATE_SCROLL","isJustResized","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","refKey","emptyComponents","children","elements","Array","isArray","c","flattenChildren","useLatestRef","ref","useRef","useSelector","store","getSnapShot","shouldGetLatest","state","setState","useState","getter","update","sync","flushSync","snap","hasNegativeOffsetInRtl","scrollable","isNegative","createOnWheel","isHorizontal","onScrollStopped","throttle","time","n","e","ctrlKey","deltaX","deltaY","createScroller","isRtl","rootElement","scrollToQueue","scrollToKey","getActualScrollSize","scrollWidth","scrollHeight","normalizeOffset","scrollManually","async","getTargetOffset","getOffset","targetOffset","unsubscribe","Promise","resolve","reject","resolved","resolveQueue","undefined","_initRoot","root","syncViewportToScrollPosition","onScroll","onWheel","addEventListener","passive","removeEventListener","_getActualScrollSize","_scrollTo","_scrollBy","_scrollToIndex","align","_fixScrollJump","createWindowScroller","offsetKey","visible","getOffsetToWindow","node","nodeOffset","parent","offsetParent","document","body","io","IntersectionObserver","entry","isIntersecting","observe","disconnect","scrollBy","useStatic","init","createResizer","sizeKey","mountedIndexes","WeakMap","getResizeObserver","ResizeObserver","entries","resizes","contentRect","get","_observeRoot","ro","_observeItem","el","set","unobserve","createWindowResizer","windowSizeKey","createGridResizer","vStore","hStore","heightKey","widthKey","maybeCachedRowIndexes","maybeCachedColIndexes","sizeCache","Map","getKey","rowIndex","colIndex","resizedRows","resizedCols","cell","prevSize","rowResized","colResized","heightResizes","maxHeight","widthResizes","maxWidth","Viewport","forwardRef","attrs","width","height","scrolling","_jsx","jsx","style","useMemo","position","visibility","pointerEvents","ListItem","memo","_children","_resizer","resizer","_store","_index","_element","Element","_isHorizontal","_isRtl","hide","leftOrRightKey","margin","padding","display","VList","overscan","initialItemSize","horizontal","horizontalProp","mode","components","Root","DefaultViewport","Item","ItemElement","onScrollProp","onScrollStop","onScrollStopProp","onRangeChange","onRangeChangeProp","viewportAttrs","count","scroller","scrollSize","rootRef","cleanup","cleanupOnScroll","useImperativeHandle","scrollToIndex","scrollTo","overscanedStartIndex","overscanedEndIndex","res","overflow","contain","genKey","j","Cell","_vStore","_hStore","_rowIndex","_colIndex","left","vHide","hHide","minHeight","minWidth","VGrid","row","rowCount","col","colCount","cellHeight","cellWidth","initialRowCount","initialColCount","rtl","rtlProp","vScroller","hScroller","_vs","_hs","startRowIndex","endRowIndex","startColIndex","endColIndex","verticalScrolling","horizontalScrolling","vJumpCount","hJumpCount","vCleanup","hCleanup","indexX","indexY","offsetX","offsetY","render","overscanedStartRowIndex","overscanedEndRowIndex","overscanedStartColIndex","overscanedEndColIndex","WVList"],"mappings":"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"}
|