sheet-happens 0.0.58 → 0.0.60

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];
@@ -1371,10 +1379,16 @@ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, k
1371
1379
  if (!xy) return;
1372
1380
  var x = xy[0],
1373
1381
  y = xy[1];
1374
- if (x <= getIndentX() || y <= getIndentY()) {
1382
+ if (x <= getIndentX() && y <= getIndentY()) {
1375
1383
  return;
1376
1384
  }
1377
1385
  var cell = pixelToCell(xy);
1386
+ if (!hideRowHeaders && x < getIndentX()) {
1387
+ cell[0] = -1;
1388
+ }
1389
+ if (!hideColumnHeaders && y < getIndentY()) {
1390
+ cell[1] = -1;
1391
+ }
1378
1392
  if (!isPointInsideSelection(selection, cell)) {
1379
1393
  onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([cell, cell]);
1380
1394
  }
@@ -1640,7 +1654,7 @@ var useKeyboard = function useKeyboard(arrowKeyCommitMode, overlayRef, cellReadO
1640
1654
  };
1641
1655
  };
1642
1656
 
1643
- var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange) {
1657
+ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange, onScrollAction) {
1644
1658
  return React.useCallback(function (e) {
1645
1659
  if (!e.target || !(e.target instanceof Element)) {
1646
1660
  return;
@@ -1654,6 +1668,7 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
1654
1668
  var cell = absoluteToCell(xy);
1655
1669
  if (!isSameXY(cell, offset)) {
1656
1670
  onOffsetChange === null || onOffsetChange === void 0 ? void 0 : onOffsetChange(cell);
1671
+ onScrollAction === null || onScrollAction === void 0 ? void 0 : onScrollAction();
1657
1672
  }
1658
1673
  var x = xy[0],
1659
1674
  y = xy[1];
@@ -3678,14 +3693,14 @@ var Sheet = React.forwardRef(function (props, ref) {
3678
3693
  scrollToSelection(newSelection, toHead);
3679
3694
  }
3680
3695
  if (props.onSelectionChanged) {
3681
- var _normalizeSelection = normalizeSelection(validateSelection(newSelection)),
3682
- _normalizeSelection$ = _normalizeSelection[0],
3683
- minX = _normalizeSelection$[0],
3684
- minY = _normalizeSelection$[1],
3685
- _normalizeSelection$2 = _normalizeSelection[1],
3686
- maxX = _normalizeSelection$2[0],
3687
- maxY = _normalizeSelection$2[1];
3688
- props.onSelectionChanged(minX, minY, maxX, maxY);
3696
+ var _validateSelection = validateSelection(newSelection),
3697
+ _validateSelection$ = _validateSelection[0],
3698
+ anchorX = _validateSelection$[0],
3699
+ anchorY = _validateSelection$[1],
3700
+ _validateSelection$2 = _validateSelection[1],
3701
+ headX = _validateSelection$2[0],
3702
+ headY = _validateSelection$2[1];
3703
+ props.onSelectionChanged(anchorX, anchorY, headX, headY);
3689
3704
  }
3690
3705
  };
3691
3706
  var cancelEditingCell = function cancelEditingCell() {
@@ -3748,15 +3763,18 @@ var Sheet = React.forwardRef(function (props, ref) {
3748
3763
  setDataOffset(newOffset);
3749
3764
  updateScrollPosition(overlay, newOffset, cellLayout);
3750
3765
  }, [maxRows, maxColumns]);
3766
+ React.useLayoutEffect(function () {
3767
+ scrollToSelection(selectionProp, true);
3768
+ }, [selectionProp]);
3751
3769
  var hitmapRef = React.useRef(NO_CLICKABLES);
3752
3770
  var isFocused = focused || editMode;
3753
3771
  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
3772
  clipboardApi = _useClipboardAPI.clipboardApi,
3755
3773
  onClipboardCopy = _useClipboardAPI.onClipboardCopy;
3756
- var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll);
3774
+ var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll, props.onScrollAction);
3757
3775
  var getAutoSizeWidth = useAutoSizeColumn(visibleCells.rows, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth, freezeColumns);
3758
3776
  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),
3777
+ 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
3778
  mouseHandlers = _useMouse.mouseHandlers,
3761
3779
  knobPosition = _useMouse.knobPosition;
3762
3780
  var _useKeyboard = useKeyboard(arrowKeyCommitMode, overlayRef, cellReadOnly, displayData, editCell, editMode, focused, rawSelection, selection, startEditingCell, commitEditingCell, cancelEditingCell, changeSelection, setFocused, onClipboardCopy, props.onChange),