@deephaven/iris-grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.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 (160) hide show
  1. package/dist/AdvancedFilterCreator.js +65 -102
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js +6 -8
  10. package/dist/ColumnHeaderGroup.js.map +1 -1
  11. package/dist/ColumnStatistics.js +22 -28
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js +20 -29
  14. package/dist/CrossColumnSearch.js.map +1 -1
  15. package/dist/FilterInputField.js +19 -46
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.js +32 -29
  18. package/dist/GotoRow.js.map +1 -1
  19. package/dist/IrisGrid.js +490 -822
  20. package/dist/IrisGrid.js.map +1 -1
  21. package/dist/IrisGridBottomBar.js +10 -11
  22. package/dist/IrisGridBottomBar.js.map +1 -1
  23. package/dist/IrisGridCacheUtils.js +28 -8
  24. package/dist/IrisGridCacheUtils.js.map +1 -1
  25. package/dist/IrisGridCellOverflowModal.js +30 -13
  26. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  27. package/dist/IrisGridCellRendererUtils.js +6 -12
  28. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  29. package/dist/IrisGridCopyHandler.js +28 -47
  30. package/dist/IrisGridCopyHandler.js.map +1 -1
  31. package/dist/IrisGridMetricCalculator.js +28 -51
  32. package/dist/IrisGridMetricCalculator.js.map +1 -1
  33. package/dist/IrisGridModelUpdater.js +32 -30
  34. package/dist/IrisGridModelUpdater.js.map +1 -1
  35. package/dist/IrisGridPartitionSelector.js +28 -62
  36. package/dist/IrisGridPartitionSelector.js.map +1 -1
  37. package/dist/IrisGridProxyModel.js +7 -12
  38. package/dist/IrisGridProxyModel.js.map +1 -1
  39. package/dist/IrisGridRenderer.js +162 -264
  40. package/dist/IrisGridRenderer.js.map +1 -1
  41. package/dist/IrisGridTableModel.js +23 -16
  42. package/dist/IrisGridTableModel.js.map +1 -1
  43. package/dist/IrisGridTableModelTemplate.js +49 -73
  44. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  45. package/dist/IrisGridTestUtils.js +19 -19
  46. package/dist/IrisGridTestUtils.js.map +1 -1
  47. package/dist/IrisGridTextCellRenderer.js +35 -52
  48. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  49. package/dist/IrisGridTheme.js +9 -1
  50. package/dist/IrisGridTheme.js.map +1 -1
  51. package/dist/IrisGridThemeProvider.js +5 -7
  52. package/dist/IrisGridThemeProvider.js.map +1 -1
  53. package/dist/IrisGridTreeTableModel.js +5 -9
  54. package/dist/IrisGridTreeTableModel.js.map +1 -1
  55. package/dist/IrisGridUtils.js +246 -300
  56. package/dist/IrisGridUtils.js.map +1 -1
  57. package/dist/NoPastePermissionModal.js +3 -5
  58. package/dist/NoPastePermissionModal.js.map +1 -1
  59. package/dist/PendingDataBottomBar.js +27 -16
  60. package/dist/PendingDataBottomBar.js.map +1 -1
  61. package/dist/ToastBottomBar.js +16 -8
  62. package/dist/ToastBottomBar.js.map +1 -1
  63. package/dist/format-context-menus/CustomFormatAction.js +11 -24
  64. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  65. package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
  66. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  67. package/dist/key-handlers/CopyKeyHandler.js +1 -3
  68. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  69. package/dist/key-handlers/ReverseKeyHandler.js +1 -3
  70. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  71. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
  72. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  73. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
  74. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  75. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
  76. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  77. package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
  78. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  79. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
  80. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  81. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
  82. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  83. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
  84. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  85. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
  86. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  87. package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
  88. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  89. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
  90. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  91. package/dist/mousehandlers/PendingMouseHandler.js +10 -18
  92. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  93. package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
  94. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  95. package/dist/sidebar/ChartBuilder.js +45 -102
  96. package/dist/sidebar/ChartBuilder.js.map +1 -1
  97. package/dist/sidebar/CustomColumnBuilder.js +35 -77
  98. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  99. package/dist/sidebar/CustomColumnInput.js +9 -11
  100. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  101. package/dist/sidebar/InputEditor.js +17 -24
  102. package/dist/sidebar/InputEditor.js.map +1 -1
  103. package/dist/sidebar/PluginTableOptionsErrorBoundary.js +6 -11
  104. package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -1
  105. package/dist/sidebar/RollupRows.js +72 -113
  106. package/dist/sidebar/RollupRows.js.map +1 -1
  107. package/dist/sidebar/SelectDistinctBuilder.js +16 -33
  108. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  109. package/dist/sidebar/TableCsvExporter.js +50 -74
  110. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  111. package/dist/sidebar/TableSaver.js +18 -42
  112. package/dist/sidebar/TableSaver.js.map +1 -1
  113. package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
  114. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  115. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  116. package/dist/sidebar/aggregations/AggregationUtils.js +3 -4
  117. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  118. package/dist/sidebar/aggregations/Aggregations.js +45 -34
  119. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  120. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
  121. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  122. package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
  123. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  124. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
  125. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  126. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
  127. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  128. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
  129. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  130. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
  131. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  132. package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
  133. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  134. package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
  135. package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
  137. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
  139. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  140. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
  141. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  142. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
  143. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  144. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
  145. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  146. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
  147. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  148. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
  149. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  150. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
  151. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
  152. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
  153. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  154. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
  155. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  156. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
  157. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  158. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
  159. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  160. package/package.json +16 -16
@@ -58,14 +58,10 @@ export class IrisGridRenderer extends GridRenderer {
58
58
  this.drawPendingRowLine(context, state);
59
59
  }
60
60
  drawCellContent(context, state, column, row) {
61
- var {
62
- metrics,
63
- model
64
- } = state;
65
- var {
66
- modelColumns,
67
- modelRows
68
- } = metrics;
61
+ var metrics = state.metrics,
62
+ model = state.model;
63
+ var modelColumns = metrics.modelColumns,
64
+ modelRows = metrics.modelRows;
69
65
  var modelColumn = modelColumns.get(column);
70
66
  var modelRow = getOrThrow(modelRows, row);
71
67
  if (modelColumn === undefined) {
@@ -76,40 +72,33 @@ export class IrisGridRenderer extends GridRenderer {
76
72
  cellRenderer.drawCellContent(context, state, column, row);
77
73
  }
78
74
  getCellOverflowButtonPosition(_ref) {
79
- var {
80
- mouseX,
81
- mouseY,
82
- metrics,
83
- theme
84
- } = _ref;
75
+ var mouseX = _ref.mouseX,
76
+ mouseY = _ref.mouseY,
77
+ metrics = _ref.metrics,
78
+ theme = _ref.theme;
85
79
  return this.textCellRenderer.getCellOverflowButtonPosition(mouseX, mouseY, metrics, theme);
86
80
  }
87
81
  shouldRenderOverflowButton(state) {
88
82
  return this.textCellRenderer.shouldRenderOverflowButton(state);
89
83
  }
90
84
  drawCellOverflowButton(state) {
91
- var {
92
- context,
93
- mouseX,
94
- mouseY,
95
- theme
96
- } = state;
85
+ var context = state.context,
86
+ mouseX = state.mouseX,
87
+ mouseY = state.mouseY,
88
+ theme = state.theme;
97
89
  if (mouseX == null || mouseY == null) return;
98
90
  if (!this.shouldRenderOverflowButton(state)) {
99
91
  return;
100
92
  }
101
- var {
102
- left: buttonLeft,
103
- top: buttonTop,
104
- width: buttonWidth,
105
- height: buttonHeight
106
- } = this.getCellOverflowButtonPosition(state);
107
- var {
108
- cellHorizontalPadding,
109
- overflowButtonColor,
110
- overflowButtonHoverColor,
111
- iconSize
112
- } = theme;
93
+ var _this$getCellOverflow = this.getCellOverflowButtonPosition(state),
94
+ buttonLeft = _this$getCellOverflow.left,
95
+ buttonTop = _this$getCellOverflow.top,
96
+ buttonWidth = _this$getCellOverflow.width,
97
+ buttonHeight = _this$getCellOverflow.height;
98
+ var cellHorizontalPadding = theme.cellHorizontalPadding,
99
+ overflowButtonColor = theme.overflowButtonColor,
100
+ overflowButtonHoverColor = theme.overflowButtonHoverColor,
101
+ iconSize = theme.iconSize;
113
102
  context.save();
114
103
  if (overflowButtonHoverColor != null && buttonLeft != null && buttonWidth != null && buttonTop != null && buttonHeight != null && mouseX >= buttonLeft && mouseX <= buttonLeft + buttonWidth && mouseY >= buttonTop && mouseY <= buttonTop + buttonHeight) {
115
104
  context.fillStyle = overflowButtonHoverColor;
@@ -124,19 +113,13 @@ export class IrisGridRenderer extends GridRenderer {
124
113
  context.restore();
125
114
  }
126
115
  drawGroupedColumnLine(context, state) {
127
- var {
128
- metrics,
129
- model,
130
- theme
131
- } = state;
132
- var {
133
- groupedColumns
134
- } = model;
135
- var {
136
- maxY,
137
- allColumnWidths,
138
- allColumnXs
139
- } = metrics;
116
+ var metrics = state.metrics,
117
+ model = state.model,
118
+ theme = state.theme;
119
+ var groupedColumns = model.groupedColumns;
120
+ var maxY = metrics.maxY,
121
+ allColumnWidths = metrics.allColumnWidths,
122
+ allColumnXs = metrics.allColumnXs;
140
123
  if (groupedColumns.length === 0 || theme.groupedColumnDividerColor == null) {
141
124
  return;
142
125
  }
@@ -162,18 +145,12 @@ export class IrisGridRenderer extends GridRenderer {
162
145
  context.stroke();
163
146
  }
164
147
  drawPendingRowLine(context, state) {
165
- var {
166
- metrics,
167
- model,
168
- theme
169
- } = state;
170
- var {
171
- allRowYs,
172
- maxX
173
- } = metrics;
174
- var {
175
- pendingRowCount
176
- } = model;
148
+ var metrics = state.metrics,
149
+ model = state.model,
150
+ theme = state.theme;
151
+ var allRowYs = metrics.allRowYs,
152
+ maxX = metrics.maxX;
153
+ var pendingRowCount = model.pendingRowCount;
177
154
  if (pendingRowCount <= 0) {
178
155
  return;
179
156
  }
@@ -194,51 +171,39 @@ export class IrisGridRenderer extends GridRenderer {
194
171
  context.restore();
195
172
  }
196
173
  drawMouseColumnHover(context, state) {
197
- var {
198
- theme,
199
- metrics,
200
- hoverSelectColumn
201
- } = state;
174
+ var theme = state.theme,
175
+ metrics = state.metrics,
176
+ hoverSelectColumn = state.hoverSelectColumn;
202
177
  if (hoverSelectColumn == null || theme.linkerColumnHoverBackgroundColor == null) {
203
178
  return;
204
179
  }
205
- var {
206
- allColumnWidths,
207
- allColumnXs,
208
- maxY
209
- } = metrics;
180
+ var allColumnWidths = metrics.allColumnWidths,
181
+ allColumnXs = metrics.allColumnXs,
182
+ maxY = metrics.maxY;
210
183
  var x = getOrThrow(allColumnXs, hoverSelectColumn);
211
184
  var columnWidth = getOrThrow(allColumnWidths, hoverSelectColumn);
212
185
  context.fillStyle = theme.linkerColumnHoverBackgroundColor;
213
186
  context.fillRect(x, 0, columnWidth, maxY);
214
187
  }
215
188
  drawMouseRowHover(context, state) {
216
- var {
217
- isSelectingColumn
218
- } = state;
189
+ var isSelectingColumn = state.isSelectingColumn;
219
190
  if (!isSelectingColumn) {
220
191
  super.drawMouseRowHover(context, state);
221
192
  }
222
193
  }
223
194
  drawScrim(state) {
224
- var {
225
- context,
226
- loadingScrimProgress,
227
- metrics,
228
- theme
229
- } = state;
195
+ var context = state.context,
196
+ loadingScrimProgress = state.loadingScrimProgress,
197
+ metrics = state.metrics,
198
+ theme = state.theme;
230
199
  if (loadingScrimProgress == null) {
231
200
  return;
232
201
  }
233
- var {
234
- width,
235
- height,
236
- gridY
237
- } = metrics;
238
- var {
239
- scrimBlurSize,
240
- scrimColor
241
- } = theme;
202
+ var width = metrics.width,
203
+ height = metrics.height,
204
+ gridY = metrics.gridY;
205
+ var scrimBlurSize = theme.scrimBlurSize,
206
+ scrimColor = theme.scrimColor;
242
207
  context.save();
243
208
 
244
209
  // Use global composite so we can change the underlying layer to grayscale
@@ -264,22 +229,16 @@ export class IrisGridRenderer extends GridRenderer {
264
229
  }
265
230
  drawColumnHeaders(context, state) {
266
231
  super.drawColumnHeaders(context, state);
267
- var {
268
- theme,
269
- metrics,
270
- model,
271
- reverse
272
- } = state;
273
- var {
274
- columnHeaderHeight
275
- } = metrics;
232
+ var theme = state.theme,
233
+ metrics = state.metrics,
234
+ model = state.model,
235
+ reverse = state.reverse;
236
+ var columnHeaderHeight = metrics.columnHeaderHeight;
276
237
  this.drawFilterHeaders(context, state);
277
238
  if (columnHeaderHeight <= 0) {
278
239
  return;
279
240
  }
280
- var {
281
- sort
282
- } = model;
241
+ var sort = model.sort;
283
242
  // if there is only one sort bar, it is interior to the header to save space
284
243
  if (sort.length === 1) {
285
244
  var color;
@@ -300,15 +259,11 @@ export class IrisGridRenderer extends GridRenderer {
300
259
  }
301
260
  drawHeaderBar(context, state, color, barHeight) {
302
261
  var interior = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
303
- var {
304
- theme,
305
- metrics,
306
- model
307
- } = state;
308
- var {
309
- columnHeaderHeight,
310
- width
311
- } = metrics;
262
+ var theme = state.theme,
263
+ metrics = state.metrics,
264
+ model = state.model;
265
+ var columnHeaderHeight = metrics.columnHeaderHeight,
266
+ width = metrics.width;
312
267
  // Draw casing with 1 pixel above and below the bar,
313
268
  // 1px falls on the existing split between grid/headers
314
269
  // so don't need to be accounnted for in math elsewhere
@@ -322,21 +277,13 @@ export class IrisGridRenderer extends GridRenderer {
322
277
  context.fillRect(0, model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 1 + offset, width, barHeight);
323
278
  }
324
279
  drawColumnHeadersAtDepth(context, state, range, boundsProp, depth) {
325
- var {
326
- metrics,
327
- model,
328
- isMenuShown,
329
- theme
330
- } = state;
331
- var {
332
- columnHeaderMaxDepth
333
- } = model;
334
- var {
335
- width
336
- } = metrics;
337
- var {
338
- columnHeaderHeight
339
- } = theme;
280
+ var metrics = state.metrics,
281
+ model = state.model,
282
+ isMenuShown = state.isMenuShown,
283
+ theme = state.theme;
284
+ var columnHeaderMaxDepth = model.columnHeaderMaxDepth;
285
+ var width = metrics.width;
286
+ var columnHeaderHeight = theme.columnHeaderHeight;
340
287
  var bounds = _objectSpread(_objectSpread({}, boundsProp), {}, {
341
288
  maxX: depth === columnHeaderMaxDepth - 1 && boundsProp.maxX === width ? width - (isMenuShown ? 0 : columnHeaderHeight) // Account for the menu button
342
289
  : boundsProp.maxX
@@ -346,22 +293,16 @@ export class IrisGridRenderer extends GridRenderer {
346
293
  drawColumnHeaderAtIndex(context, state, index, bounds) {
347
294
  var _model$columns$modelC;
348
295
  super.drawColumnHeaderAtIndex(context, state, index, bounds);
349
- var {
350
- metrics,
351
- model,
352
- theme
353
- } = state;
354
- var {
355
- modelColumns,
356
- allColumnWidths,
357
- allColumnXs,
358
- gridX,
359
- columnHeaderHeight
360
- } = metrics;
361
- var {
362
- headerHorizontalPadding,
363
- iconSize: themeIconSize
364
- } = theme;
296
+ var metrics = state.metrics,
297
+ model = state.model,
298
+ theme = state.theme;
299
+ var modelColumns = metrics.modelColumns,
300
+ allColumnWidths = metrics.allColumnWidths,
301
+ allColumnXs = metrics.allColumnXs,
302
+ gridX = metrics.gridX,
303
+ columnHeaderHeight = metrics.columnHeaderHeight;
304
+ var headerHorizontalPadding = theme.headerHorizontalPadding,
305
+ themeIconSize = theme.iconSize;
365
306
  var iconSize = Math.round(themeIconSize * 0.75); // The vsTriangle icons are a bit bigger than we want
366
307
  var columnWidth = getOrThrow(allColumnWidths, index, 0);
367
308
  var columnX = getOrThrow(allColumnXs, index) + gridX;
@@ -387,9 +328,7 @@ export class IrisGridRenderer extends GridRenderer {
387
328
  }
388
329
  var textWidth = this.getCachedHeaderWidth(context, text);
389
330
  var textRight = gridX + columnX + textWidth + headerHorizontalPadding;
390
- var {
391
- maxX
392
- } = bounds;
331
+ var maxX = bounds.maxX;
393
332
  maxX -= headerHorizontalPadding; // Right visible edge of the headers
394
333
  // Right edge of the column. The icon has its own horizontal padding
395
334
  var defaultX = gridX + columnX + columnWidth - iconSize;
@@ -408,11 +347,9 @@ export class IrisGridRenderer extends GridRenderer {
408
347
  context.restore();
409
348
  }
410
349
  drawFilterHeaders(context, state) {
411
- var {
412
- isFilterBarShown,
413
- quickFilters,
414
- advancedFilters
415
- } = state;
350
+ var isFilterBarShown = state.isFilterBarShown,
351
+ quickFilters = state.quickFilters,
352
+ advancedFilters = state.advancedFilters;
416
353
  if (isFilterBarShown) {
417
354
  this.drawExpandedFilterHeaders(context, state);
418
355
  } else if (quickFilters != null && quickFilters.size > 0 || advancedFilters != null && advancedFilters.size > 0) {
@@ -420,28 +357,22 @@ export class IrisGridRenderer extends GridRenderer {
420
357
  }
421
358
  }
422
359
  drawExpandedFilterHeaders(context, state) {
423
- var {
424
- metrics,
425
- model,
426
- theme,
427
- quickFilters,
428
- advancedFilters
429
- } = state;
430
- var {
431
- filterBarHeight
432
- } = theme;
360
+ var metrics = state.metrics,
361
+ model = state.model,
362
+ theme = state.theme,
363
+ quickFilters = state.quickFilters,
364
+ advancedFilters = state.advancedFilters;
365
+ var filterBarHeight = theme.filterBarHeight;
433
366
  if (filterBarHeight <= 0) {
434
367
  return;
435
368
  }
436
- var {
437
- gridX,
438
- gridY,
439
- maxX,
440
- modelColumns,
441
- visibleColumns,
442
- allColumnWidths,
443
- allColumnXs
444
- } = metrics;
369
+ var gridX = metrics.gridX,
370
+ gridY = metrics.gridY,
371
+ maxX = metrics.maxX,
372
+ modelColumns = metrics.modelColumns,
373
+ visibleColumns = metrics.visibleColumns,
374
+ allColumnWidths = metrics.allColumnWidths,
375
+ allColumnXs = metrics.allColumnXs;
445
376
  var columnHeaderHeight = gridY - filterBarHeight;
446
377
  context.save();
447
378
  context.font = theme.filterBarFont;
@@ -489,23 +420,17 @@ export class IrisGridRenderer extends GridRenderer {
489
420
  if (columnWidth <= 0) {
490
421
  return;
491
422
  }
492
- var {
493
- metrics,
494
- theme,
495
- quickFilters,
496
- advancedFilters
497
- } = state;
498
- var {
499
- modelColumns,
500
- gridY
501
- } = metrics;
502
- var {
503
- filterBarHeight,
504
- filterBarExpandedActiveCellBackgroundColor,
505
- filterBarErrorColor,
506
- filterBarHorizontalPadding,
507
- headerColor
508
- } = theme;
423
+ var metrics = state.metrics,
424
+ theme = state.theme,
425
+ quickFilters = state.quickFilters,
426
+ advancedFilters = state.advancedFilters;
427
+ var modelColumns = metrics.modelColumns,
428
+ gridY = metrics.gridY;
429
+ var filterBarHeight = theme.filterBarHeight,
430
+ filterBarExpandedActiveCellBackgroundColor = theme.filterBarExpandedActiveCellBackgroundColor,
431
+ filterBarErrorColor = theme.filterBarErrorColor,
432
+ filterBarHorizontalPadding = theme.filterBarHorizontalPadding,
433
+ headerColor = theme.headerColor;
509
434
  var columnHeaderHeight = gridY - filterBarHeight;
510
435
  var modelColumn = modelColumns.get(column);
511
436
  if (modelColumn === undefined) return;
@@ -516,18 +441,14 @@ export class IrisGridRenderer extends GridRenderer {
516
441
  }
517
442
  var text = null;
518
443
  if (quickFilter != null) {
519
- var {
520
- text: filterText
521
- } = quickFilter;
444
+ var filterText = quickFilter.text;
522
445
  text = filterText;
523
446
  if (!text) {
524
447
  text = TableUtils.getFilterText(quickFilter.filter);
525
448
  }
526
449
  if (text != null) {
527
- var {
528
- fontWidthsLower,
529
- fontWidthsUpper
530
- } = metrics;
450
+ var fontWidthsLower = metrics.fontWidthsLower,
451
+ fontWidthsUpper = metrics.fontWidthsUpper;
531
452
  var fontWidthLower = fontWidthsLower.get(context.font);
532
453
  var fontWidthUpper = fontWidthsUpper.get(context.font);
533
454
  var maxLength = columnWidth - filterBarHorizontalPadding * 2;
@@ -569,25 +490,19 @@ export class IrisGridRenderer extends GridRenderer {
569
490
  context.restore();
570
491
  }
571
492
  drawCollapsedFilterHeaders(context, state) {
572
- var {
573
- metrics,
574
- theme
575
- } = state;
576
- var {
577
- headerSeparatorColor,
578
- filterBarCollapsedHeight
579
- } = theme;
493
+ var metrics = state.metrics,
494
+ theme = state.theme;
495
+ var headerSeparatorColor = theme.headerSeparatorColor,
496
+ filterBarCollapsedHeight = theme.filterBarCollapsedHeight;
580
497
  if (filterBarCollapsedHeight <= 0) {
581
498
  return;
582
499
  }
583
- var {
584
- gridX,
585
- gridY,
586
- maxX,
587
- visibleColumns,
588
- allColumnWidths,
589
- allColumnXs
590
- } = metrics;
500
+ var gridX = metrics.gridX,
501
+ gridY = metrics.gridY,
502
+ maxX = metrics.maxX,
503
+ visibleColumns = metrics.visibleColumns,
504
+ allColumnWidths = metrics.allColumnWidths,
505
+ allColumnXs = metrics.allColumnXs;
591
506
  var columnHeaderHeight = gridY - filterBarCollapsedHeight;
592
507
  context.save();
593
508
 
@@ -610,26 +525,20 @@ export class IrisGridRenderer extends GridRenderer {
610
525
  if (columnWidth <= 0) {
611
526
  return;
612
527
  }
613
- var {
614
- metrics,
615
- theme,
616
- quickFilters,
617
- advancedFilters
618
- } = state;
619
- var {
620
- modelColumns,
621
- gridY
622
- } = metrics;
528
+ var metrics = state.metrics,
529
+ theme = state.theme,
530
+ quickFilters = state.quickFilters,
531
+ advancedFilters = state.advancedFilters;
532
+ var modelColumns = metrics.modelColumns,
533
+ gridY = metrics.gridY;
623
534
  var modelColumn = modelColumns.get(column);
624
535
  if (modelColumn === undefined) return;
625
536
  var quickFilter = quickFilters.get(modelColumn);
626
537
  var advancedFilter = advancedFilters.get(modelColumn);
627
- var {
628
- filterBarCollapsedHeight,
629
- filterBarActiveColor,
630
- filterBarActiveBackgroundColor,
631
- filterBarErrorColor
632
- } = theme;
538
+ var filterBarCollapsedHeight = theme.filterBarCollapsedHeight,
539
+ filterBarActiveColor = theme.filterBarActiveColor,
540
+ filterBarActiveBackgroundColor = theme.filterBarActiveBackgroundColor,
541
+ filterBarErrorColor = theme.filterBarErrorColor;
633
542
  context.save();
634
543
  var isFilterValid = IrisGridRenderer.isFilterValid(advancedFilter, quickFilter);
635
544
  if (filterBarActiveBackgroundColor != null && quickFilter == null && advancedFilter == null) {
@@ -647,40 +556,34 @@ export class IrisGridRenderer extends GridRenderer {
647
556
  context.restore();
648
557
  }
649
558
  drawRowFooters(context, state) {
650
- var {
651
- metrics,
652
- model,
653
- mouseX,
654
- mouseY,
655
- theme
656
- } = state;
657
- var {
658
- gridY,
659
- gridX,
660
- maxX,
661
- modelRows,
662
- floatingTopHeight,
663
- floatingBottomHeight,
664
- floatingRows,
665
- rowFooterWidth,
666
- height,
667
- horizontalBarHeight,
668
- verticalBarWidth,
669
- allRowHeights,
670
- allRowYs,
671
- width
672
- } = metrics;
559
+ var metrics = state.metrics,
560
+ model = state.model,
561
+ mouseX = state.mouseX,
562
+ mouseY = state.mouseY,
563
+ theme = state.theme;
564
+ var gridY = metrics.gridY,
565
+ gridX = metrics.gridX,
566
+ maxX = metrics.maxX,
567
+ modelRows = metrics.modelRows,
568
+ floatingTopHeight = metrics.floatingTopHeight,
569
+ floatingBottomHeight = metrics.floatingBottomHeight,
570
+ floatingRows = metrics.floatingRows,
571
+ rowFooterWidth = metrics.rowFooterWidth,
572
+ height = metrics.height,
573
+ horizontalBarHeight = metrics.horizontalBarHeight,
574
+ verticalBarWidth = metrics.verticalBarWidth,
575
+ allRowHeights = metrics.allRowHeights,
576
+ allRowYs = metrics.allRowYs,
577
+ width = metrics.width;
673
578
  // Only draw the footers on the floating rows
674
579
  if (rowFooterWidth <= 0 || floatingRows.length === 0) {
675
580
  return;
676
581
  }
677
- var {
678
- cellHorizontalPadding,
679
- floatingGridRowColor,
680
- floatingRowBackgroundColors,
681
- headerColor,
682
- rowHoverBackgroundColor
683
- } = theme;
582
+ var cellHorizontalPadding = theme.cellHorizontalPadding,
583
+ floatingGridRowColor = theme.floatingGridRowColor,
584
+ floatingRowBackgroundColors = theme.floatingRowBackgroundColors,
585
+ headerColor = theme.headerColor,
586
+ rowHoverBackgroundColor = theme.rowHoverBackgroundColor;
684
587
  context.translate(gridX, gridY);
685
588
  context.beginPath();
686
589
  var x = Math.min(maxX, width - rowFooterWidth - verticalBarWidth - gridX);
@@ -731,12 +634,10 @@ export class IrisGridRenderer extends GridRenderer {
731
634
  context.translate(-gridX, -gridY);
732
635
  }
733
636
  getExpandButtonPosition(_ref2, depth) {
734
- var {
735
- mouseX,
736
- mouseY,
737
- metrics,
738
- theme
739
- } = _ref2;
637
+ var mouseX = _ref2.mouseX,
638
+ mouseY = _ref2.mouseY,
639
+ metrics = _ref2.metrics,
640
+ theme = _ref2.theme;
740
641
  var NULL_POSITION = {
741
642
  left: null,
742
643
  top: null,
@@ -746,17 +647,14 @@ export class IrisGridRenderer extends GridRenderer {
746
647
  if (mouseX == null || mouseY == null || depth == null || !metrics) {
747
648
  return NULL_POSITION;
748
649
  }
749
- var {
750
- rowHeight,
751
- left,
752
- top
753
- } = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics);
650
+ var _GridUtils$getCellInf = GridUtils.getCellInfoFromXY(mouseX, mouseY, metrics),
651
+ rowHeight = _GridUtils$getCellInf.rowHeight,
652
+ left = _GridUtils$getCellInf.left,
653
+ top = _GridUtils$getCellInf.top;
754
654
  if (left == null || rowHeight == null || top == null) {
755
655
  return NULL_POSITION;
756
656
  }
757
- var {
758
- cellHorizontalPadding
759
- } = theme;
657
+ var cellHorizontalPadding = theme.cellHorizontalPadding;
760
658
  var width = EXPAND_ICON_SIZE + 2 * cellHorizontalPadding;
761
659
  var buttonLeft = Math.max(left + EXPAND_ICON_SIZE * depth, metrics.gridX);
762
660
  var buttonTop = metrics.gridY + top;