@deephaven/iris-grid 0.13.3-beta.0 → 0.14.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.
Files changed (184) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +69 -63
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js +79 -73
  4. package/dist/AdvancedFilterCreator.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.d.ts +45 -45
  6. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.js +32 -36
  8. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +47 -52
  10. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  11. package/dist/AdvancedFilterCreatorSelectValueList.js +24 -39
  12. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  13. package/dist/ColumnStatistics.d.ts +34 -22
  14. package/dist/ColumnStatistics.d.ts.map +1 -1
  15. package/dist/ColumnStatistics.js +8 -12
  16. package/dist/ColumnStatistics.js.map +1 -1
  17. package/dist/CommonTypes.d.ts +58 -0
  18. package/dist/CommonTypes.d.ts.map +1 -0
  19. package/dist/CommonTypes.js +2 -0
  20. package/dist/CommonTypes.js.map +1 -0
  21. package/dist/CrossColumnSearch.d.ts +26 -24
  22. package/dist/CrossColumnSearch.d.ts.map +1 -1
  23. package/dist/CrossColumnSearch.js +9 -13
  24. package/dist/CrossColumnSearch.js.map +1 -1
  25. package/dist/FilterInputField.d.ts +48 -51
  26. package/dist/FilterInputField.d.ts.map +1 -1
  27. package/dist/FilterInputField.js +30 -27
  28. package/dist/FilterInputField.js.map +1 -1
  29. package/dist/IrisGrid.d.ts +409 -453
  30. package/dist/IrisGrid.d.ts.map +1 -1
  31. package/dist/IrisGrid.js +514 -449
  32. package/dist/IrisGrid.js.map +1 -1
  33. package/dist/IrisGridCellOverflowModal.d.ts +1 -1
  34. package/dist/IrisGridCellOverflowModal.d.ts.map +1 -1
  35. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  36. package/dist/IrisGridCopyHandler.d.ts +52 -46
  37. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  38. package/dist/IrisGridCopyHandler.js +22 -38
  39. package/dist/IrisGridCopyHandler.js.map +1 -1
  40. package/dist/IrisGridMetricCalculator.d.ts +5 -4
  41. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  42. package/dist/IrisGridMetricCalculator.js +5 -1
  43. package/dist/IrisGridMetricCalculator.js.map +1 -1
  44. package/dist/IrisGridModel.d.ts +37 -35
  45. package/dist/IrisGridModel.d.ts.map +1 -1
  46. package/dist/IrisGridModel.js +19 -3
  47. package/dist/IrisGridModel.js.map +1 -1
  48. package/dist/IrisGridModelFactory.d.ts +7 -5
  49. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  50. package/dist/IrisGridModelFactory.js +5 -5
  51. package/dist/IrisGridModelFactory.js.map +1 -1
  52. package/dist/IrisGridModelUpdater.d.ts +13 -11
  53. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  54. package/dist/IrisGridModelUpdater.js.map +1 -1
  55. package/dist/IrisGridPartitionSelector.d.ts +38 -39
  56. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  57. package/dist/IrisGridPartitionSelector.js +18 -24
  58. package/dist/IrisGridPartitionSelector.js.map +1 -1
  59. package/dist/IrisGridProxyModel.d.ts +111 -32
  60. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  61. package/dist/IrisGridProxyModel.js +212 -170
  62. package/dist/IrisGridProxyModel.js.map +1 -1
  63. package/dist/IrisGridRenderer.d.ts +59 -31
  64. package/dist/IrisGridRenderer.d.ts.map +1 -1
  65. package/dist/IrisGridRenderer.js +92 -46
  66. package/dist/IrisGridRenderer.js.map +1 -1
  67. package/dist/IrisGridTableModel.d.ts +48 -147
  68. package/dist/IrisGridTableModel.d.ts.map +1 -1
  69. package/dist/IrisGridTableModel.js +58 -1381
  70. package/dist/IrisGridTableModel.js.map +1 -1
  71. package/dist/IrisGridTableModelTemplate.d.ts +219 -0
  72. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -0
  73. package/dist/IrisGridTableModelTemplate.js +1623 -0
  74. package/dist/IrisGridTableModelTemplate.js.map +1 -0
  75. package/dist/IrisGridTestUtils.d.ts +18 -14
  76. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  77. package/dist/IrisGridTestUtils.js +29 -1
  78. package/dist/IrisGridTestUtils.js.map +1 -1
  79. package/dist/IrisGridTheme.d.ts +35 -3
  80. package/dist/IrisGridTheme.d.ts.map +1 -1
  81. package/dist/IrisGridTheme.js.map +1 -1
  82. package/dist/IrisGridTreeTableModel.d.ts +26 -7
  83. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  84. package/dist/IrisGridTreeTableModel.js +24 -14
  85. package/dist/IrisGridTreeTableModel.js.map +1 -1
  86. package/dist/IrisGridUtils.d.ts +257 -162
  87. package/dist/IrisGridUtils.d.ts.map +1 -1
  88. package/dist/IrisGridUtils.js +132 -95
  89. package/dist/IrisGridUtils.js.map +1 -1
  90. package/dist/MissingKeyError.d.ts +5 -3
  91. package/dist/MissingKeyError.d.ts.map +1 -1
  92. package/dist/MissingKeyError.js.map +1 -1
  93. package/dist/PartitionSelectorSearch.d.ts +61 -40
  94. package/dist/PartitionSelectorSearch.d.ts.map +1 -1
  95. package/dist/PartitionSelectorSearch.js +25 -15
  96. package/dist/PartitionSelectorSearch.js.map +1 -1
  97. package/dist/PendingDataBottomBar.d.ts +3 -6
  98. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  99. package/dist/PendingDataBottomBar.js.map +1 -1
  100. package/dist/TableViewportUpdater.d.ts +39 -55
  101. package/dist/TableViewportUpdater.d.ts.map +1 -1
  102. package/dist/TableViewportUpdater.js +42 -64
  103. package/dist/TableViewportUpdater.js.map +1 -1
  104. package/dist/TreeTableViewportUpdater.d.ts +29 -37
  105. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  106. package/dist/TreeTableViewportUpdater.js +39 -50
  107. package/dist/TreeTableViewportUpdater.js.map +1 -1
  108. package/dist/index.d.ts +9 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +9 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
  113. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  114. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts +1 -1
  115. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts.map +1 -1
  116. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +2 -0
  117. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  118. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +1 -1
  119. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  120. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +41 -130
  121. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  122. package/dist/mousehandlers/IrisGridContextMenuHandler.js +426 -317
  123. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  124. package/dist/mousehandlers/IrisGridFilterMouseHandler.d.ts.map +1 -1
  125. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +2 -2
  126. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  127. package/dist/mousehandlers/IrisGridSortMouseHandler.js +1 -1
  128. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  129. package/dist/mousehandlers/PendingMouseHandler.d.ts +8 -4
  130. package/dist/mousehandlers/PendingMouseHandler.d.ts.map +1 -1
  131. package/dist/mousehandlers/PendingMouseHandler.js +4 -5
  132. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  133. package/dist/sidebar/ChartBuilder.d.ts +48 -33
  134. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  135. package/dist/sidebar/ChartBuilder.js +28 -27
  136. package/dist/sidebar/ChartBuilder.js.map +1 -1
  137. package/dist/sidebar/CustomColumnBuilder.d.ts +51 -41
  138. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  139. package/dist/sidebar/CustomColumnBuilder.js +22 -18
  140. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  141. package/dist/sidebar/CustomColumnInput.d.ts +26 -36
  142. package/dist/sidebar/CustomColumnInput.d.ts.map +1 -1
  143. package/dist/sidebar/CustomColumnInput.js +11 -20
  144. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  145. package/dist/sidebar/InputEditor.d.ts +34 -35
  146. package/dist/sidebar/InputEditor.d.ts.map +1 -1
  147. package/dist/sidebar/InputEditor.js +43 -24
  148. package/dist/sidebar/InputEditor.js.map +1 -1
  149. package/dist/sidebar/RollupRows.d.ts +67 -52
  150. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  151. package/dist/sidebar/RollupRows.js +51 -53
  152. package/dist/sidebar/RollupRows.js.map +1 -1
  153. package/dist/sidebar/SelectDistinctBuilder.d.ts +27 -21
  154. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  155. package/dist/sidebar/SelectDistinctBuilder.js +6 -10
  156. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  157. package/dist/sidebar/TableCsvExporter.d.ts +42 -39
  158. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  159. package/dist/sidebar/TableCsvExporter.js +12 -20
  160. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  161. package/dist/sidebar/TableSaver.d.ts +59 -60
  162. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  163. package/dist/sidebar/TableSaver.js +154 -68
  164. package/dist/sidebar/TableSaver.js.map +1 -1
  165. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +56 -45
  166. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  167. package/dist/sidebar/VisibilityOrderingBuilder.js +34 -29
  168. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  169. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  170. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  171. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +2 -1
  172. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  173. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  174. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +6 -5
  175. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  176. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +5 -0
  177. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  178. package/dist/sidebar/icons/index.d.ts +7 -7
  179. package/dist/sidebar/icons/index.d.ts.map +1 -1
  180. package/dist/sidebar/icons/index.js.map +1 -1
  181. package/dist/sidebar/index.d.ts +12 -12
  182. package/dist/sidebar/index.d.ts.map +1 -1
  183. package/dist/sidebar/index.js.map +1 -1
  184. package/package.json +17 -16
@@ -1,41 +1,69 @@
1
- export default IrisGridRenderer;
1
+ import { IconDefinition } from '@deephaven/icons';
2
+ import { BoxCoordinates, Coordinate, GridMetrics, GridRangeIndex, GridRenderer, GridRenderState, GridThemeType, VisibleIndex } from '@deephaven/grid';
3
+ import { Sort } from '@deephaven/jsapi-shim';
4
+ import { ReverseType } from '@deephaven/jsapi-utils';
5
+ import { AdvancedFilterMap, QuickFilterMap, AdvancedFilter, QuickFilter } from './CommonTypes';
6
+ import { IrisGridThemeType } from './IrisGridTheme';
7
+ import IrisGridModel from './IrisGridModel';
8
+ export declare type IrisGridRenderState = GridRenderState & {
9
+ model: IrisGridModel;
10
+ theme: IrisGridThemeType;
11
+ hoverSelectColumn: GridRangeIndex;
12
+ isSelectingColumn: boolean;
13
+ loadingScrimProgress: number;
14
+ reverseType: ReverseType;
15
+ isFilterBarShown: boolean;
16
+ advancedFilters: AdvancedFilterMap;
17
+ quickFilters: QuickFilterMap;
18
+ };
2
19
  /**
3
20
  * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display
4
21
  * */
5
22
  declare class IrisGridRenderer extends GridRenderer {
6
- static isFilterValid(advancedFilter: any, quickFilter: any): boolean;
23
+ static isFilterValid(advancedFilter: AdvancedFilter | undefined | null, quickFilter: QuickFilter | undefined | null): boolean;
24
+ constructor();
25
+ icons: Record<string, Path2D>;
7
26
  initIcons(): void;
8
- icons: {} | undefined;
9
- setIcon(name: any, faIcon: any): void;
10
- getIcon(name: any): any;
11
- getSortIcon(sort: any): any;
12
- drawGroupedColumnLine(context: any, state: any): void;
13
- drawPendingRowLine(context: any, state: any): void;
14
- drawScrim(state: any): void;
15
- drawHeaderBar(context: any, state: any, color: any, barHeight: any, interior?: boolean): void;
16
- drawFilterHeaders(context: any, state: any): void;
17
- drawExpandedFilterHeaders(context: any, state: any): void;
18
- drawExpandedFilterHeader(context: any, state: any, column: any, columnX: any, columnWidth: any): void;
19
- drawCollapsedFilterHeaders(context: any, state: any): void;
20
- drawCollapsedFilterHeader(context: any, state: any, column: any, columnX: any, columnWidth: any): void;
21
- shouldRenderOverflowButton(state: any): boolean;
22
- getCellOverflowButtonPosition({ mouseX, mouseY, metrics, theme }: {
23
- mouseX: any;
24
- mouseY: any;
25
- metrics: any;
26
- theme: any;
27
- }): {
28
- left: null;
29
- top: null;
30
- width: null;
31
- height: null;
32
- } | {
33
- left: number;
34
- top: any;
27
+ setIcon(name: string, faIcon: IconDefinition): void;
28
+ getIcon(name: string): Path2D;
29
+ getSortIcon(sort: Sort | null): Path2D | null;
30
+ drawCanvas(state: IrisGridRenderState): void;
31
+ drawGrid(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
32
+ drawGridLines(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
33
+ drawCellContent(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): void;
34
+ drawGroupedColumnLine(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
35
+ drawPendingRowLine(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
36
+ drawMouseColumnHover(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
37
+ drawMouseRowHover(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
38
+ drawScrim(state: IrisGridRenderState): void;
39
+ drawColumnHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
40
+ drawHeaderBar(context: CanvasRenderingContext2D, state: IrisGridRenderState, color: string | CanvasGradient | CanvasPattern, barHeight: number, interior?: boolean): void;
41
+ drawColumnHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
42
+ drawFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
43
+ drawExpandedFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
44
+ drawExpandedFilterHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
45
+ drawCollapsedFilterHeaders(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
46
+ drawCollapsedFilterHeader(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, columnX: Coordinate, columnWidth: number): void;
47
+ drawTreeMarker(context: CanvasRenderingContext2D, state: IrisGridRenderState, columnX: Coordinate, rowY: Coordinate, treeBox: BoxCoordinates, color: string, isExpanded: boolean): void;
48
+ drawRowFooters(context: CanvasRenderingContext2D, state: IrisGridRenderState): void;
49
+ getTextRenderMetrics(context: CanvasRenderingContext2D, state: IrisGridRenderState, column: VisibleIndex, row: VisibleIndex): {
35
50
  width: number;
51
+ x: Coordinate;
52
+ y: Coordinate;
53
+ };
54
+ shouldRenderOverflowButton(state: IrisGridRenderState): boolean;
55
+ getCellOverflowButtonPosition({ mouseX, mouseY, metrics, theme, }: {
56
+ mouseX: Coordinate | null;
57
+ mouseY: Coordinate | null;
58
+ metrics: GridMetrics | undefined;
59
+ theme: GridThemeType;
60
+ }): {
61
+ left: Coordinate | null;
62
+ top: Coordinate | null;
63
+ width: number | null;
36
64
  height: number | null;
37
65
  };
38
- drawCellOverflowButton(state: any): void;
66
+ drawCellOverflowButton(state: IrisGridRenderState): void;
39
67
  }
40
- import { GridRenderer } from "packages/grid/src/GridRenderer";
68
+ export default IrisGridRenderer;
41
69
  //# sourceMappingURL=IrisGridRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.js"],"names":[],"mappings":";AAuBA;;KAEK;AACL;IACE,qEAMC;IAQD,kBAQC;IAPC,sBAAe;IAUjB,sCASC;IAED,wBAEC;IAED,4BAWC;IAwCD,sDA0BC;IAED,mDAyBC;IAwBD,4BA8BC;IAgDD,8FAwBC;IAgDD,kDAWC;IAED,0DAsEC;IAED,sGAuFC;IAED,2DAiCC;IAED,uGAwCC;IAqID,gDA6CC;IAED;;;;;;;;;;;;;;;MAyBC;IAED,yCAqCC;CACF"}
1
+ {"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
+ 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; }
2
+
1
3
  /* eslint react/destructuring-assignment: "off" */
2
4
 
3
5
  /* eslint class-methods-use-this: "off" */
4
6
 
5
7
  /* eslint no-param-reassign: "off" */
6
8
  import { dhSortDown, dhSortUp, vsTriangleDown, vsTriangleRight, vsLinkExternal } from '@deephaven/icons';
9
+ import { getOrThrow, GridRenderer, GridUtils } from '@deephaven/grid';
7
10
  import { TableUtils } from '@deephaven/jsapi-utils';
8
- import { GridRenderer, GridUtils } from '@deephaven/grid';
11
+ import { assertNotNull } from '@deephaven/utils';
9
12
  var ICON_NAMES = Object.freeze({
10
13
  SORT_UP: 'sortUp',
11
14
  SORT_DOWN: 'sortDown',
@@ -14,10 +17,10 @@ var ICON_NAMES = Object.freeze({
14
17
  CELL_OVERFLOW: 'cellOverflow'
15
18
  });
16
19
  var ICON_SIZE = 16;
20
+
17
21
  /**
18
22
  * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display
19
23
  * */
20
-
21
24
  class IrisGridRenderer extends GridRenderer {
22
25
  static isFilterValid(advancedFilter, quickFilter) {
23
26
  var isAdvancedFilterValid = advancedFilter == null || advancedFilter.filter != null;
@@ -27,11 +30,14 @@ class IrisGridRenderer extends GridRenderer {
27
30
 
28
31
  constructor() {
29
32
  super();
33
+
34
+ _defineProperty(this, "icons", void 0);
35
+
36
+ this.icons = {};
30
37
  this.initIcons();
31
38
  }
32
39
 
33
40
  initIcons() {
34
- this.icons = {};
35
41
  this.setIcon(ICON_NAMES.SORT_UP, dhSortUp);
36
42
  this.setIcon(ICON_NAMES.SORT_DOWN, dhSortDown);
37
43
  this.setIcon(ICON_NAMES.CARET_DOWN, vsTriangleDown);
@@ -41,7 +47,8 @@ class IrisGridRenderer extends GridRenderer {
41
47
 
42
48
 
43
49
  setIcon(name, faIcon) {
44
- var icon = new Path2D(faIcon.icon[4]);
50
+ var path = Array.isArray(faIcon.icon[4]) ? faIcon.icon[4][0] : faIcon.icon[4];
51
+ var icon = new Path2D(path);
45
52
  var scaledIcon = new Path2D();
46
53
  var scaleMatrix = {
47
54
  a: ICON_SIZE / faIcon.icon[0],
@@ -96,8 +103,8 @@ class IrisGridRenderer extends GridRenderer {
96
103
  modelColumns,
97
104
  modelRows
98
105
  } = metrics;
99
- var modelRow = modelRows.get(row);
100
- var modelColumn = modelColumns.get(column);
106
+ var modelRow = getOrThrow(modelRows, row);
107
+ var modelColumn = getOrThrow(modelColumns, column);
101
108
  var value = model.valueForCell(modelColumn, modelRow);
102
109
 
103
110
  if (TableUtils.isTextType(model.columns[modelColumn].type)) {
@@ -207,6 +214,8 @@ class IrisGridRenderer extends GridRenderer {
207
214
  } = metrics;
208
215
  var x = visibleColumnXs.get(hoverSelectColumn);
209
216
  var columnWidth = visibleColumnWidths.get(hoverSelectColumn);
217
+ assertNotNull(x);
218
+ assertNotNull(columnWidth);
210
219
  context.fillStyle = theme.linkerColumnHoverBackgroundColor;
211
220
  context.fillRect(x, 0, columnWidth, maxY);
212
221
  }
@@ -246,7 +255,11 @@ class IrisGridRenderer extends GridRenderer {
246
255
 
247
256
  context.globalCompositeOperation = 'color';
248
257
  context.filter = "blur(".concat(scrimBlurSize, "px)");
249
- context.fillStyle = scrimColor; // Clip the path so the top edge is hard edge, bottom edge is soft/blurry
258
+
259
+ if (scrimColor) {
260
+ context.fillStyle = scrimColor;
261
+ } // Clip the path so the top edge is hard edge, bottom edge is soft/blurry
262
+
250
263
 
251
264
  context.beginPath();
252
265
  context.rect(0, gridY, width, height - gridY);
@@ -279,7 +292,15 @@ class IrisGridRenderer extends GridRenderer {
279
292
 
280
293
  if (sort.length === 1) {
281
294
  var hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;
282
- this.drawHeaderBar(context, state, hasReverse ? theme.headerReverseBarColor : theme.headerSortBarColor, hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight);
295
+ var color;
296
+
297
+ if (hasReverse) {
298
+ color = theme.headerReverseBarColor;
299
+ } else {
300
+ color = theme.headerSortBarColor;
301
+ }
302
+
303
+ this.drawHeaderBar(context, state, color, hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight);
283
304
  } else if (sort.length > 1) {
284
305
  // if there's multiple bars, the sort is interior to header
285
306
  // and the reverse claims space in the table
@@ -327,8 +348,13 @@ class IrisGridRenderer extends GridRenderer {
327
348
  var {
328
349
  modelColumns
329
350
  } = metrics;
330
- var modelColumn = modelColumns.get(column);
351
+ var modelColumn = getOrThrow(modelColumns, column);
331
352
  var sort = TableUtils.getSortForColumn(model.sort, modelColumn);
353
+
354
+ if (!sort) {
355
+ return;
356
+ }
357
+
332
358
  var icon = this.getSortIcon(sort);
333
359
 
334
360
  if (!icon) {
@@ -417,32 +443,32 @@ class IrisGridRenderer extends GridRenderer {
417
443
  context.fillStyle = theme.headerBarCasingColor;
418
444
  context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1); // Draw the filter input boxes
419
445
 
420
- if (theme.filterBarSeparatorColor) {
421
- var y1 = columnHeaderHeight;
422
- context.strokeStyle = theme.filterBarSeparatorColor;
423
- context.beginPath();
446
+ var y1 = columnHeaderHeight;
447
+ context.strokeStyle = theme.filterBarSeparatorColor;
448
+ context.beginPath();
424
449
 
425
- for (var i = 0; i < visibleColumns.length; i += 1) {
426
- var column = visibleColumns[i];
427
- var modelColumn = modelColumns.get(column);
428
- var columnX = visibleColumnXs.get(column);
429
- var columnWidth = visibleColumnWidths.get(column);
450
+ for (var i = 0; i < visibleColumns.length; i += 1) {
451
+ var column = visibleColumns[i];
452
+ var modelColumn = getOrThrow(modelColumns, column);
453
+ var columnX = getOrThrow(visibleColumnXs, column);
454
+ var columnWidth = getOrThrow(visibleColumnWidths, column);
430
455
 
431
- if (model.isFilterable(modelColumn) && columnWidth > 0) {
432
- var x1 = gridX + columnX;
433
- context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing
434
- }
456
+ if (model.isFilterable(modelColumn) && columnWidth > 0) {
457
+ var x1 = gridX + (columnX !== null && columnX !== void 0 ? columnX : 0);
458
+ context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing
435
459
  }
436
-
437
- context.stroke();
438
460
  }
439
461
 
462
+ context.stroke();
463
+
440
464
  for (var _i = 0; _i < visibleColumns.length; _i += 1) {
441
465
  var _column = visibleColumns[_i];
442
466
 
443
- var _columnWidth = visibleColumnWidths.get(_column);
467
+ var _columnWidth = getOrThrow(visibleColumnWidths, _column);
468
+
469
+ var _columnX = getOrThrow(visibleColumnXs, _column);
444
470
 
445
- var x = visibleColumnXs.get(_column) + gridX;
471
+ var x = _columnX + gridX;
446
472
  this.drawExpandedFilterHeader(context, state, _column, x, _columnWidth);
447
473
  }
448
474
 
@@ -473,6 +499,7 @@ class IrisGridRenderer extends GridRenderer {
473
499
  } = theme;
474
500
  var columnHeaderHeight = gridY - filterBarHeight;
475
501
  var modelColumn = modelColumns.get(column);
502
+ if (!modelColumn) return;
476
503
  var quickFilter = quickFilters.get(modelColumn);
477
504
  var advancedFilter = advancedFilters.get(modelColumn);
478
505
 
@@ -499,7 +526,7 @@ class IrisGridRenderer extends GridRenderer {
499
526
  var fontWidth = fontWidths.get(context.font);
500
527
 
501
528
  if (!fontWidth) {
502
- fontWidth = context.measureText('8');
529
+ fontWidth = context.measureText('8').width;
503
530
 
504
531
  if (!fontWidth) {
505
532
  fontWidth = 10;
@@ -519,7 +546,7 @@ class IrisGridRenderer extends GridRenderer {
519
546
  context.save();
520
547
  var isFilterValid = IrisGridRenderer.isFilterValid(advancedFilter, quickFilter);
521
548
 
522
- if (isFilterValid) {
549
+ if (isFilterValid && filterBarExpandedActiveCellBackgroundColor) {
523
550
  // draw active filter background inside cell
524
551
  context.fillStyle = filterBarExpandedActiveCellBackgroundColor;
525
552
  context.fillRect(columnX + 1, // +1 left border
@@ -527,7 +554,7 @@ class IrisGridRenderer extends GridRenderer {
527
554
  columnWidth - 1, // -1 right border
528
555
  filterBarHeight - 3 // -3 top, bottom border and bottom casing
529
556
  );
530
- } else {
557
+ } else if (filterBarErrorColor) {
531
558
  // draw error box inside cell
532
559
  context.fillStyle = filterBarErrorColor;
533
560
  context.lineWidth = 2;
@@ -587,9 +614,13 @@ class IrisGridRenderer extends GridRenderer {
587
614
  for (var i = 0; i < visibleColumns.length; i += 1) {
588
615
  var column = visibleColumns[i];
589
616
  var columnWidth = visibleColumnWidths.get(column);
590
- var x = visibleColumnXs.get(column) + gridX; // draw the collapsed cells
617
+ var columnX = visibleColumnXs.get(column);
591
618
 
592
- this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);
619
+ if (columnX != null && columnWidth != null) {
620
+ var x = columnX + gridX; // draw the collapsed cells
621
+
622
+ this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);
623
+ }
593
624
  }
594
625
 
595
626
  context.restore();
@@ -611,8 +642,8 @@ class IrisGridRenderer extends GridRenderer {
611
642
  gridY
612
643
  } = metrics;
613
644
  var modelColumn = modelColumns.get(column);
614
- var quickFilter = quickFilters.get(modelColumn);
615
- var advancedFilter = advancedFilters.get(modelColumn);
645
+ var quickFilter = modelColumn ? quickFilters.get(modelColumn) : null;
646
+ var advancedFilter = modelColumn ? advancedFilters.get(modelColumn) : null;
616
647
  var {
617
648
  filterBarCollapsedHeight,
618
649
  filterBarActiveColor,
@@ -622,11 +653,11 @@ class IrisGridRenderer extends GridRenderer {
622
653
  context.save();
623
654
  var isFilterValid = IrisGridRenderer.isFilterValid(advancedFilter, quickFilter);
624
655
 
625
- if (quickFilter == null && advancedFilter == null) {
656
+ if (filterBarActiveBackgroundColor && quickFilter == null && advancedFilter == null) {
626
657
  context.fillStyle = filterBarActiveBackgroundColor;
627
- } else if (isFilterValid) {
658
+ } else if (filterBarActiveColor && isFilterValid) {
628
659
  context.fillStyle = filterBarActiveColor;
629
- } else {
660
+ } else if (filterBarErrorColor) {
630
661
  context.fillStyle = filterBarErrorColor;
631
662
  }
632
663
 
@@ -707,17 +738,22 @@ class IrisGridRenderer extends GridRenderer {
707
738
  }
708
739
 
709
740
  context.fill();
710
- var mouseRow = mouseX >= gridX && mouseX <= maxX + rowFooterWidth ? GridUtils.getRowAtY(mouseY, metrics) : null;
741
+ var mouseRow = mouseX && mouseY && mouseX >= gridX && mouseX <= maxX + rowFooterWidth ? GridUtils.getRowAtY(mouseY, metrics) : null;
711
742
 
712
- if (mouseRow !== null && floatingRows.includes(mouseRow)) {
743
+ if (rowHoverBackgroundColor && mouseRow !== null && floatingRows.includes(mouseRow)) {
713
744
  context.fillStyle = rowHoverBackgroundColor;
714
745
  var y = visibleRowYs.get(mouseRow);
715
746
  var rowHeight = visibleRowHeights.get(mouseRow);
747
+ assertNotNull(y);
748
+ assertNotNull(rowHeight);
716
749
  context.fillRect(x, y, rowFooterWidth, rowHeight);
717
750
  }
718
751
 
719
752
  context.beginPath();
720
- context.strokeStyle = floatingGridRowColor;
753
+
754
+ if (floatingGridRowColor) {
755
+ context.strokeStyle = floatingGridRowColor;
756
+ }
721
757
 
722
758
  if (floatingTopHeight > 0) {
723
759
  context.moveTo(x + 0.5, 0.5);
@@ -743,8 +779,11 @@ class IrisGridRenderer extends GridRenderer {
743
779
 
744
780
  var rowY = visibleRowYs.get(row);
745
781
  var modelRow = modelRows.get(row);
746
- var textY = rowY + _rowHeight * 0.5;
747
- context.fillText(model.textForRowFooter(modelRow), textX, textY);
782
+
783
+ if (rowY != null && _rowHeight != null && modelRow != null) {
784
+ var textY = rowY + _rowHeight * 0.5;
785
+ context.fillText(model.textForRowFooter(modelRow), textX, textY);
786
+ }
748
787
  }
749
788
 
750
789
  context.translate(-gridX, -gridY);
@@ -774,7 +813,7 @@ class IrisGridRenderer extends GridRenderer {
774
813
  left
775
814
  } = this.getCellOverflowButtonPosition(state);
776
815
 
777
- if (this.shouldRenderOverflowButton(state)) {
816
+ if (this.shouldRenderOverflowButton(state) && left) {
778
817
  textMetrics.width = left - metrics.gridX - textMetrics.x;
779
818
  }
780
819
  }
@@ -835,7 +874,7 @@ class IrisGridRenderer extends GridRenderer {
835
874
  height: null
836
875
  };
837
876
 
838
- if (mouseX == null || mouseY == null) {
877
+ if (mouseX == null || mouseY == null || !metrics) {
839
878
  return NULL_POSITION;
840
879
  }
841
880
 
@@ -845,6 +884,9 @@ class IrisGridRenderer extends GridRenderer {
845
884
  left,
846
885
  top
847
886
  } = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
887
+ assertNotNull(left);
888
+ assertNotNull(columnWidth);
889
+ assertNotNull(top);
848
890
  var {
849
891
  width: gridWidth,
850
892
  verticalBarWidth
@@ -892,14 +934,18 @@ class IrisGridRenderer extends GridRenderer {
892
934
  } = theme;
893
935
  context.save();
894
936
 
895
- if (mouseX >= buttonLeft && mouseX <= buttonLeft + buttonWidth && mouseY >= buttonTop && mouseY <= buttonTop + buttonHeight) {
937
+ if (overflowButtonHoverColor && buttonLeft != null && buttonWidth != null && buttonTop != null && buttonHeight != null && mouseX >= buttonLeft && mouseX <= buttonLeft + buttonWidth && mouseY >= buttonTop && mouseY <= buttonTop + buttonHeight) {
896
938
  context.fillStyle = overflowButtonHoverColor;
897
- } else {
939
+ } else if (overflowButtonColor) {
898
940
  context.fillStyle = overflowButtonColor;
899
941
  }
900
942
 
901
943
  var icon = this.getIcon(ICON_NAMES.CELL_OVERFLOW);
902
- context.translate(buttonLeft + cellHorizontalPadding, buttonTop + 2);
944
+
945
+ if (buttonLeft != null && buttonTop != null) {
946
+ context.translate(buttonLeft + cellHorizontalPadding, buttonTop + 2);
947
+ }
948
+
903
949
  context.fill(icon);
904
950
  context.restore();
905
951
  }