sheet-happens 0.0.46 → 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 CHANGED
@@ -975,7 +975,6 @@ var useMouse = function useMouse(hitmapRef, selection, knobArea, editMode, editD
975
975
  columnDrag = _ref$current2.columnDrag,
976
976
  rowDrag = _ref$current2.rowDrag,
977
977
  draggingKnob = _ref$current2.draggingKnob,
978
- hitTarget = _ref$current2.hitTarget,
979
978
  _ref$current2$cellLay = _ref$current2.cellLayout,
980
979
  pixelToColumn = _ref$current2$cellLay.pixelToColumn,
981
980
  pixelToRow = _ref$current2$cellLay.pixelToRow,
@@ -1056,8 +1055,6 @@ var useMouse = function useMouse(hitmapRef, selection, knobArea, editMode, editD
1056
1055
  setColumnDrag(null);
1057
1056
  setRowResize(null);
1058
1057
  setRowDrag(null);
1059
- if (!xy || !hitTarget) return;
1060
- setHitTarget(null);
1061
1058
  }, [getMousePosition, getMouseHit, onChange, onSelectionChange, onKnobAreaChange, onDropTargetChange, onColumnOrderChange, onRowOrderChange, dontChangeSelectionOnOrderChange]);
1062
1059
  var onPointerMove = React.useCallback(function (e) {
1063
1060
  var _ref$current3 = ref.current,
@@ -1335,6 +1332,7 @@ var useMouse = function useMouse(hitmapRef, selection, knobArea, editMode, editD
1335
1332
  if (!hitTarget) return;
1336
1333
  var xy = getMousePosition(e);
1337
1334
  if (!xy) return;
1335
+ setHitTarget(null);
1338
1336
  var previousRect = JSON.stringify(hitTarget.rect);
1339
1337
  var currentRect = JSON.stringify((_getMouseHit = getMouseHit(xy)) === null || _getMouseHit === void 0 ? void 0 : _getMouseHit.rect);
1340
1338
 
@@ -1749,6 +1747,8 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
1749
1747
  var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cellLayout) {
1750
1748
  var newX = offset[0],
1751
1749
  newY = offset[1];
1750
+ var freezeX = freeze[0],
1751
+ freezeY = freeze[1];
1752
1752
  var maxColumns = maxCells[0],
1753
1753
  maxRows = maxCells[1];
1754
1754
  var absoluteToColumn = cellLayout.absoluteToColumn,
@@ -1765,14 +1765,14 @@ var clipDataOffset = function clipDataOffset(view, offset, freeze, maxCells, cel
1765
1765
  scrollH = _getViewExtent$viewpo[1];
1766
1766
 
1767
1767
  if (rightEdge > maxColumns) {
1768
- var remainder = columnToAbsolute(maxColumns) - columnToAbsolute(newX);
1769
- 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);
1770
1770
  }
1771
1771
 
1772
1772
  if (bottomEdge > maxRows) {
1773
- var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY);
1773
+ var _remainder = rowToAbsolute(maxRows) - rowToAbsolute(newY + freezeY);
1774
1774
 
1775
- newY = absoluteToRow(rowToAbsolute(newY) - scrollH + _remainder) + 1;
1775
+ newY = Math.max(0, absoluteToRow(rowToAbsolute(newY + freezeY) - scrollH + _remainder) - freezeY + 1);
1776
1776
  }
1777
1777
 
1778
1778
  return [newX, newY];
@@ -1856,20 +1856,25 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
1856
1856
 
1857
1857
  if (!isSameXY(newOffset, offset)) {
1858
1858
  var scroll = cellToAbsolute(newOffset);
1859
-
1860
- var _cellToAbsolute4 = cellToAbsolute([0, 0], [0.5, 0.5]),
1861
- nudgeX = _cellToAbsolute4[0],
1862
- nudgeY = _cellToAbsolute4[1];
1863
-
1864
1859
  callback(newOffset, maxXY(maxScroll, scroll));
1865
1860
  setTimeout(function () {
1866
- var scrollX = scroll[0],
1867
- scrollY = scroll[1];
1868
- element.scrollLeft = scrollX - nudgeX;
1869
- element.scrollTop = scrollY - nudgeY;
1861
+ updateScrollPosition(element, newOffset, cellLayout);
1870
1862
  });
1871
1863
  }
1872
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
+ };
1873
1878
 
1874
1879
  var useAutoSizeColumn = function useAutoSizeColumn(rows, displayData, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth) {
1875
1880
  var context = React.useMemo(function () {
@@ -3728,9 +3733,13 @@ var Sheet = React.forwardRef(function (props, ref) {
3728
3733
  _props$maxRows = props.maxRows,
3729
3734
  maxRows = _props$maxRows === void 0 ? Infinity : _props$maxRows;
3730
3735
  React.useLayoutEffect(function () {
3736
+ var overlay = overlayRef.current;
3737
+ if (!overlay) return;
3731
3738
  var view = [canvasWidth, canvasHeight];
3732
3739
  var freeze = [freezeColumns, freezeRows];
3733
- setDataOffset(clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout));
3740
+ var newOffset = clipDataOffset(view, dataOffset, freeze, [maxColumns, maxRows], cellLayout);
3741
+ setDataOffset(newOffset);
3742
+ updateScrollPosition(overlay, newOffset, cellLayout);
3734
3743
  }, [maxRows, maxColumns]);
3735
3744
  var hitmapRef = React.useRef(NO_CLICKABLES);
3736
3745
  var isFocused = focused || editMode;