@deephaven/grid 1.22.1 → 1.22.2-alpha-pivot-builder.0730ba6.0
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.js +41 -22
- package/dist/CellInputField.js.map +1 -1
- package/dist/CellRenderer.js +19 -27
- package/dist/CellRenderer.js.map +1 -1
- package/dist/DataBarCellRenderer.js +61 -87
- package/dist/DataBarCellRenderer.js.map +1 -1
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +291 -453
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.js +23 -21
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +192 -303
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridRange.js +18 -28
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js +429 -600
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.js +130 -163
- package/dist/GridUtils.js.map +1 -1
- package/dist/MockGridModel.js +17 -10
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +36 -31
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/TextCellRenderer.js +36 -57
- package/dist/TextCellRenderer.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +4 -7
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +1 -3
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +40 -71
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +4 -10
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +3 -7
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +54 -82
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +4 -8
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +31 -55
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +26 -46
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +2 -4
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +14 -22
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +8 -16
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +47 -75
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +9 -23
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.js +24 -39
- package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +31 -55
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/package.json +3 -3
package/dist/Grid.js
CHANGED
|
@@ -119,14 +119,12 @@ class Grid extends PureComponent {
|
|
|
119
119
|
this.handleResize = this.handleResize.bind(this);
|
|
120
120
|
this.handleWheel = this.handleWheel.bind(this);
|
|
121
121
|
this.getSelectedRanges = this.getSelectedRanges.bind(this);
|
|
122
|
-
var
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
renderer
|
|
129
|
-
} = props;
|
|
122
|
+
var isStuckToBottom = props.isStuckToBottom,
|
|
123
|
+
isStuckToRight = props.isStuckToRight,
|
|
124
|
+
metricCalculator = props.metricCalculator,
|
|
125
|
+
movedColumns = props.movedColumns,
|
|
126
|
+
movedRows = props.movedRows,
|
|
127
|
+
renderer = props.renderer;
|
|
130
128
|
this.renderer = renderer || new GridRenderer();
|
|
131
129
|
this.metricCalculator = metricCalculator || new GridMetricCalculator();
|
|
132
130
|
this.canvas = null;
|
|
@@ -215,23 +213,19 @@ class Grid extends PureComponent {
|
|
|
215
213
|
|
|
216
214
|
// apply on mount, so that it works with a static model
|
|
217
215
|
// https://github.com/deephaven/web-client-ui/issues/581
|
|
218
|
-
var
|
|
219
|
-
isStuckToBottom,
|
|
220
|
-
isStuckToRight
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
left
|
|
225
|
-
} = this.getStickyScrollPosition(isStuckToBottom, isStuckToRight);
|
|
216
|
+
var _this$props = this.props,
|
|
217
|
+
isStuckToBottom = _this$props.isStuckToBottom,
|
|
218
|
+
isStuckToRight = _this$props.isStuckToRight;
|
|
219
|
+
var _this$getStickyScroll = this.getStickyScrollPosition(isStuckToBottom, isStuckToRight),
|
|
220
|
+
top = _this$getStickyScroll.top,
|
|
221
|
+
left = _this$getStickyScroll.left;
|
|
226
222
|
this.setState({
|
|
227
223
|
top,
|
|
228
224
|
left
|
|
229
225
|
});
|
|
230
226
|
}
|
|
231
227
|
componentDidUpdate(prevProps, prevState) {
|
|
232
|
-
var
|
|
233
|
-
renderError
|
|
234
|
-
} = this.state;
|
|
228
|
+
var renderError = this.state.renderError;
|
|
235
229
|
|
|
236
230
|
// Render errors mean we can't recover
|
|
237
231
|
if (renderError != null) {
|
|
@@ -243,32 +237,28 @@ class Grid extends PureComponent {
|
|
|
243
237
|
if ((changedProps.length === 0 || changedProps.length === 1 && changedProps[0] === 'children') && changedState.length === 0) {
|
|
244
238
|
return;
|
|
245
239
|
}
|
|
246
|
-
var
|
|
247
|
-
isStickyBottom,
|
|
248
|
-
isStickyRight,
|
|
249
|
-
movedColumns,
|
|
250
|
-
movedRows,
|
|
251
|
-
onMovedColumnsChanged,
|
|
252
|
-
onMoveColumnComplete,
|
|
253
|
-
onMovedRowsChanged,
|
|
254
|
-
onMoveRowComplete
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
isStickyRight
|
|
259
|
-
movedColumns
|
|
260
|
-
movedRows
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
draggingRow,
|
|
269
|
-
movedColumns: currentStateMovedColumns,
|
|
270
|
-
movedRows: currentStateMovedRows
|
|
271
|
-
} = this.state;
|
|
240
|
+
var _this$props2 = this.props,
|
|
241
|
+
isStickyBottom = _this$props2.isStickyBottom,
|
|
242
|
+
isStickyRight = _this$props2.isStickyRight,
|
|
243
|
+
movedColumns = _this$props2.movedColumns,
|
|
244
|
+
movedRows = _this$props2.movedRows,
|
|
245
|
+
onMovedColumnsChanged = _this$props2.onMovedColumnsChanged,
|
|
246
|
+
onMoveColumnComplete = _this$props2.onMoveColumnComplete,
|
|
247
|
+
onMovedRowsChanged = _this$props2.onMovedRowsChanged,
|
|
248
|
+
onMoveRowComplete = _this$props2.onMoveRowComplete,
|
|
249
|
+
renderer = _this$props2.renderer,
|
|
250
|
+
metricCalculator = _this$props2.metricCalculator;
|
|
251
|
+
var prevIsStickyBottom = prevProps.isStickyBottom,
|
|
252
|
+
prevIsStickyRight = prevProps.isStickyRight,
|
|
253
|
+
prevPropMovedColumns = prevProps.movedColumns,
|
|
254
|
+
prevPropMovedRows = prevProps.movedRows;
|
|
255
|
+
var prevStateMovedColumns = prevState.movedColumns,
|
|
256
|
+
prevStateMovedRows = prevState.movedRows;
|
|
257
|
+
var _this$state = this.state,
|
|
258
|
+
draggingColumn = _this$state.draggingColumn,
|
|
259
|
+
draggingRow = _this$state.draggingRow,
|
|
260
|
+
currentStateMovedColumns = _this$state.movedColumns,
|
|
261
|
+
currentStateMovedRows = _this$state.movedRows;
|
|
272
262
|
var stateUpdates = {};
|
|
273
263
|
if (prevPropMovedColumns !== movedColumns) {
|
|
274
264
|
stateUpdates.movedColumns = movedColumns;
|
|
@@ -294,14 +284,23 @@ class Grid extends PureComponent {
|
|
|
294
284
|
if (isStickyRight !== prevIsStickyRight) {
|
|
295
285
|
stateUpdates.isStuckToRight = false;
|
|
296
286
|
}
|
|
287
|
+
|
|
288
|
+
// Sync renderer/metricCalculator props to instance fields so callers can
|
|
289
|
+
// swap them at runtime (e.g. pivot model swap supplies a pivot renderer
|
|
290
|
+
// and metric calculator).
|
|
291
|
+
if (renderer !== prevProps.renderer) {
|
|
292
|
+
this.renderer = renderer !== null && renderer !== void 0 ? renderer : new GridRenderer();
|
|
293
|
+
}
|
|
294
|
+
if (metricCalculator !== prevProps.metricCalculator) {
|
|
295
|
+
this.metricCalculator = metricCalculator !== null && metricCalculator !== void 0 ? metricCalculator : new GridMetricCalculator();
|
|
296
|
+
}
|
|
297
297
|
var updatedState = _objectSpread(_objectSpread({}, this.state), stateUpdates);
|
|
298
298
|
this.updateMetrics(updatedState);
|
|
299
299
|
this.requestUpdateCanvas();
|
|
300
300
|
if (this.needToUpdateScroll()) {
|
|
301
|
-
var
|
|
302
|
-
top,
|
|
303
|
-
left
|
|
304
|
-
} = this.getStickyScrollPosition(isStickyBottom, isStickyRight);
|
|
301
|
+
var _this$getStickyScroll2 = this.getStickyScrollPosition(isStickyBottom, isStickyRight),
|
|
302
|
+
top = _this$getStickyScroll2.top,
|
|
303
|
+
left = _this$getStickyScroll2.left;
|
|
305
304
|
updatedState.top = top;
|
|
306
305
|
updatedState.left = left;
|
|
307
306
|
}
|
|
@@ -323,9 +322,7 @@ class Grid extends PureComponent {
|
|
|
323
322
|
this.removeDocumentCursor();
|
|
324
323
|
}
|
|
325
324
|
getTheme() {
|
|
326
|
-
var
|
|
327
|
-
theme
|
|
328
|
-
} = this.props;
|
|
325
|
+
var theme = this.props.theme;
|
|
329
326
|
return Grid.getTheme(this.context, theme);
|
|
330
327
|
}
|
|
331
328
|
getGridPointFromEvent(event) {
|
|
@@ -342,27 +339,24 @@ class Grid extends PureComponent {
|
|
|
342
339
|
getMetricState() {
|
|
343
340
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state;
|
|
344
341
|
var theme = this.getTheme();
|
|
345
|
-
var
|
|
346
|
-
model,
|
|
347
|
-
stateOverride
|
|
348
|
-
} = this.props;
|
|
342
|
+
var _this$props3 = this.props,
|
|
343
|
+
model = _this$props3.model,
|
|
344
|
+
stateOverride = _this$props3.stateOverride;
|
|
349
345
|
if (!this.canvasContext || !this.canvas) {
|
|
350
346
|
throw new Error('Canvas and context must be defined to get metrics');
|
|
351
347
|
}
|
|
352
348
|
var context = this.canvasContext;
|
|
353
349
|
var width = this.canvas.clientWidth;
|
|
354
350
|
var height = this.canvas.clientHeight;
|
|
355
|
-
var
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
draggingColumn
|
|
365
|
-
} = state;
|
|
351
|
+
var left = state.left,
|
|
352
|
+
top = state.top,
|
|
353
|
+
leftOffset = state.leftOffset,
|
|
354
|
+
topOffset = state.topOffset,
|
|
355
|
+
movedColumns = state.movedColumns,
|
|
356
|
+
movedRows = state.movedRows,
|
|
357
|
+
isDraggingHorizontalScrollBar = state.isDraggingHorizontalScrollBar,
|
|
358
|
+
isDraggingVerticalScrollBar = state.isDraggingVerticalScrollBar,
|
|
359
|
+
draggingColumn = state.draggingColumn;
|
|
366
360
|
return _objectSpread({
|
|
367
361
|
left,
|
|
368
362
|
top,
|
|
@@ -381,15 +375,11 @@ class Grid extends PureComponent {
|
|
|
381
375
|
}, stateOverride);
|
|
382
376
|
}
|
|
383
377
|
getKeyHandlers() {
|
|
384
|
-
var
|
|
385
|
-
keyHandlers
|
|
386
|
-
} = this.props;
|
|
378
|
+
var keyHandlers = this.props.keyHandlers;
|
|
387
379
|
return this.getCachedKeyHandlers(keyHandlers);
|
|
388
380
|
}
|
|
389
381
|
getMouseHandlers() {
|
|
390
|
-
var
|
|
391
|
-
mouseHandlers
|
|
392
|
-
} = this.props;
|
|
382
|
+
var mouseHandlers = this.props.mouseHandlers;
|
|
393
383
|
return this.getCachedMouseHandlers(mouseHandlers);
|
|
394
384
|
}
|
|
395
385
|
|
|
@@ -429,9 +419,7 @@ class Grid extends PureComponent {
|
|
|
429
419
|
toggleRowExpanded(row) {
|
|
430
420
|
var expandDescendants = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
431
421
|
var modelRow = this.getModelRow(row);
|
|
432
|
-
var
|
|
433
|
-
model
|
|
434
|
-
} = this.props;
|
|
422
|
+
var model = this.props.model;
|
|
435
423
|
// We only want to set expansion if the row is expandable
|
|
436
424
|
// If it's not, still move the cursor to that position, as it may be outside of the current viewport and we don't know if it's expandable yet
|
|
437
425
|
if (isExpandableGridModel(model) && model.isRowExpandable(modelRow)) {
|
|
@@ -451,16 +439,15 @@ class Grid extends PureComponent {
|
|
|
451
439
|
left: this.state.left,
|
|
452
440
|
top: this.state.top
|
|
453
441
|
};
|
|
454
|
-
var
|
|
455
|
-
bottomVisible,
|
|
456
|
-
rowCount,
|
|
457
|
-
top,
|
|
458
|
-
lastTop,
|
|
459
|
-
rightVisible,
|
|
460
|
-
columnCount,
|
|
461
|
-
left,
|
|
462
|
-
lastLeft
|
|
463
|
-
} = this.metrics;
|
|
442
|
+
var _this$metrics3 = this.metrics,
|
|
443
|
+
bottomVisible = _this$metrics3.bottomVisible,
|
|
444
|
+
rowCount = _this$metrics3.rowCount,
|
|
445
|
+
top = _this$metrics3.top,
|
|
446
|
+
lastTop = _this$metrics3.lastTop,
|
|
447
|
+
rightVisible = _this$metrics3.rightVisible,
|
|
448
|
+
columnCount = _this$metrics3.columnCount,
|
|
449
|
+
left = _this$metrics3.left,
|
|
450
|
+
lastLeft = _this$metrics3.lastLeft;
|
|
464
451
|
var newTop = top;
|
|
465
452
|
var newLeft = left;
|
|
466
453
|
if (isStickyBottom && (bottomVisible < rowCount - 1 && bottomVisible > 0 || top > lastTop)) {
|
|
@@ -481,18 +468,13 @@ class Grid extends PureComponent {
|
|
|
481
468
|
* @param gridRanges The new selected ranges to set
|
|
482
469
|
*/
|
|
483
470
|
setSelectedRanges(gridRanges) {
|
|
484
|
-
var
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
var
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
var {
|
|
492
|
-
cursorRow,
|
|
493
|
-
cursorColumn,
|
|
494
|
-
selectedRanges
|
|
495
|
-
} = this.state;
|
|
471
|
+
var model = this.props.model;
|
|
472
|
+
var columnCount = model.columnCount,
|
|
473
|
+
rowCount = model.rowCount;
|
|
474
|
+
var _this$state2 = this.state,
|
|
475
|
+
cursorRow = _this$state2.cursorRow,
|
|
476
|
+
cursorColumn = _this$state2.cursorColumn,
|
|
477
|
+
selectedRanges = _this$state2.selectedRanges;
|
|
496
478
|
this.setState({
|
|
497
479
|
selectedRanges: gridRanges,
|
|
498
480
|
lastSelectedRanges: selectedRanges
|
|
@@ -502,10 +484,9 @@ class Grid extends PureComponent {
|
|
|
502
484
|
var newCursorRow = cursorRow;
|
|
503
485
|
var newCursorColumn = cursorColumn;
|
|
504
486
|
if (!range.containsCell(cursorColumn, cursorRow)) {
|
|
505
|
-
(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
} = range.startCell());
|
|
487
|
+
var _range$startCell = range.startCell();
|
|
488
|
+
newCursorRow = _range$startCell.row;
|
|
489
|
+
newCursorColumn = _range$startCell.column;
|
|
509
490
|
}
|
|
510
491
|
this.setState({
|
|
511
492
|
selectionStartColumn: range.startColumn,
|
|
@@ -518,12 +499,8 @@ class Grid extends PureComponent {
|
|
|
518
499
|
}
|
|
519
500
|
}
|
|
520
501
|
initContext() {
|
|
521
|
-
var
|
|
522
|
-
|
|
523
|
-
} = this;
|
|
524
|
-
var {
|
|
525
|
-
canvasOptions
|
|
526
|
-
} = this.props;
|
|
502
|
+
var canvas = this.canvas;
|
|
503
|
+
var canvasOptions = this.props.canvasOptions;
|
|
527
504
|
if (!canvas) throw new Error('Canvas not set');
|
|
528
505
|
this.canvasContext = canvas.getContext('2d', canvasOptions);
|
|
529
506
|
}
|
|
@@ -551,27 +528,21 @@ class Grid extends PureComponent {
|
|
|
551
528
|
this.updateCanvasScale();
|
|
552
529
|
this.updateMetrics();
|
|
553
530
|
this.updateRenderState();
|
|
554
|
-
var
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
renderState
|
|
558
|
-
} = this;
|
|
531
|
+
var canvasContext = this.canvasContext,
|
|
532
|
+
metrics = this.metrics,
|
|
533
|
+
renderState = this.renderState;
|
|
559
534
|
assertNotNull(canvasContext);
|
|
560
535
|
assertNotNull(metrics);
|
|
561
536
|
assertNotNull(renderState);
|
|
562
537
|
this.renderer.configureContext(canvasContext, renderState);
|
|
563
|
-
var
|
|
564
|
-
onViewChanged
|
|
565
|
-
} = this.props;
|
|
538
|
+
var onViewChanged = this.props.onViewChanged;
|
|
566
539
|
onViewChanged(metrics);
|
|
567
540
|
this.drawCanvas();
|
|
568
541
|
}
|
|
569
542
|
updateCanvasScale() {
|
|
570
|
-
var
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
canvasWrapper
|
|
574
|
-
} = this;
|
|
543
|
+
var canvas = this.canvas,
|
|
544
|
+
canvasContext = this.canvasContext,
|
|
545
|
+
canvasWrapper = this.canvasWrapper;
|
|
575
546
|
if (!canvas) throw new Error('canvas not set');
|
|
576
547
|
if (!canvasContext) throw new Error('canvasContext not set');
|
|
577
548
|
if (!canvasWrapper.current) throw new Error('canvasWrapper not set');
|
|
@@ -597,14 +568,12 @@ class Grid extends PureComponent {
|
|
|
597
568
|
}
|
|
598
569
|
updateScrollBounds() {
|
|
599
570
|
if (!this.metrics) throw new Error('metrics not set');
|
|
600
|
-
var
|
|
601
|
-
left,
|
|
602
|
-
top
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
lastTop
|
|
607
|
-
} = this.metrics;
|
|
571
|
+
var _this$state3 = this.state,
|
|
572
|
+
left = _this$state3.left,
|
|
573
|
+
top = _this$state3.top;
|
|
574
|
+
var _this$metrics4 = this.metrics,
|
|
575
|
+
lastLeft = _this$metrics4.lastLeft,
|
|
576
|
+
lastTop = _this$metrics4.lastTop;
|
|
608
577
|
if (left > lastLeft) {
|
|
609
578
|
this.setState({
|
|
610
579
|
left: lastLeft,
|
|
@@ -626,30 +595,24 @@ class Grid extends PureComponent {
|
|
|
626
595
|
if (!this.metrics || !this.prevMetrics) {
|
|
627
596
|
return false;
|
|
628
597
|
}
|
|
629
|
-
var
|
|
630
|
-
rowCount,
|
|
631
|
-
columnCount,
|
|
632
|
-
height,
|
|
633
|
-
width
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
width: prevWidth
|
|
640
|
-
} = this.prevMetrics;
|
|
598
|
+
var _this$metrics5 = this.metrics,
|
|
599
|
+
rowCount = _this$metrics5.rowCount,
|
|
600
|
+
columnCount = _this$metrics5.columnCount,
|
|
601
|
+
height = _this$metrics5.height,
|
|
602
|
+
width = _this$metrics5.width;
|
|
603
|
+
var _this$prevMetrics = this.prevMetrics,
|
|
604
|
+
prevRowCount = _this$prevMetrics.rowCount,
|
|
605
|
+
prevColumnCount = _this$prevMetrics.columnCount,
|
|
606
|
+
prevHeight = _this$prevMetrics.height,
|
|
607
|
+
prevWidth = _this$prevMetrics.width;
|
|
641
608
|
if (prevRowCount !== rowCount || height !== prevHeight) {
|
|
642
|
-
var
|
|
643
|
-
isStuckToBottom
|
|
644
|
-
} = this.state;
|
|
609
|
+
var isStuckToBottom = this.state.isStuckToBottom;
|
|
645
610
|
if (isStuckToBottom) {
|
|
646
611
|
return true;
|
|
647
612
|
}
|
|
648
613
|
}
|
|
649
614
|
if (prevColumnCount !== columnCount || width !== prevWidth) {
|
|
650
|
-
var
|
|
651
|
-
isStuckToRight
|
|
652
|
-
} = this.state;
|
|
615
|
+
var isStuckToRight = this.state.isStuckToRight;
|
|
653
616
|
if (isStuckToRight) {
|
|
654
617
|
return true;
|
|
655
618
|
}
|
|
@@ -659,9 +622,7 @@ class Grid extends PureComponent {
|
|
|
659
622
|
updateMetrics() {
|
|
660
623
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state;
|
|
661
624
|
this.prevMetrics = this.metrics;
|
|
662
|
-
var
|
|
663
|
-
metricCalculator
|
|
664
|
-
} = this;
|
|
625
|
+
var metricCalculator = this.metricCalculator;
|
|
665
626
|
var metricState = this.getMetricState(state);
|
|
666
627
|
this.metrics = metricCalculator.getMetrics(metricState);
|
|
667
628
|
this.updateScrollBounds();
|
|
@@ -673,16 +634,10 @@ class Grid extends PureComponent {
|
|
|
673
634
|
* @param prevState The previous grid state
|
|
674
635
|
*/
|
|
675
636
|
checkSelectionChange(prevState) {
|
|
676
|
-
var
|
|
677
|
-
|
|
678
|
-
} = prevState;
|
|
679
|
-
var {
|
|
680
|
-
selectedRanges
|
|
681
|
-
} = this.state;
|
|
637
|
+
var oldSelectedRanges = prevState.selectedRanges;
|
|
638
|
+
var selectedRanges = this.state.selectedRanges;
|
|
682
639
|
if (selectedRanges !== oldSelectedRanges) {
|
|
683
|
-
var
|
|
684
|
-
onSelectionChanged
|
|
685
|
-
} = this.props;
|
|
640
|
+
var onSelectionChanged = this.props.onSelectionChanged;
|
|
686
641
|
onSelectionChanged(selectedRanges);
|
|
687
642
|
}
|
|
688
643
|
}
|
|
@@ -692,16 +647,10 @@ class Grid extends PureComponent {
|
|
|
692
647
|
* @returns True if the selection is valid, false if the selection was invalid and has been reset
|
|
693
648
|
*/
|
|
694
649
|
validateSelection() {
|
|
695
|
-
var
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
selectedRanges
|
|
700
|
-
} = this.state;
|
|
701
|
-
var {
|
|
702
|
-
columnCount,
|
|
703
|
-
rowCount
|
|
704
|
-
} = model;
|
|
650
|
+
var model = this.props.model;
|
|
651
|
+
var selectedRanges = this.state.selectedRanges;
|
|
652
|
+
var columnCount = model.columnCount,
|
|
653
|
+
rowCount = model.rowCount;
|
|
705
654
|
for (var i = 0; i < selectedRanges.length; i += 1) {
|
|
706
655
|
var range = selectedRanges[i];
|
|
707
656
|
if (range.endColumn != null && range.endColumn >= columnCount || range.endRow != null && range.endRow >= rowCount) {
|
|
@@ -720,9 +669,7 @@ class Grid extends PureComponent {
|
|
|
720
669
|
* Clears all selected ranges
|
|
721
670
|
*/
|
|
722
671
|
clearSelectedRanges() {
|
|
723
|
-
var
|
|
724
|
-
selectedRanges
|
|
725
|
-
} = this.state;
|
|
672
|
+
var selectedRanges = this.state.selectedRanges;
|
|
726
673
|
this.setState({
|
|
727
674
|
selectedRanges: EMPTY_ARRAY,
|
|
728
675
|
lastSelectedRanges: selectedRanges
|
|
@@ -731,9 +678,7 @@ class Grid extends PureComponent {
|
|
|
731
678
|
|
|
732
679
|
/** Clears all but the last selected range */
|
|
733
680
|
trimSelectedRanges() {
|
|
734
|
-
var
|
|
735
|
-
selectedRanges
|
|
736
|
-
} = this.state;
|
|
681
|
+
var selectedRanges = this.state.selectedRanges;
|
|
737
682
|
if (selectedRanges.length > 0) {
|
|
738
683
|
this.setState({
|
|
739
684
|
selectedRanges: selectedRanges.slice(selectedRanges.length - 1)
|
|
@@ -743,9 +688,7 @@ class Grid extends PureComponent {
|
|
|
743
688
|
|
|
744
689
|
/** Gets the selected ranges */
|
|
745
690
|
getSelectedRanges() {
|
|
746
|
-
var
|
|
747
|
-
selectedRanges
|
|
748
|
-
} = this.state;
|
|
691
|
+
var selectedRanges = this.state.selectedRanges;
|
|
749
692
|
return selectedRanges;
|
|
750
693
|
}
|
|
751
694
|
|
|
@@ -776,18 +719,12 @@ class Grid extends PureComponent {
|
|
|
776
719
|
var extendSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
777
720
|
var maximizePreviousRange = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
778
721
|
this.setState(state => {
|
|
779
|
-
var
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
theme
|
|
786
|
-
} = this.props;
|
|
787
|
-
var {
|
|
788
|
-
autoSelectRow,
|
|
789
|
-
autoSelectColumn
|
|
790
|
-
} = theme;
|
|
722
|
+
var selectedRanges = state.selectedRanges,
|
|
723
|
+
selectionStartRow = state.selectionStartRow,
|
|
724
|
+
selectionStartColumn = state.selectionStartColumn;
|
|
725
|
+
var theme = this.props.theme;
|
|
726
|
+
var autoSelectRow = theme.autoSelectRow,
|
|
727
|
+
autoSelectColumn = theme.autoSelectColumn;
|
|
791
728
|
if (extendSelection && selectedRanges.length > 0) {
|
|
792
729
|
var lastSelectedRange = selectedRanges[selectedRanges.length - 1];
|
|
793
730
|
var left = null;
|
|
@@ -846,18 +783,12 @@ class Grid extends PureComponent {
|
|
|
846
783
|
*/
|
|
847
784
|
commitSelection() {
|
|
848
785
|
this.setState(state => {
|
|
849
|
-
var
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
var {
|
|
856
|
-
selectedRanges,
|
|
857
|
-
lastSelectedRanges,
|
|
858
|
-
cursorRow,
|
|
859
|
-
cursorColumn
|
|
860
|
-
} = state;
|
|
786
|
+
var theme = this.props.theme;
|
|
787
|
+
var autoSelectRow = theme.autoSelectRow;
|
|
788
|
+
var selectedRanges = state.selectedRanges,
|
|
789
|
+
lastSelectedRanges = state.lastSelectedRanges,
|
|
790
|
+
cursorRow = state.cursorRow,
|
|
791
|
+
cursorColumn = state.cursorColumn;
|
|
861
792
|
if (selectedRanges.length === 1 && (autoSelectRow !== undefined && autoSelectRow ? GridRange.rowCount(selectedRanges) === 1 : GridRange.cellCount(selectedRanges) === 1) && GridRange.rangeArraysEqual(selectedRanges, lastSelectedRanges)) {
|
|
862
793
|
// If it's the exact same single selection, then deselect.
|
|
863
794
|
// For if we click on one cell multiple times.
|
|
@@ -890,19 +821,13 @@ class Grid extends PureComponent {
|
|
|
890
821
|
var newCursorColumn = cursorColumn;
|
|
891
822
|
var newCursorRow = cursorRow;
|
|
892
823
|
if (!GridRange.containsCell(newSelectedRanges, cursorColumn, cursorRow)) {
|
|
893
|
-
var
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
var {
|
|
897
|
-
columnCount,
|
|
898
|
-
rowCount
|
|
899
|
-
} = model;
|
|
824
|
+
var model = this.props.model;
|
|
825
|
+
var columnCount = model.columnCount,
|
|
826
|
+
rowCount = model.rowCount;
|
|
900
827
|
var nextCursor = GridRange.nextCell(GridRange.boundedRanges(selectedRanges, columnCount, rowCount));
|
|
901
828
|
if (nextCursor != null) {
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
row: newCursorRow
|
|
905
|
-
} = nextCursor);
|
|
829
|
+
newCursorColumn = nextCursor.column;
|
|
830
|
+
newCursorRow = nextCursor.row;
|
|
906
831
|
} else {
|
|
907
832
|
newCursorColumn = null;
|
|
908
833
|
newCursorRow = null;
|
|
@@ -929,13 +854,12 @@ class Grid extends PureComponent {
|
|
|
929
854
|
if (!this.metrics || !this.prevMetrics) {
|
|
930
855
|
return;
|
|
931
856
|
}
|
|
932
|
-
var
|
|
933
|
-
gridY,
|
|
934
|
-
height,
|
|
935
|
-
lastTop,
|
|
936
|
-
userRowHeights,
|
|
937
|
-
rowHeight
|
|
938
|
-
} = this.metrics;
|
|
857
|
+
var _this$metrics6 = this.metrics,
|
|
858
|
+
gridY = _this$metrics6.gridY,
|
|
859
|
+
height = _this$metrics6.height,
|
|
860
|
+
lastTop = _this$metrics6.lastTop,
|
|
861
|
+
userRowHeights = _this$metrics6.userRowHeights,
|
|
862
|
+
rowHeight = _this$metrics6.rowHeight;
|
|
939
863
|
var tableHeight = height - gridY;
|
|
940
864
|
var halfViewportHeight = Math.round(tableHeight / 2) + ((_userRowHeights$get = userRowHeights.get(focusedRow)) !== null && _userRowHeights$get !== void 0 ? _userRowHeights$get : rowHeight);
|
|
941
865
|
var metricState = this.getMetricState();
|
|
@@ -945,9 +869,7 @@ class Grid extends PureComponent {
|
|
|
945
869
|
selectedRanges: [new GridRange(null, focusedRow, null, focusedRow)],
|
|
946
870
|
isStuckToBottom: false
|
|
947
871
|
});
|
|
948
|
-
var
|
|
949
|
-
cursorColumn
|
|
950
|
-
} = this.state;
|
|
872
|
+
var cursorColumn = this.state.cursorColumn;
|
|
951
873
|
this.moveCursorToPosition(cursorColumn, focusedRow, false, false);
|
|
952
874
|
}
|
|
953
875
|
|
|
@@ -955,14 +877,11 @@ class Grid extends PureComponent {
|
|
|
955
877
|
* Set the selection to the entire grid
|
|
956
878
|
*/
|
|
957
879
|
selectAll() {
|
|
958
|
-
var
|
|
959
|
-
model,
|
|
960
|
-
theme
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
autoSelectRow,
|
|
964
|
-
autoSelectColumn
|
|
965
|
-
} = theme;
|
|
880
|
+
var _this$props4 = this.props,
|
|
881
|
+
model = _this$props4.model,
|
|
882
|
+
theme = _this$props4.theme;
|
|
883
|
+
var autoSelectRow = theme.autoSelectRow,
|
|
884
|
+
autoSelectColumn = theme.autoSelectColumn;
|
|
966
885
|
var top = autoSelectColumn !== undefined && autoSelectColumn ? null : 0;
|
|
967
886
|
var bottom = autoSelectColumn !== undefined && autoSelectColumn ? null : model.rowCount - 1;
|
|
968
887
|
var left = autoSelectRow !== undefined && autoSelectRow ? null : 0;
|
|
@@ -977,28 +896,22 @@ class Grid extends PureComponent {
|
|
|
977
896
|
* @param extendSelection True if the current selection should be extended, false to start a new selection
|
|
978
897
|
*/
|
|
979
898
|
moveCursor(deltaColumn, deltaRow, extendSelection) {
|
|
980
|
-
var
|
|
981
|
-
cursorRow,
|
|
982
|
-
cursorColumn,
|
|
983
|
-
selectionEndColumn,
|
|
984
|
-
selectionEndRow
|
|
985
|
-
} = this.state;
|
|
899
|
+
var _this$state4 = this.state,
|
|
900
|
+
cursorRow = _this$state4.cursorRow,
|
|
901
|
+
cursorColumn = _this$state4.cursorColumn,
|
|
902
|
+
selectionEndColumn = _this$state4.selectionEndColumn,
|
|
903
|
+
selectionEndRow = _this$state4.selectionEndRow;
|
|
986
904
|
var column = extendSelection ? selectionEndColumn : cursorColumn;
|
|
987
905
|
var row = extendSelection ? selectionEndRow : cursorRow;
|
|
988
906
|
if (row === null || column === null) {
|
|
989
|
-
var
|
|
990
|
-
left,
|
|
991
|
-
top
|
|
992
|
-
} = this.state;
|
|
907
|
+
var _this$state5 = this.state,
|
|
908
|
+
left = _this$state5.left,
|
|
909
|
+
top = _this$state5.top;
|
|
993
910
|
this.moveCursorToPosition(left, top, extendSelection);
|
|
994
911
|
} else {
|
|
995
|
-
var
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
var {
|
|
999
|
-
columnCount,
|
|
1000
|
-
rowCount
|
|
1001
|
-
} = model;
|
|
912
|
+
var model = this.props.model;
|
|
913
|
+
var columnCount = model.columnCount,
|
|
914
|
+
rowCount = model.rowCount;
|
|
1002
915
|
var _left = clamp(column + deltaColumn, 0, columnCount - 1);
|
|
1003
916
|
var _top = clamp(row + deltaRow, 0, rowCount - 1);
|
|
1004
917
|
this.moveCursorToPosition(_left, _top, extendSelection);
|
|
@@ -1011,18 +924,13 @@ class Grid extends PureComponent {
|
|
|
1011
924
|
*/
|
|
1012
925
|
moveCursorInDirection() {
|
|
1013
926
|
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GridRange.SELECTION_DIRECTION.DOWN;
|
|
1014
|
-
var
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
var
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
var {
|
|
1022
|
-
cursorRow,
|
|
1023
|
-
cursorColumn,
|
|
1024
|
-
selectedRanges
|
|
1025
|
-
} = this.state;
|
|
927
|
+
var model = this.props.model;
|
|
928
|
+
var columnCount = model.columnCount,
|
|
929
|
+
rowCount = model.rowCount;
|
|
930
|
+
var _this$state6 = this.state,
|
|
931
|
+
cursorRow = _this$state6.cursorRow,
|
|
932
|
+
cursorColumn = _this$state6.cursorColumn,
|
|
933
|
+
selectedRanges = _this$state6.selectedRanges;
|
|
1026
934
|
var ranges = selectedRanges.length > 0 ? selectedRanges : [GridRange.makeCell(cursorColumn, cursorRow)];
|
|
1027
935
|
var nextCursor = null;
|
|
1028
936
|
if (ranges.length === 1 && GridRange.cellCount(ranges) === 1) {
|
|
@@ -1034,10 +942,9 @@ class Grid extends PureComponent {
|
|
|
1034
942
|
nextCursor = GridRange.nextCell(GridRange.boundedRanges(ranges, columnCount, rowCount), cursorColumn, cursorRow, direction);
|
|
1035
943
|
}
|
|
1036
944
|
if (nextCursor != null) {
|
|
1037
|
-
var
|
|
1038
|
-
column,
|
|
1039
|
-
row
|
|
1040
|
-
} = nextCursor;
|
|
945
|
+
var _nextCursor = nextCursor,
|
|
946
|
+
column = _nextCursor.column,
|
|
947
|
+
row = _nextCursor.row;
|
|
1041
948
|
this.setState({
|
|
1042
949
|
cursorColumn: column,
|
|
1043
950
|
cursorRow: row
|
|
@@ -1084,22 +991,18 @@ class Grid extends PureComponent {
|
|
|
1084
991
|
*/
|
|
1085
992
|
moveViewToCell(column, row) {
|
|
1086
993
|
if (!this.metrics) throw new Error('metrics not set');
|
|
1087
|
-
var
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
topVisible,
|
|
1094
|
-
leftVisible
|
|
1095
|
-
} = this.metrics;
|
|
994
|
+
var metricCalculator = this.metricCalculator;
|
|
995
|
+
var _this$metrics7 = this.metrics,
|
|
996
|
+
bottomVisible = _this$metrics7.bottomVisible,
|
|
997
|
+
rightVisible = _this$metrics7.rightVisible,
|
|
998
|
+
topVisible = _this$metrics7.topVisible,
|
|
999
|
+
leftVisible = _this$metrics7.leftVisible;
|
|
1096
1000
|
var metricState = this.getMetricState(this.state);
|
|
1097
|
-
var
|
|
1098
|
-
top,
|
|
1099
|
-
left,
|
|
1100
|
-
topOffset,
|
|
1101
|
-
leftOffset
|
|
1102
|
-
} = this.state;
|
|
1001
|
+
var _this$state7 = this.state,
|
|
1002
|
+
top = _this$state7.top,
|
|
1003
|
+
left = _this$state7.left,
|
|
1004
|
+
topOffset = _this$state7.topOffset,
|
|
1005
|
+
leftOffset = _this$state7.leftOffset;
|
|
1103
1006
|
if (row != null && !GridUtils.isFloatingRow(row, this.metrics)) {
|
|
1104
1007
|
if (row < topVisible) {
|
|
1105
1008
|
top = metricCalculator.getTopForTopVisible(metricState, row);
|
|
@@ -1135,20 +1038,16 @@ class Grid extends PureComponent {
|
|
|
1135
1038
|
setViewState(viewState) {
|
|
1136
1039
|
var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1137
1040
|
if (!this.metrics) throw new Error('metrics not set');
|
|
1138
|
-
var
|
|
1139
|
-
isStickyBottom,
|
|
1140
|
-
isStickyRight
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
lastLeft,
|
|
1149
|
-
hasVerticalBar,
|
|
1150
|
-
hasHorizontalBar
|
|
1151
|
-
} = this.metrics;
|
|
1041
|
+
var _this$props5 = this.props,
|
|
1042
|
+
isStickyBottom = _this$props5.isStickyBottom,
|
|
1043
|
+
isStickyRight = _this$props5.isStickyRight;
|
|
1044
|
+
var top = viewState.top,
|
|
1045
|
+
left = viewState.left;
|
|
1046
|
+
var _this$metrics8 = this.metrics,
|
|
1047
|
+
lastTop = _this$metrics8.lastTop,
|
|
1048
|
+
lastLeft = _this$metrics8.lastLeft,
|
|
1049
|
+
hasVerticalBar = _this$metrics8.hasVerticalBar,
|
|
1050
|
+
hasHorizontalBar = _this$metrics8.hasHorizontalBar;
|
|
1152
1051
|
if (top != null && hasVerticalBar) {
|
|
1153
1052
|
this.setState({
|
|
1154
1053
|
isStuckToBottom: isStickyBottom && top >= lastTop
|
|
@@ -1178,9 +1077,7 @@ class Grid extends PureComponent {
|
|
|
1178
1077
|
var isQuickEdit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1179
1078
|
var selectionRange = arguments.length > 3 ? arguments[3] : undefined;
|
|
1180
1079
|
var value = arguments.length > 4 ? arguments[4] : undefined;
|
|
1181
|
-
var
|
|
1182
|
-
model
|
|
1183
|
-
} = this.props;
|
|
1080
|
+
var model = this.props.model;
|
|
1184
1081
|
if (!isEditableGridModel(model)) throw new Error('model is not editable');
|
|
1185
1082
|
var modelColumn = this.getModelColumn(column);
|
|
1186
1083
|
var modelRow = this.getModelRow(row);
|
|
@@ -1207,9 +1104,7 @@ class Grid extends PureComponent {
|
|
|
1207
1104
|
* @returns True if the value is valid for the provided cell, false otherwise
|
|
1208
1105
|
*/
|
|
1209
1106
|
isValidForCell(column, row, value) {
|
|
1210
|
-
var
|
|
1211
|
-
model
|
|
1212
|
-
} = this.props;
|
|
1107
|
+
var model = this.props.model;
|
|
1213
1108
|
var modelColumn = this.getModelColumn(column);
|
|
1214
1109
|
var modelRow = this.getModelRow(row);
|
|
1215
1110
|
return isEditableGridModel(model) && model.isValidForCell(modelColumn, modelRow, value);
|
|
@@ -1224,14 +1119,11 @@ class Grid extends PureComponent {
|
|
|
1224
1119
|
pasteValue(value) {
|
|
1225
1120
|
var _this = this;
|
|
1226
1121
|
return _asyncToGenerator(function* () {
|
|
1227
|
-
var
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
movedRows,
|
|
1233
|
-
selectedRanges
|
|
1234
|
-
} = _this.state;
|
|
1122
|
+
var model = _this.props.model;
|
|
1123
|
+
var _this$state8 = _this.state,
|
|
1124
|
+
movedColumns = _this$state8.movedColumns,
|
|
1125
|
+
movedRows = _this$state8.movedRows,
|
|
1126
|
+
selectedRanges = _this$state8.selectedRanges;
|
|
1235
1127
|
try {
|
|
1236
1128
|
assertIsEditableGridModel(model);
|
|
1237
1129
|
if (!model.isEditable || !selectedRanges.every(range => model.isEditableRange(range))) {
|
|
@@ -1258,10 +1150,8 @@ class Grid extends PureComponent {
|
|
|
1258
1150
|
// Otherwise it's a table of data
|
|
1259
1151
|
var tableHeight = value.length;
|
|
1260
1152
|
var tableWidth = value[0].length;
|
|
1261
|
-
var
|
|
1262
|
-
|
|
1263
|
-
rowCount
|
|
1264
|
-
} = model;
|
|
1153
|
+
var columnCount = model.columnCount,
|
|
1154
|
+
rowCount = model.rowCount;
|
|
1265
1155
|
var ranges = selectedRanges;
|
|
1266
1156
|
// If each cell is a single selection, we need to update the selection to map to the newly pasted data
|
|
1267
1157
|
// Check for
|
|
@@ -1295,9 +1185,7 @@ class Grid extends PureComponent {
|
|
|
1295
1185
|
});
|
|
1296
1186
|
yield model.setValues(edits);
|
|
1297
1187
|
} catch (e) {
|
|
1298
|
-
var
|
|
1299
|
-
onError
|
|
1300
|
-
} = _this.props;
|
|
1188
|
+
var onError = _this.props.onError;
|
|
1301
1189
|
onError(e instanceof Error ? e : new Error("".concat(e)));
|
|
1302
1190
|
}
|
|
1303
1191
|
})();
|
|
@@ -1311,10 +1199,9 @@ class Grid extends PureComponent {
|
|
|
1311
1199
|
* @returns true If the value was valid and attempted to be set, false is it was not valid
|
|
1312
1200
|
*/
|
|
1313
1201
|
setValueForCell(column, row, value) {
|
|
1314
|
-
var
|
|
1315
|
-
model,
|
|
1316
|
-
onError
|
|
1317
|
-
} = this.props;
|
|
1202
|
+
var _this$props6 = this.props,
|
|
1203
|
+
model = _this$props6.model,
|
|
1204
|
+
onError = _this$props6.onError;
|
|
1318
1205
|
assertIsEditableGridModel(model);
|
|
1319
1206
|
var modelColumn = this.getModelColumn(column);
|
|
1320
1207
|
var modelRow = this.getModelRow(row);
|
|
@@ -1333,14 +1220,12 @@ class Grid extends PureComponent {
|
|
|
1333
1220
|
* @param value The value to set on all the ranges
|
|
1334
1221
|
*/
|
|
1335
1222
|
setValueForRanges(ranges, value) {
|
|
1336
|
-
var
|
|
1337
|
-
model,
|
|
1338
|
-
onError
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
movedRows
|
|
1343
|
-
} = this.state;
|
|
1223
|
+
var _this$props7 = this.props,
|
|
1224
|
+
model = _this$props7.model,
|
|
1225
|
+
onError = _this$props7.onError;
|
|
1226
|
+
var _this$state9 = this.state,
|
|
1227
|
+
movedColumns = _this$state9.movedColumns,
|
|
1228
|
+
movedRows = _this$state9.movedRows;
|
|
1344
1229
|
var modelRanges = GridUtils.getModelRanges(ranges, movedColumns, movedRows);
|
|
1345
1230
|
if (isEditableGridModel(model)) {
|
|
1346
1231
|
model.setValueForRanges(modelRanges, value).catch(err => {
|
|
@@ -1356,9 +1241,7 @@ class Grid extends PureComponent {
|
|
|
1356
1241
|
* @returns True if the cell is in the current selection, false otherwise
|
|
1357
1242
|
*/
|
|
1358
1243
|
isSelected(row, column) {
|
|
1359
|
-
var
|
|
1360
|
-
selectedRanges
|
|
1361
|
-
} = this.state;
|
|
1244
|
+
var selectedRanges = this.state.selectedRanges;
|
|
1362
1245
|
for (var i = 0; i < selectedRanges.length; i += 1) {
|
|
1363
1246
|
var _selectedRange$endRow, _selectedRange$endCol;
|
|
1364
1247
|
var selectedRange = selectedRanges[i];
|
|
@@ -1417,11 +1300,9 @@ class Grid extends PureComponent {
|
|
|
1417
1300
|
drawCanvas() {
|
|
1418
1301
|
if (!this.canvas) throw new Error('canvas is not set');
|
|
1419
1302
|
if (!this.canvasContext) throw new Error('context not set');
|
|
1420
|
-
var
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
renderState
|
|
1424
|
-
} = this;
|
|
1303
|
+
var renderer = this.renderer,
|
|
1304
|
+
context = this.canvasContext,
|
|
1305
|
+
renderState = this.renderState;
|
|
1425
1306
|
context.save();
|
|
1426
1307
|
renderer.drawCanvas(renderState);
|
|
1427
1308
|
context.restore();
|
|
@@ -1494,9 +1375,7 @@ class Grid extends PureComponent {
|
|
|
1494
1375
|
if (result !== false) {
|
|
1495
1376
|
var _options$stopPropagat, _options$preventDefau;
|
|
1496
1377
|
if (keyHandler.cursor != null) {
|
|
1497
|
-
|
|
1498
|
-
cursor
|
|
1499
|
-
} = keyHandler);
|
|
1378
|
+
cursor = keyHandler.cursor;
|
|
1500
1379
|
}
|
|
1501
1380
|
var options = result;
|
|
1502
1381
|
if ((_options$stopPropagat = options === null || options === void 0 ? void 0 : options.stopPropagation) !== null && _options$stopPropagat !== void 0 ? _options$stopPropagat : true) event.stopPropagation();
|
|
@@ -1534,9 +1413,7 @@ class Grid extends PureComponent {
|
|
|
1534
1413
|
if (result !== false) {
|
|
1535
1414
|
var _options$stopPropagat2, _options$preventDefau2;
|
|
1536
1415
|
if (mouseHandler.cursor != null) {
|
|
1537
|
-
|
|
1538
|
-
cursor
|
|
1539
|
-
} = mouseHandler);
|
|
1416
|
+
cursor = mouseHandler.cursor;
|
|
1540
1417
|
if (addCursorToDocument) {
|
|
1541
1418
|
this.addDocumentCursor(cursor);
|
|
1542
1419
|
}
|
|
@@ -1553,10 +1430,8 @@ class Grid extends PureComponent {
|
|
|
1553
1430
|
cursor
|
|
1554
1431
|
});
|
|
1555
1432
|
if (updateCoordinates) {
|
|
1556
|
-
var
|
|
1557
|
-
|
|
1558
|
-
y
|
|
1559
|
-
} = gridPoint;
|
|
1433
|
+
var x = gridPoint.x,
|
|
1434
|
+
y = gridPoint.y;
|
|
1560
1435
|
this.setState({
|
|
1561
1436
|
mouseX: x,
|
|
1562
1437
|
mouseY: y
|
|
@@ -1594,9 +1469,7 @@ class Grid extends PureComponent {
|
|
|
1594
1469
|
}
|
|
1595
1470
|
handleMouseUp(event) {
|
|
1596
1471
|
// Ignore non-left click while dragging to allow drag to continue
|
|
1597
|
-
var
|
|
1598
|
-
isDragging
|
|
1599
|
-
} = this.state;
|
|
1472
|
+
var isDragging = this.state.isDragging;
|
|
1600
1473
|
if (isDragging && event.button !== 0) {
|
|
1601
1474
|
return;
|
|
1602
1475
|
}
|
|
@@ -1633,9 +1506,8 @@ class Grid extends PureComponent {
|
|
|
1633
1506
|
}
|
|
1634
1507
|
forceUpdate(callback) {
|
|
1635
1508
|
this.setState(_ref5 => {
|
|
1636
|
-
var
|
|
1637
|
-
updateRevision = 0
|
|
1638
|
-
} = _ref5;
|
|
1509
|
+
var _ref5$updateRevision = _ref5.updateRevision,
|
|
1510
|
+
updateRevision = _ref5$updateRevision === void 0 ? 0 : _ref5$updateRevision;
|
|
1639
1511
|
return {
|
|
1640
1512
|
updateRevision: (updateRevision + 1) % Number.MAX_SAFE_INTEGER
|
|
1641
1513
|
};
|
|
@@ -1647,35 +1519,28 @@ class Grid extends PureComponent {
|
|
|
1647
1519
|
if (event.defaultPrevented) {
|
|
1648
1520
|
return;
|
|
1649
1521
|
}
|
|
1650
|
-
var
|
|
1651
|
-
|
|
1652
|
-
metrics
|
|
1653
|
-
} = this;
|
|
1522
|
+
var metricCalculator = this.metricCalculator,
|
|
1523
|
+
metrics = this.metrics;
|
|
1654
1524
|
var metricState = this.getMetricState();
|
|
1655
1525
|
if (!metrics) throw new Error('metrics not set');
|
|
1656
|
-
var
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
left,
|
|
1671
|
-
topOffset,
|
|
1672
|
-
leftOffset
|
|
1673
|
-
} = metrics;
|
|
1526
|
+
var lastTop = metrics.lastTop,
|
|
1527
|
+
lastLeft = metrics.lastLeft,
|
|
1528
|
+
columnCount = metrics.columnCount,
|
|
1529
|
+
rowCount = metrics.rowCount,
|
|
1530
|
+
scrollableContentWidth = metrics.scrollableContentWidth,
|
|
1531
|
+
scrollableViewportWidth = metrics.scrollableViewportWidth,
|
|
1532
|
+
scrollableContentHeight = metrics.scrollableContentHeight,
|
|
1533
|
+
scrollableViewportHeight = metrics.scrollableViewportHeight,
|
|
1534
|
+
hasHorizontalBar = metrics.hasHorizontalBar,
|
|
1535
|
+
hasVerticalBar = metrics.hasVerticalBar;
|
|
1536
|
+
var top = metrics.top,
|
|
1537
|
+
left = metrics.left,
|
|
1538
|
+
topOffset = metrics.topOffset,
|
|
1539
|
+
leftOffset = metrics.leftOffset;
|
|
1674
1540
|
var theme = this.getTheme();
|
|
1675
|
-
var
|
|
1676
|
-
deltaX,
|
|
1677
|
-
deltaY
|
|
1678
|
-
} = GridUtils.getScrollDelta(event, metrics.barWidth, metrics.barHeight, metrics.rowHeight, metrics.rowHeight);
|
|
1541
|
+
var _GridUtils$getScrollD = GridUtils.getScrollDelta(event, metrics.barWidth, metrics.barHeight, metrics.rowHeight, metrics.rowHeight),
|
|
1542
|
+
deltaX = _GridUtils$getScrollD.deltaX,
|
|
1543
|
+
deltaY = _GridUtils$getScrollD.deltaY;
|
|
1679
1544
|
|
|
1680
1545
|
// iterate through each column to determine column width and figure out how far to scroll
|
|
1681
1546
|
// get column width of next column to scroll to, and subract it from the remaining distance to travel
|
|
@@ -1820,9 +1685,7 @@ class Grid extends PureComponent {
|
|
|
1820
1685
|
*/
|
|
1821
1686
|
handleEditCellChange(value) {
|
|
1822
1687
|
this.setState(_ref6 => {
|
|
1823
|
-
var
|
|
1824
|
-
editingCell
|
|
1825
|
-
} = _ref6;
|
|
1688
|
+
var editingCell = _ref6.editingCell;
|
|
1826
1689
|
try {
|
|
1827
1690
|
assertIsDefined(editingCell);
|
|
1828
1691
|
return {
|
|
@@ -1832,9 +1695,7 @@ class Grid extends PureComponent {
|
|
|
1832
1695
|
};
|
|
1833
1696
|
} catch (e) {
|
|
1834
1697
|
// This case should _never_ happen, since the editingCell shouldn't be null if this method is called
|
|
1835
|
-
var
|
|
1836
|
-
onError
|
|
1837
|
-
} = this.props;
|
|
1698
|
+
var onError = this.props.onError;
|
|
1838
1699
|
onError(e instanceof Error ? e : new Error("".concat(e)));
|
|
1839
1700
|
return null;
|
|
1840
1701
|
}
|
|
@@ -1847,19 +1708,17 @@ class Grid extends PureComponent {
|
|
|
1847
1708
|
* @param options Options for committing
|
|
1848
1709
|
*/
|
|
1849
1710
|
handleEditCellCommit(value) {
|
|
1850
|
-
var {
|
|
1851
|
-
direction =
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1711
|
+
var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
1712
|
+
_ref7$direction = _ref7.direction,
|
|
1713
|
+
direction = _ref7$direction === void 0 ? SELECTION_DIRECTION.DOWN : _ref7$direction,
|
|
1714
|
+
_ref7$fillRange = _ref7.fillRange,
|
|
1715
|
+
fillRange = _ref7$fillRange === void 0 ? false : _ref7$fillRange;
|
|
1716
|
+
var _this$state0 = this.state,
|
|
1717
|
+
editingCell = _this$state0.editingCell,
|
|
1718
|
+
selectedRanges = _this$state0.selectedRanges;
|
|
1858
1719
|
if (!editingCell) throw new Error('editingCell not set');
|
|
1859
|
-
var
|
|
1860
|
-
|
|
1861
|
-
row
|
|
1862
|
-
} = editingCell;
|
|
1720
|
+
var column = editingCell.column,
|
|
1721
|
+
row = editingCell.row;
|
|
1863
1722
|
if (!this.isValidForCell(column, row, value)) {
|
|
1864
1723
|
// Don't allow an invalid value to be commited, the editing cell should show an error
|
|
1865
1724
|
if (direction === null) {
|
|
@@ -1884,39 +1743,26 @@ class Grid extends PureComponent {
|
|
|
1884
1743
|
this.focus();
|
|
1885
1744
|
}
|
|
1886
1745
|
renderInputField() {
|
|
1887
|
-
var
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
var {
|
|
1891
|
-
editingCell
|
|
1892
|
-
} = this.state;
|
|
1893
|
-
var {
|
|
1894
|
-
metrics
|
|
1895
|
-
} = this;
|
|
1746
|
+
var model = this.props.model;
|
|
1747
|
+
var editingCell = this.state.editingCell;
|
|
1748
|
+
var metrics = this.metrics;
|
|
1896
1749
|
if (editingCell == null || metrics == null || !isEditableGridModel(model)) {
|
|
1897
1750
|
return null;
|
|
1898
1751
|
}
|
|
1899
|
-
var
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
var
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
allRowYs,
|
|
1914
|
-
allColumnWidths,
|
|
1915
|
-
allRowHeights
|
|
1916
|
-
} = metrics;
|
|
1917
|
-
var {
|
|
1918
|
-
activeCellSelectionBorderWidth
|
|
1919
|
-
} = this.getTheme();
|
|
1752
|
+
var selectionRange = editingCell.selectionRange,
|
|
1753
|
+
value = editingCell.value,
|
|
1754
|
+
isQuickEdit = editingCell.isQuickEdit;
|
|
1755
|
+
var column = editingCell.column,
|
|
1756
|
+
row = editingCell.row;
|
|
1757
|
+
var scrollX = metrics.scrollX,
|
|
1758
|
+
gridX = metrics.gridX,
|
|
1759
|
+
gridY = metrics.gridY,
|
|
1760
|
+
allColumnXs = metrics.allColumnXs,
|
|
1761
|
+
allRowYs = metrics.allRowYs,
|
|
1762
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
1763
|
+
allRowHeights = metrics.allRowHeights;
|
|
1764
|
+
var _this$getTheme = this.getTheme(),
|
|
1765
|
+
activeCellSelectionBorderWidth = _this$getTheme.activeCellSelectionBorderWidth;
|
|
1920
1766
|
var x = allColumnXs.get(column);
|
|
1921
1767
|
var y = allRowYs.get(row);
|
|
1922
1768
|
var w = allColumnWidths.get(column);
|
|
@@ -1971,29 +1817,25 @@ class Grid extends PureComponent {
|
|
|
1971
1817
|
updateRenderState() {
|
|
1972
1818
|
if (!this.canvas) throw new Error('canvas is not set');
|
|
1973
1819
|
if (!this.canvasContext) throw new Error('context not set');
|
|
1974
|
-
var
|
|
1975
|
-
cursorColumn,
|
|
1976
|
-
cursorRow,
|
|
1977
|
-
draggingColumn,
|
|
1978
|
-
draggingColumnSeparator,
|
|
1979
|
-
draggingRow,
|
|
1980
|
-
draggingRowOffset,
|
|
1981
|
-
draggingRowSeparator,
|
|
1982
|
-
editingCell,
|
|
1983
|
-
isDraggingHorizontalScrollBar,
|
|
1984
|
-
isDraggingVerticalScrollBar,
|
|
1985
|
-
isDragging,
|
|
1986
|
-
mouseX,
|
|
1987
|
-
mouseY,
|
|
1988
|
-
selectedRanges
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
} = this.props;
|
|
1994
|
-
var {
|
|
1995
|
-
metrics
|
|
1996
|
-
} = this;
|
|
1820
|
+
var _this$state1 = this.state,
|
|
1821
|
+
cursorColumn = _this$state1.cursorColumn,
|
|
1822
|
+
cursorRow = _this$state1.cursorRow,
|
|
1823
|
+
draggingColumn = _this$state1.draggingColumn,
|
|
1824
|
+
draggingColumnSeparator = _this$state1.draggingColumnSeparator,
|
|
1825
|
+
draggingRow = _this$state1.draggingRow,
|
|
1826
|
+
draggingRowOffset = _this$state1.draggingRowOffset,
|
|
1827
|
+
draggingRowSeparator = _this$state1.draggingRowSeparator,
|
|
1828
|
+
editingCell = _this$state1.editingCell,
|
|
1829
|
+
isDraggingHorizontalScrollBar = _this$state1.isDraggingHorizontalScrollBar,
|
|
1830
|
+
isDraggingVerticalScrollBar = _this$state1.isDraggingVerticalScrollBar,
|
|
1831
|
+
isDragging = _this$state1.isDragging,
|
|
1832
|
+
mouseX = _this$state1.mouseX,
|
|
1833
|
+
mouseY = _this$state1.mouseY,
|
|
1834
|
+
selectedRanges = _this$state1.selectedRanges;
|
|
1835
|
+
var _this$props8 = this.props,
|
|
1836
|
+
model = _this$props8.model,
|
|
1837
|
+
stateOverride = _this$props8.stateOverride;
|
|
1838
|
+
var metrics = this.metrics;
|
|
1997
1839
|
var context = this.canvasContext;
|
|
1998
1840
|
var theme = this.getTheme();
|
|
1999
1841
|
var width = this.canvas.clientWidth;
|
|
@@ -2024,12 +1866,8 @@ class Grid extends PureComponent {
|
|
|
2024
1866
|
return this.renderState;
|
|
2025
1867
|
}
|
|
2026
1868
|
render() {
|
|
2027
|
-
var
|
|
2028
|
-
|
|
2029
|
-
} = this.props;
|
|
2030
|
-
var {
|
|
2031
|
-
cursor
|
|
2032
|
-
} = this.state;
|
|
1869
|
+
var children = this.props.children;
|
|
1870
|
+
var cursor = this.state.cursor;
|
|
2033
1871
|
return /*#__PURE__*/_jsxs("div", {
|
|
2034
1872
|
className: "grid-wrapper",
|
|
2035
1873
|
ref: this.canvasWrapper,
|