@tanstack/solid-virtual 3.0.0-beta.12 → 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 +554 -0
- package/build/cjs/virtual-core/build/esm/index.js.map +1 -0
- package/build/esm/index.js +51 -112
- 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 +48 -109
- 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 +3 -4
|
@@ -24,76 +24,6 @@
|
|
|
24
24
|
*
|
|
25
25
|
* @license MIT
|
|
26
26
|
*/
|
|
27
|
-
var props = ["bottom", "height", "left", "right", "top", "width"];
|
|
28
|
-
|
|
29
|
-
var rectChanged = function rectChanged(a, b) {
|
|
30
|
-
if (a === void 0) {
|
|
31
|
-
a = {};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (b === void 0) {
|
|
35
|
-
b = {};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return props.some(function (prop) {
|
|
39
|
-
return a[prop] !== b[prop];
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
var observedNodes = /*#__PURE__*/new Map();
|
|
44
|
-
var rafId;
|
|
45
|
-
|
|
46
|
-
var run = function run() {
|
|
47
|
-
var changedStates = [];
|
|
48
|
-
observedNodes.forEach(function (state, node) {
|
|
49
|
-
var newRect = node.getBoundingClientRect();
|
|
50
|
-
|
|
51
|
-
if (rectChanged(newRect, state.rect)) {
|
|
52
|
-
state.rect = newRect;
|
|
53
|
-
changedStates.push(state);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
changedStates.forEach(function (state) {
|
|
57
|
-
state.callbacks.forEach(function (cb) {
|
|
58
|
-
return cb(state.rect);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
rafId = window.requestAnimationFrame(run);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
function observeRect(node, cb) {
|
|
65
|
-
return {
|
|
66
|
-
observe: function observe() {
|
|
67
|
-
var wasEmpty = observedNodes.size === 0;
|
|
68
|
-
|
|
69
|
-
if (observedNodes.has(node)) {
|
|
70
|
-
observedNodes.get(node).callbacks.push(cb);
|
|
71
|
-
} else {
|
|
72
|
-
observedNodes.set(node, {
|
|
73
|
-
rect: undefined,
|
|
74
|
-
hasRectChanged: false,
|
|
75
|
-
callbacks: [cb]
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (wasEmpty) run();
|
|
80
|
-
},
|
|
81
|
-
unobserve: function unobserve() {
|
|
82
|
-
var state = observedNodes.get(node);
|
|
83
|
-
|
|
84
|
-
if (state) {
|
|
85
|
-
// Remove the callback
|
|
86
|
-
var index = state.callbacks.indexOf(cb);
|
|
87
|
-
if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
|
|
88
|
-
|
|
89
|
-
if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
|
|
90
|
-
|
|
91
|
-
if (!observedNodes.size) cancelAnimationFrame(rafId);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
27
|
function memo(getDeps, fn, opts) {
|
|
98
28
|
let deps = [];
|
|
99
29
|
let result;
|
|
@@ -164,19 +94,23 @@
|
|
|
164
94
|
};
|
|
165
95
|
|
|
166
96
|
const observeElementRect = (instance, cb) => {
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
97
|
+
const observer = new ResizeObserver(entries => {
|
|
98
|
+
var _entries$, _entries$2;
|
|
99
|
+
|
|
100
|
+
cb({
|
|
101
|
+
width: (_entries$ = entries[0]) == null ? void 0 : _entries$.contentRect.width,
|
|
102
|
+
height: (_entries$2 = entries[0]) == null ? void 0 : _entries$2.contentRect.height
|
|
103
|
+
});
|
|
170
104
|
});
|
|
171
105
|
|
|
172
106
|
if (!instance.scrollElement) {
|
|
173
107
|
return;
|
|
174
108
|
}
|
|
175
109
|
|
|
176
|
-
|
|
177
|
-
observer.observe();
|
|
110
|
+
cb(instance.scrollElement.getBoundingClientRect());
|
|
111
|
+
observer.observe(instance.scrollElement);
|
|
178
112
|
return () => {
|
|
179
|
-
observer.unobserve();
|
|
113
|
+
observer.unobserve(instance.scrollElement);
|
|
180
114
|
};
|
|
181
115
|
};
|
|
182
116
|
const observeWindowRect = (instance, cb) => {
|
|
@@ -252,14 +186,14 @@
|
|
|
252
186
|
};
|
|
253
187
|
const windowScroll = (offset, canSmooth, instance) => {
|
|
254
188
|
var _instance$scrollEleme;
|
|
255
|
-
(_instance$scrollEleme = instance.scrollElement) == null ? void 0 : _instance$scrollEleme.scrollTo({
|
|
189
|
+
(_instance$scrollEleme = instance.scrollElement) == null ? void 0 : _instance$scrollEleme.scrollTo == null ? void 0 : _instance$scrollEleme.scrollTo({
|
|
256
190
|
[instance.options.horizontal ? 'left' : 'top']: offset,
|
|
257
191
|
behavior: canSmooth ? 'smooth' : undefined
|
|
258
192
|
});
|
|
259
193
|
};
|
|
260
194
|
const elementScroll = (offset, canSmooth, instance) => {
|
|
261
195
|
var _instance$scrollEleme2;
|
|
262
|
-
(_instance$scrollEleme2 = instance.scrollElement) == null ? void 0 : _instance$scrollEleme2.scrollTo({
|
|
196
|
+
(_instance$scrollEleme2 = instance.scrollElement) == null ? void 0 : _instance$scrollEleme2.scrollTo == null ? void 0 : _instance$scrollEleme2.scrollTo({
|
|
263
197
|
[instance.options.horizontal ? 'left' : 'top']: offset,
|
|
264
198
|
behavior: canSmooth ? 'smooth' : undefined
|
|
265
199
|
});
|
|
@@ -274,6 +208,10 @@
|
|
|
274
208
|
this.itemMeasurementsCache = {};
|
|
275
209
|
this.pendingMeasuredCacheIndexes = [];
|
|
276
210
|
this.measureElementCache = {};
|
|
211
|
+
this.range = {
|
|
212
|
+
startIndex: 0,
|
|
213
|
+
endIndex: 0
|
|
214
|
+
};
|
|
277
215
|
|
|
278
216
|
this.setOptions = opts => {
|
|
279
217
|
Object.entries(opts).forEach(_ref => {
|
|
@@ -328,11 +266,11 @@
|
|
|
328
266
|
this.scrollElement = scrollElement;
|
|
329
267
|
this.unsubs.push(this.options.observeElementRect(this, rect => {
|
|
330
268
|
this.scrollRect = rect;
|
|
331
|
-
this.
|
|
269
|
+
this.calculateRange();
|
|
332
270
|
}));
|
|
333
271
|
this.unsubs.push(this.options.observeElementOffset(this, offset => {
|
|
334
272
|
this.scrollOffset = offset;
|
|
335
|
-
this.
|
|
273
|
+
this.calculateRange();
|
|
336
274
|
}));
|
|
337
275
|
}
|
|
338
276
|
};
|
|
@@ -368,22 +306,30 @@
|
|
|
368
306
|
debug: () => this.options.debug
|
|
369
307
|
});
|
|
370
308
|
this.calculateRange = memo(() => [this.getMeasurements(), this.getSize(), this.scrollOffset], (measurements, outerSize, scrollOffset) => {
|
|
371
|
-
|
|
309
|
+
const range = calculateRange({
|
|
372
310
|
measurements,
|
|
373
311
|
outerSize,
|
|
374
312
|
scrollOffset
|
|
375
313
|
});
|
|
314
|
+
|
|
315
|
+
if (range.startIndex !== this.range.startIndex || range.endIndex !== this.range.endIndex) {
|
|
316
|
+
this.range = range;
|
|
317
|
+
this.notify();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return this.range;
|
|
376
321
|
}, {
|
|
377
322
|
key: 'calculateRange',
|
|
378
323
|
debug: () => this.options.debug
|
|
379
324
|
});
|
|
380
|
-
this.getIndexes = memo(() => [this.options.rangeExtractor, this.
|
|
325
|
+
this.getIndexes = memo(() => [this.options.rangeExtractor, this.range, this.options.overscan, this.options.count], (rangeExtractor, range, overscan, count) => {
|
|
381
326
|
return rangeExtractor({ ...range,
|
|
382
327
|
overscan,
|
|
383
328
|
count: count
|
|
384
329
|
});
|
|
385
330
|
}, {
|
|
386
|
-
key: 'getIndexes'
|
|
331
|
+
key: 'getIndexes',
|
|
332
|
+
debug: () => this.options.debug
|
|
387
333
|
});
|
|
388
334
|
this.getVirtualItems = memo(() => [this.getIndexes(), this.getMeasurements(), this.options.measureElement], (indexes, measurements, measureElement) => {
|
|
389
335
|
const makeMeasureElement = index => measurableItem => {
|
|
@@ -434,7 +380,8 @@
|
|
|
434
380
|
this.measureElementCache = currentMeasureElements;
|
|
435
381
|
return virtualItems;
|
|
436
382
|
}, {
|
|
437
|
-
key: 'getIndexes'
|
|
383
|
+
key: 'getIndexes',
|
|
384
|
+
debug: () => this.options.debug
|
|
438
385
|
});
|
|
439
386
|
|
|
440
387
|
this.scrollToOffset = function (toOffset, _temp) {
|
|
@@ -443,35 +390,27 @@
|
|
|
443
390
|
} = _temp === void 0 ? {
|
|
444
391
|
align: 'start'
|
|
445
392
|
} : _temp;
|
|
393
|
+
const offset = _this.scrollOffset;
|
|
446
394
|
|
|
447
|
-
const
|
|
448
|
-
const offset = _this.scrollOffset;
|
|
449
|
-
|
|
450
|
-
const size = _this.getSize();
|
|
451
|
-
|
|
452
|
-
if (align === 'auto') {
|
|
453
|
-
if (toOffset <= offset) {
|
|
454
|
-
align = 'start';
|
|
455
|
-
} else if (toOffset >= offset + size) {
|
|
456
|
-
align = 'end';
|
|
457
|
-
} else {
|
|
458
|
-
align = 'start';
|
|
459
|
-
}
|
|
460
|
-
}
|
|
395
|
+
const size = _this.getSize();
|
|
461
396
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
397
|
+
if (align === 'auto') {
|
|
398
|
+
if (toOffset <= offset) {
|
|
399
|
+
align = 'start';
|
|
400
|
+
} else if (toOffset >= offset + size) {
|
|
401
|
+
align = 'end';
|
|
402
|
+
} else {
|
|
403
|
+
align = 'start';
|
|
468
404
|
}
|
|
469
|
-
}
|
|
405
|
+
}
|
|
470
406
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
407
|
+
if (align === 'start') {
|
|
408
|
+
_this._scrollToOffset(toOffset, true);
|
|
409
|
+
} else if (align === 'end') {
|
|
410
|
+
_this._scrollToOffset(toOffset - size, true);
|
|
411
|
+
} else if (align === 'center') {
|
|
412
|
+
_this._scrollToOffset(toOffset - size / 2, true);
|
|
413
|
+
}
|
|
475
414
|
};
|
|
476
415
|
|
|
477
416
|
this.scrollToIndex = function (index, _temp2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.development.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({\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({\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\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.notify();\n }));\n this.unsubs.push(this.options.observeElementOffset(this, offset => {\n this.scrollOffset = offset;\n this.notify();\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 === 'development' && 'getMeasurements',\n debug: () => this.options.debug\n });\n this.calculateRange = memo(() => [this.getMeasurements(), this.getSize(), this.scrollOffset], (measurements, outerSize, scrollOffset) => {\n return calculateRange({\n measurements,\n outerSize,\n scrollOffset\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'calculateRange',\n debug: () => this.options.debug\n });\n this.getIndexes = memo(() => [this.options.rangeExtractor, this.calculateRange(), 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 === 'development' && 'getIndexes'\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 === 'development' && 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 === 'development' && 'getIndexes'\n });\n\n this.scrollToOffset = function (toOffset, _temp) {\n let {\n align\n } = _temp === void 0 ? {\n align: 'start'\n } : _temp;\n\n const attempt = () => {\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 attempt();\n requestAnimationFrame(() => {\n attempt();\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":["createVirtualizerBase","options","resolvedOptions","mergeProps","instance","Virtualizer","virtualItems","setVirtualItems","createStore","getVirtualItems","totalSize","setTotalSize","createSignal","getTotalSize","handler","get","target","prop","Reflect","virtualizer","Proxy","setOptions","onMount","cleanup","_didMount","_willUpdate","onCleanup","createComputed","onChange","reconcile","key","measure","createVirtualizer","observeElementRect","observeElementOffset","scrollToFn","elementScroll","createWindowVirtualizer","getScrollElement","window","observeWindowRect","observeWindowOffset","windowScroll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.development.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":["createVirtualizerBase","options","resolvedOptions","mergeProps","instance","Virtualizer","virtualItems","setVirtualItems","createStore","getVirtualItems","totalSize","setTotalSize","createSignal","getTotalSize","handler","get","target","prop","Reflect","virtualizer","Proxy","setOptions","onMount","cleanup","_didMount","_willUpdate","onCleanup","createComputed","onChange","reconcile","key","measure","createVirtualizer","observeElementRect","observeElementOffset","scrollToFn","elementScroll","createWindowVirtualizer","getScrollElement","window","observeWindowRect","observeWindowOffset","windowScroll"],"mappings":"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"}
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
* LICENSE.md file in the root directory of this source tree.
|
|
19
19
|
*
|
|
20
20
|
* @license MIT
|
|
21
|
-
*/
|
|
21
|
+
*/function n(e,t,s){let n,o=[];return()=>{let i;s.key&&null!=s.debug&&s.debug()&&(i=Date.now());const l=e();if(!(l.length!==o.length||l.some(((e,t)=>o[t]!==e))))return n;let r;if(o=l,s.key&&null!=s.debug&&s.debug()&&(r=Date.now()),n=t(...l),null==s||null==s.onChange||s.onChange(n),s.key&&null!=s.debug&&s.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-r))/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info("%c⏱ "+o(t,5)+" /"+o(e,5)+" ms","\n font-size: .6rem;\n font-weight: bold;\n color: hsl("+Math.max(0,Math.min(120-120*n,120))+"deg 100% 31%);",null==s?void 0:s.key)}return n}}const o=e=>e,i=e=>{const t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=s;e++)n.push(e);return n},l=(e,t)=>{const s=new ResizeObserver((e=>{var s,n;t({width:null==(s=e[0])?void 0:s.contentRect.width,height:null==(n=e[0])?void 0:n.contentRect.height})}));if(e.scrollElement)return t(e.scrollElement.getBoundingClientRect()),s.observe(e.scrollElement),()=>{s.unobserve(e.scrollElement)}},r=(e,t)=>{const s=((e,t)=>{let s={height:-1,width:-1};return n=>{(e.options.horizontal?n.width!==s.width:n.height!==s.height)&&t(n),s=n}})(e,t),n=()=>s({width:e.scrollElement.innerWidth,height:e.scrollElement.innerHeight});if(e.scrollElement)return n(),e.scrollElement.addEventListener("resize",n,{capture:!1,passive:!0}),()=>{e.scrollElement.removeEventListener("resize",n)}},a={element:["scrollLeft","scrollTop"],window:["scrollX","scrollY"]},h=e=>(t,s)=>{if(!t.scrollElement)return;const n=a[e][0],o=a[e][1];let i=t.scrollElement[n],l=t.scrollElement[o];const r=()=>{s(t.scrollElement[t.options.horizontal?n:o])};r();const h=e=>{const s=e.currentTarget,a=s[n],h=s[o];(t.options.horizontal?i-a:l-h)&&r(),i=a,l=h};return t.scrollElement.addEventListener("scroll",h,{capture:!1,passive:!0}),()=>{t.scrollElement.removeEventListener("scroll",h)}},c=h("element"),u=h("window"),d=(e,t)=>e.getBoundingClientRect()[t.options.horizontal?"width":"height"],f=(e,t,s)=>{var n;null==(n=s.scrollElement)||null==n.scrollTo||n.scrollTo({[s.options.horizontal?"left":"top"]:e,behavior:t?"smooth":void 0})},m=(e,t,s)=>{var n;null==(n=s.scrollElement)||null==n.scrollTo||n.scrollTo({[s.options.horizontal?"left":"top"]:e,behavior:t?"smooth":void 0})};class g{constructor(e){var t=this;this.unsubs=[],this.scrollElement=null,this.measurementsCache=[],this.itemMeasurementsCache={},this.pendingMeasuredCacheIndexes=[],this.measureElementCache={},this.range={startIndex:0,endIndex:0},this.setOptions=e=>{Object.entries(e).forEach((t=>{let[s,n]=t;void 0===n&&delete e[s]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:o,rangeExtractor:i,enableSmoothScroll:!0,onChange:()=>{},measureElement:d,initialRect:{width:0,height:0},...e}},this.notify=()=>{var e,t;null==(e=(t=this.options).onChange)||e.call(t,this)},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{const e=this.options.getScrollElement();this.scrollElement!==e&&(this.cleanup(),this.scrollElement=e,this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.calculateRange()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{this.scrollOffset=e,this.calculateRange()}))))},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.getMeasurements=n((()=>[this.options.count,this.options.paddingStart,this.options.getItemKey,this.itemMeasurementsCache]),((e,t,s,n)=>{const o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const i=this.measurementsCache.slice(0,o);for(let l=o;l<e;l++){const e=s(l),o=n[e],r=i[l-1]?i[l-1].end:t,a="number"==typeof o?o:this.options.estimateSize(l),h=r+a;i[l]={index:l,start:r,size:a,end:h,key:e}}return this.measurementsCache=i,i}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=n((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,s)=>{const n=function(e){let{measurements:t,outerSize:s,scrollOffset:n}=e;const o=t.length-1,i=((e,t,s,n)=>{for(;e<=t;){const o=(e+t)/2|0,i=s(o);if(i<n)e=o+1;else{if(!(i>n))return o;t=o-1}}return e>0?e-1:0})(0,o,(e=>t[e].start),n);let l=i;for(;l<o&&t[l].end<n+s;)l++;return{startIndex:i,endIndex:l}}({measurements:e,outerSize:t,scrollOffset:s});return n.startIndex===this.range.startIndex&&n.endIndex===this.range.endIndex||(this.range=n,this.notify()),this.range}),{key:!1,debug:()=>this.options.debug}),this.getIndexes=n((()=>[this.options.rangeExtractor,this.range,this.options.overscan,this.options.count]),((e,t,s,n)=>e({...t,overscan:s,count:n})),{key:!1,debug:()=>this.options.debug}),this.getVirtualItems=n((()=>[this.getIndexes(),this.getMeasurements(),this.options.measureElement]),((e,t,s)=>{const n=e=>t=>{var n;const o=this.measurementsCache[e];if(!t)return;const i=s(t,this),l=null!=(n=this.itemMeasurementsCache[o.key])?n:o.size;i!==l&&(o.start<this.scrollOffset&&(this.destinationOffset||this._scrollToOffset(this.scrollOffset+(i-l),!1)),this.pendingMeasuredCacheIndexes.push(e),this.itemMeasurementsCache={...this.itemMeasurementsCache,[o.key]:i},this.notify())},o=[],i={};for(let s=0,r=e.length;s<r;s++){var l;const r=e[s],a={...t[r],measureElement:i[r]=null!=(l=this.measureElementCache[r])?l:n(r)};o.push(a)}return this.measureElementCache=i,o}),{key:!1,debug:()=>this.options.debug}),this.scrollToOffset=function(e,s){let{align:n}=void 0===s?{align:"start"}:s;const o=t.scrollOffset,i=t.getSize();"auto"===n&&(n=e<=o?"start":e>=o+i?"end":"start"),"start"===n?t._scrollToOffset(e,!0):"end"===n?t._scrollToOffset(e-i,!0):"center"===n&&t._scrollToOffset(e-i/2,!0)},this.scrollToIndex=function(e,s){let{align:n,...o}=void 0===s?{align:"auto"}:s;const i=t.getMeasurements(),l=t.scrollOffset,r=t.getSize(),{count:a}=t.options,h=i[Math.max(0,Math.min(e,a-1))];if(!h)return;if("auto"===n)if(h.end>=l+r-t.options.scrollPaddingEnd)n="end";else{if(!(h.start<=l+t.options.scrollPaddingStart))return;n="start"}const c="end"===n?h.end+t.options.scrollPaddingEnd:h.start-t.options.scrollPaddingStart;t.scrollToOffset(c,{align:n,...o})},this.getTotalSize=()=>{var e;return((null==(e=this.getMeasurements()[this.options.count-1])?void 0:e.end)||this.options.paddingStart)+this.options.paddingEnd},this._scrollToOffset=(e,t)=>{let s;clearTimeout(this.scrollCheckFrame),this.destinationOffset=e,this.options.scrollToFn(e,this.options.enableSmoothScroll&&t,this);const n=()=>{let e=this.scrollOffset;this.scrollCheckFrame=s=setTimeout((()=>{this.scrollCheckFrame===s&&(this.scrollOffset!==e?(e=this.scrollOffset,n()):this.destinationOffset=void 0)}),100)};n()},this.measure=()=>{this.itemMeasurementsCache={},this.notify()},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset}}function p(e){const n=t.mergeProps(e),o=new g(n),[i,l]=s.createStore(o.getVirtualItems()),[r,a]=t.createSignal(o.getTotalSize()),h=new Proxy(o,{get(e,t){switch(t){case"getVirtualItems":return()=>i;case"getTotalSize":return()=>r();default:return Reflect.get(e,t)}}});return h.setOptions(n),t.onMount((()=>{const e=h._didMount();h._willUpdate(),t.onCleanup(e)})),t.createComputed((()=>{h.setOptions(t.mergeProps(n,e,{onChange:t=>{t._willUpdate(),l(s.reconcile(t.getVirtualItems(),{key:"index"})),a(t.getTotalSize()),null==e.onChange||e.onChange(t)}})),h.measure()})),h}e.Virtualizer=g,e.createVirtualizer=function(e){return p(t.mergeProps({observeElementRect:l,observeElementOffset:c,scrollToFn:m},e))},e.createWindowVirtualizer=function(e){return p(t.mergeProps({getScrollElement:()=>"undefined"!=typeof window?window:null,observeElementRect:r,observeElementOffset:u,scrollToFn:f},e))},e.defaultKeyExtractor=o,e.defaultRangeExtractor=i,e.elementScroll=m,e.measureElement=d,e.memo=n,e.observeElementOffset=c,e.observeElementRect=l,e.observeWindowOffset=u,e.observeWindowRect=r,e.windowScroll=f,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
22
22
|
//# sourceMappingURL=index.production.js.map
|