sheet-happens 0.0.47 → 0.0.48
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/dist/index.js +25 -14
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +25 -14
- package/dist/index.modern.js.map +1 -1
- package/dist/scroll.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1747,6 +1747,8 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
|
|
|
1747
1747
|
var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cellLayout) {
|
|
1748
1748
|
var newX = offset[0],
|
|
1749
1749
|
newY = offset[1];
|
|
1750
|
+
var freezeX = freeze[0],
|
|
1751
|
+
freezeY = freeze[1];
|
|
1750
1752
|
var maxColumns = maxCells[0],
|
|
1751
1753
|
maxRows = maxCells[1];
|
|
1752
1754
|
var absoluteToColumn = cellLayout.absoluteToColumn,
|
|
@@ -1763,14 +1765,14 @@ var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cel
|
|
|
1763
1765
|
scrollH = _getViewExtent$viewpo[1];
|
|
1764
1766
|
|
|
1765
1767
|
if (rightEdge > maxColumns) {
|
|
1766
|
-
var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX);
|
|
1767
|
-
newX = absoluteToColumn(columnToAbsolute(newX) - scrollW + remainder) + 1;
|
|
1768
|
+
var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX + freezeX);
|
|
1769
|
+
newX = Math.max(0, absoluteToColumn(columnToAbsolute(newX + freezeX) - scrollW + remainder) - freezeX + 1);
|
|
1768
1770
|
}
|
|
1769
1771
|
|
|
1770
1772
|
if (bottomEdge > maxRows) {
|
|
1771
|
-
var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY);
|
|
1773
|
+
var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY + freezeY);
|
|
1772
1774
|
|
|
1773
|
-
newY = absoluteToRow(rowToAbsolute(newY) - scrollH + _remainder) + 1;
|
|
1775
|
+
newY = Math.max(0, absoluteToRow(rowToAbsolute(newY + freezeY) - scrollH + _remainder) - freezeY + 1);
|
|
1774
1776
|
}
|
|
1775
1777
|
|
|
1776
1778
|
return [newX, newY];
|
|
@@ -1854,20 +1856,25 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1854
1856
|
|
|
1855
1857
|
if (!isSameXY(newOffset, offset)) {
|
|
1856
1858
|
var scroll = cellToAbsolute(newOffset);
|
|
1857
|
-
|
|
1858
|
-
var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1859
|
-
nudgeX = _cellToAbsolute4[0],
|
|
1860
|
-
nudgeY = _cellToAbsolute4[1];
|
|
1861
|
-
|
|
1862
1859
|
callback(newOffset, maxXY(maxScroll, scroll));
|
|
1863
1860
|
setTimeout(function () {
|
|
1864
|
-
|
|
1865
|
-
scrollY = scroll[1];
|
|
1866
|
-
element.scrollLeft = scrollX - nudgeX;
|
|
1867
|
-
element.scrollTop = scrollY - nudgeY;
|
|
1861
|
+
updateScrollPosition(element, newOffset, cellLayout);
|
|
1868
1862
|
});
|
|
1869
1863
|
}
|
|
1870
1864
|
};
|
|
1865
|
+
var updateScrollPosition = function updateScrollPosition(element, dataOffset, cellLayout) {
|
|
1866
|
+
var cellToAbsolute = cellLayout.cellToAbsolute;
|
|
1867
|
+
var scroll = cellToAbsolute(dataOffset);
|
|
1868
|
+
|
|
1869
|
+
var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1870
|
+
nudgeX = _cellToAbsolute4[0],
|
|
1871
|
+
nudgeY = _cellToAbsolute4[1];
|
|
1872
|
+
|
|
1873
|
+
var scrollX = scroll[0],
|
|
1874
|
+
scrollY = scroll[1];
|
|
1875
|
+
element.scrollLeft = scrollX - nudgeX;
|
|
1876
|
+
element.scrollTop = scrollY - nudgeY;
|
|
1877
|
+
};
|
|
1871
1878
|
|
|
1872
1879
|
var useAutoSizeColumn = function useAutoSizeColumn(rows, displayData, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth) {
|
|
1873
1880
|
var context = React.useMemo(function () {
|
|
@@ -3726,9 +3733,13 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
3726
3733
|
_props$maxRows = props.maxRows,
|
|
3727
3734
|
maxRows = _props$maxRows === void 0 ? Infinity : _props$maxRows;
|
|
3728
3735
|
React.useLayoutEffect(function () {
|
|
3736
|
+
var overlay = overlayRef.current;
|
|
3737
|
+
if (!overlay) return;
|
|
3729
3738
|
var view = [canvasWidth, canvasHeight];
|
|
3730
3739
|
var freeze = [freezeColumns, freezeRows];
|
|
3731
|
-
|
|
3740
|
+
var newOffset = clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout);
|
|
3741
|
+
setDataOffset(newOffset);
|
|
3742
|
+
updateScrollPosition(overlay, newOffset, cellLayout);
|
|
3732
3743
|
}, [maxRows, maxColumns]);
|
|
3733
3744
|
var hitmapRef = React.useRef(NO_CLICKABLES);
|
|
3734
3745
|
var isFocused = focused || editMode;
|