@deephaven/iris-grid 0.38.1-beta.5 → 0.38.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.
Files changed (177) hide show
  1. package/README.md +2 -4
  2. package/dist/AdvancedFilterCreator.d.ts +2 -3
  3. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  4. package/dist/AdvancedFilterCreator.js +4 -8
  5. package/dist/AdvancedFilterCreator.js.map +1 -1
  6. package/dist/AdvancedFilterCreatorFilterItem.d.ts +3 -4
  7. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  8. package/dist/AdvancedFilterCreatorFilterItem.js +4 -5
  9. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  10. package/dist/AdvancedFilterCreatorSelectValue.d.ts +2 -4
  11. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  12. package/dist/AdvancedFilterCreatorSelectValue.js +3 -11
  13. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  14. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +1 -3
  15. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  16. package/dist/AdvancedFilterCreatorSelectValueList.js +5 -7
  17. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  18. package/dist/ColumnStatistics.d.ts +1 -1
  19. package/dist/ColumnStatistics.d.ts.map +1 -1
  20. package/dist/ColumnStatistics.js.map +1 -1
  21. package/dist/CommonTypes.d.ts +1 -1
  22. package/dist/CommonTypes.d.ts.map +1 -1
  23. package/dist/CommonTypes.js.map +1 -1
  24. package/dist/CrossColumnSearch.d.ts +2 -2
  25. package/dist/CrossColumnSearch.d.ts.map +1 -1
  26. package/dist/CrossColumnSearch.js +2 -1
  27. package/dist/CrossColumnSearch.js.map +1 -1
  28. package/dist/GotoRow.d.ts +1 -3
  29. package/dist/GotoRow.d.ts.map +1 -1
  30. package/dist/GotoRow.js +0 -1
  31. package/dist/GotoRow.js.map +1 -1
  32. package/dist/IrisGrid.css +0 -3
  33. package/dist/IrisGrid.css.map +1 -1
  34. package/dist/IrisGrid.d.ts +6 -8
  35. package/dist/IrisGrid.d.ts.map +1 -1
  36. package/dist/IrisGrid.js +33 -46
  37. package/dist/IrisGrid.js.map +1 -1
  38. package/dist/IrisGridCopyHandler.js.map +1 -1
  39. package/dist/IrisGridMetricCalculator.d.ts +1 -1
  40. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  41. package/dist/IrisGridMetricCalculator.js.map +1 -1
  42. package/dist/IrisGridModel.d.ts +1 -1
  43. package/dist/IrisGridModel.d.ts.map +1 -1
  44. package/dist/IrisGridModel.js.map +1 -1
  45. package/dist/IrisGridModelFactory.d.ts +2 -2
  46. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  47. package/dist/IrisGridModelFactory.js +3 -3
  48. package/dist/IrisGridModelFactory.js.map +1 -1
  49. package/dist/IrisGridModelUpdater.d.ts +2 -3
  50. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  51. package/dist/IrisGridModelUpdater.js +2 -2
  52. package/dist/IrisGridModelUpdater.js.map +1 -1
  53. package/dist/IrisGridPartitionSelector.d.ts +1 -2
  54. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  55. package/dist/IrisGridPartitionSelector.js +0 -2
  56. package/dist/IrisGridPartitionSelector.js.map +1 -1
  57. package/dist/IrisGridProxyModel.d.ts +2 -3
  58. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  59. package/dist/IrisGridProxyModel.js +9 -11
  60. package/dist/IrisGridProxyModel.js.map +1 -1
  61. package/dist/IrisGridRenderer.d.ts +27 -19
  62. package/dist/IrisGridRenderer.d.ts.map +1 -1
  63. package/dist/IrisGridRenderer.js +205 -64
  64. package/dist/IrisGridRenderer.js.map +1 -1
  65. package/dist/IrisGridTableModel.d.ts +2 -2
  66. package/dist/IrisGridTableModel.d.ts.map +1 -1
  67. package/dist/IrisGridTableModel.js +6 -6
  68. package/dist/IrisGridTableModel.js.map +1 -1
  69. package/dist/IrisGridTableModelTemplate.d.ts +3 -8
  70. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  71. package/dist/IrisGridTableModelTemplate.js +15 -36
  72. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  73. package/dist/IrisGridTestUtils.d.ts +3 -2
  74. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  75. package/dist/IrisGridTestUtils.js +6 -5
  76. package/dist/IrisGridTestUtils.js.map +1 -1
  77. package/dist/IrisGridTheme.d.ts.map +1 -1
  78. package/dist/IrisGridTheme.js +1 -4
  79. package/dist/IrisGridTheme.js.map +1 -1
  80. package/dist/IrisGridTheme.module.css +0 -3
  81. package/dist/IrisGridTheme.module.css.map +1 -1
  82. package/dist/IrisGridTreeTableModel.d.ts +1 -1
  83. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  84. package/dist/IrisGridTreeTableModel.js.map +1 -1
  85. package/dist/IrisGridUtils.d.ts +85 -88
  86. package/dist/IrisGridUtils.d.ts.map +1 -1
  87. package/dist/IrisGridUtils.js +558 -569
  88. package/dist/IrisGridUtils.js.map +1 -1
  89. package/dist/PartitionSelectorSearch.d.ts +1 -2
  90. package/dist/PartitionSelectorSearch.d.ts.map +1 -1
  91. package/dist/PartitionSelectorSearch.js +1 -3
  92. package/dist/PartitionSelectorSearch.js.map +1 -1
  93. package/dist/TableViewportUpdater.d.ts +1 -1
  94. package/dist/TableViewportUpdater.d.ts.map +1 -1
  95. package/dist/TableViewportUpdater.js.map +1 -1
  96. package/dist/TreeTableViewportUpdater.d.ts +1 -2
  97. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  98. package/dist/TreeTableViewportUpdater.js +1 -1
  99. package/dist/TreeTableViewportUpdater.js.map +1 -1
  100. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  101. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +9 -10
  102. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  103. package/dist/mousehandlers/IrisGridContextMenuHandler.js +28 -41
  104. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  105. package/dist/mousehandlers/IrisGridTokenMouseHandler.d.ts.map +1 -1
  106. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +3 -18
  107. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  108. package/dist/sidebar/ChartBuilder.d.ts +11 -12
  109. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  110. package/dist/sidebar/ChartBuilder.js +81 -98
  111. package/dist/sidebar/ChartBuilder.js.map +1 -1
  112. package/dist/sidebar/RollupRows.d.ts +1 -1
  113. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  114. package/dist/sidebar/RollupRows.js.map +1 -1
  115. package/dist/sidebar/SelectDistinctBuilder.d.ts +1 -1
  116. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  117. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  118. package/dist/sidebar/TableCsvExporter.d.ts +2 -3
  119. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  120. package/dist/sidebar/TableCsvExporter.js +3 -3
  121. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  122. package/dist/sidebar/TableSaver.d.ts +1 -2
  123. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  124. package/dist/sidebar/TableSaver.js +1 -4
  125. package/dist/sidebar/TableSaver.js.map +1 -1
  126. package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
  127. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  128. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  129. package/dist/sidebar/aggregations/AggregationUtils.d.ts +1 -1
  130. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  131. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  132. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +0 -2
  133. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  134. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +0 -2
  135. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  136. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +0 -2
  137. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  138. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -3
  139. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  140. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  141. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +0 -2
  142. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  143. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts +2 -2
  144. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts.map +1 -1
  145. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +1 -1
  146. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  147. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +3 -3
  148. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  149. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +3 -3
  150. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  151. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +0 -2
  152. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  153. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +0 -2
  154. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  155. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +1 -1
  156. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  157. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  158. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -1
  159. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  160. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  161. package/package.json +15 -16
  162. package/dist/IrisGridCellRendererUtils.d.ts +0 -7
  163. package/dist/IrisGridCellRendererUtils.d.ts.map +0 -1
  164. package/dist/IrisGridCellRendererUtils.js +0 -20
  165. package/dist/IrisGridCellRendererUtils.js.map +0 -1
  166. package/dist/IrisGridDataBarCellRenderer.d.ts +0 -7
  167. package/dist/IrisGridDataBarCellRenderer.d.ts.map +0 -1
  168. package/dist/IrisGridDataBarCellRenderer.js +0 -10
  169. package/dist/IrisGridDataBarCellRenderer.js.map +0 -1
  170. package/dist/IrisGridIcons.d.ts +0 -4
  171. package/dist/IrisGridIcons.d.ts.map +0 -1
  172. package/dist/IrisGridIcons.js +0 -25
  173. package/dist/IrisGridIcons.js.map +0 -1
  174. package/dist/IrisGridTextCellRenderer.d.ts +0 -20
  175. package/dist/IrisGridTextCellRenderer.d.ts.map +0 -1
  176. package/dist/IrisGridTextCellRenderer.js +0 -139
  177. package/dist/IrisGridTextCellRenderer.js.map +0 -1
@@ -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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"}