@deephaven/grid 0.41.0 → 0.41.2-beta.3

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 (61) hide show
  1. package/dist/CellRenderer.d.ts +12 -0
  2. package/dist/CellRenderer.d.ts.map +1 -0
  3. package/dist/CellRenderer.js +64 -0
  4. package/dist/CellRenderer.js.map +1 -0
  5. package/dist/DataBarCellRenderer.d.ts +38 -0
  6. package/dist/DataBarCellRenderer.d.ts.map +1 -0
  7. package/dist/DataBarCellRenderer.js +404 -0
  8. package/dist/DataBarCellRenderer.js.map +1 -0
  9. package/dist/DataBarGridModel.d.ts +47 -0
  10. package/dist/DataBarGridModel.d.ts.map +1 -0
  11. package/dist/DataBarGridModel.js +27 -0
  12. package/dist/DataBarGridModel.js.map +1 -0
  13. package/dist/Grid.d.ts +4 -0
  14. package/dist/Grid.d.ts.map +1 -1
  15. package/dist/GridColorUtils.d.ts +15 -0
  16. package/dist/GridColorUtils.d.ts.map +1 -1
  17. package/dist/GridColorUtils.js +117 -1
  18. package/dist/GridColorUtils.js.map +1 -1
  19. package/dist/GridMetricCalculator.d.ts.map +1 -1
  20. package/dist/GridMetricCalculator.js +9 -2
  21. package/dist/GridMetricCalculator.js.map +1 -1
  22. package/dist/GridModel.d.ts +2 -0
  23. package/dist/GridModel.d.ts.map +1 -1
  24. package/dist/GridModel.js +3 -0
  25. package/dist/GridModel.js.map +1 -1
  26. package/dist/GridRenderer.d.ts +8 -34
  27. package/dist/GridRenderer.d.ts.map +1 -1
  28. package/dist/GridRenderer.js +29 -294
  29. package/dist/GridRenderer.js.map +1 -1
  30. package/dist/GridRendererTypes.d.ts +1 -0
  31. package/dist/GridRendererTypes.d.ts.map +1 -1
  32. package/dist/GridRendererTypes.js +2 -1
  33. package/dist/GridRendererTypes.js.map +1 -1
  34. package/dist/GridTheme.d.ts +4 -0
  35. package/dist/GridTheme.d.ts.map +1 -1
  36. package/dist/GridTheme.js +6 -1
  37. package/dist/GridTheme.js.map +1 -1
  38. package/dist/GridUtils.d.ts +16 -0
  39. package/dist/GridUtils.d.ts.map +1 -1
  40. package/dist/GridUtils.js +60 -1
  41. package/dist/GridUtils.js.map +1 -1
  42. package/dist/MockDataBarGridModel.d.ts +29 -0
  43. package/dist/MockDataBarGridModel.d.ts.map +1 -0
  44. package/dist/MockDataBarGridModel.js +119 -0
  45. package/dist/MockDataBarGridModel.js.map +1 -0
  46. package/dist/TextCellRenderer.d.ts +23 -0
  47. package/dist/TextCellRenderer.d.ts.map +1 -0
  48. package/dist/TextCellRenderer.js +210 -0
  49. package/dist/TextCellRenderer.js.map +1 -0
  50. package/dist/TokenBoxCellRenderer.d.ts +10 -0
  51. package/dist/TokenBoxCellRenderer.d.ts.map +1 -0
  52. package/dist/TokenBoxCellRenderer.js +4 -0
  53. package/dist/TokenBoxCellRenderer.js.map +1 -0
  54. package/dist/index.d.ts +5 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +4 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/mouse-handlers/GridTokenMouseHandler.d.ts.map +1 -1
  59. package/dist/mouse-handlers/GridTokenMouseHandler.js +20 -2
  60. package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
  61. package/package.json +4 -4
@@ -1,17 +1,20 @@
1
- import { Token, TokenBox } from './GridUtils';
2
1
  import { GridColor, GridColorWay, NullableGridColor } from './GridTheme';
3
- import { BoxCoordinates, Coordinate, VisibleIndex } from './GridMetrics';
2
+ import { Coordinate, VisibleIndex } from './GridMetrics';
4
3
  import { BoundedAxisRange } from './GridAxisRange';
5
4
  import { GridRenderState } from './GridRendererTypes';
5
+ import CellRenderer, { CellRenderType } from './CellRenderer';
6
+ import DataBarCellRenderer from './DataBarCellRenderer';
7
+ import TextCellRenderer from './TextCellRenderer';
6
8
  /**
7
9
  * A GridRenderer handles rendering the different parts of the grid
8
10
  * This default rendering just renders a basic grid. Extend this class and implement
9
11
  * your own methods to customize drawing of the grid (eg. Draw icons or special features)
10
12
  */
11
13
  export declare class GridRenderer {
12
- static DEFAULT_FONT_WIDTH: number;
13
14
  static DEFAULT_EDGE_RADIUS: number;
14
15
  static ACTIVE_CELL_BORDER_WIDTH: number;
16
+ protected textCellRenderer: TextCellRenderer;
17
+ protected dataBarCellRenderer: DataBarCellRenderer;
15
18
  /**
16
19
  * Truncate a string to the specified length and add ellipses if necessary
17
20
  * @param str The string to truncate
@@ -69,26 +72,9 @@ export declare class GridRenderer {
69
72
  drawCellBackground(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex, rowAfter?: VisibleIndex): void;
70
73
  drawCellContents(context: CanvasRenderingContext2D, state: GridRenderState): void;
71
74
  drawColumnCellContents(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex): void;
72
- /**
73
- * Gets textWidth and X-Y position for a specific cell
74
- * The textWidth returned is the width that the text can occupy accounting for any other cell markings
75
- * The width accounts for tree table indents and cell padding, so it is the width the text may consume
76
- *
77
- * @param state GridRenderState to get the text metrics for
78
- * @param column Column of cell to get text metrics for
79
- * @param row Row of cell to get text metrics for
80
- * @returns Object with width, x, and y of the text
81
- */
82
- getTextRenderMetrics(state: GridRenderState, column: VisibleIndex, row: VisibleIndex): {
83
- width: number;
84
- x: number;
85
- y: number;
86
- };
87
- drawCellContent(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex, textOverride?: string): void;
88
- drawCellRowTreeMarker(context: CanvasRenderingContext2D, state: GridRenderState, row: VisibleIndex): void;
89
- drawTreeMarker(context: CanvasRenderingContext2D, state: GridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: GridColor, isExpanded: boolean): void;
75
+ drawCellContent(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex): void;
76
+ getCellRenderer(renderType: CellRenderType): CellRenderer;
90
77
  drawCellRowTreeDepthLines(context: CanvasRenderingContext2D, state: GridRenderState, row: VisibleIndex, rowAfter?: VisibleIndex): void;
91
- getCachedTruncatedString: ((context: CanvasRenderingContext2D, text: string, width: number, fontWidth: number, truncationChar?: string) => string) & import("@types/memoizee").Memoized<(context: CanvasRenderingContext2D, text: string, width: number, fontWidth: number, truncationChar?: string) => string>;
92
78
  getCachedBackgroundColors: ((backgroundColors: GridColorWay, maxDepth: number) => GridColor[][]) & import("@types/memoizee").Memoized<(backgroundColors: GridColorWay, maxDepth: number) => GridColor[][]>;
93
79
  getCachedColorWithAlpha: ((color: string, alpha: number) => string) & import("@types/memoizee").Memoized<(color: string, alpha: number) => string>;
94
80
  getCachedColorIsDark: ((color: string) => boolean) & import("@types/memoizee").Memoized<(color: string) => boolean>;
@@ -150,18 +136,6 @@ export declare class GridRenderer {
150
136
  drawDraggingColumn(context: CanvasRenderingContext2D, state: GridRenderState): void;
151
137
  drawDraggingRow(context: CanvasRenderingContext2D, state: GridRenderState): void;
152
138
  drawScrollBars(context: CanvasRenderingContext2D, state: GridRenderState): void;
153
- /**
154
- * Gets the token boxes that are visible in the cell
155
- * @param column The visible column
156
- * @param row The visible row
157
- * @param state The GridRenderState
158
- * @returns An array of TokenBox of visible tokens or empty array with coordinates relative to gridX and gridY
159
- */
160
- getTokenBoxesForVisibleCell(column: VisibleIndex, row: VisibleIndex, state: GridRenderState): TokenBox[];
161
- /**
162
- * Returns an array of token boxes with the coordinates relative to the top left corner of the text
163
- */
164
- getCachedTokenBoxesForVisibleCell: ((truncatedText: string, tokens: Token[], _font: string, _baseline: CanvasTextBaseline, textHeight: number, context: CanvasRenderingContext2D) => TokenBox[]) & import("@types/memoizee").Memoized<(truncatedText: string, tokens: Token[], _font: string, _baseline: CanvasTextBaseline, textHeight: number, context: CanvasRenderingContext2D) => TokenBox[]>;
165
139
  }
166
140
  export default GridRenderer;
167
141
  //# sourceMappingURL=GridRenderer.d.ts.map
@@ -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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"}
@@ -2,13 +2,16 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
2
2
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
4
  import clamp from 'lodash.clamp';
5
- import { ColorUtils, EMPTY_ARRAY, getOrThrow } from '@deephaven/utils';
5
+ import { ColorUtils, getOrThrow } from '@deephaven/utils';
6
6
  import memoizeClear from "./memoizeClear.js";
7
7
  import GridUtils from "./GridUtils.js";
8
8
  import GridColorUtils from "./GridColorUtils.js";
9
9
  import { isExpandableGridModel } from "./ExpandableGridModel.js";
10
10
  import { isEditableGridModel } from "./EditableGridModel.js";
11
11
  import GridColumnSeparatorMouseHandler from "./mouse-handlers/GridColumnSeparatorMouseHandler.js";
12
+ import { DEFAULT_FONT_WIDTH } from "./GridRendererTypes.js";
13
+ import DataBarCellRenderer from "./DataBarCellRenderer.js";
14
+ import TextCellRenderer from "./TextCellRenderer.js";
12
15
  /* eslint react/destructuring-assignment: "off" */
13
16
  /* eslint class-methods-use-this: "off" */
14
17
  /* eslint no-param-reassign: "off" */
@@ -19,9 +22,8 @@ import GridColumnSeparatorMouseHandler from "./mouse-handlers/GridColumnSeparato
19
22
  */
20
23
  export class GridRenderer {
21
24
  constructor() {
22
- _defineProperty(this, "getCachedTruncatedString", memoizeClear((context, text, width, fontWidth, truncationChar) => GridRenderer.truncateToWidth(context, text, width, fontWidth, truncationChar), {
23
- max: 10000
24
- }));
25
+ _defineProperty(this, "textCellRenderer", new TextCellRenderer());
26
+ _defineProperty(this, "dataBarCellRenderer", new DataBarCellRenderer());
25
27
  _defineProperty(this, "getCachedBackgroundColors", memoizeClear((backgroundColors, maxDepth) => backgroundColors.split(' ').map(color => {
26
28
  var colors = [];
27
29
  for (var i = 0; i < maxDepth; i += 1) {
@@ -37,48 +39,6 @@ export class GridRenderer {
37
39
  _defineProperty(this, "getCachedColorIsDark", memoizeClear(color => ColorUtils.isDark(color), {
38
40
  max: 1000
39
41
  }));
40
- _defineProperty(this, "getCachedTokenBoxesForVisibleCell", memoizeClear((truncatedText, tokens, _font, _baseline, textHeight, context) => {
41
- var top = 0;
42
- var bottom = textHeight;
43
- var tokenBoxes = [];
44
-
45
- // The index where the last token ended
46
- var lastTokenEnd = 0;
47
- // The width of the text preceding the current token
48
- var currentTextWidth = 0;
49
- // Loop through array and push them to array
50
- for (var i = 0; i < tokens.length; i += 1) {
51
- var token = tokens[i];
52
- var {
53
- start,
54
- end
55
- } = token;
56
- // The last token value is calculated based on the full text so the value needs to be truncated
57
- var value = end > truncatedText.length ? truncatedText.substring(start) : token.value;
58
-
59
- // Add the width of the text in between this token and the last token
60
- currentTextWidth += context.measureText(truncatedText.substring(lastTokenEnd, start)).width;
61
- var tokenWidth = context.measureText(value).width;
62
-
63
- // Check if the x position is less than the grid x, then tokenWidth should be shifted by gridX - startX
64
-
65
- var left = currentTextWidth;
66
- var right = left + tokenWidth;
67
- var newTokenBox = {
68
- x1: left,
69
- y1: top,
70
- x2: right,
71
- y2: bottom,
72
- token
73
- };
74
- tokenBoxes.push(newTokenBox);
75
- lastTokenEnd = end;
76
- currentTextWidth += tokenWidth;
77
- }
78
- return tokenBoxes;
79
- }, {
80
- max: 10000
81
- }));
82
42
  }
83
43
  /**
84
44
  * Truncate a string to the specified length and add ellipses if necessary
@@ -155,7 +115,7 @@ export class GridRenderer {
155
115
  * @returns The truncated string that fits within the width provided
156
116
  */
157
117
  static truncateToWidth(context, str, width) {
158
- var fontWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : GridRenderer.DEFAULT_FONT_WIDTH;
118
+ var fontWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_FONT_WIDTH;
159
119
  var truncationChar = arguments.length > 4 ? arguments[4] : undefined;
160
120
  if (width <= 0 || str.length <= 0) {
161
121
  return '';
@@ -815,185 +775,28 @@ export class GridRenderer {
815
775
  }
816
776
  context.restore();
817
777
  }
818
-
819
- /**
820
- * Gets textWidth and X-Y position for a specific cell
821
- * The textWidth returned is the width that the text can occupy accounting for any other cell markings
822
- * The width accounts for tree table indents and cell padding, so it is the width the text may consume
823
- *
824
- * @param state GridRenderState to get the text metrics for
825
- * @param column Column of cell to get text metrics for
826
- * @param row Row of cell to get text metrics for
827
- * @returns Object with width, x, and y of the text
828
- */
829
- getTextRenderMetrics(state, column, row) {
830
- var {
831
- metrics,
832
- model,
833
- theme
834
- } = state;
835
- var {
836
- firstColumn,
837
- allColumnXs,
838
- allColumnWidths,
839
- allRowYs,
840
- allRowHeights,
841
- modelRows,
842
- modelColumns
843
- } = metrics;
844
- var {
845
- cellHorizontalPadding,
846
- treeDepthIndent,
847
- treeHorizontalPadding
848
- } = theme;
849
- var modelRow = getOrThrow(modelRows, row);
850
- var modelColumn = getOrThrow(modelColumns, column);
851
- var textAlign = model.textAlignForCell(modelColumn, modelRow);
852
- var x = getOrThrow(allColumnXs, column);
853
- var y = getOrThrow(allRowYs, row);
854
- var columnWidth = getOrThrow(allColumnWidths, column);
855
- var rowHeight = getOrThrow(allRowHeights, row);
856
- var isFirstColumn = column === firstColumn;
857
- var treeIndent = 0;
858
- if (isExpandableGridModel(model) && model.hasExpandableRows && isFirstColumn) {
859
- treeIndent = treeDepthIndent * (model.depthForRow(row) + 1) + treeHorizontalPadding;
860
- }
861
- var textWidth = columnWidth - treeIndent;
862
- var textX = x + cellHorizontalPadding;
863
- var textY = y + rowHeight * 0.5;
864
- if (textAlign === 'right') {
865
- textX = x + textWidth - cellHorizontalPadding;
866
- } else if (textAlign === 'center') {
867
- textX = x + textWidth * 0.5;
868
- }
869
- textX += treeIndent;
870
- return {
871
- width: textWidth - cellHorizontalPadding * 2,
872
- x: textX,
873
- y: textY
874
- };
875
- }
876
- drawCellContent(context, state, column, row, textOverride) {
778
+ drawCellContent(context, state, column, row) {
877
779
  var {
878
780
  metrics,
879
- model,
880
- theme
781
+ model
881
782
  } = state;
882
783
  var {
883
- firstColumn,
884
- fontWidths,
885
784
  modelColumns,
886
- modelRows,
887
- allRowHeights
785
+ modelRows
888
786
  } = metrics;
889
- var {
890
- textColor
891
- } = theme;
892
- var rowHeight = getOrThrow(allRowHeights, row);
893
787
  var modelRow = getOrThrow(modelRows, row);
894
788
  var modelColumn = getOrThrow(modelColumns, column);
895
- var text = textOverride !== null && textOverride !== void 0 ? textOverride : model.textForCell(modelColumn, modelRow);
896
- var truncationChar = model.truncationCharForCell(modelColumn, modelRow);
897
- var isFirstColumn = column === firstColumn;
898
- if (text && rowHeight > 0) {
899
- var _fontWidths$get;
900
- var textAlign = model.textAlignForCell(modelColumn, modelRow) || 'left';
901
- context.textAlign = textAlign;
902
- var color = model.colorForCell(modelColumn, modelRow, theme) || textColor;
903
- context.fillStyle = color;
904
- context.save();
905
- var {
906
- width: textWidth,
907
- x: textX,
908
- y: textY
909
- } = this.getTextRenderMetrics(state, column, row);
910
- var fontWidth = (_fontWidths$get = fontWidths.get(context.font)) !== null && _fontWidths$get !== void 0 ? _fontWidths$get : GridRenderer.DEFAULT_FONT_WIDTH;
911
- var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidth, truncationChar);
912
- var tokens = model.tokensForCell(modelColumn, modelRow, truncatedText.length);
913
- if (truncatedText) {
914
- var tokenIndex = 0;
915
- var textStart = 0;
916
- var left = textX;
917
- var {
918
- actualBoundingBoxDescent
919
- } = context.measureText(truncatedText);
920
- while (textStart < truncatedText.length) {
921
- var _ref, _token$end;
922
- var nextToken = tokens[tokenIndex];
923
- var token = textStart === (nextToken === null || nextToken === void 0 ? void 0 : nextToken.start) ? nextToken : null;
924
- var textEnd = (_ref = (_token$end = token === null || token === void 0 ? void 0 : token.end) !== null && _token$end !== void 0 ? _token$end : nextToken === null || nextToken === void 0 ? void 0 : nextToken.start) !== null && _ref !== void 0 ? _ref : truncatedText.length;
925
- var value = truncatedText.substring(textStart, textEnd);
926
- var {
927
- width
928
- } = context.measureText(value);
929
- var widthOfUnderline = value.endsWith('…') ? context.measureText(value.substring(0, value.length - 1)).width : width;
930
-
931
- // Set the styling based on the token, then draw the text
932
- if (token != null) {
933
- context.fillStyle = theme.hyperlinkColor;
934
- context.fillText(value, left, textY);
935
- context.fillRect(left, textY + actualBoundingBoxDescent, widthOfUnderline, 1);
936
- } else {
937
- context.fillStyle = color;
938
- context.fillText(value, left, textY);
939
- }
940
- left += width;
941
- textStart = textEnd;
942
- if (token != null) tokenIndex += 1;
943
- }
944
- }
945
- context.restore();
946
- }
947
- if (isFirstColumn && isExpandableGridModel(model) && model.hasExpandableRows) {
948
- this.drawCellRowTreeMarker(context, state, row);
949
- }
789
+ var renderType = model.renderTypeForCell(modelColumn, modelRow);
790
+ var cellRenderer = this.getCellRenderer(renderType);
791
+ cellRenderer.drawCellContent(context, state, column, row);
950
792
  }
951
- drawCellRowTreeMarker(context, state, row) {
952
- var {
953
- metrics,
954
- model,
955
- mouseX,
956
- mouseY,
957
- theme
958
- } = state;
959
- var {
960
- firstColumn,
961
- gridX,
962
- gridY,
963
- allColumnXs,
964
- allColumnWidths,
965
- allRowYs,
966
- allRowHeights,
967
- visibleRowTreeBoxes
968
- } = metrics;
969
- var {
970
- treeMarkerColor,
971
- treeMarkerHoverColor
972
- } = theme;
973
- var columnX = getOrThrow(allColumnXs, firstColumn);
974
- var columnWidth = getOrThrow(allColumnWidths, firstColumn);
975
- var rowY = getOrThrow(allRowYs, row);
976
- var rowHeight = getOrThrow(allRowHeights, row);
977
- if (!isExpandableGridModel(model) || !model.isRowExpandable(row)) {
978
- return;
793
+ getCellRenderer(renderType) {
794
+ switch (renderType) {
795
+ case 'dataBar':
796
+ return this.dataBarCellRenderer;
797
+ default:
798
+ return this.textCellRenderer;
979
799
  }
980
- var treeBox = getOrThrow(visibleRowTreeBoxes, row);
981
- var color = mouseX != null && mouseY != null && mouseX >= gridX + columnX && mouseX <= gridX + columnX + columnWidth && mouseY >= gridY + rowY && mouseY <= gridY + rowY + rowHeight ? treeMarkerHoverColor : treeMarkerColor;
982
- this.drawTreeMarker(context, state, columnX, rowY, treeBox, color, model.isRowExpanded(row));
983
- }
984
- drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
985
- var {
986
- x1,
987
- y1,
988
- x2,
989
- y2
990
- } = treeBox;
991
- var markerText = isExpanded ? '⊟' : '⊞';
992
- var textX = columnX + (x1 + x2) * 0.5 + 0.5;
993
- var textY = rowY + (y1 + y2) * 0.5 + 0.5;
994
- context.fillStyle = color;
995
- context.textAlign = 'center';
996
- context.fillText(markerText, textX, textY);
997
800
  }
998
801
  drawCellRowTreeDepthLines(context, state, row, rowAfter) {
999
802
  var {
@@ -1112,11 +915,11 @@ export class GridRenderer {
1112
915
  }
1113
916
  if (headerSeparatorColor) {
1114
917
  context.strokeStyle = headerSeparatorColor;
1115
- var hiddenColumns = [...allColumnWidths.entries()].filter(_ref2 => {
1116
- var [_, w] = _ref2;
918
+ var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
919
+ var [_, w] = _ref;
1117
920
  return w === 0;
1118
- }).map(_ref3 => {
1119
- var [index] = _ref3;
921
+ }).map(_ref2 => {
922
+ var [index] = _ref2;
1120
923
  return index;
1121
924
  });
1122
925
 
@@ -1257,25 +1060,25 @@ export class GridRenderer {
1257
1060
  // The group will be drawn as if it were a column with a max width of the bounds width
1258
1061
  var prevColumnIndex = columnIndex - 1;
1259
1062
  while (prevColumnIndex >= 0 && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupLeft > minX)) {
1260
- var _modelColumns$get, _ref4, _userColumnWidths$get;
1063
+ var _modelColumns$get, _ref3, _userColumnWidths$get;
1261
1064
  var prevModelIndex = (_modelColumns$get = modelColumns.get(prevColumnIndex)) !== null && _modelColumns$get !== void 0 ? _modelColumns$get : GridUtils.getModelIndex(prevColumnIndex, movedColumns);
1262
1065
  if (prevModelIndex == null || model.textForColumnHeader(prevModelIndex, depth) !== columnGroupName) {
1263
1066
  // Previous column not in the same group
1264
1067
  break;
1265
1068
  }
1266
- var prevColumnWidth = (_ref4 = (_userColumnWidths$get = userColumnWidths.get(prevModelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : allColumnWidths.get(prevColumnIndex)) !== null && _ref4 !== void 0 ? _ref4 : columnWidth;
1069
+ var prevColumnWidth = (_ref3 = (_userColumnWidths$get = userColumnWidths.get(prevModelIndex)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : allColumnWidths.get(prevColumnIndex)) !== null && _ref3 !== void 0 ? _ref3 : columnWidth;
1267
1070
  columnGroupLeft -= prevColumnWidth;
1268
1071
  prevColumnIndex -= 1;
1269
1072
  }
1270
1073
  var nextColumnIndex = columnIndex + 1;
1271
1074
  while (nextColumnIndex < columnCount && (columnGroupRight - columnGroupLeft < visibleWidth || columnGroupRight < maxX)) {
1272
- var _modelColumns$get2, _ref5, _userColumnWidths$get2;
1075
+ var _modelColumns$get2, _ref4, _userColumnWidths$get2;
1273
1076
  var nextModelIndex = (_modelColumns$get2 = modelColumns.get(nextColumnIndex)) !== null && _modelColumns$get2 !== void 0 ? _modelColumns$get2 : GridUtils.getModelIndex(nextColumnIndex, movedColumns);
1274
1077
  if (model.textForColumnHeader(nextModelIndex, depth) !== columnGroupName) {
1275
1078
  // Next column not in the same group
1276
1079
  break;
1277
1080
  }
1278
- var nextColumnWidth = (_ref5 = (_userColumnWidths$get2 = userColumnWidths.get(nextModelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : allColumnWidths.get(nextColumnIndex)) !== null && _ref5 !== void 0 ? _ref5 : columnWidth;
1081
+ var nextColumnWidth = (_ref4 = (_userColumnWidths$get2 = userColumnWidths.get(nextModelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : allColumnWidths.get(nextColumnIndex)) !== null && _ref4 !== void 0 ? _ref4 : columnWidth;
1279
1082
  columnGroupRight += nextColumnWidth;
1280
1083
  nextColumnIndex += 1;
1281
1084
  }
@@ -1332,7 +1135,7 @@ export class GridRenderer {
1332
1135
  }, bounds);
1333
1136
  }
1334
1137
  drawColumnHeader(context, state, columnText, columnX, columnWidth, style, bounds) {
1335
- var _fontWidths$get2;
1138
+ var _fontWidths$get;
1336
1139
  if (columnWidth <= 0) {
1337
1140
  return;
1338
1141
  }
@@ -1353,7 +1156,7 @@ export class GridRenderer {
1353
1156
  fontWidths,
1354
1157
  width
1355
1158
  } = metrics;
1356
- var fontWidth = (_fontWidths$get2 = fontWidths.get(context.font)) !== null && _fontWidths$get2 !== void 0 ? _fontWidths$get2 : GridRenderer.DEFAULT_FONT_WIDTH;
1159
+ var fontWidth = (_fontWidths$get = fontWidths.get(context.font)) !== null && _fontWidths$get !== void 0 ? _fontWidths$get : DEFAULT_FONT_WIDTH;
1357
1160
  var maxWidth = columnWidth - headerHorizontalPadding * 2;
1358
1161
  var maxLength = maxWidth / fontWidth;
1359
1162
  var {
@@ -2228,75 +2031,7 @@ export class GridRenderer {
2228
2031
  }
2229
2032
  context.translate(-barLeft, -barTop);
2230
2033
  }
2231
-
2232
- /**
2233
- * Gets the token boxes that are visible in the cell
2234
- * @param column The visible column
2235
- * @param row The visible row
2236
- * @param state The GridRenderState
2237
- * @returns An array of TokenBox of visible tokens or empty array with coordinates relative to gridX and gridY
2238
- */
2239
- getTokenBoxesForVisibleCell(column, row, state) {
2240
- var _fontWidths$get3;
2241
- var {
2242
- metrics,
2243
- context,
2244
- model,
2245
- theme
2246
- } = state;
2247
- if (context == null || metrics == null) {
2248
- return EMPTY_ARRAY;
2249
- }
2250
- var {
2251
- modelRows,
2252
- modelColumns
2253
- } = metrics;
2254
- var modelRow = getOrThrow(modelRows, row);
2255
- var modelColumn = getOrThrow(modelColumns, column);
2256
- var text = model.textForCell(modelColumn, modelRow);
2257
- var {
2258
- width: textWidth,
2259
- x: textX,
2260
- y: textY
2261
- } = this.getTextRenderMetrics(state, column, row);
2262
- var {
2263
- fontWidths
2264
- } = metrics;
2265
-
2266
- // Set the font and baseline and change it back after
2267
- context.save();
2268
- this.configureContext(context, state);
2269
- var fontWidth = (_fontWidths$get3 = fontWidths === null || fontWidths === void 0 ? void 0 : fontWidths.get(context.font)) !== null && _fontWidths$get3 !== void 0 ? _fontWidths$get3 : GridRenderer.DEFAULT_FONT_WIDTH;
2270
- var truncationChar = model.truncationCharForCell(modelColumn, modelRow);
2271
- var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidth, truncationChar);
2272
- var {
2273
- actualBoundingBoxAscent,
2274
- actualBoundingBoxDescent
2275
- } = context.measureText(truncatedText);
2276
- var textHeight = actualBoundingBoxAscent + actualBoundingBoxDescent;
2277
- var tokens = model.tokensForCell(modelColumn, modelRow, truncatedText.length);
2278
-
2279
- // Check if the truncated text contains a link
2280
- if (tokens.length === 0) {
2281
- context.restore();
2282
- return EMPTY_ARRAY;
2283
- }
2284
- var cachedTokenBoxes = this.getCachedTokenBoxesForVisibleCell(truncatedText, tokens, theme.font, 'middle', textHeight, context).map(tokenBox => ({
2285
- x1: tokenBox.x1 + textX,
2286
- y1: tokenBox.y1 + (textY - actualBoundingBoxAscent),
2287
- x2: tokenBox.x2 + textX,
2288
- y2: tokenBox.y2 + (textY - actualBoundingBoxAscent),
2289
- token: tokenBox.token
2290
- }));
2291
- context.restore();
2292
- return cachedTokenBoxes;
2293
- }
2294
-
2295
- /**
2296
- * Returns an array of token boxes with the coordinates relative to the top left corner of the text
2297
- */
2298
2034
  }
2299
- _defineProperty(GridRenderer, "DEFAULT_FONT_WIDTH", 10);
2300
2035
  _defineProperty(GridRenderer, "DEFAULT_EDGE_RADIUS", 2);
2301
2036
  _defineProperty(GridRenderer, "ACTIVE_CELL_BORDER_WIDTH", 2);
2302
2037
  export default GridRenderer;