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 +26 -17
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +26 -17
- 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
|
@@ -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
|
-
|
|
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
|
-
|
|
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;
|