@deephaven/grid 1.27.5-alpha-nodehttp2-config3.276eddc.0 → 1.29.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 (55) hide show
  1. package/dist/Grid.d.ts +102 -43
  2. package/dist/Grid.d.ts.map +1 -1
  3. package/dist/Grid.js +442 -390
  4. package/dist/Grid.js.map +1 -1
  5. package/dist/GridA11yFallback.d.ts +26 -0
  6. package/dist/GridA11yFallback.d.ts.map +1 -0
  7. package/dist/GridA11yFallback.js +115 -0
  8. package/dist/GridA11yFallback.js.map +1 -0
  9. package/dist/GridA11yUtils.d.ts +89 -0
  10. package/dist/GridA11yUtils.d.ts.map +1 -0
  11. package/dist/GridA11yUtils.js +321 -0
  12. package/dist/GridA11yUtils.js.map +1 -0
  13. package/dist/GridRenderer.d.ts +9 -0
  14. package/dist/GridRenderer.d.ts.map +1 -1
  15. package/dist/GridRenderer.js +187 -39
  16. package/dist/GridRenderer.js.map +1 -1
  17. package/dist/GridRendererTypes.d.ts +3 -4
  18. package/dist/GridRendererTypes.d.ts.map +1 -1
  19. package/dist/GridRendererTypes.js.map +1 -1
  20. package/dist/GridSelectionUtils.d.ts +98 -0
  21. package/dist/GridSelectionUtils.d.ts.map +1 -0
  22. package/dist/GridSelectionUtils.js +180 -0
  23. package/dist/GridSelectionUtils.js.map +1 -0
  24. package/dist/RangedSelection.d.ts +120 -0
  25. package/dist/RangedSelection.d.ts.map +1 -0
  26. package/dist/RangedSelection.js +375 -0
  27. package/dist/RangedSelection.js.map +1 -0
  28. package/dist/Selection.d.ts +221 -0
  29. package/dist/Selection.d.ts.map +1 -0
  30. package/dist/Selection.js +71 -0
  31. package/dist/Selection.js.map +1 -0
  32. package/dist/index.d.ts +6 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +6 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/key-handlers/EditKeyHandler.js +3 -3
  37. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  38. package/dist/key-handlers/SelectionKeyHandler.d.ts +1 -0
  39. package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
  40. package/dist/key-handlers/SelectionKeyHandler.js +144 -138
  41. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  42. package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
  43. package/dist/key-handlers/TreeKeyHandler.js +6 -3
  44. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  45. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +1 -0
  46. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  47. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +7 -0
  48. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  49. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +0 -9
  50. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
  51. package/dist/mouse-handlers/GridSelectionMouseHandler.js +41 -39
  52. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  53. package/dist/mouse-handlers/GridTokenMouseHandler.js +4 -1
  54. package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
  55. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../src/GridRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../src/GridRenderer.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import GridColumnSeparatorMouseHandler from "./mouse-handlers/GridColumnSeparato
18
18
  import { DEFAULT_FONT_WIDTH } from "./GridRendererTypes.js";
19
19
  import DataBarCellRenderer from "./DataBarCellRenderer.js";
20
20
  import TextCellRenderer from "./TextCellRenderer.js";
21
+ import { isTickRangeSelection } from "./Selection.js";
21
22
  /* eslint react/destructuring-assignment: "off" */
22
23
  /* eslint class-methods-use-this: "off" */
23
24
  /* eslint no-param-reassign: "off" */
@@ -266,6 +267,7 @@ export class GridRenderer {
266
267
  if (floatingLeftColumnCount > 0) {
267
268
  this.drawSelectedRanges(context, state, {
268
269
  left: 0,
270
+ right: floatingLeftColumnCount - 1,
269
271
  maxX: getOrThrow(allColumnXs, floatingLeftColumnCount - 1) + getOrThrow(allColumnWidths, floatingLeftColumnCount - 1)
270
272
  });
271
273
  }
@@ -385,6 +387,7 @@ export class GridRenderer {
385
387
  maxX: floatingRightColumnCount > 0 && allColumnXs.has(columnCount - floatingRightColumnCount - 1) ? getOrThrow(allColumnXs, columnCount - floatingRightColumnCount - 1) + getOrThrow(allColumnWidths, columnCount - floatingRightColumnCount - 1) - 0.5 : width + 10,
386
388
  maxY: floatingBottomRowCount > 0 && allRowYs.has(rowCount - floatingBottomRowCount - 1) ? getOrThrow(allRowYs, rowCount - floatingBottomRowCount - 1) + getOrThrow(allRowHeights, rowCount - floatingBottomRowCount - 1) - 0.5 : height + 10
387
389
  });
390
+ this.drawGestureDragOutline(context, state);
388
391
  }
389
392
  drawRowStripes(context, state) {
390
393
  var metrics = state.metrics,
@@ -545,25 +548,24 @@ export class GridRenderer {
545
548
  }
546
549
  drawMouseRowHoverForRow(context, state, row) {
547
550
  var metrics = state.metrics,
548
- selectedRanges = state.selectedRanges,
551
+ selection = state.selection,
549
552
  theme = state.theme;
550
553
  var allRowHeights = metrics.allRowHeights,
551
554
  allRowYs = metrics.allRowYs,
555
+ columnsForRender = metrics.columnsForRender,
552
556
  maxX = metrics.maxX;
553
557
  var y = getOrThrow(allRowYs, row);
554
558
  var rowHeight = getOrThrow(allRowHeights, row);
555
559
  if (theme.rowHoverBackgroundColor != null) {
556
560
  context.fillStyle = theme.rowHoverBackgroundColor;
557
561
  }
558
- for (var i = 0; i < selectedRanges.length; i += 1) {
559
- var _selectedRanges$i = selectedRanges[i],
560
- startRow = _selectedRanges$i.startRow,
561
- endRow = _selectedRanges$i.endRow;
562
- if (startRow != null && endRow != null && startRow <= row && endRow >= row) {
563
- if (theme.selectedRowHoverBackgroundColor != null) {
562
+ // A selected cell promotes the whole row to the selected hover background color.
563
+ if (theme.selectedRowHoverBackgroundColor != null) {
564
+ for (var i = 0; i < columnsForRender.length; i += 1) {
565
+ if (selection.isCellSelected(columnsForRender[i], row)) {
564
566
  context.fillStyle = theme.selectedRowHoverBackgroundColor;
567
+ break;
565
568
  }
566
- break;
567
569
  }
568
570
  }
569
571
  context.fillRect(0, y, maxX, rowHeight);
@@ -1373,15 +1375,15 @@ export class GridRenderer {
1373
1375
  }
1374
1376
  drawSelectedRanges(context, state) {
1375
1377
  var viewport = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1376
- var column = state.cursorColumn,
1377
- row = state.cursorRow,
1378
- draggingRow = state.draggingRow,
1378
+ var draggingRow = state.draggingRow,
1379
1379
  draggingColumn = state.draggingColumn,
1380
1380
  editingCell = state.editingCell,
1381
1381
  metrics = state.metrics,
1382
1382
  model = state.model,
1383
- selectedRanges = state.selectedRanges,
1383
+ selection = state.selection,
1384
1384
  theme = state.theme;
1385
+ var column = selection.cursorColumn,
1386
+ row = selection.cursorRow;
1385
1387
  var allColumnWidths = metrics.allColumnWidths,
1386
1388
  allColumnXs = metrics.allColumnXs,
1387
1389
  allRowHeights = metrics.allRowHeights,
@@ -1404,7 +1406,7 @@ export class GridRenderer {
1404
1406
  minX = _viewport$minX === void 0 ? -10 : _viewport$minX,
1405
1407
  _viewport$maxX = viewport.maxX,
1406
1408
  maxX = _viewport$maxX === void 0 ? width + 10 : _viewport$maxX;
1407
- if (selectedRanges.length === 0) {
1409
+ if (selection.isEmpty()) {
1408
1410
  return;
1409
1411
  }
1410
1412
  var isCursorVisible = isEditableGridModel(model) && model.isEditable && editingCell == null && draggingRow == null && draggingColumn == null && column != null && row != null && allColumnXs.has(column) && allRowYs.has(row);
@@ -1421,23 +1423,103 @@ export class GridRenderer {
1421
1423
  context.clip('evenodd');
1422
1424
  }
1423
1425
 
1424
- // Draw selection ranges
1426
+ // Column bounds are constant across all rows for full-row selection.
1427
+ // Guard against missing keys during resize/initial-load when allColumnXs may be empty.
1428
+ var rowSelectionX = allColumnXs.has(left) ? Math.max(Math.round(getOrThrow(allColumnXs, left)) + 0.5, minX) : maxX;
1429
+ var rowSelectionEndX = allColumnXs.has(right) && allColumnWidths.has(right) ? Math.min(Math.round(getOrThrow(allColumnXs, right) + getOrThrow(allColumnWidths, right)) - 0.5, maxX) : minX;
1425
1430
  context.beginPath();
1426
- for (var i = 0; i < selectedRanges.length; i += 1) {
1427
- var selectedRange = selectedRanges[i];
1428
- var startColumn = selectedRange.startColumn !== null ? selectedRange.startColumn : left;
1429
- var startRow = selectedRange.startRow !== null ? selectedRange.startRow : top;
1430
- var endColumn = selectedRange.endColumn !== null ? selectedRange.endColumn : right;
1431
- var endRow = selectedRange.endRow !== null ? selectedRange.endRow : bottom;
1432
- if (endRow >= top && bottom >= startRow && endColumn >= left && right >= startColumn) {
1433
- // Need to offset the x/y coordinates so that the line draws nice and crisp
1434
- var _x4 = startColumn >= left && allColumnXs.has(startColumn) ? Math.round(getOrThrow(allColumnXs, startColumn)) + 0.5 : minX;
1435
- var _y8 = startRow >= top && allRowYs.has(startRow) ? Math.max(Math.round(getOrThrow(allRowYs, startRow)) + 0.5, 0.5) : minY;
1436
- var endX = endColumn <= right && allColumnXs.has(endColumn) ? Math.round(getOrThrow(allColumnXs, endColumn) + getOrThrow(allColumnWidths, endColumn)) - 0.5 : maxX;
1437
- var endY = endRow <= bottom && allRowYs.has(endRow) ? Math.round(getOrThrow(allRowYs, endRow) + getOrThrow(allRowHeights, endRow)) - 0.5 : maxY;
1438
- context.rect(_x4, _y8, endX - _x4, endY - _y8);
1431
+ // A full-row run is a special case of a partial run whose column list is a
1432
+ // single full-width entry, so both cases share one coalescer below. Reused
1433
+ // by reference so the equality check short-circuits for consecutive full rows.
1434
+ var FULL_ROW_COLS = rowSelectionEndX > rowSelectionX ? [{
1435
+ x: rowSelectionX,
1436
+ endX: rowSelectionEndX
1437
+ }] : [];
1438
+
1439
+ // Coalesce vertically-adjacent rows sharing an identical column signature
1440
+ // into one rect per column run rather than rendering strokes between each row.
1441
+ var runStartY = null;
1442
+ var runEndY = 0;
1443
+ var runCols = [];
1444
+ var colsEqual = (a, b) => {
1445
+ if (a === b) return true;
1446
+ if (a.length !== b.length) return false;
1447
+ for (var i = 0; i < a.length; i += 1) {
1448
+ if (a[i].x !== b[i].x || a[i].endX !== b[i].endX) return false;
1439
1449
  }
1450
+ return true;
1451
+ };
1452
+ var flushRun = () => {
1453
+ if (runStartY != null) {
1454
+ for (var i = 0; i < runCols.length; i += 1) {
1455
+ var _runCols$i = runCols[i],
1456
+ _x4 = _runCols$i.x,
1457
+ endX = _runCols$i.endX;
1458
+ context.rect(_x4, runStartY, endX - _x4, runEndY - runStartY);
1459
+ }
1460
+ }
1461
+ runStartY = null;
1462
+ runCols = [];
1463
+ };
1464
+ var _loop = function _loop() {
1465
+ var rowY = allRowYs.get(r);
1466
+ var rowH = allRowHeights.get(r);
1467
+ if (rowY == null || rowH == null) {
1468
+ flushRun();
1469
+ // eslint-disable-next-line no-continue
1470
+ return 0; // continue
1471
+ }
1472
+ var y = Math.max(Math.round(rowY) + 0.5, 0.5);
1473
+ var endY = Math.round(rowY + rowH) - 0.5;
1474
+ if (endY < minY || y > maxY) {
1475
+ flushRun();
1476
+ // eslint-disable-next-line no-continue
1477
+ return 0; // continue
1478
+ }
1479
+ var rowCols;
1480
+ if (selection.isRowSelected(r)) {
1481
+ rowCols = FULL_ROW_COLS;
1482
+ } else {
1483
+ var built = [];
1484
+ var pushRun = (runStartCol, runEndCol) => {
1485
+ var x = Math.max(Math.round(getOrThrow(allColumnXs, runStartCol)) + 0.5, minX);
1486
+ var endX = Math.min(Math.round(getOrThrow(allColumnXs, runEndCol) + getOrThrow(allColumnWidths, runEndCol)) - 0.5, maxX);
1487
+ if (endX > x) built.push({
1488
+ x,
1489
+ endX
1490
+ });
1491
+ };
1492
+ var runStart = null;
1493
+ for (var c = left; c <= right; c += 1) {
1494
+ if (selection.isCellSelected(c, r)) {
1495
+ if (runStart === null) runStart = c;
1496
+ } else if (runStart !== null) {
1497
+ pushRun(runStart, c - 1);
1498
+ runStart = null;
1499
+ }
1500
+ }
1501
+ if (runStart !== null) {
1502
+ pushRun(runStart, right);
1503
+ }
1504
+ rowCols = built;
1505
+ }
1506
+ if (rowCols.length === 0) {
1507
+ flushRun();
1508
+ } else if (runStartY != null && colsEqual(rowCols, runCols)) {
1509
+ runEndY = endY;
1510
+ } else {
1511
+ flushRun();
1512
+ runCols = rowCols;
1513
+ runStartY = y;
1514
+ runEndY = endY;
1515
+ }
1516
+ },
1517
+ _ret;
1518
+ for (var r = top; r <= bottom; r += 1) {
1519
+ _ret = _loop();
1520
+ if (_ret === 0) continue;
1440
1521
  }
1522
+ flushRun();
1441
1523
 
1442
1524
  /**
1443
1525
  * Create the path, then draw it once. Fill and
@@ -1511,6 +1593,78 @@ export class GridRenderer {
1511
1593
  context.lineWidth = lineWidth;
1512
1594
  }
1513
1595
 
1596
+ /**
1597
+ * Draws an outline around the in-flight ctrl+click / ctrl+shift+click drag
1598
+ * rectangle. Uses `selection.cursor` (mouse-down anchor) and
1599
+ * `selection.selectionEnd` (current drag position) for the bounds. For row
1600
+ * selection themes only the top and bottom horizontal strokes are drawn
1601
+ * (row-boundary preview); for column selection only left/right; for cell
1602
+ * selection all four sides.
1603
+ */
1604
+ drawGestureDragOutline(context, state) {
1605
+ var gestureMode = state.gestureMode,
1606
+ selection = state.selection,
1607
+ metrics = state.metrics,
1608
+ theme = state.theme;
1609
+ if (gestureMode !== 'add' && gestureMode !== 'maximize') return;
1610
+ var cursorRow = selection.cursorRow,
1611
+ cursorColumn = selection.cursorColumn,
1612
+ selectionEndRow = selection.selectionEndRow,
1613
+ selectionEndColumn = selection.selectionEndColumn;
1614
+ if (cursorRow == null || cursorColumn == null || selectionEndRow == null || selectionEndColumn == null) {
1615
+ return;
1616
+ }
1617
+ var allColumnXs = metrics.allColumnXs,
1618
+ allColumnWidths = metrics.allColumnWidths,
1619
+ allRowYs = metrics.allRowYs,
1620
+ allRowHeights = metrics.allRowHeights,
1621
+ maxX = metrics.maxX,
1622
+ maxY = metrics.maxY;
1623
+ var _theme$autoSelectRow = theme.autoSelectRow,
1624
+ autoSelectRow = _theme$autoSelectRow === void 0 ? false : _theme$autoSelectRow,
1625
+ _theme$autoSelectColu = theme.autoSelectColumn,
1626
+ autoSelectColumn = _theme$autoSelectColu === void 0 ? false : _theme$autoSelectColu;
1627
+ var topRow = Math.min(cursorRow, selectionEndRow);
1628
+ var bottomRow = Math.max(cursorRow, selectionEndRow);
1629
+ var leftCol = Math.min(cursorColumn, selectionEndColumn);
1630
+ var rightCol = Math.max(cursorColumn, selectionEndColumn);
1631
+ var topY = allRowYs.get(topRow);
1632
+ var bottomRowY = allRowYs.get(bottomRow);
1633
+ var bottomRowH = allRowHeights.get(bottomRow);
1634
+ var leftX = allColumnXs.get(leftCol);
1635
+ var rightColX = allColumnXs.get(rightCol);
1636
+ var rightColW = allColumnWidths.get(rightCol);
1637
+ if (topY == null || bottomRowY == null || bottomRowH == null || leftX == null || rightColX == null || rightColW == null) {
1638
+ return;
1639
+ }
1640
+ var y0 = Math.round(topY) + 0.5;
1641
+ var y1 = Math.round(bottomRowY + bottomRowH) - 0.5;
1642
+ var x0 = autoSelectRow ? 0 : Math.round(leftX) + 0.5;
1643
+ var x1 = autoSelectRow ? maxX : Math.round(rightColX + rightColW) - 0.5;
1644
+ context.save();
1645
+ context.beginPath();
1646
+ context.strokeStyle = theme.selectionOutlineColor;
1647
+ context.lineWidth = 1;
1648
+ // Top / bottom horizontal strokes — always drawn (row + cell modes).
1649
+ if (!autoSelectColumn) {
1650
+ context.moveTo(x0, y0);
1651
+ context.lineTo(x1, y0);
1652
+ context.moveTo(x0, y1);
1653
+ context.lineTo(x1, y1);
1654
+ }
1655
+ // Left / right vertical strokes — cell and column modes only.
1656
+ if (!autoSelectRow) {
1657
+ var yTop = autoSelectColumn ? 0 : y0;
1658
+ var yBottom = autoSelectColumn ? maxY : y1;
1659
+ context.moveTo(x0, yTop);
1660
+ context.lineTo(x0, yBottom);
1661
+ context.moveTo(x1, yTop);
1662
+ context.lineTo(x1, yBottom);
1663
+ }
1664
+ context.stroke();
1665
+ context.restore();
1666
+ }
1667
+
1514
1668
  /**
1515
1669
  * Draws a rounded rectangle using the current state of the canvas.
1516
1670
  *
@@ -1767,13 +1921,10 @@ export class GridRenderer {
1767
1921
  if (!autoSelectRow && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
1768
1922
  context.fillStyle = scrollBarSelectionTickColor;
1769
1923
  // Scrollbar Selection Tick
1770
- var selectedRanges = state.selectedRanges,
1771
- cursorColumn = state.cursorColumn;
1924
+ var cursorColumn = state.selection.cursorColumn;
1772
1925
  var lastLeft = metrics.lastLeft,
1773
1926
  columnCount = metrics.columnCount;
1774
- var filteredRanges = [...selectedRanges].filter(value => value.startColumn != null && value.endColumn != null);
1775
- var sortedRanges = filteredRanges.map(value => [value.startColumn, value.endColumn]).sort(GridUtils.compareRanges);
1776
- var mergedRanges = GridUtils.mergeSortedRanges(sortedRanges);
1927
+ var mergedRanges = isTickRangeSelection(state.selection) ? state.selection.getColumnTickRanges() : [];
1777
1928
  var getTickX = index => {
1778
1929
  if (index <= lastLeft) {
1779
1930
  return index / lastLeft * (barWidth - handleWidth);
@@ -1804,7 +1955,7 @@ export class GridRenderer {
1804
1955
  }
1805
1956
  if (hasVerticalBar) {
1806
1957
  var _x5 = width - barLeft - vScrollBarSize;
1807
- var _y9 = scrollY;
1958
+ var _y8 = scrollY;
1808
1959
 
1809
1960
  // scrollbar casing
1810
1961
  context.fillStyle = scrollBarCasingColor;
@@ -1822,11 +1973,10 @@ export class GridRenderer {
1822
1973
  } else {
1823
1974
  context.fillStyle = scrollBarColor;
1824
1975
  }
1825
- context.fillRect(_x5 + scrollBarCasingWidth, _y9, vScrollBarSize - scrollBarCasingWidth, handleHeight);
1976
+ context.fillRect(_x5 + scrollBarCasingWidth, _y8, vScrollBarSize - scrollBarCasingWidth, handleHeight);
1826
1977
  if (!autoSelectColumn && scrollBarSelectionTick && scrollBarSelectionTickColor != null && scrollBarActiveSelectionTickColor != null) {
1827
1978
  // Scrollbar Selection Tick
1828
- var _selectedRanges = state.selectedRanges,
1829
- cursorRow = state.cursorRow;
1979
+ var cursorRow = state.selection.cursorRow;
1830
1980
  var lastTop = metrics.lastTop,
1831
1981
  rowCount = metrics.rowCount;
1832
1982
  var getTickY = index => {
@@ -1836,9 +1986,7 @@ export class GridRenderer {
1836
1986
  return barHeight - handleHeight + (index - lastTop) / (rowCount - lastTop) * handleHeight;
1837
1987
  };
1838
1988
  context.fillStyle = scrollBarSelectionTickColor;
1839
- var _filteredRanges = [..._selectedRanges].filter(value => value.startRow != null && value.endRow != null);
1840
- var _sortedRanges = _filteredRanges.map(value => [value.startRow, value.endRow]).sort(GridUtils.compareRanges);
1841
- var _mergedRanges = GridUtils.mergeSortedRanges(_sortedRanges);
1989
+ var _mergedRanges = isTickRangeSelection(state.selection) ? state.selection.getRowTickRanges() : [];
1842
1990
  for (var _i0 = 0; _i0 < _mergedRanges.length; _i0 += 1) {
1843
1991
  var _range = _mergedRanges[_i0];
1844
1992
  var startRow = _range[0];