@deephaven/grid 0.31.2-beta.6 → 0.31.2-beta.8

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 (45) hide show
  1. package/dist/Grid.d.ts +13 -4
  2. package/dist/Grid.d.ts.map +1 -1
  3. package/dist/Grid.js +77 -53
  4. package/dist/Grid.js.map +1 -1
  5. package/dist/GridMetricCalculator.d.ts +1 -9
  6. package/dist/GridMetricCalculator.d.ts.map +1 -1
  7. package/dist/GridMetricCalculator.js +4 -17
  8. package/dist/GridMetricCalculator.js.map +1 -1
  9. package/dist/GridModel.d.ts +10 -0
  10. package/dist/GridModel.d.ts.map +1 -1
  11. package/dist/GridModel.js +40 -4
  12. package/dist/GridModel.js.map +1 -1
  13. package/dist/GridRenderer.d.ts +14 -2
  14. package/dist/GridRenderer.d.ts.map +1 -1
  15. package/dist/GridRenderer.js +159 -18
  16. package/dist/GridRenderer.js.map +1 -1
  17. package/dist/GridTheme.d.ts +1 -0
  18. package/dist/GridTheme.d.ts.map +1 -1
  19. package/dist/GridTheme.js +1 -0
  20. package/dist/GridTheme.js.map +1 -1
  21. package/dist/GridUtils.d.ts +27 -0
  22. package/dist/GridUtils.d.ts.map +1 -1
  23. package/dist/GridUtils.js +39 -0
  24. package/dist/GridUtils.js.map +1 -1
  25. package/dist/MockGridModel.d.ts +8 -8
  26. package/dist/MockGridModel.d.ts.map +1 -1
  27. package/dist/MockGridModel.js.map +1 -1
  28. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
  29. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +1 -1
  30. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  31. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  32. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +1 -1
  33. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  34. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
  35. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +1 -1
  36. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  37. package/dist/mouse-handlers/GridTokenMouseHandler.d.ts +24 -0
  38. package/dist/mouse-handlers/GridTokenMouseHandler.d.ts.map +1 -0
  39. package/dist/mouse-handlers/GridTokenMouseHandler.js +143 -0
  40. package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -0
  41. package/dist/mouse-handlers/index.d.ts +1 -0
  42. package/dist/mouse-handlers/index.d.ts.map +1 -1
  43. package/dist/mouse-handlers/index.js +1 -0
  44. package/dist/mouse-handlers/index.js.map +1 -1
  45. package/package.json +5 -4
package/dist/Grid.d.ts CHANGED
@@ -4,8 +4,8 @@ import GridModel from './GridModel';
4
4
  import GridMouseHandler, { GridMouseEvent, GridMouseHandlerFunctionName } from './GridMouseHandler';
5
5
  import { GridTheme as GridThemeType } from './GridTheme';
6
6
  import GridRange, { GridRangeIndex, SELECTION_DIRECTION } from './GridRange';
7
- import GridRenderer, { EditingCell, EditingCellTextSelectionRange } from './GridRenderer';
8
- import { GridPoint } from './GridUtils';
7
+ import GridRenderer, { EditingCell, EditingCellTextSelectionRange, GridRenderState } from './GridRenderer';
8
+ import { GridPoint, Token } from './GridUtils';
9
9
  import { GridSeparator } from './mouse-handlers';
10
10
  import './Grid.scss';
11
11
  import KeyHandler, { GridKeyboardEvent } from './KeyHandler';
@@ -30,6 +30,7 @@ export type GridProps = typeof Grid.defaultProps & {
30
30
  onMoveColumnComplete?: (movedColumns: readonly MoveOperation[]) => void;
31
31
  onMoveRowComplete?: (movedRows: readonly MoveOperation[]) => void;
32
32
  onViewChanged?: (metrics: GridMetrics) => void;
33
+ onTokenClicked?: (token: Token) => void;
33
34
  renderer?: GridRenderer;
34
35
  stateOverride?: Record<string, unknown>;
35
36
  theme?: Partial<GridThemeType>;
@@ -97,6 +98,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
97
98
  onMovedRowsChanged: () => void;
98
99
  onMoveRowComplete: () => void;
99
100
  onViewChanged: () => void;
101
+ onTokenClicked: (token: Token) => void;
100
102
  stateOverride: Record<string, unknown>;
101
103
  theme: Partial<GridThemeType>;
102
104
  };
@@ -111,6 +113,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
111
113
  autoSizeRows: boolean;
112
114
  backgroundColor: string;
113
115
  textColor: string;
116
+ hyperlinkColor: string;
114
117
  black: string;
115
118
  white: string;
116
119
  cellHorizontalPadding: number;
@@ -195,6 +198,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
195
198
  animationFrame: number | null;
196
199
  prevMetrics: GridMetrics | null;
197
200
  metrics: GridMetrics | null;
201
+ renderState: GridRenderState;
198
202
  documentCursor: string | null;
199
203
  dragTimer: ReturnType<typeof setTimeout> | null;
200
204
  keyHandlers: readonly KeyHandler[];
@@ -246,7 +250,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
246
250
  initContext(): void;
247
251
  requestUpdateCanvas(): void;
248
252
  updateCanvas(metrics?: GridMetrics): void;
249
- updateCanvasScale(): void;
253
+ private updateCanvasScale;
250
254
  updateScrollBounds(): void;
251
255
  updateMetrics(state?: Readonly<GridState>): GridMetrics;
252
256
  /**
@@ -382,7 +386,7 @@ declare class Grid extends PureComponent<GridProps, GridState> {
382
386
  * must be very quick.
383
387
  * @param metrics Metrics to use for rendering the grid
384
388
  */
385
- drawCanvas(metrics?: GridMetrics): void;
389
+ private drawCanvas;
386
390
  /**
387
391
  * Set focus to this grid element
388
392
  */
@@ -443,6 +447,11 @@ declare class Grid extends PureComponent<GridProps, GridState> {
443
447
  fillRange?: boolean;
444
448
  }): void;
445
449
  renderInputField(): ReactNode;
450
+ /**
451
+ * Gets the render state
452
+ * @returns The render state
453
+ */
454
+ updateRenderState(): GridRenderState;
446
455
  render(): ReactNode;
447
456
  }
448
457
  export default Grid;
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../src/Grid.tsx"],"names":[],"mappings":"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"}
package/dist/Grid.js CHANGED
@@ -10,13 +10,13 @@ import React, { PureComponent } from 'react';
10
10
  import classNames from 'classnames';
11
11
  import memoize from 'memoize-one';
12
12
  import clamp from 'lodash.clamp';
13
- import { EMPTY_ARRAY } from '@deephaven/utils';
13
+ import { assertNotNull, EMPTY_ARRAY } from '@deephaven/utils';
14
14
  import GridMetricCalculator from "./GridMetricCalculator.js";
15
15
  import GridTheme from "./GridTheme.js";
16
16
  import GridRange, { SELECTION_DIRECTION } from "./GridRange.js";
17
17
  import GridRenderer from "./GridRenderer.js";
18
- import GridUtils from "./GridUtils.js";
19
- import { GridSelectionMouseHandler, GridColumnMoveMouseHandler, GridColumnSeparatorMouseHandler, GridHorizontalScrollBarMouseHandler, GridRowMoveMouseHandler, GridRowSeparatorMouseHandler, GridRowTreeMouseHandler, GridScrollBarCornerMouseHandler, GridVerticalScrollBarMouseHandler, EditMouseHandler } from "./mouse-handlers/index.js";
18
+ import GridUtils, { isLinkToken } from "./GridUtils.js";
19
+ import { GridSelectionMouseHandler, GridColumnMoveMouseHandler, GridColumnSeparatorMouseHandler, GridHorizontalScrollBarMouseHandler, GridRowMoveMouseHandler, GridRowSeparatorMouseHandler, GridRowTreeMouseHandler, GridScrollBarCornerMouseHandler, GridVerticalScrollBarMouseHandler, EditMouseHandler, GridTokenMouseHandler } from "./mouse-handlers/index.js";
20
20
  import "./Grid.css";
21
21
  import { EditKeyHandler, PasteKeyHandler, SelectionKeyHandler, TreeKeyHandler } from "./key-handlers/index.js";
22
22
  import CellInputField from "./CellInputField.js";
@@ -84,6 +84,7 @@ class Grid extends PureComponent {
84
84
  _defineProperty(this, "animationFrame", void 0);
85
85
  _defineProperty(this, "prevMetrics", void 0);
86
86
  _defineProperty(this, "metrics", void 0);
87
+ _defineProperty(this, "renderState", void 0);
87
88
  _defineProperty(this, "documentCursor", void 0);
88
89
  _defineProperty(this, "dragTimer", void 0);
89
90
  _defineProperty(this, "keyHandlers", void 0);
@@ -119,6 +120,7 @@ class Grid extends PureComponent {
119
120
  this.animationFrame = null;
120
121
  this.prevMetrics = null;
121
122
  this.metrics = null;
123
+ this.renderState = {};
122
124
 
123
125
  // Track the cursor that is currently added to the document
124
126
  // Add to document so that when dragging the cursor stays, even if mouse leaves the canvas
@@ -129,7 +131,7 @@ class Grid extends PureComponent {
129
131
 
130
132
  // specify handler ordering, such that any extensions can insert handlers in between
131
133
  this.keyHandlers = [new EditKeyHandler(400), new PasteKeyHandler(450), new SelectionKeyHandler(500), new TreeKeyHandler(900)];
132
- this.mouseHandlers = [new GridRowSeparatorMouseHandler(100), new GridColumnSeparatorMouseHandler(200), new GridRowMoveMouseHandler(300), new GridColumnMoveMouseHandler(400), new EditMouseHandler(450), new GridVerticalScrollBarMouseHandler(500), new GridHorizontalScrollBarMouseHandler(600), new GridScrollBarCornerMouseHandler(700), new GridRowTreeMouseHandler(800), new GridSelectionMouseHandler(900)];
134
+ this.mouseHandlers = [new GridRowSeparatorMouseHandler(100), new GridColumnSeparatorMouseHandler(200), new GridRowMoveMouseHandler(300), new GridColumnMoveMouseHandler(400), new EditMouseHandler(450), new GridVerticalScrollBarMouseHandler(500), new GridHorizontalScrollBarMouseHandler(600), new GridScrollBarCornerMouseHandler(700), new GridRowTreeMouseHandler(800), new GridTokenMouseHandler(825), new GridSelectionMouseHandler(900)];
133
135
  this.state = {
134
136
  // Top/left visible cell in the grid. Note that it's visible row/column index, not the model index (ie. if columns are re-ordered)
135
137
  top: 0,
@@ -188,7 +190,6 @@ class Grid extends PureComponent {
188
190
  passive: false
189
191
  });
190
192
  window.addEventListener('resize', this.handleResize);
191
- this.updateCanvasScale();
192
193
  this.updateCanvas();
193
194
 
194
195
  // apply on mount, so that it works with a static model
@@ -536,6 +537,9 @@ class Grid extends PureComponent {
536
537
  updateCanvas() {
537
538
  var metrics = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.updateMetrics();
538
539
  this.updateCanvasScale();
540
+ this.updateRenderState();
541
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
542
+ this.renderer.configureContext(this.canvasContext, this.renderState);
539
543
  var {
540
544
  onViewChanged
541
545
  } = this.props;
@@ -1323,54 +1327,10 @@ class Grid extends PureComponent {
1323
1327
  if (!this.canvas) throw new Error('canvas is not set');
1324
1328
  if (!this.canvasContext) throw new Error('context not set');
1325
1329
  var {
1326
- cursorColumn,
1327
- cursorRow,
1328
- draggingColumn,
1329
- draggingColumnSeparator,
1330
- draggingRow,
1331
- draggingRowOffset,
1332
- draggingRowSeparator,
1333
- editingCell,
1334
- isDraggingHorizontalScrollBar,
1335
- isDraggingVerticalScrollBar,
1336
- isDragging,
1337
- mouseX,
1338
- mouseY,
1339
- selectedRanges
1340
- } = this.state;
1341
- var {
1342
- model,
1343
- stateOverride
1344
- } = this.props;
1345
- var {
1346
- renderer
1330
+ renderer,
1331
+ canvasContext: context,
1332
+ renderState
1347
1333
  } = this;
1348
- var context = this.canvasContext;
1349
- var theme = this.getTheme();
1350
- var width = this.canvas.clientWidth;
1351
- var height = this.canvas.clientHeight;
1352
- var renderState = _objectSpread({
1353
- width,
1354
- height,
1355
- context,
1356
- theme,
1357
- model,
1358
- metrics,
1359
- mouseX,
1360
- mouseY,
1361
- selectedRanges,
1362
- draggingColumn,
1363
- draggingColumnSeparator,
1364
- draggingRow,
1365
- draggingRowOffset,
1366
- draggingRowSeparator,
1367
- editingCell,
1368
- isDraggingHorizontalScrollBar,
1369
- isDraggingVerticalScrollBar,
1370
- isDragging,
1371
- cursorColumn,
1372
- cursorRow
1373
- }, stateOverride);
1374
1334
  context.save();
1375
1335
  renderer.drawCanvas(renderState);
1376
1336
  context.restore();
@@ -1543,7 +1503,6 @@ class Grid extends PureComponent {
1543
1503
  * of doing outside of a full componentDidUpdate() call, so we force the update.
1544
1504
  * Ideally, we could verify state/metrics without the forced update.
1545
1505
  */
1546
- this.updateCanvasScale();
1547
1506
  this.updateCanvas();
1548
1507
  if (!this.metrics) throw new Error('metrics not set');
1549
1508
  this.forceUpdate();
@@ -1854,6 +1813,66 @@ class Grid extends PureComponent {
1854
1813
  value: value
1855
1814
  }));
1856
1815
  }
1816
+
1817
+ /**
1818
+ * Gets the render state
1819
+ * @returns The render state
1820
+ */
1821
+ updateRenderState() {
1822
+ if (!this.canvas) throw new Error('canvas is not set');
1823
+ if (!this.canvasContext) throw new Error('context not set');
1824
+ var {
1825
+ cursorColumn,
1826
+ cursorRow,
1827
+ draggingColumn,
1828
+ draggingColumnSeparator,
1829
+ draggingRow,
1830
+ draggingRowOffset,
1831
+ draggingRowSeparator,
1832
+ editingCell,
1833
+ isDraggingHorizontalScrollBar,
1834
+ isDraggingVerticalScrollBar,
1835
+ isDragging,
1836
+ mouseX,
1837
+ mouseY,
1838
+ selectedRanges
1839
+ } = this.state;
1840
+ var {
1841
+ model,
1842
+ stateOverride
1843
+ } = this.props;
1844
+ var {
1845
+ metrics
1846
+ } = this;
1847
+ var context = this.canvasContext;
1848
+ var theme = this.getTheme();
1849
+ var width = this.canvas.clientWidth;
1850
+ var height = this.canvas.clientHeight;
1851
+ assertNotNull(metrics);
1852
+ this.renderState = _objectSpread({
1853
+ width,
1854
+ height,
1855
+ context,
1856
+ theme,
1857
+ model,
1858
+ metrics,
1859
+ mouseX,
1860
+ mouseY,
1861
+ selectedRanges,
1862
+ draggingColumn,
1863
+ draggingColumnSeparator,
1864
+ draggingRow,
1865
+ draggingRowOffset,
1866
+ draggingRowSeparator,
1867
+ editingCell,
1868
+ isDraggingHorizontalScrollBar,
1869
+ isDraggingVerticalScrollBar,
1870
+ isDragging,
1871
+ cursorColumn,
1872
+ cursorRow
1873
+ }, stateOverride);
1874
+ return this.renderState;
1875
+ }
1857
1876
  render() {
1858
1877
  var {
1859
1878
  cursor
@@ -1894,6 +1913,11 @@ _defineProperty(Grid, "defaultProps", {
1894
1913
  onMovedRowsChanged: () => undefined,
1895
1914
  onMoveRowComplete: () => undefined,
1896
1915
  onViewChanged: () => undefined,
1916
+ onTokenClicked: token => {
1917
+ if (isLinkToken(token)) {
1918
+ window.open(token.href, '_blank', 'noopener,noreferrer');
1919
+ }
1920
+ },
1897
1921
  stateOverride: {},
1898
1922
  theme: {
1899
1923
  autoSelectColumn: false,