sheet-happens 0.0.30 → 0.0.32
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 +66 -35
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +66 -35
- package/dist/index.modern.js.map +1 -1
- package/dist/mouse.d.ts +1 -1
- package/dist/sheet.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -157,9 +157,6 @@ var isInRange = function isInRange(x, min, max) {
|
|
|
157
157
|
var isInRangeLeft = function isInRangeLeft(x, min, max) {
|
|
158
158
|
return min <= x && x < max;
|
|
159
159
|
};
|
|
160
|
-
var isInRangeRight = function isInRangeRight(x, min, max) {
|
|
161
|
-
return min < x && x <= max;
|
|
162
|
-
};
|
|
163
160
|
var isInRangeCenter = function isInRangeCenter(x, min, max) {
|
|
164
161
|
return min < x && x < max;
|
|
165
162
|
};
|
|
@@ -745,24 +742,24 @@ var useMouse = function useMouse(hitmapRef, selection, knobArea, editMode, editD
|
|
|
745
742
|
}
|
|
746
743
|
}
|
|
747
744
|
|
|
748
|
-
var
|
|
745
|
+
var scrollTo = true;
|
|
749
746
|
|
|
750
747
|
if (!hideRowHeaders && x < getIndentX()) {
|
|
751
|
-
|
|
748
|
+
scrollTo = false;
|
|
752
749
|
setDraggingRowSelection(true);
|
|
753
750
|
anchor[0] = -1;
|
|
754
751
|
head[0] = -1;
|
|
755
752
|
}
|
|
756
753
|
|
|
757
754
|
if (!hideColumnHeaders && y < getIndentY()) {
|
|
758
|
-
|
|
755
|
+
scrollTo = false;
|
|
759
756
|
setDraggingColumnSelection(true);
|
|
760
757
|
anchor[1] = -1;
|
|
761
758
|
head[1] = -1;
|
|
762
759
|
}
|
|
763
760
|
|
|
764
761
|
setDraggingSelection(true);
|
|
765
|
-
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([anchor, head],
|
|
762
|
+
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([anchor, head], scrollTo, true);
|
|
766
763
|
}, [getMousePosition, getScrollPosition, getMouseHit, onColumnOrderChange, onRowOrderChange, onCellWidthChange, onCellHeightChange, onKnobAreaChange, onSelectionChange, onCommit, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow]);
|
|
767
764
|
var onPointerUp = useCallback(function (e) {
|
|
768
765
|
var _ref$current2 = ref.current,
|
|
@@ -1284,8 +1281,14 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
|
|
|
1284
1281
|
return;
|
|
1285
1282
|
}
|
|
1286
1283
|
|
|
1287
|
-
var
|
|
1288
|
-
|
|
1284
|
+
var absoluteToCell = cellLayout.absoluteToCell,
|
|
1285
|
+
cellToAbsolute = cellLayout.cellToAbsolute;
|
|
1286
|
+
|
|
1287
|
+
var _cellToAbsolute = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1288
|
+
nudgeX = _cellToAbsolute[0],
|
|
1289
|
+
nudgeY = _cellToAbsolute[1];
|
|
1290
|
+
|
|
1291
|
+
var xy = [e.target.scrollLeft + nudgeX, e.target.scrollTop + nudgeY];
|
|
1289
1292
|
var cell = absoluteToCell(xy);
|
|
1290
1293
|
|
|
1291
1294
|
if (!isSameXY(cell, offset)) {
|
|
@@ -1316,9 +1319,9 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1316
1319
|
columnToPixel = cellLayout.columnToPixel,
|
|
1317
1320
|
rowToPixel = cellLayout.rowToPixel;
|
|
1318
1321
|
|
|
1319
|
-
var
|
|
1320
|
-
frozenX =
|
|
1321
|
-
frozenY =
|
|
1322
|
+
var _cellToAbsolute2 = cellToAbsolute(freeze),
|
|
1323
|
+
frozenX = _cellToAbsolute2[0],
|
|
1324
|
+
frozenY = _cellToAbsolute2[1];
|
|
1322
1325
|
|
|
1323
1326
|
var _cellToPixel = cellToPixel(cell),
|
|
1324
1327
|
left = _cellToPixel[0],
|
|
@@ -1332,11 +1335,11 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1332
1335
|
newY = offset[1];
|
|
1333
1336
|
|
|
1334
1337
|
if (left <= frozenX) {
|
|
1335
|
-
newX = x;
|
|
1338
|
+
newX = x - freeze[0];
|
|
1336
1339
|
}
|
|
1337
1340
|
|
|
1338
1341
|
if (top <= frozenY) {
|
|
1339
|
-
newY = y;
|
|
1342
|
+
newY = y - freeze[1];
|
|
1340
1343
|
}
|
|
1341
1344
|
|
|
1342
1345
|
if (right > w) {
|
|
@@ -1355,12 +1358,17 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1355
1358
|
|
|
1356
1359
|
if (!isSameXY(newOffset, offset)) {
|
|
1357
1360
|
var scroll = cellToAbsolute(newOffset);
|
|
1361
|
+
|
|
1362
|
+
var _cellToAbsolute3 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1363
|
+
nudgeX = _cellToAbsolute3[0],
|
|
1364
|
+
nudgeY = _cellToAbsolute3[1];
|
|
1365
|
+
|
|
1358
1366
|
callback(newOffset, maxXY(maxScroll, scroll));
|
|
1359
1367
|
setTimeout(function () {
|
|
1360
1368
|
var scrollX = scroll[0],
|
|
1361
1369
|
scrollY = scroll[1];
|
|
1362
|
-
element.scrollLeft = scrollX;
|
|
1363
|
-
element.scrollTop = scrollY;
|
|
1370
|
+
element.scrollLeft = scrollX - nudgeX;
|
|
1371
|
+
element.scrollTop = scrollY - nudgeY;
|
|
1364
1372
|
});
|
|
1365
1373
|
}
|
|
1366
1374
|
};
|
|
@@ -1558,12 +1566,12 @@ var parsePastedHtml = function parsePastedHtml(selection, html) {
|
|
|
1558
1566
|
y++;
|
|
1559
1567
|
}
|
|
1560
1568
|
|
|
1561
|
-
right = Math.max(right, x);
|
|
1569
|
+
right = Math.max(right, x - 1);
|
|
1562
1570
|
}
|
|
1563
1571
|
}
|
|
1564
1572
|
}
|
|
1565
1573
|
|
|
1566
|
-
bottom = y;
|
|
1574
|
+
bottom = Math.max(top, y - 1);
|
|
1567
1575
|
return {
|
|
1568
1576
|
selection: [[left, top], [right, bottom]],
|
|
1569
1577
|
changes: changes
|
|
@@ -2483,18 +2491,20 @@ var resolveFrozenSelection = function resolveFrozenSelection(selection, cellLayo
|
|
|
2483
2491
|
|
|
2484
2492
|
if (isInRangeLeft(minX, freezeX, offsetX + freezeX)) {
|
|
2485
2493
|
left = -1e5;
|
|
2494
|
+
var lastInvisibleX = offsetX + freezeX - 1;
|
|
2486
2495
|
|
|
2487
|
-
if (
|
|
2488
|
-
right = indentX;
|
|
2496
|
+
if (maxX <= lastInvisibleX) {
|
|
2497
|
+
if (maxX === lastInvisibleX) right = indentX;else right = -1e5;
|
|
2489
2498
|
hideKnob = true;
|
|
2490
2499
|
}
|
|
2491
2500
|
}
|
|
2492
2501
|
|
|
2493
2502
|
if (isInRangeLeft(minY, freezeY, offsetY + freezeY)) {
|
|
2494
2503
|
top = -1e5;
|
|
2504
|
+
var lastInvisibleY = offsetY + freezeY - 1;
|
|
2495
2505
|
|
|
2496
|
-
if (
|
|
2497
|
-
bottom = indentY;
|
|
2506
|
+
if (maxY <= lastInvisibleY) {
|
|
2507
|
+
if (maxY === lastInvisibleY) bottom = indentY;else bottom = -1e5;
|
|
2498
2508
|
hideKnob = true;
|
|
2499
2509
|
}
|
|
2500
2510
|
}
|
|
@@ -2707,9 +2717,13 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
2707
2717
|
}
|
|
2708
2718
|
}, [visibleCells, props.onScrollChange]);
|
|
2709
2719
|
|
|
2710
|
-
var changeSelection = function changeSelection(newSelection,
|
|
2711
|
-
if (
|
|
2712
|
-
|
|
2720
|
+
var changeSelection = function changeSelection(newSelection, scrollTo, toHead) {
|
|
2721
|
+
if (scrollTo === void 0) {
|
|
2722
|
+
scrollTo = true;
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2725
|
+
if (toHead === void 0) {
|
|
2726
|
+
toHead = false;
|
|
2713
2727
|
}
|
|
2714
2728
|
|
|
2715
2729
|
if (!isSameSelection(selection, newSelection)) {
|
|
@@ -2719,9 +2733,10 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
2719
2733
|
var overlay = overlayRef.current;
|
|
2720
2734
|
if (!overlay) return;
|
|
2721
2735
|
|
|
2722
|
-
if (
|
|
2723
|
-
var anchor = newSelection[0]
|
|
2724
|
-
|
|
2736
|
+
if (scrollTo) {
|
|
2737
|
+
var anchor = newSelection[0],
|
|
2738
|
+
head = newSelection[1];
|
|
2739
|
+
scrollToCell(overlay, toHead ? head : anchor, [canvasWidth, canvasHeight], [freezeColumns, freezeRows], dataOffset, maxScroll, cellLayout, function (dataOffset, maxScroll) {
|
|
2725
2740
|
setDataOffset(dataOffset);
|
|
2726
2741
|
setMaxScroll(maxScroll);
|
|
2727
2742
|
});
|
|
@@ -2915,7 +2930,7 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
2915
2930
|
anchor = head;
|
|
2916
2931
|
}
|
|
2917
2932
|
|
|
2918
|
-
changeSelection([anchor, head]);
|
|
2933
|
+
changeSelection([anchor, head], true, true);
|
|
2919
2934
|
return;
|
|
2920
2935
|
}
|
|
2921
2936
|
|
|
@@ -2994,16 +3009,26 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
2994
3009
|
canvasStyles.width = 'calc(100%)';
|
|
2995
3010
|
}
|
|
2996
3011
|
|
|
2997
|
-
var
|
|
2998
|
-
var _props$
|
|
3012
|
+
var renderedInside = useMemo(function () {
|
|
3013
|
+
var _props$renderInside;
|
|
3014
|
+
|
|
3015
|
+
return (_props$renderInside = props.renderInside) === null || _props$renderInside === void 0 ? void 0 : _props$renderInside.call(props, {
|
|
3016
|
+
visibleCells: visibleCells,
|
|
3017
|
+
cellLayout: cellLayout,
|
|
3018
|
+
selection: selection,
|
|
3019
|
+
editMode: editMode
|
|
3020
|
+
});
|
|
3021
|
+
}, [props.renderInside, visibleCells, cellLayout, selection, editMode]);
|
|
3022
|
+
var renderedOutside = useMemo(function () {
|
|
3023
|
+
var _props$renderOutside;
|
|
2999
3024
|
|
|
3000
|
-
return (_props$
|
|
3025
|
+
return (_props$renderOutside = props.renderOutside) === null || _props$renderOutside === void 0 ? void 0 : _props$renderOutside.call(props, {
|
|
3001
3026
|
visibleCells: visibleCells,
|
|
3002
3027
|
cellLayout: cellLayout,
|
|
3003
3028
|
selection: selection,
|
|
3004
3029
|
editMode: editMode
|
|
3005
3030
|
});
|
|
3006
|
-
}, [props.
|
|
3031
|
+
}, [props.renderOutside, visibleCells, cellLayout, selection, editMode]);
|
|
3007
3032
|
return React.createElement("div", {
|
|
3008
3033
|
style: {
|
|
3009
3034
|
position: 'relative',
|
|
@@ -3037,13 +3062,19 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3037
3062
|
height: 1,
|
|
3038
3063
|
backgroundColor: 'rgba(0,0,0,0.0)'
|
|
3039
3064
|
}
|
|
3040
|
-
}),
|
|
3065
|
+
}), renderedInside ? React.createElement("div", {
|
|
3041
3066
|
style: {
|
|
3042
3067
|
position: 'sticky',
|
|
3043
3068
|
left: 0,
|
|
3044
3069
|
top: 0
|
|
3045
3070
|
}
|
|
3046
|
-
},
|
|
3071
|
+
}, renderedInside) : null), renderedOutside ? React.createElement("div", {
|
|
3072
|
+
style: {
|
|
3073
|
+
position: 'absolute',
|
|
3074
|
+
left: 0,
|
|
3075
|
+
top: 0
|
|
3076
|
+
}
|
|
3077
|
+
}, renderedOutside) : null, React.createElement("textarea", {
|
|
3047
3078
|
style: {
|
|
3048
3079
|
position: 'absolute',
|
|
3049
3080
|
top: 0,
|