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.
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];
@@ -3719,16 +3728,17 @@ var Sheet = React.forwardRef(function (props, ref) {
3719
3728
  if (cellReadOnly(cellX, cellY)) {
3720
3729
  return;
3721
3730
  }
3722
- var hasData = !!((_props$inputComponent = props.inputComponent) !== null && _props$inputComponent !== void 0 && _props$inputComponent.call(props, cellX, cellY, _extends({}, inputProps, {
3731
+ var hasCustomComponent = !!((_props$inputComponent = props.inputComponent) !== null && _props$inputComponent !== void 0 && _props$inputComponent.call(props, cellX, cellY, _extends({}, inputProps, {
3723
3732
  onChange: function onChange() {}
3724
3733
  }), function () {}));
3725
3734
  var editValue = (_editData = editData(cellX, cellY)) != null ? _editData : '';
3726
3735
  var sourceValue = (_sourceData = sourceData(cellX, cellY)) != null ? _sourceData : null;
3727
- if (hasData) {
3736
+ if (hasCustomComponent) {
3728
3737
  setEditValue(null);
3729
3738
  setSourceValue(sourceValue);
3730
3739
  } else {
3731
3740
  setEditValue(editValue);
3741
+ setSourceValue(null);
3732
3742
  }
3733
3743
  setEditCell(editCell);
3734
3744
  setArrowKeyCommitMode(arrowKeyCommitMode);
@@ -3747,15 +3757,18 @@ var Sheet = React.forwardRef(function (props, ref) {
3747
3757
  setDataOffset(newOffset);
3748
3758
  updateScrollPosition(overlay, newOffset, cellLayout);
3749
3759
  }, [maxRows, maxColumns]);
3760
+ React.useLayoutEffect(function () {
3761
+ scrollToSelection(selectionProp, true);
3762
+ }, [selectionProp]);
3750
3763
  var hitmapRef = React.useRef(NO_CLICKABLES);
3751
3764
  var isFocused = focused || editMode;
3752
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),
3753
3766
  clipboardApi = _useClipboardAPI.clipboardApi,
3754
3767
  onClipboardCopy = _useClipboardAPI.onClipboardCopy;
3755
- var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll);
3768
+ var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll, props.onScrollAction);
3756
3769
  var getAutoSizeWidth = useAutoSizeColumn(visibleCells.rows, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, canvasWidth, freezeColumns);
3757
3770
  var getAutoSizeHeight = useAutoSizeRow(visibleCells.columns, displayData, cellLayout, cellStyle, columnHeaders, columnHeaderStyle, cellWidth, canvasHeight, freezeRows);
3758
- 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),
3759
3772
  mouseHandlers = _useMouse.mouseHandlers,
3760
3773
  knobPosition = _useMouse.knobPosition;
3761
3774
  var _useKeyboard = useKeyboard(arrowKeyCommitMode, overlayRef, cellReadOnly, displayData, editCell, editMode, focused, rawSelection, selection, startEditingCell, commitEditingCell, cancelEditingCell, changeSelection, setFocused, onClipboardCopy, props.onChange),