@deephaven/grid 0.104.1-virtual-webgl.11 → 0.105.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CellRenderer.d.ts +1 -1
- package/dist/CellRenderer.d.ts.map +1 -1
- package/dist/CellRenderer.js +1 -1
- package/dist/CellRenderer.js.map +1 -1
- package/dist/DataBarCellRenderer.d.ts.map +1 -1
- package/dist/DataBarCellRenderer.js +5 -5
- package/dist/DataBarCellRenderer.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts +21 -10
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +89 -33
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMetrics.d.ts +2 -1
- package/dist/GridMetrics.d.ts.map +1 -1
- package/dist/GridMetrics.js.map +1 -1
- package/dist/GridRenderer.d.ts +2 -1
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +16 -17
- package/dist/GridRenderer.js.map +1 -1
- package/dist/TextCellRenderer.d.ts.map +1 -1
- package/dist/TextCellRenderer.js +11 -10
- package/dist/TextCellRenderer.js.map +1 -1
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextCellRenderer.d.ts","sourceRoot":"","sources":["../src/TextCellRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,
|
1
|
+
{"version":3,"file":"TextCellRenderer.d.ts","sourceRoot":"","sources":["../src/TextCellRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAkB,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,KAAK,oBAAoB,MAAM,wBAAwB,CAAC;AAE/D,cAAM,gBAAiB,SAAQ,YAAa,YAAW,oBAAoB;IACzE,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;IAoGP;;;;;;OAMG;IACH,2BAA2B,CACzB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,eAAe,GACrB,QAAQ,EAAE;IAwEb,gBAAgB,CACd,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,eAAe,GACrB,IAAI;IAOP;;OAEG;IACH,iCAAiC,mBAEd,MAAM,UACb,KAAK,EAAE,SAGR,MAAM,aACF,kBAAkB,cACjB,MAAM,WACT,wBAAwB,KAChC,QAAQ,EAAE,uDARI,MAAM,UACb,KAAK,EAAE,SAGR,MAAM,aACF,kBAAkB,cACjB,MAAM,WACT,wBAAwB,KAChC,QAAQ,EAAE,EAgDb;CACH;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/TextCellRenderer.js
CHANGED
@@ -5,7 +5,6 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
5
5
|
import { EMPTY_ARRAY, getOrThrow } from '@deephaven/utils';
|
6
6
|
import CellRenderer from "./CellRenderer.js";
|
7
7
|
import { isExpandableGridModel } from "./ExpandableGridModel.js";
|
8
|
-
import { DEFAULT_FONT_WIDTH } from "./GridRendererTypes.js";
|
9
8
|
import GridUtils from "./GridUtils.js";
|
10
9
|
import memoizeClear from "./memoizeClear.js";
|
11
10
|
class TextCellRenderer extends CellRenderer {
|
@@ -61,7 +60,8 @@ class TextCellRenderer extends CellRenderer {
|
|
61
60
|
theme
|
62
61
|
} = state;
|
63
62
|
var {
|
64
|
-
|
63
|
+
fontWidthsLower,
|
64
|
+
fontWidthsUpper,
|
65
65
|
modelColumns,
|
66
66
|
modelRows,
|
67
67
|
allRowHeights,
|
@@ -77,7 +77,6 @@ class TextCellRenderer extends CellRenderer {
|
|
77
77
|
var text = model.textForCell(modelColumn, modelRow);
|
78
78
|
var truncationChar = model.truncationCharForCell(modelColumn, modelRow);
|
79
79
|
if (text && rowHeight > 0) {
|
80
|
-
var _fontWidths$get;
|
81
80
|
var textAlign = model.textAlignForCell(modelColumn, modelRow) || 'left';
|
82
81
|
context.textAlign = textAlign;
|
83
82
|
var color = model.colorForCell(modelColumn, modelRow, theme) || textColor;
|
@@ -88,8 +87,9 @@ class TextCellRenderer extends CellRenderer {
|
|
88
87
|
x: textX,
|
89
88
|
y: textY
|
90
89
|
} = GridUtils.getTextRenderMetrics(state, column, row);
|
91
|
-
var
|
92
|
-
var
|
90
|
+
var fontWidthLower = fontWidthsLower.get(context.font);
|
91
|
+
var fontWidthUpper = fontWidthsUpper.get(context.font);
|
92
|
+
var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidthLower, fontWidthUpper, truncationChar);
|
93
93
|
var tokens = model.tokensForCell(modelColumn, modelRow, truncatedText.length);
|
94
94
|
if (truncatedText) {
|
95
95
|
var tokenIndex = 0;
|
@@ -107,7 +107,7 @@ class TextCellRenderer extends CellRenderer {
|
|
107
107
|
var {
|
108
108
|
width
|
109
109
|
} = context.measureText(value);
|
110
|
-
var widthOfUnderline = value.endsWith('…') ? context.measureText(
|
110
|
+
var widthOfUnderline = value.endsWith('…') ? width - context.measureText('…').width : width;
|
111
111
|
|
112
112
|
// Set the styling based on the token, then draw the text
|
113
113
|
if (token != null) {
|
@@ -138,7 +138,6 @@ class TextCellRenderer extends CellRenderer {
|
|
138
138
|
* @returns An array of TokenBox of visible tokens or empty array with coordinates relative to gridX and gridY
|
139
139
|
*/
|
140
140
|
getTokenBoxesForVisibleCell(column, row, state) {
|
141
|
-
var _fontWidths$get2;
|
142
141
|
var {
|
143
142
|
metrics,
|
144
143
|
context,
|
@@ -161,15 +160,17 @@ class TextCellRenderer extends CellRenderer {
|
|
161
160
|
y: textY
|
162
161
|
} = GridUtils.getTextRenderMetrics(state, column, row);
|
163
162
|
var {
|
164
|
-
|
163
|
+
fontWidthsLower,
|
164
|
+
fontWidthsUpper
|
165
165
|
} = metrics;
|
166
166
|
|
167
167
|
// Set the font and baseline and change it back after
|
168
168
|
context.save();
|
169
169
|
this.configureContext(context, state);
|
170
|
-
var
|
170
|
+
var fontWidthLower = fontWidthsLower.get(context.font);
|
171
|
+
var fontWidthUpper = fontWidthsUpper.get(context.font);
|
171
172
|
var truncationChar = model.truncationCharForCell(modelColumn, modelRow);
|
172
|
-
var truncatedText = this.getCachedTruncatedString(context, text, textWidth,
|
173
|
+
var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidthLower, fontWidthUpper, truncationChar);
|
173
174
|
var {
|
174
175
|
actualBoundingBoxAscent,
|
175
176
|
actualBoundingBoxDescent
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextCellRenderer.js","names":["EMPTY_ARRAY","getOrThrow","CellRenderer","isExpandableGridModel","DEFAULT_FONT_WIDTH","GridUtils","memoizeClear","TextCellRenderer","constructor","arguments","_defineProperty","truncatedText","tokens","_font","_baseline","textHeight","context","top","bottom","tokenBoxes","lastTokenEnd","currentTextWidth","i","length","token","start","end","value","substring","measureText","width","tokenWidth","left","right","newTokenBox","x1","y1","x2","y2","push","max","drawCellContent","state","column","row","metrics","model","theme","fontWidths","modelColumns","modelRows","allRowHeights","firstColumn","isFirstColumn","textColor","rowHeight","modelRow","modelColumn","text","textForCell","truncationChar","truncationCharForCell","_fontWidths$get","textAlign","textAlignForCell","color","colorForCell","fillStyle","save","textWidth","x","textX","y","textY","getTextRenderMetrics","fontWidth","get","font","getCachedTruncatedString","tokensForCell","tokenIndex","textStart","actualBoundingBoxDescent","_ref","_token$end","nextToken","textEnd","widthOfUnderline","endsWith","hyperlinkColor","fillText","fillRect","restore","hasExpandableRows","drawCellRowTreeMarker","getTokenBoxesForVisibleCell","_fontWidths$get2","configureContext","actualBoundingBoxAscent","cachedTokenBoxes","getCachedTokenBoxesForVisibleCell","map","tokenBox","textBaseline","lineCap"],"sources":["../src/TextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { EMPTY_ARRAY, getOrThrow } from '@deephaven/utils';\nimport CellRenderer from './CellRenderer';\nimport { isExpandableGridModel } from './ExpandableGridModel';\nimport { type VisibleIndex } from './GridMetrics';\nimport { DEFAULT_FONT_WIDTH, type GridRenderState } from './GridRendererTypes';\nimport GridUtils, { type TokenBox, type Token } from './GridUtils';\nimport memoizeClear from './memoizeClear';\nimport type TokenBoxCellRenderer from './TokenBoxCellRenderer';\n\nclass TextCellRenderer extends CellRenderer implements TokenBoxCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model, theme } = state;\n const { fontWidths, modelColumns, modelRows, allRowHeights, firstColumn } =\n metrics;\n const isFirstColumn = column === firstColumn;\n const { textColor } = theme;\n const rowHeight = getOrThrow(allRowHeights, row);\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n const text = model.textForCell(modelColumn, modelRow);\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n\n if (text && rowHeight > 0) {\n const textAlign = model.textAlignForCell(modelColumn, modelRow) || 'left';\n context.textAlign = textAlign;\n\n const color =\n model.colorForCell(modelColumn, modelRow, theme) || textColor;\n context.fillStyle = color;\n\n context.save();\n\n const {\n width: textWidth,\n x: textX,\n y: textY,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const fontWidth = fontWidths.get(context.font) ?? DEFAULT_FONT_WIDTH;\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidth,\n truncationChar\n );\n\n const tokens = model.tokensForCell(\n modelColumn,\n modelRow,\n truncatedText.length\n );\n\n if (truncatedText) {\n let tokenIndex = 0;\n let textStart = 0;\n let left = textX;\n const { actualBoundingBoxDescent } = context.measureText(truncatedText);\n\n while (textStart < truncatedText.length) {\n const nextToken = tokens[tokenIndex];\n const token = textStart === nextToken?.start ? nextToken : null;\n const textEnd =\n token?.end ?? nextToken?.start ?? truncatedText.length;\n const value = truncatedText.substring(textStart, textEnd);\n const { width } = context.measureText(value);\n const widthOfUnderline = value.endsWith('…')\n ? context.measureText(value.substring(0, value.length - 1)).width\n : width;\n\n // Set the styling based on the token, then draw the text\n if (token != null) {\n context.fillStyle = theme.hyperlinkColor;\n context.fillText(value, left, textY);\n context.fillRect(\n left,\n textY + actualBoundingBoxDescent,\n widthOfUnderline,\n 1\n );\n } else {\n context.fillStyle = color;\n context.fillText(value, left, textY);\n }\n\n left += width;\n textStart = textEnd;\n if (token != null) tokenIndex += 1;\n }\n }\n context.restore();\n }\n\n if (\n isFirstColumn &&\n isExpandableGridModel(model) &&\n model.hasExpandableRows\n ) {\n this.drawCellRowTreeMarker(context, state, row);\n }\n }\n\n /**\n * Gets the token boxes that are visible in the cell\n * @param column The visible column\n * @param row The visible row\n * @param state The GridRenderState\n * @returns An array of TokenBox of visible tokens or empty array with coordinates relative to gridX and gridY\n */\n getTokenBoxesForVisibleCell(\n column: VisibleIndex,\n row: VisibleIndex,\n state: GridRenderState\n ): TokenBox[] {\n const { metrics, context, model, theme } = state;\n\n if (context == null || metrics == null) {\n return EMPTY_ARRAY as unknown as TokenBox[];\n }\n\n const { modelRows, modelColumns } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n\n const text = model.textForCell(modelColumn, modelRow);\n const {\n width: textWidth,\n x: textX,\n y: textY,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { fontWidths } = metrics;\n\n // Set the font and baseline and change it back after\n context.save();\n this.configureContext(context, state);\n\n const fontWidth = fontWidths?.get(context.font) ?? DEFAULT_FONT_WIDTH;\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidth,\n truncationChar\n );\n\n const { actualBoundingBoxAscent, actualBoundingBoxDescent } =\n context.measureText(truncatedText);\n const textHeight = actualBoundingBoxAscent + actualBoundingBoxDescent;\n\n const tokens = model.tokensForCell(\n modelColumn,\n modelRow,\n truncatedText.length\n );\n\n // Check if the truncated text contains a link\n if (tokens.length === 0) {\n context.restore();\n return EMPTY_ARRAY as unknown as TokenBox[];\n }\n\n const cachedTokenBoxes = this.getCachedTokenBoxesForVisibleCell(\n truncatedText,\n tokens,\n theme.font,\n 'middle',\n textHeight,\n context\n ).map(tokenBox => ({\n x1: tokenBox.x1 + textX,\n y1: tokenBox.y1 + (textY - actualBoundingBoxAscent),\n x2: tokenBox.x2 + textX,\n y2: tokenBox.y2 + (textY - actualBoundingBoxAscent),\n token: tokenBox.token,\n }));\n\n context.restore();\n\n return cachedTokenBoxes;\n }\n\n configureContext(\n context: CanvasRenderingContext2D,\n state: GridRenderState\n ): void {\n const { theme } = state;\n context.font = theme.font;\n context.textBaseline = 'middle';\n context.lineCap = 'butt';\n }\n\n /**\n * Returns an array of token boxes with the coordinates relative to the top left corner of the text\n */\n getCachedTokenBoxesForVisibleCell = memoizeClear(\n (\n truncatedText: string,\n tokens: Token[],\n // _font and _baseline are passed in so value is re-calculated when they change\n // They should already be set on the `context`, so they are not used in this method\n _font: string,\n _baseline: CanvasTextBaseline,\n textHeight: number,\n context: CanvasRenderingContext2D\n ): TokenBox[] => {\n const top = 0;\n const bottom = textHeight;\n\n const tokenBoxes: TokenBox[] = [];\n\n // The index where the last token ended\n let lastTokenEnd = 0;\n // The width of the text preceding the current token\n let currentTextWidth = 0;\n // Loop through array and push them to array\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i];\n const { start, end } = token;\n // The last token value is calculated based on the full text so the value needs to be truncated\n const value =\n end > truncatedText.length\n ? truncatedText.substring(start)\n : token.value;\n\n // Add the width of the text in between this token and the last token\n currentTextWidth += context.measureText(\n truncatedText.substring(lastTokenEnd, start)\n ).width;\n const tokenWidth = context.measureText(value).width;\n\n // Check if the x position is less than the grid x, then tokenWidth should be shifted by gridX - startX\n\n const left = currentTextWidth;\n const right = left + tokenWidth;\n\n const newTokenBox: TokenBox = {\n x1: left,\n y1: top,\n x2: right,\n y2: bottom,\n token,\n };\n\n tokenBoxes.push(newTokenBox);\n\n lastTokenEnd = end;\n currentTextWidth += tokenWidth;\n }\n\n return tokenBoxes;\n },\n { max: 10000 }\n );\n}\n\nexport default TextCellRenderer;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"TextCellRenderer.js","names":["EMPTY_ARRAY","getOrThrow","CellRenderer","isExpandableGridModel","GridUtils","memoizeClear","TextCellRenderer","constructor","arguments","_defineProperty","truncatedText","tokens","_font","_baseline","textHeight","context","top","bottom","tokenBoxes","lastTokenEnd","currentTextWidth","i","length","token","start","end","value","substring","measureText","width","tokenWidth","left","right","newTokenBox","x1","y1","x2","y2","push","max","drawCellContent","state","column","row","metrics","model","theme","fontWidthsLower","fontWidthsUpper","modelColumns","modelRows","allRowHeights","firstColumn","isFirstColumn","textColor","rowHeight","modelRow","modelColumn","text","textForCell","truncationChar","truncationCharForCell","textAlign","textAlignForCell","color","colorForCell","fillStyle","save","textWidth","x","textX","y","textY","getTextRenderMetrics","fontWidthLower","get","font","fontWidthUpper","getCachedTruncatedString","tokensForCell","tokenIndex","textStart","actualBoundingBoxDescent","_ref","_token$end","nextToken","textEnd","widthOfUnderline","endsWith","hyperlinkColor","fillText","fillRect","restore","hasExpandableRows","drawCellRowTreeMarker","getTokenBoxesForVisibleCell","configureContext","actualBoundingBoxAscent","cachedTokenBoxes","getCachedTokenBoxesForVisibleCell","map","tokenBox","textBaseline","lineCap"],"sources":["../src/TextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { EMPTY_ARRAY, getOrThrow } from '@deephaven/utils';\nimport CellRenderer from './CellRenderer';\nimport { isExpandableGridModel } from './ExpandableGridModel';\nimport { type VisibleIndex } from './GridMetrics';\nimport { type GridRenderState } from './GridRendererTypes';\nimport GridUtils, { type TokenBox, type Token } from './GridUtils';\nimport memoizeClear from './memoizeClear';\nimport type TokenBoxCellRenderer from './TokenBoxCellRenderer';\n\nclass TextCellRenderer extends CellRenderer implements TokenBoxCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: GridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model, theme } = state;\n const {\n fontWidthsLower,\n fontWidthsUpper,\n modelColumns,\n modelRows,\n allRowHeights,\n firstColumn,\n } = metrics;\n const isFirstColumn = column === firstColumn;\n const { textColor } = theme;\n const rowHeight = getOrThrow(allRowHeights, row);\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n const text = model.textForCell(modelColumn, modelRow);\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n\n if (text && rowHeight > 0) {\n const textAlign = model.textAlignForCell(modelColumn, modelRow) || 'left';\n context.textAlign = textAlign;\n\n const color =\n model.colorForCell(modelColumn, modelRow, theme) || textColor;\n context.fillStyle = color;\n\n context.save();\n\n const {\n width: textWidth,\n x: textX,\n y: textY,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const fontWidthLower = fontWidthsLower.get(context.font);\n const fontWidthUpper = fontWidthsUpper.get(context.font);\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n truncationChar\n );\n\n const tokens = model.tokensForCell(\n modelColumn,\n modelRow,\n truncatedText.length\n );\n\n if (truncatedText) {\n let tokenIndex = 0;\n let textStart = 0;\n let left = textX;\n const { actualBoundingBoxDescent } = context.measureText(truncatedText);\n\n while (textStart < truncatedText.length) {\n const nextToken = tokens[tokenIndex];\n const token = textStart === nextToken?.start ? nextToken : null;\n const textEnd =\n token?.end ?? nextToken?.start ?? truncatedText.length;\n const value = truncatedText.substring(textStart, textEnd);\n const { width } = context.measureText(value);\n const widthOfUnderline = value.endsWith('…')\n ? width - context.measureText('…').width\n : width;\n\n // Set the styling based on the token, then draw the text\n if (token != null) {\n context.fillStyle = theme.hyperlinkColor;\n context.fillText(value, left, textY);\n context.fillRect(\n left,\n textY + actualBoundingBoxDescent,\n widthOfUnderline,\n 1\n );\n } else {\n context.fillStyle = color;\n context.fillText(value, left, textY);\n }\n\n left += width;\n textStart = textEnd;\n if (token != null) tokenIndex += 1;\n }\n }\n context.restore();\n }\n\n if (\n isFirstColumn &&\n isExpandableGridModel(model) &&\n model.hasExpandableRows\n ) {\n this.drawCellRowTreeMarker(context, state, row);\n }\n }\n\n /**\n * Gets the token boxes that are visible in the cell\n * @param column The visible column\n * @param row The visible row\n * @param state The GridRenderState\n * @returns An array of TokenBox of visible tokens or empty array with coordinates relative to gridX and gridY\n */\n getTokenBoxesForVisibleCell(\n column: VisibleIndex,\n row: VisibleIndex,\n state: GridRenderState\n ): TokenBox[] {\n const { metrics, context, model, theme } = state;\n\n if (context == null || metrics == null) {\n return EMPTY_ARRAY as unknown as TokenBox[];\n }\n\n const { modelRows, modelColumns } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = getOrThrow(modelColumns, column);\n\n const text = model.textForCell(modelColumn, modelRow);\n const {\n width: textWidth,\n x: textX,\n y: textY,\n } = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { fontWidthsLower, fontWidthsUpper } = metrics;\n\n // Set the font and baseline and change it back after\n context.save();\n this.configureContext(context, state);\n\n const fontWidthLower = fontWidthsLower.get(context.font);\n const fontWidthUpper = fontWidthsUpper.get(context.font);\n const truncationChar = model.truncationCharForCell(modelColumn, modelRow);\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n truncationChar\n );\n\n const { actualBoundingBoxAscent, actualBoundingBoxDescent } =\n context.measureText(truncatedText);\n const textHeight = actualBoundingBoxAscent + actualBoundingBoxDescent;\n\n const tokens = model.tokensForCell(\n modelColumn,\n modelRow,\n truncatedText.length\n );\n\n // Check if the truncated text contains a link\n if (tokens.length === 0) {\n context.restore();\n return EMPTY_ARRAY as unknown as TokenBox[];\n }\n\n const cachedTokenBoxes = this.getCachedTokenBoxesForVisibleCell(\n truncatedText,\n tokens,\n theme.font,\n 'middle',\n textHeight,\n context\n ).map(tokenBox => ({\n x1: tokenBox.x1 + textX,\n y1: tokenBox.y1 + (textY - actualBoundingBoxAscent),\n x2: tokenBox.x2 + textX,\n y2: tokenBox.y2 + (textY - actualBoundingBoxAscent),\n token: tokenBox.token,\n }));\n\n context.restore();\n\n return cachedTokenBoxes;\n }\n\n configureContext(\n context: CanvasRenderingContext2D,\n state: GridRenderState\n ): void {\n const { theme } = state;\n context.font = theme.font;\n context.textBaseline = 'middle';\n context.lineCap = 'butt';\n }\n\n /**\n * Returns an array of token boxes with the coordinates relative to the top left corner of the text\n */\n getCachedTokenBoxesForVisibleCell = memoizeClear(\n (\n truncatedText: string,\n tokens: Token[],\n // _font and _baseline are passed in so value is re-calculated when they change\n // They should already be set on the `context`, so they are not used in this method\n _font: string,\n _baseline: CanvasTextBaseline,\n textHeight: number,\n context: CanvasRenderingContext2D\n ): TokenBox[] => {\n const top = 0;\n const bottom = textHeight;\n\n const tokenBoxes: TokenBox[] = [];\n\n // The index where the last token ended\n let lastTokenEnd = 0;\n // The width of the text preceding the current token\n let currentTextWidth = 0;\n // Loop through array and push them to array\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i];\n const { start, end } = token;\n // The last token value is calculated based on the full text so the value needs to be truncated\n const value =\n end > truncatedText.length\n ? truncatedText.substring(start)\n : token.value;\n\n // Add the width of the text in between this token and the last token\n currentTextWidth += context.measureText(\n truncatedText.substring(lastTokenEnd, start)\n ).width;\n const tokenWidth = context.measureText(value).width;\n\n // Check if the x position is less than the grid x, then tokenWidth should be shifted by gridX - startX\n\n const left = currentTextWidth;\n const right = left + tokenWidth;\n\n const newTokenBox: TokenBox = {\n x1: left,\n y1: top,\n x2: right,\n y2: bottom,\n token,\n };\n\n tokenBoxes.push(newTokenBox);\n\n lastTokenEnd = end;\n currentTextWidth += tokenWidth;\n }\n\n return tokenBoxes;\n },\n { max: 10000 }\n );\n}\n\nexport default TextCellRenderer;\n"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@deephaven/grid",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.105.1-beta.0+97c59b02",
|
4
4
|
"description": "Deephaven React grid component",
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
6
6
|
"license": "Apache-2.0",
|
@@ -31,7 +31,7 @@
|
|
31
31
|
"*.css"
|
32
32
|
],
|
33
33
|
"dependencies": {
|
34
|
-
"@deephaven/utils": "^0.
|
34
|
+
"@deephaven/utils": "^0.105.1-beta.0+97c59b02",
|
35
35
|
"classnames": "^2.3.1",
|
36
36
|
"color-convert": "^2.0.1",
|
37
37
|
"event-target-shim": "^6.0.2",
|
@@ -44,5 +44,5 @@
|
|
44
44
|
"publishConfig": {
|
45
45
|
"access": "public"
|
46
46
|
},
|
47
|
-
"gitHead": "
|
47
|
+
"gitHead": "97c59b021737c590429aa58b65b970afc99fda23"
|
48
48
|
}
|