@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.
- package/dist/CellRenderer.d.ts +12 -0
- package/dist/CellRenderer.d.ts.map +1 -0
- package/dist/CellRenderer.js +64 -0
- package/dist/CellRenderer.js.map +1 -0
- package/dist/DataBarCellRenderer.d.ts +38 -0
- package/dist/DataBarCellRenderer.d.ts.map +1 -0
- package/dist/DataBarCellRenderer.js +404 -0
- package/dist/DataBarCellRenderer.js.map +1 -0
- package/dist/DataBarGridModel.d.ts +47 -0
- package/dist/DataBarGridModel.d.ts.map +1 -0
- package/dist/DataBarGridModel.js +27 -0
- package/dist/DataBarGridModel.js.map +1 -0
- package/dist/Grid.d.ts +4 -0
- package/dist/Grid.d.ts.map +1 -1
- package/dist/GridColorUtils.d.ts +15 -0
- package/dist/GridColorUtils.d.ts.map +1 -1
- package/dist/GridColorUtils.js +117 -1
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +9 -2
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.d.ts +2 -0
- package/dist/GridModel.d.ts.map +1 -1
- package/dist/GridModel.js +3 -0
- package/dist/GridModel.js.map +1 -1
- package/dist/GridRenderer.d.ts +8 -34
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +29 -294
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridRendererTypes.d.ts +1 -0
- package/dist/GridRendererTypes.d.ts.map +1 -1
- package/dist/GridRendererTypes.js +2 -1
- package/dist/GridRendererTypes.js.map +1 -1
- package/dist/GridTheme.d.ts +4 -0
- package/dist/GridTheme.d.ts.map +1 -1
- package/dist/GridTheme.js +6 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.d.ts +16 -0
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +60 -1
- package/dist/GridUtils.js.map +1 -1
- package/dist/MockDataBarGridModel.d.ts +29 -0
- package/dist/MockDataBarGridModel.d.ts.map +1 -0
- package/dist/MockDataBarGridModel.js +119 -0
- package/dist/MockDataBarGridModel.js.map +1 -0
- package/dist/TextCellRenderer.d.ts +23 -0
- package/dist/TextCellRenderer.d.ts.map +1 -0
- package/dist/TextCellRenderer.js +210 -0
- package/dist/TextCellRenderer.js.map +1 -0
- package/dist/TokenBoxCellRenderer.d.ts +10 -0
- package/dist/TokenBoxCellRenderer.d.ts.map +1 -0
- package/dist/TokenBoxCellRenderer.js +4 -0
- package/dist/TokenBoxCellRenderer.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridTokenMouseHandler.js +20 -2
- package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -1
- package/package.json +4 -4
package/dist/GridRenderer.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { Token, TokenBox } from './GridUtils';
|
|
2
1
|
import { GridColor, GridColorWay, NullableGridColor } from './GridTheme';
|
|
3
|
-
import {
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../src/GridRenderer.ts"],"names":[],"mappings":"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"}
|
package/dist/GridRenderer.js
CHANGED
|
@@ -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,
|
|
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, "
|
|
23
|
-
|
|
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] :
|
|
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
|
|
896
|
-
var
|
|
897
|
-
|
|
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
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
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(
|
|
1116
|
-
var [_, w] =
|
|
918
|
+
var hiddenColumns = [...allColumnWidths.entries()].filter(_ref => {
|
|
919
|
+
var [_, w] = _ref;
|
|
1117
920
|
return w === 0;
|
|
1118
|
-
}).map(
|
|
1119
|
-
var [index] =
|
|
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,
|
|
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 = (
|
|
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,
|
|
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 = (
|
|
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$
|
|
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$
|
|
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;
|