sheet-happens 0.0.31 → 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 +64 -33
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +64 -33
- 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.js
CHANGED
|
@@ -160,9 +160,6 @@ var isInRange = function isInRange(x, min, max) {
|
|
|
160
160
|
var isInRangeLeft = function isInRangeLeft(x, min, max) {
|
|
161
161
|
return min <= x && x < max;
|
|
162
162
|
};
|
|
163
|
-
var isInRangeRight = function isInRangeRight(x, min, max) {
|
|
164
|
-
return min < x && x <= max;
|
|
165
|
-
};
|
|
166
163
|
var isInRangeCenter = function isInRangeCenter(x, min, max) {
|
|
167
164
|
return min < x && x < max;
|
|
168
165
|
};
|
|
@@ -748,24 +745,24 @@ var useMouse = function useMouse(hitmapRef, selection, knobArea, editMode, editD
|
|
|
748
745
|
}
|
|
749
746
|
}
|
|
750
747
|
|
|
751
|
-
var
|
|
748
|
+
var scrollTo = true;
|
|
752
749
|
|
|
753
750
|
if (!hideRowHeaders && x < getIndentX()) {
|
|
754
|
-
|
|
751
|
+
scrollTo = false;
|
|
755
752
|
setDraggingRowSelection(true);
|
|
756
753
|
anchor[0] = -1;
|
|
757
754
|
head[0] = -1;
|
|
758
755
|
}
|
|
759
756
|
|
|
760
757
|
if (!hideColumnHeaders && y < getIndentY()) {
|
|
761
|
-
|
|
758
|
+
scrollTo = false;
|
|
762
759
|
setDraggingColumnSelection(true);
|
|
763
760
|
anchor[1] = -1;
|
|
764
761
|
head[1] = -1;
|
|
765
762
|
}
|
|
766
763
|
|
|
767
764
|
setDraggingSelection(true);
|
|
768
|
-
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([anchor, head],
|
|
765
|
+
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([anchor, head], scrollTo, true);
|
|
769
766
|
}, [getMousePosition, getScrollPosition, getMouseHit, onColumnOrderChange, onRowOrderChange, onCellWidthChange, onCellHeightChange, onKnobAreaChange, onSelectionChange, onCommit, canSizeColumn, canSizeRow, canOrderColumn, canOrderRow]);
|
|
770
767
|
var onPointerUp = React.useCallback(function (e) {
|
|
771
768
|
var _ref$current2 = ref.current,
|
|
@@ -1287,8 +1284,14 @@ var useScroll = function useScroll(offset, maxScroll, cellLayout, onOffsetChange
|
|
|
1287
1284
|
return;
|
|
1288
1285
|
}
|
|
1289
1286
|
|
|
1290
|
-
var
|
|
1291
|
-
|
|
1287
|
+
var absoluteToCell = cellLayout.absoluteToCell,
|
|
1288
|
+
cellToAbsolute = cellLayout.cellToAbsolute;
|
|
1289
|
+
|
|
1290
|
+
var _cellToAbsolute = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1291
|
+
nudgeX = _cellToAbsolute[0],
|
|
1292
|
+
nudgeY = _cellToAbsolute[1];
|
|
1293
|
+
|
|
1294
|
+
var xy = [e.target.scrollLeft + nudgeX, e.target.scrollTop + nudgeY];
|
|
1292
1295
|
var cell = absoluteToCell(xy);
|
|
1293
1296
|
|
|
1294
1297
|
if (!isSameXY(cell, offset)) {
|
|
@@ -1319,9 +1322,9 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1319
1322
|
columnToPixel = cellLayout.columnToPixel,
|
|
1320
1323
|
rowToPixel = cellLayout.rowToPixel;
|
|
1321
1324
|
|
|
1322
|
-
var
|
|
1323
|
-
frozenX =
|
|
1324
|
-
frozenY =
|
|
1325
|
+
var _cellToAbsolute2 = cellToAbsolute(freeze),
|
|
1326
|
+
frozenX = _cellToAbsolute2[0],
|
|
1327
|
+
frozenY = _cellToAbsolute2[1];
|
|
1325
1328
|
|
|
1326
1329
|
var _cellToPixel = cellToPixel(cell),
|
|
1327
1330
|
left = _cellToPixel[0],
|
|
@@ -1335,11 +1338,11 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1335
1338
|
newY = offset[1];
|
|
1336
1339
|
|
|
1337
1340
|
if (left <= frozenX) {
|
|
1338
|
-
newX = x;
|
|
1341
|
+
newX = x - freeze[0];
|
|
1339
1342
|
}
|
|
1340
1343
|
|
|
1341
1344
|
if (top <= frozenY) {
|
|
1342
|
-
newY = y;
|
|
1345
|
+
newY = y - freeze[1];
|
|
1343
1346
|
}
|
|
1344
1347
|
|
|
1345
1348
|
if (right > w) {
|
|
@@ -1358,12 +1361,17 @@ var scrollToCell = function scrollToCell(element, cell, view, freeze, offset, ma
|
|
|
1358
1361
|
|
|
1359
1362
|
if (!isSameXY(newOffset, offset)) {
|
|
1360
1363
|
var scroll = cellToAbsolute(newOffset);
|
|
1364
|
+
|
|
1365
|
+
var _cellToAbsolute3 = cellToAbsolute([0, 0], [0.5, 0.5]),
|
|
1366
|
+
nudgeX = _cellToAbsolute3[0],
|
|
1367
|
+
nudgeY = _cellToAbsolute3[1];
|
|
1368
|
+
|
|
1361
1369
|
callback(newOffset, maxXY(maxScroll, scroll));
|
|
1362
1370
|
setTimeout(function () {
|
|
1363
1371
|
var scrollX = scroll[0],
|
|
1364
1372
|
scrollY = scroll[1];
|
|
1365
|
-
element.scrollLeft = scrollX;
|
|
1366
|
-
element.scrollTop = scrollY;
|
|
1373
|
+
element.scrollLeft = scrollX - nudgeX;
|
|
1374
|
+
element.scrollTop = scrollY - nudgeY;
|
|
1367
1375
|
});
|
|
1368
1376
|
}
|
|
1369
1377
|
};
|
|
@@ -2486,18 +2494,20 @@ var resolveFrozenSelection = function resolveFrozenSelection(selection, cellLayo
|
|
|
2486
2494
|
|
|
2487
2495
|
if (isInRangeLeft(minX, freezeX, offsetX + freezeX)) {
|
|
2488
2496
|
left = -1e5;
|
|
2497
|
+
var lastInvisibleX = offsetX + freezeX - 1;
|
|
2489
2498
|
|
|
2490
|
-
if (
|
|
2491
|
-
right = indentX;
|
|
2499
|
+
if (maxX <= lastInvisibleX) {
|
|
2500
|
+
if (maxX === lastInvisibleX) right = indentX;else right = -1e5;
|
|
2492
2501
|
hideKnob = true;
|
|
2493
2502
|
}
|
|
2494
2503
|
}
|
|
2495
2504
|
|
|
2496
2505
|
if (isInRangeLeft(minY, freezeY, offsetY + freezeY)) {
|
|
2497
2506
|
top = -1e5;
|
|
2507
|
+
var lastInvisibleY = offsetY + freezeY - 1;
|
|
2498
2508
|
|
|
2499
|
-
if (
|
|
2500
|
-
bottom = indentY;
|
|
2509
|
+
if (maxY <= lastInvisibleY) {
|
|
2510
|
+
if (maxY === lastInvisibleY) bottom = indentY;else bottom = -1e5;
|
|
2501
2511
|
hideKnob = true;
|
|
2502
2512
|
}
|
|
2503
2513
|
}
|
|
@@ -2710,9 +2720,13 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
2710
2720
|
}
|
|
2711
2721
|
}, [visibleCells, props.onScrollChange]);
|
|
2712
2722
|
|
|
2713
|
-
var changeSelection = function changeSelection(newSelection,
|
|
2714
|
-
if (
|
|
2715
|
-
|
|
2723
|
+
var changeSelection = function changeSelection(newSelection, scrollTo, toHead) {
|
|
2724
|
+
if (scrollTo === void 0) {
|
|
2725
|
+
scrollTo = true;
|
|
2726
|
+
}
|
|
2727
|
+
|
|
2728
|
+
if (toHead === void 0) {
|
|
2729
|
+
toHead = false;
|
|
2716
2730
|
}
|
|
2717
2731
|
|
|
2718
2732
|
if (!isSameSelection(selection, newSelection)) {
|
|
@@ -2722,9 +2736,10 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
2722
2736
|
var overlay = overlayRef.current;
|
|
2723
2737
|
if (!overlay) return;
|
|
2724
2738
|
|
|
2725
|
-
if (
|
|
2726
|
-
var anchor = newSelection[0]
|
|
2727
|
-
|
|
2739
|
+
if (scrollTo) {
|
|
2740
|
+
var anchor = newSelection[0],
|
|
2741
|
+
head = newSelection[1];
|
|
2742
|
+
scrollToCell(overlay, toHead ? head : anchor, [canvasWidth, canvasHeight], [freezeColumns, freezeRows], dataOffset, maxScroll, cellLayout, function (dataOffset, maxScroll) {
|
|
2728
2743
|
setDataOffset(dataOffset);
|
|
2729
2744
|
setMaxScroll(maxScroll);
|
|
2730
2745
|
});
|
|
@@ -2918,7 +2933,7 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
2918
2933
|
anchor = head;
|
|
2919
2934
|
}
|
|
2920
2935
|
|
|
2921
|
-
changeSelection([anchor, head]);
|
|
2936
|
+
changeSelection([anchor, head], true, true);
|
|
2922
2937
|
return;
|
|
2923
2938
|
}
|
|
2924
2939
|
|
|
@@ -2997,16 +3012,26 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
2997
3012
|
canvasStyles.width = 'calc(100%)';
|
|
2998
3013
|
}
|
|
2999
3014
|
|
|
3000
|
-
var
|
|
3001
|
-
var _props$
|
|
3015
|
+
var renderedInside = React.useMemo(function () {
|
|
3016
|
+
var _props$renderInside;
|
|
3017
|
+
|
|
3018
|
+
return (_props$renderInside = props.renderInside) === null || _props$renderInside === void 0 ? void 0 : _props$renderInside.call(props, {
|
|
3019
|
+
visibleCells: visibleCells,
|
|
3020
|
+
cellLayout: cellLayout,
|
|
3021
|
+
selection: selection,
|
|
3022
|
+
editMode: editMode
|
|
3023
|
+
});
|
|
3024
|
+
}, [props.renderInside, visibleCells, cellLayout, selection, editMode]);
|
|
3025
|
+
var renderedOutside = React.useMemo(function () {
|
|
3026
|
+
var _props$renderOutside;
|
|
3002
3027
|
|
|
3003
|
-
return (_props$
|
|
3028
|
+
return (_props$renderOutside = props.renderOutside) === null || _props$renderOutside === void 0 ? void 0 : _props$renderOutside.call(props, {
|
|
3004
3029
|
visibleCells: visibleCells,
|
|
3005
3030
|
cellLayout: cellLayout,
|
|
3006
3031
|
selection: selection,
|
|
3007
3032
|
editMode: editMode
|
|
3008
3033
|
});
|
|
3009
|
-
}, [props.
|
|
3034
|
+
}, [props.renderOutside, visibleCells, cellLayout, selection, editMode]);
|
|
3010
3035
|
return React__default.createElement("div", {
|
|
3011
3036
|
style: {
|
|
3012
3037
|
position: 'relative',
|
|
@@ -3040,13 +3065,19 @@ var Sheet = React.forwardRef(function (props, ref) {
|
|
|
3040
3065
|
height: 1,
|
|
3041
3066
|
backgroundColor: 'rgba(0,0,0,0.0)'
|
|
3042
3067
|
}
|
|
3043
|
-
}),
|
|
3068
|
+
}), renderedInside ? React__default.createElement("div", {
|
|
3044
3069
|
style: {
|
|
3045
3070
|
position: 'sticky',
|
|
3046
3071
|
left: 0,
|
|
3047
3072
|
top: 0
|
|
3048
3073
|
}
|
|
3049
|
-
},
|
|
3074
|
+
}, renderedInside) : null), renderedOutside ? React__default.createElement("div", {
|
|
3075
|
+
style: {
|
|
3076
|
+
position: 'absolute',
|
|
3077
|
+
left: 0,
|
|
3078
|
+
top: 0
|
|
3079
|
+
}
|
|
3080
|
+
}, renderedOutside) : null, React__default.createElement("textarea", {
|
|
3050
3081
|
style: {
|
|
3051
3082
|
position: 'absolute',
|
|
3052
3083
|
top: 0,
|