virtua 0.8.4 → 0.9.0
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/core/store.d.ts +2 -2
- package/lib/core/utils.d.ts +3 -0
- 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/lib/react/useSelector.d.ts +0 -5
- package/package.json +1 -1
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/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 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, store._getScrollOffsetMax());\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 _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 store._getCorrectedScrollSize();\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 hStore._getCorrectedScrollSize(),\n vStore._getCorrectedScrollSize(),\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","normalizeOffset","scrollManually","async","getTargetOffset","getOffset","targetOffset","unsubscribe","Promise","resolve","reject","resolved","resolveQueue","undefined","_initRoot","root","syncViewportToScrollPosition","onScroll","onWheel","addEventListener","passive","removeEventListener","_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 isArray = Array.isArray;\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// wrap for SSR\nexport const computeStyle = (e) => getComputedStyle(e);\nexport const getStyleNumber = (v) => {\n if (v) {\n return parseFloat(v);\n }\n else {\n return 0;\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, keepEnd) => {\n return items.reduce((acc, [index, size]) => {\n const diff = size - getItemSize(cache, index);\n if (!keepEnd || diff > 0) {\n acc += diff;\n }\n return acc;\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 = (flushSync, 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 const [startIndex] = _prevRange;\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, true);\n }\n else {\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 const delta = payload - scrollOffset;\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(delta < 0 ? 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(delta) > 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 const update = () => {\n subscribers.forEach(([target, cb]) => {\n // Early return to skip React's computation\n if (!(mutated & target)) {\n return;\n }\n cb();\n });\n };\n if (shouldSync) {\n // https://github.com/facebook/react/issues/25191\n // https://github.com/facebook/react/blob/a5fc797db14c6e05d4d5c4dbb22a0dd70d41f5d5/packages/react-reconciler/src/ReactFiberWorkLoop.js#L1443-L1447\n flushSync(update);\n }\n else {\n update();\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, isArray } from \"../core/utils\";\nexport const refKey = \"current\";\nexport const emptyComponents = {};\nconst forEach = (children, elements) => {\n if (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 { useLatestRef } from \"./useLatestRef\";\nimport { refKey } from \"./utils\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nexport const useSelector = (store, getSnapShot, target, shouldGetLatest) => {\n const [state, setState] = useState(getSnapShot);\n const getter = useLatestRef(getSnapShot);\n useIsomorphicLayoutEffect(() => {\n return store._subscribe(target, () => {\n setState(() => getter[refKey]());\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 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, store._getScrollOffsetMax());\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 _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, computeStyle, getStyleNumber, max, once } from \"./utils\";\nconst rootObserveOpts = { box: \"border-box\" };\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 contentRect[isHorizontal ? \"left\" : \"top\"] +\n // contentRect doesn't have paddingRight/paddingBottom so get them from computed style\n // https://www.w3.org/TR/resize-observer/#css-definitions\n getStyleNumber(computeStyle(rootElement)[isHorizontal ? \"paddingRight\" : \"paddingBottom\"]));\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, rootObserveOpts);\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 // contentRect doesn't have paddingRight/paddingBottom so get them from computed style\n // https://www.w3.org/TR/resize-observer/#css-definitions\n // TODO subtract scroll bar width/height\n // https://github.com/w3c/csswg-drafts/issues/3536\n const style = computeStyle(rootElement);\n vStore._update(ACTION_VIEWPORT_RESIZE, contentRect[heightKey] +\n contentRect.top +\n getStyleNumber(style.paddingBottom));\n hStore._update(ACTION_VIEWPORT_RESIZE, contentRect[widthKey] +\n contentRect.left +\n getStyleNumber(style.paddingRight));\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, rootObserveOpts);\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 { UPDATE_SIZE } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { 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), UPDATE_SIZE, true);\n const hide = useSelector(store, () => store._isUnmeasuredItem(index), UPDATE_SIZE, 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, UPDATE_SIZE, UPDATE_JUMP, UPDATE_IS_SCROLLING, UPDATE_SCROLL, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { 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\";\nimport { flushSync } from \"react-dom\";\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(flushSync, 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, UPDATE_SCROLL + UPDATE_SIZE);\n const scrolling = useSelector(store, store._getIsScrolling, UPDATE_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, UPDATE_JUMP);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, UPDATE_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 store._getCorrectedScrollSize();\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, UPDATE_IS_SCROLLING, UPDATE_JUMP, UPDATE_SCROLL, UPDATE_SIZE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { 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\";\nimport { flushSync } from \"react-dom\";\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), UPDATE_SIZE, true);\n const left = useSelector(hStore, () => hStore._getItemOffset(colIndex), UPDATE_SIZE, true);\n const vHide = useSelector(vStore, () => vStore._isUnmeasuredItem(rowIndex), UPDATE_SIZE, true);\n const hHide = useSelector(hStore, () => hStore._isUnmeasuredItem(colIndex), UPDATE_SIZE, true);\n const height = useSelector(vStore, () => vStore._getItemSize(rowIndex), UPDATE_SIZE, true);\n const width = useSelector(hStore, () => hStore._getItemSize(colIndex), UPDATE_SIZE, 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(flushSync, rowCount, cellHeight, initialRowCount);\n const _hs = createVirtualStore(flushSync, 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, UPDATE_SCROLL + UPDATE_SIZE);\n const [startColIndex, endColIndex] = useSelector(hStore, hStore._getRange, UPDATE_SCROLL + UPDATE_SIZE);\n const verticalScrolling = useSelector(vStore, vStore._getIsScrolling, UPDATE_IS_SCROLLING);\n const horizontalScrolling = useSelector(hStore, hStore._getIsScrolling, UPDATE_IS_SCROLLING);\n const vJumpCount = useSelector(vStore, vStore._getJumpCount, UPDATE_JUMP);\n const hJumpCount = useSelector(hStore, hStore._getJumpCount, UPDATE_JUMP);\n const height = useSelector(vStore, vStore._getCorrectedScrollSize, UPDATE_SIZE, true);\n const width = useSelector(hStore, hStore._getCorrectedScrollSize, UPDATE_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 hStore._getCorrectedScrollSize(),\n vStore._getCorrectedScrollSize(),\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, UPDATE_IS_SCROLLING, UPDATE_JUMP, UPDATE_SCROLL, UPDATE_SIZE, createVirtualStore, } from \"../core/store\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { 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\";\nimport { flushSync } from \"react-dom\";\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(flushSync, 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, UPDATE_SCROLL + UPDATE_SIZE);\n const scrolling = useSelector(store, store._getIsScrolling, UPDATE_IS_SCROLLING);\n const jumpCount = useSelector(store, store._getJumpCount, UPDATE_JUMP);\n const scrollSize = useSelector(store, store._getCorrectedScrollSize, UPDATE_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","isArray","Array","timeout","setTimeout","clamp","value","minValue","maxValue","exists","v","debounce","fn","ms","id","cancel","clearTimeout","debouncedFn","_cancel","once","called","cache","args","computeStyle","e","getComputedStyle","getStyleNumber","parseFloat","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","keepEnd","createVirtualStore","flushSync","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","delta","isJustResized","update","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","refKey","emptyComponents","children","elements","c","flattenChildren","useLatestRef","ref","useRef","useSelector","store","getSnapShot","shouldGetLatest","state","setState","useState","getter","snap","hasNegativeOffsetInRtl","scrollable","isNegative","createOnWheel","isHorizontal","onScrollStopped","throttle","time","n","ctrlKey","deltaX","deltaY","createScroller","isRtl","rootElement","scrollToQueue","scrollToKey","normalizeOffset","scrollManually","async","getTargetOffset","getOffset","targetOffset","unsubscribe","Promise","resolve","reject","resolved","resolveQueue","undefined","_initRoot","root","syncViewportToScrollPosition","onScroll","onWheel","addEventListener","passive","removeEventListener","_scrollTo","_scrollBy","_scrollToIndex","align","_fixScrollJump","createWindowScroller","offsetKey","visible","getOffsetToWindow","node","nodeOffset","parent","offsetParent","document","body","io","IntersectionObserver","entry","isIntersecting","observe","disconnect","scrollBy","useStatic","init","rootObserveOpts","box","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","style","paddingBottom","left","paddingRight","cell","prevSize","rowResized","colResized","heightResizes","maxHeight","widthResizes","maxWidth","Viewport","forwardRef","attrs","width","height","scrolling","_jsx","jsx","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","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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"}
|