@deephaven/grid 0.11.2-package-directory.0 → 0.11.3-beta.1
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/README.md +5 -5
- package/dist/Grid.css +4 -0
- package/dist/Grid.css.map +1 -1
- package/dist/Grid.js +2 -2
- package/dist/GridMouseHandler.js +2 -2
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRenderer.d.ts +16 -0
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +65 -26
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +11 -0
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +33 -2
- package/dist/GridUtils.js.map +1 -1
- package/dist/memoizeClear.js +2 -2
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -12,11 +12,11 @@ npm install --save @deephaven/grid
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
-
There are many ways to use the @deephaven/grid package. The minimum requirement for displaying a grid is to implement the [GridModel](
|
|
15
|
+
There are many ways to use the @deephaven/grid package. The minimum requirement for displaying a grid is to implement the [GridModel](https://github.com/deephaven/web-client-ui/blob/main/packages/grid/src/GridModel.ts) class and pass that in as a prop. Below are a few different examples of different ways to extend the `GridModel`.
|
|
16
16
|
|
|
17
17
|
### Displaying static data
|
|
18
18
|
|
|
19
|
-
It's easy to display a static array of data using [StaticDataGridModel](
|
|
19
|
+
It's easy to display a static array of data using [StaticDataGridModel](https://github.com/deephaven/web-client-ui/blob/main/packages/grid/src/StaticDataGridModel.ts). All you need to do is pass in the data you would like to display, and it will display it.
|
|
20
20
|
|
|
21
21
|
```jsx
|
|
22
22
|
import React, { useState } from 'react';
|
|
@@ -43,7 +43,7 @@ export default GridExample;
|
|
|
43
43
|
|
|
44
44
|
### Quadrillions of rows and columns
|
|
45
45
|
|
|
46
|
-
Both rows and columns are virtualized in this grid solution, so you can theoretically have up to `Number.MAX_SAFE_INTEGER` (about 9 quadrillion) rows and columns. Not only are the row and columns virtualized, but you can drag columns/rows to reposition them without affecting the underlying model, effectiively allowing quadrillions of rows and columns that can be moved around. Here is an example using [MockGridModel](
|
|
46
|
+
Both rows and columns are virtualized in this grid solution, so you can theoretically have up to `Number.MAX_SAFE_INTEGER` (about 9 quadrillion) rows and columns. Not only are the row and columns virtualized, but you can drag columns/rows to reposition them without affecting the underlying model, effectiively allowing quadrillions of rows and columns that can be moved around. Here is an example using [MockGridModel](https://github.com/deephaven/web-client-ui/blob/main/packages/grid/src/MockGridModel.ts) that displays quadrillions of rows/columns, which you can scroll around using the mouse or keyboard, edit by double clicking on a value or by typing, or move columns or rows by dragging the headers:
|
|
47
47
|
|
|
48
48
|
```jsx
|
|
49
49
|
import React, { useState } from 'react';
|
|
@@ -67,7 +67,7 @@ export default GridQuadrillionExample;
|
|
|
67
67
|
|
|
68
68
|
### Expandable rows
|
|
69
69
|
|
|
70
|
-
Some data can be displayed as a tree. This example uses [MockTreeGridModel](src/MockTreeGridModel.ts) to display exandable rows of data:
|
|
70
|
+
Some data can be displayed as a tree. This example uses [MockTreeGridModel](https://github.com/deephaven/web-client-ui/blob/main/packages/grid/src/MockTreeGridModel.ts) to display exandable rows of data:
|
|
71
71
|
|
|
72
72
|
```jsx
|
|
73
73
|
import React, { useState } from 'react';
|
|
@@ -153,7 +153,7 @@ export default AsyncExample;
|
|
|
153
153
|
|
|
154
154
|
## Code Examples
|
|
155
155
|
|
|
156
|
-
There are [code examples](
|
|
156
|
+
There are [code examples](https://github.com/deephaven/web-client-ui/tree/main/packages/code-studio/src/styleguide/grid-examples) available in the [StyleGuide](https://github.com/deephaven/web-client-ui/tree/main/packages/code-studio/src/styleguide).
|
|
157
157
|
|
|
158
158
|
# Legal Notices
|
|
159
159
|
|
package/dist/Grid.css
CHANGED
package/dist/Grid.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/Grid.scss"],"names":[],"mappings":"AAAA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE","file":"Grid.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/Grid.scss"],"names":[],"mappings":"AAAA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE","file":"Grid.css"}
|
package/dist/Grid.js
CHANGED
|
@@ -2,9 +2,9 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
2
2
|
|
|
3
3
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
4
|
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
5
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
|
|
7
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
7
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
8
|
|
|
9
9
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
10
|
|
package/dist/GridMouseHandler.js
CHANGED
|
@@ -14,7 +14,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
14
14
|
* Return true from any of the events to indicate they're consumed, and stopPropagation/preventDefault will be called.
|
|
15
15
|
*/
|
|
16
16
|
export class GridMouseHandler {
|
|
17
|
-
// What order this mouse handler should trigger in
|
|
17
|
+
// What order this mouse handler should trigger in. Smaller numbers trigger first
|
|
18
18
|
// Default to well below any of the GRID mouse handlers 100-1000+
|
|
19
19
|
constructor() {
|
|
20
20
|
var order = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5000;
|
|
@@ -24,7 +24,7 @@ export class GridMouseHandler {
|
|
|
24
24
|
_defineProperty(this, "cursor", null);
|
|
25
25
|
|
|
26
26
|
this.order = order;
|
|
27
|
-
} // Cursor to use if this returns
|
|
27
|
+
} // Cursor to use if this returns any truthy value including { stopPropagation: false, preventDefault: false }
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
onDown(gridPoint, grid, event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/GridMouseHandler.ts"],"names":["GridMouseHandler","constructor","order","onDown","gridPoint","grid","event","onMove","onDrag","onLeave","onClick","onContextMenu","onDoubleClick","onUp","onWheel"],"mappings":";;AAAA;;AACA;;AAKA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAAN,CAAuB;AAG5B;AACA;AACAC,EAAAA,WAAW,GAAe;AAAA,QAAdC,KAAc,uEAAN,IAAM;;AAAA;;AAAA,oCAKF,IALE;;AACxB,SAAKA,KAAL,GAAaA,KAAb;AACD,GAP2B,CAS5B;;;AAGAC,EAAAA,MAAM,CACJC,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,CACJH,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDE,EAAAA,MAAM,CACJJ,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDG,EAAAA,OAAO,CACLL,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAEDI,EAAAA,OAAO,CACLN,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAEDK,EAAAA,aAAa,CACXP,SADW,EAEXC,IAFW,EAGXC,KAHW,EAIS;AACpB,WAAO,KAAP;AACD;;AAEDM,EAAAA,aAAa,CACXR,SADW,EAEXC,IAFW,EAGXC,KAHW,EAIS;AACpB,WAAO,KAAP;AACD;;AAEDO,EAAAA,IAAI,CACFT,SADE,EAEFC,IAFE,EAGFC,KAHE,EAIkB;AACpB,WAAO,KAAP;AACD;;AAEDQ,EAAAA,OAAO,CACLV,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAlF2B;AAqF9B,eAAeN,gBAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport { EventHandlerResult } from './EventHandlerResult';\nimport Grid from './Grid';\nimport { GridPoint } from './GridUtils';\n\n/**\n * Some events we listen to are a native mouse event, and others are wrapped with React's SyntheticEvent.\n * The GridMouseHandler shouldn't care though - the properties it accesses should be common on both types of events.\n */\nexport type GridMouseEvent = MouseEvent | React.MouseEvent;\n\nexport type GridWheelEvent = WheelEvent | React.WheelEvent;\n\nexport type GridMouseHandlerFunctionName =\n | 'onDown'\n | 'onMove'\n | 'onDrag'\n | 'onLeave'\n | 'onClick'\n | 'onContextMenu'\n | 'onDoubleClick'\n | 'onUp'\n | 'onWheel';\n\n/**\n * Define a region in the grid that interacts with the mouse on a grid.\n * Return true from any of the events to indicate they're consumed, and stopPropagation/preventDefault will be called.\n */\nexport class GridMouseHandler {\n order: number;\n\n // What order this mouse handler should trigger in\n // Default to well below any of the GRID mouse handlers 100-1000+\n constructor(order = 5000) {\n this.order = order;\n }\n\n // Cursor to use if this returns
|
|
1
|
+
{"version":3,"sources":["../src/GridMouseHandler.ts"],"names":["GridMouseHandler","constructor","order","onDown","gridPoint","grid","event","onMove","onDrag","onLeave","onClick","onContextMenu","onDoubleClick","onUp","onWheel"],"mappings":";;AAAA;;AACA;;AAKA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAAN,CAAuB;AAG5B;AACA;AACAC,EAAAA,WAAW,GAAe;AAAA,QAAdC,KAAc,uEAAN,IAAM;;AAAA;;AAAA,oCAKF,IALE;;AACxB,SAAKA,KAAL,GAAaA,KAAb;AACD,GAP2B,CAS5B;;;AAGAC,EAAAA,MAAM,CACJC,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,CACJH,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDE,EAAAA,MAAM,CACJJ,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,WAAO,KAAP;AACD;;AAEDG,EAAAA,OAAO,CACLL,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAEDI,EAAAA,OAAO,CACLN,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAEDK,EAAAA,aAAa,CACXP,SADW,EAEXC,IAFW,EAGXC,KAHW,EAIS;AACpB,WAAO,KAAP;AACD;;AAEDM,EAAAA,aAAa,CACXR,SADW,EAEXC,IAFW,EAGXC,KAHW,EAIS;AACpB,WAAO,KAAP;AACD;;AAEDO,EAAAA,IAAI,CACFT,SADE,EAEFC,IAFE,EAGFC,KAHE,EAIkB;AACpB,WAAO,KAAP;AACD;;AAEDQ,EAAAA,OAAO,CACLV,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB,WAAO,KAAP;AACD;;AAlF2B;AAqF9B,eAAeN,gBAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport { EventHandlerResult } from './EventHandlerResult';\nimport Grid from './Grid';\nimport { GridPoint } from './GridUtils';\n\n/**\n * Some events we listen to are a native mouse event, and others are wrapped with React's SyntheticEvent.\n * The GridMouseHandler shouldn't care though - the properties it accesses should be common on both types of events.\n */\nexport type GridMouseEvent = MouseEvent | React.MouseEvent;\n\nexport type GridWheelEvent = WheelEvent | React.WheelEvent;\n\nexport type GridMouseHandlerFunctionName =\n | 'onDown'\n | 'onMove'\n | 'onDrag'\n | 'onLeave'\n | 'onClick'\n | 'onContextMenu'\n | 'onDoubleClick'\n | 'onUp'\n | 'onWheel';\n\n/**\n * Define a region in the grid that interacts with the mouse on a grid.\n * Return true from any of the events to indicate they're consumed, and stopPropagation/preventDefault will be called.\n */\nexport class GridMouseHandler {\n order: number;\n\n // What order this mouse handler should trigger in. Smaller numbers trigger first\n // Default to well below any of the GRID mouse handlers 100-1000+\n constructor(order = 5000) {\n this.order = order;\n }\n\n // Cursor to use if this returns any truthy value including { stopPropagation: false, preventDefault: false }\n cursor: string | null = null;\n\n onDown(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onMove(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onDrag(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onLeave(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onContextMenu(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onDoubleClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onUp(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n\n onWheel(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n return false;\n }\n}\n\nexport default GridMouseHandler;\n"],"file":"GridMouseHandler.js"}
|
package/dist/GridRenderer.d.ts
CHANGED
|
@@ -100,6 +100,22 @@ export declare class GridRenderer {
|
|
|
100
100
|
drawCellBackground(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex, rowAfter?: VisibleIndex): void;
|
|
101
101
|
drawCellContents(context: CanvasRenderingContext2D, state: GridRenderState): void;
|
|
102
102
|
drawColumnCellContents(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex): void;
|
|
103
|
+
/**
|
|
104
|
+
* Gets textWidth and X-Y position for a specific cell
|
|
105
|
+
* The textWidth returned is the width that the text can occupy accounting for any other cell markings
|
|
106
|
+
* The width accounts for tree table indents and cell padding, so it is the width the text may consume
|
|
107
|
+
*
|
|
108
|
+
* @param context Canvas context
|
|
109
|
+
* @param state GridRenderState to get the text metrics for
|
|
110
|
+
* @param column Column of cell to get text metrics for
|
|
111
|
+
* @param row Row of cell to get text metrics for
|
|
112
|
+
* @returns Object with width, x, and y of the text
|
|
113
|
+
*/
|
|
114
|
+
getTextRenderMetrics(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex): {
|
|
115
|
+
width: number;
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
};
|
|
103
119
|
drawCellContent(context: CanvasRenderingContext2D, state: GridRenderState, column: VisibleIndex, row: VisibleIndex, textOverride?: string): void;
|
|
104
120
|
drawCellRowTreeMarker(context: CanvasRenderingContext2D, state: GridRenderState, row: VisibleIndex): void;
|
|
105
121
|
drawTreeMarker(context: CanvasRenderingContext2D, state: GridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: GridColor, isExpanded: boolean): void;
|
|
@@ -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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"}
|
package/dist/GridRenderer.js
CHANGED
|
@@ -881,8 +881,23 @@ export class GridRenderer {
|
|
|
881
881
|
|
|
882
882
|
context.restore();
|
|
883
883
|
}
|
|
884
|
+
/**
|
|
885
|
+
* Gets textWidth and X-Y position for a specific cell
|
|
886
|
+
* The textWidth returned is the width that the text can occupy accounting for any other cell markings
|
|
887
|
+
* The width accounts for tree table indents and cell padding, so it is the width the text may consume
|
|
888
|
+
*
|
|
889
|
+
* @param context Canvas context
|
|
890
|
+
* @param state GridRenderState to get the text metrics for
|
|
891
|
+
* @param column Column of cell to get text metrics for
|
|
892
|
+
* @param row Row of cell to get text metrics for
|
|
893
|
+
* @returns Object with width, x, and y of the text
|
|
894
|
+
*/
|
|
884
895
|
|
|
885
|
-
|
|
896
|
+
|
|
897
|
+
getTextRenderMetrics(context, state, column, row) {
|
|
898
|
+
var {
|
|
899
|
+
textAlign
|
|
900
|
+
} = context;
|
|
886
901
|
var {
|
|
887
902
|
metrics,
|
|
888
903
|
model,
|
|
@@ -890,9 +905,6 @@ export class GridRenderer {
|
|
|
890
905
|
} = state;
|
|
891
906
|
var {
|
|
892
907
|
firstColumn,
|
|
893
|
-
fontWidths,
|
|
894
|
-
modelColumns,
|
|
895
|
-
modelRows,
|
|
896
908
|
visibleColumnXs,
|
|
897
909
|
visibleColumnWidths,
|
|
898
910
|
visibleRowYs,
|
|
@@ -901,13 +913,54 @@ export class GridRenderer {
|
|
|
901
913
|
var {
|
|
902
914
|
cellHorizontalPadding,
|
|
903
915
|
treeDepthIndent,
|
|
904
|
-
treeHorizontalPadding
|
|
905
|
-
textColor
|
|
916
|
+
treeHorizontalPadding
|
|
906
917
|
} = theme;
|
|
907
918
|
var x = getOrThrow(visibleColumnXs, column);
|
|
908
919
|
var y = getOrThrow(visibleRowYs, row);
|
|
909
920
|
var columnWidth = getOrThrow(visibleColumnWidths, column);
|
|
910
921
|
var rowHeight = getOrThrow(visibleRowHeights, row);
|
|
922
|
+
var isFirstColumn = column === firstColumn;
|
|
923
|
+
var treeIndent = 0;
|
|
924
|
+
|
|
925
|
+
if (isExpandableGridModel(model) && model.hasExpandableRows && isFirstColumn) {
|
|
926
|
+
treeIndent = treeDepthIndent * (model.depthForRow(row) + 1) + treeHorizontalPadding;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
var textWidth = columnWidth - treeIndent;
|
|
930
|
+
var textX = x + cellHorizontalPadding;
|
|
931
|
+
var textY = y + rowHeight * 0.5;
|
|
932
|
+
|
|
933
|
+
if (textAlign === 'right') {
|
|
934
|
+
textX = x + textWidth - cellHorizontalPadding;
|
|
935
|
+
} else if (textAlign === 'center') {
|
|
936
|
+
textX = x + textWidth * 0.5;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
textX += treeIndent;
|
|
940
|
+
return {
|
|
941
|
+
width: textWidth - cellHorizontalPadding * 2,
|
|
942
|
+
x: textX,
|
|
943
|
+
y: textY
|
|
944
|
+
};
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
drawCellContent(context, state, column, row, textOverride) {
|
|
948
|
+
var {
|
|
949
|
+
metrics,
|
|
950
|
+
model,
|
|
951
|
+
theme
|
|
952
|
+
} = state;
|
|
953
|
+
var {
|
|
954
|
+
firstColumn,
|
|
955
|
+
fontWidths,
|
|
956
|
+
modelColumns,
|
|
957
|
+
modelRows,
|
|
958
|
+
visibleRowHeights
|
|
959
|
+
} = metrics;
|
|
960
|
+
var {
|
|
961
|
+
textColor
|
|
962
|
+
} = theme;
|
|
963
|
+
var rowHeight = getOrThrow(visibleRowHeights, row);
|
|
911
964
|
var modelRow = getOrThrow(modelRows, row);
|
|
912
965
|
var modelColumn = getOrThrow(modelColumns, column);
|
|
913
966
|
var text = textOverride !== null && textOverride !== void 0 ? textOverride : model.textForCell(modelColumn, modelRow);
|
|
@@ -920,27 +973,13 @@ export class GridRenderer {
|
|
|
920
973
|
context.textAlign = textAlign;
|
|
921
974
|
var color = model.colorForCell(modelColumn, modelRow, theme) || textColor;
|
|
922
975
|
context.fillStyle = color;
|
|
923
|
-
var
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
var textWidth = columnWidth - treeIndent;
|
|
930
|
-
var textX = x + cellHorizontalPadding;
|
|
931
|
-
var textY = y + rowHeight * 0.5;
|
|
932
|
-
|
|
933
|
-
if (textAlign === 'right') {
|
|
934
|
-
textX = x + textWidth - cellHorizontalPadding;
|
|
935
|
-
} else if (textAlign === 'center') {
|
|
936
|
-
textX = x + textWidth * 0.5;
|
|
937
|
-
} else {
|
|
938
|
-
textX = x + cellHorizontalPadding;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
textX += treeIndent;
|
|
976
|
+
var {
|
|
977
|
+
width: textWidth,
|
|
978
|
+
x: textX,
|
|
979
|
+
y: textY
|
|
980
|
+
} = this.getTextRenderMetrics(context, state, column, row);
|
|
942
981
|
var fontWidth = (_fontWidths$get = fontWidths.get(context.font)) !== null && _fontWidths$get !== void 0 ? _fontWidths$get : GridRenderer.DEFAULT_FONT_WIDTH;
|
|
943
|
-
var truncatedText = this.getCachedTruncatedString(context, text, textWidth
|
|
982
|
+
var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidth);
|
|
944
983
|
|
|
945
984
|
if (truncatedText) {
|
|
946
985
|
context.fillText(truncatedText, textX, textY);
|