@deephaven/iris-grid 0.41.2-beta.4 → 0.41.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/AdvancedFilterCreatorSelectValueList.d.ts +2 -2
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +1 -12
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/IrisGrid.css +0 -3
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGridRenderer.d.ts +26 -18
- package/dist/IrisGridRenderer.d.ts.map +1 -1
- package/dist/IrisGridRenderer.js +205 -64
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +2 -2
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +3 -15
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTheme.d.ts.map +1 -1
- package/dist/IrisGridTheme.js +1 -4
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridTheme.module.css +0 -3
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +0 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +7 -73
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +3 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/package.json +16 -16
- package/dist/IrisGridCellRendererUtils.d.ts +0 -7
- package/dist/IrisGridCellRendererUtils.d.ts.map +0 -1
- package/dist/IrisGridCellRendererUtils.js +0 -20
- package/dist/IrisGridCellRendererUtils.js.map +0 -1
- package/dist/IrisGridDataBarCellRenderer.d.ts +0 -7
- package/dist/IrisGridDataBarCellRenderer.d.ts.map +0 -1
- package/dist/IrisGridDataBarCellRenderer.js +0 -10
- package/dist/IrisGridDataBarCellRenderer.js.map +0 -1
- package/dist/IrisGridIcons.d.ts +0 -4
- package/dist/IrisGridIcons.d.ts.map +0 -1
- package/dist/IrisGridIcons.js +0 -25
- package/dist/IrisGridIcons.js.map +0 -1
- package/dist/IrisGridTextCellRenderer.d.ts +0 -20
- package/dist/IrisGridTextCellRenderer.d.ts.map +0 -1
- package/dist/IrisGridTextCellRenderer.js +0 -139
- package/dist/IrisGridTextCellRenderer.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.41.
|
|
3
|
+
"version": "0.41.3",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@deephaven/components": "^0.41.
|
|
27
|
-
"@deephaven/console": "^0.41.
|
|
28
|
-
"@deephaven/filters": "^0.41.
|
|
29
|
-
"@deephaven/grid": "^0.41.
|
|
30
|
-
"@deephaven/icons": "^0.41.
|
|
31
|
-
"@deephaven/jsapi-types": "^0.41.
|
|
32
|
-
"@deephaven/jsapi-utils": "^0.41.
|
|
33
|
-
"@deephaven/log": "^0.41.
|
|
34
|
-
"@deephaven/react-hooks": "^0.41.
|
|
35
|
-
"@deephaven/storage": "^0.41.
|
|
36
|
-
"@deephaven/utils": "^0.41.
|
|
26
|
+
"@deephaven/components": "^0.41.0",
|
|
27
|
+
"@deephaven/console": "^0.41.3",
|
|
28
|
+
"@deephaven/filters": "^0.41.0",
|
|
29
|
+
"@deephaven/grid": "^0.41.0",
|
|
30
|
+
"@deephaven/icons": "^0.41.0",
|
|
31
|
+
"@deephaven/jsapi-types": "^0.41.0",
|
|
32
|
+
"@deephaven/jsapi-utils": "^0.41.3",
|
|
33
|
+
"@deephaven/log": "^0.41.0",
|
|
34
|
+
"@deephaven/react-hooks": "^0.41.0",
|
|
35
|
+
"@deephaven/storage": "^0.41.0",
|
|
36
|
+
"@deephaven/utils": "^0.41.0",
|
|
37
37
|
"@dnd-kit/core": "^6.0.5",
|
|
38
38
|
"@dnd-kit/sortable": "^7.0.0",
|
|
39
39
|
"@dnd-kit/utilities": "^3.2.0",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"react-dom": "^17.x"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@deephaven/jsapi-shim": "^0.41.
|
|
60
|
-
"@deephaven/mocks": "^0.41.
|
|
61
|
-
"@deephaven/tsconfig": "^0.41.
|
|
59
|
+
"@deephaven/jsapi-shim": "^0.41.0",
|
|
60
|
+
"@deephaven/mocks": "^0.41.0",
|
|
61
|
+
"@deephaven/tsconfig": "^0.41.0"
|
|
62
62
|
},
|
|
63
63
|
"files": [
|
|
64
64
|
"dist"
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"publishConfig": {
|
|
70
70
|
"access": "public"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "e99b6e8a70e14f019dfe69739190c2eec9517353"
|
|
73
73
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BoxCoordinates, Coordinate } from '@deephaven/grid';
|
|
2
|
-
import { IrisGridRenderState } from './IrisGridRenderer';
|
|
3
|
-
declare class IrisGridCellRendererUtils {
|
|
4
|
-
static drawTreeMarker(context: CanvasRenderingContext2D, state: IrisGridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: string, isExpanded: boolean): void;
|
|
5
|
-
}
|
|
6
|
-
export default IrisGridCellRendererUtils;
|
|
7
|
-
//# sourceMappingURL=IrisGridCellRendererUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellRendererUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridCellRendererUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,cAAM,yBAAyB;IAC7B,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,IAAI;CAeR;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getIcon } from "./IrisGridIcons.js";
|
|
2
|
-
class IrisGridCellRendererUtils {
|
|
3
|
-
static drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
|
|
4
|
-
context.save();
|
|
5
|
-
var {
|
|
6
|
-
x1,
|
|
7
|
-
y1
|
|
8
|
-
} = treeBox;
|
|
9
|
-
var markerIcon = isExpanded ? getIcon('caretDown') : getIcon('caretRight');
|
|
10
|
-
var iconX = columnX + x1 - 2;
|
|
11
|
-
var iconY = rowY + y1 + 2.5;
|
|
12
|
-
context.fillStyle = color;
|
|
13
|
-
context.textAlign = 'center';
|
|
14
|
-
context.translate(iconX, iconY);
|
|
15
|
-
context.fill(markerIcon);
|
|
16
|
-
context.restore();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export default IrisGridCellRendererUtils;
|
|
20
|
-
//# sourceMappingURL=IrisGridCellRendererUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellRendererUtils.js","names":["getIcon","IrisGridCellRendererUtils","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded","save","x1","y1","markerIcon","iconX","iconY","fillStyle","textAlign","translate","fill","restore"],"sources":["../src/IrisGridCellRendererUtils.ts"],"sourcesContent":["import { BoxCoordinates, Coordinate } from '@deephaven/grid';\nimport { getIcon } from './IrisGridIcons';\nimport { IrisGridRenderState } from './IrisGridRenderer';\n\nclass IrisGridCellRendererUtils {\n static drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n context.save();\n const { x1, y1 } = treeBox;\n const markerIcon = isExpanded\n ? getIcon('caretDown')\n : getIcon('caretRight');\n const iconX = columnX + x1 - 2;\n const iconY = rowY + y1 + 2.5;\n\n context.fillStyle = color;\n context.textAlign = 'center';\n context.translate(iconX, iconY);\n context.fill(markerIcon);\n context.restore();\n }\n}\n\nexport default IrisGridCellRendererUtils;\n"],"mappings":"SACSA,OAAO;AAGhB,MAAMC,yBAAyB,CAAC;EAC9B,OAAOC,cAAc,CACnBC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNN,OAAO,CAACO,IAAI,EAAE;IACd,IAAM;MAAEC,EAAE;MAAEC;IAAG,CAAC,GAAGL,OAAO;IAC1B,IAAMM,UAAU,GAAGJ,UAAU,GACzBT,OAAO,CAAC,WAAW,CAAC,GACpBA,OAAO,CAAC,YAAY,CAAC;IACzB,IAAMc,KAAK,GAAGT,OAAO,GAAGM,EAAE,GAAG,CAAC;IAC9B,IAAMI,KAAK,GAAGT,IAAI,GAAGM,EAAE,GAAG,GAAG;IAE7BT,OAAO,CAACa,SAAS,GAAGR,KAAK;IACzBL,OAAO,CAACc,SAAS,GAAG,QAAQ;IAC5Bd,OAAO,CAACe,SAAS,CAACJ,KAAK,EAAEC,KAAK,CAAC;IAC/BZ,OAAO,CAACgB,IAAI,CAACN,UAAU,CAAC;IACxBV,OAAO,CAACiB,OAAO,EAAE;EACnB;AACF;AAEA,eAAenB,yBAAyB"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BoxCoordinates, Coordinate, DataBarCellRenderer } from '@deephaven/grid';
|
|
2
|
-
import { IrisGridRenderState } from './IrisGridRenderer';
|
|
3
|
-
declare class IrisGridDataBarCellRenderer extends DataBarCellRenderer {
|
|
4
|
-
drawTreeMarker(context: CanvasRenderingContext2D, state: IrisGridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: string, isExpanded: boolean): void;
|
|
5
|
-
}
|
|
6
|
-
export default IrisGridDataBarCellRenderer;
|
|
7
|
-
//# sourceMappingURL=IrisGridDataBarCellRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridDataBarCellRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridDataBarCellRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,cAAM,2BAA4B,SAAQ,mBAAmB;IAC3D,cAAc,CACZ,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,IAAI;CAWR;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/* eslint-disable class-methods-use-this */
|
|
2
|
-
import { DataBarCellRenderer } from '@deephaven/grid';
|
|
3
|
-
import IrisGridCellRendererUtils from "./IrisGridCellRendererUtils.js";
|
|
4
|
-
class IrisGridDataBarCellRenderer extends DataBarCellRenderer {
|
|
5
|
-
drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
|
|
6
|
-
IrisGridCellRendererUtils.drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export default IrisGridDataBarCellRenderer;
|
|
10
|
-
//# sourceMappingURL=IrisGridDataBarCellRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridDataBarCellRenderer.js","names":["DataBarCellRenderer","IrisGridCellRendererUtils","IrisGridDataBarCellRenderer","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridDataBarCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n BoxCoordinates,\n Coordinate,\n DataBarCellRenderer,\n} from '@deephaven/grid';\nimport { IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\n\nclass IrisGridDataBarCellRenderer extends DataBarCellRenderer {\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridDataBarCellRenderer;\n"],"mappings":"AAAA;AACA,SAGEA,mBAAmB,QACd,iBAAiB;AAAC,OAElBC,yBAAyB;AAEhC,MAAMC,2BAA2B,SAASF,mBAAmB,CAAC;EAC5DG,cAAc,CACZC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNT,yBAAyB,CAACE,cAAc,CACtCC,OAAO,EACPC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,OAAO,EACPC,KAAK,EACLC,UAAU,CACX;EACH;AACF;AAEA,eAAeR,2BAA2B"}
|
package/dist/IrisGridIcons.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridIcons.d.ts","sourceRoot":"","sources":["../src/IrisGridIcons.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,UAAU,GACV,WAAW,GACX,YAAY,GACZ,cAAc,CAAC;AAgCnB,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAE9C"}
|
package/dist/IrisGridIcons.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { memoizeClear } from '@deephaven/grid';
|
|
2
|
-
import { dhSortDown, dhSortUp, vsTriangleDown, vsTriangleRight, vsLinkExternal } from '@deephaven/icons';
|
|
3
|
-
export var ICON_SIZE = 16;
|
|
4
|
-
var iconMap = new Map([['sortUp', dhSortUp], ['sortDown', dhSortDown], ['caretDown', vsTriangleDown], ['caretRight', vsTriangleRight], ['cellOverflow', vsLinkExternal]]);
|
|
5
|
-
var makeIcon = memoizeClear(name => {
|
|
6
|
-
var faIcon = iconMap.get(name);
|
|
7
|
-
if (faIcon === undefined) {
|
|
8
|
-
throw new Error('Icon is undefined');
|
|
9
|
-
}
|
|
10
|
-
var path = Array.isArray(faIcon.icon[4]) ? faIcon.icon[4][0] : faIcon.icon[4];
|
|
11
|
-
var icon = new Path2D(path);
|
|
12
|
-
var scaledIcon = new Path2D();
|
|
13
|
-
var scaleMatrix = {
|
|
14
|
-
a: ICON_SIZE / faIcon.icon[0],
|
|
15
|
-
d: ICON_SIZE / faIcon.icon[1]
|
|
16
|
-
};
|
|
17
|
-
scaledIcon.addPath(icon, scaleMatrix);
|
|
18
|
-
return scaledIcon;
|
|
19
|
-
}, {
|
|
20
|
-
max: 1000
|
|
21
|
-
});
|
|
22
|
-
export function getIcon(name) {
|
|
23
|
-
return makeIcon(name);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=IrisGridIcons.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridIcons.js","names":["memoizeClear","dhSortDown","dhSortUp","vsTriangleDown","vsTriangleRight","vsLinkExternal","ICON_SIZE","iconMap","Map","makeIcon","name","faIcon","get","undefined","Error","path","Array","isArray","icon","Path2D","scaledIcon","scaleMatrix","a","d","addPath","max","getIcon"],"sources":["../src/IrisGridIcons.ts"],"sourcesContent":["import { memoizeClear } from '@deephaven/grid';\nimport {\n dhSortDown,\n dhSortUp,\n vsTriangleDown,\n vsTriangleRight,\n vsLinkExternal,\n IconDefinition,\n} from '@deephaven/icons';\n\nexport const ICON_SIZE = 16;\n\nexport type IconName =\n | 'sortUp'\n | 'sortDown'\n | 'caretDown'\n | 'caretRight'\n | 'cellOverflow';\n\nconst iconMap = new Map<IconName, IconDefinition>([\n ['sortUp', dhSortUp],\n ['sortDown', dhSortDown],\n ['caretDown', vsTriangleDown],\n ['caretRight', vsTriangleRight],\n ['cellOverflow', vsLinkExternal],\n]);\n\nconst makeIcon = memoizeClear(\n (name: IconName) => {\n const faIcon = iconMap.get(name);\n if (faIcon === undefined) {\n throw new Error('Icon is undefined');\n }\n\n const path = Array.isArray(faIcon.icon[4])\n ? faIcon.icon[4][0]\n : faIcon.icon[4];\n const icon = new Path2D(path);\n const scaledIcon = new Path2D();\n const scaleMatrix = {\n a: ICON_SIZE / faIcon.icon[0],\n d: ICON_SIZE / faIcon.icon[1],\n };\n scaledIcon.addPath(icon, scaleMatrix);\n return scaledIcon;\n },\n { max: 1000 }\n);\n\nexport function getIcon(name: IconName): Path2D {\n return makeIcon(name);\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,UAAU,EACVC,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfC,cAAc,QAET,kBAAkB;AAEzB,OAAO,IAAMC,SAAS,GAAG,EAAE;AAS3B,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAA2B,CAChD,CAAC,QAAQ,EAAEN,QAAQ,CAAC,EACpB,CAAC,UAAU,EAAED,UAAU,CAAC,EACxB,CAAC,WAAW,EAAEE,cAAc,CAAC,EAC7B,CAAC,YAAY,EAAEC,eAAe,CAAC,EAC/B,CAAC,cAAc,EAAEC,cAAc,CAAC,CACjC,CAAC;AAEF,IAAMI,QAAQ,GAAGT,YAAY,CAC1BU,IAAc,IAAK;EAClB,IAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACF,IAAI,CAAC;EAChC,IAAIC,MAAM,KAAKE,SAAS,EAAE;IACxB,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;EACtC;EAEA,IAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACN,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC,GACtCP,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjBP,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;EAClB,IAAMA,IAAI,GAAG,IAAIC,MAAM,CAACJ,IAAI,CAAC;EAC7B,IAAMK,UAAU,GAAG,IAAID,MAAM,EAAE;EAC/B,IAAME,WAAW,GAAG;IAClBC,CAAC,EAAEhB,SAAS,GAAGK,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;IAC7BK,CAAC,EAAEjB,SAAS,GAAGK,MAAM,CAACO,IAAI,CAAC,CAAC;EAC9B,CAAC;EACDE,UAAU,CAACI,OAAO,CAACN,IAAI,EAAEG,WAAW,CAAC;EACrC,OAAOD,UAAU;AACnB,CAAC,EACD;EAAEK,GAAG,EAAE;AAAK,CAAC,CACd;AAED,OAAO,SAASC,OAAO,CAAChB,IAAc,EAAU;EAC9C,OAAOD,QAAQ,CAACC,IAAI,CAAC;AACvB"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { BoxCoordinates, Coordinate, GridMetrics, GridThemeType, TextCellRenderer, VisibleIndex } from '@deephaven/grid';
|
|
2
|
-
import { IrisGridRenderState } from './IrisGridRenderer';
|
|
3
|
-
declare class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
4
|
-
drawCellContent(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): void;
|
|
5
|
-
getTextRenderMetrics(state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): {
|
|
6
|
-
width: number;
|
|
7
|
-
x: Coordinate;
|
|
8
|
-
y: Coordinate;
|
|
9
|
-
};
|
|
10
|
-
getCellOverflowButtonPosition(mouseX: Coordinate | null, mouseY: Coordinate | null, metrics: GridMetrics | undefined, theme: GridThemeType): {
|
|
11
|
-
left: Coordinate | null;
|
|
12
|
-
top: Coordinate | null;
|
|
13
|
-
width: number | null;
|
|
14
|
-
height: number | null;
|
|
15
|
-
};
|
|
16
|
-
shouldRenderOverflowButton(state: IrisGridRenderState): boolean;
|
|
17
|
-
drawTreeMarker(context: CanvasRenderingContext2D, state: IrisGridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: string, isExpanded: boolean): void;
|
|
18
|
-
}
|
|
19
|
-
export default IrisGridTextCellRenderer;
|
|
20
|
-
//# sourceMappingURL=IrisGridTextCellRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTextCellRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridTextCellRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,UAAU,EAGV,WAAW,EACX,aAAa,EAEb,gBAAgB,EAChB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,cAAM,wBAAyB,SAAQ,gBAAgB;IACrD,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;IAuBP,oBAAoB,CAClB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB;QACD,KAAK,EAAE,MAAM,CAAC;QACd,CAAC,EAAE,UAAU,CAAC;QACd,CAAC,EAAE,UAAU,CAAC;KACf;IA6BD,6BAA6B,CAC3B,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,KAAK,EAAE,aAAa,GACnB;QACD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;IA+BD,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IA6C/D,cAAc,CACZ,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,OAAO,GAClB,IAAI;CAWR;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/* eslint-disable class-methods-use-this */
|
|
2
|
-
import { DEFAULT_FONT_WIDTH, getOrThrow, GridUtils, TextCellRenderer } from '@deephaven/grid';
|
|
3
|
-
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
4
|
-
import { ICON_SIZE } from "./IrisGridIcons.js";
|
|
5
|
-
import IrisGridCellRendererUtils from "./IrisGridCellRendererUtils.js";
|
|
6
|
-
class IrisGridTextCellRenderer extends TextCellRenderer {
|
|
7
|
-
drawCellContent(context, state, column, row) {
|
|
8
|
-
var _model$columns$modelC;
|
|
9
|
-
var {
|
|
10
|
-
metrics,
|
|
11
|
-
model
|
|
12
|
-
} = state;
|
|
13
|
-
var {
|
|
14
|
-
modelColumns,
|
|
15
|
-
modelRows
|
|
16
|
-
} = metrics;
|
|
17
|
-
var modelRow = getOrThrow(modelRows, row);
|
|
18
|
-
var modelColumn = modelColumns.get(column);
|
|
19
|
-
if (modelColumn === undefined) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
var value = model.valueForCell(modelColumn, modelRow);
|
|
23
|
-
if (TableUtils.isTextType((_model$columns$modelC = model.columns[modelColumn]) === null || _model$columns$modelC === void 0 ? void 0 : _model$columns$modelC.type)) {
|
|
24
|
-
if (value === null || value === '') {
|
|
25
|
-
var originalFont = context.font;
|
|
26
|
-
context.font = "italic ".concat(originalFont);
|
|
27
|
-
super.drawCellContent(context, state, column, row);
|
|
28
|
-
context.font = originalFont;
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
super.drawCellContent(context, state, column, row);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// This will shrink the size the text may take when the overflow button is rendered
|
|
36
|
-
// The text will truncate to a smaller width and won't overlap the button
|
|
37
|
-
getTextRenderMetrics(state, column, row) {
|
|
38
|
-
var textMetrics = GridUtils.getTextRenderMetrics(state, column, row);
|
|
39
|
-
var {
|
|
40
|
-
mouseX,
|
|
41
|
-
mouseY,
|
|
42
|
-
metrics,
|
|
43
|
-
theme
|
|
44
|
-
} = state;
|
|
45
|
-
if (mouseX == null || mouseY == null) {
|
|
46
|
-
return textMetrics;
|
|
47
|
-
}
|
|
48
|
-
var {
|
|
49
|
-
column: mouseColumn,
|
|
50
|
-
row: mouseRow
|
|
51
|
-
} = GridUtils.getGridPointFromXY(mouseX, mouseY, metrics);
|
|
52
|
-
if (column === mouseColumn && row === mouseRow) {
|
|
53
|
-
var {
|
|
54
|
-
left
|
|
55
|
-
} = this.getCellOverflowButtonPosition(mouseX, mouseY, metrics, theme);
|
|
56
|
-
if (this.shouldRenderOverflowButton(state) && left != null) {
|
|
57
|
-
textMetrics.width = left - metrics.gridX - textMetrics.x;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return textMetrics;
|
|
61
|
-
}
|
|
62
|
-
getCellOverflowButtonPosition(mouseX, mouseY, metrics, theme) {
|
|
63
|
-
var NULL_POSITION = {
|
|
64
|
-
left: null,
|
|
65
|
-
top: null,
|
|
66
|
-
width: null,
|
|
67
|
-
height: null
|
|
68
|
-
};
|
|
69
|
-
if (mouseX == null || mouseY == null || metrics == null) {
|
|
70
|
-
return NULL_POSITION;
|
|
71
|
-
}
|
|
72
|
-
var {
|
|
73
|
-
rowHeight,
|
|
74
|
-
columnWidth,
|
|
75
|
-
left,
|
|
76
|
-
top
|
|
77
|
-
} = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
|
|
78
|
-
if (left == null || columnWidth == null || top == null) {
|
|
79
|
-
return NULL_POSITION;
|
|
80
|
-
}
|
|
81
|
-
var {
|
|
82
|
-
width: gridWidth,
|
|
83
|
-
verticalBarWidth
|
|
84
|
-
} = metrics;
|
|
85
|
-
var {
|
|
86
|
-
cellHorizontalPadding
|
|
87
|
-
} = theme;
|
|
88
|
-
var width = ICON_SIZE + 2 * cellHorizontalPadding;
|
|
89
|
-
var height = rowHeight;
|
|
90
|
-
// Right edge of column or of visible grid, whichever is smaller
|
|
91
|
-
var right = Math.min(metrics.gridX + left + columnWidth, gridWidth - verticalBarWidth);
|
|
92
|
-
var buttonLeft = right - width;
|
|
93
|
-
var buttonTop = metrics.gridY + top;
|
|
94
|
-
return {
|
|
95
|
-
left: buttonLeft,
|
|
96
|
-
top: buttonTop,
|
|
97
|
-
width,
|
|
98
|
-
height
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
shouldRenderOverflowButton(state) {
|
|
102
|
-
var _model$textForCell, _metrics$fontWidths$g;
|
|
103
|
-
var {
|
|
104
|
-
context,
|
|
105
|
-
mouseX,
|
|
106
|
-
mouseY,
|
|
107
|
-
metrics,
|
|
108
|
-
model,
|
|
109
|
-
theme
|
|
110
|
-
} = state;
|
|
111
|
-
if (mouseX == null || mouseY == null) {
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
var {
|
|
115
|
-
row,
|
|
116
|
-
column,
|
|
117
|
-
modelRow,
|
|
118
|
-
modelColumn
|
|
119
|
-
} = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
|
|
120
|
-
if (row == null || column == null || modelRow == null || modelColumn == null || !TableUtils.isStringType(model.columns[modelColumn].type)) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
var text = (_model$textForCell = model.textForCell(modelColumn, modelRow)) !== null && _model$textForCell !== void 0 ? _model$textForCell : '';
|
|
124
|
-
var {
|
|
125
|
-
width: textWidth
|
|
126
|
-
} = GridUtils.getTextRenderMetrics(state, column, row);
|
|
127
|
-
var fontWidth = (_metrics$fontWidths$g = metrics.fontWidths.get(theme.font)) !== null && _metrics$fontWidths$g !== void 0 ? _metrics$fontWidths$g : DEFAULT_FONT_WIDTH;
|
|
128
|
-
context.save();
|
|
129
|
-
context.font = theme.font;
|
|
130
|
-
var truncatedText = this.getCachedTruncatedString(context, text, textWidth, fontWidth, model.truncationCharForCell(modelColumn, modelRow));
|
|
131
|
-
context.restore();
|
|
132
|
-
return text !== '' && truncatedText !== text;
|
|
133
|
-
}
|
|
134
|
-
drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
|
|
135
|
-
IrisGridCellRendererUtils.drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
export default IrisGridTextCellRenderer;
|
|
139
|
-
//# sourceMappingURL=IrisGridTextCellRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridTextCellRenderer.js","names":["DEFAULT_FONT_WIDTH","getOrThrow","GridUtils","TextCellRenderer","TableUtils","ICON_SIZE","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","right","Math","min","buttonLeft","buttonTop","gridY","isStringType","text","textForCell","textWidth","fontWidth","fontWidths","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n BoxCoordinates,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n getOrThrow,\n GridMetrics,\n GridThemeType,\n GridUtils,\n TextCellRenderer,\n VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { IrisGridRenderState } from './IrisGridRenderer';\nimport { ICON_SIZE } from './IrisGridIcons';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: GridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding } = theme;\n\n const width = ICON_SIZE + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidth = metrics.fontWidths.get(theme.font) ?? DEFAULT_FONT_WIDTH;\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidth,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"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"}
|