sheet-happens 0.0.28 → 0.0.30

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) {
@@ -1704,8 +1706,9 @@ var makeCellLayout = function makeCellLayout(freeze, indent, offset, columns, ro
1704
1706
  if (relative < frozen) {
1705
1707
  return lookupIndex(relative, anchor);
1706
1708
  } else {
1707
- var base = getStart(offset);
1708
- return lookupIndex(base + relative, anchor);
1709
+ var base = getStart(offset + freeze);
1710
+ var adjust = getStart(freeze) - getStart(0);
1711
+ return lookupIndex(base + relative - adjust, anchor);
1709
1712
  }
1710
1713
  };
1711
1714
 
@@ -2563,7 +2566,7 @@ var excelHeaderString = function excelHeaderString(num) {
2563
2566
  };
2564
2567
 
2565
2568
  var Sheet = React.forwardRef(function (props, ref) {
2566
- var _props$secondarySelec, _props$inputComponent;
2569
+ var _props$selection, _props$secondarySelec, _props$inputComponent;
2567
2570
 
2568
2571
  var canvasRef = React.useRef(null);
2569
2572
  var overlayRef = React.useRef(null);
@@ -2576,7 +2579,9 @@ var Sheet = React.forwardRef(function (props, ref) {
2576
2579
  dataOffset = _useState2[0],
2577
2580
  setDataOffset = _useState2[1];
2578
2581
 
2579
- var _useState3 = React.useState(NO_SELECTION),
2582
+ var selectionProp = (_props$selection = props.selection) != null ? _props$selection : NO_SELECTION;
2583
+
2584
+ var _useState3 = React.useState(selectionProp),
2580
2585
  selection = _useState3[0],
2581
2586
  setSelection = _useState3[1];
2582
2587
 
@@ -2596,13 +2601,22 @@ var Sheet = React.forwardRef(function (props, ref) {
2596
2601
  editCell = _useState7[0],
2597
2602
  setEditCell = _useState7[1];
2598
2603
 
2599
- var _useState8 = React.useState(''),
2600
- editValue = _useState8[0],
2601
- setEditValue = _useState8[1];
2604
+ var _useState8 = React.useState(selectionProp),
2605
+ lastSelectionProp = _useState8[0],
2606
+ setLastSelectionProp = _useState8[1];
2602
2607
 
2603
- var _useState9 = React.useState(false),
2604
- arrowKeyCommitMode = _useState9[0],
2605
- setArrowKeyCommitMode = _useState9[1];
2608
+ if (lastSelectionProp !== selectionProp) {
2609
+ setLastSelectionProp(selectionProp);
2610
+ setSelection(selectionProp);
2611
+ }
2612
+
2613
+ var _useState9 = React.useState(''),
2614
+ editValue = _useState9[0],
2615
+ setEditValue = _useState9[1];
2616
+
2617
+ var _useState10 = React.useState(false),
2618
+ arrowKeyCommitMode = _useState10[0],
2619
+ setArrowKeyCommitMode = _useState10[1];
2606
2620
 
2607
2621
  var _useResizeObserver = useResizeObserver({
2608
2622
  ref: canvasRef
@@ -2911,9 +2925,9 @@ var Sheet = React.forwardRef(function (props, ref) {
2911
2925
  e.preventDefault();
2912
2926
  };
2913
2927
 
2914
- var _useState10 = React.useState(''),
2915
- lastEditKey = _useState10[0],
2916
- setLastEditKey = _useState10[1];
2928
+ var _useState11 = React.useState(''),
2929
+ lastEditKey = _useState11[0],
2930
+ setLastEditKey = _useState11[1];
2917
2931
 
2918
2932
  var editTextPosition = ORIGIN;
2919
2933
  var editTextWidth = 0;
@@ -2983,6 +2997,16 @@ var Sheet = React.forwardRef(function (props, ref) {
2983
2997
  canvasStyles.width = 'calc(100%)';
2984
2998
  }
2985
2999
 
3000
+ var userRendered = React.useMemo(function () {
3001
+ var _props$render;
3002
+
3003
+ return (_props$render = props.render) === null || _props$render === void 0 ? void 0 : _props$render.call(props, {
3004
+ visibleCells: visibleCells,
3005
+ cellLayout: cellLayout,
3006
+ selection: selection,
3007
+ editMode: editMode
3008
+ });
3009
+ }, [props.render, visibleCells, cellLayout, selection, editMode]);
2986
3010
  return React__default.createElement("div", {
2987
3011
  style: {
2988
3012
  position: 'relative',
@@ -3016,7 +3040,13 @@ var Sheet = React.forwardRef(function (props, ref) {
3016
3040
  height: 1,
3017
3041
  backgroundColor: 'rgba(0,0,0,0.0)'
3018
3042
  }
3019
- })), React__default.createElement("textarea", {
3043
+ }), userRendered ? React__default.createElement("div", {
3044
+ style: {
3045
+ position: 'sticky',
3046
+ left: 0,
3047
+ top: 0
3048
+ }
3049
+ }, userRendered) : null), React__default.createElement("textarea", {
3020
3050
  style: {
3021
3051
  position: 'absolute',
3022
3052
  top: 0,