@deephaven/grid 1.4.1-beta.2 → 1.4.1-react19.43
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/CellInputField.d.ts +0 -27
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +7 -31
- package/dist/CellInputField.js.map +1 -1
- package/dist/CellRenderer.js.map +1 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/DataBarCellRenderer.js +3 -5
- package/dist/DataBarCellRenderer.js.map +1 -1
- package/dist/DataBarGridModel.js.map +1 -1
- package/dist/DeletableGridModel.js.map +1 -1
- package/dist/EditableGridModel.js.map +1 -1
- package/dist/EventHandlerResult.js.map +1 -1
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.d.ts +2 -0
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +28 -27
- package/dist/Grid.js.map +1 -1
- package/dist/GridAxisRange.js.map +1 -1
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +20 -21
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMetrics.js.map +1 -1
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.js +1 -3
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js +8 -9
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js +11 -12
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridRendererTypes.js.map +1 -1
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.d.ts +1 -2
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +2 -3
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js +1 -3
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockDataBarGridModel.js +1 -2
- package/dist/MockDataBarGridModel.js.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +6 -8
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/TextCellRenderer.js +3 -5
- package/dist/TextCellRenderer.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/TokenBoxCellRenderer.js.map +1 -1
- package/dist/ViewportDataGridModel.js +2 -2
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +1 -3
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +1 -3
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -5
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +1 -3
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js.map +1 -1
- package/package.json +4 -5
package/dist/Grid.js
CHANGED
|
@@ -25,8 +25,7 @@ import { isExpandableGridModel } from "./ExpandableGridModel.js";
|
|
|
25
25
|
import { assertIsEditableGridModel, isEditableGridModel } from "./EditableGridModel.js";
|
|
26
26
|
import { assertIsDefined } from "./errors/index.js";
|
|
27
27
|
import ThemeContext from "./ThemeContext.js";
|
|
28
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
29
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
29
|
/**
|
|
31
30
|
* High performance, extendible, themeable grid component.
|
|
32
31
|
* Architectured to be fast and handle billions of rows/columns by default.
|
|
@@ -42,8 +41,6 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
42
41
|
* Can also add onClick and onContextMenu handlers to add custom functionality and menus.
|
|
43
42
|
*/
|
|
44
43
|
class Grid extends PureComponent {
|
|
45
|
-
// use same constant as chrome source for windows
|
|
46
|
-
// https://github.com/chromium/chromium/blob/973af9d461b6b5dc60208c8d3d66adc27e53da78/ui/events/blink/web_input_event_builders_win.cc#L285
|
|
47
44
|
/**
|
|
48
45
|
* On some devices there may be different scaling required for high DPI. Get the scale required for the canvas.
|
|
49
46
|
* @param context The canvas context
|
|
@@ -72,14 +69,8 @@ class Grid extends PureComponent {
|
|
|
72
69
|
}
|
|
73
70
|
|
|
74
71
|
// Need to disable react/sort-comp so I can put the fields here
|
|
75
|
-
/* eslint-disable react/sort-comp */
|
|
76
|
-
|
|
77
|
-
// We draw the canvas on the next animation frame, keep track of the next one
|
|
78
|
-
// Keep track of previous metrics and new metrics for comparison
|
|
79
|
-
// Track the cursor that is currently added to the document
|
|
80
|
-
// Add to document so that when dragging the cursor stays, even if mouse leaves the canvas
|
|
81
|
-
// Note: on document, not body so that cursor styling can be combined with
|
|
82
|
-
// blocked pointer events that would otherwise prevent cursor styling from showing
|
|
72
|
+
/* eslint-disable react/sort-comp */
|
|
73
|
+
|
|
83
74
|
/* eslint-enable react/sort-comp */
|
|
84
75
|
|
|
85
76
|
constructor(props) {
|
|
@@ -88,12 +79,20 @@ class Grid extends PureComponent {
|
|
|
88
79
|
_defineProperty(this, "metricCalculator", void 0);
|
|
89
80
|
_defineProperty(this, "canvas", void 0);
|
|
90
81
|
_defineProperty(this, "canvasContext", void 0);
|
|
82
|
+
// The wrapper element for the canvas, used for sizing
|
|
91
83
|
_defineProperty(this, "canvasWrapper", void 0);
|
|
84
|
+
// Listen for resizing of the element and update the canvas appropriately
|
|
92
85
|
_defineProperty(this, "resizeObserver", void 0);
|
|
86
|
+
// We draw the canvas on the next animation frame, keep track of the next one
|
|
93
87
|
_defineProperty(this, "animationFrame", void 0);
|
|
88
|
+
// Keep track of previous metrics and new metrics for comparison
|
|
94
89
|
_defineProperty(this, "prevMetrics", void 0);
|
|
95
90
|
_defineProperty(this, "metrics", void 0);
|
|
96
91
|
_defineProperty(this, "renderState", void 0);
|
|
92
|
+
// Track the cursor that is currently added to the document
|
|
93
|
+
// Add to document so that when dragging the cursor stays, even if mouse leaves the canvas
|
|
94
|
+
// Note: on document, not body so that cursor styling can be combined with
|
|
95
|
+
// blocked pointer events that would otherwise prevent cursor styling from showing
|
|
97
96
|
_defineProperty(this, "documentCursor", void 0);
|
|
98
97
|
_defineProperty(this, "dragTimer", void 0);
|
|
99
98
|
_defineProperty(this, "keyHandlers", void 0);
|
|
@@ -202,7 +201,7 @@ class Grid extends PureComponent {
|
|
|
202
201
|
// Need to explicitly add wheel event to canvas so we can preventDefault/avoid passive listener issue
|
|
203
202
|
// Otherwise React attaches listener at doc level and you can't prevent default
|
|
204
203
|
// https://github.com/facebook/react/issues/14856
|
|
205
|
-
(_this$canvas = this.canvas) === null || _this$canvas === void 0
|
|
204
|
+
(_this$canvas = this.canvas) === null || _this$canvas === void 0 || _this$canvas.addEventListener('wheel', this.handleWheel, {
|
|
206
205
|
passive: false
|
|
207
206
|
});
|
|
208
207
|
if (this.canvasWrapper.current != null) {
|
|
@@ -303,7 +302,7 @@ class Grid extends PureComponent {
|
|
|
303
302
|
if (this.animationFrame != null) {
|
|
304
303
|
cancelAnimationFrame(this.animationFrame);
|
|
305
304
|
}
|
|
306
|
-
(_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0
|
|
305
|
+
(_this$canvas2 = this.canvas) === null || _this$canvas2 === void 0 || _this$canvas2.removeEventListener('wheel', this.handleWheel);
|
|
307
306
|
window.removeEventListener('mousemove', this.handleMouseDrag, true);
|
|
308
307
|
window.removeEventListener('mouseup', this.handleMouseUp, true);
|
|
309
308
|
this.resizeObserver.disconnect();
|
|
@@ -387,8 +386,8 @@ class Grid extends PureComponent {
|
|
|
387
386
|
* @returns The model index
|
|
388
387
|
*/
|
|
389
388
|
getModelColumn(columnIndex) {
|
|
390
|
-
var _this$metrics
|
|
391
|
-
var modelIndex = (_this$metrics = this.metrics) === null || _this$metrics === void 0
|
|
389
|
+
var _this$metrics;
|
|
390
|
+
var modelIndex = (_this$metrics = this.metrics) === null || _this$metrics === void 0 || (_this$metrics = _this$metrics.modelColumns) === null || _this$metrics === void 0 ? void 0 : _this$metrics.get(columnIndex);
|
|
392
391
|
if (modelIndex === undefined) {
|
|
393
392
|
throw new Error("Unable to get ModelIndex for column ".concat(columnIndex));
|
|
394
393
|
}
|
|
@@ -401,8 +400,8 @@ class Grid extends PureComponent {
|
|
|
401
400
|
* @returns The model index
|
|
402
401
|
*/
|
|
403
402
|
getModelRow(rowIndex) {
|
|
404
|
-
var _this$metrics2
|
|
405
|
-
var modelIndex = (_this$metrics2 = this.metrics) === null || _this$metrics2 === void 0
|
|
403
|
+
var _this$metrics2;
|
|
404
|
+
var modelIndex = (_this$metrics2 = this.metrics) === null || _this$metrics2 === void 0 || (_this$metrics2 = _this$metrics2.modelRows) === null || _this$metrics2 === void 0 ? void 0 : _this$metrics2.get(rowIndex);
|
|
406
405
|
if (modelIndex === undefined) {
|
|
407
406
|
throw new Error("Unable to get ModelIndex for row ".concat(rowIndex));
|
|
408
407
|
}
|
|
@@ -859,8 +858,8 @@ class Grid extends PureComponent {
|
|
|
859
858
|
// If it's the exact same single selection, then deselect.
|
|
860
859
|
// For if we click on one cell multiple times.
|
|
861
860
|
return {
|
|
862
|
-
selectedRanges:
|
|
863
|
-
lastSelectedRanges:
|
|
861
|
+
selectedRanges: EMPTY_ARRAY,
|
|
862
|
+
lastSelectedRanges: EMPTY_ARRAY,
|
|
864
863
|
cursorColumn: null,
|
|
865
864
|
cursorRow: null
|
|
866
865
|
};
|
|
@@ -1259,22 +1258,22 @@ class Grid extends PureComponent {
|
|
|
1259
1258
|
columnCount,
|
|
1260
1259
|
rowCount
|
|
1261
1260
|
} = model;
|
|
1262
|
-
var
|
|
1261
|
+
var ranges = selectedRanges;
|
|
1263
1262
|
// If each cell is a single selection, we need to update the selection to map to the newly pasted data
|
|
1264
1263
|
// Check for
|
|
1265
|
-
if (
|
|
1264
|
+
if (ranges.every(range => {
|
|
1266
1265
|
var _range$startColumn, _range$startRow;
|
|
1267
1266
|
return GridRange.cellCount([range]) === 1 && ((_range$startColumn = range.startColumn) !== null && _range$startColumn !== void 0 ? _range$startColumn : 0) + tableWidth <= columnCount && ((_range$startRow = range.startRow) !== null && _range$startRow !== void 0 ? _range$startRow : 0) + tableHeight <= rowCount;
|
|
1268
1267
|
})) {
|
|
1269
1268
|
// Remap the selected ranges
|
|
1270
|
-
|
|
1269
|
+
ranges = ranges.map(range => {
|
|
1271
1270
|
var _range$startColumn2, _range$startRow2;
|
|
1272
1271
|
return new GridRange(range.startColumn, range.startRow, ((_range$startColumn2 = range.startColumn) !== null && _range$startColumn2 !== void 0 ? _range$startColumn2 : 0) + tableWidth - 1, ((_range$startRow2 = range.startRow) !== null && _range$startRow2 !== void 0 ? _range$startRow2 : 0) + tableHeight - 1);
|
|
1273
1272
|
});
|
|
1274
|
-
_this.setSelectedRanges(
|
|
1273
|
+
_this.setSelectedRanges(ranges);
|
|
1275
1274
|
}
|
|
1276
1275
|
var edits = [];
|
|
1277
|
-
|
|
1276
|
+
ranges.forEach(range => {
|
|
1278
1277
|
var _range$startColumn3;
|
|
1279
1278
|
if (((_range$startColumn3 = range.startColumn) !== null && _range$startColumn3 !== void 0 ? _range$startColumn3 : 0) + tableWidth > columnCount) {
|
|
1280
1279
|
throw new PasteError('Pasted content would overflow columns.');
|
|
@@ -1417,7 +1416,7 @@ class Grid extends PureComponent {
|
|
|
1417
1416
|
*/
|
|
1418
1417
|
focus() {
|
|
1419
1418
|
var _this$canvas3;
|
|
1420
|
-
(_this$canvas3 = this.canvas) === null || _this$canvas3 === void 0
|
|
1419
|
+
(_this$canvas3 = this.canvas) === null || _this$canvas3 === void 0 || _this$canvas3.focus();
|
|
1421
1420
|
}
|
|
1422
1421
|
|
|
1423
1422
|
/**
|
|
@@ -1445,7 +1444,7 @@ class Grid extends PureComponent {
|
|
|
1445
1444
|
break;
|
|
1446
1445
|
}
|
|
1447
1446
|
}
|
|
1448
|
-
(_this$canvas4 = this.canvas) === null || _this$canvas4 === void 0
|
|
1447
|
+
(_this$canvas4 = this.canvas) === null || _this$canvas4 === void 0 || _this$canvas4.focus();
|
|
1449
1448
|
}
|
|
1450
1449
|
|
|
1451
1450
|
/**
|
|
@@ -2058,6 +2057,8 @@ _defineProperty(Grid, "defaultProps", {
|
|
|
2058
2057
|
autoSelectRow: false
|
|
2059
2058
|
}
|
|
2060
2059
|
});
|
|
2060
|
+
// use same constant as chrome source for windows
|
|
2061
|
+
// https://github.com/chromium/chromium/blob/973af9d461b6b5dc60208c8d3d66adc27e53da78/ui/events/blink/web_input_event_builders_win.cc#L285
|
|
2061
2062
|
_defineProperty(Grid, "pixelsPerLine", 100 / 3);
|
|
2062
2063
|
_defineProperty(Grid, "dragTimeout", 1000);
|
|
2063
2064
|
_defineProperty(Grid, "getTheme", memoize((contextTheme, userTheme) => _objectSpread(_objectSpread(_objectSpread({}, GridTheme), contextTheme), userTheme)));
|