sheet-happens 0.0.27 → 0.0.29

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
@@ -1623,7 +1623,7 @@ var makeCellLayout = function makeCellLayout(freeze, indent, offset, columns, ro
1623
1623
  };
1624
1624
 
1625
1625
  var getBaseOriginFor = function getBaseOriginFor(index, freeze, offset) {
1626
- return index < freeze ? 0 : offset;
1626
+ return index < freeze ? 0 : offset + freeze;
1627
1627
  };
1628
1628
 
1629
1629
  var columnToPixel = function columnToPixel(column, anchor) {
@@ -1633,8 +1633,9 @@ var makeCellLayout = function makeCellLayout(freeze, indent, offset, columns, ro
1633
1633
 
1634
1634
  var base = getBaseOriginFor(column, freezeX, offsetX);
1635
1635
  var relative = columns.getStart(column) - columns.getStart(base);
1636
+ var adjust = column < freezeX ? 0 : columns.getStart(freezeX) - columns.getStart(0);
1636
1637
  var size = column < 0 ? indentX : columns.getSize(column);
1637
- return column < 0 ? 0 : indentX + relative + anchor * size;
1638
+ return column < 0 ? 0 : indentX + relative + adjust + anchor * size;
1638
1639
  };
1639
1640
 
1640
1641
  var rowToPixel = function rowToPixel(row, anchor) {
@@ -1644,8 +1645,9 @@ var makeCellLayout = function makeCellLayout(freeze, indent, offset, columns, ro
1644
1645
 
1645
1646
  var base = getBaseOriginFor(row, freezeY, offsetY);
1646
1647
  var relative = rows.getStart(row) - rows.getStart(base);
1648
+ var adjust = row < freezeY ? 0 : rows.getStart(freezeY) - rows.getStart(0);
1647
1649
  var size = row < 0 ? indentY : rows.getSize(row);
1648
- return row < 0 ? 0 : indentY + relative + anchor * size;
1650
+ return row < 0 ? 0 : indentY + relative + adjust + anchor * size;
1649
1651
  };
1650
1652
 
1651
1653
  var cellToPixel = function cellToPixel(cell, anchor) {
@@ -2563,7 +2565,7 @@ var excelHeaderString = function excelHeaderString(num) {
2563
2565
  };
2564
2566
 
2565
2567
  var Sheet = React.forwardRef(function (props, ref) {
2566
- var _props$secondarySelec, _props$inputComponent;
2568
+ var _props$selection, _props$secondarySelec, _props$inputComponent;
2567
2569
 
2568
2570
  var canvasRef = React.useRef(null);
2569
2571
  var overlayRef = React.useRef(null);
@@ -2576,7 +2578,9 @@ var Sheet = React.forwardRef(function (props, ref) {
2576
2578
  dataOffset = _useState2[0],
2577
2579
  setDataOffset = _useState2[1];
2578
2580
 
2579
- var _useState3 = React.useState(NO_SELECTION),
2581
+ var selectionProp = (_props$selection = props.selection) != null ? _props$selection : NO_SELECTION;
2582
+
2583
+ var _useState3 = React.useState(selectionProp),
2580
2584
  selection = _useState3[0],
2581
2585
  setSelection = _useState3[1];
2582
2586
 
@@ -2596,13 +2600,22 @@ var Sheet = React.forwardRef(function (props, ref) {
2596
2600
  editCell = _useState7[0],
2597
2601
  setEditCell = _useState7[1];
2598
2602
 
2599
- var _useState8 = React.useState(''),
2600
- editValue = _useState8[0],
2601
- setEditValue = _useState8[1];
2603
+ var _useState8 = React.useState(selectionProp),
2604
+ lastSelectionProp = _useState8[0],
2605
+ setLastSelectionProp = _useState8[1];
2602
2606
 
2603
- var _useState9 = React.useState(false),
2604
- arrowKeyCommitMode = _useState9[0],
2605
- setArrowKeyCommitMode = _useState9[1];
2607
+ if (lastSelectionProp !== selectionProp) {
2608
+ setLastSelectionProp(selectionProp);
2609
+ setSelection(selectionProp);
2610
+ }
2611
+
2612
+ var _useState9 = React.useState(''),
2613
+ editValue = _useState9[0],
2614
+ setEditValue = _useState9[1];
2615
+
2616
+ var _useState10 = React.useState(false),
2617
+ arrowKeyCommitMode = _useState10[0],
2618
+ setArrowKeyCommitMode = _useState10[1];
2606
2619
 
2607
2620
  var _useResizeObserver = useResizeObserver({
2608
2621
  ref: canvasRef
@@ -2765,6 +2778,7 @@ var Sheet = React.forwardRef(function (props, ref) {
2765
2778
  setEditCell(editCell);
2766
2779
  setEditValue(val);
2767
2780
  setArrowKeyCommitMode(arrowKeyCommitMode);
2781
+ setLastEditKey(editKeys.apply(void 0, editCell));
2768
2782
  };
2769
2783
 
2770
2784
  var hitmapRef = React.useRef(NO_CLICKABLES);
@@ -2910,16 +2924,9 @@ var Sheet = React.forwardRef(function (props, ref) {
2910
2924
  e.preventDefault();
2911
2925
  };
2912
2926
 
2913
- var editKey = editKeys ? editKeys.apply(void 0, editCell) : '';
2914
-
2915
- var _useState10 = React.useState(editKey),
2916
- lastEditKey = _useState10[0],
2917
- setLastEditKey = _useState10[1];
2918
-
2919
- if (editMode && lastEditKey !== editKey) {
2920
- setLastEditKey(editKey);
2921
- setEditCell(NO_CELL);
2922
- }
2927
+ var _useState11 = React.useState(''),
2928
+ lastEditKey = _useState11[0],
2929
+ setLastEditKey = _useState11[1];
2923
2930
 
2924
2931
  var editTextPosition = ORIGIN;
2925
2932
  var editTextWidth = 0;
@@ -2933,6 +2940,12 @@ var Sheet = React.forwardRef(function (props, ref) {
2933
2940
  editTextWidth = cellWidth(editCellX) - 3;
2934
2941
  editTextHeight = cellHeight(editCellY) - 3;
2935
2942
  editTextTextAlign = style.textAlign || DEFAULT_CELL_STYLE.textAlign || 'left';
2943
+ var editKey = editKeys.apply(void 0, editCell);
2944
+
2945
+ if (editKey !== lastEditKey) {
2946
+ setLastEditKey('');
2947
+ setEditCell(NO_CELL);
2948
+ }
2936
2949
  }
2937
2950
 
2938
2951
  var _editTextPosition = editTextPosition,
@@ -2983,6 +2996,16 @@ var Sheet = React.forwardRef(function (props, ref) {
2983
2996
  canvasStyles.width = 'calc(100%)';
2984
2997
  }
2985
2998
 
2999
+ var userRendered = React.useMemo(function () {
3000
+ var _props$render;
3001
+
3002
+ return (_props$render = props.render) === null || _props$render === void 0 ? void 0 : _props$render.call(props, {
3003
+ visibleCells: visibleCells,
3004
+ cellLayout: cellLayout,
3005
+ selection: selection,
3006
+ editMode: editMode
3007
+ });
3008
+ }, [props.render, visibleCells, cellLayout, selection, editMode]);
2986
3009
  return React__default.createElement("div", {
2987
3010
  style: {
2988
3011
  position: 'relative',
@@ -3016,7 +3039,13 @@ var Sheet = React.forwardRef(function (props, ref) {
3016
3039
  height: 1,
3017
3040
  backgroundColor: 'rgba(0,0,0,0.0)'
3018
3041
  }
3019
- })), React__default.createElement("textarea", {
3042
+ }), userRendered ? React__default.createElement("div", {
3043
+ style: {
3044
+ position: 'sticky',
3045
+ left: 0,
3046
+ top: 0
3047
+ }
3048
+ }, userRendered) : null), React__default.createElement("textarea", {
3020
3049
  style: {
3021
3050
  position: 'absolute',
3022
3051
  top: 0,