virtua 0.53.1 → 0.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/angular/VGrid.d.ts +5 -1
- package/lib/angular/VList.d.ts +5 -1
- package/lib/angular/VMasonry.d.ts +5 -1
- package/lib/angular/Virtualizer.d.ts +5 -1
- package/lib/angular/WindowVirtualizer.d.ts +5 -1
- package/lib/angular/index.js +368 -352
- package/lib/angular/index.js.map +1 -1
- package/lib/core/index.cjs +101 -108
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.js +193 -200
- package/lib/core/index.js.map +1 -1
- package/lib/index.cjs +413 -404
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +416 -408
- package/lib/index.js.map +1 -1
- package/lib/react/VGrid.d.ts +4 -0
- package/lib/react/VList.d.ts +1 -1
- package/lib/react/VMasonry.d.ts +4 -0
- package/lib/react/Virtualizer.d.ts +4 -0
- package/lib/react/WindowVirtualizer.d.ts +4 -0
- package/lib/react/types.d.ts +1 -1
- package/lib/solid/VGrid.d.ts +4 -0
- package/lib/solid/VList.d.ts +1 -1
- package/lib/solid/VMasonry.d.ts +4 -0
- package/lib/solid/Virtualizer.d.ts +4 -0
- package/lib/solid/WindowVirtualizer.d.ts +4 -0
- package/lib/solid/index.cjs +446 -436
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +410 -400
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +38 -22
- package/lib/solid/index.jsx.map +1 -1
- package/lib/solid/types.d.ts +1 -1
- package/lib/svelte/VGrid.svelte +26 -6
- package/lib/svelte/VGrid.type.d.ts +4 -0
- package/lib/svelte/VList.svelte +2 -0
- package/lib/svelte/VList.type.d.ts +1 -1
- package/lib/svelte/VMasonry.svelte +9 -2
- package/lib/svelte/VMasonry.type.d.ts +4 -0
- package/lib/svelte/Virtualizer.svelte +9 -2
- package/lib/svelte/Virtualizer.type.d.ts +4 -0
- package/lib/svelte/WindowVirtualizer.svelte +9 -2
- package/lib/svelte/WindowVirtualizer.type.d.ts +4 -0
- package/lib/svelte/types.d.ts +1 -1
- package/lib/vue/VGrid.d.ts +4 -0
- package/lib/vue/VList.d.ts +1 -1
- package/lib/vue/VMasonry.d.ts +4 -0
- package/lib/vue/Virtualizer.d.ts +4 -0
- package/lib/vue/WindowVirtualizer.d.ts +4 -0
- package/lib/vue/index.cjs +619 -609
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.js +599 -589
- package/lib/vue/index.js.map +1 -1
- package/package.json +1 -1
package/lib/solid/index.jsx
CHANGED
|
@@ -60,7 +60,7 @@ var UPDATE_SCROLL_END_EVENT = 8;
|
|
|
60
60
|
var getScrollSize = (store) => {
|
|
61
61
|
return max(store.$getTotalSize(), store.$getViewportSize());
|
|
62
62
|
};
|
|
63
|
-
var createVirtualStore = ({ $getRange: getRange, $
|
|
63
|
+
var createVirtualStore = ({ $getRange: getRange, $getItemOffset: getOffset, $getItemSize: getItemSize, $isSizeEqual: isSizeEqual, $getTotalSize: getTotalSize, $getLength: getLength, $setLength: setLength, $isEstimating: isEstimating, $resize: resize }, ssrCount = 0) => {
|
|
64
64
|
let isSSR = !!ssrCount;
|
|
65
65
|
let stateVersion = 1;
|
|
66
66
|
let viewportSize = 0;
|
|
@@ -134,12 +134,12 @@ var createVirtualStore = ({ $getRange: getRange, $findIndex: findIndex, $getItem
|
|
|
134
134
|
}
|
|
135
135
|
return [max(startIndex, 0), min(endIndex, getLength() - 1)];
|
|
136
136
|
},
|
|
137
|
-
$findItemIndex: (offset) => findIndex(offset - startSpacerSize),
|
|
138
137
|
$isUnmeasuredItem: isSizeEqual,
|
|
139
138
|
$getItemOffset: getItemOffset,
|
|
140
139
|
$getItemSize: getItemSize,
|
|
141
140
|
$getItemsLength: getLength,
|
|
142
141
|
$getScrollOffset: () => scrollOffset,
|
|
142
|
+
$getVisibleOffset: getVisibleOffset,
|
|
143
143
|
$isScrolling: () => _scrollDirection !== SCROLL_IDLE,
|
|
144
144
|
$getViewportSize: () => viewportSize,
|
|
145
145
|
$getStartSpacerSize: () => startSpacerSize,
|
|
@@ -236,9 +236,8 @@ var createVirtualStore = ({ $getRange: getRange, $findIndex: findIndex, $getItem
|
|
|
236
236
|
break;
|
|
237
237
|
}
|
|
238
238
|
case 9: {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
applyJump(relayoutJump);
|
|
239
|
+
if (payload != null) {
|
|
240
|
+
applyJump(payload);
|
|
242
241
|
mutated = 1 + 2;
|
|
243
242
|
}
|
|
244
243
|
break;
|
|
@@ -907,8 +906,6 @@ var getBoxStyle = (from, to, inset, edge, zIndex) => {
|
|
|
907
906
|
//#region src/core/layouts/masonry.ts
|
|
908
907
|
var createMasonryLayout = (length, lanesOpt, gap = 0, itemSize, snapshot) => {
|
|
909
908
|
let lanes = max(lanesOpt, 1);
|
|
910
|
-
let nextLanes = lanes;
|
|
911
|
-
let nextGap = gap;
|
|
912
909
|
let defaultItemSize = snapshot && snapshot[1] || itemSize || 40;
|
|
913
910
|
let computedIndex = -1;
|
|
914
911
|
let estimatingIndexes = itemSize ? undefined : new Set();
|
|
@@ -979,7 +976,6 @@ var createMasonryLayout = (length, lanesOpt, gap = 0, itemSize, snapshot) => {
|
|
|
979
976
|
const end = findIndex(getOffset, length, endOffset);
|
|
980
977
|
return [min(findStart(startOffset), end), end];
|
|
981
978
|
},
|
|
982
|
-
$findIndex: (offset) => findIndex(getOffset, length, offset),
|
|
983
979
|
$getItemOffset: getOffset,
|
|
984
980
|
$getItemSize: getSize,
|
|
985
981
|
$isSizeEqual: (index, size = -1) => sizes[index] === size,
|
|
@@ -1037,7 +1033,8 @@ var createMasonryLayout = (length, lanesOpt, gap = 0, itemSize, snapshot) => {
|
|
|
1037
1033
|
}
|
|
1038
1034
|
return 0;
|
|
1039
1035
|
},
|
|
1040
|
-
$relayout: (
|
|
1036
|
+
$relayout: (nextLanes, nextGap = 0, scrollOffset) => {
|
|
1037
|
+
nextLanes = max(nextLanes, 1);
|
|
1041
1038
|
if (nextLanes === lanes && nextGap === gap) {
|
|
1042
1039
|
return;
|
|
1043
1040
|
}
|
|
@@ -1049,10 +1046,6 @@ var createMasonryLayout = (length, lanesOpt, gap = 0, itemSize, snapshot) => {
|
|
|
1049
1046
|
estimatingIndexes = itemSize ? undefined : new Set();
|
|
1050
1047
|
return getOffset(startIndex) - prevStartOffset;
|
|
1051
1048
|
},
|
|
1052
|
-
$setOptions: (lanes, gap = 0) => {
|
|
1053
|
-
nextLanes = max(lanes, 1);
|
|
1054
|
-
nextGap = gap;
|
|
1055
|
-
},
|
|
1056
1049
|
$isEstimating: () => isEstimating,
|
|
1057
1050
|
$snapshot: () => [sizes.slice(), defaultItemSize],
|
|
1058
1051
|
$getLanes: () => lanes,
|
|
@@ -1627,6 +1620,9 @@ var Virtualizer = (props) => {
|
|
|
1627
1620
|
store.$subscribe(8, () => {
|
|
1628
1621
|
props.onScrollEnd?.();
|
|
1629
1622
|
});
|
|
1623
|
+
store.$subscribe(2, () => {
|
|
1624
|
+
props.onResize?.();
|
|
1625
|
+
});
|
|
1630
1626
|
const range = createMemo((prev) => {
|
|
1631
1627
|
stateVersion();
|
|
1632
1628
|
const next = store.$getRange(props.bufferSize);
|
|
@@ -1652,7 +1648,7 @@ var Virtualizer = (props) => {
|
|
|
1652
1648
|
get viewportSize() {
|
|
1653
1649
|
return store.$getViewportSize();
|
|
1654
1650
|
},
|
|
1655
|
-
findItemIndex: store.$
|
|
1651
|
+
findItemIndex: (offset) => layout.$findIndex(offset - store.$getStartSpacerSize()),
|
|
1656
1652
|
getItemOffset: store.$getItemOffset,
|
|
1657
1653
|
getItemSize: store.$getItemSize,
|
|
1658
1654
|
scrollToIndex: (index, opts) => scrollToIndex(driver, store, index, opts),
|
|
@@ -1757,6 +1753,7 @@ var VList = (props) => {
|
|
|
1757
1753
|
"item",
|
|
1758
1754
|
"onScroll",
|
|
1759
1755
|
"onScrollEnd",
|
|
1756
|
+
"onResize",
|
|
1760
1757
|
"style"
|
|
1761
1758
|
]);
|
|
1762
1759
|
return <div {...others} style={{
|
|
@@ -1767,7 +1764,7 @@ var VList = (props) => {
|
|
|
1767
1764
|
height: "100%",
|
|
1768
1765
|
...local.style
|
|
1769
1766
|
}}>
|
|
1770
|
-
<Virtualizer ref={local.ref} data={local.data} bufferSize={local.bufferSize} itemSize={local.itemSize} ssrCount={local.ssrCount} shift={local.shift} horizontal={local.horizontal} keepMounted={local.keepMounted} cache={local.cache} item={local.item} onScroll={local.onScroll} onScrollEnd={local.onScrollEnd}>
|
|
1767
|
+
<Virtualizer ref={local.ref} data={local.data} bufferSize={local.bufferSize} itemSize={local.itemSize} ssrCount={local.ssrCount} shift={local.shift} horizontal={local.horizontal} keepMounted={local.keepMounted} cache={local.cache} item={local.item} onScroll={local.onScroll} onScrollEnd={local.onScrollEnd} onResize={local.onResize}>
|
|
1771
1768
|
{local.children}
|
|
1772
1769
|
</Virtualizer>
|
|
1773
1770
|
</div>;
|
|
@@ -1792,6 +1789,9 @@ var WindowVirtualizer = (props) => {
|
|
|
1792
1789
|
store.$subscribe(8, () => {
|
|
1793
1790
|
props.onScrollEnd?.();
|
|
1794
1791
|
});
|
|
1792
|
+
store.$subscribe(2, () => {
|
|
1793
|
+
props.onResize?.();
|
|
1794
|
+
});
|
|
1795
1795
|
const range = createMemo((prev) => {
|
|
1796
1796
|
stateVersion();
|
|
1797
1797
|
const next = store.$getRange(props.bufferSize);
|
|
@@ -1814,7 +1814,7 @@ var WindowVirtualizer = (props) => {
|
|
|
1814
1814
|
get viewportSize() {
|
|
1815
1815
|
return store.$getViewportSize();
|
|
1816
1816
|
},
|
|
1817
|
-
findItemIndex: store.$
|
|
1817
|
+
findItemIndex: (offset) => layout.$findIndex(offset - store.$getStartSpacerSize()),
|
|
1818
1818
|
getItemOffset: store.$getItemOffset,
|
|
1819
1819
|
getItemSize: store.$getItemSize,
|
|
1820
1820
|
scrollToIndex: (index, opts) => scrollToIndex(driver, store, index, opts)
|
|
@@ -1944,6 +1944,7 @@ var VGrid = (props) => {
|
|
|
1944
1944
|
"onVerticalScroll",
|
|
1945
1945
|
"onHorizontalScroll",
|
|
1946
1946
|
"onScrollEnd",
|
|
1947
|
+
"onResize",
|
|
1947
1948
|
"style"
|
|
1948
1949
|
]);
|
|
1949
1950
|
const rowLayout = createGridLayout(rows, rowHeight, gap);
|
|
@@ -1976,6 +1977,18 @@ var VGrid = (props) => {
|
|
|
1976
1977
|
};
|
|
1977
1978
|
rowStore.$subscribe(8, notifyScrollEnd);
|
|
1978
1979
|
colStore.$subscribe(8, notifyScrollEnd);
|
|
1980
|
+
let resized;
|
|
1981
|
+
const notifyResize = () => {
|
|
1982
|
+
if (!resized) {
|
|
1983
|
+
resized = true;
|
|
1984
|
+
microtask(() => {
|
|
1985
|
+
resized = false;
|
|
1986
|
+
props.onResize && props.onResize();
|
|
1987
|
+
});
|
|
1988
|
+
}
|
|
1989
|
+
};
|
|
1990
|
+
rowStore.$subscribe(2, notifyResize);
|
|
1991
|
+
colStore.$subscribe(2, notifyResize);
|
|
1979
1992
|
createComputed(() => {
|
|
1980
1993
|
rowLayout.$setPinned(props.headerRows, props.footerRows);
|
|
1981
1994
|
colLayout.$setPinned(props.headerCols, props.footerCols);
|
|
@@ -1987,8 +2000,8 @@ var VGrid = (props) => {
|
|
|
1987
2000
|
if (colLength !== colStore.$getItemsLength()) {
|
|
1988
2001
|
colStore.$update(5, [colLength]);
|
|
1989
2002
|
}
|
|
1990
|
-
rowStore.$update(9, rowSizes());
|
|
1991
|
-
colStore.$update(9, colSizes());
|
|
2003
|
+
rowStore.$update(9, rowLayout.$relayout(rowSizes(), rowStore.$getVisibleOffset()));
|
|
2004
|
+
colStore.$update(9, colLayout.$relayout(colSizes(), colStore.$getVisibleOffset()));
|
|
1992
2005
|
});
|
|
1993
2006
|
const rowCount = createMemo(() => stateVersion() && rowStore.$getItemsLength());
|
|
1994
2007
|
const colCount = createMemo(() => stateVersion() && colStore.$getItemsLength());
|
|
@@ -2037,8 +2050,8 @@ var VGrid = (props) => {
|
|
|
2037
2050
|
get viewportWidth() {
|
|
2038
2051
|
return colStore.$getViewportSize();
|
|
2039
2052
|
},
|
|
2040
|
-
findRowIndex:
|
|
2041
|
-
findColIndex:
|
|
2053
|
+
findRowIndex: rowLayout.$findIndex,
|
|
2054
|
+
findColIndex: colLayout.$findIndex,
|
|
2042
2055
|
getRowOffset: rowStore.$getItemOffset,
|
|
2043
2056
|
getColOffset: colStore.$getItemOffset,
|
|
2044
2057
|
getRowSize: rowStore.$getItemSize,
|
|
@@ -2111,6 +2124,7 @@ var VMasonry = (props) => {
|
|
|
2111
2124
|
"cache",
|
|
2112
2125
|
"onScroll",
|
|
2113
2126
|
"onScrollEnd",
|
|
2127
|
+
"onResize",
|
|
2114
2128
|
"style"
|
|
2115
2129
|
]);
|
|
2116
2130
|
const layout = createMasonryLayout(props.data.length, props.lanes, props.gap, itemSize, cache);
|
|
@@ -2126,9 +2140,11 @@ var VMasonry = (props) => {
|
|
|
2126
2140
|
store.$subscribe(8, () => {
|
|
2127
2141
|
props.onScrollEnd?.();
|
|
2128
2142
|
});
|
|
2143
|
+
store.$subscribe(2, () => {
|
|
2144
|
+
props.onResize?.();
|
|
2145
|
+
});
|
|
2129
2146
|
createComputed(() => {
|
|
2130
|
-
layout.$
|
|
2131
|
-
store.$update(9, undefined);
|
|
2147
|
+
store.$update(9, layout.$relayout(props.lanes, props.gap, store.$getVisibleOffset()));
|
|
2132
2148
|
});
|
|
2133
2149
|
const range = createMemo((prev) => {
|
|
2134
2150
|
stateVersion();
|