@deephaven/iris-grid 0.22.3-beta.18 → 0.22.3-beta.21

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 (199) hide show
  1. package/dist/AdvancedFilterCreator.js +7 -65
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +0 -23
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +0 -52
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +2 -42
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js +0 -11
  10. package/dist/ColumnHeaderGroup.js.map +1 -1
  11. package/dist/ColumnStatistics.js +1 -20
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js +2 -23
  14. package/dist/CrossColumnSearch.js.map +1 -1
  15. package/dist/FilterInputField.js +2 -36
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.d.ts +1 -1
  18. package/dist/GotoRow.d.ts.map +1 -1
  19. package/dist/GotoRow.js +2 -7
  20. package/dist/GotoRow.js.map +1 -1
  21. package/dist/IrisGrid.d.ts +11 -5
  22. package/dist/IrisGrid.d.ts.map +1 -1
  23. package/dist/IrisGrid.js +77 -519
  24. package/dist/IrisGrid.js.map +1 -1
  25. package/dist/IrisGridBottomBar.d.ts +1 -1
  26. package/dist/IrisGridBottomBar.d.ts.map +1 -1
  27. package/dist/IrisGridBottomBar.js +2 -2
  28. package/dist/IrisGridBottomBar.js.map +1 -1
  29. package/dist/IrisGridCellOverflowModal.js +6 -21
  30. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  31. package/dist/IrisGridCopyHandler.js +3 -50
  32. package/dist/IrisGridCopyHandler.js.map +1 -1
  33. package/dist/IrisGridMetricCalculator.js +2 -12
  34. package/dist/IrisGridMetricCalculator.js.map +1 -1
  35. package/dist/IrisGridModel.js +32 -58
  36. package/dist/IrisGridModel.js.map +1 -1
  37. package/dist/IrisGridModelFactory.js +0 -7
  38. package/dist/IrisGridModelFactory.js.map +1 -1
  39. package/dist/IrisGridModelUpdater.js +0 -4
  40. package/dist/IrisGridModelUpdater.js.map +1 -1
  41. package/dist/IrisGridPartitionSelector.js +0 -23
  42. package/dist/IrisGridPartitionSelector.js.map +1 -1
  43. package/dist/IrisGridProxyModel.js +9 -153
  44. package/dist/IrisGridProxyModel.js.map +1 -1
  45. package/dist/IrisGridRenderer.js +41 -183
  46. package/dist/IrisGridRenderer.js.map +1 -1
  47. package/dist/IrisGridShortcuts.js.map +1 -1
  48. package/dist/IrisGridTableModel.js +7 -86
  49. package/dist/IrisGridTableModel.js.map +1 -1
  50. package/dist/IrisGridTableModelTemplate.js +70 -461
  51. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  52. package/dist/IrisGridTestUtils.js +0 -23
  53. package/dist/IrisGridTestUtils.js.map +1 -1
  54. package/dist/IrisGridTheme.js.map +1 -1
  55. package/dist/IrisGridTreeTableModel.js +3 -42
  56. package/dist/IrisGridTreeTableModel.js.map +1 -1
  57. package/dist/IrisGridUtils.d.ts +8 -2
  58. package/dist/IrisGridUtils.d.ts.map +1 -1
  59. package/dist/IrisGridUtils.js +97 -195
  60. package/dist/IrisGridUtils.js.map +1 -1
  61. package/dist/MissingKeyError.js +0 -7
  62. package/dist/MissingKeyError.js.map +1 -1
  63. package/dist/PartitionSelectorSearch.js +2 -48
  64. package/dist/PartitionSelectorSearch.js.map +1 -1
  65. package/dist/PendingDataBottomBar.d.ts +1 -1
  66. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  67. package/dist/PendingDataBottomBar.js +2 -7
  68. package/dist/PendingDataBottomBar.js.map +1 -1
  69. package/dist/TableViewportUpdater.js +3 -29
  70. package/dist/TableViewportUpdater.js.map +1 -1
  71. package/dist/ToastBottomBar.d.ts +1 -1
  72. package/dist/ToastBottomBar.d.ts.map +1 -1
  73. package/dist/ToastBottomBar.js +2 -4
  74. package/dist/ToastBottomBar.js.map +1 -1
  75. package/dist/TreeTableViewportUpdater.js +0 -21
  76. package/dist/TreeTableViewportUpdater.js.map +1 -1
  77. package/dist/format-context-menus/CustomFormatAction.js +4 -25
  78. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  79. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -7
  80. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  81. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -9
  82. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  83. package/dist/format-context-menus/FormatContextMenuUtils.js +3 -9
  84. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  85. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -8
  86. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  87. package/dist/format-context-menus/index.js.map +1 -1
  88. package/dist/index.d.ts +3 -3
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -3
  91. package/dist/index.js.map +1 -1
  92. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -8
  93. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/CopyKeyHandler.js +1 -10
  95. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  96. package/dist/key-handlers/ReverseKeyHandler.js +0 -11
  97. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  98. package/dist/key-handlers/index.js.map +1 -1
  99. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -32
  100. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  101. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +4 -34
  102. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  103. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -20
  104. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  105. package/dist/mousehandlers/IrisGridContextMenuHandler.js +15 -105
  106. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  107. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -9
  108. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  109. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -17
  110. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  111. package/dist/mousehandlers/IrisGridSortMouseHandler.js +2 -15
  112. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  113. package/dist/mousehandlers/PendingMouseHandler.js +0 -6
  114. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  115. package/dist/mousehandlers/index.js.map +1 -1
  116. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  117. package/dist/sidebar/AdvancedSettingsMenu.d.ts +4 -4
  118. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  119. package/dist/sidebar/AdvancedSettingsMenu.js +2 -6
  120. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  121. package/dist/sidebar/AdvancedSettingsType.js +0 -2
  122. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  123. package/dist/sidebar/ChartBuilder.js +2 -46
  124. package/dist/sidebar/ChartBuilder.js.map +1 -1
  125. package/dist/sidebar/CustomColumnBuilder.js +6 -58
  126. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  127. package/dist/sidebar/CustomColumnInput.js +4 -15
  128. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  129. package/dist/sidebar/InputEditor.js +5 -36
  130. package/dist/sidebar/InputEditor.js.map +1 -1
  131. package/dist/sidebar/OptionType.js +0 -2
  132. package/dist/sidebar/OptionType.js.map +1 -1
  133. package/dist/sidebar/RollupRows.js +9 -65
  134. package/dist/sidebar/RollupRows.js.map +1 -1
  135. package/dist/sidebar/SelectDistinctBuilder.js +0 -13
  136. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  137. package/dist/sidebar/TableCsvExporter.js +0 -52
  138. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  139. package/dist/sidebar/TableSaver.js +10 -123
  140. package/dist/sidebar/TableSaver.js.map +1 -1
  141. package/dist/sidebar/VisibilityOrderingBuilder.js +37 -116
  142. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  143. package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
  144. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  145. package/dist/sidebar/aggregations/AggregationEdit.js +2 -14
  146. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  147. package/dist/sidebar/aggregations/AggregationOperation.js +0 -2
  148. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  149. package/dist/sidebar/aggregations/AggregationUtils.js +2 -5
  150. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  151. package/dist/sidebar/aggregations/Aggregations.d.ts +1 -1
  152. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  153. package/dist/sidebar/aggregations/Aggregations.js +2 -12
  154. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  155. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  156. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  157. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +2 -16
  158. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  159. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  160. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  161. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -35
  162. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  163. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  164. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  165. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +2 -12
  166. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  167. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -3
  168. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  169. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +1 -1
  170. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  171. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +16 -26
  172. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  173. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +9 -172
  174. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  175. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  176. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  177. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +2 -16
  178. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  179. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +1 -1
  180. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  181. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -12
  182. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  183. package/dist/sidebar/icons/BarIcon.js +0 -3
  184. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  185. package/dist/sidebar/icons/FormatColumnWhereIcon.js +2 -5
  186. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  187. package/dist/sidebar/icons/FormatRowWhereIcon.js +2 -5
  188. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  189. package/dist/sidebar/icons/HistogramIcon.js +0 -3
  190. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  191. package/dist/sidebar/icons/LineIcon.js +0 -3
  192. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  193. package/dist/sidebar/icons/PieIcon.js +0 -3
  194. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  195. package/dist/sidebar/icons/ScatterIcon.js +0 -3
  196. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  197. package/dist/sidebar/icons/index.js.map +1 -1
  198. package/dist/sidebar/index.js.map +1 -1
  199. package/package.json +15 -15
@@ -1,16 +1,10 @@
1
1
  var _excluded = ["selectedValues"],
2
- _excluded2 = ["selectedValues"];
3
-
2
+ _excluded2 = ["selectedValues"];
4
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
-
6
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
-
8
5
  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; }
9
-
10
6
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
-
12
7
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
13
-
14
8
  import { GridUtils } from '@deephaven/grid';
15
9
  import dh from '@deephaven/jsapi-shim';
16
10
  import { DateUtils, TableUtils } from '@deephaven/jsapi-utils';
@@ -20,7 +14,6 @@ import AggregationUtils from "./sidebar/aggregations/AggregationUtils.js";
20
14
  import AggregationOperation from "./sidebar/aggregations/AggregationOperation.js";
21
15
  import AdvancedSettings from "./sidebar/AdvancedSettings.js";
22
16
  var log = Log.module('IrisGridUtils');
23
-
24
17
  /**
25
18
  * Checks if an index is valid for the given array
26
19
  * @param x The index to check
@@ -30,7 +23,6 @@ var log = Log.module('IrisGridUtils');
30
23
  function isValidIndex(x, array) {
31
24
  return x >= 0 && x < array.length;
32
25
  }
33
-
34
26
  class IrisGridUtils {
35
27
  /**
36
28
  * Exports the state from Grid component to a JSON stringifiable object
@@ -70,14 +62,13 @@ class IrisGridUtils {
70
62
  movedRows: [...movedRows]
71
63
  };
72
64
  }
65
+
73
66
  /**
74
67
  * Import a state for Grid that was exported with {{@link dehydrateGridState}}
75
68
  * @param model The table model to import the state for
76
69
  * @param gridState The state of the panel that was saved
77
70
  * @returns The gridState props to set on the Grid
78
71
  */
79
-
80
-
81
72
  static hydrateGridState(model, gridState) {
82
73
  var customColumns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
83
74
  var {
@@ -104,9 +95,7 @@ class IrisGridUtils {
104
95
  to,
105
96
  from
106
97
  } = _ref4;
107
-
108
98
  var getIndex = x => typeof x === 'string' ? columnNames.findIndex(name => name === x) : x;
109
-
110
99
  return {
111
100
  to: getIndex(to),
112
101
  from: Array.isArray(from) ? [getIndex(from[0]), getIndex(from[1])] : getIndex(from)
@@ -121,13 +110,12 @@ class IrisGridUtils {
121
110
  movedRows: [...movedRows]
122
111
  };
123
112
  }
113
+
124
114
  /**
125
115
  * Exports the state from IrisGrid to a JSON stringifiable object
126
116
  * @param model The table model to export the state for
127
117
  * @param irisGridState The current state of the IrisGrid
128
118
  */
129
-
130
-
131
119
  static dehydrateIrisGridState(model, irisGridState) {
132
120
  var {
133
121
  aggregationSettings = {
@@ -188,13 +176,12 @@ class IrisGridUtils {
188
176
  frozenColumns
189
177
  };
190
178
  }
179
+
191
180
  /**
192
181
  * Import a state for IrisGrid that was exported with {{@link dehydrateIrisGridState}}
193
182
  * @param model The table model to import the state with
194
183
  * @param irisGridState The saved IrisGrid state
195
184
  */
196
-
197
-
198
185
  static hydrateIrisGridState(model, irisGridState) {
199
186
  var {
200
187
  advancedFilters,
@@ -233,7 +220,6 @@ class IrisGridUtils {
233
220
  sorts: IrisGridUtils.hydrateSort(columns, sorts),
234
221
  userColumnWidths: new Map(userColumnWidths.map(_ref8 => {
235
222
  var [column, width] = _ref8;
236
-
237
223
  if (typeof column === 'string' || column instanceof String) {
238
224
  return [columns.findIndex(_ref9 => {
239
225
  var {
@@ -242,7 +228,6 @@ class IrisGridUtils {
242
228
  return name === column;
243
229
  }), width];
244
230
  }
245
-
246
231
  return [column, width];
247
232
  }).filter(_ref10 => {
248
233
  var [column] = _ref10;
@@ -262,14 +247,13 @@ class IrisGridUtils {
262
247
  frozenColumns
263
248
  };
264
249
  }
250
+
265
251
  /**
266
252
  * Export the IrisGridPanel state.
267
253
  * @param model The table model the state is being dehydrated with
268
254
  * @param irisGridPanelState The current IrisGridPanel state
269
255
  * @returns The dehydrated IrisGridPanel state
270
256
  */
271
-
272
-
273
257
  static dehydrateIrisGridPanelState(model, irisGridPanelState) {
274
258
  var {
275
259
  isSelectingPartition,
@@ -284,14 +268,13 @@ class IrisGridUtils {
284
268
  advancedSettings: [...advancedSettings]
285
269
  };
286
270
  }
271
+
287
272
  /**
288
273
  * Import the saved IrisGridPanel state.
289
274
  * @param model The model the state is being hydrated with
290
275
  * @param irisGridPanelState Exported IrisGridPanel state
291
276
  * @returns The state to apply to the IrisGridPanel
292
277
  */
293
-
294
-
295
278
  static hydrateIrisGridPanelState(model, irisGridPanelState) {
296
279
  var {
297
280
  isSelectingPartition,
@@ -309,13 +292,12 @@ class IrisGridUtils {
309
292
  advancedSettings: new Map([...AdvancedSettings.DEFAULTS, ...advancedSettings])
310
293
  };
311
294
  }
295
+
312
296
  /**
313
297
  * Export the quick filters to JSON striginfiable object
314
298
  * @param quickFilters The quick filters to dehydrate
315
299
  * @returns The dehydrated quick filters
316
300
  */
317
-
318
-
319
301
  static dehydrateQuickFilters(quickFilters) {
320
302
  return [...quickFilters].map(_ref11 => {
321
303
  var [columnIndex, quickFilter] = _ref11;
@@ -327,6 +309,7 @@ class IrisGridUtils {
327
309
  }];
328
310
  });
329
311
  }
312
+
330
313
  /**
331
314
  * Import the saved quick filters to apply to the columns. Does not actually apply the filters.
332
315
  * @param columns The columns the filters will be applied to
@@ -334,8 +317,6 @@ class IrisGridUtils {
334
317
  * @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
335
318
  * @returns The quick filters to apply to the columns
336
319
  */
337
-
338
-
339
320
  static hydrateQuickFilters(columns, savedQuickFilters, timeZone) {
340
321
  var importedFilters = savedQuickFilters.map(_ref12 => {
341
322
  var [columnIndex, quickFilter] = _ref12;
@@ -343,17 +324,14 @@ class IrisGridUtils {
343
324
  text
344
325
  } = quickFilter;
345
326
  var filter = null;
346
-
347
327
  try {
348
328
  var column = IrisGridUtils.getColumn(columns, columnIndex);
349
-
350
329
  if (column != null) {
351
330
  filter = TableUtils.makeQuickFilter(column, text, timeZone);
352
331
  }
353
332
  } catch (error) {
354
333
  log.error('hydrateQuickFilters error with', text, error);
355
334
  }
356
-
357
335
  return [columnIndex, {
358
336
  text,
359
337
  filter
@@ -361,14 +339,13 @@ class IrisGridUtils {
361
339
  });
362
340
  return new Map(importedFilters);
363
341
  }
342
+
364
343
  /**
365
344
  * Export the advanced filters from the provided columns to JSON striginfiable object
366
345
  * @param columns The columns for the filters
367
346
  * @param advancedFilters The advanced filters to dehydrate
368
347
  * @returns The dehydrated advanced filters
369
348
  */
370
-
371
-
372
349
  static dehydrateAdvancedFilters(columns, advancedFilters) {
373
350
  return [...advancedFilters].map(_ref13 => {
374
351
  var [columnIndex, advancedFilter] = _ref13;
@@ -380,6 +357,7 @@ class IrisGridUtils {
380
357
  }];
381
358
  });
382
359
  }
360
+
383
361
  /**
384
362
  * Import the saved advanced filters to apply to the columns. Does not actually apply the filters.
385
363
  * @param columns The columns the filters will be applied to
@@ -387,8 +365,6 @@ class IrisGridUtils {
387
365
  * @param timeZone The time zone to make this filter in if it is a date type. E.g. America/New_York
388
366
  * @returns The advanced filters to apply to the columns
389
367
  */
390
-
391
-
392
368
  static hydrateAdvancedFilters(columns, savedAdvancedFilters, timeZone) {
393
369
  var importedFilters = savedAdvancedFilters.map(_ref14 => {
394
370
  var [columnIndex, advancedFilter] = _ref14;
@@ -396,17 +372,14 @@ class IrisGridUtils {
396
372
  assertNotNull(column);
397
373
  var options = IrisGridUtils.hydrateAdvancedFilterOptions(column, advancedFilter.options);
398
374
  var filter = null;
399
-
400
375
  try {
401
376
  var columnRetrieved = IrisGridUtils.getColumn(columns, columnIndex);
402
-
403
377
  if (columnRetrieved != null) {
404
378
  filter = TableUtils.makeAdvancedFilter(column, options, timeZone);
405
379
  }
406
380
  } catch (error) {
407
381
  log.error('hydrateAdvancedFilters error with', options, error);
408
382
  }
409
-
410
383
  return [columnIndex, {
411
384
  options,
412
385
  filter
@@ -414,29 +387,24 @@ class IrisGridUtils {
414
387
  });
415
388
  return new Map(importedFilters);
416
389
  }
417
-
418
390
  static dehydrateAdvancedFilterOptions(column, options) {
419
391
  var {
420
- selectedValues
421
- } = options,
422
- otherOptions = _objectWithoutProperties(options, _excluded);
423
-
392
+ selectedValues
393
+ } = options,
394
+ otherOptions = _objectWithoutProperties(options, _excluded);
424
395
  return _objectSpread({
425
396
  selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => IrisGridUtils.dehydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
426
397
  }, otherOptions);
427
398
  }
428
-
429
399
  static hydrateAdvancedFilterOptions(column, options) {
430
400
  var {
431
- selectedValues
432
- } = options,
433
- otherOptions = _objectWithoutProperties(options, _excluded2);
434
-
401
+ selectedValues
402
+ } = options,
403
+ otherOptions = _objectWithoutProperties(options, _excluded2);
435
404
  return _objectSpread({
436
405
  selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => IrisGridUtils.hydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
437
406
  }, otherOptions);
438
407
  }
439
-
440
408
  static dehydratePendingDataMap(columns, pendingDataMap) {
441
409
  return [...pendingDataMap].map(_ref15 => {
442
410
  var [rowIndex, {
@@ -450,10 +418,8 @@ class IrisGridUtils {
450
418
  }];
451
419
  });
452
420
  }
453
-
454
421
  static hydratePendingDataMap(columns, pendingDataMap) {
455
422
  var columnMap = new Map();
456
-
457
423
  var getColumnIndex = columnName => {
458
424
  if (!columnMap.has(columnName)) {
459
425
  columnMap.set(columnName, columns.findIndex(_ref17 => {
@@ -463,10 +429,8 @@ class IrisGridUtils {
463
429
  return name === columnName;
464
430
  }));
465
431
  }
466
-
467
432
  return columnMap.get(columnName);
468
433
  };
469
-
470
434
  return new Map(pendingDataMap.map(_ref18 => {
471
435
  var [rowIndex, {
472
436
  data
@@ -474,7 +438,6 @@ class IrisGridUtils {
474
438
  return [rowIndex, {
475
439
  data: new Map(data.map(_ref19 => {
476
440
  var _getColumnIndex;
477
-
478
441
  var [columnName, value] = _ref19;
479
442
  var index = getColumnIndex(columnName);
480
443
  assertNotNull(index);
@@ -483,65 +446,54 @@ class IrisGridUtils {
483
446
  }];
484
447
  }));
485
448
  }
449
+
486
450
  /**
487
451
  * Dehydrates/serializes a value for storage.
488
452
  * @param value The value to dehydrate
489
453
  * @param columnType The column type
490
454
  */
491
-
492
-
493
455
  static dehydrateValue(value, columnType) {
494
456
  if (TableUtils.isDateType(columnType)) {
495
457
  return IrisGridUtils.dehydrateDateTime(value);
496
458
  }
497
-
498
459
  if (TableUtils.isLongType(columnType)) {
499
460
  return IrisGridUtils.dehydrateLong(value);
500
461
  }
501
-
502
462
  return value;
503
463
  }
464
+
504
465
  /**
505
466
  * Hydrate a value from it's serialized state
506
467
  * @param value The dehydrated value that needs to be hydrated
507
468
  * @param columnType The type of column
508
469
  */
509
-
510
-
511
470
  static hydrateValue(value, columnType) {
512
471
  if (TableUtils.isDateType(columnType)) {
513
472
  return IrisGridUtils.hydrateDateTime(value);
514
473
  }
515
-
516
474
  if (TableUtils.isLongType(columnType)) {
517
475
  return IrisGridUtils.hydrateLong(value);
518
476
  }
519
-
520
477
  return value;
521
478
  }
522
-
523
479
  static dehydrateDateTime(value) {
524
480
  return value != null ? dh.i18n.DateTimeFormat.format(DateUtils.FULL_DATE_FORMAT, value) : null;
525
481
  }
526
-
527
482
  static hydrateDateTime(value) {
528
483
  return value != null ? dh.i18n.DateTimeFormat.parse(DateUtils.FULL_DATE_FORMAT, value) : null;
529
484
  }
530
-
531
485
  static dehydrateLong(value) {
532
486
  return value != null ? "".concat(value) : null;
533
487
  }
534
-
535
488
  static hydrateLong(value) {
536
489
  return value != null ? dh.LongWrapper.ofString(value) : null;
537
490
  }
491
+
538
492
  /**
539
493
  * Export the sorts from the provided table sorts to JSON stringifiable object
540
494
  * @param sorts The table sorts
541
495
  * @returns The dehydrated sorts
542
496
  */
543
-
544
-
545
497
  static dehydrateSort(sorts) {
546
498
  return sorts.map(sort => {
547
499
  var {
@@ -556,14 +508,13 @@ class IrisGridUtils {
556
508
  };
557
509
  });
558
510
  }
511
+
559
512
  /**
560
513
  * Import the saved sorts to apply to the table. Does not actually apply the sort.
561
514
  * @param columns The columns the sorts will be applied to
562
515
  * @param sorts Exported sort definitions
563
516
  * @returns The sorts to apply to the table
564
517
  */
565
-
566
-
567
518
  static hydrateSort(columns, sorts) {
568
519
  return sorts.map(sort => {
569
520
  var {
@@ -571,42 +522,35 @@ class IrisGridUtils {
571
522
  isAbs,
572
523
  direction
573
524
  } = sort;
574
-
575
525
  if (direction === TableUtils.sortDirection.reverse) {
576
526
  return dh.Table.reverse();
577
527
  }
578
-
579
528
  var column = IrisGridUtils.getColumn(columns, columnIndex);
580
-
581
529
  if (column != null) {
582
530
  var columnSort = column.sort();
583
-
584
531
  if (isAbs) {
585
532
  columnSort = columnSort.abs();
586
533
  }
587
-
588
534
  if (direction === TableUtils.sortDirection.descending) {
589
535
  columnSort = columnSort.desc();
590
536
  } else {
591
537
  columnSort = columnSort.asc();
592
538
  }
593
-
594
539
  return columnSort;
595
540
  }
596
-
597
541
  return null;
598
- }) // If we can't find the column any more, it's null, filter it out
542
+ })
543
+ // If we can't find the column any more, it's null, filter it out
599
544
  // If the item is a reverse sort item, filter it out - it will get applied with the `reverseType` property
600
545
  // This should only happen when loading a legacy dashboard
601
546
  .filter(item => item != null && item.direction !== TableUtils.sortDirection.reverse);
602
547
  }
548
+
603
549
  /**
604
550
  * Pulls just the table settings from the panel state, eg. filters/sorts
605
551
  * @param panelState The dehydrated panel state
606
552
  * @returns A dehydrated table settings object, { partition, partitionColumn, advancedFilters, quickFilters, sorts }
607
553
  */
608
-
609
-
610
554
  static extractTableSettings(panelState) {
611
555
  var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
612
556
  var {
@@ -631,57 +575,46 @@ class IrisGridUtils {
631
575
  sorts
632
576
  };
633
577
  }
578
+
634
579
  /**
635
580
  * Applies the passed in table settings directly to the provided table
636
581
  * @param table The table to apply the settings to
637
582
  * @param tableSettings Dehydrated table settings extracted with `extractTableSettings`
638
583
  * @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
639
584
  */
640
-
641
-
642
585
  static applyTableSettings(table, tableSettings, timeZone) {
643
586
  var {
644
587
  columns
645
588
  } = table;
646
589
  var quickFilters = [];
647
-
648
590
  if (tableSettings.quickFilters) {
649
591
  quickFilters = IrisGridUtils.getFiltersFromFilterMap(IrisGridUtils.hydrateQuickFilters(columns, tableSettings.quickFilters, timeZone));
650
592
  }
651
-
652
593
  var advancedFilters = [];
653
-
654
594
  if (tableSettings.advancedFilters) {
655
595
  advancedFilters = IrisGridUtils.getFiltersFromFilterMap(IrisGridUtils.hydrateAdvancedFilters(columns, tableSettings.advancedFilters, timeZone));
656
596
  }
657
-
658
597
  var inputFilters = IrisGridUtils.getFiltersFromInputFilters(columns, tableSettings.inputFilters, timeZone);
659
598
  var sorts = [];
660
-
661
599
  if (tableSettings.sorts) {
662
600
  sorts = IrisGridUtils.hydrateSort(columns, tableSettings.sorts);
663
601
  }
664
-
665
602
  var filters = [...quickFilters, ...advancedFilters];
666
603
  var {
667
604
  partition,
668
605
  partitionColumn: partitionColumnName
669
606
  } = tableSettings;
670
-
671
607
  if (partition != null && partitionColumnName != null) {
672
608
  var partitionColumn = IrisGridUtils.getColumnByName(columns, partitionColumnName);
673
-
674
609
  if (partitionColumn) {
675
610
  var partitionFilter = partitionColumn.filter().eq(dh.FilterValue.ofString(partition));
676
611
  filters = [partitionFilter, ...filters];
677
612
  }
678
613
  }
679
-
680
614
  filters = [...inputFilters, ...filters];
681
615
  table.applyFilter(filters);
682
616
  table.applySort(sorts);
683
617
  }
684
-
685
618
  static getInputFiltersForColumns(columns) {
686
619
  var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
687
620
  return inputFilters.filter(_ref20 => {
@@ -698,7 +631,6 @@ class IrisGridUtils {
698
631
  });
699
632
  });
700
633
  }
701
-
702
634
  static getFiltersFromInputFilters(columns) {
703
635
  var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
704
636
  var timeZone = arguments.length > 2 ? arguments[2] : undefined;
@@ -715,7 +647,6 @@ class IrisGridUtils {
715
647
  } = _ref23;
716
648
  return columnName === name && columnType === type;
717
649
  });
718
-
719
650
  if (column) {
720
651
  try {
721
652
  return TableUtils.makeQuickFilter(column, value, timeZone);
@@ -724,33 +655,27 @@ class IrisGridUtils {
724
655
  log.debug('Unable to create input filter', e);
725
656
  }
726
657
  }
727
-
728
658
  return null;
729
659
  }).filter(filter => filter != null);
730
660
  }
731
-
732
661
  static getFiltersFromFilterMap(filterMap) {
733
662
  var filters = [];
734
663
  var keys = Array.from(filterMap.keys());
735
-
736
664
  for (var i = 0; i < keys.length; i += 1) {
737
665
  var key = keys[i];
738
666
  var item = filterMap.get(key);
739
-
740
667
  if (item && item.filter != null) {
741
668
  filters.push(item.filter);
742
669
  }
743
670
  }
744
-
745
671
  return filters;
746
672
  }
673
+
747
674
  /**
748
675
  * Get array of hidden column indexes
749
676
  * @param userColumnWidths Map of user column widths
750
677
  * @returns Array of hidden column indexes
751
678
  */
752
-
753
-
754
679
  static getHiddenColumns(userColumnWidths) {
755
680
  return [...userColumnWidths.entries()].filter(_ref24 => {
756
681
  var [, value] = _ref24;
@@ -760,21 +685,17 @@ class IrisGridUtils {
760
685
  return key;
761
686
  });
762
687
  }
763
-
764
688
  static parseCustomColumnNames(customColumns) {
765
689
  return customColumns.map(customColumn => customColumn.split('=')[0]);
766
690
  }
767
-
768
691
  static getRemovedCustomColumnNames(oldCustomColumns, customColumns) {
769
692
  var oldCustomColumnsNames = IrisGridUtils.parseCustomColumnNames(oldCustomColumns);
770
693
  var customColumnNames = IrisGridUtils.parseCustomColumnNames(customColumns);
771
694
  return oldCustomColumnsNames.filter(oldCustomColumnName => !customColumnNames.includes(oldCustomColumnName));
772
695
  }
773
-
774
696
  static removeSortsInColumns(sorts, columnNames) {
775
697
  return sorts.filter(sort => !columnNames.includes(sort.column.name));
776
698
  }
777
-
778
699
  static removeFiltersInColumns(columns, filters, removedColumnNames) {
779
700
  var columnNames = columns.map(_ref26 => {
780
701
  var {
@@ -786,7 +707,6 @@ class IrisGridUtils {
786
707
  removedColumnNames.forEach(columnName => newFilter.delete(columnNames.indexOf(columnName)));
787
708
  return newFilter;
788
709
  }
789
-
790
710
  static removeColumnFromMovedColumns(columns, movedColumns, removedColumnNames) {
791
711
  var columnNames = columns.map(_ref27 => {
792
712
  var {
@@ -795,33 +715,26 @@ class IrisGridUtils {
795
715
  return name;
796
716
  });
797
717
  var newMoves = [...movedColumns];
798
-
799
718
  var _loop = function _loop(i) {
800
719
  var removedColumnName = removedColumnNames[i];
801
720
  var removedColumnIndex = columnNames.findIndex(name => name === removedColumnName);
802
721
  var moves = [];
803
-
804
722
  for (var j = 0; j < newMoves.length; j += 1) {
805
723
  var move = newMoves[j];
806
-
807
724
  var newMove = _objectSpread({}, move);
808
-
809
725
  var [fromStart, fromEnd] = Array.isArray(move.from) ? move.from : [move.from, move.from];
810
-
811
726
  if (removedColumnIndex <= move.to) {
812
727
  newMove.to -= 1;
813
- } // If equal to fromStart, the new fromStart would stay the same
814
- // It's just the next element in the range which will have the same index after deletion
815
-
728
+ }
816
729
 
730
+ // If equal to fromStart, the new fromStart would stay the same
731
+ // It's just the next element in the range which will have the same index after deletion
817
732
  if (removedColumnIndex < fromStart) {
818
733
  fromStart -= 1;
819
734
  }
820
-
821
735
  if (removedColumnIndex <= fromEnd) {
822
736
  fromEnd -= 1;
823
737
  }
824
-
825
738
  if (fromStart <= fromEnd && fromStart !== newMove.to) {
826
739
  if (fromStart === fromEnd) {
827
740
  moves.push(_objectSpread(_objectSpread({}, newMove), {}, {
@@ -832,76 +745,57 @@ class IrisGridUtils {
832
745
  from: [fromStart, fromEnd]
833
746
  }));
834
747
  }
835
- } // get the next index of the removed column after the move is applied
836
- // eslint-disable-next-line prefer-destructuring
837
-
748
+ }
838
749
 
750
+ // get the next index of the removed column after the move is applied
751
+ // eslint-disable-next-line prefer-destructuring
839
752
  removedColumnIndex = GridUtils.applyItemMoves(removedColumnIndex, removedColumnIndex, [move])[0][0];
840
753
  }
841
-
842
754
  newMoves = moves;
843
755
  columnNames.splice(columnNames.findIndex(name => name === removedColumnName), 1);
844
756
  };
845
-
846
757
  for (var i = 0; i < removedColumnNames.length; i += 1) {
847
758
  _loop(i);
848
759
  }
849
-
850
760
  return newMoves;
851
761
  }
852
-
853
762
  static removeColumnsFromSelectDistinctColumns(selectDistinctColumns, removedColumnNames) {
854
763
  return selectDistinctColumns.filter(columnName => !removedColumnNames.includes(columnName));
855
764
  }
856
-
857
765
  static getVisibleColumnsInRange(tableColumns, left, right, movedColumns, hiddenColumns) {
858
766
  var columns = [];
859
-
860
767
  for (var i = left; i <= right; i += 1) {
861
768
  var modelIndex = GridUtils.getModelIndex(i, movedColumns);
862
-
863
769
  if (modelIndex >= 0 && modelIndex < tableColumns.length && !hiddenColumns.includes(modelIndex)) {
864
770
  columns.push(tableColumns[modelIndex]);
865
771
  }
866
772
  }
867
-
868
773
  return columns;
869
774
  }
870
-
871
775
  static getPrevVisibleColumns(tableColumns, startIndex, count, movedColumns, hiddenColumns) {
872
776
  var columns = [];
873
777
  var i = startIndex;
874
-
875
778
  while (i >= 0 && columns.length < count) {
876
779
  var modelIndex = GridUtils.getModelIndex(i, movedColumns);
877
-
878
780
  if (modelIndex >= 0 && modelIndex < tableColumns.length && !hiddenColumns.includes(modelIndex)) {
879
781
  columns.unshift(tableColumns[modelIndex]);
880
782
  }
881
-
882
783
  i -= 1;
883
784
  }
884
-
885
785
  return columns;
886
786
  }
887
-
888
787
  static getNextVisibleColumns(tableColumns, startIndex, count, movedColumns, hiddenColumns) {
889
788
  var columns = [];
890
789
  var i = startIndex;
891
-
892
790
  while (i < tableColumns.length && columns.length < count) {
893
791
  var modelIndex = GridUtils.getModelIndex(i, movedColumns);
894
-
895
792
  if (modelIndex >= 0 && modelIndex < tableColumns.length && !hiddenColumns.includes(modelIndex)) {
896
793
  columns.push(tableColumns[modelIndex]);
897
794
  }
898
-
899
795
  i += 1;
900
796
  }
901
-
902
797
  return columns;
903
798
  }
904
-
905
799
  static getColumnsToFetch(tableColumns, viewportColumns, alwaysFetchColumnNames) {
906
800
  var columnsToFetch = [...viewportColumns];
907
801
  alwaysFetchColumnNames.forEach(columnName => {
@@ -911,23 +805,19 @@ class IrisGridUtils {
911
805
  } = _ref28;
912
806
  return name === columnName;
913
807
  });
914
-
915
808
  if (column != null && !viewportColumns.includes(column)) {
916
809
  columnsToFetch.push(column);
917
810
  }
918
811
  });
919
812
  return columnsToFetch;
920
813
  }
921
-
922
814
  static getModelViewportColumns(columns, left, right, movedColumns) {
923
815
  var hiddenColumns = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
924
816
  var alwaysFetchColumnNames = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
925
817
  var bufferPages = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
926
-
927
818
  if (left == null || right == null) {
928
819
  return null;
929
820
  }
930
-
931
821
  var columnsCenter = IrisGridUtils.getVisibleColumnsInRange(columns, left, right, movedColumns, hiddenColumns);
932
822
  var bufferWidth = columnsCenter.length * bufferPages;
933
823
  var columnsLeft = IrisGridUtils.getPrevVisibleColumns(columns, left - 1, bufferWidth, movedColumns, hiddenColumns);
@@ -935,6 +825,7 @@ class IrisGridUtils {
935
825
  var bufferedColumns = [...columnsLeft, ...columnsCenter, ...columnsRight];
936
826
  return IrisGridUtils.getColumnsToFetch(columns, bufferedColumns, alwaysFetchColumnNames);
937
827
  }
828
+
938
829
  /**
939
830
  * Get the dh.RangeSet representation of the provided ranges.
940
831
  * Ranges are sorted prior to creating the RangeSet. Only the rows are taken into account,
@@ -942,8 +833,6 @@ class IrisGridUtils {
942
833
  * @param ranges The ranges to get the range set for
943
834
  * @returns The rangeset for the provided ranges
944
835
  */
945
-
946
-
947
836
  static rangeSetFromRanges(ranges) {
948
837
  var rangeSets = ranges.slice().sort((a, b) => {
949
838
  assertNotNull(a.startRow);
@@ -960,6 +849,7 @@ class IrisGridUtils {
960
849
  });
961
850
  return dh.RangeSet.ofRanges(rangeSets);
962
851
  }
852
+
963
853
  /**
964
854
  * Validate whether the ranges passed in are valid to take a snapshot from.
965
855
  * Multiple selections are valid if all of the selected rows have the same columns selected.
@@ -967,120 +857,98 @@ class IrisGridUtils {
967
857
  * @param ranges The ranges to validate
968
858
  * @returns True if the ranges are valid, false otherwise
969
859
  */
970
-
971
-
972
860
  static isValidSnapshotRanges(ranges) {
973
861
  if (ranges == null || ranges.length === 0) {
974
862
  return false;
975
- } // To verify all the rows selected have the same set of columns selected, build a map with string representations
976
- // of each range.
977
-
863
+ }
978
864
 
865
+ // To verify all the rows selected have the same set of columns selected, build a map with string representations
866
+ // of each range.
979
867
  var rangeMap = new Map();
980
-
981
868
  for (var i = 0; i < ranges.length; i += 1) {
982
869
  var range = ranges[i];
983
870
  var rowMapIndex = "".concat(range.startRow, ":").concat(range.endRow);
984
871
  var columnMapIndex = "".concat(range.startColumn, ":").concat(range.endColumn);
985
-
986
872
  if (!rangeMap.has(rowMapIndex)) {
987
873
  rangeMap.set(rowMapIndex, []);
988
874
  }
989
-
990
875
  rangeMap.get(rowMapIndex).push(columnMapIndex);
991
876
  }
992
-
993
877
  var keys = [...rangeMap.keys()];
994
878
  var matchColumnRanges = rangeMap.get(keys[0]).sort().join(',');
995
-
996
879
  for (var _i = 1; _i < keys.length; _i += 1) {
997
880
  if (rangeMap.get(keys[_i]).sort().join(',') !== matchColumnRanges) {
998
881
  return false;
999
882
  }
1000
883
  }
1001
-
1002
884
  return true;
1003
885
  }
886
+
1004
887
  /**
1005
888
  * Check if the provided value is a valid table index
1006
889
  * @param value A value to check if it's a valid table index
1007
890
  */
1008
-
1009
-
1010
891
  static isValidIndex(value) {
1011
892
  if (!Number.isInteger(value)) {
1012
893
  return false;
1013
894
  }
1014
-
1015
895
  if (!(typeof value === 'number')) {
1016
896
  return false;
1017
897
  }
1018
-
1019
898
  return value >= 0;
1020
899
  }
900
+
1021
901
  /**
1022
902
  * Returns all columns used in any of the ranges provided
1023
903
  * @param ranges The model ranges to get columns for
1024
904
  * @param allColumns All the columns to pull from
1025
905
  * @returns The columns selected in the range
1026
906
  */
1027
-
1028
-
1029
907
  static columnsFromRanges(ranges, allColumns) {
1030
908
  if (ranges == null || ranges.length === 0) {
1031
909
  return [];
1032
910
  }
1033
-
1034
911
  if (ranges[0].startColumn === null && ranges[0].endColumn === null) {
1035
912
  // Snapshot of all the columns
1036
913
  return allColumns;
1037
914
  }
1038
-
1039
915
  var columnSet = new Set();
1040
-
1041
916
  for (var i = 0; i < ranges.length; i += 1) {
1042
917
  var range = ranges[i];
1043
918
  assertNotNull(range.startColumn);
1044
919
  assertNotNull(range.endColumn);
1045
-
1046
920
  for (var c = (_range$startColumn = range.startColumn) !== null && _range$startColumn !== void 0 ? _range$startColumn : 0; c <= ((_range$endColumn = range.endColumn) !== null && _range$endColumn !== void 0 ? _range$endColumn : allColumns.length - 1); c += 1) {
1047
921
  var _range$startColumn, _range$endColumn;
1048
-
1049
922
  columnSet.add(c);
1050
923
  }
1051
924
  }
1052
-
1053
925
  return [...columnSet].map(c => allColumns[c]);
1054
926
  }
927
+
1055
928
  /**
1056
929
  * Transforms an iris data snapshot into a simple data matrix
1057
930
  * @param data The Iris formatted table data
1058
931
  * @returns A matrix of the values of the data
1059
932
  */
1060
-
1061
-
1062
933
  static snapshotDataToMatrix(data) {
1063
934
  var {
1064
935
  columns,
1065
936
  rows
1066
937
  } = data;
1067
938
  var result = [];
1068
-
1069
939
  for (var r = 0; r < rows.length; r += 1) {
1070
940
  var row = rows[r];
1071
941
  var rowData = [];
1072
-
1073
942
  for (var c = 0; c < columns.length; c += 1) {
1074
943
  var column = columns[c];
1075
944
  var value = row.get(column);
1076
945
  rowData.push(value);
1077
946
  }
1078
-
1079
947
  result.push(rowData);
1080
948
  }
1081
-
1082
949
  return result;
1083
950
  }
951
+
1084
952
  /**
1085
953
  * Hydrate model rollup config
1086
954
  * @param originalColumns Original model columns
@@ -1088,15 +956,11 @@ class IrisGridUtils {
1088
956
  * @param aggregationSettings Aggregation settings
1089
957
  * @returns Rollup config for the model
1090
958
  */
1091
-
1092
-
1093
959
  static getModelRollupConfig(originalColumns, config, aggregationSettings) {
1094
960
  var _config$columns$lengt, _config$columns;
1095
-
1096
961
  if (((_config$columns$lengt = config === null || config === void 0 ? void 0 : (_config$columns = config.columns) === null || _config$columns === void 0 ? void 0 : _config$columns.length) !== null && _config$columns$lengt !== void 0 ? _config$columns$lengt : 0) === 0) {
1097
962
  return null;
1098
963
  }
1099
-
1100
964
  var {
1101
965
  columns: groupingColumns = [],
1102
966
  showConstituents: includeConstituents = true,
@@ -1114,27 +978,23 @@ class IrisGridUtils {
1114
978
  } = _ref29;
1115
979
  return AggregationUtils.isRollupOperation(operation) ? [] : AggregationUtils.getOperationColumnNames(originalColumns, operation, selected, invert);
1116
980
  });
1117
- var aggregationMap = {}; // Aggregation columns should show first, add them first
1118
-
981
+ var aggregationMap = {};
982
+ // Aggregation columns should show first, add them first
1119
983
  for (var i = 0; i < aggregations.length; i += 1) {
1120
984
  aggregationMap[aggregations[i].operation] = aggregationColumns[i];
1121
985
  }
1122
-
1123
986
  if (showNonAggregatedColumns) {
1124
987
  // Filter out any column that already has an aggregation or grouping
1125
988
  var nonAggregatedColumnSet = new Set(originalColumns.map(c => c.name).filter(name => !groupingColumns.includes(name)));
1126
989
  aggregationColumns.forEach(columns => {
1127
990
  columns.forEach(name => nonAggregatedColumnSet.delete(name));
1128
991
  });
1129
-
1130
992
  if (nonAggregatedColumnSet.size > 0) {
1131
993
  var _aggregationMap$Aggre;
1132
-
1133
994
  var existingColumns = (_aggregationMap$Aggre = aggregationMap[AggregationOperation.FIRST]) !== null && _aggregationMap$Aggre !== void 0 ? _aggregationMap$Aggre : [];
1134
995
  aggregationMap[AggregationOperation.FIRST] = [...existingColumns, ...nonAggregatedColumnSet];
1135
996
  }
1136
997
  }
1137
-
1138
998
  return {
1139
999
  groupingColumns,
1140
1000
  includeConstituents,
@@ -1142,18 +1002,16 @@ class IrisGridUtils {
1142
1002
  aggregations: aggregationMap
1143
1003
  };
1144
1004
  }
1005
+
1145
1006
  /**
1146
1007
  * @param pendingDataMap Map of pending data
1147
1008
  * @returns A map with the errors in the pending data
1148
1009
  */
1149
-
1150
-
1151
1010
  static getPendingErrors(pendingDataMap) {
1152
1011
  pendingDataMap.forEach((row, rowIndex) => {
1153
1012
  if (!IrisGridUtils.isValidIndex(rowIndex)) {
1154
1013
  throw new Error("Invalid rowIndex ".concat(rowIndex));
1155
1014
  }
1156
-
1157
1015
  var {
1158
1016
  data
1159
1017
  } = row;
@@ -1164,29 +1022,26 @@ class IrisGridUtils {
1164
1022
  });
1165
1023
  });
1166
1024
  }
1025
+
1167
1026
  /**
1168
1027
  * Retrieves a column from the provided array at the index, or `null` and logs an error if it's invalid
1169
1028
  *
1170
1029
  * @param columns The columns to get the column from
1171
1030
  * @param columnIndex The column index to get
1172
1031
  */
1173
-
1174
-
1175
1032
  static getColumn(columns, columnIndex) {
1176
1033
  if (columnIndex < columns.length) {
1177
1034
  return columns[columnIndex];
1178
1035
  }
1179
-
1180
1036
  log.error('Unable to retrieve column', columnIndex, '>=', columns.length);
1181
1037
  return null;
1182
1038
  }
1039
+
1183
1040
  /**
1184
1041
  * Retrieves a column from the provided array matching the name, or `null` and logs an error if not found
1185
1042
  * @param columns The columns to get the column from
1186
1043
  * @param columnName The column name to retrieve
1187
1044
  */
1188
-
1189
-
1190
1045
  static getColumnByName(columns, columnName) {
1191
1046
  var column = columns.find(_ref30 => {
1192
1047
  var {
@@ -1194,7 +1049,6 @@ class IrisGridUtils {
1194
1049
  } = _ref30;
1195
1050
  return name === columnName;
1196
1051
  });
1197
-
1198
1052
  if (column == null) {
1199
1053
  log.error('Unable to retrieve column by name', columnName, columns.map(_ref31 => {
1200
1054
  var {
@@ -1203,17 +1057,15 @@ class IrisGridUtils {
1203
1057
  return name;
1204
1058
  }));
1205
1059
  }
1206
-
1207
1060
  return column;
1208
1061
  }
1062
+
1209
1063
  /**
1210
1064
  * Get filter configs with column names changed to indexes, exclude missing columns
1211
1065
  * @param columns The columns to get column indexes from
1212
1066
  * @param filters Filter configs
1213
1067
  * @returns Updated filter configs with column names changed to indexes
1214
1068
  */
1215
-
1216
-
1217
1069
  static changeFilterColumnNamesToIndexes(columns, filters) {
1218
1070
  return filters.map(_ref32 => {
1219
1071
  var {
@@ -1225,7 +1077,57 @@ class IrisGridUtils {
1225
1077
  }).filter(filterConfig => filterConfig != null);
1226
1078
  }
1227
1079
 
1080
+ /**
1081
+ * @param columnType The column type that the filters will be applied to.
1082
+ * @param filterList The list of filters to be combined.
1083
+ * @returns The combination of the filters in filterList as text.
1084
+ */
1085
+ static combineFiltersFromList(columnType, filterList) {
1086
+ filterList.sort((a, b) => {
1087
+ // move all 'equals' comparisons to end of list
1088
+ if (a.operator === 'eq' && b.operator !== 'eq') {
1089
+ return 1;
1090
+ }
1091
+ if (a.operator !== 'eq' && b.operator === 'eq') {
1092
+ return -1;
1093
+ }
1094
+ return a.startColumnIndex - b.startColumnIndex;
1095
+ });
1096
+ var combinedText = '';
1097
+ for (var i = 0; i < filterList.length; i += 1) {
1098
+ var {
1099
+ text,
1100
+ value,
1101
+ operator
1102
+ } = filterList[i];
1103
+ if (value !== undefined) {
1104
+ var symbol = '';
1105
+ if (operator !== undefined) {
1106
+ if (value == null && operator === 'eq') {
1107
+ symbol = '=';
1108
+ } else if (operator !== 'eq') {
1109
+ if (operator === 'startsWith' || operator === 'endsWith') {
1110
+ symbol = '*';
1111
+ } else {
1112
+ symbol = TableUtils.getFilterOperatorString(operator);
1113
+ }
1114
+ }
1115
+ }
1116
+ var filterText = "".concat(symbol).concat(text);
1117
+ if (operator === 'startsWith') {
1118
+ filterText = "".concat(text).concat(symbol);
1119
+ }
1120
+ if (columnType != null && value !== null && TableUtils.isCharType(columnType)) {
1121
+ filterText = "".concat(symbol).concat(String.fromCharCode(parseInt(text, 10)));
1122
+ }
1123
+ if (i !== 0) {
1124
+ combinedText += operator === 'eq' ? ' || ' : ' && ';
1125
+ }
1126
+ combinedText += filterText;
1127
+ }
1128
+ }
1129
+ return combinedText;
1130
+ }
1228
1131
  }
1229
-
1230
1132
  export default IrisGridUtils;
1231
1133
  //# sourceMappingURL=IrisGridUtils.js.map