sheet-happens 0.0.47 → 0.0.49
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 +30 -25
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +30 -25
- 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,
|
|
@@ -1756,31 +1758,27 @@ var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cel
|
|
|
1756
1758
|
|
|
1757
1759
|
var _getViewExtent = getViewExtent(view, [newX, newY], freeze, cellLayout),
|
|
1758
1760
|
_getViewExtent$edge = _getViewExtent.edge,
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
+
leftEdge = _getViewExtent$edge[0],
|
|
1762
|
+
topEdge = _getViewExtent$edge[1],
|
|
1761
1763
|
_getViewExtent$viewpo = _getViewExtent.viewport,
|
|
1762
1764
|
scrollW = _getViewExtent$viewpo[0],
|
|
1763
1765
|
scrollH = _getViewExtent$viewpo[1];
|
|
1764
1766
|
|
|
1765
|
-
if (
|
|
1766
|
-
var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX);
|
|
1767
|
-
newX = absoluteToColumn(columnToAbsolute(newX) - scrollW + remainder) + 1;
|
|
1767
|
+
if (leftEdge >= maxColumns) {
|
|
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
|
-
if (
|
|
1771
|
-
var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY);
|
|
1772
|
+
if (topEdge >= maxRows) {
|
|
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];
|
|
1777
1779
|
};
|
|
1778
1780
|
var getViewExtent = function getViewExtent(view, offset, freeze, cellLayout) {
|
|
1779
1781
|
var cellToAbsolute = cellLayout.cellToAbsolute,
|
|
1780
|
-
absoluteToColumn = cellLayout.absoluteToColumn,
|
|
1781
|
-
columnToAbsolute = cellLayout.columnToAbsolute,
|
|
1782
|
-
absoluteToRow = cellLayout.absoluteToRow,
|
|
1783
|
-
rowToAbsolute = cellLayout.rowToAbsolute,
|
|
1784
1782
|
getIndentX = cellLayout.getIndentX,
|
|
1785
1783
|
getIndentY = cellLayout.getIndentY;
|
|
1786
1784
|
var x = offset[0],
|
|
@@ -1796,10 +1794,8 @@ var getViewExtent = function getViewExtent(view, offset, freeze, cellLayout) {
|
|
|
1796
1794
|
var scrollH = h - frozenY - getIndentY();
|
|
1797
1795
|
var leftEdge = x + freeze[0];
|
|
1798
1796
|
var topEdge = y + freeze[1];
|
|
1799
|
-
var rightEdge = absoluteToColumn(columnToAbsolute(leftEdge) + scrollW);
|
|
1800
|
-
var bottomEdge = absoluteToRow(rowToAbsolute(topEdge) + scrollH);
|
|
1801
1797
|
return {
|
|
1802
|
-
edge: [
|
|
1798
|
+
edge: [leftEdge, topEdge],
|
|
1803
1799
|
viewport: [scrollW, scrollH]
|
|
1804
1800
|
};
|
|
1805
1801
|
};
|
|
@@ -1854,20 +1850,25 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1854
1850
|
|
|
1855
1851
|
if (!isSameXY(newOffset, offset)) {
|
|
1856
1852
|
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
1853
|
callback(newOffset, maxXY(maxScroll, scroll));
|
|
1863
1854
|
setTimeout(function () {
|
|
1864
|
-
|
|
1865
|
-
scrollY = scroll[1];
|
|
1866
|
-
element.scrollLeft = scrollX - nudgeX;
|
|
1867
|
-
element.scrollTop = scrollY - nudgeY;
|
|
1855
|
+
updateScrollPosition(element, newOffset, cellLayout);
|
|
1868
1856
|
});
|
|
1869
1857
|
}
|
|
1870
1858
|
};
|
|
1859
|
+
var updateScrollPosition = function updateScrollPosition(element, dataOffset, cellLayout) {
|
|
1860
|
+
var cellToAbsolute = cellLayout.cellToAbsolute;
|
|
1861
|
+
var scroll = cellToAbsolute(dataOffset);
|
|
1862
|
+
|
|
1863
|
+
var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1864
|
+
nudgeX = _cellToAbsolute4[0],
|
|
1865
|
+
nudgeY = _cellToAbsolute4[1];
|
|
1866
|
+
|
|
1867
|
+
var scrollX = scroll[0],
|
|
1868
|
+
scrollY = scroll[1];
|
|
1869
|
+
element.scrollLeft = scrollX - nudgeX;
|
|
1870
|
+
element.scrollTop = scrollY - nudgeY;
|
|
1871
|
+
};
|
|
1871
1872
|
|
|
1872
1873
|
var useAutoSizeColumn = function useAutoSizeColumn(rows, displayData, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth) {
|
|
1873
1874
|
var context = React.useMemo(function () {
|
|
@@ -3726,9 +3727,13 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
3726
3727
|
_props$maxRows = props.maxRows,
|
|
3727
3728
|
maxRows = _props$maxRows === void 0 ? Infinity : _props$maxRows;
|
|
3728
3729
|
React.useLayoutEffect(function () {
|
|
3730
|
+
var overlay = overlayRef.current;
|
|
3731
|
+
if (!overlay) return;
|
|
3729
3732
|
var view = [canvasWidth, canvasHeight];
|
|
3730
3733
|
var freeze = [freezeColumns, freezeRows];
|
|
3731
|
-
|
|
3734
|
+
var newOffset = clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout);
|
|
3735
|
+
setDataOffset(newOffset);
|
|
3736
|
+
updateScrollPosition(overlay, newOffset, cellLayout);
|
|
3732
3737
|
}, [maxRows, maxColumns]);
|
|
3733
3738
|
var hitmapRef = React.useRef(NO_CLICKABLES);
|
|
3734
3739
|
var isFocused = focused || editMode;
|