sheet-happens 0.0.58 → 0.0.59

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
@@ -657,7 +657,7 @@ var findInDisplayData = function findInDisplayData(displayData, start, direction
657
657
  return maxXY(cell, [0, 0]);
658
658
  };
659
659
 
660
- var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, knobArea, editMode, editData, sourceData, cellReadOnly, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow, cellLayout, visibleCells, sheetStyle, columnGroupKeys, rowGroupKeys, selectedColumnGroups, selectedRowGroups, getAutoSizeWidth, getAutoSizeHeight, onEdit, onCommit, onKnobAreaChange, onDragIndicesChange, onDragOffsetChange, onDropTargetChange, onSelectionChange, onFocusChange, onInvalidateColumn, onInvalidateRow, onChange, onColumnOrderChange, onRowOrderChange, onCellWidthChange, onCellHeightChange, onRightClick, dontCommitEditOnSelectionChange, dontChangeSelectionOnOrderChange) {
660
+ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, knobArea, editMode, editData, sourceData, cellReadOnly, maxColumns, maxRows, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow, cellLayout, visibleCells, sheetStyle, columnGroupKeys, rowGroupKeys, selectedColumnGroups, selectedRowGroups, getAutoSizeWidth, getAutoSizeHeight, onEdit, onCommit, onKnobAreaChange, onDragIndicesChange, onDragOffsetChange, onDropTargetChange, onSelectionChange, onFocusChange, onInvalidateColumn, onInvalidateRow, onChange, onColumnOrderChange, onRowOrderChange, onCellWidthChange, onCellHeightChange, onRightClick, dontCommitEditOnSelectionChange, dontChangeSelectionOnOrderChange) {
661
661
  var _useState = React.useState(null),
662
662
  columnResize = _useState[0],
663
663
  setColumnResize = _useState[1];
@@ -935,6 +935,14 @@ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, k
935
935
  }
936
936
  }
937
937
  }
938
+ if (!hideColumnHeaders && !hideRowHeaders && y < getIndentY() && x < getIndentX()) {
939
+ var lastCol = (Number.isFinite(maxColumns) ? maxColumns : MAX_SEARCHABLE_INDEX) - 1;
940
+ var lastRow = (Number.isFinite(maxRows) ? maxRows : MAX_SEARCHABLE_INDEX) - 1;
941
+ if (lastCol >= 0 && lastRow >= 0) {
942
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([[0, 0], [lastCol, lastRow]], false, true);
943
+ }
944
+ return;
945
+ }
938
946
  if (knobPosition) {
939
947
  var knobX = knobPosition[0],
940
948
  knobY = knobPosition[1];
@@ -1640,7 +1648,7 @@ var useKeyboard = function useKeyboard(arrowKeyCommitMode, overlayRef, cellReadO
1640
1648
  };
1641
1649
  };
1642
1650
 
1643
- var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange) {
1651
+ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange, onScrollAction) {
1644
1652
  return React.useCallback(function (e) {
1645
1653
  if (!e.target || !(e.target instanceof Element)) {
1646
1654
  return;
@@ -1654,6 +1662,7 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
1654
1662
  var cell = absoluteToCell(xy);
1655
1663
  if (!isSameXY(cell, offset)) {
1656
1664
  onOffsetChange === null || onOffsetChange === void 0 ? void 0 : onOffsetChange(cell);
1665
+ onScrollAction === null || onScrollAction === void 0 ? void 0 : onScrollAction();
1657
1666
  }
1658
1667
  var x = xy[0],
1659
1668
  y = xy[1];
@@ -3748,15 +3757,18 @@ var Sheet = React.forwardRef(function (props, ref) {
3748
3757
  setDataOffset(newOffset);
3749
3758
  updateScrollPosition(overlay, newOffset, cellLayout);
3750
3759
  }, [maxRows, maxColumns]);
3760
+ React.useLayoutEffect(function () {
3761
+ scrollToSelection(selectionProp, true);
3762
+ }, [selectionProp]);
3751
3763
  var hitmapRef = React.useRef(NO_CLICKABLES);
3752
3764
  var isFocused = focused || editMode;
3753
3765
  var _useClipboardAPI = useClipboardAPI(selection, editData, sourceData, cellReadOnly, isFocused && !editMode, changeSelection, props.onChange, props.onCopy, props.onPaste, (_props$clipboardOrigi = props.clipboardOrigin) != null ? _props$clipboardOrigi : location.origin),
3754
3766
  clipboardApi = _useClipboardAPI.clipboardApi,
3755
3767
  onClipboardCopy = _useClipboardAPI.onClipboardCopy;
3756
- var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll);
3768
+ var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll, props.onScrollAction);
3757
3769
  var getAutoSizeWidth = useAutoSizeColumn(visibleCells.rows, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth, freezeColumns);
3758
3770
  var getAutoSizeHeight = useAutoSizeRow(visibleCells.columns, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, cellWidth, canvasHeight, freezeRows);
3759
- var _useMouse = useMouse(overlayRef, dataOffset, hitmapRef, selection, knobArea, editMode, editData, sourceData, cellReadOnly, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow, cellLayout, visibleCells, sheetStyle, columnGroupKeys, rowGroupKeys, selectedColumnGroups, selectedRowGroups, getAutoSizeWidth, getAutoSizeHeight, startEditingCell, commitEditingCell, setKnobArea, setDragIndices, setDragOffset, setDropTarget, changeSelection, setFocused, props.cacheLayout ? columnLayout.clearAfter : undefined, props.cacheLayout ? rowLayout.clearAfter : undefined, props.onChange, props.onColumnOrderChange, props.onRowOrderChange, props.onCellWidthChange, props.onCellHeightChange, props.onRightClick, props.dontCommitEditOnSelectionChange, props.dontChangeSelectionOnOrderChange),
3771
+ var _useMouse = useMouse(overlayRef, dataOffset, hitmapRef, selection, knobArea, editMode, editData, sourceData, cellReadOnly, maxColumns, maxRows, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow, cellLayout, visibleCells, sheetStyle, columnGroupKeys, rowGroupKeys, selectedColumnGroups, selectedRowGroups, getAutoSizeWidth, getAutoSizeHeight, startEditingCell, commitEditingCell, setKnobArea, setDragIndices, setDragOffset, setDropTarget, changeSelection, setFocused, props.cacheLayout ? columnLayout.clearAfter : undefined, props.cacheLayout ? rowLayout.clearAfter : undefined, props.onChange, props.onColumnOrderChange, props.onRowOrderChange, props.onCellWidthChange, props.onCellHeightChange, props.onRightClick, props.dontCommitEditOnSelectionChange, props.dontChangeSelectionOnOrderChange),
3760
3772
  mouseHandlers = _useMouse.mouseHandlers,
3761
3773
  knobPosition = _useMouse.knobPosition;
3762
3774
  var _useKeyboard = useKeyboard(arrowKeyCommitMode, overlayRef, cellReadOnly, displayData, editCell, editMode, focused, rawSelection, selection, startEditingCell, commitEditingCell, cancelEditingCell, changeSelection, setFocused, onClipboardCopy, props.onChange),