@tanstack/solid-virtual 3.0.0-beta.14 → 3.0.0-beta.15
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/build/cjs/virtual-core/build/esm/index.js +10 -76
- package/build/cjs/virtual-core/build/esm/index.js.map +1 -1
- package/build/esm/index.js +10 -76
- package/build/esm/index.js.map +1 -1
- package/build/stats.html +1 -1
- package/build/stats.json +20 -20
- package/build/umd/index.development.js +10 -76
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.production.js","sources":["../../../virtual-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * virtual-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nvar props = [\"bottom\", \"height\", \"left\", \"right\", \"top\", \"width\"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug != null && opts.debug()) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug != null && opts.debug()) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\n if (opts.key && opts.debug != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + pad(resultEndTime, 5) + \" /\" + pad(depEndTime, 5) + \" ms\", \"\\n font-size: .6rem;\\n font-weight: bold;\\n color: hsl(\" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + \"deg 100% 31%);\", opts == null ? void 0 : opts.key);\n }\n\n return result;\n };\n}\n\n//\nconst defaultKeyExtractor = index => index;\nconst defaultRangeExtractor = range => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n\n return arr;\n};\n\nconst memoRectCallback = (instance, cb) => {\n let prev = {\n height: -1,\n width: -1\n };\n return rect => {\n if (instance.options.horizontal ? rect.width !== prev.width : rect.height !== prev.height) {\n cb(rect);\n }\n\n prev = rect;\n };\n};\n\nconst observeElementRect = (instance, cb) => {\n const onResize = memoRectCallback(instance, cb);\n const observer = observeRect(instance.scrollElement, rect => {\n onResize(rect);\n });\n\n if (!instance.scrollElement) {\n return;\n }\n\n onResize(instance.scrollElement.getBoundingClientRect());\n observer.observe();\n return () => {\n observer.unobserve();\n };\n};\nconst observeWindowRect = (instance, cb) => {\n const memoizedCallback = memoRectCallback(instance, cb);\n\n const onResize = () => memoizedCallback({\n width: instance.scrollElement.innerWidth,\n height: instance.scrollElement.innerHeight\n });\n\n if (!instance.scrollElement) {\n return;\n }\n\n onResize();\n instance.scrollElement.addEventListener('resize', onResize, {\n capture: false,\n passive: true\n });\n return () => {\n instance.scrollElement.removeEventListener('resize', onResize);\n };\n};\nconst scrollProps = {\n element: ['scrollLeft', 'scrollTop'],\n window: ['scrollX', 'scrollY']\n};\n\nconst createOffsetObserver = mode => {\n return (instance, cb) => {\n if (!instance.scrollElement) {\n return;\n }\n\n const propX = scrollProps[mode][0];\n const propY = scrollProps[mode][1];\n let prevX = instance.scrollElement[propX];\n let prevY = instance.scrollElement[propY];\n\n const scroll = () => {\n cb(instance.scrollElement[instance.options.horizontal ? propX : propY]);\n };\n\n scroll();\n\n const onScroll = e => {\n const target = e.currentTarget;\n const scrollX = target[propX];\n const scrollY = target[propY];\n\n if (instance.options.horizontal ? prevX - scrollX : prevY - scrollY) {\n scroll();\n }\n\n prevX = scrollX;\n prevY = scrollY;\n };\n\n instance.scrollElement.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true\n });\n return () => {\n instance.scrollElement.removeEventListener('scroll', onScroll);\n };\n };\n};\n\nconst observeElementOffset = createOffsetObserver('element');\nconst observeWindowOffset = createOffsetObserver('window');\nconst measureElement = (element, instance) => {\n return element.getBoundingClientRect()[instance.options.horizontal ? 'width' : 'height'];\n};\nconst windowScroll = (offset, canSmooth, instance) => {\n var _instance$scrollEleme;\n (_instance$scrollEleme = instance.scrollElement) == null ? void 0 : _instance$scrollEleme.scrollTo == null ? void 0 : _instance$scrollEleme.scrollTo({\n [instance.options.horizontal ? 'left' : 'top']: offset,\n behavior: canSmooth ? 'smooth' : undefined\n });\n};\nconst elementScroll = (offset, canSmooth, instance) => {\n var _instance$scrollEleme2;\n (_instance$scrollEleme2 = instance.scrollElement) == null ? void 0 : _instance$scrollEleme2.scrollTo == null ? void 0 : _instance$scrollEleme2.scrollTo({\n [instance.options.horizontal ? 'left' : 'top']: offset,\n behavior: canSmooth ? 'smooth' : undefined\n });\n};\nclass Virtualizer {\n constructor(_opts) {\n var _this = this;\n\n this.unsubs = [];\n this.scrollElement = null;\n this.measurementsCache = [];\n this.itemMeasurementsCache = {};\n this.pendingMeasuredCacheIndexes = [];\n this.measureElementCache = {};\n this.range = {\n startIndex: 0,\n endIndex: 0\n };\n\n this.setOptions = opts => {\n Object.entries(opts).forEach(_ref => {\n let [key, value] = _ref;\n if (typeof value === 'undefined') delete opts[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n enableSmoothScroll: true,\n onChange: () => {},\n measureElement,\n initialRect: {\n width: 0,\n height: 0\n },\n ...opts\n };\n };\n\n this.notify = () => {\n var _this$options$onChang, _this$options;\n\n (_this$options$onChang = (_this$options = this.options).onChange) == null ? void 0 : _this$options$onChang.call(_this$options, this);\n };\n\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach(d => d());\n this.unsubs = [];\n this.scrollElement = null;\n };\n\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n\n this._willUpdate = () => {\n const scrollElement = this.options.getScrollElement();\n\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n this.scrollElement = scrollElement;\n this.unsubs.push(this.options.observeElementRect(this, rect => {\n this.scrollRect = rect;\n this.calculateRange();\n }));\n this.unsubs.push(this.options.observeElementOffset(this, offset => {\n this.scrollOffset = offset;\n this.calculateRange();\n }));\n }\n };\n\n this.getSize = () => {\n return this.scrollRect[this.options.horizontal ? 'width' : 'height'];\n };\n\n this.getMeasurements = memo(() => [this.options.count, this.options.paddingStart, this.options.getItemKey, this.itemMeasurementsCache], (count, paddingStart, getItemKey, measurementsCache) => {\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = measurementsCache[key];\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;\n const size = typeof measuredSize === 'number' ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key\n };\n }\n\n this.measurementsCache = measurements;\n return measurements;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getMeasurements',\n debug: () => this.options.debug\n });\n this.calculateRange = memo(() => [this.getMeasurements(), this.getSize(), this.scrollOffset], (measurements, outerSize, scrollOffset) => {\n const range = calculateRange({\n measurements,\n outerSize,\n scrollOffset\n });\n\n if (range.startIndex !== this.range.startIndex || range.endIndex !== this.range.endIndex) {\n this.range = range;\n this.notify();\n }\n\n return this.range;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'calculateRange',\n debug: () => this.options.debug\n });\n this.getIndexes = memo(() => [this.options.rangeExtractor, this.range, this.options.overscan, this.options.count], (rangeExtractor, range, overscan, count) => {\n return rangeExtractor({ ...range,\n overscan,\n count: count\n });\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getIndexes',\n debug: () => this.options.debug\n });\n this.getVirtualItems = memo(() => [this.getIndexes(), this.getMeasurements(), this.options.measureElement], (indexes, measurements, measureElement) => {\n const makeMeasureElement = index => measurableItem => {\n var _this$itemMeasurement;\n\n const item = this.measurementsCache[index];\n\n if (!measurableItem) {\n return;\n }\n\n const measuredItemSize = measureElement(measurableItem, this);\n const itemSize = (_this$itemMeasurement = this.itemMeasurementsCache[item.key]) != null ? _this$itemMeasurement : item.size;\n\n if (measuredItemSize !== itemSize) {\n if (item.start < this.scrollOffset) {\n if (process.env.NODE_ENV !== 'production' && this.options.debug) {\n console.info('correction', measuredItemSize - itemSize);\n }\n\n if (!this.destinationOffset) {\n this._scrollToOffset(this.scrollOffset + (measuredItemSize - itemSize), false);\n }\n }\n\n this.pendingMeasuredCacheIndexes.push(index);\n this.itemMeasurementsCache = { ...this.itemMeasurementsCache,\n [item.key]: measuredItemSize\n };\n this.notify();\n }\n };\n\n const virtualItems = [];\n const currentMeasureElements = {};\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n var _this$measureElementC;\n\n const i = indexes[k];\n const measurement = measurements[i];\n const item = { ...measurement,\n measureElement: currentMeasureElements[i] = (_this$measureElementC = this.measureElementCache[i]) != null ? _this$measureElementC : makeMeasureElement(i)\n };\n virtualItems.push(item);\n }\n\n this.measureElementCache = currentMeasureElements;\n return virtualItems;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getIndexes',\n debug: () => this.options.debug\n });\n\n this.scrollToOffset = function (toOffset, _temp) {\n let {\n align\n } = _temp === void 0 ? {\n align: 'start'\n } : _temp;\n const offset = _this.scrollOffset;\n\n const size = _this.getSize();\n\n if (align === 'auto') {\n if (toOffset <= offset) {\n align = 'start';\n } else if (toOffset >= offset + size) {\n align = 'end';\n } else {\n align = 'start';\n }\n }\n\n if (align === 'start') {\n _this._scrollToOffset(toOffset, true);\n } else if (align === 'end') {\n _this._scrollToOffset(toOffset - size, true);\n } else if (align === 'center') {\n _this._scrollToOffset(toOffset - size / 2, true);\n }\n };\n\n this.scrollToIndex = function (index, _temp2) {\n let {\n align,\n ...rest\n } = _temp2 === void 0 ? {\n align: 'auto'\n } : _temp2;\n\n const measurements = _this.getMeasurements();\n\n const offset = _this.scrollOffset;\n\n const size = _this.getSize();\n\n const {\n count\n } = _this.options;\n const measurement = measurements[Math.max(0, Math.min(index, count - 1))];\n\n if (!measurement) {\n return;\n }\n\n if (align === 'auto') {\n if (measurement.end >= offset + size - _this.options.scrollPaddingEnd) {\n align = 'end';\n } else if (measurement.start <= offset + _this.options.scrollPaddingStart) {\n align = 'start';\n } else {\n return;\n }\n }\n\n const toOffset = align === 'end' ? measurement.end + _this.options.scrollPaddingEnd : measurement.start - _this.options.scrollPaddingStart;\n\n _this.scrollToOffset(toOffset, {\n align,\n ...rest\n });\n };\n\n this.getTotalSize = () => {\n var _this$getMeasurements;\n\n return (((_this$getMeasurements = this.getMeasurements()[this.options.count - 1]) == null ? void 0 : _this$getMeasurements.end) || this.options.paddingStart) + this.options.paddingEnd;\n };\n\n this._scrollToOffset = (offset, canSmooth) => {\n clearTimeout(this.scrollCheckFrame);\n this.destinationOffset = offset;\n this.options.scrollToFn(offset, this.options.enableSmoothScroll && canSmooth, this);\n let scrollCheckFrame;\n\n const check = () => {\n let lastOffset = this.scrollOffset;\n this.scrollCheckFrame = scrollCheckFrame = setTimeout(() => {\n if (this.scrollCheckFrame !== scrollCheckFrame) {\n return;\n }\n\n if (this.scrollOffset === lastOffset) {\n this.destinationOffset = undefined;\n return;\n }\n\n lastOffset = this.scrollOffset;\n check();\n }, 100);\n };\n\n check();\n };\n\n this.measure = () => {\n this.itemMeasurementsCache = {};\n this.notify();\n };\n\n this.setOptions(_opts);\n this.scrollRect = this.options.initialRect;\n this.scrollOffset = this.options.initialOffset;\n }\n\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nfunction calculateRange(_ref2) {\n let {\n measurements,\n outerSize,\n scrollOffset\n } = _ref2;\n const count = measurements.length - 1;\n\n const getOffset = index => measurements[index].start;\n\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n\n return {\n startIndex,\n endIndex\n };\n}\n\nexport { Virtualizer, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, memo, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll };\n//# sourceMappingURL=index.js.map\n","import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core';\nexport * from '@tanstack/virtual-core';\n\nimport { createSignal, onMount, onCleanup, createComputed, mergeProps } from 'solid-js';\nimport { createStore, reconcile } from 'solid-js/store';\n\nfunction createVirtualizerBase<TScrollElement, TItemElement = unknown>(\n options: VirtualizerOptions<TScrollElement, TItemElement>\n): Virtualizer<TScrollElement, TItemElement> {\n const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = mergeProps(options);\n\n const instance = new Virtualizer<TScrollElement, TItemElement>(\n resolvedOptions\n );\n\n const [virtualItems, setVirtualItems] = createStore(\n instance.getVirtualItems()\n );\n const [totalSize, setTotalSize] = createSignal(instance.getTotalSize());\n\n const handler = {\n get(\n target: Virtualizer<TScrollElement, TItemElement>,\n prop: keyof Virtualizer<TScrollElement, TItemElement>\n ) {\n switch (prop) {\n case 'getVirtualItems':\n return () => virtualItems;\n case 'getTotalSize':\n return () => totalSize();\n default:\n return Reflect.get(target, prop);\n }\n },\n };\n\n const virtualizer = new Proxy(instance, handler);\n virtualizer.setOptions(resolvedOptions);\n\n onMount(() => {\n const cleanup = virtualizer._didMount();\n virtualizer._willUpdate();\n onCleanup(cleanup);\n });\n\n createComputed(() => {\n virtualizer.setOptions(mergeProps(resolvedOptions, options, {\n onChange: (instance: Virtualizer<TScrollElement, TItemElement> ) => {\n instance._willUpdate();\n setVirtualItems(\n reconcile(instance.getVirtualItems(), {\n key: 'index',\n })\n );\n setTotalSize(instance.getTotalSize());\n options.onChange?.(instance);\n }}))\n virtualizer.measure()\n })\n\n return virtualizer;\n}\n\nexport function createVirtualizer<TScrollElement, TItemElement = unknown>(\n options: PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n): Virtualizer<TScrollElement, TItemElement> {\n \n return createVirtualizerBase<TScrollElement, TItemElement>(mergeProps({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll\n }, options));\n}\n\nexport function createWindowVirtualizer<TItemElement = unknown>(\n options: PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'getScrollElement'\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n >\n): Virtualizer<Window, TItemElement> {\n return createVirtualizerBase<Window, TItemElement>(mergeProps({\n getScrollElement: () => (typeof window !== 'undefined' ? window : null!),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n },options,\n ));\n}\n"],"names":["rafId","props","observedNodes","Map","run","changedStates","forEach","state","node","a","b","newRect","getBoundingClientRect","rect","some","prop","push","callbacks","cb","window","requestAnimationFrame","memo","getDeps","fn","opts","result","deps","depTime","key","debug","Date","now","newDeps","length","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","defaultKeyExtractor","defaultRangeExtractor","range","start","startIndex","overscan","end","endIndex","count","arr","i","memoRectCallback","instance","prev","height","width","options","horizontal","observeElementRect","onResize","observer","observe","wasEmpty","size","has","get","set","undefined","hasRectChanged","unobserve","indexOf","splice","cancelAnimationFrame","observeRect","scrollElement","observeWindowRect","memoizedCallback","innerWidth","innerHeight","addEventListener","capture","passive","removeEventListener","scrollProps","element","createOffsetObserver","mode","propX","propY","prevX","prevY","scroll","onScroll","e","target","currentTarget","scrollX","scrollY","observeElementOffset","observeWindowOffset","measureElement","windowScroll","offset","canSmooth","_instance$scrollEleme","scrollTo","behavior","elementScroll","_instance$scrollEleme2","Virtualizer","constructor","_opts","_this","this","unsubs","measurementsCache","itemMeasurementsCache","pendingMeasuredCacheIndexes","measureElementCache","setOptions","Object","entries","_ref","value","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","enableSmoothScroll","initialRect","notify","_this$options$onChang","_this$options","call","cleanup","filter","Boolean","d","_didMount","_willUpdate","getScrollElement","scrollRect","calculateRange","scrollOffset","getSize","getMeasurements","measurements","slice","measuredSize","estimateSize","outerSize","_ref2","low","high","getCurrentValue","middle","currentValue","findNearestBinarySearch","getIndexes","getVirtualItems","indexes","makeMeasureElement","measurableItem","_this$itemMeasurement","item","measuredItemSize","itemSize","destinationOffset","_scrollToOffset","virtualItems","currentMeasureElements","k","len","_this$measureElementC","scrollToOffset","toOffset","_temp","align","scrollToIndex","_temp2","rest","measurement","getTotalSize","_this$getMeasurements","scrollCheckFrame","clearTimeout","scrollToFn","check","lastOffset","setTimeout","measure","createVirtualizerBase","resolvedOptions","mergeProps","setVirtualItems","createStore","totalSize","setTotalSize","createSignal","virtualizer","Proxy","Reflect","onMount","onCleanup","createComputed","reconcile"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.production.js","sources":["../../../virtual-core/build/esm/index.js","../../src/index.tsx"],"sourcesContent":["/**\n * virtual-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug != null && opts.debug()) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n\n if (!depsChanged) {\n return result;\n }\n\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug != null && opts.debug()) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n\n if (opts.key && opts.debug != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n\n const pad = (str, num) => {\n str = String(str);\n\n while (str.length < num) {\n str = ' ' + str;\n }\n\n return str;\n };\n\n console.info(\"%c\\u23F1 \" + pad(resultEndTime, 5) + \" /\" + pad(depEndTime, 5) + \" ms\", \"\\n font-size: .6rem;\\n font-weight: bold;\\n color: hsl(\" + Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120)) + \"deg 100% 31%);\", opts == null ? void 0 : opts.key);\n }\n\n return result;\n };\n}\n\n//\nconst defaultKeyExtractor = index => index;\nconst defaultRangeExtractor = range => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n\n return arr;\n};\n\nconst memoRectCallback = (instance, cb) => {\n let prev = {\n height: -1,\n width: -1\n };\n return rect => {\n if (instance.options.horizontal ? rect.width !== prev.width : rect.height !== prev.height) {\n cb(rect);\n }\n\n prev = rect;\n };\n};\n\nconst observeElementRect = (instance, cb) => {\n const observer = new ResizeObserver(entries => {\n var _entries$, _entries$2;\n\n cb({\n width: (_entries$ = entries[0]) == null ? void 0 : _entries$.contentRect.width,\n height: (_entries$2 = entries[0]) == null ? void 0 : _entries$2.contentRect.height\n });\n });\n\n if (!instance.scrollElement) {\n return;\n }\n\n cb(instance.scrollElement.getBoundingClientRect());\n observer.observe(instance.scrollElement);\n return () => {\n observer.unobserve(instance.scrollElement);\n };\n};\nconst observeWindowRect = (instance, cb) => {\n const memoizedCallback = memoRectCallback(instance, cb);\n\n const onResize = () => memoizedCallback({\n width: instance.scrollElement.innerWidth,\n height: instance.scrollElement.innerHeight\n });\n\n if (!instance.scrollElement) {\n return;\n }\n\n onResize();\n instance.scrollElement.addEventListener('resize', onResize, {\n capture: false,\n passive: true\n });\n return () => {\n instance.scrollElement.removeEventListener('resize', onResize);\n };\n};\nconst scrollProps = {\n element: ['scrollLeft', 'scrollTop'],\n window: ['scrollX', 'scrollY']\n};\n\nconst createOffsetObserver = mode => {\n return (instance, cb) => {\n if (!instance.scrollElement) {\n return;\n }\n\n const propX = scrollProps[mode][0];\n const propY = scrollProps[mode][1];\n let prevX = instance.scrollElement[propX];\n let prevY = instance.scrollElement[propY];\n\n const scroll = () => {\n cb(instance.scrollElement[instance.options.horizontal ? propX : propY]);\n };\n\n scroll();\n\n const onScroll = e => {\n const target = e.currentTarget;\n const scrollX = target[propX];\n const scrollY = target[propY];\n\n if (instance.options.horizontal ? prevX - scrollX : prevY - scrollY) {\n scroll();\n }\n\n prevX = scrollX;\n prevY = scrollY;\n };\n\n instance.scrollElement.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true\n });\n return () => {\n instance.scrollElement.removeEventListener('scroll', onScroll);\n };\n };\n};\n\nconst observeElementOffset = createOffsetObserver('element');\nconst observeWindowOffset = createOffsetObserver('window');\nconst measureElement = (element, instance) => {\n return element.getBoundingClientRect()[instance.options.horizontal ? 'width' : 'height'];\n};\nconst windowScroll = (offset, canSmooth, instance) => {\n var _instance$scrollEleme;\n (_instance$scrollEleme = instance.scrollElement) == null ? void 0 : _instance$scrollEleme.scrollTo == null ? void 0 : _instance$scrollEleme.scrollTo({\n [instance.options.horizontal ? 'left' : 'top']: offset,\n behavior: canSmooth ? 'smooth' : undefined\n });\n};\nconst elementScroll = (offset, canSmooth, instance) => {\n var _instance$scrollEleme2;\n (_instance$scrollEleme2 = instance.scrollElement) == null ? void 0 : _instance$scrollEleme2.scrollTo == null ? void 0 : _instance$scrollEleme2.scrollTo({\n [instance.options.horizontal ? 'left' : 'top']: offset,\n behavior: canSmooth ? 'smooth' : undefined\n });\n};\nclass Virtualizer {\n constructor(_opts) {\n var _this = this;\n\n this.unsubs = [];\n this.scrollElement = null;\n this.measurementsCache = [];\n this.itemMeasurementsCache = {};\n this.pendingMeasuredCacheIndexes = [];\n this.measureElementCache = {};\n this.range = {\n startIndex: 0,\n endIndex: 0\n };\n\n this.setOptions = opts => {\n Object.entries(opts).forEach(_ref => {\n let [key, value] = _ref;\n if (typeof value === 'undefined') delete opts[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n enableSmoothScroll: true,\n onChange: () => {},\n measureElement,\n initialRect: {\n width: 0,\n height: 0\n },\n ...opts\n };\n };\n\n this.notify = () => {\n var _this$options$onChang, _this$options;\n\n (_this$options$onChang = (_this$options = this.options).onChange) == null ? void 0 : _this$options$onChang.call(_this$options, this);\n };\n\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach(d => d());\n this.unsubs = [];\n this.scrollElement = null;\n };\n\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n\n this._willUpdate = () => {\n const scrollElement = this.options.getScrollElement();\n\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n this.scrollElement = scrollElement;\n this.unsubs.push(this.options.observeElementRect(this, rect => {\n this.scrollRect = rect;\n this.calculateRange();\n }));\n this.unsubs.push(this.options.observeElementOffset(this, offset => {\n this.scrollOffset = offset;\n this.calculateRange();\n }));\n }\n };\n\n this.getSize = () => {\n return this.scrollRect[this.options.horizontal ? 'width' : 'height'];\n };\n\n this.getMeasurements = memo(() => [this.options.count, this.options.paddingStart, this.options.getItemKey, this.itemMeasurementsCache], (count, paddingStart, getItemKey, measurementsCache) => {\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = measurementsCache[key];\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;\n const size = typeof measuredSize === 'number' ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key\n };\n }\n\n this.measurementsCache = measurements;\n return measurements;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getMeasurements',\n debug: () => this.options.debug\n });\n this.calculateRange = memo(() => [this.getMeasurements(), this.getSize(), this.scrollOffset], (measurements, outerSize, scrollOffset) => {\n const range = calculateRange({\n measurements,\n outerSize,\n scrollOffset\n });\n\n if (range.startIndex !== this.range.startIndex || range.endIndex !== this.range.endIndex) {\n this.range = range;\n this.notify();\n }\n\n return this.range;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'calculateRange',\n debug: () => this.options.debug\n });\n this.getIndexes = memo(() => [this.options.rangeExtractor, this.range, this.options.overscan, this.options.count], (rangeExtractor, range, overscan, count) => {\n return rangeExtractor({ ...range,\n overscan,\n count: count\n });\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getIndexes',\n debug: () => this.options.debug\n });\n this.getVirtualItems = memo(() => [this.getIndexes(), this.getMeasurements(), this.options.measureElement], (indexes, measurements, measureElement) => {\n const makeMeasureElement = index => measurableItem => {\n var _this$itemMeasurement;\n\n const item = this.measurementsCache[index];\n\n if (!measurableItem) {\n return;\n }\n\n const measuredItemSize = measureElement(measurableItem, this);\n const itemSize = (_this$itemMeasurement = this.itemMeasurementsCache[item.key]) != null ? _this$itemMeasurement : item.size;\n\n if (measuredItemSize !== itemSize) {\n if (item.start < this.scrollOffset) {\n if (process.env.NODE_ENV !== 'production' && this.options.debug) {\n console.info('correction', measuredItemSize - itemSize);\n }\n\n if (!this.destinationOffset) {\n this._scrollToOffset(this.scrollOffset + (measuredItemSize - itemSize), false);\n }\n }\n\n this.pendingMeasuredCacheIndexes.push(index);\n this.itemMeasurementsCache = { ...this.itemMeasurementsCache,\n [item.key]: measuredItemSize\n };\n this.notify();\n }\n };\n\n const virtualItems = [];\n const currentMeasureElements = {};\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n var _this$measureElementC;\n\n const i = indexes[k];\n const measurement = measurements[i];\n const item = { ...measurement,\n measureElement: currentMeasureElements[i] = (_this$measureElementC = this.measureElementCache[i]) != null ? _this$measureElementC : makeMeasureElement(i)\n };\n virtualItems.push(item);\n }\n\n this.measureElementCache = currentMeasureElements;\n return virtualItems;\n }, {\n key: process.env.NODE_ENV !== 'production' && 'getIndexes',\n debug: () => this.options.debug\n });\n\n this.scrollToOffset = function (toOffset, _temp) {\n let {\n align\n } = _temp === void 0 ? {\n align: 'start'\n } : _temp;\n const offset = _this.scrollOffset;\n\n const size = _this.getSize();\n\n if (align === 'auto') {\n if (toOffset <= offset) {\n align = 'start';\n } else if (toOffset >= offset + size) {\n align = 'end';\n } else {\n align = 'start';\n }\n }\n\n if (align === 'start') {\n _this._scrollToOffset(toOffset, true);\n } else if (align === 'end') {\n _this._scrollToOffset(toOffset - size, true);\n } else if (align === 'center') {\n _this._scrollToOffset(toOffset - size / 2, true);\n }\n };\n\n this.scrollToIndex = function (index, _temp2) {\n let {\n align,\n ...rest\n } = _temp2 === void 0 ? {\n align: 'auto'\n } : _temp2;\n\n const measurements = _this.getMeasurements();\n\n const offset = _this.scrollOffset;\n\n const size = _this.getSize();\n\n const {\n count\n } = _this.options;\n const measurement = measurements[Math.max(0, Math.min(index, count - 1))];\n\n if (!measurement) {\n return;\n }\n\n if (align === 'auto') {\n if (measurement.end >= offset + size - _this.options.scrollPaddingEnd) {\n align = 'end';\n } else if (measurement.start <= offset + _this.options.scrollPaddingStart) {\n align = 'start';\n } else {\n return;\n }\n }\n\n const toOffset = align === 'end' ? measurement.end + _this.options.scrollPaddingEnd : measurement.start - _this.options.scrollPaddingStart;\n\n _this.scrollToOffset(toOffset, {\n align,\n ...rest\n });\n };\n\n this.getTotalSize = () => {\n var _this$getMeasurements;\n\n return (((_this$getMeasurements = this.getMeasurements()[this.options.count - 1]) == null ? void 0 : _this$getMeasurements.end) || this.options.paddingStart) + this.options.paddingEnd;\n };\n\n this._scrollToOffset = (offset, canSmooth) => {\n clearTimeout(this.scrollCheckFrame);\n this.destinationOffset = offset;\n this.options.scrollToFn(offset, this.options.enableSmoothScroll && canSmooth, this);\n let scrollCheckFrame;\n\n const check = () => {\n let lastOffset = this.scrollOffset;\n this.scrollCheckFrame = scrollCheckFrame = setTimeout(() => {\n if (this.scrollCheckFrame !== scrollCheckFrame) {\n return;\n }\n\n if (this.scrollOffset === lastOffset) {\n this.destinationOffset = undefined;\n return;\n }\n\n lastOffset = this.scrollOffset;\n check();\n }, 100);\n };\n\n check();\n };\n\n this.measure = () => {\n this.itemMeasurementsCache = {};\n this.notify();\n };\n\n this.setOptions(_opts);\n this.scrollRect = this.options.initialRect;\n this.scrollOffset = this.options.initialOffset;\n }\n\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nfunction calculateRange(_ref2) {\n let {\n measurements,\n outerSize,\n scrollOffset\n } = _ref2;\n const count = measurements.length - 1;\n\n const getOffset = index => measurements[index].start;\n\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n\n return {\n startIndex,\n endIndex\n };\n}\n\nexport { Virtualizer, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, memo, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll };\n//# sourceMappingURL=index.js.map\n","import {\n elementScroll,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n PartialKeys,\n Virtualizer,\n VirtualizerOptions,\n windowScroll,\n} from '@tanstack/virtual-core';\nexport * from '@tanstack/virtual-core';\n\nimport { createSignal, onMount, onCleanup, createComputed, mergeProps } from 'solid-js';\nimport { createStore, reconcile } from 'solid-js/store';\n\nfunction createVirtualizerBase<TScrollElement, TItemElement = unknown>(\n options: VirtualizerOptions<TScrollElement, TItemElement>\n): Virtualizer<TScrollElement, TItemElement> {\n const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = mergeProps(options);\n\n const instance = new Virtualizer<TScrollElement, TItemElement>(\n resolvedOptions\n );\n\n const [virtualItems, setVirtualItems] = createStore(\n instance.getVirtualItems()\n );\n const [totalSize, setTotalSize] = createSignal(instance.getTotalSize());\n\n const handler = {\n get(\n target: Virtualizer<TScrollElement, TItemElement>,\n prop: keyof Virtualizer<TScrollElement, TItemElement>\n ) {\n switch (prop) {\n case 'getVirtualItems':\n return () => virtualItems;\n case 'getTotalSize':\n return () => totalSize();\n default:\n return Reflect.get(target, prop);\n }\n },\n };\n\n const virtualizer = new Proxy(instance, handler);\n virtualizer.setOptions(resolvedOptions);\n\n onMount(() => {\n const cleanup = virtualizer._didMount();\n virtualizer._willUpdate();\n onCleanup(cleanup);\n });\n\n createComputed(() => {\n virtualizer.setOptions(mergeProps(resolvedOptions, options, {\n onChange: (instance: Virtualizer<TScrollElement, TItemElement> ) => {\n instance._willUpdate();\n setVirtualItems(\n reconcile(instance.getVirtualItems(), {\n key: 'index',\n })\n );\n setTotalSize(instance.getTotalSize());\n options.onChange?.(instance);\n }}))\n virtualizer.measure()\n })\n\n return virtualizer;\n}\n\nexport function createVirtualizer<TScrollElement, TItemElement = unknown>(\n options: PartialKeys<\n VirtualizerOptions<TScrollElement, TItemElement>,\n 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'\n >\n): Virtualizer<TScrollElement, TItemElement> {\n \n return createVirtualizerBase<TScrollElement, TItemElement>(mergeProps({\n observeElementRect: observeElementRect,\n observeElementOffset: observeElementOffset,\n scrollToFn: elementScroll\n }, options));\n}\n\nexport function createWindowVirtualizer<TItemElement = unknown>(\n options: PartialKeys<\n VirtualizerOptions<Window, TItemElement>,\n | 'getScrollElement'\n | 'observeElementRect'\n | 'observeElementOffset'\n | 'scrollToFn'\n >\n): Virtualizer<Window, TItemElement> {\n return createVirtualizerBase<Window, TItemElement>(mergeProps({\n getScrollElement: () => (typeof window !== 'undefined' ? window : null!),\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n },options,\n ));\n}\n"],"names":["memo","getDeps","fn","opts","result","deps","depTime","key","debug","Date","now","newDeps","length","some","dep","index","resultTime","onChange","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","defaultKeyExtractor","defaultRangeExtractor","range","start","startIndex","overscan","end","endIndex","count","arr","i","push","observeElementRect","instance","cb","observer","ResizeObserver","entries","_entries$","_entries$2","width","contentRect","height","scrollElement","getBoundingClientRect","observe","unobserve","observeWindowRect","memoizedCallback","prev","rect","options","horizontal","memoRectCallback","onResize","innerWidth","innerHeight","addEventListener","capture","passive","removeEventListener","scrollProps","element","window","createOffsetObserver","mode","propX","propY","prevX","prevY","scroll","onScroll","e","target","currentTarget","scrollX","scrollY","observeElementOffset","observeWindowOffset","measureElement","windowScroll","offset","canSmooth","_instance$scrollEleme","scrollTo","behavior","undefined","elementScroll","_instance$scrollEleme2","Virtualizer","constructor","_opts","_this","this","unsubs","measurementsCache","itemMeasurementsCache","pendingMeasuredCacheIndexes","measureElementCache","setOptions","Object","forEach","_ref","value","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","enableSmoothScroll","initialRect","notify","_this$options$onChang","_this$options","call","cleanup","filter","Boolean","d","_didMount","_willUpdate","getScrollElement","scrollRect","calculateRange","scrollOffset","getSize","getMeasurements","measurements","slice","measuredSize","size","estimateSize","outerSize","_ref2","low","high","getCurrentValue","middle","currentValue","findNearestBinarySearch","getIndexes","getVirtualItems","indexes","makeMeasureElement","measurableItem","_this$itemMeasurement","item","measuredItemSize","itemSize","destinationOffset","_scrollToOffset","virtualItems","currentMeasureElements","k","len","_this$measureElementC","scrollToOffset","toOffset","_temp","align","scrollToIndex","_temp2","rest","measurement","getTotalSize","_this$getMeasurements","scrollCheckFrame","clearTimeout","scrollToFn","check","lastOffset","setTimeout","measure","createVirtualizerBase","resolvedOptions","mergeProps","setVirtualItems","createStore","totalSize","setTotalSize","createSignal","virtualizer","Proxy","get","prop","Reflect","onMount","onCleanup","createComputed","reconcile"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/solid-virtual",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "3.0.0-beta.
|
|
4
|
+
"version": "3.0.0-beta.15",
|
|
5
5
|
"description": "Headless UI for virtualizing scrollable elements in Solid",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/virtual#readme",
|
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
"src"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@tanstack/virtual-core": "3.0.0-beta.14"
|
|
40
|
+
"@tanstack/virtual-core": "3.0.0-beta.15"
|
|
42
41
|
}
|
|
43
42
|
}
|