@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.
Files changed (58) hide show
  1. package/dist/CellInputField.js +41 -22
  2. package/dist/CellInputField.js.map +1 -1
  3. package/dist/CellRenderer.js +19 -27
  4. package/dist/CellRenderer.js.map +1 -1
  5. package/dist/DataBarCellRenderer.js +61 -87
  6. package/dist/DataBarCellRenderer.js.map +1 -1
  7. package/dist/Grid.d.ts.map +1 -1
  8. package/dist/Grid.js +291 -453
  9. package/dist/Grid.js.map +1 -1
  10. package/dist/GridColorUtils.js +23 -21
  11. package/dist/GridColorUtils.js.map +1 -1
  12. package/dist/GridMetricCalculator.js +192 -303
  13. package/dist/GridMetricCalculator.js.map +1 -1
  14. package/dist/GridRange.js +18 -28
  15. package/dist/GridRange.js.map +1 -1
  16. package/dist/GridRenderer.js +429 -600
  17. package/dist/GridRenderer.js.map +1 -1
  18. package/dist/GridUtils.js +130 -163
  19. package/dist/GridUtils.js.map +1 -1
  20. package/dist/MockGridModel.js +17 -10
  21. package/dist/MockGridModel.js.map +1 -1
  22. package/dist/MockTreeGridModel.js +36 -31
  23. package/dist/MockTreeGridModel.js.map +1 -1
  24. package/dist/TextCellRenderer.js +36 -57
  25. package/dist/TextCellRenderer.js.map +1 -1
  26. package/dist/key-handlers/EditKeyHandler.js +4 -7
  27. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  28. package/dist/key-handlers/PasteKeyHandler.js +1 -3
  29. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  30. package/dist/key-handlers/SelectionKeyHandler.js +40 -71
  31. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  32. package/dist/key-handlers/TreeKeyHandler.js +4 -10
  33. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  34. package/dist/mouse-handlers/EditMouseHandler.js +3 -7
  35. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  36. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +54 -82
  37. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  38. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +4 -8
  39. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  40. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +31 -55
  41. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  42. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +26 -46
  43. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  44. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +2 -4
  45. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  46. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +14 -22
  47. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  48. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +8 -16
  49. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  50. package/dist/mouse-handlers/GridSelectionMouseHandler.js +47 -75
  51. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  52. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +9 -23
  53. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  54. package/dist/mouse-handlers/GridTokenMouseHandler.js +24 -39
  55. package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
  56. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +31 -55
  57. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  58. package/package.json +3 -3
@@ -1,3 +1,9 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
1
7
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
9
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -127,9 +133,7 @@ export class GridRenderer {
127
133
  * @param state The state of the grid
128
134
  */
129
135
  drawCanvas(state) {
130
- var {
131
- context
132
- } = state;
136
+ var context = state.context;
133
137
  context.save();
134
138
  this.configureContext(context, state);
135
139
  this.drawBackground(context, state);
@@ -142,35 +146,25 @@ export class GridRenderer {
142
146
  context.restore();
143
147
  }
144
148
  configureContext(context, state) {
145
- var {
146
- theme
147
- } = state;
149
+ var theme = state.theme;
148
150
  context.font = theme.font;
149
151
  context.textBaseline = 'middle';
150
152
  context.lineCap = 'butt';
151
153
  }
152
154
  drawBackground(context, state) {
153
- var {
154
- theme,
155
- metrics
156
- } = state;
157
- var {
158
- width,
159
- height
160
- } = metrics;
155
+ var theme = state.theme,
156
+ metrics = state.metrics;
157
+ var width = metrics.width,
158
+ height = metrics.height;
161
159
  context.fillStyle = theme.backgroundColor;
162
160
  context.fillRect(0, 0, width, height);
163
161
  }
164
162
  drawGrid(context, state) {
165
- var {
166
- metrics,
167
- draggingRow,
168
- draggingColumn
169
- } = state;
170
- var {
171
- gridX,
172
- gridY
173
- } = metrics;
163
+ var metrics = state.metrics,
164
+ draggingRow = state.draggingRow,
165
+ draggingColumn = state.draggingColumn;
166
+ var gridX = metrics.gridX,
167
+ gridY = metrics.gridY;
174
168
  context.translate(gridX, gridY);
175
169
  this.drawGridBackground(context, state, draggingRow == null && draggingColumn == null);
176
170
  this.drawCellContents(context, state);
@@ -179,21 +173,17 @@ export class GridRenderer {
179
173
  context.translate(-gridX, -gridY);
180
174
  }
181
175
  drawFloatingRows(context, state) {
182
- var {
183
- draggingRow,
184
- draggingColumn,
185
- metrics,
186
- theme
187
- } = state;
188
- var {
189
- floatingTopRowCount,
190
- floatingBottomRowCount,
191
- floatingRows,
192
- rowCount,
193
- columnsForRender,
194
- allRowYs,
195
- allRowHeights
196
- } = metrics;
176
+ var draggingRow = state.draggingRow,
177
+ draggingColumn = state.draggingColumn,
178
+ metrics = state.metrics,
179
+ theme = state.theme;
180
+ var floatingTopRowCount = metrics.floatingTopRowCount,
181
+ floatingBottomRowCount = metrics.floatingBottomRowCount,
182
+ floatingRows = metrics.floatingRows,
183
+ rowCount = metrics.rowCount,
184
+ columnsForRender = metrics.columnsForRender,
185
+ allRowYs = metrics.allRowYs,
186
+ allRowHeights = metrics.allRowHeights;
197
187
  if (floatingRows.length === 0) {
198
188
  return;
199
189
  }
@@ -234,27 +224,23 @@ export class GridRenderer {
234
224
  }
235
225
  }
236
226
  drawFloatingColumns(context, state) {
237
- var {
238
- draggingRow,
239
- draggingColumn,
240
- metrics,
241
- theme
242
- } = state;
243
- var {
244
- floatingLeftColumnCount,
245
- floatingRightColumnCount,
246
- floatingLeftWidth,
247
- floatingRightWidth,
248
- floatingColumns,
249
- gridX,
250
- maxX,
251
- columnCount,
252
- visibleRows,
253
- allColumnXs,
254
- allColumnWidths,
255
- width,
256
- height
257
- } = metrics;
227
+ var draggingRow = state.draggingRow,
228
+ draggingColumn = state.draggingColumn,
229
+ metrics = state.metrics,
230
+ theme = state.theme;
231
+ var floatingLeftColumnCount = metrics.floatingLeftColumnCount,
232
+ floatingRightColumnCount = metrics.floatingRightColumnCount,
233
+ floatingLeftWidth = metrics.floatingLeftWidth,
234
+ floatingRightWidth = metrics.floatingRightWidth,
235
+ floatingColumns = metrics.floatingColumns,
236
+ gridX = metrics.gridX,
237
+ maxX = metrics.maxX,
238
+ columnCount = metrics.columnCount,
239
+ visibleRows = metrics.visibleRows,
240
+ allColumnXs = metrics.allColumnXs,
241
+ allColumnWidths = metrics.allColumnWidths,
242
+ width = metrics.width,
243
+ height = metrics.height;
258
244
  if (floatingColumns.length === 0) {
259
245
  return;
260
246
  }
@@ -302,28 +288,22 @@ export class GridRenderer {
302
288
  }
303
289
  }
304
290
  drawFloatingBorders(context, state) {
305
- var {
306
- metrics,
307
- theme
308
- } = state;
309
- var {
310
- floatingTopRowCount,
311
- floatingBottomRowCount,
312
- floatingLeftColumnCount,
313
- floatingRightColumnCount,
314
- rowCount,
315
- columnCount,
316
- allRowYs,
317
- allColumnXs,
318
- allRowHeights,
319
- allColumnWidths,
320
- maxX,
321
- maxY
322
- } = metrics;
323
- var {
324
- floatingDividerOuterColor,
325
- floatingDividerInnerColor
326
- } = theme;
291
+ var metrics = state.metrics,
292
+ theme = state.theme;
293
+ var floatingTopRowCount = metrics.floatingTopRowCount,
294
+ floatingBottomRowCount = metrics.floatingBottomRowCount,
295
+ floatingLeftColumnCount = metrics.floatingLeftColumnCount,
296
+ floatingRightColumnCount = metrics.floatingRightColumnCount,
297
+ rowCount = metrics.rowCount,
298
+ columnCount = metrics.columnCount,
299
+ allRowYs = metrics.allRowYs,
300
+ allColumnXs = metrics.allColumnXs,
301
+ allRowHeights = metrics.allRowHeights,
302
+ allColumnWidths = metrics.allColumnWidths,
303
+ maxX = metrics.maxX,
304
+ maxY = metrics.maxY;
305
+ var floatingDividerOuterColor = theme.floatingDividerOuterColor,
306
+ floatingDividerInnerColor = theme.floatingDividerInnerColor;
327
307
  context.lineWidth = 3;
328
308
  context.beginPath();
329
309
  context.strokeStyle = floatingDividerOuterColor;
@@ -382,25 +362,21 @@ export class GridRenderer {
382
362
  }
383
363
  this.drawGridLines(context, state);
384
364
  this.drawCellBackgrounds(context, state);
385
- var {
386
- metrics
387
- } = state;
388
- var {
389
- bottom,
390
- right,
391
- floatingBottomRowCount,
392
- floatingLeftColumnCount,
393
- floatingRightColumnCount,
394
- floatingTopRowCount,
395
- columnCount,
396
- rowCount,
397
- allRowHeights,
398
- allRowYs,
399
- allColumnXs,
400
- allColumnWidths,
401
- width,
402
- height
403
- } = metrics;
365
+ var metrics = state.metrics;
366
+ var bottom = metrics.bottom,
367
+ right = metrics.right,
368
+ floatingBottomRowCount = metrics.floatingBottomRowCount,
369
+ floatingLeftColumnCount = metrics.floatingLeftColumnCount,
370
+ floatingRightColumnCount = metrics.floatingRightColumnCount,
371
+ floatingTopRowCount = metrics.floatingTopRowCount,
372
+ columnCount = metrics.columnCount,
373
+ rowCount = metrics.rowCount,
374
+ allRowHeights = metrics.allRowHeights,
375
+ allRowYs = metrics.allRowYs,
376
+ allColumnXs = metrics.allColumnXs,
377
+ allColumnWidths = metrics.allColumnWidths,
378
+ width = metrics.width,
379
+ height = metrics.height;
404
380
  this.drawSelectedRanges(context, state, {
405
381
  bottom: Math.min(bottom, rowCount - floatingBottomRowCount - 1),
406
382
  right: Math.min(right, columnCount - floatingRightColumnCount - 1),
@@ -411,16 +387,10 @@ export class GridRenderer {
411
387
  });
412
388
  }
413
389
  drawRowStripes(context, state) {
414
- var {
415
- metrics,
416
- theme
417
- } = state;
418
- var {
419
- visibleRows
420
- } = metrics;
421
- var {
422
- rowBackgroundColors
423
- } = theme;
390
+ var metrics = state.metrics,
391
+ theme = state.theme;
392
+ var visibleRows = metrics.visibleRows;
393
+ var rowBackgroundColors = theme.rowBackgroundColors;
424
394
  if (!rowBackgroundColors) {
425
395
  return;
426
396
  }
@@ -429,22 +399,16 @@ export class GridRenderer {
429
399
  drawRowStripesForRows(context, state, rows, rowBackgroundColors) {
430
400
  var minX = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
431
401
  var maxX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : state.metrics.maxX;
432
- var {
433
- theme,
434
- metrics,
435
- model
436
- } = state;
437
- var {
438
- maxDepth,
439
- shadowBlur,
440
- shadowColor,
441
- shadowAlpha
442
- } = theme;
402
+ var theme = state.theme,
403
+ metrics = state.metrics,
404
+ model = state.model;
405
+ var maxDepth = theme.maxDepth,
406
+ shadowBlur = theme.shadowBlur,
407
+ shadowColor = theme.shadowColor,
408
+ shadowAlpha = theme.shadowAlpha;
443
409
  var colorSets = GridRenderer.getCachedBackgroundColors(rowBackgroundColors, maxDepth);
444
- var {
445
- allRowYs,
446
- allRowHeights
447
- } = metrics;
410
+ var allRowYs = metrics.allRowYs,
411
+ allRowHeights = metrics.allRowHeights;
448
412
 
449
413
  // Optimize by grouping together all rows that end up with the same color
450
414
  var colorRowMap = new Map();
@@ -525,22 +489,18 @@ export class GridRenderer {
525
489
  }
526
490
  }
527
491
  drawMouseColumnHover(context, state) {
528
- var {
529
- mouseX,
530
- mouseY,
531
- theme,
532
- metrics
533
- } = state;
492
+ var mouseX = state.mouseX,
493
+ mouseY = state.mouseY,
494
+ theme = state.theme,
495
+ metrics = state.metrics;
534
496
  if (mouseX == null || mouseY == null) return;
535
497
  var mouseColumn = GridUtils.getColumnAtX(mouseX, metrics);
536
498
  if (mouseColumn == null || theme.columnHoverBackgroundColor == null) {
537
499
  return;
538
500
  }
539
- var {
540
- allColumnWidths,
541
- allColumnXs,
542
- maxY
543
- } = metrics;
501
+ var allColumnWidths = metrics.allColumnWidths,
502
+ allColumnXs = metrics.allColumnXs,
503
+ maxY = metrics.maxY;
544
504
  if (mouseY > maxY) {
545
505
  return;
546
506
  }
@@ -550,16 +510,12 @@ export class GridRenderer {
550
510
  context.fillRect(x, 0, columnWidth, maxY);
551
511
  }
552
512
  drawMouseRowHover(context, state) {
553
- var {
554
- mouseX,
555
- mouseY,
556
- theme,
557
- metrics
558
- } = state;
513
+ var mouseX = state.mouseX,
514
+ mouseY = state.mouseY,
515
+ theme = state.theme,
516
+ metrics = state.metrics;
559
517
  if (mouseX == null || mouseY == null) return;
560
- var {
561
- maxX
562
- } = metrics;
518
+ var maxX = metrics.maxX;
563
519
  if (mouseX > maxX || theme.rowHoverBackgroundColor == null) {
564
520
  return;
565
521
  }
@@ -570,19 +526,15 @@ export class GridRenderer {
570
526
  this.drawMouseRowHoverForRow(context, state, mouseRow);
571
527
  }
572
528
  drawFloatingMouseRowHover(context, state) {
573
- var {
574
- mouseX,
575
- mouseY,
576
- theme,
577
- metrics
578
- } = state;
579
- var {
580
- maxX,
581
- floatingTopRowCount,
582
- floatingBottomRowCount,
583
- rowCount,
584
- rowFooterWidth
585
- } = metrics;
529
+ var mouseX = state.mouseX,
530
+ mouseY = state.mouseY,
531
+ theme = state.theme,
532
+ metrics = state.metrics;
533
+ var maxX = metrics.maxX,
534
+ floatingTopRowCount = metrics.floatingTopRowCount,
535
+ floatingBottomRowCount = metrics.floatingBottomRowCount,
536
+ rowCount = metrics.rowCount,
537
+ rowFooterWidth = metrics.rowFooterWidth;
586
538
  if (mouseX == null || mouseY == null || mouseX > maxX + rowFooterWidth || theme.rowHoverBackgroundColor == null) {
587
539
  return;
588
540
  }
@@ -592,26 +544,21 @@ export class GridRenderer {
592
544
  }
593
545
  }
594
546
  drawMouseRowHoverForRow(context, state, row) {
595
- var {
596
- metrics,
597
- selectedRanges,
598
- theme
599
- } = state;
600
- var {
601
- allRowHeights,
602
- allRowYs,
603
- maxX
604
- } = metrics;
547
+ var metrics = state.metrics,
548
+ selectedRanges = state.selectedRanges,
549
+ theme = state.theme;
550
+ var allRowHeights = metrics.allRowHeights,
551
+ allRowYs = metrics.allRowYs,
552
+ maxX = metrics.maxX;
605
553
  var y = getOrThrow(allRowYs, row);
606
554
  var rowHeight = getOrThrow(allRowHeights, row);
607
555
  if (theme.rowHoverBackgroundColor != null) {
608
556
  context.fillStyle = theme.rowHoverBackgroundColor;
609
557
  }
610
558
  for (var i = 0; i < selectedRanges.length; i += 1) {
611
- var {
612
- startRow,
613
- endRow
614
- } = selectedRanges[i];
559
+ var _selectedRanges$i = selectedRanges[i],
560
+ startRow = _selectedRanges$i.startRow,
561
+ endRow = _selectedRanges$i.endRow;
615
562
  if (startRow != null && endRow != null && startRow <= row && endRow >= row) {
616
563
  if (theme.selectedRowHoverBackgroundColor != null) {
617
564
  context.fillStyle = theme.selectedRowHoverBackgroundColor;
@@ -622,14 +569,10 @@ export class GridRenderer {
622
569
  context.fillRect(0, y, maxX, rowHeight);
623
570
  }
624
571
  drawGridLines(context, state) {
625
- var {
626
- metrics,
627
- theme
628
- } = state;
629
- var {
630
- columnsForRender,
631
- visibleRows
632
- } = metrics;
572
+ var metrics = state.metrics,
573
+ theme = state.theme;
574
+ var columnsForRender = metrics.columnsForRender,
575
+ visibleRows = metrics.visibleRows;
633
576
  this.drawGridLinesForItems(context, state, columnsForRender, visibleRows, theme.gridColumnColor, theme.gridRowColor);
634
577
  }
635
578
  drawGridLinesForItems(context, state, columns, rows, columnColor, rowColor) {
@@ -649,13 +592,9 @@ export class GridRenderer {
649
592
  context.stroke();
650
593
  }
651
594
  drawGridLinesForColumns(context, state, columns) {
652
- var {
653
- metrics
654
- } = state;
655
- var {
656
- allColumnXs,
657
- maxY
658
- } = metrics;
595
+ var metrics = state.metrics;
596
+ var allColumnXs = metrics.allColumnXs,
597
+ maxY = metrics.maxY;
659
598
  for (var i = 0; i < columns.length; i += 1) {
660
599
  var column = columns[i];
661
600
  var x = getOrThrow(allColumnXs, column) + 0.5;
@@ -664,13 +603,9 @@ export class GridRenderer {
664
603
  }
665
604
  }
666
605
  drawGridLinesForRows(context, state, rows) {
667
- var {
668
- metrics
669
- } = state;
670
- var {
671
- allRowYs,
672
- maxX: metricsMaxX
673
- } = metrics;
606
+ var metrics = state.metrics;
607
+ var allRowYs = metrics.allRowYs,
608
+ metricsMaxX = metrics.maxX;
674
609
  var maxX = metricsMaxX;
675
610
 
676
611
  // Draw row lines
@@ -682,13 +617,9 @@ export class GridRenderer {
682
617
  }
683
618
  }
684
619
  drawCellBackgrounds(context, state) {
685
- var {
686
- metrics
687
- } = state;
688
- var {
689
- columnsForRender,
690
- visibleRows
691
- } = metrics;
620
+ var metrics = state.metrics;
621
+ var columnsForRender = metrics.columnsForRender,
622
+ visibleRows = metrics.visibleRows;
692
623
  this.drawCellBackgroundsForItems(context, state, columnsForRender, visibleRows);
693
624
  }
694
625
  drawCellBackgroundsForItems(context, state, columns, rows) {
@@ -704,20 +635,16 @@ export class GridRenderer {
704
635
  context.restore();
705
636
  }
706
637
  drawCellBackground(context, state, column, row, rowAfter) {
707
- var {
708
- metrics,
709
- model,
710
- theme
711
- } = state;
712
- var {
713
- firstColumn,
714
- modelColumns,
715
- modelRows,
716
- allColumnXs,
717
- allColumnWidths,
718
- allRowYs,
719
- allRowHeights
720
- } = metrics;
638
+ var metrics = state.metrics,
639
+ model = state.model,
640
+ theme = state.theme;
641
+ var firstColumn = metrics.firstColumn,
642
+ modelColumns = metrics.modelColumns,
643
+ modelRows = metrics.modelRows,
644
+ allColumnXs = metrics.allColumnXs,
645
+ allColumnWidths = metrics.allColumnWidths,
646
+ allRowYs = metrics.allRowYs,
647
+ allRowHeights = metrics.allRowHeights;
721
648
  var modelRow = getOrThrow(modelRows, row);
722
649
  var modelColumn = getOrThrow(modelColumns, column);
723
650
  var backgroundColor = model.backgroundColorForCell(modelColumn, modelRow, theme);
@@ -736,27 +663,19 @@ export class GridRenderer {
736
663
  }
737
664
  }
738
665
  drawCellContents(context, state) {
739
- var {
740
- metrics
741
- } = state;
742
- var {
743
- columnsForRender
744
- } = metrics;
666
+ var metrics = state.metrics;
667
+ var columnsForRender = metrics.columnsForRender;
745
668
  for (var i = 0; i < columnsForRender.length; i += 1) {
746
669
  var column = columnsForRender[i];
747
670
  this.drawColumnCellContents(context, state, column);
748
671
  }
749
672
  }
750
673
  drawColumnCellContents(context, state, column) {
751
- var {
752
- metrics
753
- } = state;
754
- var {
755
- allColumnXs,
756
- allColumnWidths,
757
- visibleRows,
758
- height
759
- } = metrics;
674
+ var metrics = state.metrics;
675
+ var allColumnXs = metrics.allColumnXs,
676
+ allColumnWidths = metrics.allColumnWidths,
677
+ visibleRows = metrics.visibleRows,
678
+ height = metrics.height;
760
679
  var x = getOrThrow(allColumnXs, column);
761
680
  var columnWidth = getOrThrow(allColumnWidths, column);
762
681
  context.save();
@@ -770,14 +689,10 @@ export class GridRenderer {
770
689
  context.restore();
771
690
  }
772
691
  drawCellContent(context, state, column, row) {
773
- var {
774
- metrics,
775
- model
776
- } = state;
777
- var {
778
- modelColumns,
779
- modelRows
780
- } = metrics;
692
+ var metrics = state.metrics,
693
+ model = state.model;
694
+ var modelColumns = metrics.modelColumns,
695
+ modelRows = metrics.modelRows;
781
696
  var modelRow = getOrThrow(modelRows, row);
782
697
  var modelColumn = getOrThrow(modelColumns, column);
783
698
  var renderType = model.renderTypeForCell(modelColumn, modelRow);
@@ -793,25 +708,19 @@ export class GridRenderer {
793
708
  }
794
709
  }
795
710
  drawCellRowTreeDepthLines(context, state, row, rowAfter) {
796
- var {
797
- metrics,
798
- model,
799
- theme
800
- } = state;
711
+ var metrics = state.metrics,
712
+ model = state.model,
713
+ theme = state.theme;
801
714
  if (!isExpandableGridModel(model)) return;
802
715
  var depth = model.depthForRow(row);
803
716
  if (depth === 0) return;
804
- var {
805
- firstColumn,
806
- allColumnXs,
807
- allRowYs,
808
- allRowHeights
809
- } = metrics;
810
- var {
811
- treeDepthIndent,
812
- treeHorizontalPadding,
813
- treeLineColor
814
- } = theme;
717
+ var firstColumn = metrics.firstColumn,
718
+ allColumnXs = metrics.allColumnXs,
719
+ allRowYs = metrics.allRowYs,
720
+ allRowHeights = metrics.allRowHeights;
721
+ var treeDepthIndent = theme.treeDepthIndent,
722
+ treeHorizontalPadding = theme.treeHorizontalPadding,
723
+ treeLineColor = theme.treeLineColor;
815
724
  var columnX = getOrThrow(allColumnXs, firstColumn);
816
725
  var rowY = getOrThrow(allRowYs, row);
817
726
  var rowHeight = getOrThrow(allRowHeights, row);
@@ -846,54 +755,44 @@ export class GridRenderer {
846
755
  }
847
756
  }
848
757
  drawHeaders(context, state) {
849
- var {
850
- theme
851
- } = state;
758
+ var theme = state.theme;
852
759
  context.font = theme.headerFont;
853
760
  this.drawColumnHeaders(context, state);
854
761
  this.drawRowHeaders(context, state);
855
762
  }
856
763
  drawFooters(context, state) {
857
- var {
858
- theme
859
- } = state;
764
+ var theme = state.theme;
860
765
  context.font = theme.headerFont;
861
766
  this.drawRowFooters(context, state);
862
767
  }
863
768
  drawColumnHeaders(context, state) {
864
- var {
865
- mouseX,
866
- mouseY,
867
- theme,
868
- metrics,
869
- draggingColumnSeparator,
870
- isDragging,
871
- model
872
- } = state;
873
- var {
874
- columnHeaderHeight,
875
- floatingColumns,
876
- gridX,
877
- width,
878
- visibleColumns,
879
- allColumnWidths,
880
- allColumnXs,
881
- floatingLeftColumnCount,
882
- floatingLeftWidth,
883
- floatingRightWidth,
884
- movedColumns,
885
- columnCount,
886
- columnHeaderMaxDepth
887
- } = metrics;
769
+ var mouseX = state.mouseX,
770
+ mouseY = state.mouseY,
771
+ theme = state.theme,
772
+ metrics = state.metrics,
773
+ draggingColumnSeparator = state.draggingColumnSeparator,
774
+ isDragging = state.isDragging,
775
+ model = state.model;
776
+ var columnHeaderHeight = metrics.columnHeaderHeight,
777
+ floatingColumns = metrics.floatingColumns,
778
+ gridX = metrics.gridX,
779
+ width = metrics.width,
780
+ visibleColumns = metrics.visibleColumns,
781
+ allColumnWidths = metrics.allColumnWidths,
782
+ allColumnXs = metrics.allColumnXs,
783
+ floatingLeftColumnCount = metrics.floatingLeftColumnCount,
784
+ floatingLeftWidth = metrics.floatingLeftWidth,
785
+ floatingRightWidth = metrics.floatingRightWidth,
786
+ movedColumns = metrics.movedColumns,
787
+ columnCount = metrics.columnCount,
788
+ columnHeaderMaxDepth = metrics.columnHeaderMaxDepth;
888
789
  if (columnHeaderHeight <= 0) {
889
790
  return;
890
791
  }
891
- var {
892
- headerHiddenSeparatorSize,
893
- headerHiddenSeparatorHoverColor,
894
- headerSeparatorColor,
895
- headerSeparatorHoverColor
896
- } = theme;
792
+ var headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
793
+ headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
794
+ headerSeparatorColor = theme.headerSeparatorColor,
795
+ headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
897
796
  var hiddenSeparatorHeight = columnHeaderHeight * 0.5;
898
797
  var hiddenY = columnHeaderHeight * (columnHeaderMaxDepth - 1) + columnHeaderHeight * 0.5 - hiddenSeparatorHeight * 0.5;
899
798
  var containsFrozenColumns = floatingLeftColumnCount > 0;
@@ -911,10 +810,13 @@ export class GridRenderer {
911
810
  if (headerSeparatorColor) {
912
811
  context.strokeStyle = headerSeparatorColor;
913
812
  var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
914
- var [_, w] = _ref;
813
+ var _ref2 = _slicedToArray(_ref, 2),
814
+ _ = _ref2[0],
815
+ w = _ref2[1];
915
816
  return w === 0;
916
- }).map(_ref2 => {
917
- var [index] = _ref2;
817
+ }).map(_ref3 => {
818
+ var _ref4 = _slicedToArray(_ref3, 1),
819
+ index = _ref4[0];
918
820
  return index;
919
821
  });
920
822
 
@@ -931,10 +833,9 @@ export class GridRenderer {
931
833
  context.fill();
932
834
  }
933
835
  if (headerSeparatorHoverColor) {
934
- var {
935
- index: highlightedSeparator,
936
- depth
937
- } = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {};
836
+ var _ref5 = draggingColumnSeparator !== null && draggingColumnSeparator !== void 0 ? draggingColumnSeparator : {},
837
+ highlightedSeparator = _ref5.index,
838
+ depth = _ref5.depth;
938
839
  if (highlightedSeparator == null && mouseX != null && mouseY != null) {
939
840
  var separator = GridColumnSeparatorMouseHandler.getColumnSeparator(GridUtils.getGridPointFromXY(mouseX, mouseY, metrics), metrics, model, theme);
940
841
  highlightedSeparator = separator === null || separator === void 0 ? void 0 : separator.index;
@@ -975,12 +876,8 @@ export class GridRenderer {
975
876
  context.restore();
976
877
  }
977
878
  drawColumnHeadersForRange(context, state, range, bounds) {
978
- var {
979
- model
980
- } = state;
981
- var {
982
- columnHeaderMaxDepth
983
- } = model;
879
+ var model = state.model;
880
+ var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
984
881
  if (columnHeaderMaxDepth === 0) {
985
882
  return;
986
883
  }
@@ -989,30 +886,20 @@ export class GridRenderer {
989
886
  }
990
887
  }
991
888
  drawColumnHeadersAtDepth(context, state, range, bounds, depth) {
992
- var {
993
- metrics,
994
- model,
995
- theme
996
- } = state;
997
- var {
998
- modelColumns,
999
- allColumnXs,
1000
- gridX,
1001
- userColumnWidths,
1002
- allColumnWidths,
1003
- movedColumns
1004
- } = metrics;
1005
- var {
1006
- columnHeaderHeight,
1007
- columnWidth
1008
- } = theme;
1009
- var {
1010
- columnHeaderMaxDepth
1011
- } = model;
1012
- var {
1013
- minX,
1014
- maxX
1015
- } = bounds;
889
+ var metrics = state.metrics,
890
+ model = state.model,
891
+ theme = state.theme;
892
+ var modelColumns = metrics.modelColumns,
893
+ allColumnXs = metrics.allColumnXs,
894
+ gridX = metrics.gridX,
895
+ userColumnWidths = metrics.userColumnWidths,
896
+ allColumnWidths = metrics.allColumnWidths,
897
+ movedColumns = metrics.movedColumns;
898
+ var columnHeaderHeight = theme.columnHeaderHeight,
899
+ columnWidth = theme.columnWidth;
900
+ var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
901
+ var minX = bounds.minX,
902
+ maxX = bounds.maxX;
1016
903
  var visibleWidth = maxX - minX;
1017
904
  if (columnHeaderMaxDepth === 0) {
1018
905
  return;
@@ -1035,10 +922,8 @@ export class GridRenderer {
1035
922
  if (depth > 0) {
1036
923
  var columnIndex = startIndex;
1037
924
  while (columnIndex <= endIndex) {
1038
- var {
1039
- columnCount,
1040
- calculatedColumnWidths
1041
- } = metrics;
925
+ var columnCount = metrics.columnCount,
926
+ calculatedColumnWidths = metrics.calculatedColumnWidths;
1042
927
  var modelColumn = getOrThrow(modelColumns, columnIndex);
1043
928
  var columnGroupName = model.textForColumnHeader(modelColumn, depth);
1044
929
  var columnGroupColor = model.colorForColumnHeader(modelColumn, depth);
@@ -1050,25 +935,25 @@ export class GridRenderer {
1050
935
  // The group will be drawn as if it were a column with a max width of the bounds width
1051
936
  var prevColumnIndex = columnIndex - 1;
1052
937
  while (prevColumnIndex >= 0 && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupLeft > minX)) {
1053
- var _modelColumns$get, _ref3, _ref4, _userColumnWidths$get;
938
+ var _modelColumns$get, _ref6, _ref7, _userColumnWidths$get;
1054
939
  var prevModelIndex = (_modelColumns$get = modelColumns.get(prevColumnIndex)) !== null && _modelColumns$get !== void 0 ? _modelColumns$get : GridUtils.getModelIndex(prevColumnIndex, movedColumns);
1055
940
  if (prevModelIndex == null || !GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, prevModelIndex)) {
1056
941
  // Previous column not in the same group
1057
942
  break;
1058
943
  }
1059
- var prevColumnWidth = (_ref3 = (_ref4 = (_userColumnWidths$get = userColumnWidths.get(prevModelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : allColumnWidths.get(prevColumnIndex)) !== null && _ref4 !== void 0 ? _ref4 : calculatedColumnWidths.get(prevModelIndex)) !== null && _ref3 !== void 0 ? _ref3 : columnWidth;
944
+ var prevColumnWidth = (_ref6 = (_ref7 = (_userColumnWidths$get = userColumnWidths.get(prevModelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : allColumnWidths.get(prevColumnIndex)) !== null && _ref7 !== void 0 ? _ref7 : calculatedColumnWidths.get(prevModelIndex)) !== null && _ref6 !== void 0 ? _ref6 : columnWidth;
1060
945
  columnGroupLeft -= prevColumnWidth;
1061
946
  prevColumnIndex -= 1;
1062
947
  }
1063
948
  var nextColumnIndex = columnIndex + 1;
1064
949
  while (nextColumnIndex < columnCount && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupRight < maxX)) {
1065
- var _modelColumns$get2, _ref5, _userColumnWidths$get2;
950
+ var _modelColumns$get2, _ref8, _userColumnWidths$get2;
1066
951
  var nextModelIndex = (_modelColumns$get2 = modelColumns.get(nextColumnIndex)) !== null && _modelColumns$get2 !== void 0 ? _modelColumns$get2 : GridUtils.getModelIndex(nextColumnIndex, movedColumns);
1067
952
  if (!GridUtils.isSameColumnGroupAtDepth(model, depth, modelColumn, nextModelIndex)) {
1068
953
  // Next column not in the same group
1069
954
  break;
1070
955
  }
1071
- var nextColumnWidth = (_ref5 = (_userColumnWidths$get2 = userColumnWidths.get(nextModelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : allColumnWidths.get(nextColumnIndex)) !== null && _ref5 !== void 0 ? _ref5 : columnWidth;
956
+ var nextColumnWidth = (_ref8 = (_userColumnWidths$get2 = userColumnWidths.get(nextModelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : allColumnWidths.get(nextColumnIndex)) !== null && _ref8 !== void 0 ? _ref8 : columnWidth;
1072
957
  columnGroupRight += nextColumnWidth;
1073
958
  nextColumnIndex += 1;
1074
959
  }
@@ -1103,16 +988,12 @@ export class GridRenderer {
1103
988
  */
1104
989
  drawColumnHeaderAtIndex(context, state, index, bounds) {
1105
990
  var _model$colorForColumn;
1106
- var {
1107
- metrics,
1108
- model
1109
- } = state;
1110
- var {
1111
- modelColumns,
1112
- allColumnWidths,
1113
- allColumnXs,
1114
- gridX
1115
- } = metrics;
991
+ var metrics = state.metrics,
992
+ model = state.model;
993
+ var modelColumns = metrics.modelColumns,
994
+ allColumnWidths = metrics.allColumnWidths,
995
+ allColumnXs = metrics.allColumnXs,
996
+ gridX = metrics.gridX;
1116
997
  var width = getOrThrow(allColumnWidths, index);
1117
998
  var x = getOrThrow(allColumnXs, index) + gridX;
1118
999
  var modelColumn = getOrThrow(modelColumns, index);
@@ -1128,32 +1009,27 @@ export class GridRenderer {
1128
1009
  if (columnWidth <= 0) {
1129
1010
  return;
1130
1011
  }
1131
- var {
1132
- metrics,
1133
- theme
1134
- } = state;
1135
- var {
1136
- headerHorizontalPadding,
1137
- columnHeaderHeight,
1138
- headerBackgroundColor,
1139
- headerColor,
1140
- headerSeparatorColor,
1141
- black,
1142
- white
1143
- } = theme;
1144
- var {
1145
- fontWidthsLower,
1146
- fontWidthsUpper,
1147
- width
1148
- } = metrics;
1012
+ var metrics = state.metrics,
1013
+ theme = state.theme;
1014
+ var headerHorizontalPadding = theme.headerHorizontalPadding,
1015
+ columnHeaderHeight = theme.columnHeaderHeight,
1016
+ headerBackgroundColor = theme.headerBackgroundColor,
1017
+ headerColor = theme.headerColor,
1018
+ headerSeparatorColor = theme.headerSeparatorColor,
1019
+ black = theme.black,
1020
+ white = theme.white;
1021
+ var fontWidthsLower = metrics.fontWidthsLower,
1022
+ fontWidthsUpper = metrics.fontWidthsUpper,
1023
+ width = metrics.width;
1149
1024
  var maxWidth = columnWidth - headerHorizontalPadding * 2;
1150
- var {
1151
- backgroundColor = headerBackgroundColor,
1152
- separatorColor = headerSeparatorColor
1153
- } = style !== null && style !== void 0 ? style : {};
1154
- var {
1155
- textColor = headerColor
1156
- } = style !== null && style !== void 0 ? style : {};
1025
+ var _ref9 = style !== null && style !== void 0 ? style : {},
1026
+ _ref9$backgroundColor = _ref9.backgroundColor,
1027
+ backgroundColor = _ref9$backgroundColor === void 0 ? headerBackgroundColor : _ref9$backgroundColor,
1028
+ _ref9$separatorColor = _ref9.separatorColor,
1029
+ separatorColor = _ref9$separatorColor === void 0 ? headerSeparatorColor : _ref9$separatorColor;
1030
+ var _ref0 = style !== null && style !== void 0 ? style : {},
1031
+ _ref0$textColor = _ref0.textColor,
1032
+ textColor = _ref0$textColor === void 0 ? headerColor : _ref0$textColor;
1157
1033
  try {
1158
1034
  var isDarkBackground = GridRenderer.getCachedColorIsDark(backgroundColor);
1159
1035
  var isDarkText = GridRenderer.getCachedColorIsDark(textColor);
@@ -1166,10 +1042,11 @@ export class GridRenderer {
1166
1042
  // Invalid color provided
1167
1043
  // no-op since we don't use logging in base grid
1168
1044
  }
1169
- var {
1170
- minX = 0,
1171
- maxX = width
1172
- } = bounds !== null && bounds !== void 0 ? bounds : {};
1045
+ var _ref1 = bounds !== null && bounds !== void 0 ? bounds : {},
1046
+ _ref1$minX = _ref1.minX,
1047
+ minX = _ref1$minX === void 0 ? 0 : _ref1$minX,
1048
+ _ref1$maxX = _ref1.maxX,
1049
+ maxX = _ref1$maxX === void 0 ? width : _ref1$maxX;
1173
1050
  context.save();
1174
1051
  context.rect(minX, 0, maxX - minX, columnHeaderHeight);
1175
1052
  context.clip();
@@ -1236,32 +1113,26 @@ export class GridRenderer {
1236
1113
  context.restore();
1237
1114
  }
1238
1115
  drawRowHeaders(context, state) {
1239
- var {
1240
- mouseX,
1241
- mouseY,
1242
- metrics,
1243
- theme,
1244
- draggingRowSeparator
1245
- } = state;
1246
- var {
1247
- gridY,
1248
- rowHeaderWidth,
1249
- height,
1250
- visibleRows,
1251
- allRowHeights,
1252
- allRowYs
1253
- } = metrics;
1116
+ var mouseX = state.mouseX,
1117
+ mouseY = state.mouseY,
1118
+ metrics = state.metrics,
1119
+ theme = state.theme,
1120
+ draggingRowSeparator = state.draggingRowSeparator;
1121
+ var gridY = metrics.gridY,
1122
+ rowHeaderWidth = metrics.rowHeaderWidth,
1123
+ height = metrics.height,
1124
+ visibleRows = metrics.visibleRows,
1125
+ allRowHeights = metrics.allRowHeights,
1126
+ allRowYs = metrics.allRowYs;
1254
1127
  if (rowHeaderWidth <= 0) {
1255
1128
  return;
1256
1129
  }
1257
- var {
1258
- headerBackgroundColor,
1259
- headerColor,
1260
- headerHiddenSeparatorSize,
1261
- headerHiddenSeparatorHoverColor,
1262
- headerSeparatorColor,
1263
- headerSeparatorHoverColor
1264
- } = theme;
1130
+ var headerBackgroundColor = theme.headerBackgroundColor,
1131
+ headerColor = theme.headerColor,
1132
+ headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
1133
+ headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
1134
+ headerSeparatorColor = theme.headerSeparatorColor,
1135
+ headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
1265
1136
  var hiddenSeparatorWidth = rowHeaderWidth * 0.5;
1266
1137
  var hiddenX = rowHeaderWidth * 0.5 - hiddenSeparatorWidth * 0.5;
1267
1138
  context.save();
@@ -1312,9 +1183,9 @@ export class GridRenderer {
1312
1183
  context.fill();
1313
1184
  }
1314
1185
  if (headerSeparatorHoverColor) {
1315
- var {
1316
- index: highlightedSeparator = null
1317
- } = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {};
1186
+ var _ref10 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
1187
+ _ref10$index = _ref10.index,
1188
+ highlightedSeparator = _ref10$index === void 0 ? null : _ref10$index;
1318
1189
  if (highlightedSeparator == null && mouseX != null && mouseY != null) {
1319
1190
  highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
1320
1191
  }
@@ -1361,54 +1232,44 @@ export class GridRenderer {
1361
1232
  if (rowHeight <= 0) {
1362
1233
  return;
1363
1234
  }
1364
- var {
1365
- metrics,
1366
- model,
1367
- theme
1368
- } = state;
1369
- var {
1370
- modelRows,
1371
- rowHeaderWidth
1372
- } = metrics;
1235
+ var metrics = state.metrics,
1236
+ model = state.model,
1237
+ theme = state.theme;
1238
+ var modelRows = metrics.modelRows,
1239
+ rowHeaderWidth = metrics.rowHeaderWidth;
1373
1240
  var modelRow = getOrThrow(modelRows, row);
1374
1241
  var x = rowHeaderWidth - theme.cellHorizontalPadding;
1375
1242
  var y = rowY + rowHeight * 0.5;
1376
1243
  context.fillText(model.textForRowHeader(modelRow), x, y);
1377
1244
  }
1378
1245
  drawRowFooters(context, state) {
1379
- var {
1380
- mouseX,
1381
- mouseY,
1382
- metrics,
1383
- model,
1384
- theme,
1385
- draggingRowSeparator
1386
- } = state;
1387
- var {
1388
- gridY,
1389
- gridX,
1390
- maxX,
1391
- modelRows,
1392
- rowFooterWidth,
1393
- height,
1394
- verticalBarWidth,
1395
- visibleRows,
1396
- allRowHeights,
1397
- allRowYs,
1398
- width
1399
- } = metrics;
1246
+ var mouseX = state.mouseX,
1247
+ mouseY = state.mouseY,
1248
+ metrics = state.metrics,
1249
+ model = state.model,
1250
+ theme = state.theme,
1251
+ draggingRowSeparator = state.draggingRowSeparator;
1252
+ var gridY = metrics.gridY,
1253
+ gridX = metrics.gridX,
1254
+ maxX = metrics.maxX,
1255
+ modelRows = metrics.modelRows,
1256
+ rowFooterWidth = metrics.rowFooterWidth,
1257
+ height = metrics.height,
1258
+ verticalBarWidth = metrics.verticalBarWidth,
1259
+ visibleRows = metrics.visibleRows,
1260
+ allRowHeights = metrics.allRowHeights,
1261
+ allRowYs = metrics.allRowYs,
1262
+ width = metrics.width;
1400
1263
  if (rowFooterWidth <= 0) {
1401
1264
  return;
1402
1265
  }
1403
- var {
1404
- cellHorizontalPadding,
1405
- headerBackgroundColor,
1406
- headerColor,
1407
- headerHiddenSeparatorSize,
1408
- headerHiddenSeparatorHoverColor,
1409
- headerSeparatorColor,
1410
- headerSeparatorHoverColor
1411
- } = theme;
1266
+ var cellHorizontalPadding = theme.cellHorizontalPadding,
1267
+ headerBackgroundColor = theme.headerBackgroundColor,
1268
+ headerColor = theme.headerColor,
1269
+ headerHiddenSeparatorSize = theme.headerHiddenSeparatorSize,
1270
+ headerHiddenSeparatorHoverColor = theme.headerHiddenSeparatorHoverColor,
1271
+ headerSeparatorColor = theme.headerSeparatorColor,
1272
+ headerSeparatorHoverColor = theme.headerSeparatorHoverColor;
1412
1273
  var hiddenSeparatorWidth = rowFooterWidth * 0.5;
1413
1274
  var hiddenX = rowFooterWidth * 0.5 - hiddenSeparatorWidth * 0.5;
1414
1275
  var x = Math.min(gridX + maxX, width - rowFooterWidth - verticalBarWidth);
@@ -1460,9 +1321,9 @@ export class GridRenderer {
1460
1321
  context.fill();
1461
1322
  }
1462
1323
  if (headerSeparatorHoverColor) {
1463
- var {
1464
- index: highlightedSeparator = null
1465
- } = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {};
1324
+ var _ref11 = draggingRowSeparator !== null && draggingRowSeparator !== void 0 ? draggingRowSeparator : {},
1325
+ _ref11$index = _ref11.index,
1326
+ highlightedSeparator = _ref11$index === void 0 ? null : _ref11$index;
1466
1327
  if (highlightedSeparator == null && mouseX != null && mouseY != null) {
1467
1328
  highlightedSeparator = GridUtils.getRowSeparatorIndex(mouseX, mouseY, metrics, theme);
1468
1329
  }
@@ -1512,35 +1373,37 @@ export class GridRenderer {
1512
1373
  }
1513
1374
  drawSelectedRanges(context, state) {
1514
1375
  var viewport = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1515
- var {
1516
- cursorColumn: column,
1517
- cursorRow: row,
1518
- draggingRow,
1519
- draggingColumn,
1520
- editingCell,
1521
- metrics,
1522
- model,
1523
- selectedRanges,
1524
- theme
1525
- } = state;
1526
- var {
1527
- allColumnWidths,
1528
- allColumnXs,
1529
- allRowHeights,
1530
- allRowYs,
1531
- width,
1532
- height
1533
- } = metrics;
1534
- var {
1535
- left = metrics.left,
1536
- top = metrics.top,
1537
- right = metrics.right,
1538
- bottom = metrics.bottom,
1539
- minY = -10,
1540
- maxY = height + 10,
1541
- minX = -10,
1542
- maxX = width + 10
1543
- } = viewport;
1376
+ var column = state.cursorColumn,
1377
+ row = state.cursorRow,
1378
+ draggingRow = state.draggingRow,
1379
+ draggingColumn = state.draggingColumn,
1380
+ editingCell = state.editingCell,
1381
+ metrics = state.metrics,
1382
+ model = state.model,
1383
+ selectedRanges = state.selectedRanges,
1384
+ theme = state.theme;
1385
+ var allColumnWidths = metrics.allColumnWidths,
1386
+ allColumnXs = metrics.allColumnXs,
1387
+ allRowHeights = metrics.allRowHeights,
1388
+ allRowYs = metrics.allRowYs,
1389
+ width = metrics.width,
1390
+ height = metrics.height;
1391
+ var _viewport$left = viewport.left,
1392
+ left = _viewport$left === void 0 ? metrics.left : _viewport$left,
1393
+ _viewport$top = viewport.top,
1394
+ top = _viewport$top === void 0 ? metrics.top : _viewport$top,
1395
+ _viewport$right = viewport.right,
1396
+ right = _viewport$right === void 0 ? metrics.right : _viewport$right,
1397
+ _viewport$bottom = viewport.bottom,
1398
+ bottom = _viewport$bottom === void 0 ? metrics.bottom : _viewport$bottom,
1399
+ _viewport$minY = viewport.minY,
1400
+ minY = _viewport$minY === void 0 ? -10 : _viewport$minY,
1401
+ _viewport$maxY = viewport.maxY,
1402
+ maxY = _viewport$maxY === void 0 ? height + 10 : _viewport$maxY,
1403
+ _viewport$minX = viewport.minX,
1404
+ minX = _viewport$minX === void 0 ? -10 : _viewport$minX,
1405
+ _viewport$maxX = viewport.maxX,
1406
+ maxX = _viewport$maxX === void 0 ? width + 10 : _viewport$maxX;
1544
1407
  if (selectedRanges.length === 0) {
1545
1408
  return;
1546
1409
  }
@@ -1610,21 +1473,15 @@ export class GridRenderer {
1610
1473
  }
1611
1474
  }
1612
1475
  drawActiveCell(context, state, column, row) {
1613
- var {
1614
- metrics,
1615
- theme
1616
- } = state;
1617
- var {
1618
- scrollX,
1619
- scrollY,
1620
- allColumnWidths,
1621
- allColumnXs,
1622
- allRowHeights,
1623
- allRowYs
1624
- } = metrics;
1625
- var {
1626
- activeCellSelectionBorderWidth: borderWidth
1627
- } = theme;
1476
+ var metrics = state.metrics,
1477
+ theme = state.theme;
1478
+ var scrollX = metrics.scrollX,
1479
+ scrollY = metrics.scrollY,
1480
+ allColumnWidths = metrics.allColumnWidths,
1481
+ allColumnXs = metrics.allColumnXs,
1482
+ allRowHeights = metrics.allRowHeights,
1483
+ allRowYs = metrics.allRowYs;
1484
+ var borderWidth = theme.activeCellSelectionBorderWidth;
1628
1485
  var cellX = getOrThrow(allColumnXs, column);
1629
1486
  var cellY = getOrThrow(allRowYs, row);
1630
1487
  var cellW = getOrThrow(allColumnWidths, column);
@@ -1645,9 +1502,7 @@ export class GridRenderer {
1645
1502
  h -= borderWidth - y;
1646
1503
  y = borderWidth * 0.5;
1647
1504
  }
1648
- var {
1649
- lineWidth
1650
- } = context;
1505
+ var lineWidth = context.lineWidth;
1651
1506
  context.beginPath();
1652
1507
  context.lineWidth = borderWidth;
1653
1508
  context.strokeStyle = theme.selectionOutlineColor;
@@ -1682,51 +1537,45 @@ export class GridRenderer {
1682
1537
  }
1683
1538
  drawDraggingColumn(context, state) {
1684
1539
  var _modelColumns$get3;
1685
- var {
1686
- draggingColumn,
1687
- metrics,
1688
- mouseX,
1689
- theme,
1690
- model
1691
- } = state;
1540
+ var draggingColumn = state.draggingColumn,
1541
+ metrics = state.metrics,
1542
+ mouseX = state.mouseX,
1543
+ theme = state.theme,
1544
+ model = state.model;
1692
1545
  if (draggingColumn == null || mouseX == null) {
1693
1546
  return;
1694
1547
  }
1695
- var {
1696
- range: draggingColumnVisibleRange,
1697
- depth: draggingColumnDepth
1698
- } = draggingColumn;
1699
- var {
1700
- gridX,
1701
- gridY,
1702
- allColumnXs,
1703
- allColumnWidths,
1704
- height,
1705
- width,
1706
- columnHeaderMaxDepth,
1707
- columnHeaderHeight,
1708
- movedColumns,
1709
- modelColumns,
1710
- floatingLeftWidth
1711
- } = metrics;
1548
+ var draggingColumnVisibleRange = draggingColumn.range,
1549
+ draggingColumnDepth = draggingColumn.depth;
1550
+ var gridX = metrics.gridX,
1551
+ gridY = metrics.gridY,
1552
+ allColumnXs = metrics.allColumnXs,
1553
+ allColumnWidths = metrics.allColumnWidths,
1554
+ height = metrics.height,
1555
+ width = metrics.width,
1556
+ columnHeaderMaxDepth = metrics.columnHeaderMaxDepth,
1557
+ columnHeaderHeight = metrics.columnHeaderHeight,
1558
+ movedColumns = metrics.movedColumns,
1559
+ modelColumns = metrics.modelColumns,
1560
+ floatingLeftWidth = metrics.floatingLeftWidth;
1712
1561
  var draggingModelIndex = (_modelColumns$get3 = modelColumns.get(draggingColumnVisibleRange[0])) !== null && _modelColumns$get3 !== void 0 ? _modelColumns$get3 : GridUtils.getModelIndex(draggingColumnVisibleRange[0], movedColumns);
1713
1562
  var draggingGroup = model.getColumnHeaderGroup(draggingModelIndex, draggingColumnDepth);
1714
1563
  if (draggingColumnDepth > 0 && !draggingGroup) {
1715
1564
  return;
1716
1565
  }
1717
- var [startIndex, endIndex] = draggingColumnVisibleRange;
1566
+ var _draggingColumnVisibl = _slicedToArray(draggingColumnVisibleRange, 2),
1567
+ startIndex = _draggingColumnVisibl[0],
1568
+ endIndex = _draggingColumnVisibl[1];
1718
1569
  var originalLeft = getOrThrow(allColumnXs, startIndex);
1719
1570
  var originalRight = getOrThrow(allColumnXs, endIndex) + getOrThrow(allColumnWidths, endIndex);
1720
1571
  var originalWidth = originalRight - originalLeft;
1721
1572
  var draggingLeft = draggingColumn.left;
1722
- var {
1723
- backgroundColor,
1724
- font,
1725
- headerFont,
1726
- reorderOffset,
1727
- shadowBlur,
1728
- shadowColor
1729
- } = theme;
1573
+ var backgroundColor = theme.backgroundColor,
1574
+ font = theme.font,
1575
+ headerFont = theme.headerFont,
1576
+ reorderOffset = theme.reorderOffset,
1577
+ shadowBlur = theme.shadowBlur,
1578
+ shadowColor = theme.shadowColor;
1730
1579
  var columnHeaderOffset = (columnHeaderMaxDepth - draggingColumnDepth - 1) * columnHeaderHeight;
1731
1580
  context.save();
1732
1581
  context.translate(gridX, 0);
@@ -1790,33 +1639,27 @@ export class GridRenderer {
1790
1639
  context.restore();
1791
1640
  }
1792
1641
  drawDraggingRow(context, state) {
1793
- var {
1794
- draggingRow,
1795
- draggingRowOffset,
1796
- metrics,
1797
- mouseY,
1798
- theme
1799
- } = state;
1642
+ var draggingRow = state.draggingRow,
1643
+ draggingRowOffset = state.draggingRowOffset,
1644
+ metrics = state.metrics,
1645
+ mouseY = state.mouseY,
1646
+ theme = state.theme;
1800
1647
  if (draggingRow == null || mouseY == null) {
1801
1648
  return;
1802
1649
  }
1803
- var {
1804
- gridX,
1805
- gridY,
1806
- allRowYs,
1807
- allRowHeights,
1808
- width
1809
- } = metrics;
1650
+ var gridX = metrics.gridX,
1651
+ gridY = metrics.gridY,
1652
+ allRowYs = metrics.allRowYs,
1653
+ allRowHeights = metrics.allRowHeights,
1654
+ width = metrics.width;
1810
1655
  var y = getOrThrow(allRowYs, draggingRow);
1811
1656
  var rowHeight = getOrThrow(allRowHeights, draggingRow) + 1;
1812
- var {
1813
- backgroundColor,
1814
- font,
1815
- headerFont,
1816
- reorderOffset,
1817
- shadowBlur,
1818
- shadowColor
1819
- } = theme;
1657
+ var backgroundColor = theme.backgroundColor,
1658
+ font = theme.font,
1659
+ headerFont = theme.headerFont,
1660
+ reorderOffset = theme.reorderOffset,
1661
+ shadowBlur = theme.shadowBlur,
1662
+ shadowColor = theme.shadowColor;
1820
1663
  context.save();
1821
1664
  context.translate(0, gridY);
1822
1665
 
@@ -1848,49 +1691,43 @@ export class GridRenderer {
1848
1691
  context.restore();
1849
1692
  }
1850
1693
  drawScrollBars(context, state) {
1851
- var {
1852
- isDraggingHorizontalScrollBar,
1853
- isDraggingVerticalScrollBar,
1854
- isDragging,
1855
- metrics,
1856
- mouseX,
1857
- mouseY,
1858
- theme
1859
- } = state;
1694
+ var isDraggingHorizontalScrollBar = state.isDraggingHorizontalScrollBar,
1695
+ isDraggingVerticalScrollBar = state.isDraggingVerticalScrollBar,
1696
+ isDragging = state.isDragging,
1697
+ metrics = state.metrics,
1698
+ mouseX = state.mouseX,
1699
+ mouseY = state.mouseY,
1700
+ theme = state.theme;
1860
1701
  if (theme.scrollBarSize <= 0) {
1861
1702
  return;
1862
1703
  }
1863
- var {
1864
- width,
1865
- height,
1866
- handleHeight,
1867
- handleWidth,
1868
- scrollX,
1869
- scrollY,
1870
- hasHorizontalBar,
1871
- hasVerticalBar,
1872
- barWidth,
1873
- barHeight,
1874
- barLeft,
1875
- barTop
1876
- } = metrics;
1877
- var {
1878
- scrollBarBackgroundColor,
1879
- scrollBarHoverBackgroundColor,
1880
- scrollBarCasingColor,
1881
- scrollBarCornerColor,
1882
- scrollBarColor,
1883
- scrollBarHoverColor,
1884
- scrollBarActiveColor,
1885
- scrollBarSize,
1886
- scrollBarHoverSize,
1887
- scrollBarCasingWidth,
1888
- scrollBarSelectionTick,
1889
- scrollBarSelectionTickColor,
1890
- scrollBarActiveSelectionTickColor,
1891
- autoSelectRow,
1892
- autoSelectColumn
1893
- } = theme;
1704
+ var width = metrics.width,
1705
+ height = metrics.height,
1706
+ handleHeight = metrics.handleHeight,
1707
+ handleWidth = metrics.handleWidth,
1708
+ scrollX = metrics.scrollX,
1709
+ scrollY = metrics.scrollY,
1710
+ hasHorizontalBar = metrics.hasHorizontalBar,
1711
+ hasVerticalBar = metrics.hasVerticalBar,
1712
+ barWidth = metrics.barWidth,
1713
+ barHeight = metrics.barHeight,
1714
+ barLeft = metrics.barLeft,
1715
+ barTop = metrics.barTop;
1716
+ var scrollBarBackgroundColor = theme.scrollBarBackgroundColor,
1717
+ scrollBarHoverBackgroundColor = theme.scrollBarHoverBackgroundColor,
1718
+ scrollBarCasingColor = theme.scrollBarCasingColor,
1719
+ scrollBarCornerColor = theme.scrollBarCornerColor,
1720
+ scrollBarColor = theme.scrollBarColor,
1721
+ scrollBarHoverColor = theme.scrollBarHoverColor,
1722
+ scrollBarActiveColor = theme.scrollBarActiveColor,
1723
+ scrollBarSize = theme.scrollBarSize,
1724
+ scrollBarHoverSize = theme.scrollBarHoverSize,
1725
+ scrollBarCasingWidth = theme.scrollBarCasingWidth,
1726
+ scrollBarSelectionTick = theme.scrollBarSelectionTick,
1727
+ scrollBarSelectionTickColor = theme.scrollBarSelectionTickColor,
1728
+ scrollBarActiveSelectionTickColor = theme.scrollBarActiveSelectionTickColor,
1729
+ autoSelectRow = theme.autoSelectRow,
1730
+ autoSelectColumn = theme.autoSelectColumn;
1894
1731
  var isInbounds = mouseX != null && mouseY != null && mouseX <= width && mouseY <= height;
1895
1732
  var isVerticalBarHover = isDraggingVerticalScrollBar || hasVerticalBar && !isDraggingHorizontalScrollBar && !isDragging && mouseX != null && mouseY != null && mouseX >= width - scrollBarHoverSize && mouseY >= barTop && isInbounds;
1896
1733
  var isHorizontalBarHover = isDraggingHorizontalScrollBar || hasHorizontalBar && !isDraggingVerticalScrollBar && !isDragging && !isVerticalBarHover &&
@@ -1930,14 +1767,10 @@ export class GridRenderer {
1930
1767
  if (!autoSelectRow && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
1931
1768
  context.fillStyle = scrollBarSelectionTickColor;
1932
1769
  // Scrollbar Selection Tick
1933
- var {
1934
- selectedRanges,
1935
- cursorColumn
1936
- } = state;
1937
- var {
1938
- lastLeft,
1939
- columnCount
1940
- } = metrics;
1770
+ var selectedRanges = state.selectedRanges,
1771
+ cursorColumn = state.cursorColumn;
1772
+ var lastLeft = metrics.lastLeft,
1773
+ columnCount = metrics.columnCount;
1941
1774
  var filteredRanges = [...selectedRanges].filter(value => value.startColumn != null && value.endColumn != null);
1942
1775
  var sortedRanges = filteredRanges.map(value => [value.startColumn, value.endColumn]).sort(GridUtils.compareRanges);
1943
1776
  var mergedRanges = GridUtils.mergeSortedRanges(sortedRanges);
@@ -1992,14 +1825,10 @@ export class GridRenderer {
1992
1825
  context.fillRect(_x5 + scrollBarCasingWidth, _y9, vScrollBarSize - scrollBarCasingWidth, handleHeight);
1993
1826
  if (!autoSelectColumn && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
1994
1827
  // Scrollbar Selection Tick
1995
- var {
1996
- selectedRanges: _selectedRanges,
1997
- cursorRow
1998
- } = state;
1999
- var {
2000
- lastTop,
2001
- rowCount
2002
- } = metrics;
1828
+ var _selectedRanges = state.selectedRanges,
1829
+ cursorRow = state.cursorRow;
1830
+ var lastTop = metrics.lastTop,
1831
+ rowCount = metrics.rowCount;
2003
1832
  var getTickY = index => {
2004
1833
  if (index <= lastTop) {
2005
1834
  return index / lastTop * (barHeight - handleHeight);