@deephaven/iris-grid 1.4.1-beta.0 → 1.4.1-react19.43

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 (238) hide show
  1. package/dist/AdvancedFilterCreator.js +5 -7
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +6 -7
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +1 -2
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +2 -3
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js.map +1 -1
  10. package/dist/ColumnStatistics.d.ts +2 -2
  11. package/dist/ColumnStatistics.d.ts.map +1 -1
  12. package/dist/ColumnStatistics.js +2 -5
  13. package/dist/ColumnStatistics.js.map +1 -1
  14. package/dist/CommonTypes.js.map +1 -1
  15. package/dist/CrossColumnSearch.js +2 -4
  16. package/dist/CrossColumnSearch.js.map +1 -1
  17. package/dist/EmptyIrisGridModel.d.ts +3 -0
  18. package/dist/EmptyIrisGridModel.d.ts.map +1 -1
  19. package/dist/EmptyIrisGridModel.js +8 -0
  20. package/dist/EmptyIrisGridModel.js.map +1 -1
  21. package/dist/FilterInputField.js +4 -5
  22. package/dist/FilterInputField.js.map +1 -1
  23. package/dist/GotoRow.js +4 -6
  24. package/dist/GotoRow.js.map +1 -1
  25. package/dist/IrisGrid.d.ts +38 -43
  26. package/dist/IrisGrid.d.ts.map +1 -1
  27. package/dist/IrisGrid.js +181 -168
  28. package/dist/IrisGrid.js.map +1 -1
  29. package/dist/IrisGridBottomBar.d.ts.map +1 -1
  30. package/dist/IrisGridBottomBar.js +4 -1
  31. package/dist/IrisGridBottomBar.js.map +1 -1
  32. package/dist/IrisGridCacheUtils.d.ts.map +1 -1
  33. package/dist/IrisGridCacheUtils.js +1 -1
  34. package/dist/IrisGridCacheUtils.js.map +1 -1
  35. package/dist/IrisGridCellOverflowModal.js +1 -2
  36. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  37. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  38. package/dist/IrisGridCopyHandler.js +4 -6
  39. package/dist/IrisGridCopyHandler.js.map +1 -1
  40. package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
  41. package/dist/IrisGridIcons.js.map +1 -1
  42. package/dist/IrisGridMetricCalculator.d.ts +1 -2
  43. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  44. package/dist/IrisGridMetricCalculator.js.map +1 -1
  45. package/dist/IrisGridModel.d.ts +8 -0
  46. package/dist/IrisGridModel.d.ts.map +1 -1
  47. package/dist/IrisGridModel.js +8 -0
  48. package/dist/IrisGridModel.js.map +1 -1
  49. package/dist/IrisGridModelFactory.js.map +1 -1
  50. package/dist/IrisGridModelUpdater.d.ts +2 -1
  51. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  52. package/dist/IrisGridModelUpdater.js +4 -0
  53. package/dist/IrisGridModelUpdater.js.map +1 -1
  54. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  55. package/dist/IrisGridPartitionSelector.js +6 -8
  56. package/dist/IrisGridPartitionSelector.js.map +1 -1
  57. package/dist/IrisGridPartitionedTableModel.js.map +1 -1
  58. package/dist/IrisGridProxyModel.d.ts +2 -0
  59. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  60. package/dist/IrisGridProxyModel.js +12 -7
  61. package/dist/IrisGridProxyModel.js.map +1 -1
  62. package/dist/IrisGridRenderer.js +0 -1
  63. package/dist/IrisGridRenderer.js.map +1 -1
  64. package/dist/IrisGridShortcuts.js.map +1 -1
  65. package/dist/IrisGridTableModel.js +1 -2
  66. package/dist/IrisGridTableModel.js.map +1 -1
  67. package/dist/IrisGridTableModelTemplate.d.ts +6 -2
  68. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  69. package/dist/IrisGridTableModelTemplate.js +71 -61
  70. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  71. package/dist/IrisGridTestUtils.js.map +1 -1
  72. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  73. package/dist/IrisGridTheme.js.map +1 -1
  74. package/dist/IrisGridThemeProvider.d.ts.map +1 -1
  75. package/dist/IrisGridThemeProvider.js +1 -0
  76. package/dist/IrisGridThemeProvider.js.map +1 -1
  77. package/dist/IrisGridTreeTableModel.d.ts +1 -1
  78. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  79. package/dist/IrisGridTreeTableModel.js +19 -14
  80. package/dist/IrisGridTreeTableModel.js.map +1 -1
  81. package/dist/IrisGridUtils.d.ts +3 -1
  82. package/dist/IrisGridUtils.d.ts.map +1 -1
  83. package/dist/IrisGridUtils.js +60 -56
  84. package/dist/IrisGridUtils.js.map +1 -1
  85. package/dist/LazyIrisGrid.d.ts +55 -77
  86. package/dist/LazyIrisGrid.d.ts.map +1 -1
  87. package/dist/LazyIrisGrid.js +3 -1
  88. package/dist/LazyIrisGrid.js.map +1 -1
  89. package/dist/MissingKeyError.js.map +1 -1
  90. package/dist/MissingPartitionError.js.map +1 -1
  91. package/dist/NoPastePermissionModal.js +1 -2
  92. package/dist/NoPastePermissionModal.js.map +1 -1
  93. package/dist/PartitionedGridModel.js.map +1 -1
  94. package/dist/PendingDataBottomBar.js +1 -2
  95. package/dist/PendingDataBottomBar.js.map +1 -1
  96. package/dist/ToastBottomBar.js.map +1 -1
  97. package/dist/declaration.d.js.map +1 -1
  98. package/dist/format-context-menus/CustomFormatAction.js +1 -2
  99. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  100. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  101. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  102. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  103. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  104. package/dist/format-context-menus/TextAlignmentFormatContextMenu.d.ts +21 -0
  105. package/dist/format-context-menus/TextAlignmentFormatContextMenu.d.ts.map +1 -0
  106. package/dist/format-context-menus/TextAlignmentFormatContextMenu.js +42 -0
  107. package/dist/format-context-menus/TextAlignmentFormatContextMenu.js.map +1 -0
  108. package/dist/format-context-menus/index.d.ts +1 -0
  109. package/dist/format-context-menus/index.d.ts.map +1 -1
  110. package/dist/format-context-menus/index.js +1 -0
  111. package/dist/format-context-menus/index.js.map +1 -1
  112. package/dist/index.js.map +1 -1
  113. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  114. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  115. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  116. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  117. package/dist/key-handlers/index.js.map +1 -1
  118. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  119. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  120. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
  121. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +5 -2
  122. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  123. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +1 -0
  124. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  125. package/dist/mousehandlers/IrisGridContextMenuHandler.js +27 -3
  126. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  127. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
  128. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  129. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  130. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  131. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  132. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  133. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +1 -3
  134. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  135. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  136. package/dist/mousehandlers/index.js.map +1 -1
  137. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  138. package/dist/sidebar/AdvancedSettingsMenu.d.ts +1 -1
  139. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  140. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  141. package/dist/sidebar/AdvancedSettingsType.js +3 -3
  142. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  143. package/dist/sidebar/ChartBuilder.d.ts +2 -2
  144. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  145. package/dist/sidebar/ChartBuilder.js +1 -2
  146. package/dist/sidebar/ChartBuilder.js.map +1 -1
  147. package/dist/sidebar/CustomColumnBuilder.d.ts +1 -1
  148. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  149. package/dist/sidebar/CustomColumnBuilder.js +4 -6
  150. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  151. package/dist/sidebar/CustomColumnInput.js +2 -3
  152. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  153. package/dist/sidebar/DownloadServiceWorkerUtils.js +1 -1
  154. package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
  155. package/dist/sidebar/InputEditor.js +8 -9
  156. package/dist/sidebar/InputEditor.js.map +1 -1
  157. package/dist/sidebar/OptionType.js +3 -3
  158. package/dist/sidebar/OptionType.js.map +1 -1
  159. package/dist/sidebar/RollupRows.d.ts +1 -1
  160. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  161. package/dist/sidebar/RollupRows.js +9 -11
  162. package/dist/sidebar/RollupRows.js.map +1 -1
  163. package/dist/sidebar/SelectDistinctBuilder.js +1 -2
  164. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  165. package/dist/sidebar/TableCsvExporter.js +5 -7
  166. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  167. package/dist/sidebar/TableSaver.js +9 -10
  168. package/dist/sidebar/TableSaver.js.map +1 -1
  169. package/dist/sidebar/aggregations/AggregationEdit.js +4 -5
  170. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  171. package/dist/sidebar/aggregations/AggregationOperation.js +3 -3
  172. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  173. package/dist/sidebar/aggregations/AggregationUtils.js +0 -1
  174. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  175. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  176. package/dist/sidebar/aggregations/Aggregations.js +3 -5
  177. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  178. package/dist/sidebar/aggregations/index.js.map +1 -1
  179. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  180. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +1 -3
  181. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  182. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  183. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -3
  184. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  185. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +1 -2
  186. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  187. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  188. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +2 -3
  189. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  190. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +21 -21
  191. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  192. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  193. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +1 -3
  194. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  195. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  196. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -3
  197. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  198. package/dist/sidebar/icons/BarIcon.js +1 -2
  199. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  200. package/dist/sidebar/icons/FormatColumnWhereIcon.js +1 -2
  201. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  202. package/dist/sidebar/icons/FormatRowWhereIcon.js +1 -2
  203. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  204. package/dist/sidebar/icons/HistogramIcon.js +1 -2
  205. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  206. package/dist/sidebar/icons/LineIcon.js +1 -2
  207. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  208. package/dist/sidebar/icons/PieIcon.js +1 -2
  209. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  210. package/dist/sidebar/icons/ScatterIcon.js +1 -2
  211. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  212. package/dist/sidebar/icons/index.js.map +1 -1
  213. package/dist/sidebar/index.js.map +1 -1
  214. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +2 -2
  215. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  216. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +34 -36
  217. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  218. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +3 -3
  219. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  220. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +3 -5
  221. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  222. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -1
  223. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +2 -4
  224. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  225. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  226. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +4 -4
  227. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  228. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +3 -6
  229. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
  230. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  231. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +1 -2
  232. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  233. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  234. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
  235. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -2
  236. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  237. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  238. package/package.json +17 -18
package/dist/IrisGrid.js CHANGED
@@ -9,7 +9,6 @@ import React, { Component } from 'react';
9
9
  import memoize from 'memoizee';
10
10
  import classNames from 'classnames';
11
11
  import { CSSTransition } from 'react-transition-group';
12
- import PropTypes from 'prop-types';
13
12
  import deepEqual from 'fast-deep-equal';
14
13
  import Log from '@deephaven/log';
15
14
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
@@ -54,9 +53,7 @@ import AggregationOperation from "./sidebar/aggregations/AggregationOperation.js
54
53
  import { IrisGridThemeContext } from "./IrisGridThemeProvider.js";
55
54
  import { isMissingPartitionError } from "./MissingPartitionError.js";
56
55
  import { NoPastePermissionModal } from "./NoPastePermissionModal.js";
57
- import { jsx as _jsx } from "react/jsx-runtime";
58
- import { Fragment as _Fragment } from "react/jsx-runtime";
59
- import { jsxs as _jsxs } from "react/jsx-runtime";
56
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
60
57
  var log = Log.module('IrisGrid');
61
58
  var VIEWPORT_LOADING_DELAY = 500;
62
59
  var UPDATE_DOWNLOAD_THROTTLE = 500;
@@ -83,10 +80,8 @@ function isEmptyConfig(_ref) {
83
80
  return advancedFilters.size === 0 && aggregationSettings.aggregations.length === 0 && customColumns.length === 0 && quickFilters.size === 0 && !reverse && rollupConfig == null && searchFilter == null && selectDistinctColumns.length === 0 && sorts.length === 0;
84
81
  }
85
82
  class IrisGrid extends Component {
86
- // eslint-disable-next-line react/static-property-placement, react/sort-comp
87
-
88
83
  constructor(props) {
89
- var _model$layoutHints, _model$layoutHints$hi, _model$columns$0$name, _model$columns$;
84
+ var _model$layoutHints, _model$columns$0$name, _model$columns$;
90
85
  super(props);
91
86
  _defineProperty(this, "grid", void 0);
92
87
  _defineProperty(this, "lastFocusedFilterBarColumn", void 0);
@@ -101,6 +96,7 @@ class IrisGrid extends Component {
101
96
  _defineProperty(this, "showEmptyStrings", void 0);
102
97
  _defineProperty(this, "showNullStrings", void 0);
103
98
  _defineProperty(this, "showExtraGroupColumn", void 0);
99
+ // When the loading scrim started/when it should extend to the end of the screen.
104
100
  _defineProperty(this, "loadingScrimStartTime", void 0);
105
101
  _defineProperty(this, "loadingScrimFinishTime", void 0);
106
102
  _defineProperty(this, "animationFrame", void 0);
@@ -120,6 +116,8 @@ class IrisGrid extends Component {
120
116
  _defineProperty(this, "tableUtils", void 0);
121
117
  _defineProperty(this, "keyHandlers", void 0);
122
118
  _defineProperty(this, "mouseHandlers", void 0);
119
+ _defineProperty(this, "slideTransitionRef", /*#__PURE__*/React.createRef());
120
+ _defineProperty(this, "bottomTransitionRef", /*#__PURE__*/React.createRef());
123
121
  _defineProperty(this, "getAdvancedMenuOpenedHandler", memoize(column => this.handleAdvancedMenuOpened.bind(this, column), {
124
122
  max: 100
125
123
  }));
@@ -272,6 +270,14 @@ class IrisGrid extends Component {
272
270
  _defineProperty(this, "getCachedFormatColumns", memoize((dh, columns, rules) => getFormatColumns(dh, columns, rules), {
273
271
  max: 1000
274
272
  }));
273
+ /**
274
+ * Builds formatColumns array based on the provided formatting rules with optional preview
275
+ * @param columns Array of columns
276
+ * @param rulesParam Array of formatting rules
277
+ * @param preview Optional temporary formatting rule for previewing live changes
278
+ * @param editIndex Index in the rulesParam array to replace with the preview, null if preview not applicable
279
+ * @returns Format columns array
280
+ */
275
281
  _defineProperty(this, "getCachedPreviewFormatColumns", memoize((dh, columns, rulesParam, preview, editIndex) => {
276
282
  log.debug('getCachedPreviewFormatColumns', rulesParam, preview, editIndex);
277
283
  if (preview !== undefined && editIndex !== undefined) {
@@ -288,7 +294,7 @@ class IrisGrid extends Component {
288
294
  }));
289
295
  _defineProperty(this, "getModelTotalsConfig", memoize((columns, config, aggregationSettings) => {
290
296
  var _config$columns$lengt, _config$columns;
291
- 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) {
297
+ if (((_config$columns$lengt = config === null || config === 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) {
292
298
  // If we've got rollups, then aggregations are applied as part of that...
293
299
  return null;
294
300
  }
@@ -410,6 +416,7 @@ class IrisGrid extends Component {
410
416
  leading: false,
411
417
  trailing: true
412
418
  }));
419
+ // Apply live changes
413
420
  _defineProperty(this, "handleConditionalFormatEditorUpdate", debounce(conditionalFormatPreview => {
414
421
  this.setState({
415
422
  conditionalFormatPreview
@@ -563,6 +570,7 @@ class IrisGrid extends Component {
563
570
  this.handleTooltipRef = this.handleTooltipRef.bind(this);
564
571
  this.handleViewChanged = this.handleViewChanged.bind(this);
565
572
  this.handleFormatSelection = this.handleFormatSelection.bind(this);
573
+ this.handleColumnAlignmentChange = this.handleColumnAlignmentChange.bind(this);
566
574
  this.handleConditionalFormatCreate = this.handleConditionalFormatCreate.bind(this);
567
575
  this.handleConditionalFormatEdit = this.handleConditionalFormatEdit.bind(this);
568
576
  this.handleConditionalFormatsChange = this.handleConditionalFormatsChange.bind(this);
@@ -655,6 +663,7 @@ class IrisGrid extends Component {
655
663
  aggregationSettings: _aggregationSettings,
656
664
  conditionalFormats,
657
665
  customColumnFormatMap,
666
+ columnAlignmentMap,
658
667
  isFilterBarShown: _isFilterBarShown,
659
668
  isSelectingPartition,
660
669
  partitions,
@@ -692,7 +701,7 @@ class IrisGrid extends Component {
692
701
  userColumnWidths: new Map(_userColumnWidths),
693
702
  userRowHeights: new Map(userRowHeights),
694
703
  movedColumns: _movedColumns,
695
- initialColumnWidths: new Map(_model === null || _model === void 0 ? void 0 : (_model$layoutHints = _model.layoutHints) === null || _model$layoutHints === void 0 ? void 0 : (_model$layoutHints$hi = _model$layoutHints.hiddenColumns) === null || _model$layoutHints$hi === void 0 ? void 0 : _model$layoutHints$hi.map(name => [_model.getColumnIndexByName(name), 0]))
704
+ initialColumnWidths: new Map(_model === null || _model === void 0 || (_model$layoutHints = _model.layoutHints) === null || _model$layoutHints === void 0 || (_model$layoutHints = _model$layoutHints.hiddenColumns) === null || _model$layoutHints === void 0 ? void 0 : _model$layoutHints.map(name => [_model.getColumnIndexByName(name), 0]))
696
705
  });
697
706
  var searchColumns = _selectedSearchColumns !== null && _selectedSearchColumns !== void 0 ? _selectedSearchColumns : [];
698
707
  var _searchFilter = CrossColumnSearch.createSearchFilter(_dh, _searchValue, searchColumns, _model.columns, _invertSearchColumns);
@@ -735,6 +744,7 @@ class IrisGrid extends Component {
735
744
  formatter: new Formatter(_dh),
736
745
  isMenuShown: false,
737
746
  customColumnFormatMap: new Map(customColumnFormatMap),
747
+ columnAlignmentMap: new Map(columnAlignmentMap),
738
748
  conditionalFormats,
739
749
  conditionalFormatEditIndex: null,
740
750
  conditionalFormatPreview: undefined,
@@ -888,23 +898,10 @@ class IrisGrid extends Component {
888
898
  }
889
899
  this.showViewportLoading.cancel();
890
900
  }
891
-
892
- // When the loading scrim started/when it should extend to the end of the screen.
893
-
894
901
  get gridWrapper() {
895
902
  var _this$grid$canvasWrap, _this$grid;
896
903
  return (_this$grid$canvasWrap = (_this$grid = this.grid) === null || _this$grid === void 0 ? void 0 : _this$grid.canvasWrapper.current) !== null && _this$grid$canvasWrap !== void 0 ? _this$grid$canvasWrap : null;
897
904
  }
898
-
899
- /**
900
- * Builds formatColumns array based on the provided formatting rules with optional preview
901
- * @param columns Array of columns
902
- * @param rulesParam Array of formatting rules
903
- * @param preview Optional temporary formatting rule for previewing live changes
904
- * @param editIndex Index in the rulesParam array to replace with the preview, null if preview not applicable
905
- * @returns Format columns array
906
- */
907
-
908
905
  getKeyHandlers() {
909
906
  var {
910
907
  keyHandlers
@@ -934,15 +931,15 @@ class IrisGrid extends Component {
934
931
  var modelColumn = this.getModelColumn(columnIndex);
935
932
  var modelRow = this.getModelRow(rowIndex);
936
933
  if (rawValue && modelColumn != null && modelRow != null) {
937
- var _value = model.valueForCell(modelColumn, modelRow);
934
+ var value = model.valueForCell(modelColumn, modelRow);
938
935
  if (TableUtils.isDateType(model.columns[modelColumn].type)) {
939
936
  // The returned value is just a long value, we should return the value formatted as a full date string
940
937
  var {
941
938
  formatter
942
939
  } = model;
943
- return dh.i18n.DateTimeFormat.format(UNFORMATTED_DATE_PATTERN, _value, dh.i18n.TimeZone.getTimeZone(formatter.timeZone));
940
+ return dh.i18n.DateTimeFormat.format(UNFORMATTED_DATE_PATTERN, value, dh.i18n.TimeZone.getTimeZone(formatter.timeZone));
944
941
  }
945
- return _value;
942
+ return value;
946
943
  }
947
944
  if (rawValue) {
948
945
  return null;
@@ -1185,11 +1182,11 @@ class IrisGrid extends Component {
1185
1182
  resetRanges: true
1186
1183
  });
1187
1184
  var clearRange = Array.isArray(modelRange) ? modelRange : [modelRange, modelRange];
1188
- this.setState(_ref10 => {
1185
+ this.setState(_ref0 => {
1189
1186
  var {
1190
1187
  advancedFilters,
1191
1188
  quickFilters
1192
- } = _ref10;
1189
+ } = _ref0;
1193
1190
  var newAdvancedFilters = advancedFilters ? new Map(advancedFilters) : new Map();
1194
1191
  var newQuickFilters = quickFilters ? new Map(quickFilters) : new Map();
1195
1192
  newAdvancedFilters.forEach((_, column) => {
@@ -1212,10 +1209,10 @@ class IrisGrid extends Component {
1212
1209
  this.startLoading('Clearing Filter...', {
1213
1210
  resetRanges: true
1214
1211
  });
1215
- this.setState(_ref11 => {
1212
+ this.setState(_ref1 => {
1216
1213
  var {
1217
1214
  quickFilters
1218
- } = _ref11;
1215
+ } = _ref1;
1219
1216
  var newQuickFilters = new Map(quickFilters);
1220
1217
  newQuickFilters.delete(modelColumn);
1221
1218
  return {
@@ -1312,11 +1309,11 @@ class IrisGrid extends Component {
1312
1309
  advancedFilters: newAdvancedFilters
1313
1310
  });
1314
1311
  }
1315
- setFilters(_ref12) {
1312
+ setFilters(_ref10) {
1316
1313
  var {
1317
1314
  quickFilters,
1318
1315
  advancedFilters
1319
- } = _ref12;
1316
+ } = _ref10;
1320
1317
  this.setState({
1321
1318
  quickFilters,
1322
1319
  advancedFilters
@@ -1473,14 +1470,14 @@ class IrisGrid extends Component {
1473
1470
  keyTable.addEventListener(dh.Table.EVENT_UPDATED, event => {
1474
1471
  try {
1475
1472
  var {
1476
- detail: _data
1473
+ detail: data
1477
1474
  } = event;
1478
- if (_data.rows.length === 0) {
1475
+ if (data.rows.length === 0) {
1479
1476
  // We received an update and the table is still empty. Stop showing the loading spinner so we know
1480
1477
  _this2.stopLoading();
1481
1478
  return;
1482
1479
  }
1483
- var row = _data.rows[0];
1480
+ var row = data.rows[0];
1484
1481
  var values = keyTable.columns.map(column => row.get(column));
1485
1482
  var newPartition = {
1486
1483
  partitions: values,
@@ -1511,13 +1508,13 @@ class IrisGrid extends Component {
1511
1508
  } = this.props;
1512
1509
  assertNotNull(rowIndex);
1513
1510
  if (isPartitionedGridModel(model)) {
1514
- var _data2 = this.getRowDataMap(rowIndex);
1511
+ var data = this.getRowDataMap(rowIndex);
1515
1512
  var partitionColumnSet = new Set(model.partitionColumns.map(column => column.name));
1516
- var values = Object.entries(_data2).filter(_ref13 => {
1517
- var [key, _] = _ref13;
1513
+ var values = Object.entries(data).filter(_ref11 => {
1514
+ var [key, _] = _ref11;
1518
1515
  return partitionColumnSet.has(key);
1519
- }).map(_ref14 => {
1520
- var [key, columnData] = _ref14;
1516
+ }).map(_ref12 => {
1517
+ var [key, columnData] = _ref12;
1521
1518
  return columnData.value;
1522
1519
  });
1523
1520
  var newPartition = {
@@ -1536,8 +1533,8 @@ class IrisGrid extends Component {
1536
1533
  canCopy
1537
1534
  } = this.props;
1538
1535
  if (canCopy) {
1539
- var _value2 = String(this.getValueForCell(columnIndex, rowIndex, rawValue));
1540
- copyToClipboard(_value2).catch(e => log.error('Unable to copy cell', e));
1536
+ var value = String(this.getValueForCell(columnIndex, rowIndex, rawValue));
1537
+ copyToClipboard(value).catch(e => log.error('Unable to copy cell', e));
1541
1538
  } else {
1542
1539
  log.error('Attempted to copyCell for user without copy permission.');
1543
1540
  }
@@ -1728,7 +1725,7 @@ class IrisGrid extends Component {
1728
1725
  }
1729
1726
  focus() {
1730
1727
  var _this$grid2;
1731
- (_this$grid2 = this.grid) === null || _this$grid2 === void 0 ? void 0 : _this$grid2.focus();
1728
+ (_this$grid2 = this.grid) === null || _this$grid2 === void 0 || _this$grid2.focus();
1732
1729
  }
1733
1730
  focusFilterBar(column) {
1734
1731
  var {
@@ -1759,7 +1756,7 @@ class IrisGrid extends Component {
1759
1756
  } = metrics;
1760
1757
  if (column < left) {
1761
1758
  var _this$grid3;
1762
- (_this$grid3 = this.grid) === null || _this$grid3 === void 0 ? void 0 : _this$grid3.setViewState({
1759
+ (_this$grid3 = this.grid) === null || _this$grid3 === void 0 || _this$grid3.setViewState({
1763
1760
  left: column
1764
1761
  }, true);
1765
1762
  } else if (rightVisible < column) {
@@ -1767,7 +1764,7 @@ class IrisGrid extends Component {
1767
1764
  var metricState = (_this$grid4 = this.grid) === null || _this$grid4 === void 0 ? void 0 : _this$grid4.getMetricState();
1768
1765
  assertNotNull(metricState);
1769
1766
  var newLeft = metricCalculator.getLastLeft(metricState, column, metricCalculator.getVisibleWidth(metricState));
1770
- (_this$grid5 = this.grid) === null || _this$grid5 === void 0 ? void 0 : _this$grid5.setViewState({
1767
+ (_this$grid5 = this.grid) === null || _this$grid5 === void 0 || _this$grid5.setViewState({
1771
1768
  left: Math.min(newLeft, lastLeft),
1772
1769
  leftOffset: 0
1773
1770
  }, true);
@@ -1785,7 +1782,7 @@ class IrisGrid extends Component {
1785
1782
  movedColumns
1786
1783
  } = this.state;
1787
1784
  metricCalculator.setColumnWidth(GridUtils.getModelIndex(columnVisibleIndex, movedColumns), 0);
1788
- (_this$grid6 = this.grid) === null || _this$grid6 === void 0 ? void 0 : _this$grid6.forceUpdate();
1785
+ (_this$grid6 = this.grid) === null || _this$grid6 === void 0 || _this$grid6.forceUpdate();
1789
1786
  }
1790
1787
  freezeColumnByColumnName(columnName) {
1791
1788
  var {
@@ -1851,7 +1848,7 @@ class IrisGrid extends Component {
1851
1848
  metricCalculator.setColumnWidth(modelIndex, 0);
1852
1849
  });
1853
1850
  }
1854
- (_this$grid7 = this.grid) === null || _this$grid7 === void 0 ? void 0 : _this$grid7.forceUpdate();
1851
+ (_this$grid7 = this.grid) === null || _this$grid7 === void 0 || _this$grid7.forceUpdate();
1855
1852
  }
1856
1853
  handleColumnVisibilityReset() {
1857
1854
  var _model$layoutHints$fr, _model$layoutHints2;
@@ -1869,7 +1866,7 @@ class IrisGrid extends Component {
1869
1866
  this.handleMovedColumnsChanged(model.initialMovedColumns);
1870
1867
  this.handleHeaderGroupsChanged(model.initialColumnHeaderGroups);
1871
1868
  this.setState({
1872
- frozenColumns: (_model$layoutHints$fr = (_model$layoutHints2 = model.layoutHints) === null || _model$layoutHints2 === void 0 ? void 0 : _model$layoutHints2.frozenColumns) !== null && _model$layoutHints$fr !== void 0 ? _model$layoutHints$fr : []
1869
+ frozenColumns: (_model$layoutHints$fr = (_model$layoutHints2 = model.layoutHints) === null || _model$layoutHints2 === void 0 ? void 0 : _model$layoutHints2.frozenColumns) !== null && _model$layoutHints$fr !== void 0 ? _model$layoutHints$fr : EMPTY_ARRAY
1873
1870
  });
1874
1871
  }
1875
1872
  handleCrossColumnSearch(searchValue, selectedSearchColumns, invertSearchColumns) {
@@ -1886,7 +1883,7 @@ class IrisGrid extends Component {
1886
1883
  }
1887
1884
  handleAnimationLoop() {
1888
1885
  var _this$grid8;
1889
- (_this$grid8 = this.grid) === null || _this$grid8 === void 0 ? void 0 : _this$grid8.updateCanvas();
1886
+ (_this$grid8 = this.grid) === null || _this$grid8 === void 0 || _this$grid8.updateCanvas();
1890
1887
  if (this.isAnimating) {
1891
1888
  this.animationFrame = requestAnimationFrame(this.handleAnimationLoop);
1892
1889
  }
@@ -1952,7 +1949,7 @@ class IrisGrid extends Component {
1952
1949
  metricCalculator.resetColumnWidth(modelIndex);
1953
1950
  }
1954
1951
  }
1955
- (_this$grid9 = this.grid) === null || _this$grid9 === void 0 ? void 0 : _this$grid9.forceUpdate();
1952
+ (_this$grid9 = this.grid) === null || _this$grid9 === void 0 || _this$grid9.forceUpdate();
1956
1953
  }
1957
1954
  toggleSort(columnIndex, addToExisting) {
1958
1955
  log.info('Toggling sort for column', columnIndex);
@@ -1972,15 +1969,15 @@ class IrisGrid extends Component {
1972
1969
  }
1973
1970
  }
1974
1971
  updateSorts(sorts) {
1975
- var _this$grid10;
1972
+ var _this$grid0;
1976
1973
  this.startLoading('Sorting...');
1977
1974
  this.setState({
1978
1975
  sorts
1979
1976
  });
1980
- (_this$grid10 = this.grid) === null || _this$grid10 === void 0 ? void 0 : _this$grid10.forceUpdate();
1977
+ (_this$grid0 = this.grid) === null || _this$grid0 === void 0 || _this$grid0.forceUpdate();
1981
1978
  }
1982
1979
  sortColumn(modelColumn) {
1983
- var _this$grid11;
1980
+ var _this$grid1;
1984
1981
  var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TableUtils.sortDirection.none;
1985
1982
  var isAbs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1986
1983
  var addToExisting = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
@@ -1993,15 +1990,15 @@ class IrisGrid extends Component {
1993
1990
  this.setState({
1994
1991
  sorts
1995
1992
  });
1996
- (_this$grid11 = this.grid) === null || _this$grid11 === void 0 ? void 0 : _this$grid11.forceUpdate();
1993
+ (_this$grid1 = this.grid) === null || _this$grid1 === void 0 || _this$grid1.forceUpdate();
1997
1994
  }
1998
1995
  reverse(reverse) {
1999
- var _this$grid12;
1996
+ var _this$grid10;
2000
1997
  this.startLoading('Reversing...');
2001
1998
  this.setState({
2002
1999
  reverse
2003
2000
  });
2004
- (_this$grid12 = this.grid) === null || _this$grid12 === void 0 ? void 0 : _this$grid12.forceUpdate();
2001
+ (_this$grid10 = this.grid) === null || _this$grid10 === void 0 || _this$grid10.forceUpdate();
2005
2002
  }
2006
2003
  isReversible() {
2007
2004
  var {
@@ -2024,16 +2021,16 @@ class IrisGrid extends Component {
2024
2021
  } else {
2025
2022
  var columnIndex = 0;
2026
2023
  var {
2027
- model: _model2
2024
+ model
2028
2025
  } = this.props;
2029
2026
  var {
2030
2027
  columnCount
2031
- } = _model2;
2028
+ } = model;
2032
2029
  for (var i = 0; i < columnCount; i += 1) {
2033
2030
  var modelColumn = this.getModelColumn(i);
2034
2031
  if (modelColumn != null) {
2035
- var _column = _model2.columns[modelColumn];
2036
- if (_column != null && TableUtils.isTextType(_column.type)) {
2032
+ var column = model.columns[modelColumn];
2033
+ if (column != null && TableUtils.isTextType(column.type)) {
2037
2034
  columnIndex = i;
2038
2035
  break;
2039
2036
  }
@@ -2042,8 +2039,8 @@ class IrisGrid extends Component {
2042
2039
  this.focusFilterBar(columnIndex);
2043
2040
  }
2044
2041
  } else {
2045
- var _this$grid13;
2046
- (_this$grid13 = this.grid) === null || _this$grid13 === void 0 ? void 0 : _this$grid13.focus();
2042
+ var _this$grid11;
2043
+ (_this$grid11 = this.grid) === null || _this$grid11 === void 0 || _this$grid11.focus();
2047
2044
  }
2048
2045
  }
2049
2046
  isTableSearchAvailable() {
@@ -2055,7 +2052,7 @@ class IrisGrid extends Component {
2055
2052
  var {
2056
2053
  dh
2057
2054
  } = model;
2058
- var searchDisplayMode = model === null || model === void 0 ? void 0 : (_model$layoutHints3 = model.layoutHints) === null || _model$layoutHints3 === void 0 ? void 0 : _model$layoutHints3.searchDisplayMode;
2055
+ var searchDisplayMode = model === null || model === void 0 || (_model$layoutHints3 = model.layoutHints) === null || _model$layoutHints3 === void 0 ? void 0 : _model$layoutHints3.searchDisplayMode;
2059
2056
  if (searchDisplayMode === ((_dh$SearchDisplayMode = dh.SearchDisplayMode) === null || _dh$SearchDisplayMode === void 0 ? void 0 : _dh$SearchDisplayMode.SEARCH_DISPLAY_HIDE)) {
2060
2057
  return false;
2061
2058
  }
@@ -2078,15 +2075,15 @@ class IrisGrid extends Component {
2078
2075
  var _this$crossColumnRef;
2079
2076
  if (update && (_this$crossColumnRef = this.crossColumnRef) !== null && _this$crossColumnRef !== void 0 && _this$crossColumnRef.current) {
2080
2077
  var _this$crossColumnRef2;
2081
- (_this$crossColumnRef2 = this.crossColumnRef) === null || _this$crossColumnRef2 === void 0 ? void 0 : _this$crossColumnRef2.current.focus();
2078
+ (_this$crossColumnRef2 = this.crossColumnRef) === null || _this$crossColumnRef2 === void 0 || _this$crossColumnRef2.current.focus();
2082
2079
  } else {
2083
- var _this$grid14;
2084
- (_this$grid14 = this.grid) === null || _this$grid14 === void 0 ? void 0 : _this$grid14.focus();
2080
+ var _this$grid12;
2081
+ (_this$grid12 = this.grid) === null || _this$grid12 === void 0 || _this$grid12.focus();
2085
2082
  }
2086
2083
  });
2087
2084
  }
2088
2085
  toggleGotoRow() {
2089
- var _this$grid15, _this$grid16;
2086
+ var _this$grid13, _this$grid14;
2090
2087
  var row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
2091
2088
  var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2092
2089
  var columnName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
@@ -2105,11 +2102,11 @@ class IrisGrid extends Component {
2105
2102
  gotoValueManuallyChanged: false
2106
2103
  });
2107
2104
  this.focusRowInGrid(row);
2108
- (_this$gotoRowRef$curr = this.gotoRowRef.current) === null || _this$gotoRowRef$curr === void 0 ? void 0 : _this$gotoRowRef$curr.focus();
2105
+ (_this$gotoRowRef$curr = this.gotoRowRef.current) === null || _this$gotoRowRef$curr === void 0 || _this$gotoRowRef$curr.focus();
2109
2106
  return;
2110
2107
  }
2111
- var cursorRow = (_this$grid15 = this.grid) === null || _this$grid15 === void 0 ? void 0 : _this$grid15.state.cursorRow;
2112
- var cursorColumn = (_this$grid16 = this.grid) === null || _this$grid16 === void 0 ? void 0 : _this$grid16.state.cursorColumn;
2108
+ var cursorRow = (_this$grid13 = this.grid) === null || _this$grid13 === void 0 ? void 0 : _this$grid13.state.cursorRow;
2109
+ var cursorColumn = (_this$grid14 = this.grid) === null || _this$grid14 === void 0 ? void 0 : _this$grid14.state.cursorColumn;
2113
2110
  if (cursorRow == null || cursorColumn == null) {
2114
2111
  // if a cell is not selected / grid is not rendered
2115
2112
  this.setState({
@@ -2145,7 +2142,7 @@ class IrisGrid extends Component {
2145
2142
  commitPending() {
2146
2143
  var _this3 = this;
2147
2144
  return _asyncToGenerator(function* () {
2148
- var _document, _document$activeEleme;
2145
+ var _document;
2149
2146
  var {
2150
2147
  model
2151
2148
  } = _this3.props;
@@ -2158,7 +2155,7 @@ class IrisGrid extends Component {
2158
2155
  if (pendingSavePromise != null) {
2159
2156
  throw new Error('Save already in progress');
2160
2157
  }
2161
- var containsGridCellInputField = (_document = document) === null || _document === void 0 ? void 0 : (_document$activeEleme = _document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.classList.contains('grid-cell-input-field');
2158
+ var containsGridCellInputField = (_document = document) === null || _document === void 0 || (_document = _document.activeElement) === null || _document === void 0 ? void 0 : _document.classList.contains('grid-cell-input-field');
2162
2159
  if (containsGridCellInputField != null && containsGridCellInputField) {
2163
2160
  var _this3$grid;
2164
2161
  if (document.activeElement != null && document.activeElement.classList.contains('error')) {
@@ -2166,7 +2163,7 @@ class IrisGrid extends Component {
2166
2163
  }
2167
2164
 
2168
2165
  // Focus the grid again to commit any pending input changes
2169
- (_this3$grid = _this3.grid) === null || _this3$grid === void 0 ? void 0 : _this3$grid.focus();
2166
+ (_this3$grid = _this3.grid) === null || _this3$grid === void 0 || _this3$grid.focus();
2170
2167
  }
2171
2168
  var newPendingSavePromise = _this3.pending.add(model.commitPending()).then(() => {
2172
2169
  _this3.setState({
@@ -2276,7 +2273,7 @@ class IrisGrid extends Component {
2276
2273
  this.setAdvancedFilter(index, filter, options);
2277
2274
  }
2278
2275
  handleAdvancedFilterSortChange(column, direction) {
2279
- var _this$grid17;
2276
+ var _this$grid15;
2280
2277
  var addToExisting = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2281
2278
  var {
2282
2279
  model
@@ -2299,11 +2296,11 @@ class IrisGrid extends Component {
2299
2296
  this.setState({
2300
2297
  sorts
2301
2298
  });
2302
- (_this$grid17 = this.grid) === null || _this$grid17 === void 0 ? void 0 : _this$grid17.forceUpdate();
2299
+ (_this$grid15 = this.grid) === null || _this$grid15 === void 0 || _this$grid15.forceUpdate();
2303
2300
  }
2304
2301
  handleAdvancedFilterDone() {
2305
- var _this$grid18;
2306
- (_this$grid18 = this.grid) === null || _this$grid18 === void 0 ? void 0 : _this$grid18.focus();
2302
+ var _this$grid16;
2303
+ (_this$grid16 = this.grid) === null || _this$grid16 === void 0 || _this$grid16.focus();
2307
2304
  }
2308
2305
  handleAdvancedMenuOpened(column) {
2309
2306
  this.setState({
@@ -2330,7 +2327,7 @@ class IrisGrid extends Component {
2330
2327
  } = this.state;
2331
2328
  if (isFilterBarShown && focusedFilterBarColumn === columnIndex && ((_this$filterInputRef = this.filterInputRef) === null || _this$filterInputRef === void 0 ? void 0 : _this$filterInputRef.current) !== null) {
2332
2329
  var _this$filterInputRef2;
2333
- (_this$filterInputRef2 = this.filterInputRef) === null || _this$filterInputRef2 === void 0 ? void 0 : _this$filterInputRef2.current.focus();
2330
+ (_this$filterInputRef2 = this.filterInputRef) === null || _this$filterInputRef2 === void 0 || _this$filterInputRef2.current.focus();
2334
2331
  this.setState({
2335
2332
  shownAdvancedFilter: null
2336
2333
  });
@@ -2369,11 +2366,11 @@ class IrisGrid extends Component {
2369
2366
  this.startLoading('Filtering...', {
2370
2367
  resetRanges: true
2371
2368
  });
2372
- this.setState(_ref15 => {
2369
+ this.setState(_ref13 => {
2373
2370
  var {
2374
2371
  focusedFilterBarColumn,
2375
2372
  quickFilters
2376
- } = _ref15;
2373
+ } = _ref13;
2377
2374
  var newQuickFilters = new Map(quickFilters);
2378
2375
  if (focusedFilterBarColumn != null) {
2379
2376
  var modelIndex = this.getModelColumn(focusedFilterBarColumn);
@@ -2389,8 +2386,8 @@ class IrisGrid extends Component {
2389
2386
  var setGridFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
2390
2387
  var defocusInput = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2391
2388
  if (setGridFocus) {
2392
- var _this$grid19;
2393
- (_this$grid19 = this.grid) === null || _this$grid19 === void 0 ? void 0 : _this$grid19.focus();
2389
+ var _this$grid17;
2390
+ (_this$grid17 = this.grid) === null || _this$grid17 === void 0 || _this$grid17.focus();
2394
2391
  }
2395
2392
  if (defocusInput) {
2396
2393
  this.setState({
@@ -2430,6 +2427,26 @@ class IrisGrid extends Component {
2430
2427
  customColumnFormatMap
2431
2428
  });
2432
2429
  }
2430
+ handleColumnAlignmentChange(modelIndex, alignment) {
2431
+ var {
2432
+ model
2433
+ } = this.props;
2434
+ var column = model.columns[modelIndex];
2435
+ this.setState(_ref14 => {
2436
+ var {
2437
+ columnAlignmentMap = EMPTY_MAP
2438
+ } = _ref14;
2439
+ var newColumnAlignmentMap = new Map(columnAlignmentMap);
2440
+ if (alignment != null) {
2441
+ newColumnAlignmentMap.set(column.name, alignment);
2442
+ } else {
2443
+ newColumnAlignmentMap.delete(column.name);
2444
+ }
2445
+ return {
2446
+ columnAlignmentMap: newColumnAlignmentMap
2447
+ };
2448
+ });
2449
+ }
2433
2450
  handleMenu(e) {
2434
2451
  e.stopPropagation();
2435
2452
  this.setState({
@@ -2443,10 +2460,10 @@ class IrisGrid extends Component {
2443
2460
  });
2444
2461
  }
2445
2462
  handleMenuBack() {
2446
- this.setState(_ref16 => {
2463
+ this.setState(_ref15 => {
2447
2464
  var {
2448
2465
  openOptions
2449
- } = _ref16;
2466
+ } = _ref15;
2450
2467
  var newOptions = [...openOptions];
2451
2468
  newOptions.pop();
2452
2469
  return {
@@ -2455,10 +2472,10 @@ class IrisGrid extends Component {
2455
2472
  });
2456
2473
  }
2457
2474
  handleMenuSelect(option) {
2458
- this.setState(_ref17 => {
2475
+ this.setState(_ref16 => {
2459
2476
  var {
2460
2477
  openOptions
2461
- } = _ref17;
2478
+ } = _ref16;
2462
2479
  return {
2463
2480
  openOptions: [...openOptions, option]
2464
2481
  };
@@ -2497,7 +2514,7 @@ class IrisGrid extends Component {
2497
2514
  }
2498
2515
  }
2499
2516
  handleUpdate() {
2500
- var _this$grid20;
2517
+ var _this$grid18;
2501
2518
  log.debug2('Received model update');
2502
2519
  var {
2503
2520
  advancedFilters,
@@ -2526,7 +2543,7 @@ class IrisGrid extends Component {
2526
2543
  } else {
2527
2544
  this.lastLoadedConfig = null;
2528
2545
  }
2529
- (_this$grid20 = this.grid) === null || _this$grid20 === void 0 ? void 0 : _this$grid20.forceUpdate();
2546
+ (_this$grid18 = this.grid) === null || _this$grid18 === void 0 || _this$grid18.forceUpdate();
2530
2547
  this.stopLoading();
2531
2548
  }
2532
2549
  handleTableChanged() {
@@ -2539,13 +2556,13 @@ class IrisGrid extends Component {
2539
2556
  });
2540
2557
  }
2541
2558
  handleViewChanged(metrics) {
2542
- var _this$grid$state, _this$grid21;
2559
+ var _this$grid$state, _this$grid19;
2543
2560
  var {
2544
2561
  model
2545
2562
  } = this.props;
2546
2563
  var {
2547
2564
  selectionEndRow = 0
2548
- } = (_this$grid$state = (_this$grid21 = this.grid) === null || _this$grid21 === void 0 ? void 0 : _this$grid21.state) !== null && _this$grid$state !== void 0 ? _this$grid$state : {};
2565
+ } = (_this$grid$state = (_this$grid19 = this.grid) === null || _this$grid19 === void 0 ? void 0 : _this$grid19.state) !== null && _this$grid$state !== void 0 ? _this$grid$state : {};
2549
2566
  var pendingRowCount = 0;
2550
2567
  if (isEditableGridModel(model) && model.isEditable) {
2551
2568
  assertNotNull(metrics);
@@ -2573,7 +2590,6 @@ class IrisGrid extends Component {
2573
2590
  });
2574
2591
  }
2575
2592
  handleSelectionChanged(selectedRanges) {
2576
- var _this$grid22;
2577
2593
  assertNotNull(selectedRanges);
2578
2594
  var {
2579
2595
  onSelectionChanged
@@ -2589,9 +2605,14 @@ class IrisGrid extends Component {
2589
2605
  copyOperation: null
2590
2606
  });
2591
2607
  }
2592
- if (((_this$grid22 = this.grid) === null || _this$grid22 === void 0 ? void 0 : _this$grid22.state.cursorRow) != null) {
2608
+
2609
+ // We get 2 identical ranges here,
2610
+ // but consolidating in `Grid#moveSelection` causes
2611
+ // deselection to break, so just consolidate here.
2612
+ // This will only update the goto row input for row index
2613
+ if (GridRange.rowCount(GridRange.consolidate(selectedRanges)) === 1 && selectedRanges[0].startRow != null) {
2593
2614
  this.setState({
2594
- gotoRow: "".concat(this.grid.state.cursorRow + 1)
2615
+ gotoRow: "".concat(selectedRanges[0].startRow + 1)
2595
2616
  });
2596
2617
  }
2597
2618
  onSelectionChanged(selectedRanges);
@@ -2608,8 +2629,8 @@ class IrisGrid extends Component {
2608
2629
  this.setState({
2609
2630
  columnHeaderGroups: IrisGridUtils.parseColumnHeaderGroups(model, columnHeaderGroups).groups
2610
2631
  }, () => {
2611
- var _this$grid23;
2612
- return (_this$grid23 = this.grid) === null || _this$grid23 === void 0 ? void 0 : _this$grid23.forceUpdate();
2632
+ var _this$grid20;
2633
+ return (_this$grid20 = this.grid) === null || _this$grid20 === void 0 ? void 0 : _this$grid20.forceUpdate();
2613
2634
  });
2614
2635
  }
2615
2636
  handleTooltipRef(tooltip) {
@@ -2657,9 +2678,6 @@ class IrisGrid extends Component {
2657
2678
  conditionalFormatPreview: _objectSpread({}, conditionalFormats[index])
2658
2679
  });
2659
2680
  }
2660
-
2661
- // Apply live changes
2662
-
2663
2681
  handleConditionalFormatEditorSave(config) {
2664
2682
  log.debug('Save conditional format changes', config);
2665
2683
  this.setState(state => {
@@ -2748,9 +2766,9 @@ class IrisGrid extends Component {
2748
2766
  isReady
2749
2767
  } = this.state;
2750
2768
  if (isReady) {
2751
- var _this$grid24;
2769
+ var _this$grid21;
2752
2770
  this.stopLoading();
2753
- (_this$grid24 = this.grid) === null || _this$grid24 === void 0 ? void 0 : _this$grid24.forceUpdate();
2771
+ (_this$grid21 = this.grid) === null || _this$grid21 === void 0 || _this$grid21.forceUpdate();
2754
2772
  } else {
2755
2773
  this.loadTableState();
2756
2774
  }
@@ -2762,7 +2780,7 @@ class IrisGrid extends Component {
2762
2780
  return this.discardPending();
2763
2781
  }
2764
2782
  handlePendingDataUpdated() {
2765
- var _this$grid25;
2783
+ var _this$grid22;
2766
2784
  log.debug('pending data updated');
2767
2785
  var {
2768
2786
  model
@@ -2776,10 +2794,10 @@ class IrisGrid extends Component {
2776
2794
  pendingDataErrors,
2777
2795
  pendingSaveError: null
2778
2796
  });
2779
- (_this$grid25 = this.grid) === null || _this$grid25 === void 0 ? void 0 : _this$grid25.forceUpdate();
2797
+ (_this$grid22 = this.grid) === null || _this$grid22 === void 0 || _this$grid22.forceUpdate();
2780
2798
  }
2781
2799
  handleResizeColumn(modelIndex) {
2782
- var _this$grid26;
2800
+ var _this$grid23;
2783
2801
  var {
2784
2802
  metrics,
2785
2803
  metricCalculator
@@ -2793,21 +2811,21 @@ class IrisGrid extends Component {
2793
2811
  } else {
2794
2812
  metricCalculator.setColumnWidth(modelIndex, contentWidth);
2795
2813
  }
2796
- (_this$grid26 = this.grid) === null || _this$grid26 === void 0 ? void 0 : _this$grid26.forceUpdate();
2814
+ (_this$grid23 = this.grid) === null || _this$grid23 === void 0 || _this$grid23.forceUpdate();
2797
2815
  }
2798
2816
  handleResizeAllColumns() {
2799
- var _this$grid27;
2817
+ var _this$grid24;
2800
2818
  var {
2801
2819
  metrics,
2802
2820
  metricCalculator
2803
2821
  } = this.state;
2804
2822
  if (!metrics) throw new Error('Metrics not set');
2805
2823
  var allColumns = [...metrics.allColumnWidths.entries()];
2806
- var visibleColumns = allColumns.filter(_ref18 => {
2807
- var [_, width] = _ref18;
2824
+ var visibleColumns = allColumns.filter(_ref17 => {
2825
+ var [_, width] = _ref17;
2808
2826
  return width !== 0;
2809
- }).map(_ref19 => {
2810
- var [modelIndex] = _ref19;
2827
+ }).map(_ref18 => {
2828
+ var [modelIndex] = _ref18;
2811
2829
  return modelIndex;
2812
2830
  });
2813
2831
  var contentWidths = metrics.contentColumnWidths;
@@ -2829,7 +2847,7 @@ class IrisGrid extends Component {
2829
2847
  metricCalculator.setColumnWidth(_modelIndex, _contentWidth);
2830
2848
  }
2831
2849
  }
2832
- (_this$grid27 = this.grid) === null || _this$grid27 === void 0 ? void 0 : _this$grid27.forceUpdate();
2850
+ (_this$grid24 = this.grid) === null || _this$grid24 === void 0 || _this$grid24.forceUpdate();
2833
2851
  }
2834
2852
 
2835
2853
  /**
@@ -2846,7 +2864,7 @@ class IrisGrid extends Component {
2846
2864
  var {
2847
2865
  rollupConfig
2848
2866
  } = this.state;
2849
- var isRollup = ((_rollupConfig$columns = rollupConfig === null || rollupConfig === void 0 ? void 0 : (_rollupConfig$columns2 = rollupConfig.columns) === null || _rollupConfig$columns2 === void 0 ? void 0 : _rollupConfig$columns2.length) !== null && _rollupConfig$columns !== void 0 ? _rollupConfig$columns : 0) > 0;
2867
+ var isRollup = ((_rollupConfig$columns = rollupConfig === null || rollupConfig === void 0 || (_rollupConfig$columns2 = rollupConfig.columns) === null || _rollupConfig$columns2 === void 0 ? void 0 : _rollupConfig$columns2.length) !== null && _rollupConfig$columns !== void 0 ? _rollupConfig$columns : 0) > 0;
2850
2868
  // Do not start loading if this is rollup and added / removed aggregations are prohibited for rollups
2851
2869
  var changes = [...added, ...removed];
2852
2870
  var shouldStartLoading = !(isRollup && changes.length > 0 && changes.every(op => AggregationUtils.isRollupProhibited(op)));
@@ -2868,16 +2886,16 @@ class IrisGrid extends Component {
2868
2886
  var {
2869
2887
  rollupConfig
2870
2888
  } = this.state;
2871
- var isRollup = ((_rollupConfig$columns3 = rollupConfig === null || rollupConfig === void 0 ? void 0 : (_rollupConfig$columns4 = rollupConfig.columns) === null || _rollupConfig$columns4 === void 0 ? void 0 : _rollupConfig$columns4.length) !== null && _rollupConfig$columns3 !== void 0 ? _rollupConfig$columns3 : 0) > 0;
2889
+ var isRollup = ((_rollupConfig$columns3 = rollupConfig === null || rollupConfig === void 0 || (_rollupConfig$columns4 = rollupConfig.columns) === null || _rollupConfig$columns4 === void 0 ? void 0 : _rollupConfig$columns4.length) !== null && _rollupConfig$columns3 !== void 0 ? _rollupConfig$columns3 : 0) > 0;
2872
2890
  // Do not start loading if this is rollup and the aggregation is prohibited for rollups
2873
2891
  var shouldStartLoading = !(isRollup && AggregationUtils.isRollupProhibited(aggregation.operation));
2874
2892
  if (shouldStartLoading) {
2875
2893
  this.startLoading("Aggregating ".concat(aggregation.operation, "..."));
2876
2894
  }
2877
- this.setState(_ref20 => {
2895
+ this.setState(_ref19 => {
2878
2896
  var {
2879
2897
  aggregationSettings
2880
- } = _ref20;
2898
+ } = _ref19;
2881
2899
  return {
2882
2900
  selectedAggregation: aggregation,
2883
2901
  aggregationSettings: _objectSpread(_objectSpread({}, aggregationSettings), {}, {
@@ -2910,18 +2928,18 @@ class IrisGrid extends Component {
2910
2928
  this.resetGridViewState();
2911
2929
  this.showAllColumns();
2912
2930
  this.clearAllFilters();
2913
- this.startLoading("Grouping by columns ".concat((_rollupConfig$columns5 = rollupConfig === null || rollupConfig === void 0 ? void 0 : (_rollupConfig$columns6 = rollupConfig.columns) === null || _rollupConfig$columns6 === void 0 ? void 0 : _rollupConfig$columns6.join(', ')) !== null && _rollupConfig$columns5 !== void 0 ? _rollupConfig$columns5 : '', "..."));
2931
+ this.startLoading("Grouping by columns ".concat((_rollupConfig$columns5 = rollupConfig === null || rollupConfig === void 0 || (_rollupConfig$columns6 = rollupConfig.columns) === null || _rollupConfig$columns6 === void 0 ? void 0 : _rollupConfig$columns6.join(', ')) !== null && _rollupConfig$columns5 !== void 0 ? _rollupConfig$columns5 : '', "..."));
2914
2932
 
2915
2933
  // Have to clear select distinct since rollup uses the original columns, not the current ones.
2916
2934
  // IrisGridProxyModel has a check to prevent model update
2917
2935
  // when selectDistinctModel is cleared and the rollupConfig is set on the model.
2918
2936
  this.setState({
2919
2937
  rollupConfig,
2920
- movedColumns: [],
2921
- frozenColumns: [],
2922
- sorts: [],
2938
+ movedColumns: EMPTY_ARRAY,
2939
+ frozenColumns: EMPTY_ARRAY,
2940
+ sorts: EMPTY_ARRAY,
2923
2941
  reverse: false,
2924
- selectDistinctColumns: []
2942
+ selectDistinctColumns: EMPTY_ARRAY
2925
2943
  });
2926
2944
  }
2927
2945
  handleSelectDistinctChanged(columnNames) {
@@ -2977,10 +2995,10 @@ class IrisGrid extends Component {
2977
2995
  */
2978
2996
  removeEmptyAggregations() {
2979
2997
  log.debug('removeEmptyAggregations');
2980
- this.setState(_ref21 => {
2998
+ this.setState(_ref20 => {
2981
2999
  var {
2982
3000
  aggregationSettings
2983
- } = _ref21;
3001
+ } = _ref20;
2984
3002
  var {
2985
3003
  aggregations
2986
3004
  } = aggregationSettings;
@@ -3072,7 +3090,7 @@ class IrisGrid extends Component {
3072
3090
  rowIndex = yield model.seekRow(searchFromRow, selectedColumn, dh.ValueType.STRING, _this6.tableUtils.makeValue(selectedColumn.type, inputString, formatter.timeZone), undefined, undefined, isBackwards !== null && isBackwards !== void 0 ? isBackwards : false);
3073
3091
  }
3074
3092
  }
3075
- (_this6$grid2 = _this6.grid) === null || _this6$grid2 === void 0 ? void 0 : _this6$grid2.setFocusRow(rowIndex);
3093
+ (_this6$grid2 = _this6.grid) === null || _this6$grid2 === void 0 || _this6$grid2.setFocusRow(rowIndex);
3076
3094
  _this6.setState({
3077
3095
  gotoValueError: ''
3078
3096
  });
@@ -3085,7 +3103,7 @@ class IrisGrid extends Component {
3085
3103
  }
3086
3104
  handleCancelDownloadTable() {
3087
3105
  var _this$tableSaver;
3088
- (_this$tableSaver = this.tableSaver) === null || _this$tableSaver === void 0 ? void 0 : _this$tableSaver.cancelDownload();
3106
+ (_this$tableSaver = this.tableSaver) === null || _this$tableSaver === void 0 || _this$tableSaver.cancelDownload();
3089
3107
  this.setState({
3090
3108
  isTableDownloading: false
3091
3109
  });
@@ -3255,22 +3273,22 @@ class IrisGrid extends Component {
3255
3273
  gotoRowError: 'Invalid row index'
3256
3274
  });
3257
3275
  } else if (rowInt === 0) {
3258
- var _this$grid28;
3276
+ var _this$grid25;
3259
3277
  this.setState({
3260
3278
  gotoRowError: '',
3261
3279
  gotoValueError: ''
3262
3280
  });
3263
- (_this$grid28 = this.grid) === null || _this$grid28 === void 0 ? void 0 : _this$grid28.setFocusRow(0);
3281
+ (_this$grid25 = this.grid) === null || _this$grid25 === void 0 || _this$grid25.setFocusRow(0);
3264
3282
  } else if (rowInt < 0) {
3265
- var _this$grid29;
3283
+ var _this$grid26;
3266
3284
  this.setState({
3267
3285
  gotoRowError: '',
3268
3286
  gotoValueError: ''
3269
3287
  });
3270
- (_this$grid29 = this.grid) === null || _this$grid29 === void 0 ? void 0 : _this$grid29.setFocusRow(rowInt + rowCount);
3288
+ (_this$grid26 = this.grid) === null || _this$grid26 === void 0 || _this$grid26.setFocusRow(rowInt + rowCount);
3271
3289
  } else {
3272
- var _this$grid30;
3273
- (_this$grid30 = this.grid) === null || _this$grid30 === void 0 ? void 0 : _this$grid30.setFocusRow(rowInt - 1);
3290
+ var _this$grid27;
3291
+ (_this$grid27 = this.grid) === null || _this$grid27 === void 0 || _this$grid27.setFocusRow(rowInt - 1);
3274
3292
  this.setState({
3275
3293
  gotoRowError: '',
3276
3294
  gotoValueError: ''
@@ -3363,34 +3381,34 @@ class IrisGrid extends Component {
3363
3381
  column: column,
3364
3382
  onStatistics: () => {
3365
3383
  var _this$tooltip;
3366
- (_this$tooltip = this.tooltip) === null || _this$tooltip === void 0 ? void 0 : _this$tooltip.update();
3384
+ (_this$tooltip = this.tooltip) === null || _this$tooltip === void 0 || _this$tooltip.update();
3367
3385
  }
3368
3386
  })
3369
3387
  }, column.name)
3370
3388
  });
3371
3389
  }
3372
3390
  handleGotoValueSelectedColumnNameChanged(columnName) {
3373
- var _this$grid31;
3391
+ var _this$grid28;
3374
3392
  var {
3375
3393
  model
3376
3394
  } = this.props;
3377
- var cursorRow = (_this$grid31 = this.grid) === null || _this$grid31 === void 0 ? void 0 : _this$grid31.state.cursorRow;
3395
+ var cursorRow = (_this$grid28 = this.grid) === null || _this$grid28 === void 0 ? void 0 : _this$grid28.state.cursorRow;
3378
3396
  var {
3379
3397
  gotoValueSelectedColumnName: prevColumnName,
3380
3398
  gotoValueManuallyChanged
3381
3399
  } = this.state;
3382
3400
  if (cursorRow != null) {
3383
- var _index = model.getColumnIndexByName(columnName);
3384
- var _column2 = IrisGridUtils.getColumnByName(model.columns, columnName);
3401
+ var index = model.getColumnIndexByName(columnName);
3402
+ var column = IrisGridUtils.getColumnByName(model.columns, columnName);
3385
3403
  var prevColumn = IrisGridUtils.getColumnByName(model.columns, prevColumnName);
3386
- if (_index == null || _column2 == null) {
3404
+ if (index == null || column == null) {
3387
3405
  return;
3388
3406
  }
3389
- var _value3 = model.valueForCell(_index, cursorRow);
3390
- var text = IrisGridUtils.convertValueToText(_value3, _column2.type);
3407
+ var value = model.valueForCell(index, cursorRow);
3408
+ var text = IrisGridUtils.convertValueToText(value, column.type);
3391
3409
 
3392
3410
  // do NOT update value if user manually changed value AND column type remains the same
3393
- if (gotoValueManuallyChanged && _column2.type === (prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.type)) {
3411
+ if (gotoValueManuallyChanged && column.type === (prevColumn === null || prevColumn === void 0 ? void 0 : prevColumn.type)) {
3394
3412
  this.setState({
3395
3413
  gotoValueSelectedColumnName: columnName,
3396
3414
  gotoValueError: ''
@@ -3426,8 +3444,7 @@ class IrisGrid extends Component {
3426
3444
  var _rollupConfig$columns7,
3427
3445
  _rollupConfig$columns8,
3428
3446
  _this7 = this,
3429
- _this$grid33,
3430
- _this$grid33$state$dr,
3447
+ _this$grid30,
3431
3448
  _openOptions;
3432
3449
  var {
3433
3450
  children,
@@ -3473,6 +3490,7 @@ class IrisGrid extends Component {
3473
3490
  conditionalFormats,
3474
3491
  conditionalFormatPreview,
3475
3492
  conditionalFormatEditIndex,
3493
+ columnAlignmentMap,
3476
3494
  sorts,
3477
3495
  reverse,
3478
3496
  customColumns,
@@ -3532,7 +3550,7 @@ class IrisGrid extends Component {
3532
3550
  right = metrics ? metrics.right : 0;
3533
3551
  }
3534
3552
  var isVisible = metrics != null && metrics.width > 0 && metrics.height > 0;
3535
- var isRollup = ((_rollupConfig$columns7 = rollupConfig === null || rollupConfig === void 0 ? void 0 : (_rollupConfig$columns8 = rollupConfig.columns) === null || _rollupConfig$columns8 === void 0 ? void 0 : _rollupConfig$columns8.length) !== null && _rollupConfig$columns7 !== void 0 ? _rollupConfig$columns7 : 0) > 0;
3553
+ var isRollup = ((_rollupConfig$columns7 = rollupConfig === null || rollupConfig === void 0 || (_rollupConfig$columns8 = rollupConfig.columns) === null || _rollupConfig$columns8 === void 0 ? void 0 : _rollupConfig$columns8.length) !== null && _rollupConfig$columns7 !== void 0 ? _rollupConfig$columns7 : 0) > 0;
3536
3554
  var focusField = null;
3537
3555
  var debounceMs = metrics ? Math.min(Math.max(IrisGrid.minDebounce, Math.round(metrics.rowCount / 200)), IrisGrid.maxDebounce) : IrisGrid.maxDebounce;
3538
3556
  if (isFilterBarShown && focusedFilterBarColumn != null && metrics != null) {
@@ -3546,7 +3564,7 @@ class IrisGrid extends Component {
3546
3564
  var columnX = allColumnXs.get(focusedFilterBarColumn);
3547
3565
  var columnWidth = allColumnWidths.get(focusedFilterBarColumn);
3548
3566
  if (columnX != null && columnWidth != null) {
3549
- var _theme$filterBarHeigh, _theme$filterBarHeigh2, _this$grid32;
3567
+ var _theme$filterBarHeigh, _theme$filterBarHeigh2, _this$grid29;
3550
3568
  var x = gridX + columnX;
3551
3569
  var y = gridY - ((_theme$filterBarHeigh = theme.filterBarHeight) !== null && _theme$filterBarHeigh !== void 0 ? _theme$filterBarHeigh : 0);
3552
3570
  var fieldWidth = columnWidth + 1; // cover right border
@@ -3558,14 +3576,14 @@ class IrisGrid extends Component {
3558
3576
  // Don't cause overflow
3559
3577
  height: fieldHeight
3560
3578
  };
3561
- var _value4 = '';
3579
+ var value = '';
3562
3580
  var isValid = true;
3563
3581
  var modelColumn = this.getModelColumn(focusedFilterBarColumn);
3564
3582
  assertNotNull(modelColumn);
3565
3583
  var quickFilter = quickFilters.get(modelColumn);
3566
3584
  var advancedFilter = advancedFilters.get(modelColumn);
3567
3585
  if (quickFilter != null) {
3568
- _value4 = quickFilter.text;
3586
+ value = quickFilter.text;
3569
3587
  isValid = quickFilter.filter != null;
3570
3588
  }
3571
3589
  var isBarFiltered = quickFilters.size !== 0 || advancedFilters.size !== 0;
@@ -3574,7 +3592,7 @@ class IrisGrid extends Component {
3574
3592
  style: style,
3575
3593
  className: classNames({
3576
3594
  error: !isValid,
3577
- active: _value4 !== '' || advancedFilter != null,
3595
+ active: value !== '' || advancedFilter != null,
3578
3596
  'iris-grid-has-filter': isBarFiltered
3579
3597
  }),
3580
3598
  isAdvancedFilterSet: advancedFilter != null,
@@ -3586,9 +3604,9 @@ class IrisGrid extends Component {
3586
3604
  onChange: this.handleFilterBarChange,
3587
3605
  onDone: this.handleFilterBarDone,
3588
3606
  onTab: this.handleFilterBarTab,
3589
- onContextMenu: (_this$grid32 = this.grid) === null || _this$grid32 === void 0 ? void 0 : _this$grid32.handleContextMenu,
3607
+ onContextMenu: (_this$grid29 = this.grid) === null || _this$grid29 === void 0 ? void 0 : _this$grid29.handleContextMenu,
3590
3608
  debounceMs: debounceMs,
3591
- value: _value4
3609
+ value: value
3592
3610
  }, focusedFilterBarColumn);
3593
3611
  }
3594
3612
  }
@@ -3627,7 +3645,7 @@ class IrisGrid extends Component {
3627
3645
  var _this$tooltip2;
3628
3646
  columnTooltip = this.getColumnTooltip(shownColumnTooltip, metrics, model);
3629
3647
  // #510 We may need to update the position of the tooltip if it's already opened and columns are resized
3630
- (_this$tooltip2 = this.tooltip) === null || _this$tooltip2 === void 0 ? void 0 : _this$tooltip2.update();
3648
+ (_this$tooltip2 = this.tooltip) === null || _this$tooltip2 === void 0 || _this$tooltip2.update();
3631
3649
  }
3632
3650
  var filterBar = [];
3633
3651
  if (metrics && isFilterBarShown) {
@@ -3676,7 +3694,7 @@ class IrisGrid extends Component {
3676
3694
  },
3677
3695
  onContextMenu: event => {
3678
3696
  var _this7$grid;
3679
- (_this7$grid = _this7.grid) === null || _this7$grid === void 0 ? void 0 : _this7$grid.handleContextMenu(event);
3697
+ (_this7$grid = _this7.grid) === null || _this7$grid === void 0 || _this7$grid.handleContextMenu(event);
3680
3698
  },
3681
3699
  onMouseEnter: () => {
3682
3700
  _this7.setState({
@@ -3739,18 +3757,18 @@ class IrisGrid extends Component {
3739
3757
  };
3740
3758
  var _modelColumn = _this7.getModelColumn(columnIndex);
3741
3759
  if (_modelColumn != null) {
3742
- var _column3 = model.columns[_modelColumn];
3743
- if (_column3 == null) {
3760
+ var column = model.columns[_modelColumn];
3761
+ if (column == null) {
3744
3762
  // Grid metrics is likely out of sync with model
3745
3763
  log.warn("Column does not exist at index ".concat(_modelColumn, " for column array of length ").concat(model.columns.length));
3746
3764
  // eslint-disable-next-line no-continue
3747
- return "continue";
3765
+ return 1; // continue
3748
3766
  }
3749
3767
  var _advancedFilter2 = advancedFilters.get(_modelColumn);
3750
3768
  var {
3751
3769
  options: advancedFilterOptions
3752
3770
  } = _advancedFilter2 || {};
3753
- var sort = TableUtils.getSortForColumn(model.sort, _column3.name);
3771
+ var sort = TableUtils.getSortForColumn(model.sort, column.name);
3754
3772
  var sortDirection = sort ? sort.direction : null;
3755
3773
  if (!isSortDirection(sortDirection)) {
3756
3774
  throw new Error("Invalid sort direction: ".concat(sortDirection));
@@ -3770,7 +3788,7 @@ class IrisGrid extends Component {
3770
3788
  options: {
3771
3789
  positionFixed: true
3772
3790
  },
3773
- children: _this7.getCachedAdvancedFilterMenuActions(model, _column3, advancedFilterOptions, sortDirection, formatter)
3791
+ children: _this7.getCachedAdvancedFilterMenuActions(model, column, advancedFilterOptions, sortDirection, formatter)
3774
3792
  })
3775
3793
  }, columnIndex);
3776
3794
  advancedFilterMenus.push(element);
@@ -3778,8 +3796,7 @@ class IrisGrid extends Component {
3778
3796
  }
3779
3797
  };
3780
3798
  for (var _i4 = 0; _i4 < _visibleColumns.length; _i4 += 1) {
3781
- var _ret = _loop3();
3782
- if (_ret === "continue") continue;
3799
+ if (_loop3()) continue;
3783
3800
  }
3784
3801
  }
3785
3802
  var optionItems = this.getCachedOptionItems(onCreateChart !== undefined && model.isChartBuilderAvailable, model.isCustomColumnsAvailable, model.isFormatColumnsAvailable, model.isOrganizeColumnsAvailable, model.isRollupAvailable, model.isTotalsAvailable || isRollup, model.isSelectDistinctAvailable, model.isExportAvailable, this.toggleFilterBarAction, this.toggleSearchBarAction, this.toggleGotoRowAction, isFilterBarShown, showSearchBar, canDownloadCsv, this.isTableSearchAvailable(), isGotoShown, advancedSettings.size > 0);
@@ -3897,7 +3914,9 @@ class IrisGrid extends Component {
3897
3914
  onExited: this.handleAnimationEnd,
3898
3915
  mountOnEnter: true,
3899
3916
  unmountOnExit: true,
3917
+ nodeRef: this.slideTransitionRef,
3900
3918
  children: /*#__PURE__*/_jsx("div", {
3919
+ ref: this.slideTransitionRef,
3901
3920
  className: "iris-grid-partition-selector-wrapper iris-grid-bar iris-grid-bar-primary",
3902
3921
  children: isPartitionedGridModel(model) && model.isPartitionRequired && /*#__PURE__*/_jsx(IrisGridPartitionSelector, {
3903
3922
  model: model,
@@ -3915,7 +3934,9 @@ class IrisGrid extends Component {
3915
3934
  onExited: this.handleAnimationEnd,
3916
3935
  mountOnEnter: true,
3917
3936
  unmountOnExit: true,
3937
+ nodeRef: this.bottomTransitionRef,
3918
3938
  children: /*#__PURE__*/_jsx("div", {
3939
+ ref: this.bottomTransitionRef,
3919
3940
  className: "iris-grid-bar",
3920
3941
  children: /*#__PURE__*/_jsx(CrossColumnSearch, {
3921
3942
  value: searchValue,
@@ -3958,12 +3979,13 @@ class IrisGrid extends Component {
3958
3979
  right: right,
3959
3980
  filter: filter,
3960
3981
  formatter: formatter,
3982
+ columnAlignmentMap: columnAlignmentMap,
3961
3983
  sorts: sorts,
3962
3984
  reverse: reverse,
3963
3985
  movedColumns: movedColumns,
3964
3986
  customColumns: customColumns,
3965
3987
  hiddenColumns: hiddenColumns,
3966
- alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, movedColumns, model.floatingLeftColumnCount, model.floatingRightColumnCount, (_this$grid33 = this.grid) === null || _this$grid33 === void 0 ? void 0 : (_this$grid33$state$dr = _this$grid33.state.draggingColumn) === null || _this$grid33$state$dr === void 0 ? void 0 : _this$grid33$state$dr.range),
3988
+ alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, movedColumns, model.floatingLeftColumnCount, model.floatingRightColumnCount, (_this$grid30 = this.grid) === null || _this$grid30 === void 0 || (_this$grid30 = _this$grid30.state.draggingColumn) === null || _this$grid30 === void 0 ? void 0 : _this$grid30.range),
3967
3989
  formatColumns: this.getCachedPreviewFormatColumns(model.dh, model.columns, conditionalFormats, conditionalFormatPreview,
3968
3990
  // Disable the preview format when we press Back on the format edit page
3969
3991
  ((_openOptions = openOptions[openOptions.length - 1]) === null || _openOptions === void 0 ? void 0 : _openOptions.type) === OptionType.CONDITIONAL_FORMATTING_EDIT ? conditionalFormatEditIndex !== null && conditionalFormatEditIndex !== void 0 ? conditionalFormatEditIndex : undefined : undefined),
@@ -4092,12 +4114,12 @@ _defineProperty(IrisGrid, "minDebounce", 150);
4092
4114
  _defineProperty(IrisGrid, "maxDebounce", 500);
4093
4115
  _defineProperty(IrisGrid, "loadingSpinnerDelay", 800);
4094
4116
  _defineProperty(IrisGrid, "defaultProps", {
4095
- children: null,
4096
4117
  advancedFilters: EMPTY_MAP,
4097
4118
  advancedSettings: EMPTY_MAP,
4098
4119
  alwaysFetchColumns: EMPTY_ARRAY,
4099
4120
  conditionalFormats: EMPTY_ARRAY,
4100
4121
  customColumnFormatMap: EMPTY_MAP,
4122
+ columnAlignmentMap: EMPTY_MAP,
4101
4123
  isFilterBarShown: false,
4102
4124
  applyInputFiltersOnInit: false,
4103
4125
  movedColumns: EMPTY_ARRAY,
@@ -4126,7 +4148,6 @@ _defineProperty(IrisGrid, "defaultProps", {
4126
4148
  isSelectingPartition: false,
4127
4149
  isStuckToBottom: false,
4128
4150
  isStuckToRight: false,
4129
- columnSelectionValidator: null,
4130
4151
  columnAllowedCursor: 'linker',
4131
4152
  columnNotAllowedCursor: 'linker-not-allowed',
4132
4153
  copyCursor: 'copy',
@@ -4134,7 +4155,6 @@ _defineProperty(IrisGrid, "defaultProps", {
4134
4155
  onlyFetchVisibleColumns: true,
4135
4156
  showSearchBar: false,
4136
4157
  searchValue: '',
4137
- selectedSearchColumns: null,
4138
4158
  invertSearchColumns: true,
4139
4159
  onContextMenu: () => EMPTY_ARRAY,
4140
4160
  pendingDataMap: EMPTY_MAP,
@@ -4148,18 +4168,11 @@ _defineProperty(IrisGrid, "defaultProps", {
4148
4168
  showEmptyStrings: true,
4149
4169
  showNullStrings: true,
4150
4170
  showExtraGroupColumn: true,
4151
- formatter: EMPTY_ARRAY,
4152
- decimalFormatOptions: PropTypes.shape({
4153
- defaultFormatString: PropTypes.string
4154
- }),
4155
- integerFormatOptions: PropTypes.shape({
4156
- defaultFormatString: PropTypes.string
4157
- })
4171
+ formatter: EMPTY_ARRAY
4158
4172
  },
4159
4173
  canCopy: true,
4160
4174
  canDownloadCsv: true,
4161
- frozenColumns: null,
4162
- theme: null,
4175
+ frozenColumns: EMPTY_ARRAY,
4163
4176
  // Do not set a default density prop since we need to know if it overrides the global density setting
4164
4177
  density: undefined,
4165
4178
  canToggleSearch: true,