sheet-happens 0.0.57 → 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.
@@ -654,7 +654,7 @@ var findInDisplayData = function findInDisplayData(displayData, start, direction
654
654
  return maxXY(cell, [0, 0]);
655
655
  };
656
656
 
657
- 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) {
657
+ 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) {
658
658
  var _useState = useState(null),
659
659
  columnResize = _useState[0],
660
660
  setColumnResize = _useState[1];
@@ -932,6 +932,14 @@ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, k
932
932
  }
933
933
  }
934
934
  }
935
+ if (!hideColumnHeaders && !hideRowHeaders && y < getIndentY() && x < getIndentX()) {
936
+ var lastCol = (Number.isFinite(maxColumns) ? maxColumns : MAX_SEARCHABLE_INDEX) - 1;
937
+ var lastRow = (Number.isFinite(maxRows) ? maxRows : MAX_SEARCHABLE_INDEX) - 1;
938
+ if (lastCol >= 0 && lastRow >= 0) {
939
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([[0, 0], [lastCol, lastRow]], false, true);
940
+ }
941
+ return;
942
+ }
935
943
  if (knobPosition) {
936
944
  var knobX = knobPosition[0],
937
945
  knobY = knobPosition[1];
@@ -1637,7 +1645,7 @@ var useKeyboard = function useKeyboard(arrowKeyCommitMode, overlayRef, cellReadO
1637
1645
  };
1638
1646
  };
1639
1647
 
1640
- var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange) {
1648
+ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange, onMaxScrollChange, onScrollAction) {
1641
1649
  return useCallback(function (e) {
1642
1650
  if (!e.target || !(e.target instanceof Element)) {
1643
1651
  return;
@@ -1651,6 +1659,7 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
1651
1659
  var cell = absoluteToCell(xy);
1652
1660
  if (!isSameXY(cell, offset)) {
1653
1661
  onOffsetChange === null || onOffsetChange === void 0 ? void 0 : onOffsetChange(cell);
1662
+ onScrollAction === null || onScrollAction === void 0 ? void 0 : onScrollAction();
1654
1663
  }
1655
1664
  var x = xy[0],
1656
1665
  y = xy[1];
@@ -3716,16 +3725,17 @@ var Sheet = forwardRef(function (props, ref) {
3716
3725
  if (cellReadOnly(cellX, cellY)) {
3717
3726
  return;
3718
3727
  }
3719
- var hasData = !!((_props$inputComponent = props.inputComponent) !== null && _props$inputComponent !== void 0 && _props$inputComponent.call(props, cellX, cellY, _extends({}, inputProps, {
3728
+ var hasCustomComponent = !!((_props$inputComponent = props.inputComponent) !== null && _props$inputComponent !== void 0 && _props$inputComponent.call(props, cellX, cellY, _extends({}, inputProps, {
3720
3729
  onChange: function onChange() {}
3721
3730
  }), function () {}));
3722
3731
  var editValue = (_editData = editData(cellX, cellY)) != null ? _editData : '';
3723
3732
  var sourceValue = (_sourceData = sourceData(cellX, cellY)) != null ? _sourceData : null;
3724
- if (hasData) {
3733
+ if (hasCustomComponent) {
3725
3734
  setEditValue(null);
3726
3735
  setSourceValue(sourceValue);
3727
3736
  } else {
3728
3737
  setEditValue(editValue);
3738
+ setSourceValue(null);
3729
3739
  }
3730
3740
  setEditCell(editCell);
3731
3741
  setArrowKeyCommitMode(arrowKeyCommitMode);
@@ -3744,15 +3754,18 @@ var Sheet = forwardRef(function (props, ref) {
3744
3754
  setDataOffset(newOffset);
3745
3755
  updateScrollPosition(overlay, newOffset, cellLayout);
3746
3756
  }, [maxRows, maxColumns]);
3757
+ useLayoutEffect(function () {
3758
+ scrollToSelection(selectionProp, true);
3759
+ }, [selectionProp]);
3747
3760
  var hitmapRef = useRef(NO_CLICKABLES);
3748
3761
  var isFocused = focused || editMode;
3749
3762
  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),
3750
3763
  clipboardApi = _useClipboardAPI.clipboardApi,
3751
3764
  onClipboardCopy = _useClipboardAPI.onClipboardCopy;
3752
- var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll);
3765
+ var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll, props.onScrollAction);
3753
3766
  var getAutoSizeWidth = useAutoSizeColumn(visibleCells.rows, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth, freezeColumns);
3754
3767
  var getAutoSizeHeight = useAutoSizeRow(visibleCells.columns, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, cellWidth, canvasHeight, freezeRows);
3755
- 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),
3768
+ 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),
3756
3769
  mouseHandlers = _useMouse.mouseHandlers,
3757
3770
  knobPosition = _useMouse.knobPosition;
3758
3771
  var _useKeyboard = useKeyboard(arrowKeyCommitMode, overlayRef, cellReadOnly, displayData, editCell, editMode, focused, rawSelection, selection, startEditingCell, commitEditingCell, cancelEditingCell, changeSelection, setFocused, onClipboardCopy, props.onChange),