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.modern.js
CHANGED
|
@@ -1744,6 +1744,8 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
|
|
|
1744
1744
|
var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cellLayout) {
|
|
1745
1745
|
var newX = offset[0],
|
|
1746
1746
|
newY = offset[1];
|
|
1747
|
+
var freezeX = freeze[0],
|
|
1748
|
+
freezeY = freeze[1];
|
|
1747
1749
|
var maxColumns = maxCells[0],
|
|
1748
1750
|
maxRows = maxCells[1];
|
|
1749
1751
|
var absoluteToColumn = cellLayout.absoluteToColumn,
|
|
@@ -1753,31 +1755,27 @@ var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cel
|
|
|
1753
1755
|
|
|
1754
1756
|
var _getViewExtent = getViewExtent(view, [newX, newY], freeze, cellLayout),
|
|
1755
1757
|
_getViewExtent$edge = _getViewExtent.edge,
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
+
leftEdge = _getViewExtent$edge[0],
|
|
1759
|
+
topEdge = _getViewExtent$edge[1],
|
|
1758
1760
|
_getViewExtent$viewpo = _getViewExtent.viewport,
|
|
1759
1761
|
scrollW = _getViewExtent$viewpo[0],
|
|
1760
1762
|
scrollH = _getViewExtent$viewpo[1];
|
|
1761
1763
|
|
|
1762
|
-
if (
|
|
1763
|
-
var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX);
|
|
1764
|
-
newX = absoluteToColumn(columnToAbsolute(newX) - scrollW + remainder) + 1;
|
|
1764
|
+
if (leftEdge >= maxColumns) {
|
|
1765
|
+
var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX + freezeX);
|
|
1766
|
+
newX = Math.max(0, absoluteToColumn(columnToAbsolute(newX + freezeX) - scrollW + remainder) - freezeX + 1);
|
|
1765
1767
|
}
|
|
1766
1768
|
|
|
1767
|
-
if (
|
|
1768
|
-
var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY);
|
|
1769
|
+
if (topEdge >= maxRows) {
|
|
1770
|
+
var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY + freezeY);
|
|
1769
1771
|
|
|
1770
|
-
newY = absoluteToRow(rowToAbsolute(newY) - scrollH + _remainder) + 1;
|
|
1772
|
+
newY = Math.max(0, absoluteToRow(rowToAbsolute(newY + freezeY) - scrollH + _remainder) - freezeY + 1);
|
|
1771
1773
|
}
|
|
1772
1774
|
|
|
1773
1775
|
return [newX, newY];
|
|
1774
1776
|
};
|
|
1775
1777
|
var getViewExtent = function getViewExtent(view, offset, freeze, cellLayout) {
|
|
1776
1778
|
var cellToAbsolute = cellLayout.cellToAbsolute,
|
|
1777
|
-
absoluteToColumn = cellLayout.absoluteToColumn,
|
|
1778
|
-
columnToAbsolute = cellLayout.columnToAbsolute,
|
|
1779
|
-
absoluteToRow = cellLayout.absoluteToRow,
|
|
1780
|
-
rowToAbsolute = cellLayout.rowToAbsolute,
|
|
1781
1779
|
getIndentX = cellLayout.getIndentX,
|
|
1782
1780
|
getIndentY = cellLayout.getIndentY;
|
|
1783
1781
|
var x = offset[0],
|
|
@@ -1793,10 +1791,8 @@ var getViewExtent = function getViewExtent(view, offset, freeze, cellLayout) {
|
|
|
1793
1791
|
var scrollH = h - frozenY - getIndentY();
|
|
1794
1792
|
var leftEdge = x + freeze[0];
|
|
1795
1793
|
var topEdge = y + freeze[1];
|
|
1796
|
-
var rightEdge = absoluteToColumn(columnToAbsolute(leftEdge) + scrollW);
|
|
1797
|
-
var bottomEdge = absoluteToRow(rowToAbsolute(topEdge) + scrollH);
|
|
1798
1794
|
return {
|
|
1799
|
-
edge: [
|
|
1795
|
+
edge: [leftEdge, topEdge],
|
|
1800
1796
|
viewport: [scrollW, scrollH]
|
|
1801
1797
|
};
|
|
1802
1798
|
};
|
|
@@ -1851,20 +1847,25 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1851
1847
|
|
|
1852
1848
|
if (!isSameXY(newOffset, offset)) {
|
|
1853
1849
|
var scroll = cellToAbsolute(newOffset);
|
|
1854
|
-
|
|
1855
|
-
var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1856
|
-
nudgeX = _cellToAbsolute4[0],
|
|
1857
|
-
nudgeY = _cellToAbsolute4[1];
|
|
1858
|
-
|
|
1859
1850
|
callback(newOffset, maxXY(maxScroll, scroll));
|
|
1860
1851
|
setTimeout(function () {
|
|
1861
|
-
|
|
1862
|
-
scrollY = scroll[1];
|
|
1863
|
-
element.scrollLeft = scrollX - nudgeX;
|
|
1864
|
-
element.scrollTop = scrollY - nudgeY;
|
|
1852
|
+
updateScrollPosition(element, newOffset, cellLayout);
|
|
1865
1853
|
});
|
|
1866
1854
|
}
|
|
1867
1855
|
};
|
|
1856
|
+
var updateScrollPosition = function updateScrollPosition(element, dataOffset, cellLayout) {
|
|
1857
|
+
var cellToAbsolute = cellLayout.cellToAbsolute;
|
|
1858
|
+
var scroll = cellToAbsolute(dataOffset);
|
|
1859
|
+
|
|
1860
|
+
var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1861
|
+
nudgeX = _cellToAbsolute4[0],
|
|
1862
|
+
nudgeY = _cellToAbsolute4[1];
|
|
1863
|
+
|
|
1864
|
+
var scrollX = scroll[0],
|
|
1865
|
+
scrollY = scroll[1];
|
|
1866
|
+
element.scrollLeft = scrollX - nudgeX;
|
|
1867
|
+
element.scrollTop = scrollY - nudgeY;
|
|
1868
|
+
};
|
|
1868
1869
|
|
|
1869
1870
|
var useAutoSizeColumn = function useAutoSizeColumn(rows, displayData, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth) {
|
|
1870
1871
|
var context = useMemo(function () {
|
|
@@ -3723,9 +3724,13 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3723
3724
|
_props$maxRows = props.maxRows,
|
|
3724
3725
|
maxRows = _props$maxRows === void 0 ? Infinity : _props$maxRows;
|
|
3725
3726
|
useLayoutEffect(function () {
|
|
3727
|
+
var overlay = overlayRef.current;
|
|
3728
|
+
if (!overlay) return;
|
|
3726
3729
|
var view = [canvasWidth, canvasHeight];
|
|
3727
3730
|
var freeze = [freezeColumns, freezeRows];
|
|
3728
|
-
|
|
3731
|
+
var newOffset = clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout);
|
|
3732
|
+
setDataOffset(newOffset);
|
|
3733
|
+
updateScrollPosition(overlay, newOffset, cellLayout);
|
|
3729
3734
|
}, [maxRows, maxColumns]);
|
|
3730
3735
|
var hitmapRef = useRef(NO_CLICKABLES);
|
|
3731
3736
|
var isFocused = focused || editMode;
|