@deephaven/grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.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.js +281 -455
- 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.d.ts.map +1 -1
- package/dist/GridRenderer.js +432 -604
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +33 -16
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +183 -213
- 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,34 +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
|
-
renderer,
|
|
256
|
-
metricCalculator
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
movedRows
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
var {
|
|
269
|
-
draggingColumn,
|
|
270
|
-
draggingRow,
|
|
271
|
-
movedColumns: currentStateMovedColumns,
|
|
272
|
-
movedRows: currentStateMovedRows
|
|
273
|
-
} = 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;
|
|
274
262
|
var stateUpdates = {};
|
|
275
263
|
if (prevPropMovedColumns !== movedColumns) {
|
|
276
264
|
stateUpdates.movedColumns = movedColumns;
|
|
@@ -310,10 +298,9 @@ class Grid extends PureComponent {
|
|
|
310
298
|
this.updateMetrics(updatedState);
|
|
311
299
|
this.requestUpdateCanvas();
|
|
312
300
|
if (this.needToUpdateScroll()) {
|
|
313
|
-
var
|
|
314
|
-
top,
|
|
315
|
-
left
|
|
316
|
-
} = this.getStickyScrollPosition(isStickyBottom, isStickyRight);
|
|
301
|
+
var _this$getStickyScroll2 = this.getStickyScrollPosition(isStickyBottom, isStickyRight),
|
|
302
|
+
top = _this$getStickyScroll2.top,
|
|
303
|
+
left = _this$getStickyScroll2.left;
|
|
317
304
|
updatedState.top = top;
|
|
318
305
|
updatedState.left = left;
|
|
319
306
|
}
|
|
@@ -335,9 +322,7 @@ class Grid extends PureComponent {
|
|
|
335
322
|
this.removeDocumentCursor();
|
|
336
323
|
}
|
|
337
324
|
getTheme() {
|
|
338
|
-
var
|
|
339
|
-
theme
|
|
340
|
-
} = this.props;
|
|
325
|
+
var theme = this.props.theme;
|
|
341
326
|
return Grid.getTheme(this.context, theme);
|
|
342
327
|
}
|
|
343
328
|
getGridPointFromEvent(event) {
|
|
@@ -354,27 +339,24 @@ class Grid extends PureComponent {
|
|
|
354
339
|
getMetricState() {
|
|
355
340
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state;
|
|
356
341
|
var theme = this.getTheme();
|
|
357
|
-
var
|
|
358
|
-
model,
|
|
359
|
-
stateOverride
|
|
360
|
-
} = this.props;
|
|
342
|
+
var _this$props3 = this.props,
|
|
343
|
+
model = _this$props3.model,
|
|
344
|
+
stateOverride = _this$props3.stateOverride;
|
|
361
345
|
if (!this.canvasContext || !this.canvas) {
|
|
362
346
|
throw new Error('Canvas and context must be defined to get metrics');
|
|
363
347
|
}
|
|
364
348
|
var context = this.canvasContext;
|
|
365
349
|
var width = this.canvas.clientWidth;
|
|
366
350
|
var height = this.canvas.clientHeight;
|
|
367
|
-
var
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
draggingColumn
|
|
377
|
-
} = 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;
|
|
378
360
|
return _objectSpread({
|
|
379
361
|
left,
|
|
380
362
|
top,
|
|
@@ -393,15 +375,11 @@ class Grid extends PureComponent {
|
|
|
393
375
|
}, stateOverride);
|
|
394
376
|
}
|
|
395
377
|
getKeyHandlers() {
|
|
396
|
-
var
|
|
397
|
-
keyHandlers
|
|
398
|
-
} = this.props;
|
|
378
|
+
var keyHandlers = this.props.keyHandlers;
|
|
399
379
|
return this.getCachedKeyHandlers(keyHandlers);
|
|
400
380
|
}
|
|
401
381
|
getMouseHandlers() {
|
|
402
|
-
var
|
|
403
|
-
mouseHandlers
|
|
404
|
-
} = this.props;
|
|
382
|
+
var mouseHandlers = this.props.mouseHandlers;
|
|
405
383
|
return this.getCachedMouseHandlers(mouseHandlers);
|
|
406
384
|
}
|
|
407
385
|
|
|
@@ -441,9 +419,7 @@ class Grid extends PureComponent {
|
|
|
441
419
|
toggleRowExpanded(row) {
|
|
442
420
|
var expandDescendants = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
443
421
|
var modelRow = this.getModelRow(row);
|
|
444
|
-
var
|
|
445
|
-
model
|
|
446
|
-
} = this.props;
|
|
422
|
+
var model = this.props.model;
|
|
447
423
|
// We only want to set expansion if the row is expandable
|
|
448
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
|
|
449
425
|
if (isExpandableGridModel(model) && model.isRowExpandable(modelRow)) {
|
|
@@ -463,16 +439,15 @@ class Grid extends PureComponent {
|
|
|
463
439
|
left: this.state.left,
|
|
464
440
|
top: this.state.top
|
|
465
441
|
};
|
|
466
|
-
var
|
|
467
|
-
bottomVisible,
|
|
468
|
-
rowCount,
|
|
469
|
-
top,
|
|
470
|
-
lastTop,
|
|
471
|
-
rightVisible,
|
|
472
|
-
columnCount,
|
|
473
|
-
left,
|
|
474
|
-
lastLeft
|
|
475
|
-
} = 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;
|
|
476
451
|
var newTop = top;
|
|
477
452
|
var newLeft = left;
|
|
478
453
|
if (isStickyBottom && (bottomVisible < rowCount - 1 && bottomVisible > 0 || top > lastTop)) {
|
|
@@ -493,18 +468,13 @@ class Grid extends PureComponent {
|
|
|
493
468
|
* @param gridRanges The new selected ranges to set
|
|
494
469
|
*/
|
|
495
470
|
setSelectedRanges(gridRanges) {
|
|
496
|
-
var
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
var
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
var {
|
|
504
|
-
cursorRow,
|
|
505
|
-
cursorColumn,
|
|
506
|
-
selectedRanges
|
|
507
|
-
} = 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;
|
|
508
478
|
this.setState({
|
|
509
479
|
selectedRanges: gridRanges,
|
|
510
480
|
lastSelectedRanges: selectedRanges
|
|
@@ -514,10 +484,9 @@ class Grid extends PureComponent {
|
|
|
514
484
|
var newCursorRow = cursorRow;
|
|
515
485
|
var newCursorColumn = cursorColumn;
|
|
516
486
|
if (!range.containsCell(cursorColumn, cursorRow)) {
|
|
517
|
-
(
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
} = range.startCell());
|
|
487
|
+
var _range$startCell = range.startCell();
|
|
488
|
+
newCursorRow = _range$startCell.row;
|
|
489
|
+
newCursorColumn = _range$startCell.column;
|
|
521
490
|
}
|
|
522
491
|
this.setState({
|
|
523
492
|
selectionStartColumn: range.startColumn,
|
|
@@ -530,12 +499,8 @@ class Grid extends PureComponent {
|
|
|
530
499
|
}
|
|
531
500
|
}
|
|
532
501
|
initContext() {
|
|
533
|
-
var
|
|
534
|
-
|
|
535
|
-
} = this;
|
|
536
|
-
var {
|
|
537
|
-
canvasOptions
|
|
538
|
-
} = this.props;
|
|
502
|
+
var canvas = this.canvas;
|
|
503
|
+
var canvasOptions = this.props.canvasOptions;
|
|
539
504
|
if (!canvas) throw new Error('Canvas not set');
|
|
540
505
|
this.canvasContext = canvas.getContext('2d', canvasOptions);
|
|
541
506
|
}
|
|
@@ -563,27 +528,21 @@ class Grid extends PureComponent {
|
|
|
563
528
|
this.updateCanvasScale();
|
|
564
529
|
this.updateMetrics();
|
|
565
530
|
this.updateRenderState();
|
|
566
|
-
var
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
renderState
|
|
570
|
-
} = this;
|
|
531
|
+
var canvasContext = this.canvasContext,
|
|
532
|
+
metrics = this.metrics,
|
|
533
|
+
renderState = this.renderState;
|
|
571
534
|
assertNotNull(canvasContext);
|
|
572
535
|
assertNotNull(metrics);
|
|
573
536
|
assertNotNull(renderState);
|
|
574
537
|
this.renderer.configureContext(canvasContext, renderState);
|
|
575
|
-
var
|
|
576
|
-
onViewChanged
|
|
577
|
-
} = this.props;
|
|
538
|
+
var onViewChanged = this.props.onViewChanged;
|
|
578
539
|
onViewChanged(metrics);
|
|
579
540
|
this.drawCanvas();
|
|
580
541
|
}
|
|
581
542
|
updateCanvasScale() {
|
|
582
|
-
var
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
canvasWrapper
|
|
586
|
-
} = this;
|
|
543
|
+
var canvas = this.canvas,
|
|
544
|
+
canvasContext = this.canvasContext,
|
|
545
|
+
canvasWrapper = this.canvasWrapper;
|
|
587
546
|
if (!canvas) throw new Error('canvas not set');
|
|
588
547
|
if (!canvasContext) throw new Error('canvasContext not set');
|
|
589
548
|
if (!canvasWrapper.current) throw new Error('canvasWrapper not set');
|
|
@@ -609,14 +568,12 @@ class Grid extends PureComponent {
|
|
|
609
568
|
}
|
|
610
569
|
updateScrollBounds() {
|
|
611
570
|
if (!this.metrics) throw new Error('metrics not set');
|
|
612
|
-
var
|
|
613
|
-
left,
|
|
614
|
-
top
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
lastTop
|
|
619
|
-
} = 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;
|
|
620
577
|
if (left > lastLeft) {
|
|
621
578
|
this.setState({
|
|
622
579
|
left: lastLeft,
|
|
@@ -638,30 +595,24 @@ class Grid extends PureComponent {
|
|
|
638
595
|
if (!this.metrics || !this.prevMetrics) {
|
|
639
596
|
return false;
|
|
640
597
|
}
|
|
641
|
-
var
|
|
642
|
-
rowCount,
|
|
643
|
-
columnCount,
|
|
644
|
-
height,
|
|
645
|
-
width
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
width: prevWidth
|
|
652
|
-
} = 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;
|
|
653
608
|
if (prevRowCount !== rowCount || height !== prevHeight) {
|
|
654
|
-
var
|
|
655
|
-
isStuckToBottom
|
|
656
|
-
} = this.state;
|
|
609
|
+
var isStuckToBottom = this.state.isStuckToBottom;
|
|
657
610
|
if (isStuckToBottom) {
|
|
658
611
|
return true;
|
|
659
612
|
}
|
|
660
613
|
}
|
|
661
614
|
if (prevColumnCount !== columnCount || width !== prevWidth) {
|
|
662
|
-
var
|
|
663
|
-
isStuckToRight
|
|
664
|
-
} = this.state;
|
|
615
|
+
var isStuckToRight = this.state.isStuckToRight;
|
|
665
616
|
if (isStuckToRight) {
|
|
666
617
|
return true;
|
|
667
618
|
}
|
|
@@ -671,9 +622,7 @@ class Grid extends PureComponent {
|
|
|
671
622
|
updateMetrics() {
|
|
672
623
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state;
|
|
673
624
|
this.prevMetrics = this.metrics;
|
|
674
|
-
var
|
|
675
|
-
metricCalculator
|
|
676
|
-
} = this;
|
|
625
|
+
var metricCalculator = this.metricCalculator;
|
|
677
626
|
var metricState = this.getMetricState(state);
|
|
678
627
|
this.metrics = metricCalculator.getMetrics(metricState);
|
|
679
628
|
this.updateScrollBounds();
|
|
@@ -685,16 +634,10 @@ class Grid extends PureComponent {
|
|
|
685
634
|
* @param prevState The previous grid state
|
|
686
635
|
*/
|
|
687
636
|
checkSelectionChange(prevState) {
|
|
688
|
-
var
|
|
689
|
-
|
|
690
|
-
} = prevState;
|
|
691
|
-
var {
|
|
692
|
-
selectedRanges
|
|
693
|
-
} = this.state;
|
|
637
|
+
var oldSelectedRanges = prevState.selectedRanges;
|
|
638
|
+
var selectedRanges = this.state.selectedRanges;
|
|
694
639
|
if (selectedRanges !== oldSelectedRanges) {
|
|
695
|
-
var
|
|
696
|
-
onSelectionChanged
|
|
697
|
-
} = this.props;
|
|
640
|
+
var onSelectionChanged = this.props.onSelectionChanged;
|
|
698
641
|
onSelectionChanged(selectedRanges);
|
|
699
642
|
}
|
|
700
643
|
}
|
|
@@ -704,16 +647,10 @@ class Grid extends PureComponent {
|
|
|
704
647
|
* @returns True if the selection is valid, false if the selection was invalid and has been reset
|
|
705
648
|
*/
|
|
706
649
|
validateSelection() {
|
|
707
|
-
var
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
selectedRanges
|
|
712
|
-
} = this.state;
|
|
713
|
-
var {
|
|
714
|
-
columnCount,
|
|
715
|
-
rowCount
|
|
716
|
-
} = model;
|
|
650
|
+
var model = this.props.model;
|
|
651
|
+
var selectedRanges = this.state.selectedRanges;
|
|
652
|
+
var columnCount = model.columnCount,
|
|
653
|
+
rowCount = model.rowCount;
|
|
717
654
|
for (var i = 0; i < selectedRanges.length; i += 1) {
|
|
718
655
|
var range = selectedRanges[i];
|
|
719
656
|
if (range.endColumn != null && range.endColumn >= columnCount || range.endRow != null && range.endRow >= rowCount) {
|
|
@@ -732,9 +669,7 @@ class Grid extends PureComponent {
|
|
|
732
669
|
* Clears all selected ranges
|
|
733
670
|
*/
|
|
734
671
|
clearSelectedRanges() {
|
|
735
|
-
var
|
|
736
|
-
selectedRanges
|
|
737
|
-
} = this.state;
|
|
672
|
+
var selectedRanges = this.state.selectedRanges;
|
|
738
673
|
this.setState({
|
|
739
674
|
selectedRanges: EMPTY_ARRAY,
|
|
740
675
|
lastSelectedRanges: selectedRanges
|
|
@@ -743,9 +678,7 @@ class Grid extends PureComponent {
|
|
|
743
678
|
|
|
744
679
|
/** Clears all but the last selected range */
|
|
745
680
|
trimSelectedRanges() {
|
|
746
|
-
var
|
|
747
|
-
selectedRanges
|
|
748
|
-
} = this.state;
|
|
681
|
+
var selectedRanges = this.state.selectedRanges;
|
|
749
682
|
if (selectedRanges.length > 0) {
|
|
750
683
|
this.setState({
|
|
751
684
|
selectedRanges: selectedRanges.slice(selectedRanges.length - 1)
|
|
@@ -755,9 +688,7 @@ class Grid extends PureComponent {
|
|
|
755
688
|
|
|
756
689
|
/** Gets the selected ranges */
|
|
757
690
|
getSelectedRanges() {
|
|
758
|
-
var
|
|
759
|
-
selectedRanges
|
|
760
|
-
} = this.state;
|
|
691
|
+
var selectedRanges = this.state.selectedRanges;
|
|
761
692
|
return selectedRanges;
|
|
762
693
|
}
|
|
763
694
|
|
|
@@ -788,18 +719,12 @@ class Grid extends PureComponent {
|
|
|
788
719
|
var extendSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
789
720
|
var maximizePreviousRange = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
790
721
|
this.setState(state => {
|
|
791
|
-
var
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
theme
|
|
798
|
-
} = this.props;
|
|
799
|
-
var {
|
|
800
|
-
autoSelectRow,
|
|
801
|
-
autoSelectColumn
|
|
802
|
-
} = 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;
|
|
803
728
|
if (extendSelection && selectedRanges.length > 0) {
|
|
804
729
|
var lastSelectedRange = selectedRanges[selectedRanges.length - 1];
|
|
805
730
|
var left = null;
|
|
@@ -858,18 +783,12 @@ class Grid extends PureComponent {
|
|
|
858
783
|
*/
|
|
859
784
|
commitSelection() {
|
|
860
785
|
this.setState(state => {
|
|
861
|
-
var
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
var {
|
|
868
|
-
selectedRanges,
|
|
869
|
-
lastSelectedRanges,
|
|
870
|
-
cursorRow,
|
|
871
|
-
cursorColumn
|
|
872
|
-
} = 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;
|
|
873
792
|
if (selectedRanges.length === 1 && (autoSelectRow !== undefined && autoSelectRow ? GridRange.rowCount(selectedRanges) === 1 : GridRange.cellCount(selectedRanges) === 1) && GridRange.rangeArraysEqual(selectedRanges, lastSelectedRanges)) {
|
|
874
793
|
// If it's the exact same single selection, then deselect.
|
|
875
794
|
// For if we click on one cell multiple times.
|
|
@@ -902,19 +821,13 @@ class Grid extends PureComponent {
|
|
|
902
821
|
var newCursorColumn = cursorColumn;
|
|
903
822
|
var newCursorRow = cursorRow;
|
|
904
823
|
if (!GridRange.containsCell(newSelectedRanges, cursorColumn, cursorRow)) {
|
|
905
|
-
var
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
var {
|
|
909
|
-
columnCount,
|
|
910
|
-
rowCount
|
|
911
|
-
} = model;
|
|
824
|
+
var model = this.props.model;
|
|
825
|
+
var columnCount = model.columnCount,
|
|
826
|
+
rowCount = model.rowCount;
|
|
912
827
|
var nextCursor = GridRange.nextCell(GridRange.boundedRanges(selectedRanges, columnCount, rowCount));
|
|
913
828
|
if (nextCursor != null) {
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
row: newCursorRow
|
|
917
|
-
} = nextCursor);
|
|
829
|
+
newCursorColumn = nextCursor.column;
|
|
830
|
+
newCursorRow = nextCursor.row;
|
|
918
831
|
} else {
|
|
919
832
|
newCursorColumn = null;
|
|
920
833
|
newCursorRow = null;
|
|
@@ -941,13 +854,12 @@ class Grid extends PureComponent {
|
|
|
941
854
|
if (!this.metrics || !this.prevMetrics) {
|
|
942
855
|
return;
|
|
943
856
|
}
|
|
944
|
-
var
|
|
945
|
-
gridY,
|
|
946
|
-
height,
|
|
947
|
-
lastTop,
|
|
948
|
-
userRowHeights,
|
|
949
|
-
rowHeight
|
|
950
|
-
} = 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;
|
|
951
863
|
var tableHeight = height - gridY;
|
|
952
864
|
var halfViewportHeight = Math.round(tableHeight / 2) + ((_userRowHeights$get = userRowHeights.get(focusedRow)) !== null && _userRowHeights$get !== void 0 ? _userRowHeights$get : rowHeight);
|
|
953
865
|
var metricState = this.getMetricState();
|
|
@@ -957,9 +869,7 @@ class Grid extends PureComponent {
|
|
|
957
869
|
selectedRanges: [new GridRange(null, focusedRow, null, focusedRow)],
|
|
958
870
|
isStuckToBottom: false
|
|
959
871
|
});
|
|
960
|
-
var
|
|
961
|
-
cursorColumn
|
|
962
|
-
} = this.state;
|
|
872
|
+
var cursorColumn = this.state.cursorColumn;
|
|
963
873
|
this.moveCursorToPosition(cursorColumn, focusedRow, false, false);
|
|
964
874
|
}
|
|
965
875
|
|
|
@@ -967,14 +877,11 @@ class Grid extends PureComponent {
|
|
|
967
877
|
* Set the selection to the entire grid
|
|
968
878
|
*/
|
|
969
879
|
selectAll() {
|
|
970
|
-
var
|
|
971
|
-
model,
|
|
972
|
-
theme
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
autoSelectRow,
|
|
976
|
-
autoSelectColumn
|
|
977
|
-
} = 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;
|
|
978
885
|
var top = autoSelectColumn !== undefined && autoSelectColumn ? null : 0;
|
|
979
886
|
var bottom = autoSelectColumn !== undefined && autoSelectColumn ? null : model.rowCount - 1;
|
|
980
887
|
var left = autoSelectRow !== undefined && autoSelectRow ? null : 0;
|
|
@@ -989,28 +896,22 @@ class Grid extends PureComponent {
|
|
|
989
896
|
* @param extendSelection True if the current selection should be extended, false to start a new selection
|
|
990
897
|
*/
|
|
991
898
|
moveCursor(deltaColumn, deltaRow, extendSelection) {
|
|
992
|
-
var
|
|
993
|
-
cursorRow,
|
|
994
|
-
cursorColumn,
|
|
995
|
-
selectionEndColumn,
|
|
996
|
-
selectionEndRow
|
|
997
|
-
} = 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;
|
|
998
904
|
var column = extendSelection ? selectionEndColumn : cursorColumn;
|
|
999
905
|
var row = extendSelection ? selectionEndRow : cursorRow;
|
|
1000
906
|
if (row === null || column === null) {
|
|
1001
|
-
var
|
|
1002
|
-
left,
|
|
1003
|
-
top
|
|
1004
|
-
} = this.state;
|
|
907
|
+
var _this$state5 = this.state,
|
|
908
|
+
left = _this$state5.left,
|
|
909
|
+
top = _this$state5.top;
|
|
1005
910
|
this.moveCursorToPosition(left, top, extendSelection);
|
|
1006
911
|
} else {
|
|
1007
|
-
var
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
var {
|
|
1011
|
-
columnCount,
|
|
1012
|
-
rowCount
|
|
1013
|
-
} = model;
|
|
912
|
+
var model = this.props.model;
|
|
913
|
+
var columnCount = model.columnCount,
|
|
914
|
+
rowCount = model.rowCount;
|
|
1014
915
|
var _left = clamp(column + deltaColumn, 0, columnCount - 1);
|
|
1015
916
|
var _top = clamp(row + deltaRow, 0, rowCount - 1);
|
|
1016
917
|
this.moveCursorToPosition(_left, _top, extendSelection);
|
|
@@ -1023,18 +924,13 @@ class Grid extends PureComponent {
|
|
|
1023
924
|
*/
|
|
1024
925
|
moveCursorInDirection() {
|
|
1025
926
|
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GridRange.SELECTION_DIRECTION.DOWN;
|
|
1026
|
-
var
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
var
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
var {
|
|
1034
|
-
cursorRow,
|
|
1035
|
-
cursorColumn,
|
|
1036
|
-
selectedRanges
|
|
1037
|
-
} = 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;
|
|
1038
934
|
var ranges = selectedRanges.length > 0 ? selectedRanges : [GridRange.makeCell(cursorColumn, cursorRow)];
|
|
1039
935
|
var nextCursor = null;
|
|
1040
936
|
if (ranges.length === 1 && GridRange.cellCount(ranges) === 1) {
|
|
@@ -1046,10 +942,9 @@ class Grid extends PureComponent {
|
|
|
1046
942
|
nextCursor = GridRange.nextCell(GridRange.boundedRanges(ranges, columnCount, rowCount), cursorColumn, cursorRow, direction);
|
|
1047
943
|
}
|
|
1048
944
|
if (nextCursor != null) {
|
|
1049
|
-
var
|
|
1050
|
-
column,
|
|
1051
|
-
row
|
|
1052
|
-
} = nextCursor;
|
|
945
|
+
var _nextCursor = nextCursor,
|
|
946
|
+
column = _nextCursor.column,
|
|
947
|
+
row = _nextCursor.row;
|
|
1053
948
|
this.setState({
|
|
1054
949
|
cursorColumn: column,
|
|
1055
950
|
cursorRow: row
|
|
@@ -1096,22 +991,18 @@ class Grid extends PureComponent {
|
|
|
1096
991
|
*/
|
|
1097
992
|
moveViewToCell(column, row) {
|
|
1098
993
|
if (!this.metrics) throw new Error('metrics not set');
|
|
1099
|
-
var
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
topVisible,
|
|
1106
|
-
leftVisible
|
|
1107
|
-
} = 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;
|
|
1108
1000
|
var metricState = this.getMetricState(this.state);
|
|
1109
|
-
var
|
|
1110
|
-
top,
|
|
1111
|
-
left,
|
|
1112
|
-
topOffset,
|
|
1113
|
-
leftOffset
|
|
1114
|
-
} = 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;
|
|
1115
1006
|
if (row != null && !GridUtils.isFloatingRow(row, this.metrics)) {
|
|
1116
1007
|
if (row < topVisible) {
|
|
1117
1008
|
top = metricCalculator.getTopForTopVisible(metricState, row);
|
|
@@ -1147,20 +1038,16 @@ class Grid extends PureComponent {
|
|
|
1147
1038
|
setViewState(viewState) {
|
|
1148
1039
|
var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1149
1040
|
if (!this.metrics) throw new Error('metrics not set');
|
|
1150
|
-
var
|
|
1151
|
-
isStickyBottom,
|
|
1152
|
-
isStickyRight
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
lastLeft,
|
|
1161
|
-
hasVerticalBar,
|
|
1162
|
-
hasHorizontalBar
|
|
1163
|
-
} = 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;
|
|
1164
1051
|
if (top != null && hasVerticalBar) {
|
|
1165
1052
|
this.setState({
|
|
1166
1053
|
isStuckToBottom: isStickyBottom && top >= lastTop
|
|
@@ -1190,9 +1077,7 @@ class Grid extends PureComponent {
|
|
|
1190
1077
|
var isQuickEdit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1191
1078
|
var selectionRange = arguments.length > 3 ? arguments[3] : undefined;
|
|
1192
1079
|
var value = arguments.length > 4 ? arguments[4] : undefined;
|
|
1193
|
-
var
|
|
1194
|
-
model
|
|
1195
|
-
} = this.props;
|
|
1080
|
+
var model = this.props.model;
|
|
1196
1081
|
if (!isEditableGridModel(model)) throw new Error('model is not editable');
|
|
1197
1082
|
var modelColumn = this.getModelColumn(column);
|
|
1198
1083
|
var modelRow = this.getModelRow(row);
|
|
@@ -1219,9 +1104,7 @@ class Grid extends PureComponent {
|
|
|
1219
1104
|
* @returns True if the value is valid for the provided cell, false otherwise
|
|
1220
1105
|
*/
|
|
1221
1106
|
isValidForCell(column, row, value) {
|
|
1222
|
-
var
|
|
1223
|
-
model
|
|
1224
|
-
} = this.props;
|
|
1107
|
+
var model = this.props.model;
|
|
1225
1108
|
var modelColumn = this.getModelColumn(column);
|
|
1226
1109
|
var modelRow = this.getModelRow(row);
|
|
1227
1110
|
return isEditableGridModel(model) && model.isValidForCell(modelColumn, modelRow, value);
|
|
@@ -1236,14 +1119,11 @@ class Grid extends PureComponent {
|
|
|
1236
1119
|
pasteValue(value) {
|
|
1237
1120
|
var _this = this;
|
|
1238
1121
|
return _asyncToGenerator(function* () {
|
|
1239
|
-
var
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
movedRows,
|
|
1245
|
-
selectedRanges
|
|
1246
|
-
} = _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;
|
|
1247
1127
|
try {
|
|
1248
1128
|
assertIsEditableGridModel(model);
|
|
1249
1129
|
if (!model.isEditable || !selectedRanges.every(range => model.isEditableRange(range))) {
|
|
@@ -1270,10 +1150,8 @@ class Grid extends PureComponent {
|
|
|
1270
1150
|
// Otherwise it's a table of data
|
|
1271
1151
|
var tableHeight = value.length;
|
|
1272
1152
|
var tableWidth = value[0].length;
|
|
1273
|
-
var
|
|
1274
|
-
|
|
1275
|
-
rowCount
|
|
1276
|
-
} = model;
|
|
1153
|
+
var columnCount = model.columnCount,
|
|
1154
|
+
rowCount = model.rowCount;
|
|
1277
1155
|
var ranges = selectedRanges;
|
|
1278
1156
|
// If each cell is a single selection, we need to update the selection to map to the newly pasted data
|
|
1279
1157
|
// Check for
|
|
@@ -1307,9 +1185,7 @@ class Grid extends PureComponent {
|
|
|
1307
1185
|
});
|
|
1308
1186
|
yield model.setValues(edits);
|
|
1309
1187
|
} catch (e) {
|
|
1310
|
-
var
|
|
1311
|
-
onError
|
|
1312
|
-
} = _this.props;
|
|
1188
|
+
var onError = _this.props.onError;
|
|
1313
1189
|
onError(e instanceof Error ? e : new Error("".concat(e)));
|
|
1314
1190
|
}
|
|
1315
1191
|
})();
|
|
@@ -1323,10 +1199,9 @@ class Grid extends PureComponent {
|
|
|
1323
1199
|
* @returns true If the value was valid and attempted to be set, false is it was not valid
|
|
1324
1200
|
*/
|
|
1325
1201
|
setValueForCell(column, row, value) {
|
|
1326
|
-
var
|
|
1327
|
-
model,
|
|
1328
|
-
onError
|
|
1329
|
-
} = this.props;
|
|
1202
|
+
var _this$props6 = this.props,
|
|
1203
|
+
model = _this$props6.model,
|
|
1204
|
+
onError = _this$props6.onError;
|
|
1330
1205
|
assertIsEditableGridModel(model);
|
|
1331
1206
|
var modelColumn = this.getModelColumn(column);
|
|
1332
1207
|
var modelRow = this.getModelRow(row);
|
|
@@ -1345,14 +1220,12 @@ class Grid extends PureComponent {
|
|
|
1345
1220
|
* @param value The value to set on all the ranges
|
|
1346
1221
|
*/
|
|
1347
1222
|
setValueForRanges(ranges, value) {
|
|
1348
|
-
var
|
|
1349
|
-
model,
|
|
1350
|
-
onError
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
movedRows
|
|
1355
|
-
} = 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;
|
|
1356
1229
|
var modelRanges = GridUtils.getModelRanges(ranges, movedColumns, movedRows);
|
|
1357
1230
|
if (isEditableGridModel(model)) {
|
|
1358
1231
|
model.setValueForRanges(modelRanges, value).catch(err => {
|
|
@@ -1368,9 +1241,7 @@ class Grid extends PureComponent {
|
|
|
1368
1241
|
* @returns True if the cell is in the current selection, false otherwise
|
|
1369
1242
|
*/
|
|
1370
1243
|
isSelected(row, column) {
|
|
1371
|
-
var
|
|
1372
|
-
selectedRanges
|
|
1373
|
-
} = this.state;
|
|
1244
|
+
var selectedRanges = this.state.selectedRanges;
|
|
1374
1245
|
for (var i = 0; i < selectedRanges.length; i += 1) {
|
|
1375
1246
|
var _selectedRange$endRow, _selectedRange$endCol;
|
|
1376
1247
|
var selectedRange = selectedRanges[i];
|
|
@@ -1429,11 +1300,9 @@ class Grid extends PureComponent {
|
|
|
1429
1300
|
drawCanvas() {
|
|
1430
1301
|
if (!this.canvas) throw new Error('canvas is not set');
|
|
1431
1302
|
if (!this.canvasContext) throw new Error('context not set');
|
|
1432
|
-
var
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
renderState
|
|
1436
|
-
} = this;
|
|
1303
|
+
var renderer = this.renderer,
|
|
1304
|
+
context = this.canvasContext,
|
|
1305
|
+
renderState = this.renderState;
|
|
1437
1306
|
context.save();
|
|
1438
1307
|
renderer.drawCanvas(renderState);
|
|
1439
1308
|
context.restore();
|
|
@@ -1506,9 +1375,7 @@ class Grid extends PureComponent {
|
|
|
1506
1375
|
if (result !== false) {
|
|
1507
1376
|
var _options$stopPropagat, _options$preventDefau;
|
|
1508
1377
|
if (keyHandler.cursor != null) {
|
|
1509
|
-
|
|
1510
|
-
cursor
|
|
1511
|
-
} = keyHandler);
|
|
1378
|
+
cursor = keyHandler.cursor;
|
|
1512
1379
|
}
|
|
1513
1380
|
var options = result;
|
|
1514
1381
|
if ((_options$stopPropagat = options === null || options === void 0 ? void 0 : options.stopPropagation) !== null && _options$stopPropagat !== void 0 ? _options$stopPropagat : true) event.stopPropagation();
|
|
@@ -1546,9 +1413,7 @@ class Grid extends PureComponent {
|
|
|
1546
1413
|
if (result !== false) {
|
|
1547
1414
|
var _options$stopPropagat2, _options$preventDefau2;
|
|
1548
1415
|
if (mouseHandler.cursor != null) {
|
|
1549
|
-
|
|
1550
|
-
cursor
|
|
1551
|
-
} = mouseHandler);
|
|
1416
|
+
cursor = mouseHandler.cursor;
|
|
1552
1417
|
if (addCursorToDocument) {
|
|
1553
1418
|
this.addDocumentCursor(cursor);
|
|
1554
1419
|
}
|
|
@@ -1565,10 +1430,8 @@ class Grid extends PureComponent {
|
|
|
1565
1430
|
cursor
|
|
1566
1431
|
});
|
|
1567
1432
|
if (updateCoordinates) {
|
|
1568
|
-
var
|
|
1569
|
-
|
|
1570
|
-
y
|
|
1571
|
-
} = gridPoint;
|
|
1433
|
+
var x = gridPoint.x,
|
|
1434
|
+
y = gridPoint.y;
|
|
1572
1435
|
this.setState({
|
|
1573
1436
|
mouseX: x,
|
|
1574
1437
|
mouseY: y
|
|
@@ -1606,9 +1469,7 @@ class Grid extends PureComponent {
|
|
|
1606
1469
|
}
|
|
1607
1470
|
handleMouseUp(event) {
|
|
1608
1471
|
// Ignore non-left click while dragging to allow drag to continue
|
|
1609
|
-
var
|
|
1610
|
-
isDragging
|
|
1611
|
-
} = this.state;
|
|
1472
|
+
var isDragging = this.state.isDragging;
|
|
1612
1473
|
if (isDragging && event.button !== 0) {
|
|
1613
1474
|
return;
|
|
1614
1475
|
}
|
|
@@ -1645,9 +1506,8 @@ class Grid extends PureComponent {
|
|
|
1645
1506
|
}
|
|
1646
1507
|
forceUpdate(callback) {
|
|
1647
1508
|
this.setState(_ref5 => {
|
|
1648
|
-
var
|
|
1649
|
-
updateRevision = 0
|
|
1650
|
-
} = _ref5;
|
|
1509
|
+
var _ref5$updateRevision = _ref5.updateRevision,
|
|
1510
|
+
updateRevision = _ref5$updateRevision === void 0 ? 0 : _ref5$updateRevision;
|
|
1651
1511
|
return {
|
|
1652
1512
|
updateRevision: (updateRevision + 1) % Number.MAX_SAFE_INTEGER
|
|
1653
1513
|
};
|
|
@@ -1659,35 +1519,28 @@ class Grid extends PureComponent {
|
|
|
1659
1519
|
if (event.defaultPrevented) {
|
|
1660
1520
|
return;
|
|
1661
1521
|
}
|
|
1662
|
-
var
|
|
1663
|
-
|
|
1664
|
-
metrics
|
|
1665
|
-
} = this;
|
|
1522
|
+
var metricCalculator = this.metricCalculator,
|
|
1523
|
+
metrics = this.metrics;
|
|
1666
1524
|
var metricState = this.getMetricState();
|
|
1667
1525
|
if (!metrics) throw new Error('metrics not set');
|
|
1668
|
-
var
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
left,
|
|
1683
|
-
topOffset,
|
|
1684
|
-
leftOffset
|
|
1685
|
-
} = 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;
|
|
1686
1540
|
var theme = this.getTheme();
|
|
1687
|
-
var
|
|
1688
|
-
deltaX,
|
|
1689
|
-
deltaY
|
|
1690
|
-
} = 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;
|
|
1691
1544
|
|
|
1692
1545
|
// iterate through each column to determine column width and figure out how far to scroll
|
|
1693
1546
|
// get column width of next column to scroll to, and subract it from the remaining distance to travel
|
|
@@ -1832,9 +1685,7 @@ class Grid extends PureComponent {
|
|
|
1832
1685
|
*/
|
|
1833
1686
|
handleEditCellChange(value) {
|
|
1834
1687
|
this.setState(_ref6 => {
|
|
1835
|
-
var
|
|
1836
|
-
editingCell
|
|
1837
|
-
} = _ref6;
|
|
1688
|
+
var editingCell = _ref6.editingCell;
|
|
1838
1689
|
try {
|
|
1839
1690
|
assertIsDefined(editingCell);
|
|
1840
1691
|
return {
|
|
@@ -1844,9 +1695,7 @@ class Grid extends PureComponent {
|
|
|
1844
1695
|
};
|
|
1845
1696
|
} catch (e) {
|
|
1846
1697
|
// This case should _never_ happen, since the editingCell shouldn't be null if this method is called
|
|
1847
|
-
var
|
|
1848
|
-
onError
|
|
1849
|
-
} = this.props;
|
|
1698
|
+
var onError = this.props.onError;
|
|
1850
1699
|
onError(e instanceof Error ? e : new Error("".concat(e)));
|
|
1851
1700
|
return null;
|
|
1852
1701
|
}
|
|
@@ -1859,19 +1708,17 @@ class Grid extends PureComponent {
|
|
|
1859
1708
|
* @param options Options for committing
|
|
1860
1709
|
*/
|
|
1861
1710
|
handleEditCellCommit(value) {
|
|
1862
|
-
var {
|
|
1863
|
-
direction =
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
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;
|
|
1870
1719
|
if (!editingCell) throw new Error('editingCell not set');
|
|
1871
|
-
var
|
|
1872
|
-
|
|
1873
|
-
row
|
|
1874
|
-
} = editingCell;
|
|
1720
|
+
var column = editingCell.column,
|
|
1721
|
+
row = editingCell.row;
|
|
1875
1722
|
if (!this.isValidForCell(column, row, value)) {
|
|
1876
1723
|
// Don't allow an invalid value to be commited, the editing cell should show an error
|
|
1877
1724
|
if (direction === null) {
|
|
@@ -1896,39 +1743,26 @@ class Grid extends PureComponent {
|
|
|
1896
1743
|
this.focus();
|
|
1897
1744
|
}
|
|
1898
1745
|
renderInputField() {
|
|
1899
|
-
var
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
var {
|
|
1903
|
-
editingCell
|
|
1904
|
-
} = this.state;
|
|
1905
|
-
var {
|
|
1906
|
-
metrics
|
|
1907
|
-
} = this;
|
|
1746
|
+
var model = this.props.model;
|
|
1747
|
+
var editingCell = this.state.editingCell;
|
|
1748
|
+
var metrics = this.metrics;
|
|
1908
1749
|
if (editingCell == null || metrics == null || !isEditableGridModel(model)) {
|
|
1909
1750
|
return null;
|
|
1910
1751
|
}
|
|
1911
|
-
var
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
var
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
allRowYs,
|
|
1926
|
-
allColumnWidths,
|
|
1927
|
-
allRowHeights
|
|
1928
|
-
} = metrics;
|
|
1929
|
-
var {
|
|
1930
|
-
activeCellSelectionBorderWidth
|
|
1931
|
-
} = 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;
|
|
1932
1766
|
var x = allColumnXs.get(column);
|
|
1933
1767
|
var y = allRowYs.get(row);
|
|
1934
1768
|
var w = allColumnWidths.get(column);
|
|
@@ -1983,29 +1817,25 @@ class Grid extends PureComponent {
|
|
|
1983
1817
|
updateRenderState() {
|
|
1984
1818
|
if (!this.canvas) throw new Error('canvas is not set');
|
|
1985
1819
|
if (!this.canvasContext) throw new Error('context not set');
|
|
1986
|
-
var
|
|
1987
|
-
cursorColumn,
|
|
1988
|
-
cursorRow,
|
|
1989
|
-
draggingColumn,
|
|
1990
|
-
draggingColumnSeparator,
|
|
1991
|
-
draggingRow,
|
|
1992
|
-
draggingRowOffset,
|
|
1993
|
-
draggingRowSeparator,
|
|
1994
|
-
editingCell,
|
|
1995
|
-
isDraggingHorizontalScrollBar,
|
|
1996
|
-
isDraggingVerticalScrollBar,
|
|
1997
|
-
isDragging,
|
|
1998
|
-
mouseX,
|
|
1999
|
-
mouseY,
|
|
2000
|
-
selectedRanges
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
} = this.props;
|
|
2006
|
-
var {
|
|
2007
|
-
metrics
|
|
2008
|
-
} = 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;
|
|
2009
1839
|
var context = this.canvasContext;
|
|
2010
1840
|
var theme = this.getTheme();
|
|
2011
1841
|
var width = this.canvas.clientWidth;
|
|
@@ -2036,12 +1866,8 @@ class Grid extends PureComponent {
|
|
|
2036
1866
|
return this.renderState;
|
|
2037
1867
|
}
|
|
2038
1868
|
render() {
|
|
2039
|
-
var
|
|
2040
|
-
|
|
2041
|
-
} = this.props;
|
|
2042
|
-
var {
|
|
2043
|
-
cursor
|
|
2044
|
-
} = this.state;
|
|
1869
|
+
var children = this.props.children;
|
|
1870
|
+
var cursor = this.state.cursor;
|
|
2045
1871
|
return /*#__PURE__*/_jsxs("div", {
|
|
2046
1872
|
className: "grid-wrapper",
|
|
2047
1873
|
ref: this.canvasWrapper,
|