@deephaven/iris-grid 1.22.1 → 1.22.2-alpha-pivot-builder.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +284 -1
- package/dist/AdvancedFilterCreator.js +65 -102
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js +6 -8
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js +22 -28
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.d.ts +62 -2
- package/dist/CommonTypes.d.ts.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.js +20 -29
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.js +19 -46
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js +32 -29
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.d.ts +85 -2
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +709 -861
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js +10 -11
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js +28 -8
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +30 -13
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js +6 -12
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +28 -47
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js +28 -51
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +30 -1
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +36 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +32 -30
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridModelWidgetProps.d.ts +26 -0
- package/dist/IrisGridModelWidgetProps.d.ts.map +1 -0
- package/dist/IrisGridModelWidgetProps.js +2 -0
- package/dist/IrisGridModelWidgetProps.js.map +1 -0
- package/dist/IrisGridPartitionSelector.js +28 -62
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +41 -14
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +162 -264
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.js +23 -16
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +49 -73
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js +19 -19
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.d.ts.map +1 -1
- package/dist/IrisGridTextCellRenderer.js +36 -53
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js +9 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.js +5 -7
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js +5 -9
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +25 -2
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +297 -294
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +1 -1
- package/dist/NoPastePermissionModal.js +3 -5
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PendingDataBottomBar.js +27 -16
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js +16 -8
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +11 -24
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +1 -3
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +1 -3
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +10 -18
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +45 -102
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +35 -77
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +9 -11
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.js +17 -24
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts +22 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts.map +1 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js +2 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js.map +1 -0
- package/dist/sidebar/OptionType.d.ts +8 -0
- package/dist/sidebar/OptionType.d.ts.map +1 -1
- package/dist/sidebar/OptionType.js +7 -0
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts +30 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts.map +1 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js +55 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -0
- package/dist/sidebar/RollupRows.js +72 -113
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +16 -33
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +50 -74
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js +18 -42
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +1 -3
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +45 -34
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/index.d.ts +3 -2
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
package/dist/IrisGrid.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
2
8
|
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
3
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -42,6 +48,7 @@ import IrisGridModel from "./IrisGridModel.js";
|
|
|
42
48
|
import { isPartitionedGridModel } from "./PartitionedGridModel.js";
|
|
43
49
|
import IrisGridPartitionSelector from "./IrisGridPartitionSelector.js";
|
|
44
50
|
import SelectDistinctBuilder from "./sidebar/SelectDistinctBuilder.js";
|
|
51
|
+
import PluginTableOptionsErrorBoundary from "./sidebar/PluginTableOptionsErrorBoundary.js";
|
|
45
52
|
import AdvancedSettingsType from "./sidebar/AdvancedSettingsType.js";
|
|
46
53
|
import AdvancedSettingsMenu from "./sidebar/AdvancedSettingsMenu.js";
|
|
47
54
|
import SHORTCUTS from "./IrisGridShortcuts.js";
|
|
@@ -49,7 +56,6 @@ import ConditionalFormattingMenu from "./sidebar/conditional-formatting/Conditio
|
|
|
49
56
|
import ConditionalFormatEditor from "./sidebar/conditional-formatting/ConditionalFormatEditor.js";
|
|
50
57
|
import IrisGridCellOverflowModal from "./IrisGridCellOverflowModal.js";
|
|
51
58
|
import GotoRow from "./GotoRow.js";
|
|
52
|
-
import AggregationOperation from "./sidebar/aggregations/AggregationOperation.js";
|
|
53
59
|
import { IrisGridThemeContext } from "./IrisGridThemeProvider.js";
|
|
54
60
|
import { isMissingPartitionError } from "./MissingPartitionError.js";
|
|
55
61
|
import { NoPastePermissionModal } from "./NoPastePermissionModal.js";
|
|
@@ -67,19 +73,28 @@ var DEFAULT_AGGREGATION_SETTINGS = Object.freeze({
|
|
|
67
73
|
});
|
|
68
74
|
var UNFORMATTED_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS z";
|
|
69
75
|
function isEmptyConfig(_ref) {
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
sorts
|
|
80
|
-
} = _ref;
|
|
76
|
+
var advancedFilters = _ref.advancedFilters,
|
|
77
|
+
aggregationSettings = _ref.aggregationSettings,
|
|
78
|
+
customColumns = _ref.customColumns,
|
|
79
|
+
quickFilters = _ref.quickFilters,
|
|
80
|
+
reverse = _ref.reverse,
|
|
81
|
+
rollupConfig = _ref.rollupConfig,
|
|
82
|
+
searchFilter = _ref.searchFilter,
|
|
83
|
+
selectDistinctColumns = _ref.selectDistinctColumns,
|
|
84
|
+
sorts = _ref.sorts;
|
|
81
85
|
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;
|
|
82
86
|
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The subset of `IrisGridProps` that overrides how the grid presents its
|
|
90
|
+
* model: theme, canvas renderer, extra mouse handlers, and the metric
|
|
91
|
+
* calculator factory. Hosts that render `<IrisGrid>` on behalf of a plugin
|
|
92
|
+
* (e.g. `GridWidgetPlugin`) accept this as a single passthrough bag so they
|
|
93
|
+
* don't need to know each view concern by name, and plugins build it from
|
|
94
|
+
* their own hooks. Kept as a `Pick` (not `Partial<IrisGridProps>`) so it can
|
|
95
|
+
* never clobber structural props like `model` or `ref`.
|
|
96
|
+
*/
|
|
97
|
+
|
|
83
98
|
class IrisGrid extends Component {
|
|
84
99
|
constructor(props) {
|
|
85
100
|
var _model$layoutHints, _model$columns$0$name, _model$columns$;
|
|
@@ -117,6 +132,13 @@ class IrisGrid extends Component {
|
|
|
117
132
|
_defineProperty(this, "tableUtils", void 0);
|
|
118
133
|
_defineProperty(this, "keyHandlers", void 0);
|
|
119
134
|
_defineProperty(this, "mouseHandlers", void 0);
|
|
135
|
+
/**
|
|
136
|
+
* The metric calculator factory most recently used to instantiate the
|
|
137
|
+
* calculator currently stored in state. Used by `maybeRebuildMetricCalculator`
|
|
138
|
+
* (called from `componentDidUpdate` when the `getMetricCalculator` prop
|
|
139
|
+
* changes) to detect when a different factory is supplied and rebuild.
|
|
140
|
+
*/
|
|
141
|
+
_defineProperty(this, "lastMetricCalculatorFactory", void 0);
|
|
120
142
|
_defineProperty(this, "slideTransitionRef", /*#__PURE__*/React.createRef());
|
|
121
143
|
_defineProperty(this, "bottomTransitionRef", /*#__PURE__*/React.createRef());
|
|
122
144
|
_defineProperty(this, "getAdvancedMenuOpenedHandler", memoize(column => this.handleAdvancedMenuOpened.bind(this, column), {
|
|
@@ -146,63 +168,72 @@ class IrisGrid extends Component {
|
|
|
146
168
|
optionItems.push({
|
|
147
169
|
type: OptionType.CHART_BUILDER,
|
|
148
170
|
title: 'Chart Builder',
|
|
149
|
-
icon: dhGraphLineUp
|
|
171
|
+
icon: dhGraphLineUp,
|
|
172
|
+
order: 100
|
|
150
173
|
});
|
|
151
174
|
}
|
|
152
175
|
if (isOrganizeColumnsAvailable) {
|
|
153
176
|
optionItems.push({
|
|
154
177
|
type: OptionType.VISIBILITY_ORDERING_BUILDER,
|
|
155
178
|
title: 'Organize Columns',
|
|
156
|
-
icon: dhEye
|
|
179
|
+
icon: dhEye,
|
|
180
|
+
order: 200
|
|
157
181
|
});
|
|
158
182
|
}
|
|
159
183
|
if (isFormatColumnsAvailable) {
|
|
160
184
|
optionItems.push({
|
|
161
185
|
type: OptionType.CONDITIONAL_FORMATTING,
|
|
162
186
|
title: 'Conditional Formatting',
|
|
163
|
-
icon: vsEdit
|
|
187
|
+
icon: vsEdit,
|
|
188
|
+
order: 300
|
|
164
189
|
});
|
|
165
190
|
}
|
|
166
191
|
if (isCustomColumnsAvailable) {
|
|
167
192
|
optionItems.push({
|
|
168
193
|
type: OptionType.CUSTOM_COLUMN_BUILDER,
|
|
169
194
|
title: 'Custom Columns',
|
|
170
|
-
icon: vsSplitHorizontal
|
|
195
|
+
icon: vsSplitHorizontal,
|
|
196
|
+
order: 400
|
|
171
197
|
});
|
|
172
198
|
}
|
|
173
199
|
if (isRollupAvailable) {
|
|
174
200
|
optionItems.push({
|
|
175
201
|
type: OptionType.ROLLUP_ROWS,
|
|
176
202
|
title: 'Rollup Rows',
|
|
177
|
-
icon: dhTriangleDownSquare
|
|
203
|
+
icon: dhTriangleDownSquare,
|
|
204
|
+
order: 500
|
|
178
205
|
});
|
|
179
206
|
}
|
|
180
207
|
if (isTotalsAvailable) {
|
|
181
208
|
optionItems.push({
|
|
182
209
|
type: OptionType.AGGREGATIONS,
|
|
183
210
|
title: 'Aggregate Columns',
|
|
184
|
-
icon: vsSymbolOperator
|
|
211
|
+
icon: vsSymbolOperator,
|
|
212
|
+
order: 600
|
|
185
213
|
});
|
|
186
214
|
}
|
|
187
215
|
if (isSelectDistinctAvailable) {
|
|
188
216
|
optionItems.push({
|
|
189
217
|
type: OptionType.SELECT_DISTINCT,
|
|
190
218
|
title: 'Select Distinct Values',
|
|
191
|
-
icon: vsRuby
|
|
219
|
+
icon: vsRuby,
|
|
220
|
+
order: 700
|
|
192
221
|
});
|
|
193
222
|
}
|
|
194
223
|
if (isExportAvailable && canDownloadCsv) {
|
|
195
224
|
optionItems.push({
|
|
196
225
|
type: OptionType.TABLE_EXPORTER,
|
|
197
226
|
title: 'Download CSV',
|
|
198
|
-
icon: vsCloudDownload
|
|
227
|
+
icon: vsCloudDownload,
|
|
228
|
+
order: 800
|
|
199
229
|
});
|
|
200
230
|
}
|
|
201
231
|
if (hasAdvancedSettings) {
|
|
202
232
|
optionItems.push({
|
|
203
233
|
type: OptionType.ADVANCED_SETTINGS,
|
|
204
234
|
title: 'Advanced Settings',
|
|
205
|
-
icon: vsTools
|
|
235
|
+
icon: vsTools,
|
|
236
|
+
order: 900
|
|
206
237
|
});
|
|
207
238
|
}
|
|
208
239
|
optionItems.push({
|
|
@@ -211,7 +242,8 @@ class IrisGrid extends Component {
|
|
|
211
242
|
subtitle: toggleFilterBarAction.shortcut.getDisplayText(),
|
|
212
243
|
icon: vsFilter,
|
|
213
244
|
isOn: isFilterBarShown,
|
|
214
|
-
onChange: toggleFilterBarAction.action
|
|
245
|
+
onChange: toggleFilterBarAction.action,
|
|
246
|
+
order: 1000
|
|
215
247
|
});
|
|
216
248
|
if (canToggleSearch) {
|
|
217
249
|
optionItems.push({
|
|
@@ -220,7 +252,8 @@ class IrisGrid extends Component {
|
|
|
220
252
|
subtitle: toggleSearchBarAction.shortcut.getDisplayText(),
|
|
221
253
|
icon: vsSearch,
|
|
222
254
|
isOn: showSearchBar,
|
|
223
|
-
onChange: toggleSearchBarAction.action
|
|
255
|
+
onChange: toggleSearchBarAction.action,
|
|
256
|
+
order: 1100
|
|
224
257
|
});
|
|
225
258
|
}
|
|
226
259
|
optionItems.push({
|
|
@@ -229,48 +262,76 @@ class IrisGrid extends Component {
|
|
|
229
262
|
subtitle: toggleGotoRowAction.shortcut.getDisplayText(),
|
|
230
263
|
icon: vsReply,
|
|
231
264
|
isOn: showGotoRow,
|
|
232
|
-
onChange: toggleGotoRowAction.action
|
|
265
|
+
onChange: toggleGotoRowAction.action,
|
|
266
|
+
order: 1200
|
|
233
267
|
});
|
|
234
268
|
return Object.freeze(optionItems);
|
|
235
269
|
}, {
|
|
236
270
|
max: 1
|
|
237
271
|
}));
|
|
272
|
+
/**
|
|
273
|
+
* Apply the `transformTableOptions` transform (if any) to the
|
|
274
|
+
* default option list.
|
|
275
|
+
* Catches exceptions so a buggy plugin can't break the grid,
|
|
276
|
+
* and warns about duplicate `type` collisions.
|
|
277
|
+
*/
|
|
278
|
+
_defineProperty(this, "getCachedTransformedOptionItems", memoize((items, transformTableOptions) => {
|
|
279
|
+
if (transformTableOptions == null) {
|
|
280
|
+
return items;
|
|
281
|
+
}
|
|
282
|
+
var transformedItems;
|
|
283
|
+
try {
|
|
284
|
+
transformedItems = transformTableOptions(items);
|
|
285
|
+
} catch (err) {
|
|
286
|
+
log.error('transformTableOptions threw an error; falling back to defaults.', err);
|
|
287
|
+
return items;
|
|
288
|
+
}
|
|
289
|
+
// Stably sort by ascending `order`. Items without an `order` sink to
|
|
290
|
+
// the end of the menu (default `Infinity`), while items with an `order`
|
|
291
|
+
// are positioned by their weight. Decorate-sort-undecorate guarantees
|
|
292
|
+
// stability regardless of the engine's sort implementation.
|
|
293
|
+
var sortedItems = transformedItems.map((item, index) => ({
|
|
294
|
+
item,
|
|
295
|
+
index
|
|
296
|
+
})).sort((a, b) => {
|
|
297
|
+
var _a$item$order, _b$item$order;
|
|
298
|
+
return ((_a$item$order = a.item.order) !== null && _a$item$order !== void 0 ? _a$item$order : Infinity) - ((_b$item$order = b.item.order) !== null && _b$item$order !== void 0 ? _b$item$order : Infinity) || a.index - b.index;
|
|
299
|
+
}).map(_ref2 => {
|
|
300
|
+
var item = _ref2.item;
|
|
301
|
+
return item;
|
|
302
|
+
});
|
|
303
|
+
var keys = new Set();
|
|
304
|
+
for (var i = 0; i < sortedItems.length; i += 1) {
|
|
305
|
+
var key = String(sortedItems[i].type);
|
|
306
|
+
if (keys.has(key)) {
|
|
307
|
+
log.warn("transformTableOptions produced duplicate type \"".concat(key, "\"; ") + 'only the first entry will be accessible from the menu.');
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
keys.add(key);
|
|
311
|
+
}
|
|
312
|
+
return Object.freeze(sortedItems);
|
|
313
|
+
}, {
|
|
314
|
+
max: 1
|
|
315
|
+
}));
|
|
238
316
|
_defineProperty(this, "getCachedHiddenColumns", memoize((metricCalculator, userColumnWidths) => IrisGridUtils.getHiddenColumns(new Map([...metricCalculator.initialColumnWidths, ...userColumnWidths])), {
|
|
239
317
|
max: 1
|
|
240
318
|
}));
|
|
241
319
|
_defineProperty(this, "getAggregationMap", memoize((columns, aggregations) => {
|
|
242
320
|
var aggregationMap = {};
|
|
243
|
-
aggregations.forEach(
|
|
244
|
-
var
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
invert
|
|
248
|
-
} = _ref2;
|
|
321
|
+
aggregations.forEach(_ref3 => {
|
|
322
|
+
var operation = _ref3.operation,
|
|
323
|
+
selected = _ref3.selected,
|
|
324
|
+
invert = _ref3.invert;
|
|
249
325
|
aggregationMap[operation] = AggregationUtils.getOperationColumnNames(columns, operation, selected, invert);
|
|
250
326
|
});
|
|
251
327
|
return aggregationMap;
|
|
252
328
|
}, {
|
|
253
329
|
max: 1
|
|
254
330
|
}));
|
|
255
|
-
_defineProperty(this, "getOperationMap", memoize((columns, aggregations) => {
|
|
256
|
-
var operationMap = {};
|
|
257
|
-
aggregations.filter(a => !AggregationUtils.isRollupOperation(a.operation)).forEach(_ref3 => {
|
|
258
|
-
var {
|
|
259
|
-
operation,
|
|
260
|
-
selected,
|
|
261
|
-
invert
|
|
262
|
-
} = _ref3;
|
|
263
|
-
AggregationUtils.getOperationColumnNames(columns, operation, selected, invert).forEach(name => {
|
|
264
|
-
var _operationMap$name;
|
|
265
|
-
var newOperations = [...((_operationMap$name = operationMap[name]) !== null && _operationMap$name !== void 0 ? _operationMap$name : []), operation];
|
|
266
|
-
operationMap[name] = Object.freeze(newOperations);
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
return operationMap;
|
|
270
|
-
}, {
|
|
331
|
+
_defineProperty(this, "getOperationMap", memoize((columns, aggregations) => IrisGridUtils.getOperationMap(columns, aggregations), {
|
|
271
332
|
max: 1
|
|
272
333
|
}));
|
|
273
|
-
_defineProperty(this, "getOperationOrder", memoize(aggregations =>
|
|
334
|
+
_defineProperty(this, "getOperationOrder", memoize(aggregations => IrisGridUtils.getOperationOrder(aggregations), {
|
|
274
335
|
max: 1
|
|
275
336
|
}));
|
|
276
337
|
_defineProperty(this, "getCachedFormatColumns", memoize((dh, columns, rules) => getFormatColumns(dh, columns, rules), {
|
|
@@ -298,28 +359,7 @@ class IrisGrid extends Component {
|
|
|
298
359
|
_defineProperty(this, "getModelRollupConfig", memoize((originalColumns, config, aggregationSettings) => IrisGridUtils.getModelRollupConfig(originalColumns, config, aggregationSettings), {
|
|
299
360
|
max: 1
|
|
300
361
|
}));
|
|
301
|
-
_defineProperty(this, "getModelTotalsConfig", memoize((columns, config, aggregationSettings) => {
|
|
302
|
-
var _config$columns$lengt, _config$columns;
|
|
303
|
-
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) {
|
|
304
|
-
// If we've got rollups, then aggregations are applied as part of that...
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
// Filter out aggregations without any columns actually selected
|
|
309
|
-
var aggregations = aggregationSettings.aggregations.filter(agg => agg.selected.length > 0 || agg.invert);
|
|
310
|
-
if (aggregations.length === 0) {
|
|
311
|
-
// We don't actually have any aggregations set, don't bother
|
|
312
|
-
return null;
|
|
313
|
-
}
|
|
314
|
-
var operationMap = this.getOperationMap(columns, aggregations);
|
|
315
|
-
var operationOrder = this.getOperationOrder(aggregations);
|
|
316
|
-
return {
|
|
317
|
-
operationMap,
|
|
318
|
-
operationOrder,
|
|
319
|
-
showOnTop: aggregationSettings.showOnTop,
|
|
320
|
-
defaultOperation: AggregationOperation.SKIP
|
|
321
|
-
};
|
|
322
|
-
}, {
|
|
362
|
+
_defineProperty(this, "getModelTotalsConfig", memoize((columns, config, aggregationSettings) => IrisGridUtils.getModelTotalsConfig(columns, config, aggregationSettings), {
|
|
323
363
|
max: 1
|
|
324
364
|
}));
|
|
325
365
|
_defineProperty(this, "getCachedStateOverride", memoize((model, theme, hoverSelectColumn, isFilterBarShown, isSelectingColumn, loadingScrimProgress, quickFilters, advancedFilters, sorts, reverse, rollupConfig, isMenuShown) => ({
|
|
@@ -349,9 +389,7 @@ class IrisGrid extends Component {
|
|
|
349
389
|
|
|
350
390
|
// We only show the row footers when we have floating rows for aggregations
|
|
351
391
|
var rowFooterWidth = floatingRowCount > 0 ? (_theme$rowFooterWidth = theme === null || theme === void 0 ? void 0 : theme.rowFooterWidth) !== null && _theme$rowFooterWidth !== void 0 ? _theme$rowFooterWidth : baseTheme.rowFooterWidth : 0;
|
|
352
|
-
var
|
|
353
|
-
metricCalculator
|
|
354
|
-
} = this.state;
|
|
392
|
+
var metricCalculator = this.state.metricCalculator;
|
|
355
393
|
if (metricCalculator != null) {
|
|
356
394
|
metricCalculator.resetCalculatedColumnWidths();
|
|
357
395
|
metricCalculator.resetCalculatedRowHeights();
|
|
@@ -372,7 +410,7 @@ class IrisGrid extends Component {
|
|
|
372
410
|
_defineProperty(this, "getCachedKeyHandlers", memoize(keyHandlers => [...keyHandlers, ...this.keyHandlers].sort((a, b) => a.order - b.order), {
|
|
373
411
|
max: 1
|
|
374
412
|
}));
|
|
375
|
-
_defineProperty(this, "getCachedMouseHandlers", memoize(
|
|
413
|
+
_defineProperty(this, "getCachedMouseHandlers", memoize(mouseHandlersProp => [...mouseHandlersProp, ...this.mouseHandlers].map(handler => typeof handler === 'function' ? handler(this) : handler), {
|
|
376
414
|
max: 1
|
|
377
415
|
}));
|
|
378
416
|
_defineProperty(this, "getCachedRenderer", memoize(rendererProp => rendererProp !== null && rendererProp !== void 0 ? rendererProp : new IrisGridRenderer(), {
|
|
@@ -397,21 +435,15 @@ class IrisGrid extends Component {
|
|
|
397
435
|
max: 1
|
|
398
436
|
}));
|
|
399
437
|
_defineProperty(this, "updateSearchFilter", debounce((searchValue, selectedSearchColumns, columns, invertSearchColumns) => {
|
|
400
|
-
var
|
|
401
|
-
model
|
|
402
|
-
} = this.props;
|
|
438
|
+
var model = this.props.model;
|
|
403
439
|
var searchFilter = CrossColumnSearch.createSearchFilter(model.dh, searchValue, selectedSearchColumns, columns, invertSearchColumns);
|
|
404
440
|
this.setState({
|
|
405
441
|
searchFilter
|
|
406
442
|
});
|
|
407
443
|
}, SET_FILTER_DEBOUNCE));
|
|
408
444
|
_defineProperty(this, "showViewportLoading", throttle(() => {
|
|
409
|
-
var
|
|
410
|
-
|
|
411
|
-
} = this.props;
|
|
412
|
-
var {
|
|
413
|
-
loadingSpinnerShown
|
|
414
|
-
} = this.state;
|
|
445
|
+
var model = this.props.model;
|
|
446
|
+
var loadingSpinnerShown = this.state.loadingSpinnerShown;
|
|
415
447
|
if (model.isViewportPending && !loadingSpinnerShown) {
|
|
416
448
|
// We only want to show the viewport loading if the viewport is still loading
|
|
417
449
|
// and we're not already showing a loader for something else
|
|
@@ -431,9 +463,7 @@ class IrisGrid extends Component {
|
|
|
431
463
|
});
|
|
432
464
|
}, SET_CONDITIONAL_FORMAT_DEBOUNCE));
|
|
433
465
|
_defineProperty(this, "handleDownloadProgressUpdate", throttle((tableDownloadProgress, tableDownloadEstimatedTime) => {
|
|
434
|
-
var
|
|
435
|
-
tableDownloadStatus
|
|
436
|
-
} = this.state;
|
|
466
|
+
var tableDownloadStatus = this.state.tableDownloadStatus;
|
|
437
467
|
if (tableDownloadStatus === TableCsvExporter.DOWNLOAD_STATUS.DOWNLOADING) {
|
|
438
468
|
this.setState({
|
|
439
469
|
tableDownloadProgress,
|
|
@@ -473,12 +503,8 @@ class IrisGrid extends Component {
|
|
|
473
503
|
if (expandCellTooltipProps == null) {
|
|
474
504
|
return null;
|
|
475
505
|
}
|
|
476
|
-
var
|
|
477
|
-
|
|
478
|
-
} = this.state;
|
|
479
|
-
var {
|
|
480
|
-
model
|
|
481
|
-
} = this.props;
|
|
506
|
+
var expandTooltipDisplayValue = this.state.expandTooltipDisplayValue;
|
|
507
|
+
var model = this.props.model;
|
|
482
508
|
var isExpandAllAvailable = isExpandableGridModel(model) && model.isExpandAllAvailable;
|
|
483
509
|
var wrapperStyle = _objectSpread(_objectSpread({
|
|
484
510
|
position: 'absolute'
|
|
@@ -510,9 +536,7 @@ class IrisGrid extends Component {
|
|
|
510
536
|
if (hoverTooltipProps == null) {
|
|
511
537
|
return null;
|
|
512
538
|
}
|
|
513
|
-
var
|
|
514
|
-
hoverDisplayValue
|
|
515
|
-
} = this.state;
|
|
539
|
+
var hoverDisplayValue = this.state.hoverDisplayValue;
|
|
516
540
|
var wrapperStyle = _objectSpread(_objectSpread({
|
|
517
541
|
position: 'absolute'
|
|
518
542
|
}, hoverTooltipProps), {}, {
|
|
@@ -571,11 +595,14 @@ class IrisGrid extends Component {
|
|
|
571
595
|
this.handleMenuSelect = this.handleMenuSelect.bind(this);
|
|
572
596
|
this.handleMenuBack = this.handleMenuBack.bind(this);
|
|
573
597
|
this.handleRequestFailed = this.handleRequestFailed.bind(this);
|
|
598
|
+
this.handlePending = this.handlePending.bind(this);
|
|
599
|
+
this.handlePendingCleared = this.handlePendingCleared.bind(this);
|
|
574
600
|
this.handleSelectionChanged = this.handleSelectionChanged.bind(this);
|
|
575
601
|
this.handleMovedColumnsChanged = this.handleMovedColumnsChanged.bind(this);
|
|
576
602
|
this.handleHeaderGroupsChanged = this.handleHeaderGroupsChanged.bind(this);
|
|
577
603
|
this.handleUpdate = this.handleUpdate.bind(this);
|
|
578
604
|
this.handleTableChanged = this.handleTableChanged.bind(this);
|
|
605
|
+
this.handleModelChanged = this.handleModelChanged.bind(this);
|
|
579
606
|
this.handleTooltipRef = this.handleTooltipRef.bind(this);
|
|
580
607
|
this.handleViewChanged = this.handleViewChanged.bind(this);
|
|
581
608
|
this.handleFormatSelection = this.handleFormatSelection.bind(this);
|
|
@@ -648,9 +675,7 @@ class IrisGrid extends Component {
|
|
|
648
675
|
};
|
|
649
676
|
this.discardAction = {
|
|
650
677
|
action: () => {
|
|
651
|
-
var
|
|
652
|
-
model
|
|
653
|
-
} = this.props;
|
|
678
|
+
var model = this.props.model;
|
|
654
679
|
if (isEditableGridModel(model) && model.isEditable && model.pendingDataMap.size > 0) {
|
|
655
680
|
this.discardPending().catch(log.error);
|
|
656
681
|
}
|
|
@@ -659,9 +684,7 @@ class IrisGrid extends Component {
|
|
|
659
684
|
};
|
|
660
685
|
this.commitAction = {
|
|
661
686
|
action: () => {
|
|
662
|
-
var
|
|
663
|
-
model
|
|
664
|
-
} = this.props;
|
|
687
|
+
var model = this.props.model;
|
|
665
688
|
if (isEditableGridModel(model) && model.isEditable && model.pendingDataMap.size > 0 && model.pendingDataErrors.size === 0) {
|
|
666
689
|
this.commitPending().catch(log.error);
|
|
667
690
|
}
|
|
@@ -669,56 +692,56 @@ class IrisGrid extends Component {
|
|
|
669
692
|
shortcut: SHORTCUTS.INPUT_TABLE.COMMIT
|
|
670
693
|
};
|
|
671
694
|
this.contextActions = [this.toggleFilterBarAction, this.toggleSearchBarAction, this.toggleGotoRowAction, this.discardAction, this.commitAction];
|
|
672
|
-
var
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
} = props;
|
|
701
|
-
var {
|
|
702
|
-
dh: _dh
|
|
703
|
-
} = _model;
|
|
695
|
+
var _aggregationSettings = props.aggregationSettings,
|
|
696
|
+
conditionalFormats = props.conditionalFormats,
|
|
697
|
+
customColumnFormatMap = props.customColumnFormatMap,
|
|
698
|
+
columnAlignmentMap = props.columnAlignmentMap,
|
|
699
|
+
_isFilterBarShown = props.isFilterBarShown,
|
|
700
|
+
isSelectingPartition = props.isSelectingPartition,
|
|
701
|
+
partitions = props.partitions,
|
|
702
|
+
partitionConfig = props.partitionConfig,
|
|
703
|
+
_model = props.model,
|
|
704
|
+
movedColumnsProp = props.movedColumns,
|
|
705
|
+
movedRowsProp = props.movedRows,
|
|
706
|
+
_rollupConfig = props.rollupConfig,
|
|
707
|
+
_userColumnWidths = props.userColumnWidths,
|
|
708
|
+
userColumnWidthsByName = props.userColumnWidthsByName,
|
|
709
|
+
userRowHeights = props.userRowHeights,
|
|
710
|
+
_showSearchBar = props.showSearchBar,
|
|
711
|
+
_searchValue = props.searchValue,
|
|
712
|
+
_selectedSearchColumns = props.selectedSearchColumns,
|
|
713
|
+
_invertSearchColumns = props.invertSearchColumns,
|
|
714
|
+
_advancedFilters = props.advancedFilters,
|
|
715
|
+
_quickFilters = props.quickFilters,
|
|
716
|
+
selectDistinctColumns = props.selectDistinctColumns,
|
|
717
|
+
pendingDataMap = props.pendingDataMap,
|
|
718
|
+
canCopy = props.canCopy,
|
|
719
|
+
frozenColumns = props.frozenColumns,
|
|
720
|
+
columnHeaderGroups = props.columnHeaderGroups,
|
|
721
|
+
getMetricCalculator = props.getMetricCalculator;
|
|
722
|
+
var _dh = _model.dh;
|
|
704
723
|
var _keyHandlers = [new CopyCellKeyHandler(this), new ReverseKeyHandler(this), new ClearFilterKeyHandler(this)];
|
|
705
|
-
var
|
|
724
|
+
var mouseHandlers = [new IrisGridCellOverflowMouseHandler(this), new IrisGridRowTreeMouseHandler(this), new IrisGridTokenMouseHandler(this), new IrisGridColumnSelectMouseHandler(this), new IrisGridColumnTooltipMouseHandler(this), new IrisGridSortMouseHandler(this), new IrisGridFilterMouseHandler(this), new IrisGridContextMenuHandler(this, _dh), new IrisGridDataSelectMouseHandler(this), new PendingMouseHandler(this), new IrisGridPartitionedTableMouseHandler(this), ...(canCopy ? [new IrisGridCopyCellMouseHandler(this)] : [])];
|
|
706
725
|
if (canCopy) {
|
|
707
726
|
_keyHandlers.push(new CopyKeyHandler(this));
|
|
708
727
|
}
|
|
709
728
|
var _movedColumns = movedColumnsProp.length > 0 ? movedColumnsProp : _model.initialMovedColumns;
|
|
710
729
|
var movedRows = movedRowsProp.length > 0 ? movedRowsProp : _model.initialMovedRows;
|
|
711
|
-
var
|
|
730
|
+
var metricCalculatorFactory = getMetricCalculator;
|
|
731
|
+
var _metricCalculator = metricCalculatorFactory({
|
|
712
732
|
userColumnWidths: new Map(_userColumnWidths),
|
|
713
733
|
userColumnWidthsByName: userColumnWidthsByName != null ? new Map(userColumnWidthsByName) : undefined,
|
|
714
734
|
userRowHeights: new Map(userRowHeights),
|
|
715
735
|
movedColumns: _movedColumns,
|
|
716
736
|
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]))
|
|
717
737
|
});
|
|
738
|
+
// Remember the factory we used so we can detect a model-driven swap
|
|
739
|
+
// (e.g. pivot-builder's proxy swapping its inner model) on COLUMNS_CHANGED.
|
|
740
|
+
this.lastMetricCalculatorFactory = metricCalculatorFactory;
|
|
718
741
|
var searchColumns = _selectedSearchColumns !== null && _selectedSearchColumns !== void 0 ? _selectedSearchColumns : [];
|
|
719
742
|
var _searchFilter = CrossColumnSearch.createSearchFilter(_dh, _searchValue, searchColumns, _model.columns, _invertSearchColumns);
|
|
720
743
|
this.tableUtils = new TableUtils(_dh);
|
|
721
|
-
this.mouseHandlers =
|
|
744
|
+
this.mouseHandlers = mouseHandlers;
|
|
722
745
|
this.keyHandlers = _keyHandlers;
|
|
723
746
|
this.state = {
|
|
724
747
|
isFilterBarShown: _isFilterBarShown,
|
|
@@ -810,31 +833,38 @@ class IrisGrid extends Component {
|
|
|
810
833
|
};
|
|
811
834
|
}
|
|
812
835
|
componentDidMount() {
|
|
813
|
-
var
|
|
814
|
-
model
|
|
815
|
-
} = this.props;
|
|
836
|
+
var model = this.props.model;
|
|
816
837
|
this.initState();
|
|
817
838
|
this.startListening(model);
|
|
818
839
|
}
|
|
819
840
|
componentDidUpdate(prevProps, prevState) {
|
|
820
|
-
var
|
|
821
|
-
inputFilters,
|
|
822
|
-
isSelectingColumn,
|
|
823
|
-
settings,
|
|
824
|
-
model,
|
|
825
|
-
customFilters,
|
|
826
|
-
sorts
|
|
827
|
-
|
|
841
|
+
var _this$props = this.props,
|
|
842
|
+
inputFilters = _this$props.inputFilters,
|
|
843
|
+
isSelectingColumn = _this$props.isSelectingColumn,
|
|
844
|
+
settings = _this$props.settings,
|
|
845
|
+
model = _this$props.model,
|
|
846
|
+
customFilters = _this$props.customFilters,
|
|
847
|
+
sorts = _this$props.sorts,
|
|
848
|
+
getMetricCalculator = _this$props.getMetricCalculator;
|
|
828
849
|
if (model !== prevProps.model) {
|
|
829
850
|
this.stopListening(prevProps.model);
|
|
830
851
|
this.startListening(model);
|
|
831
852
|
}
|
|
853
|
+
|
|
854
|
+
// The renderer and mouse handlers flow through memoized getters in
|
|
855
|
+
// render(), so a `renderer` / `mouseHandlers` prop change naturally
|
|
856
|
+
// propagates on the next render. The metric calculator, however, lives in
|
|
857
|
+
// component state, so mirror that path when the `getMetricCalculator` prop
|
|
858
|
+
// changes (e.g. the pivot-builder middleware swapping the pivot factory in
|
|
859
|
+
// or out) so the calculator stays in sync. Moved columns are not touched
|
|
860
|
+
// here — a model swap resets them via `handleModelChanged`.
|
|
861
|
+
if (getMetricCalculator !== prevProps.getMetricCalculator) {
|
|
862
|
+
this.maybeRebuildMetricCalculator();
|
|
863
|
+
}
|
|
832
864
|
var changedInputFilters = inputFilters !== prevProps.inputFilters ? inputFilters.filter(inputFilter => !prevProps.inputFilters.includes(inputFilter)) : [];
|
|
833
865
|
if (changedInputFilters.length > 0) {
|
|
834
866
|
var _advancedSettings$get;
|
|
835
|
-
var
|
|
836
|
-
advancedSettings
|
|
837
|
-
} = this.props;
|
|
867
|
+
var advancedSettings = this.props.advancedSettings;
|
|
838
868
|
var replaceExistingFilters = (_advancedSettings$get = advancedSettings.get(AdvancedSettingsType.FILTER_CONTROL_CHANGE_CLEARS_ALL_FILTERS)) !== null && _advancedSettings$get !== void 0 ? _advancedSettings$get : false;
|
|
839
869
|
if (replaceExistingFilters) {
|
|
840
870
|
this.clearGridInputField();
|
|
@@ -861,10 +891,8 @@ class IrisGrid extends Component {
|
|
|
861
891
|
if (sorts !== prevProps.sorts) {
|
|
862
892
|
this.updateSorts(sorts);
|
|
863
893
|
}
|
|
864
|
-
var
|
|
865
|
-
|
|
866
|
-
loadingScrimFinishTime
|
|
867
|
-
} = this;
|
|
894
|
+
var loadingScrimStartTime = this.loadingScrimStartTime,
|
|
895
|
+
loadingScrimFinishTime = this.loadingScrimFinishTime;
|
|
868
896
|
if (loadingScrimStartTime != null && loadingScrimFinishTime != null) {
|
|
869
897
|
window.requestAnimationFrame(() => {
|
|
870
898
|
var now = Date.now();
|
|
@@ -886,9 +914,7 @@ class IrisGrid extends Component {
|
|
|
886
914
|
});
|
|
887
915
|
});
|
|
888
916
|
}
|
|
889
|
-
var
|
|
890
|
-
openOptions
|
|
891
|
-
} = this.state;
|
|
917
|
+
var openOptions = this.state.openOptions;
|
|
892
918
|
if (openOptions !== prevState.openOptions) {
|
|
893
919
|
var isAggEditType = option => option.type === OptionType.AGGREGATION_EDIT;
|
|
894
920
|
if (!openOptions.some(isAggEditType) && prevState.openOptions.some(isAggEditType)) {
|
|
@@ -898,9 +924,7 @@ class IrisGrid extends Component {
|
|
|
898
924
|
this.sendStateChange();
|
|
899
925
|
}
|
|
900
926
|
componentWillUnmount() {
|
|
901
|
-
var
|
|
902
|
-
model
|
|
903
|
-
} = this.props;
|
|
927
|
+
var model = this.props.model;
|
|
904
928
|
this.stopListening(model);
|
|
905
929
|
this.pending.cancel();
|
|
906
930
|
this.updateSearchFilter.cancel();
|
|
@@ -918,9 +942,7 @@ class IrisGrid extends Component {
|
|
|
918
942
|
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;
|
|
919
943
|
}
|
|
920
944
|
getKeyHandlers() {
|
|
921
|
-
var
|
|
922
|
-
keyHandlers
|
|
923
|
-
} = this.props;
|
|
945
|
+
var keyHandlers = this.props.keyHandlers;
|
|
924
946
|
return this.getCachedKeyHandlers(keyHandlers);
|
|
925
947
|
}
|
|
926
948
|
getMetricState() {
|
|
@@ -929,52 +951,40 @@ class IrisGrid extends Component {
|
|
|
929
951
|
if (gridMetricState == null) {
|
|
930
952
|
return undefined;
|
|
931
953
|
}
|
|
932
|
-
var
|
|
933
|
-
advancedFilters,
|
|
934
|
-
hoverSelectColumn,
|
|
935
|
-
isFilterBarShown,
|
|
936
|
-
isMenuShown,
|
|
937
|
-
loadingScrimProgress,
|
|
938
|
-
quickFilters,
|
|
939
|
-
sorts,
|
|
940
|
-
reverse,
|
|
941
|
-
rollupConfig
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
isSelectingColumn
|
|
946
|
-
} = this.props;
|
|
954
|
+
var _this$state = this.state,
|
|
955
|
+
advancedFilters = _this$state.advancedFilters,
|
|
956
|
+
hoverSelectColumn = _this$state.hoverSelectColumn,
|
|
957
|
+
isFilterBarShown = _this$state.isFilterBarShown,
|
|
958
|
+
isMenuShown = _this$state.isMenuShown,
|
|
959
|
+
loadingScrimProgress = _this$state.loadingScrimProgress,
|
|
960
|
+
quickFilters = _this$state.quickFilters,
|
|
961
|
+
sorts = _this$state.sorts,
|
|
962
|
+
reverse = _this$state.reverse,
|
|
963
|
+
rollupConfig = _this$state.rollupConfig;
|
|
964
|
+
var _this$props2 = this.props,
|
|
965
|
+
model = _this$props2.model,
|
|
966
|
+
isSelectingColumn = _this$props2.isSelectingColumn;
|
|
947
967
|
return _objectSpread(_objectSpread({}, gridMetricState), this.getCachedStateOverride(model, this.getTheme(), hoverSelectColumn, isFilterBarShown, isSelectingColumn, loadingScrimProgress, quickFilters, advancedFilters, sorts, reverse, rollupConfig, isMenuShown));
|
|
948
968
|
}
|
|
949
969
|
get renderer() {
|
|
950
|
-
var
|
|
951
|
-
renderer
|
|
952
|
-
} = this.props;
|
|
970
|
+
var renderer = this.props.renderer;
|
|
953
971
|
return this.getCachedRenderer(renderer);
|
|
954
972
|
}
|
|
955
973
|
getMouseHandlers() {
|
|
956
|
-
var
|
|
957
|
-
mouseHandlers
|
|
958
|
-
} = this.props;
|
|
974
|
+
var mouseHandlers = this.props.mouseHandlers;
|
|
959
975
|
return this.getCachedMouseHandlers(mouseHandlers);
|
|
960
976
|
}
|
|
961
977
|
getValueForCell(columnIndex, rowIndex) {
|
|
962
978
|
var rawValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
963
|
-
var
|
|
964
|
-
|
|
965
|
-
} = this.props;
|
|
966
|
-
var {
|
|
967
|
-
dh
|
|
968
|
-
} = model;
|
|
979
|
+
var model = this.props.model;
|
|
980
|
+
var dh = model.dh;
|
|
969
981
|
var modelColumn = this.getModelColumn(columnIndex);
|
|
970
982
|
var modelRow = this.getModelRow(rowIndex);
|
|
971
983
|
if (rawValue && modelColumn != null && modelRow != null) {
|
|
972
984
|
var value = model.valueForCell(modelColumn, modelRow);
|
|
973
985
|
if (TableUtils.isDateType(model.columns[modelColumn].type)) {
|
|
974
986
|
// The returned value is just a long value, we should return the value formatted as a full date string
|
|
975
|
-
var
|
|
976
|
-
formatter
|
|
977
|
-
} = model;
|
|
987
|
+
var formatter = model.formatter;
|
|
978
988
|
return dh.i18n.DateTimeFormat.format(UNFORMATTED_DATE_PATTERN, value, dh.i18n.TimeZone.getTimeZone(formatter.timeZone));
|
|
979
989
|
}
|
|
980
990
|
return value;
|
|
@@ -994,13 +1004,9 @@ class IrisGrid extends Component {
|
|
|
994
1004
|
* @returns Model column index, or null if not found
|
|
995
1005
|
*/
|
|
996
1006
|
getModelColumn(columnIndex) {
|
|
997
|
-
var
|
|
998
|
-
metrics
|
|
999
|
-
} = this.state;
|
|
1007
|
+
var metrics = this.state.metrics;
|
|
1000
1008
|
assertNotNull(metrics);
|
|
1001
|
-
var
|
|
1002
|
-
modelColumns
|
|
1003
|
-
} = metrics;
|
|
1009
|
+
var modelColumns = metrics.modelColumns;
|
|
1004
1010
|
if (modelColumns == null) {
|
|
1005
1011
|
return null;
|
|
1006
1012
|
}
|
|
@@ -1011,13 +1017,9 @@ class IrisGrid extends Component {
|
|
|
1011
1017
|
return columnIndex != null ? modelColumns.get(columnIndex) : null;
|
|
1012
1018
|
}
|
|
1013
1019
|
getModelRow(rowIndex) {
|
|
1014
|
-
var
|
|
1015
|
-
metrics
|
|
1016
|
-
} = this.state;
|
|
1020
|
+
var metrics = this.state.metrics;
|
|
1017
1021
|
assertNotNull(metrics);
|
|
1018
|
-
var
|
|
1019
|
-
modelRows
|
|
1020
|
-
} = metrics;
|
|
1022
|
+
var modelRows = metrics.modelRows;
|
|
1021
1023
|
if (modelRows == null) {
|
|
1022
1024
|
return null;
|
|
1023
1025
|
}
|
|
@@ -1025,21 +1027,17 @@ class IrisGrid extends Component {
|
|
|
1025
1027
|
}
|
|
1026
1028
|
getTheme() {
|
|
1027
1029
|
var _ref4;
|
|
1028
|
-
var
|
|
1029
|
-
model,
|
|
1030
|
-
theme,
|
|
1031
|
-
density
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
density: contextDensity
|
|
1036
|
-
} = this.context;
|
|
1030
|
+
var _this$props3 = this.props,
|
|
1031
|
+
model = _this$props3.model,
|
|
1032
|
+
theme = _this$props3.theme,
|
|
1033
|
+
density = _this$props3.density;
|
|
1034
|
+
var _this$context = this.context,
|
|
1035
|
+
contextTheme = _this$context.theme,
|
|
1036
|
+
contextDensity = _this$context.density;
|
|
1037
1037
|
return this.getCachedTheme(contextTheme, theme, (_ref4 = isEditableGridModel(model) && model.isEditable) !== null && _ref4 !== void 0 ? _ref4 : false, model.floatingTopRowCount + model.floatingBottomRowCount, density !== null && density !== void 0 ? density : contextDensity);
|
|
1038
1038
|
}
|
|
1039
1039
|
getVisibleColumn(modelIndex) {
|
|
1040
|
-
var
|
|
1041
|
-
movedColumns
|
|
1042
|
-
} = this.state;
|
|
1040
|
+
var movedColumns = this.state.movedColumns;
|
|
1043
1041
|
return GridUtils.getVisibleIndex(modelIndex, movedColumns);
|
|
1044
1042
|
}
|
|
1045
1043
|
makeQuickFilter(column, text, timeZone) {
|
|
@@ -1060,27 +1058,20 @@ class IrisGrid extends Component {
|
|
|
1060
1058
|
*/
|
|
1061
1059
|
applyInputFilters(inputFilters) {
|
|
1062
1060
|
var replaceExisting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1063
|
-
var
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
advancedFilters,
|
|
1068
|
-
quickFilters
|
|
1069
|
-
} = this.state;
|
|
1061
|
+
var model = this.props.model;
|
|
1062
|
+
var _this$state2 = this.state,
|
|
1063
|
+
advancedFilters = _this$state2.advancedFilters,
|
|
1064
|
+
quickFilters = _this$state2.quickFilters;
|
|
1070
1065
|
var newAdvancedFilters = replaceExisting ? new Map() : new Map(advancedFilters);
|
|
1071
1066
|
var newQuickFilters = replaceExisting ? new Map() : new Map(quickFilters);
|
|
1072
1067
|
var isChanged = replaceExisting && advancedFilters.size > 0;
|
|
1073
1068
|
inputFilters.forEach(_ref5 => {
|
|
1074
|
-
var
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
value
|
|
1078
|
-
} = _ref5;
|
|
1069
|
+
var name = _ref5.name,
|
|
1070
|
+
type = _ref5.type,
|
|
1071
|
+
value = _ref5.value;
|
|
1079
1072
|
var modelIndex = model.columns.findIndex(_ref6 => {
|
|
1080
|
-
var
|
|
1081
|
-
|
|
1082
|
-
type: columnType
|
|
1083
|
-
} = _ref6;
|
|
1073
|
+
var columnName = _ref6.name,
|
|
1074
|
+
columnType = _ref6.type;
|
|
1084
1075
|
return columnName === name && columnType === type;
|
|
1085
1076
|
});
|
|
1086
1077
|
if (modelIndex >= 0) {
|
|
@@ -1107,19 +1098,13 @@ class IrisGrid extends Component {
|
|
|
1107
1098
|
* @returns True if the filters have changed because this quick filter was applied
|
|
1108
1099
|
*/
|
|
1109
1100
|
applyQuickFilter(modelIndex, value, quickFilters) {
|
|
1110
|
-
var
|
|
1111
|
-
|
|
1112
|
-
} = this.props;
|
|
1113
|
-
var {
|
|
1114
|
-
formatter
|
|
1115
|
-
} = model;
|
|
1101
|
+
var model = this.props.model;
|
|
1102
|
+
var formatter = model.formatter;
|
|
1116
1103
|
var column = model.columns[modelIndex];
|
|
1117
1104
|
if (value != null && "".concat(value).trim().length > 0) {
|
|
1118
1105
|
var quickFilter = quickFilters.get(modelIndex);
|
|
1119
1106
|
if (quickFilter != null) {
|
|
1120
|
-
var
|
|
1121
|
-
text
|
|
1122
|
-
} = quickFilter;
|
|
1107
|
+
var text = quickFilter.text;
|
|
1123
1108
|
if (text === value) {
|
|
1124
1109
|
log.debug2('Ignoring change to existing filter');
|
|
1125
1110
|
return false;
|
|
@@ -1144,9 +1129,7 @@ class IrisGrid extends Component {
|
|
|
1144
1129
|
resetRanges: true
|
|
1145
1130
|
});
|
|
1146
1131
|
this.setState(_ref7 => {
|
|
1147
|
-
var
|
|
1148
|
-
advancedFilters
|
|
1149
|
-
} = _ref7;
|
|
1132
|
+
var advancedFilters = _ref7.advancedFilters;
|
|
1150
1133
|
var newAdvancedFilters = new Map(advancedFilters);
|
|
1151
1134
|
if (filter == null) {
|
|
1152
1135
|
newAdvancedFilters.delete(modelIndex);
|
|
@@ -1174,9 +1157,7 @@ class IrisGrid extends Component {
|
|
|
1174
1157
|
resetRanges: true
|
|
1175
1158
|
});
|
|
1176
1159
|
this.setState(_ref8 => {
|
|
1177
|
-
var
|
|
1178
|
-
quickFilters
|
|
1179
|
-
} = _ref8;
|
|
1160
|
+
var quickFilters = _ref8.quickFilters;
|
|
1180
1161
|
var newQuickFilters = new Map(quickFilters);
|
|
1181
1162
|
newQuickFilters.set(modelIndex, {
|
|
1182
1163
|
filter,
|
|
@@ -1195,21 +1176,15 @@ class IrisGrid extends Component {
|
|
|
1195
1176
|
setFilterMap(filterMap) {
|
|
1196
1177
|
var _advancedSettings$get2;
|
|
1197
1178
|
log.debug('setFilterMap', filterMap);
|
|
1198
|
-
var
|
|
1199
|
-
advancedSettings
|
|
1200
|
-
} = this.props;
|
|
1179
|
+
var advancedSettings = this.props.advancedSettings;
|
|
1201
1180
|
var clearFiltersOnLinkerFilterUpdate = (_advancedSettings$get2 = advancedSettings.get(AdvancedSettingsType.LINK_CHANGE_CLEARS_ALL_FILTERS)) !== null && _advancedSettings$get2 !== void 0 ? _advancedSettings$get2 : false;
|
|
1202
1181
|
if (clearFiltersOnLinkerFilterUpdate) {
|
|
1203
1182
|
this.clearAllFilters();
|
|
1204
1183
|
}
|
|
1205
|
-
var
|
|
1206
|
-
model
|
|
1207
|
-
} = this.props;
|
|
1184
|
+
var model = this.props.model;
|
|
1208
1185
|
filterMap.forEach((_ref9, columnName) => {
|
|
1209
|
-
var
|
|
1210
|
-
|
|
1211
|
-
filterList
|
|
1212
|
-
} = _ref9;
|
|
1186
|
+
var columnType = _ref9.columnType,
|
|
1187
|
+
filterList = _ref9.filterList;
|
|
1213
1188
|
var column = model.columns.find(c => c.name === columnName && c.type === columnType);
|
|
1214
1189
|
if (column == null) {
|
|
1215
1190
|
return;
|
|
@@ -1220,9 +1195,7 @@ class IrisGrid extends Component {
|
|
|
1220
1195
|
if (combinedText.length === 0) {
|
|
1221
1196
|
this.removeQuickFilter(columnIndex);
|
|
1222
1197
|
} else {
|
|
1223
|
-
var
|
|
1224
|
-
formatter
|
|
1225
|
-
} = model;
|
|
1198
|
+
var formatter = model.formatter;
|
|
1226
1199
|
this.setQuickFilter(columnIndex, this.makeQuickFilter(column, combinedText, formatter.timeZone), "".concat(combinedText));
|
|
1227
1200
|
}
|
|
1228
1201
|
});
|
|
@@ -1233,10 +1206,8 @@ class IrisGrid extends Component {
|
|
|
1233
1206
|
});
|
|
1234
1207
|
var clearRange = Array.isArray(modelRange) ? modelRange : [modelRange, modelRange];
|
|
1235
1208
|
this.setState(_ref0 => {
|
|
1236
|
-
var
|
|
1237
|
-
|
|
1238
|
-
quickFilters
|
|
1239
|
-
} = _ref0;
|
|
1209
|
+
var advancedFilters = _ref0.advancedFilters,
|
|
1210
|
+
quickFilters = _ref0.quickFilters;
|
|
1240
1211
|
var newAdvancedFilters = advancedFilters ? new Map(advancedFilters) : new Map();
|
|
1241
1212
|
var newQuickFilters = quickFilters ? new Map(quickFilters) : new Map();
|
|
1242
1213
|
newAdvancedFilters.forEach((_, column) => {
|
|
@@ -1260,9 +1231,7 @@ class IrisGrid extends Component {
|
|
|
1260
1231
|
resetRanges: true
|
|
1261
1232
|
});
|
|
1262
1233
|
this.setState(_ref1 => {
|
|
1263
|
-
var
|
|
1264
|
-
quickFilters
|
|
1265
|
-
} = _ref1;
|
|
1234
|
+
var quickFilters = _ref1.quickFilters;
|
|
1266
1235
|
var newQuickFilters = new Map(quickFilters);
|
|
1267
1236
|
newQuickFilters.delete(modelColumn);
|
|
1268
1237
|
return {
|
|
@@ -1272,11 +1241,10 @@ class IrisGrid extends Component {
|
|
|
1272
1241
|
}
|
|
1273
1242
|
clearAllFilters() {
|
|
1274
1243
|
log.debug('Clearing all filters');
|
|
1275
|
-
var
|
|
1276
|
-
advancedFilters,
|
|
1277
|
-
quickFilters,
|
|
1278
|
-
searchFilter
|
|
1279
|
-
} = this.state;
|
|
1244
|
+
var _this$state3 = this.state,
|
|
1245
|
+
advancedFilters = _this$state3.advancedFilters,
|
|
1246
|
+
quickFilters = _this$state3.quickFilters,
|
|
1247
|
+
searchFilter = _this$state3.searchFilter;
|
|
1280
1248
|
if (quickFilters.size === 0 && advancedFilters.size === 0 && searchFilter === null) {
|
|
1281
1249
|
return;
|
|
1282
1250
|
}
|
|
@@ -1316,28 +1284,21 @@ class IrisGrid extends Component {
|
|
|
1316
1284
|
* Rebuilds all the current filters. Necessary if something like the time zone has changed.
|
|
1317
1285
|
*/
|
|
1318
1286
|
rebuildFilters() {
|
|
1319
|
-
var
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
advancedFilters,
|
|
1324
|
-
quickFilters
|
|
1325
|
-
} = this.state;
|
|
1287
|
+
var model = this.props.model;
|
|
1288
|
+
var _this$state4 = this.state,
|
|
1289
|
+
advancedFilters = _this$state4.advancedFilters,
|
|
1290
|
+
quickFilters = _this$state4.quickFilters;
|
|
1326
1291
|
if (advancedFilters.size === 0 && quickFilters.size === 0) {
|
|
1327
1292
|
log.debug('No filters to rebuild');
|
|
1328
1293
|
return;
|
|
1329
1294
|
}
|
|
1330
|
-
var
|
|
1331
|
-
|
|
1332
|
-
formatter
|
|
1333
|
-
} = model;
|
|
1295
|
+
var columns = model.columns,
|
|
1296
|
+
formatter = model.formatter;
|
|
1334
1297
|
log.debug('Rebuilding filters');
|
|
1335
1298
|
var newAdvancedFilters = new Map();
|
|
1336
1299
|
var newQuickFilters = new Map();
|
|
1337
1300
|
advancedFilters.forEach((value, key) => {
|
|
1338
|
-
var
|
|
1339
|
-
options
|
|
1340
|
-
} = value;
|
|
1301
|
+
var options = value.options;
|
|
1341
1302
|
var column = columns[key];
|
|
1342
1303
|
var filter = this.tableUtils.makeAdvancedFilter(column, options, formatter.timeZone);
|
|
1343
1304
|
newAdvancedFilters.set(key, {
|
|
@@ -1346,9 +1307,7 @@ class IrisGrid extends Component {
|
|
|
1346
1307
|
});
|
|
1347
1308
|
});
|
|
1348
1309
|
quickFilters.forEach((value, key) => {
|
|
1349
|
-
var
|
|
1350
|
-
text
|
|
1351
|
-
} = value;
|
|
1310
|
+
var text = value.text;
|
|
1352
1311
|
var column = columns[key];
|
|
1353
1312
|
newQuickFilters.set(key, {
|
|
1354
1313
|
text,
|
|
@@ -1364,10 +1323,8 @@ class IrisGrid extends Component {
|
|
|
1364
1323
|
});
|
|
1365
1324
|
}
|
|
1366
1325
|
setFilters(_ref10) {
|
|
1367
|
-
var
|
|
1368
|
-
|
|
1369
|
-
advancedFilters
|
|
1370
|
-
} = _ref10;
|
|
1326
|
+
var quickFilters = _ref10.quickFilters,
|
|
1327
|
+
advancedFilters = _ref10.advancedFilters;
|
|
1371
1328
|
this.setState({
|
|
1372
1329
|
quickFilters,
|
|
1373
1330
|
advancedFilters
|
|
@@ -1410,12 +1367,8 @@ class IrisGrid extends Component {
|
|
|
1410
1367
|
updateFormatter(updatedFormats) {
|
|
1411
1368
|
var _this$globalColumnFor;
|
|
1412
1369
|
var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1413
|
-
var
|
|
1414
|
-
|
|
1415
|
-
} = this.state;
|
|
1416
|
-
var {
|
|
1417
|
-
model
|
|
1418
|
-
} = this.props;
|
|
1370
|
+
var customColumnFormatMap = this.state.customColumnFormatMap;
|
|
1371
|
+
var model = this.props.model;
|
|
1419
1372
|
var update = _objectSpread({
|
|
1420
1373
|
customColumnFormatMap
|
|
1421
1374
|
}, updatedFormats);
|
|
@@ -1431,15 +1384,11 @@ class IrisGrid extends Component {
|
|
|
1431
1384
|
});
|
|
1432
1385
|
}
|
|
1433
1386
|
initFormatter() {
|
|
1434
|
-
var
|
|
1435
|
-
settings
|
|
1436
|
-
} = this.props;
|
|
1387
|
+
var settings = this.props.settings;
|
|
1437
1388
|
this.updateFormatterSettings(settings);
|
|
1438
1389
|
}
|
|
1439
1390
|
initState() {
|
|
1440
|
-
var
|
|
1441
|
-
model
|
|
1442
|
-
} = this.props;
|
|
1391
|
+
var model = this.props.model;
|
|
1443
1392
|
try {
|
|
1444
1393
|
if (isPartitionedGridModel(model) && model.isPartitionRequired) {
|
|
1445
1394
|
this.loadPartitionsTable(model);
|
|
@@ -1451,18 +1400,17 @@ class IrisGrid extends Component {
|
|
|
1451
1400
|
}
|
|
1452
1401
|
}
|
|
1453
1402
|
loadTableState() {
|
|
1454
|
-
var
|
|
1455
|
-
applyInputFiltersOnInit,
|
|
1456
|
-
inputFilters,
|
|
1457
|
-
sorts,
|
|
1458
|
-
model,
|
|
1459
|
-
reverse,
|
|
1460
|
-
reverseType,
|
|
1461
|
-
customColumns,
|
|
1462
|
-
searchValue,
|
|
1463
|
-
selectedSearchColumns,
|
|
1464
|
-
invertSearchColumns
|
|
1465
|
-
} = this.props;
|
|
1403
|
+
var _this$props4 = this.props,
|
|
1404
|
+
applyInputFiltersOnInit = _this$props4.applyInputFiltersOnInit,
|
|
1405
|
+
inputFilters = _this$props4.inputFilters,
|
|
1406
|
+
sorts = _this$props4.sorts,
|
|
1407
|
+
model = _this$props4.model,
|
|
1408
|
+
reverse = _this$props4.reverse,
|
|
1409
|
+
reverseType = _this$props4.reverseType,
|
|
1410
|
+
customColumns = _this$props4.customColumns,
|
|
1411
|
+
searchValue = _this$props4.searchValue,
|
|
1412
|
+
selectedSearchColumns = _this$props4.selectedSearchColumns,
|
|
1413
|
+
invertSearchColumns = _this$props4.invertSearchColumns;
|
|
1466
1414
|
var searchColumns = selectedSearchColumns !== null && selectedSearchColumns !== void 0 ? selectedSearchColumns : [];
|
|
1467
1415
|
var searchFilter = CrossColumnSearch.createSearchFilter(model.dh, searchValue, searchColumns, model.columns, invertSearchColumns);
|
|
1468
1416
|
if (applyInputFiltersOnInit) {
|
|
@@ -1484,9 +1432,7 @@ class IrisGrid extends Component {
|
|
|
1484
1432
|
var _this = this;
|
|
1485
1433
|
return _asyncToGenerator(function* () {
|
|
1486
1434
|
try {
|
|
1487
|
-
var
|
|
1488
|
-
partitionConfig
|
|
1489
|
-
} = _this.state;
|
|
1435
|
+
var partitionConfig = _this.state.partitionConfig;
|
|
1490
1436
|
if (!partitionConfig) {
|
|
1491
1437
|
_this.startLoading('Loading partitions...', {
|
|
1492
1438
|
loadingCancelShown: false,
|
|
@@ -1512,9 +1458,7 @@ class IrisGrid extends Component {
|
|
|
1512
1458
|
var _this2 = this;
|
|
1513
1459
|
return _asyncToGenerator(function* () {
|
|
1514
1460
|
var keyTable = yield _this2.pending.add(model.partitionKeysTable(), resolved => resolved.close());
|
|
1515
|
-
var
|
|
1516
|
-
dh
|
|
1517
|
-
} = model;
|
|
1461
|
+
var dh = model.dh;
|
|
1518
1462
|
var sorts = keyTable.columns.map(column => column.sort().desc());
|
|
1519
1463
|
keyTable.applySort(sorts);
|
|
1520
1464
|
keyTable.setViewport(0, 0);
|
|
@@ -1523,9 +1467,7 @@ class IrisGrid extends Component {
|
|
|
1523
1467
|
// It's possible that the key table does not have any rows of data yet, so just wait until it does have one
|
|
1524
1468
|
keyTable.addEventListener(dh.Table.EVENT_UPDATED, event => {
|
|
1525
1469
|
try {
|
|
1526
|
-
var
|
|
1527
|
-
detail: data
|
|
1528
|
-
} = event;
|
|
1470
|
+
var data = event.detail;
|
|
1529
1471
|
if (data.rows.length === 0) {
|
|
1530
1472
|
// We received an update and the table is still empty. Stop showing the loading spinner so we know
|
|
1531
1473
|
_this2.stopLoading();
|
|
@@ -1557,18 +1499,20 @@ class IrisGrid extends Component {
|
|
|
1557
1499
|
* @returns A promise that resolves when the partition key has been successfully selected.
|
|
1558
1500
|
*/
|
|
1559
1501
|
selectPartitionKeyFromTable(rowIndex) {
|
|
1560
|
-
var
|
|
1561
|
-
model
|
|
1562
|
-
} = this.props;
|
|
1502
|
+
var model = this.props.model;
|
|
1563
1503
|
assertNotNull(rowIndex);
|
|
1564
1504
|
if (isPartitionedGridModel(model)) {
|
|
1565
1505
|
var data = this.getRowDataMap(rowIndex);
|
|
1566
1506
|
var partitionColumnSet = new Set(model.partitionColumns.map(column => column.name));
|
|
1567
1507
|
var values = Object.entries(data).filter(_ref11 => {
|
|
1568
|
-
var
|
|
1508
|
+
var _ref12 = _slicedToArray(_ref11, 2),
|
|
1509
|
+
key = _ref12[0],
|
|
1510
|
+
_ = _ref12[1];
|
|
1569
1511
|
return partitionColumnSet.has(key);
|
|
1570
|
-
}).map(
|
|
1571
|
-
var
|
|
1512
|
+
}).map(_ref13 => {
|
|
1513
|
+
var _ref14 = _slicedToArray(_ref13, 2),
|
|
1514
|
+
key = _ref14[0],
|
|
1515
|
+
columnData = _ref14[1];
|
|
1572
1516
|
return columnData.value;
|
|
1573
1517
|
});
|
|
1574
1518
|
var newPartition = {
|
|
@@ -1583,9 +1527,7 @@ class IrisGrid extends Component {
|
|
|
1583
1527
|
}
|
|
1584
1528
|
copyCell(columnIndex, rowIndex) {
|
|
1585
1529
|
var rawValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
1586
|
-
var
|
|
1587
|
-
canCopy
|
|
1588
|
-
} = this.props;
|
|
1530
|
+
var canCopy = this.props.canCopy;
|
|
1589
1531
|
if (canCopy) {
|
|
1590
1532
|
var value = String(this.getValueForCell(columnIndex, rowIndex, rawValue));
|
|
1591
1533
|
copyToClipboard(value).catch(e => log.error('Unable to copy cell', e));
|
|
@@ -1598,12 +1540,8 @@ class IrisGrid extends Component {
|
|
|
1598
1540
|
if (columnIndex === null) {
|
|
1599
1541
|
return;
|
|
1600
1542
|
}
|
|
1601
|
-
var
|
|
1602
|
-
|
|
1603
|
-
} = this.props;
|
|
1604
|
-
var {
|
|
1605
|
-
movedColumns
|
|
1606
|
-
} = this.state;
|
|
1543
|
+
var canCopy = this.props.canCopy;
|
|
1544
|
+
var movedColumns = this.state.movedColumns;
|
|
1607
1545
|
if (canCopy) {
|
|
1608
1546
|
var copyOperation = {
|
|
1609
1547
|
columnIndex,
|
|
@@ -1629,14 +1567,12 @@ class IrisGrid extends Component {
|
|
|
1629
1567
|
var includeHeaders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1630
1568
|
var formatValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
1631
1569
|
var error = arguments.length > 3 ? arguments[3] : undefined;
|
|
1632
|
-
var
|
|
1633
|
-
model,
|
|
1634
|
-
canCopy
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
movedColumns
|
|
1639
|
-
} = this.state;
|
|
1570
|
+
var _this$props5 = this.props,
|
|
1571
|
+
model = _this$props5.model,
|
|
1572
|
+
canCopy = _this$props5.canCopy;
|
|
1573
|
+
var _this$state5 = this.state,
|
|
1574
|
+
metricCalculator = _this$state5.metricCalculator,
|
|
1575
|
+
movedColumns = _this$state5.movedColumns;
|
|
1640
1576
|
var userColumnWidths = metricCalculator.getUserColumnWidths();
|
|
1641
1577
|
if (canCopy) {
|
|
1642
1578
|
var copyOperation = {
|
|
@@ -1655,11 +1591,13 @@ class IrisGrid extends Component {
|
|
|
1655
1591
|
}
|
|
1656
1592
|
}
|
|
1657
1593
|
startLoading(loadingText) {
|
|
1658
|
-
var {
|
|
1659
|
-
resetRanges =
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1594
|
+
var _ref15 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
1595
|
+
_ref15$resetRanges = _ref15.resetRanges,
|
|
1596
|
+
resetRanges = _ref15$resetRanges === void 0 ? false : _ref15$resetRanges,
|
|
1597
|
+
_ref15$loadingCancelS = _ref15.loadingCancelShown,
|
|
1598
|
+
loadingCancelShown = _ref15$loadingCancelS === void 0 ? true : _ref15$loadingCancelS,
|
|
1599
|
+
_ref15$loadingBlocksG = _ref15.loadingBlocksGrid,
|
|
1600
|
+
loadingBlocksGrid = _ref15$loadingBlocksG === void 0 ? true : _ref15$loadingBlocksG;
|
|
1663
1601
|
this.setState({
|
|
1664
1602
|
loadingText,
|
|
1665
1603
|
loadingCancelShown,
|
|
@@ -1674,10 +1612,8 @@ class IrisGrid extends Component {
|
|
|
1674
1612
|
}
|
|
1675
1613
|
if (this.loadingScrimStartTime == null) {
|
|
1676
1614
|
var _this$gridWrapper$get, _this$gridWrapper;
|
|
1677
|
-
var
|
|
1678
|
-
|
|
1679
|
-
maxScrimTransitionTime
|
|
1680
|
-
} = theme;
|
|
1615
|
+
var minScrimTransitionTime = theme.minScrimTransitionTime,
|
|
1616
|
+
maxScrimTransitionTime = theme.maxScrimTransitionTime;
|
|
1681
1617
|
assertNotNull(minScrimTransitionTime);
|
|
1682
1618
|
assertNotNull(maxScrimTransitionTime);
|
|
1683
1619
|
var height = (_this$gridWrapper$get = (_this$gridWrapper = this.gridWrapper) === null || _this$gridWrapper === void 0 ? void 0 : _this$gridWrapper.getBoundingClientRect().height) !== null && _this$gridWrapper$get !== void 0 ? _this$gridWrapper$get : 0;
|
|
@@ -1716,17 +1652,16 @@ class IrisGrid extends Component {
|
|
|
1716
1652
|
rollback() {
|
|
1717
1653
|
if (this.lastLoadedConfig) {
|
|
1718
1654
|
log.debug('loading last loading config', this.lastLoadedConfig);
|
|
1719
|
-
var
|
|
1720
|
-
advancedFilters,
|
|
1721
|
-
aggregationSettings,
|
|
1722
|
-
customColumns,
|
|
1723
|
-
quickFilters,
|
|
1724
|
-
reverse,
|
|
1725
|
-
rollupConfig,
|
|
1726
|
-
searchFilter,
|
|
1727
|
-
selectDistinctColumns,
|
|
1728
|
-
sorts
|
|
1729
|
-
} = this.lastLoadedConfig;
|
|
1655
|
+
var _this$lastLoadedConfi = this.lastLoadedConfig,
|
|
1656
|
+
advancedFilters = _this$lastLoadedConfi.advancedFilters,
|
|
1657
|
+
aggregationSettings = _this$lastLoadedConfi.aggregationSettings,
|
|
1658
|
+
customColumns = _this$lastLoadedConfi.customColumns,
|
|
1659
|
+
quickFilters = _this$lastLoadedConfi.quickFilters,
|
|
1660
|
+
reverse = _this$lastLoadedConfi.reverse,
|
|
1661
|
+
rollupConfig = _this$lastLoadedConfi.rollupConfig,
|
|
1662
|
+
searchFilter = _this$lastLoadedConfi.searchFilter,
|
|
1663
|
+
selectDistinctColumns = _this$lastLoadedConfi.selectDistinctColumns,
|
|
1664
|
+
sorts = _this$lastLoadedConfi.sorts;
|
|
1730
1665
|
this.lastLoadedConfig = null;
|
|
1731
1666
|
this.setState({
|
|
1732
1667
|
advancedFilters,
|
|
@@ -1764,33 +1699,33 @@ class IrisGrid extends Component {
|
|
|
1764
1699
|
startListening(model) {
|
|
1765
1700
|
model.addEventListener(IrisGridModel.EVENT.UPDATED, this.handleUpdate);
|
|
1766
1701
|
model.addEventListener(IrisGridModel.EVENT.REQUEST_FAILED, this.handleRequestFailed);
|
|
1702
|
+
model.addEventListener(IrisGridModel.EVENT.PENDING, this.handlePending);
|
|
1703
|
+
model.addEventListener(IrisGridModel.EVENT.PENDING_CLEARED, this.handlePendingCleared);
|
|
1767
1704
|
model.addEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleCustomColumnsChanged);
|
|
1768
1705
|
model.addEventListener(IrisGridModel.EVENT.PENDING_DATA_UPDATED, this.handlePendingDataUpdated);
|
|
1769
1706
|
model.addEventListener(IrisGridModel.EVENT.VIEWPORT_UPDATED, this.handleViewportUpdated);
|
|
1770
1707
|
model.addEventListener(IrisGridModel.EVENT.TABLE_CHANGED, this.handleTableChanged);
|
|
1708
|
+
model.addEventListener(IrisGridModel.EVENT.MODEL_CHANGED, this.handleModelChanged);
|
|
1771
1709
|
}
|
|
1772
1710
|
stopListening(model) {
|
|
1773
1711
|
model.removeEventListener(IrisGridModel.EVENT.UPDATED, this.handleUpdate);
|
|
1774
1712
|
model.removeEventListener(IrisGridModel.EVENT.REQUEST_FAILED, this.handleRequestFailed);
|
|
1713
|
+
model.removeEventListener(IrisGridModel.EVENT.PENDING, this.handlePending);
|
|
1714
|
+
model.removeEventListener(IrisGridModel.EVENT.PENDING_CLEARED, this.handlePendingCleared);
|
|
1775
1715
|
model.removeEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleCustomColumnsChanged);
|
|
1776
1716
|
model.removeEventListener(IrisGridModel.EVENT.PENDING_DATA_UPDATED, this.handlePendingDataUpdated);
|
|
1777
1717
|
model.removeEventListener(IrisGridModel.EVENT.VIEWPORT_UPDATED, this.handleViewportUpdated);
|
|
1778
1718
|
model.removeEventListener(IrisGridModel.EVENT.TABLE_CHANGED, this.handleTableChanged);
|
|
1719
|
+
model.removeEventListener(IrisGridModel.EVENT.MODEL_CHANGED, this.handleModelChanged);
|
|
1779
1720
|
}
|
|
1780
1721
|
focus() {
|
|
1781
1722
|
var _this$grid3;
|
|
1782
1723
|
(_this$grid3 = this.grid) === null || _this$grid3 === void 0 || _this$grid3.focus();
|
|
1783
1724
|
}
|
|
1784
1725
|
focusFilterBar(column) {
|
|
1785
|
-
var
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
var {
|
|
1789
|
-
model
|
|
1790
|
-
} = this.props;
|
|
1791
|
-
var {
|
|
1792
|
-
columnCount
|
|
1793
|
-
} = model;
|
|
1726
|
+
var movedColumns = this.state.movedColumns;
|
|
1727
|
+
var model = this.props.model;
|
|
1728
|
+
var columnCount = model.columnCount;
|
|
1794
1729
|
var modelColumn = GridUtils.getModelIndex(column, movedColumns);
|
|
1795
1730
|
if (column == null || columnCount <= column || !model.isFilterable(modelColumn)) {
|
|
1796
1731
|
this.setState({
|
|
@@ -1798,10 +1733,9 @@ class IrisGrid extends Component {
|
|
|
1798
1733
|
});
|
|
1799
1734
|
return;
|
|
1800
1735
|
}
|
|
1801
|
-
var
|
|
1802
|
-
metricCalculator,
|
|
1803
|
-
metrics
|
|
1804
|
-
} = this.state;
|
|
1736
|
+
var _this$state6 = this.state,
|
|
1737
|
+
metricCalculator = _this$state6.metricCalculator,
|
|
1738
|
+
metrics = _this$state6.metrics;
|
|
1805
1739
|
assertNotNull(metrics);
|
|
1806
1740
|
var metricState = this.getMetricState();
|
|
1807
1741
|
assertNotNull(metricState);
|
|
@@ -1821,21 +1755,17 @@ class IrisGrid extends Component {
|
|
|
1821
1755
|
}
|
|
1822
1756
|
hideColumnByVisibleIndex(columnVisibleIndex) {
|
|
1823
1757
|
var _this$grid5;
|
|
1824
|
-
var
|
|
1825
|
-
metricCalculator,
|
|
1826
|
-
movedColumns
|
|
1827
|
-
} = this.state;
|
|
1758
|
+
var _this$state7 = this.state,
|
|
1759
|
+
metricCalculator = _this$state7.metricCalculator,
|
|
1760
|
+
movedColumns = _this$state7.movedColumns;
|
|
1828
1761
|
metricCalculator.setColumnWidth(GridUtils.getModelIndex(columnVisibleIndex, movedColumns), 0);
|
|
1829
1762
|
(_this$grid5 = this.grid) === null || _this$grid5 === void 0 || _this$grid5.forceUpdate();
|
|
1830
1763
|
}
|
|
1831
1764
|
freezeColumnByColumnName(columnName) {
|
|
1832
|
-
var
|
|
1833
|
-
frozenColumns,
|
|
1834
|
-
movedColumns
|
|
1835
|
-
|
|
1836
|
-
var {
|
|
1837
|
-
model
|
|
1838
|
-
} = this.props;
|
|
1765
|
+
var _this$state8 = this.state,
|
|
1766
|
+
frozenColumns = _this$state8.frozenColumns,
|
|
1767
|
+
movedColumns = _this$state8.movedColumns;
|
|
1768
|
+
var model = this.props.model;
|
|
1839
1769
|
log.debug2('freezing column', columnName);
|
|
1840
1770
|
var allFrozenColumns = frozenColumns == null ? new Set(model.frozenColumns) : new Set(frozenColumns);
|
|
1841
1771
|
allFrozenColumns.add(columnName);
|
|
@@ -1849,13 +1779,10 @@ class IrisGrid extends Component {
|
|
|
1849
1779
|
});
|
|
1850
1780
|
}
|
|
1851
1781
|
unFreezeColumnByColumnName(columnName) {
|
|
1852
|
-
var
|
|
1853
|
-
frozenColumns,
|
|
1854
|
-
movedColumns
|
|
1855
|
-
|
|
1856
|
-
var {
|
|
1857
|
-
model
|
|
1858
|
-
} = this.props;
|
|
1782
|
+
var _this$state9 = this.state,
|
|
1783
|
+
frozenColumns = _this$state9.frozenColumns,
|
|
1784
|
+
movedColumns = _this$state9.movedColumns;
|
|
1785
|
+
var model = this.props.model;
|
|
1859
1786
|
log.debug2('unfreezing column', columnName);
|
|
1860
1787
|
var allFrozenColumns = frozenColumns == null ? new Set(model.frozenColumns) : new Set(frozenColumns);
|
|
1861
1788
|
allFrozenColumns.delete(columnName);
|
|
@@ -1883,37 +1810,30 @@ class IrisGrid extends Component {
|
|
|
1883
1810
|
}
|
|
1884
1811
|
toggleExpandColumn(modelIndex, expandDescendants) {
|
|
1885
1812
|
log.debug2('Toggle expand column', modelIndex);
|
|
1886
|
-
var
|
|
1887
|
-
model
|
|
1888
|
-
} = this.props;
|
|
1813
|
+
var model = this.props.model;
|
|
1889
1814
|
if (isExpandableColumnGridModel(model) && model.hasExpandableColumns) {
|
|
1890
1815
|
model.setColumnExpanded(modelIndex, !model.isColumnExpanded(modelIndex), expandDescendants);
|
|
1891
1816
|
}
|
|
1892
1817
|
}
|
|
1893
1818
|
expandAllColumns() {
|
|
1894
1819
|
log.debug2('Expand all columns');
|
|
1895
|
-
var
|
|
1896
|
-
model
|
|
1897
|
-
} = this.props;
|
|
1820
|
+
var model = this.props.model;
|
|
1898
1821
|
if (isExpandableColumnGridModel(model) && model.isExpandAllColumnsAvailable) {
|
|
1899
1822
|
model.expandAllColumns();
|
|
1900
1823
|
}
|
|
1901
1824
|
}
|
|
1902
1825
|
collapseAllColumns() {
|
|
1903
1826
|
log.debug2('Collapse all columns');
|
|
1904
|
-
var
|
|
1905
|
-
model
|
|
1906
|
-
} = this.props;
|
|
1827
|
+
var model = this.props.model;
|
|
1907
1828
|
if (isExpandableColumnGridModel(model) && model.isExpandAllColumnsAvailable) {
|
|
1908
1829
|
model.collapseAllColumns();
|
|
1909
1830
|
}
|
|
1910
1831
|
}
|
|
1911
1832
|
handleColumnVisibilityChanged(modelIndexes, isVisible) {
|
|
1912
1833
|
var _this$grid6;
|
|
1913
|
-
var
|
|
1914
|
-
metricCalculator,
|
|
1915
|
-
metrics
|
|
1916
|
-
} = this.state;
|
|
1834
|
+
var _this$state0 = this.state,
|
|
1835
|
+
metricCalculator = _this$state0.metricCalculator,
|
|
1836
|
+
metrics = _this$state0.metrics;
|
|
1917
1837
|
assertNotNull(metrics);
|
|
1918
1838
|
if (isVisible) {
|
|
1919
1839
|
modelIndexes.forEach(modelIndex => {
|
|
@@ -1938,12 +1858,8 @@ class IrisGrid extends Component {
|
|
|
1938
1858
|
}
|
|
1939
1859
|
handleColumnVisibilityReset() {
|
|
1940
1860
|
var _model$layoutHints$fr, _model$layoutHints2;
|
|
1941
|
-
var
|
|
1942
|
-
|
|
1943
|
-
} = this.state;
|
|
1944
|
-
var {
|
|
1945
|
-
model
|
|
1946
|
-
} = this.props;
|
|
1861
|
+
var metricCalculator = this.state.metricCalculator;
|
|
1862
|
+
var model = this.props.model;
|
|
1947
1863
|
metricCalculator.resetAllColumnWidths();
|
|
1948
1864
|
this.handleMovedColumnsChanged(model.initialMovedColumns);
|
|
1949
1865
|
this.handleHeaderGroupsChanged(model.initialColumnHeaderGroups);
|
|
@@ -1952,9 +1868,7 @@ class IrisGrid extends Component {
|
|
|
1952
1868
|
});
|
|
1953
1869
|
}
|
|
1954
1870
|
handleCrossColumnSearch(searchValue, selectedSearchColumns, invertSearchColumns) {
|
|
1955
|
-
var
|
|
1956
|
-
model
|
|
1957
|
-
} = this.props;
|
|
1871
|
+
var model = this.props.model;
|
|
1958
1872
|
this.startLoading('Searching...');
|
|
1959
1873
|
this.updateSearchFilter(searchValue, selectedSearchColumns, model.columns, invertSearchColumns);
|
|
1960
1874
|
this.setState({
|
|
@@ -1981,9 +1895,7 @@ class IrisGrid extends Component {
|
|
|
1981
1895
|
}
|
|
1982
1896
|
handlePartitionChange(partitionConfig) {
|
|
1983
1897
|
this.startLoading('Partitioning...');
|
|
1984
|
-
var
|
|
1985
|
-
partitionConfig: prevConfig
|
|
1986
|
-
} = this.state;
|
|
1898
|
+
var prevConfig = this.state.partitionConfig;
|
|
1987
1899
|
if (prevConfig !== partitionConfig) {
|
|
1988
1900
|
this.setState({
|
|
1989
1901
|
partitionConfig
|
|
@@ -1995,19 +1907,14 @@ class IrisGrid extends Component {
|
|
|
1995
1907
|
return;
|
|
1996
1908
|
}
|
|
1997
1909
|
log.error(error);
|
|
1998
|
-
var
|
|
1999
|
-
onError
|
|
2000
|
-
} = this.props;
|
|
1910
|
+
var onError = this.props.onError;
|
|
2001
1911
|
onError(error);
|
|
2002
1912
|
}
|
|
2003
1913
|
handleViewportUpdated() {
|
|
2004
|
-
var
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
loadingText,
|
|
2009
|
-
loadingSpinnerShown
|
|
2010
|
-
} = this.state;
|
|
1914
|
+
var model = this.props.model;
|
|
1915
|
+
var _this$state1 = this.state,
|
|
1916
|
+
loadingText = _this$state1.loadingText,
|
|
1917
|
+
loadingSpinnerShown = _this$state1.loadingSpinnerShown;
|
|
2011
1918
|
var loadingMessage = 'Waiting for viewport...';
|
|
2012
1919
|
|
|
2013
1920
|
// pending and no timer already exists
|
|
@@ -2020,13 +1927,13 @@ class IrisGrid extends Component {
|
|
|
2020
1927
|
}
|
|
2021
1928
|
showAllColumns() {
|
|
2022
1929
|
var _this$grid8;
|
|
2023
|
-
var
|
|
2024
|
-
metricCalculator
|
|
2025
|
-
} = this.state;
|
|
1930
|
+
var metricCalculator = this.state.metricCalculator;
|
|
2026
1931
|
var userColumnWidths = metricCalculator.getUserColumnWidths();
|
|
2027
1932
|
var entries = [...userColumnWidths.entries()];
|
|
2028
1933
|
for (var i = 0; i < entries.length; i += 1) {
|
|
2029
|
-
var
|
|
1934
|
+
var _entries$i = _slicedToArray(entries[i], 2),
|
|
1935
|
+
modelIndex = _entries$i[0],
|
|
1936
|
+
columnWidth = _entries$i[1];
|
|
2030
1937
|
if (columnWidth === 0) {
|
|
2031
1938
|
metricCalculator.resetColumnWidth(modelIndex);
|
|
2032
1939
|
}
|
|
@@ -2046,15 +1953,11 @@ class IrisGrid extends Component {
|
|
|
2046
1953
|
}
|
|
2047
1954
|
toggleSort(columnIndex, addToExisting) {
|
|
2048
1955
|
log.info('Toggling sort for column', columnIndex);
|
|
2049
|
-
var
|
|
2050
|
-
model
|
|
2051
|
-
} = this.props;
|
|
1956
|
+
var model = this.props.model;
|
|
2052
1957
|
var modelColumn = this.getModelColumn(columnIndex);
|
|
2053
1958
|
assertNotNull(modelColumn);
|
|
2054
1959
|
if (model.isColumnSortable(columnIndex)) {
|
|
2055
|
-
var
|
|
2056
|
-
sorts: currentSorts
|
|
2057
|
-
} = this.state;
|
|
1960
|
+
var currentSorts = this.state.sorts;
|
|
2058
1961
|
var sorts = TableUtils.toggleSortForColumn(currentSorts, model.columns, modelColumn, addToExisting);
|
|
2059
1962
|
this.updateSorts(sorts);
|
|
2060
1963
|
} else {
|
|
@@ -2075,9 +1978,7 @@ class IrisGrid extends Component {
|
|
|
2075
1978
|
var isAbs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
2076
1979
|
var addToExisting = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
2077
1980
|
assertNotNull(modelColumn);
|
|
2078
|
-
var
|
|
2079
|
-
model
|
|
2080
|
-
} = this.props;
|
|
1981
|
+
var model = this.props.model;
|
|
2081
1982
|
var sorts = TableUtils.sortColumn(model.sort, model.columns, modelColumn, direction, isAbs, addToExisting);
|
|
2082
1983
|
this.startLoading('Sorting...');
|
|
2083
1984
|
this.setState({
|
|
@@ -2094,16 +1995,12 @@ class IrisGrid extends Component {
|
|
|
2094
1995
|
(_this$grid10 = this.grid) === null || _this$grid10 === void 0 || _this$grid10.forceUpdate();
|
|
2095
1996
|
}
|
|
2096
1997
|
isReversible() {
|
|
2097
|
-
var
|
|
2098
|
-
model
|
|
2099
|
-
} = this.props;
|
|
1998
|
+
var model = this.props.model;
|
|
2100
1999
|
return model.isReversible;
|
|
2101
2000
|
}
|
|
2102
2001
|
toggleFilterBar() {
|
|
2103
2002
|
var focusIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.lastFocusedFilterBarColumn;
|
|
2104
|
-
var
|
|
2105
|
-
isFilterBarShown
|
|
2106
|
-
} = this.state;
|
|
2003
|
+
var isFilterBarShown = this.state.isFilterBarShown;
|
|
2107
2004
|
isFilterBarShown = !isFilterBarShown;
|
|
2108
2005
|
this.setState({
|
|
2109
2006
|
isFilterBarShown
|
|
@@ -2113,12 +2010,8 @@ class IrisGrid extends Component {
|
|
|
2113
2010
|
this.focusFilterBar(focusIndex);
|
|
2114
2011
|
} else {
|
|
2115
2012
|
var columnIndex = 0;
|
|
2116
|
-
var
|
|
2117
|
-
|
|
2118
|
-
} = this.props;
|
|
2119
|
-
var {
|
|
2120
|
-
columnCount
|
|
2121
|
-
} = model;
|
|
2013
|
+
var model = this.props.model;
|
|
2014
|
+
var columnCount = model.columnCount;
|
|
2122
2015
|
for (var i = 0; i < columnCount; i += 1) {
|
|
2123
2016
|
var modelColumn = this.getModelColumn(i);
|
|
2124
2017
|
if (modelColumn != null) {
|
|
@@ -2138,13 +2031,10 @@ class IrisGrid extends Component {
|
|
|
2138
2031
|
}
|
|
2139
2032
|
isTableSearchAvailable() {
|
|
2140
2033
|
var _model$layoutHints3, _dh$SearchDisplayMode, _dh$SearchDisplayMode2;
|
|
2141
|
-
var
|
|
2142
|
-
model,
|
|
2143
|
-
canToggleSearch
|
|
2144
|
-
|
|
2145
|
-
var {
|
|
2146
|
-
dh
|
|
2147
|
-
} = model;
|
|
2034
|
+
var _this$props6 = this.props,
|
|
2035
|
+
model = _this$props6.model,
|
|
2036
|
+
canToggleSearch = _this$props6.canToggleSearch;
|
|
2037
|
+
var dh = model.dh;
|
|
2148
2038
|
var searchDisplayMode = model === null || model === void 0 || (_model$layoutHints3 = model.layoutHints) === null || _model$layoutHints3 === void 0 ? void 0 : _model$layoutHints3.searchDisplayMode;
|
|
2149
2039
|
if (searchDisplayMode === ((_dh$SearchDisplayMode = dh.SearchDisplayMode) === null || _dh$SearchDisplayMode === void 0 ? void 0 : _dh$SearchDisplayMode.SEARCH_DISPLAY_HIDE)) {
|
|
2150
2040
|
return false;
|
|
@@ -2155,9 +2045,7 @@ class IrisGrid extends Component {
|
|
|
2155
2045
|
return canToggleSearch;
|
|
2156
2046
|
}
|
|
2157
2047
|
toggleSearchBar() {
|
|
2158
|
-
var
|
|
2159
|
-
showSearchBar
|
|
2160
|
-
} = this.state;
|
|
2048
|
+
var showSearchBar = this.state.showSearchBar;
|
|
2161
2049
|
if (!this.isTableSearchAvailable()) {
|
|
2162
2050
|
return;
|
|
2163
2051
|
}
|
|
@@ -2180,9 +2068,7 @@ class IrisGrid extends Component {
|
|
|
2180
2068
|
var row = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
2181
2069
|
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
2182
2070
|
var columnName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
2183
|
-
var
|
|
2184
|
-
isGotoShown
|
|
2185
|
-
} = this.state;
|
|
2071
|
+
var isGotoShown = this.state.isGotoShown;
|
|
2186
2072
|
if (row || value) {
|
|
2187
2073
|
var _this$gotoRowRef$curr;
|
|
2188
2074
|
// if invoked with a row, keep open instead of toggle
|
|
@@ -2213,12 +2099,8 @@ class IrisGrid extends Component {
|
|
|
2213
2099
|
return;
|
|
2214
2100
|
}
|
|
2215
2101
|
// if a row is selected
|
|
2216
|
-
var
|
|
2217
|
-
|
|
2218
|
-
} = this.props;
|
|
2219
|
-
var {
|
|
2220
|
-
name
|
|
2221
|
-
} = model.columns[cursorColumn];
|
|
2102
|
+
var model = this.props.model;
|
|
2103
|
+
var name = model.columns[cursorColumn].name;
|
|
2222
2104
|
|
|
2223
2105
|
// Use raw value (same as Copy Cell Unformatted) to preserve full precision and timezone
|
|
2224
2106
|
var text = String(this.getValueForCell(cursorColumn, cursorRow, true));
|
|
@@ -2236,15 +2118,11 @@ class IrisGrid extends Component {
|
|
|
2236
2118
|
var _this3 = this;
|
|
2237
2119
|
return _asyncToGenerator(function* () {
|
|
2238
2120
|
var _document;
|
|
2239
|
-
var
|
|
2240
|
-
model
|
|
2241
|
-
} = _this3.props;
|
|
2121
|
+
var model = _this3.props.model;
|
|
2242
2122
|
if (!isEditableGridModel(model) || !model.isEditable) {
|
|
2243
2123
|
throw new Error('Cannot save, table is not editable');
|
|
2244
2124
|
}
|
|
2245
|
-
var
|
|
2246
|
-
pendingSavePromise
|
|
2247
|
-
} = _this3.state;
|
|
2125
|
+
var pendingSavePromise = _this3.state.pendingSavePromise;
|
|
2248
2126
|
if (pendingSavePromise != null) {
|
|
2249
2127
|
throw new Error('Save already in progress');
|
|
2250
2128
|
}
|
|
@@ -2280,9 +2158,7 @@ class IrisGrid extends Component {
|
|
|
2280
2158
|
discardPending() {
|
|
2281
2159
|
var _this4 = this;
|
|
2282
2160
|
return _asyncToGenerator(function* () {
|
|
2283
|
-
var
|
|
2284
|
-
pendingSavePromise
|
|
2285
|
-
} = _this4.state;
|
|
2161
|
+
var pendingSavePromise = _this4.state.pendingSavePromise;
|
|
2286
2162
|
if (pendingSavePromise != null) {
|
|
2287
2163
|
throw new Error('Cannot cancel a save in progress');
|
|
2288
2164
|
}
|
|
@@ -2300,9 +2176,7 @@ class IrisGrid extends Component {
|
|
|
2300
2176
|
* @param column The column in this table to link
|
|
2301
2177
|
*/
|
|
2302
2178
|
selectColumn(column) {
|
|
2303
|
-
var
|
|
2304
|
-
onColumnSelected
|
|
2305
|
-
} = this.props;
|
|
2179
|
+
var onColumnSelected = this.props.onColumnSelected;
|
|
2306
2180
|
onColumnSelected(column);
|
|
2307
2181
|
}
|
|
2308
2182
|
|
|
@@ -2311,9 +2185,7 @@ class IrisGrid extends Component {
|
|
|
2311
2185
|
*/
|
|
2312
2186
|
selectData(columnIndex, rowIndex) {
|
|
2313
2187
|
var dataMap = this.getRowDataMap(rowIndex);
|
|
2314
|
-
var
|
|
2315
|
-
onDataSelected
|
|
2316
|
-
} = this.props;
|
|
2188
|
+
var onDataSelected = this.props.onDataSelected;
|
|
2317
2189
|
onDataSelected(rowIndex, dataMap);
|
|
2318
2190
|
}
|
|
2319
2191
|
|
|
@@ -2324,20 +2196,14 @@ class IrisGrid extends Component {
|
|
|
2324
2196
|
*/
|
|
2325
2197
|
getRowDataMap(rowIndex) {
|
|
2326
2198
|
var _this5 = this;
|
|
2327
|
-
var
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
var {
|
|
2331
|
-
columns,
|
|
2332
|
-
groupedColumns
|
|
2333
|
-
} = model;
|
|
2199
|
+
var model = this.props.model;
|
|
2200
|
+
var columns = model.columns,
|
|
2201
|
+
groupedColumns = model.groupedColumns;
|
|
2334
2202
|
var dataMap = {};
|
|
2335
2203
|
var _loop = function _loop() {
|
|
2336
2204
|
var column = columns[i];
|
|
2337
|
-
var
|
|
2338
|
-
|
|
2339
|
-
type
|
|
2340
|
-
} = column;
|
|
2205
|
+
var name = column.name,
|
|
2206
|
+
type = column.type;
|
|
2341
2207
|
var value = model.valueForCell(i, rowIndex);
|
|
2342
2208
|
var text = model.textForCell(i, rowIndex);
|
|
2343
2209
|
var visibleIndex = _this5.getVisibleColumn(i);
|
|
@@ -2358,9 +2224,7 @@ class IrisGrid extends Component {
|
|
|
2358
2224
|
return dataMap;
|
|
2359
2225
|
}
|
|
2360
2226
|
handleAdvancedFilterChange(column, filter, options) {
|
|
2361
|
-
var
|
|
2362
|
-
model
|
|
2363
|
-
} = this.props;
|
|
2227
|
+
var model = this.props.model;
|
|
2364
2228
|
var index = model.getColumnIndexByName(column.name);
|
|
2365
2229
|
assertNotNull(index);
|
|
2366
2230
|
this.setAdvancedFilter(index, filter, options);
|
|
@@ -2368,9 +2232,7 @@ class IrisGrid extends Component {
|
|
|
2368
2232
|
handleAdvancedFilterSortChange(column, direction) {
|
|
2369
2233
|
var _this$grid15;
|
|
2370
2234
|
var addToExisting = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
2371
|
-
var
|
|
2372
|
-
model
|
|
2373
|
-
} = this.props;
|
|
2235
|
+
var model = this.props.model;
|
|
2374
2236
|
var columnIndex = model.getColumnIndexByName(column.name);
|
|
2375
2237
|
assertNotNull(columnIndex);
|
|
2376
2238
|
var columnName = model.columns[columnIndex].name;
|
|
@@ -2396,10 +2258,8 @@ class IrisGrid extends Component {
|
|
|
2396
2258
|
(_this$grid16 = this.grid) === null || _this$grid16 === void 0 || _this$grid16.focus();
|
|
2397
2259
|
}
|
|
2398
2260
|
handleAdvancedFilterToggleMaximize(column) {
|
|
2399
|
-
this.setState(
|
|
2400
|
-
var
|
|
2401
|
-
maximizedAdvancedFilter
|
|
2402
|
-
} = _ref13;
|
|
2261
|
+
this.setState(_ref16 => {
|
|
2262
|
+
var maximizedAdvancedFilter = _ref16.maximizedAdvancedFilter;
|
|
2403
2263
|
return {
|
|
2404
2264
|
maximizedAdvancedFilter: maximizedAdvancedFilter === column ? null : column
|
|
2405
2265
|
};
|
|
@@ -2425,10 +2285,9 @@ class IrisGrid extends Component {
|
|
|
2425
2285
|
}
|
|
2426
2286
|
handleAdvancedMenuClosed(columnIndex) {
|
|
2427
2287
|
var _this$filterInputRef;
|
|
2428
|
-
var
|
|
2429
|
-
focusedFilterBarColumn,
|
|
2430
|
-
isFilterBarShown
|
|
2431
|
-
} = this.state;
|
|
2288
|
+
var _this$state10 = this.state,
|
|
2289
|
+
focusedFilterBarColumn = _this$state10.focusedFilterBarColumn,
|
|
2290
|
+
isFilterBarShown = _this$state10.isFilterBarShown;
|
|
2432
2291
|
if (isFilterBarShown && focusedFilterBarColumn === columnIndex && ((_this$filterInputRef = this.filterInputRef) === null || _this$filterInputRef === void 0 ? void 0 : _this$filterInputRef.current) !== null) {
|
|
2433
2292
|
var _this$filterInputRef2;
|
|
2434
2293
|
(_this$filterInputRef2 = this.filterInputRef) === null || _this$filterInputRef2 === void 0 || _this$filterInputRef2.current.focus();
|
|
@@ -2453,10 +2312,9 @@ class IrisGrid extends Component {
|
|
|
2453
2312
|
// TODO: IDS-4242 Update Chart Preview
|
|
2454
2313
|
}
|
|
2455
2314
|
handleChartCreate(settings) {
|
|
2456
|
-
var
|
|
2457
|
-
model,
|
|
2458
|
-
onCreateChart
|
|
2459
|
-
} = this.props;
|
|
2315
|
+
var _this$props7 = this.props,
|
|
2316
|
+
model = _this$props7.model,
|
|
2317
|
+
onCreateChart = _this$props7.onCreateChart;
|
|
2460
2318
|
onCreateChart(settings, model);
|
|
2461
2319
|
}
|
|
2462
2320
|
handleGridError(error) {
|
|
@@ -2472,11 +2330,9 @@ class IrisGrid extends Component {
|
|
|
2472
2330
|
this.startLoading('Filtering...', {
|
|
2473
2331
|
resetRanges: true
|
|
2474
2332
|
});
|
|
2475
|
-
this.setState(
|
|
2476
|
-
var
|
|
2477
|
-
|
|
2478
|
-
quickFilters
|
|
2479
|
-
} = _ref14;
|
|
2333
|
+
this.setState(_ref17 => {
|
|
2334
|
+
var focusedFilterBarColumn = _ref17.focusedFilterBarColumn,
|
|
2335
|
+
quickFilters = _ref17.quickFilters;
|
|
2480
2336
|
var newQuickFilters = new Map(quickFilters);
|
|
2481
2337
|
if (focusedFilterBarColumn != null) {
|
|
2482
2338
|
var modelIndex = this.getModelColumn(focusedFilterBarColumn);
|
|
@@ -2502,9 +2358,7 @@ class IrisGrid extends Component {
|
|
|
2502
2358
|
}
|
|
2503
2359
|
}
|
|
2504
2360
|
handleFilterBarTab(backward) {
|
|
2505
|
-
var
|
|
2506
|
-
focusedFilterBarColumn
|
|
2507
|
-
} = this.state;
|
|
2361
|
+
var focusedFilterBarColumn = this.state.focusedFilterBarColumn;
|
|
2508
2362
|
assertNotNull(focusedFilterBarColumn);
|
|
2509
2363
|
if (backward) {
|
|
2510
2364
|
this.focusFilterBar(focusedFilterBarColumn - 1);
|
|
@@ -2513,13 +2367,9 @@ class IrisGrid extends Component {
|
|
|
2513
2367
|
}
|
|
2514
2368
|
}
|
|
2515
2369
|
handleFormatSelection(modelIndex, selectedFormat) {
|
|
2516
|
-
var
|
|
2517
|
-
model
|
|
2518
|
-
} = this.props;
|
|
2370
|
+
var model = this.props.model;
|
|
2519
2371
|
var column = model.columns[modelIndex];
|
|
2520
|
-
var
|
|
2521
|
-
customColumnFormatMap: prevCustomColumnFormatMap
|
|
2522
|
-
} = this.state;
|
|
2372
|
+
var prevCustomColumnFormatMap = this.state.customColumnFormatMap;
|
|
2523
2373
|
var customColumnFormatMap = new Map(prevCustomColumnFormatMap);
|
|
2524
2374
|
if (selectedFormat != null) {
|
|
2525
2375
|
var normalizedType = TableUtils.getNormalizedType(column.type);
|
|
@@ -2534,14 +2384,11 @@ class IrisGrid extends Component {
|
|
|
2534
2384
|
});
|
|
2535
2385
|
}
|
|
2536
2386
|
handleColumnAlignmentChange(modelIndex, alignment) {
|
|
2537
|
-
var
|
|
2538
|
-
model
|
|
2539
|
-
} = this.props;
|
|
2387
|
+
var model = this.props.model;
|
|
2540
2388
|
var column = model.columns[modelIndex];
|
|
2541
|
-
this.setState(
|
|
2542
|
-
var
|
|
2543
|
-
columnAlignmentMap = EMPTY_MAP
|
|
2544
|
-
} = _ref15;
|
|
2389
|
+
this.setState(_ref18 => {
|
|
2390
|
+
var _ref18$columnAlignmen = _ref18.columnAlignmentMap,
|
|
2391
|
+
columnAlignmentMap = _ref18$columnAlignmen === void 0 ? EMPTY_MAP : _ref18$columnAlignmen;
|
|
2545
2392
|
var newColumnAlignmentMap = new Map(columnAlignmentMap);
|
|
2546
2393
|
if (alignment != null) {
|
|
2547
2394
|
newColumnAlignmentMap.set(column.name, alignment);
|
|
@@ -2566,10 +2413,8 @@ class IrisGrid extends Component {
|
|
|
2566
2413
|
});
|
|
2567
2414
|
}
|
|
2568
2415
|
handleMenuBack() {
|
|
2569
|
-
this.setState(
|
|
2570
|
-
var
|
|
2571
|
-
openOptions
|
|
2572
|
-
} = _ref16;
|
|
2416
|
+
this.setState(_ref19 => {
|
|
2417
|
+
var openOptions = _ref19.openOptions;
|
|
2573
2418
|
var newOptions = [...openOptions];
|
|
2574
2419
|
newOptions.pop();
|
|
2575
2420
|
return {
|
|
@@ -2578,24 +2423,19 @@ class IrisGrid extends Component {
|
|
|
2578
2423
|
});
|
|
2579
2424
|
}
|
|
2580
2425
|
handleMenuSelect(option) {
|
|
2581
|
-
this.setState(
|
|
2582
|
-
var
|
|
2583
|
-
openOptions
|
|
2584
|
-
} = _ref17;
|
|
2426
|
+
this.setState(_ref20 => {
|
|
2427
|
+
var openOptions = _ref20.openOptions;
|
|
2585
2428
|
return {
|
|
2586
2429
|
openOptions: [...openOptions, option]
|
|
2587
2430
|
};
|
|
2588
2431
|
});
|
|
2589
2432
|
}
|
|
2590
2433
|
handleRequestFailed(event) {
|
|
2591
|
-
var
|
|
2592
|
-
detail
|
|
2593
|
-
} = event;
|
|
2434
|
+
var _ref21 = event,
|
|
2435
|
+
error = _ref21.detail;
|
|
2594
2436
|
log.error('request failed:', error);
|
|
2595
2437
|
this.stopLoading();
|
|
2596
|
-
var
|
|
2597
|
-
partitionConfig
|
|
2598
|
-
} = this.state;
|
|
2438
|
+
var partitionConfig = this.state.partitionConfig;
|
|
2599
2439
|
if (isMissingPartitionError(error) && partitionConfig != null) {
|
|
2600
2440
|
// We'll try loading the initial partition again
|
|
2601
2441
|
this.startLoading('Reloading partition...', {
|
|
@@ -2613,26 +2453,52 @@ class IrisGrid extends Component {
|
|
|
2613
2453
|
this.rollback();
|
|
2614
2454
|
} else {
|
|
2615
2455
|
log.error('Table failed and unable to rollback');
|
|
2616
|
-
var
|
|
2617
|
-
onError
|
|
2618
|
-
} = this.props;
|
|
2456
|
+
var onError = this.props.onError;
|
|
2619
2457
|
onError(new Error("Error displaying table: ".concat(error)));
|
|
2620
2458
|
}
|
|
2621
2459
|
}
|
|
2460
|
+
|
|
2461
|
+
/**
|
|
2462
|
+
* Raise the loading scrim in response to a model-driven `PENDING` event. The
|
|
2463
|
+
* model is the start signal, mirroring how `UPDATED`/`COLUMNS_CHANGED` are
|
|
2464
|
+
* already the model-driven stop signal. Idempotent: the first message within
|
|
2465
|
+
* a commit wins (the `loadingScrimStartTime == null` guard collapses multiple
|
|
2466
|
+
* pending operations into a single scrim).
|
|
2467
|
+
*/
|
|
2468
|
+
handlePending(event) {
|
|
2469
|
+
var _ref22 = event,
|
|
2470
|
+
detail = _ref22.detail;
|
|
2471
|
+
var _ref23 = detail !== null && detail !== void 0 ? detail : {},
|
|
2472
|
+
text = _ref23.text,
|
|
2473
|
+
options = _ref23.options;
|
|
2474
|
+
if (this.loadingScrimStartTime == null) {
|
|
2475
|
+
this.startLoading(text !== null && text !== void 0 ? text : 'Loading...', _objectSpread({
|
|
2476
|
+
loadingCancelShown: false
|
|
2477
|
+
}, options));
|
|
2478
|
+
}
|
|
2479
|
+
}
|
|
2480
|
+
|
|
2481
|
+
/**
|
|
2482
|
+
* Clear the loading scrim in response to a model-driven `PENDING_CLEARED`
|
|
2483
|
+
* event. Only needed for operations that do not naturally end in
|
|
2484
|
+
* `UPDATED`/`COLUMNS_CHANGED`/`REQUEST_FAILED`.
|
|
2485
|
+
*/
|
|
2486
|
+
handlePendingCleared() {
|
|
2487
|
+
this.stopLoading();
|
|
2488
|
+
}
|
|
2622
2489
|
handleUpdate() {
|
|
2623
2490
|
var _this$grid18;
|
|
2624
2491
|
log.debug2('Received model update');
|
|
2625
|
-
var
|
|
2626
|
-
advancedFilters,
|
|
2627
|
-
aggregationSettings,
|
|
2628
|
-
customColumns,
|
|
2629
|
-
quickFilters,
|
|
2630
|
-
reverse,
|
|
2631
|
-
rollupConfig,
|
|
2632
|
-
searchFilter,
|
|
2633
|
-
selectDistinctColumns,
|
|
2634
|
-
sorts
|
|
2635
|
-
} = this.state;
|
|
2492
|
+
var _this$state11 = this.state,
|
|
2493
|
+
advancedFilters = _this$state11.advancedFilters,
|
|
2494
|
+
aggregationSettings = _this$state11.aggregationSettings,
|
|
2495
|
+
customColumns = _this$state11.customColumns,
|
|
2496
|
+
quickFilters = _this$state11.quickFilters,
|
|
2497
|
+
reverse = _this$state11.reverse,
|
|
2498
|
+
rollupConfig = _this$state11.rollupConfig,
|
|
2499
|
+
searchFilter = _this$state11.searchFilter,
|
|
2500
|
+
selectDistinctColumns = _this$state11.selectDistinctColumns,
|
|
2501
|
+
sorts = _this$state11.sorts;
|
|
2636
2502
|
var config = {
|
|
2637
2503
|
advancedFilters,
|
|
2638
2504
|
aggregationSettings,
|
|
@@ -2653,35 +2519,39 @@ class IrisGrid extends Component {
|
|
|
2653
2519
|
this.stopLoading();
|
|
2654
2520
|
}
|
|
2655
2521
|
handleTableChanged() {
|
|
2656
|
-
var
|
|
2657
|
-
model
|
|
2658
|
-
} = this.props;
|
|
2659
|
-
// movedColumns reset triggers metricCalculator update in the Grid component
|
|
2660
|
-
this.setState({
|
|
2661
|
-
movedColumns: model.initialMovedColumns
|
|
2662
|
-
});
|
|
2522
|
+
var model = this.props.model;
|
|
2663
2523
|
// For partitioned tables, we want to rebuild filters on table change to ensure filters are applied to the new partition
|
|
2664
|
-
var
|
|
2665
|
-
partitionConfig
|
|
2666
|
-
} = this.state;
|
|
2524
|
+
var partitionConfig = this.state.partitionConfig;
|
|
2667
2525
|
if (isPartitionedGridModel(model) && (partitionConfig === null || partitionConfig === void 0 ? void 0 : partitionConfig.mode) !== 'keys') {
|
|
2668
2526
|
this.rebuildFilters();
|
|
2669
2527
|
}
|
|
2670
2528
|
}
|
|
2529
|
+
|
|
2530
|
+
/**
|
|
2531
|
+
* Handle an inner-model swap on a proxy model (`MODEL_CHANGED`). The previous
|
|
2532
|
+
* model's `movedColumns` reference indices that may not exist in the new
|
|
2533
|
+
* model (e.g. a pivot exposes a different column set), so reset them to the
|
|
2534
|
+
* new model's initial order. The metric calculator is rebuilt separately when
|
|
2535
|
+
* the `getMetricCalculator` prop changes (see `componentDidUpdate`); a calc
|
|
2536
|
+
* whose seed `movedColumns` are now stale self-heals because `getMetrics`
|
|
2537
|
+
* reconciles against the grid's current `movedColumns` at draw time.
|
|
2538
|
+
*/
|
|
2539
|
+
handleModelChanged() {
|
|
2540
|
+
var model = this.props.model;
|
|
2541
|
+
this.setState({
|
|
2542
|
+
movedColumns: model.initialMovedColumns
|
|
2543
|
+
});
|
|
2544
|
+
}
|
|
2671
2545
|
handleViewChanged(metrics) {
|
|
2672
2546
|
var _this$grid$state, _this$grid19;
|
|
2673
|
-
var
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
selectionEndRow = 0
|
|
2678
|
-
} = (_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 : {};
|
|
2547
|
+
var model = this.props.model;
|
|
2548
|
+
var _ref24 = (_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
|
+
_ref24$selectionEndRo = _ref24.selectionEndRow,
|
|
2550
|
+
selectionEndRow = _ref24$selectionEndRo === void 0 ? 0 : _ref24$selectionEndRo;
|
|
2679
2551
|
var pendingRowCount = 0;
|
|
2680
2552
|
if (isEditableGridModel(model) && model.isEditable) {
|
|
2681
2553
|
assertNotNull(metrics);
|
|
2682
|
-
var
|
|
2683
|
-
bottomViewport
|
|
2684
|
-
} = metrics;
|
|
2554
|
+
var bottomViewport = metrics.bottomViewport;
|
|
2685
2555
|
|
|
2686
2556
|
// We have an editable table that we can add new rows to
|
|
2687
2557
|
// Display empty rows beneath the table rows that user can fill in
|
|
@@ -2704,12 +2574,8 @@ class IrisGrid extends Component {
|
|
|
2704
2574
|
}
|
|
2705
2575
|
handleSelectionChanged(selectedRanges) {
|
|
2706
2576
|
assertNotNull(selectedRanges);
|
|
2707
|
-
var
|
|
2708
|
-
|
|
2709
|
-
} = this.props;
|
|
2710
|
-
var {
|
|
2711
|
-
copyOperation
|
|
2712
|
-
} = this.state;
|
|
2577
|
+
var onSelectionChanged = this.props.onSelectionChanged;
|
|
2578
|
+
var copyOperation = this.state.copyOperation;
|
|
2713
2579
|
this.setState({
|
|
2714
2580
|
selectedRanges
|
|
2715
2581
|
});
|
|
@@ -2736,12 +2602,8 @@ class IrisGrid extends Component {
|
|
|
2736
2602
|
}, onChangeApplied);
|
|
2737
2603
|
}
|
|
2738
2604
|
handleHeaderGroupsChanged(columnHeaderGroups) {
|
|
2739
|
-
var
|
|
2740
|
-
|
|
2741
|
-
} = this.props;
|
|
2742
|
-
var {
|
|
2743
|
-
columnHeaderGroups: prevColumnHeaderGroups
|
|
2744
|
-
} = this.state;
|
|
2605
|
+
var model = this.props.model;
|
|
2606
|
+
var prevColumnHeaderGroups = this.state.columnHeaderGroups;
|
|
2745
2607
|
if (prevColumnHeaderGroups === columnHeaderGroups) {
|
|
2746
2608
|
return;
|
|
2747
2609
|
}
|
|
@@ -2769,10 +2631,9 @@ class IrisGrid extends Component {
|
|
|
2769
2631
|
}
|
|
2770
2632
|
handleConditionalFormatCreate() {
|
|
2771
2633
|
log.debug('Create new conditional format');
|
|
2772
|
-
var
|
|
2773
|
-
openOptions,
|
|
2774
|
-
conditionalFormats
|
|
2775
|
-
} = this.state;
|
|
2634
|
+
var _this$state12 = this.state,
|
|
2635
|
+
openOptions = _this$state12.openOptions,
|
|
2636
|
+
conditionalFormats = _this$state12.conditionalFormats;
|
|
2776
2637
|
this.setState({
|
|
2777
2638
|
openOptions: [...openOptions, {
|
|
2778
2639
|
type: OptionType.CONDITIONAL_FORMATTING_EDIT,
|
|
@@ -2785,10 +2646,9 @@ class IrisGrid extends Component {
|
|
|
2785
2646
|
}
|
|
2786
2647
|
handleConditionalFormatEdit(index) {
|
|
2787
2648
|
log.debug('Edit conditional format', index);
|
|
2788
|
-
var
|
|
2789
|
-
openOptions,
|
|
2790
|
-
conditionalFormats
|
|
2791
|
-
} = this.state;
|
|
2649
|
+
var _this$state13 = this.state,
|
|
2650
|
+
openOptions = _this$state13.openOptions,
|
|
2651
|
+
conditionalFormats = _this$state13.conditionalFormats;
|
|
2792
2652
|
this.setState({
|
|
2793
2653
|
openOptions: [...openOptions, {
|
|
2794
2654
|
type: OptionType.CONDITIONAL_FORMATTING_EDIT,
|
|
@@ -2825,19 +2685,14 @@ class IrisGrid extends Component {
|
|
|
2825
2685
|
}
|
|
2826
2686
|
handleUpdateCustomColumns(customColumns) {
|
|
2827
2687
|
log.info("handleUpdateCustomColumns:", customColumns);
|
|
2828
|
-
var
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
selectDistinctColumns
|
|
2837
|
-
} = this.state;
|
|
2838
|
-
var {
|
|
2839
|
-
columns
|
|
2840
|
-
} = model;
|
|
2688
|
+
var model = this.props.model;
|
|
2689
|
+
var _this$state14 = this.state,
|
|
2690
|
+
movedColumns = _this$state14.movedColumns,
|
|
2691
|
+
sorts = _this$state14.sorts,
|
|
2692
|
+
quickFilters = _this$state14.quickFilters,
|
|
2693
|
+
advancedFilters = _this$state14.advancedFilters,
|
|
2694
|
+
selectDistinctColumns = _this$state14.selectDistinctColumns;
|
|
2695
|
+
var columns = model.columns;
|
|
2841
2696
|
var oldCustomColumns = model.customColumns.map(customColumn => "".concat(customColumn));
|
|
2842
2697
|
var removedColumnNames = IrisGridUtils.getRemovedCustomColumnNames(oldCustomColumns, customColumns);
|
|
2843
2698
|
if (removedColumnNames.length > 0) {
|
|
@@ -2883,9 +2738,7 @@ class IrisGrid extends Component {
|
|
|
2883
2738
|
}
|
|
2884
2739
|
handleCustomColumnsChanged() {
|
|
2885
2740
|
log.debug('Model columns changed');
|
|
2886
|
-
var
|
|
2887
|
-
isReady
|
|
2888
|
-
} = this.state;
|
|
2741
|
+
var isReady = this.state.isReady;
|
|
2889
2742
|
if (isReady) {
|
|
2890
2743
|
this.updateMetrics();
|
|
2891
2744
|
|
|
@@ -2896,6 +2749,50 @@ class IrisGrid extends Component {
|
|
|
2896
2749
|
this.loadTableState();
|
|
2897
2750
|
}
|
|
2898
2751
|
}
|
|
2752
|
+
|
|
2753
|
+
/**
|
|
2754
|
+
* Rebuild the metric calculator when the `getMetricCalculator` prop swaps for
|
|
2755
|
+
* a different factory (e.g. entering or leaving a pivot, where the
|
|
2756
|
+
* pivot-builder middleware flips the prop). The renderer and mouse handlers
|
|
2757
|
+
* are recomputed via their memoized getters on the next render and do not
|
|
2758
|
+
* need explicit handling here.
|
|
2759
|
+
*
|
|
2760
|
+
* User column-widths / row-heights from the previous calculator are not
|
|
2761
|
+
* carried over: a factory swap means the column set has effectively changed,
|
|
2762
|
+
* so the stored sizes wouldn't map to anything meaningful.
|
|
2763
|
+
*
|
|
2764
|
+
* Moved columns are NOT reset here — that is owned by `handleModelChanged`
|
|
2765
|
+
* (the `MODEL_CHANGED` event) so that a plain prop swap against the same
|
|
2766
|
+
* model preserves the user's layout. The new calculator is seeded with the
|
|
2767
|
+
* current moved columns; `getMetrics` reconciles against the grid's live
|
|
2768
|
+
* `movedColumns` at draw time, so a later reset stays consistent.
|
|
2769
|
+
*/
|
|
2770
|
+
maybeRebuildMetricCalculator() {
|
|
2771
|
+
var _model$layoutHints4;
|
|
2772
|
+
var getMetricCalculator = this.props.getMetricCalculator;
|
|
2773
|
+
var factory = getMetricCalculator;
|
|
2774
|
+
if (factory === this.lastMetricCalculatorFactory) return;
|
|
2775
|
+
var model = this.props.model;
|
|
2776
|
+
var movedColumns = this.state.movedColumns;
|
|
2777
|
+
var next = factory({
|
|
2778
|
+
userColumnWidths: new Map(),
|
|
2779
|
+
userRowHeights: new Map(),
|
|
2780
|
+
movedColumns,
|
|
2781
|
+
initialColumnWidths: new Map(model === null || model === void 0 || (_model$layoutHints4 = model.layoutHints) === null || _model$layoutHints4 === void 0 || (_model$layoutHints4 = _model$layoutHints4.hiddenColumns) === null || _model$layoutHints4 === void 0 ? void 0 : _model$layoutHints4.map(name => [model.getColumnIndexByName(name), 0]))
|
|
2782
|
+
});
|
|
2783
|
+
this.lastMetricCalculatorFactory = factory;
|
|
2784
|
+
log.debug('Swapping metric calculator', next);
|
|
2785
|
+
// Also push the new calculator onto the Grid synchronously so any
|
|
2786
|
+
// immediately-following read of `Grid.metricCalculator` (before React has
|
|
2787
|
+
// committed the setState below) uses the new instance against the new
|
|
2788
|
+
// model rather than invoking the old calculator and potentially throwing.
|
|
2789
|
+
if (this.grid != null) {
|
|
2790
|
+
this.grid.metricCalculator = next;
|
|
2791
|
+
}
|
|
2792
|
+
this.setState({
|
|
2793
|
+
metricCalculator: next
|
|
2794
|
+
});
|
|
2795
|
+
}
|
|
2899
2796
|
handlePendingCommitClicked() {
|
|
2900
2797
|
return this.commitPending();
|
|
2901
2798
|
}
|
|
@@ -2905,13 +2802,9 @@ class IrisGrid extends Component {
|
|
|
2905
2802
|
handlePendingDataUpdated() {
|
|
2906
2803
|
var _this$grid21;
|
|
2907
2804
|
log.debug('pending data updated');
|
|
2908
|
-
var
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
var {
|
|
2912
|
-
pendingDataMap,
|
|
2913
|
-
pendingDataErrors
|
|
2914
|
-
} = model;
|
|
2805
|
+
var model = this.props.model;
|
|
2806
|
+
var pendingDataMap = model.pendingDataMap,
|
|
2807
|
+
pendingDataErrors = model.pendingDataErrors;
|
|
2915
2808
|
this.setState({
|
|
2916
2809
|
pendingDataMap,
|
|
2917
2810
|
pendingDataErrors,
|
|
@@ -2921,10 +2814,9 @@ class IrisGrid extends Component {
|
|
|
2921
2814
|
}
|
|
2922
2815
|
handleResizeColumn(modelIndex) {
|
|
2923
2816
|
var _this$grid22;
|
|
2924
|
-
var
|
|
2925
|
-
metrics,
|
|
2926
|
-
metricCalculator
|
|
2927
|
-
} = this.state;
|
|
2817
|
+
var _this$state15 = this.state,
|
|
2818
|
+
metrics = _this$state15.metrics,
|
|
2819
|
+
metricCalculator = _this$state15.metricCalculator;
|
|
2928
2820
|
if (!metrics) throw new Error('Metrics not set');
|
|
2929
2821
|
var contentWidth = getOrThrow(metrics.contentColumnWidths, modelIndex);
|
|
2930
2822
|
var userWidths = metricCalculator.getUserColumnWidths();
|
|
@@ -2938,17 +2830,19 @@ class IrisGrid extends Component {
|
|
|
2938
2830
|
}
|
|
2939
2831
|
handleResizeAllColumns() {
|
|
2940
2832
|
var _this$grid23;
|
|
2941
|
-
var
|
|
2942
|
-
metrics,
|
|
2943
|
-
metricCalculator
|
|
2944
|
-
} = this.state;
|
|
2833
|
+
var _this$state16 = this.state,
|
|
2834
|
+
metrics = _this$state16.metrics,
|
|
2835
|
+
metricCalculator = _this$state16.metricCalculator;
|
|
2945
2836
|
if (!metrics) throw new Error('Metrics not set');
|
|
2946
2837
|
var allColumns = [...metrics.allColumnWidths.entries()];
|
|
2947
|
-
var visibleColumns = allColumns.filter(
|
|
2948
|
-
var
|
|
2838
|
+
var visibleColumns = allColumns.filter(_ref25 => {
|
|
2839
|
+
var _ref26 = _slicedToArray(_ref25, 2),
|
|
2840
|
+
_ = _ref26[0],
|
|
2841
|
+
width = _ref26[1];
|
|
2949
2842
|
return width !== 0;
|
|
2950
|
-
}).map(
|
|
2951
|
-
var
|
|
2843
|
+
}).map(_ref27 => {
|
|
2844
|
+
var _ref28 = _slicedToArray(_ref27, 1),
|
|
2845
|
+
modelIndex = _ref28[0];
|
|
2952
2846
|
return modelIndex;
|
|
2953
2847
|
});
|
|
2954
2848
|
var contentWidths = metrics.contentColumnWidths;
|
|
@@ -2984,9 +2878,7 @@ class IrisGrid extends Component {
|
|
|
2984
2878
|
var added = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
2985
2879
|
var removed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
2986
2880
|
log.debug('handleAggregationsChange', aggregationSettings, added, removed);
|
|
2987
|
-
var
|
|
2988
|
-
rollupConfig
|
|
2989
|
-
} = this.state;
|
|
2881
|
+
var rollupConfig = this.state.rollupConfig;
|
|
2990
2882
|
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;
|
|
2991
2883
|
// Do not start loading if this is rollup and added / removed aggregations are prohibited for rollups
|
|
2992
2884
|
var changes = [...added, ...removed];
|
|
@@ -3006,19 +2898,15 @@ class IrisGrid extends Component {
|
|
|
3006
2898
|
handleAggregationChange(aggregation) {
|
|
3007
2899
|
var _rollupConfig$columns3, _rollupConfig$columns4;
|
|
3008
2900
|
log.debug('handleAggregationChange', aggregation);
|
|
3009
|
-
var
|
|
3010
|
-
rollupConfig
|
|
3011
|
-
} = this.state;
|
|
2901
|
+
var rollupConfig = this.state.rollupConfig;
|
|
3012
2902
|
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;
|
|
3013
2903
|
// Do not start loading if this is rollup and the aggregation is prohibited for rollups
|
|
3014
2904
|
var shouldStartLoading = !(isRollup && AggregationUtils.isRollupProhibited(aggregation.operation));
|
|
3015
2905
|
if (shouldStartLoading) {
|
|
3016
2906
|
this.startLoading("Aggregating ".concat(aggregation.operation, "..."));
|
|
3017
2907
|
}
|
|
3018
|
-
this.setState(
|
|
3019
|
-
var
|
|
3020
|
-
aggregationSettings
|
|
3021
|
-
} = _ref20;
|
|
2908
|
+
this.setState(_ref29 => {
|
|
2909
|
+
var aggregationSettings = _ref29.aggregationSettings;
|
|
3022
2910
|
return {
|
|
3023
2911
|
selectedAggregation: aggregation,
|
|
3024
2912
|
aggregationSettings: _objectSpread(_objectSpread({}, aggregationSettings), {}, {
|
|
@@ -3034,9 +2922,7 @@ class IrisGrid extends Component {
|
|
|
3034
2922
|
*/
|
|
3035
2923
|
handleAggregationEdit(aggregation) {
|
|
3036
2924
|
log.debug('handleAggregationEdit', aggregation);
|
|
3037
|
-
var
|
|
3038
|
-
openOptions
|
|
3039
|
-
} = this.state;
|
|
2925
|
+
var openOptions = this.state.openOptions;
|
|
3040
2926
|
this.setState({
|
|
3041
2927
|
openOptions: [...openOptions, {
|
|
3042
2928
|
type: OptionType.AGGREGATION_EDIT,
|
|
@@ -3051,9 +2937,7 @@ class IrisGrid extends Component {
|
|
|
3051
2937
|
|
|
3052
2938
|
// Un-hide hidden group-by columns.
|
|
3053
2939
|
if ((rollupConfig === null || rollupConfig === void 0 ? void 0 : rollupConfig.columns) != null && rollupConfig.columns.length > 0) {
|
|
3054
|
-
var
|
|
3055
|
-
metricCalculator
|
|
3056
|
-
} = this.state;
|
|
2940
|
+
var metricCalculator = this.state.metricCalculator;
|
|
3057
2941
|
var userColumnWidthsByName = metricCalculator.getUserColumnWidthsByName();
|
|
3058
2942
|
rollupConfig.columns.forEach(name => {
|
|
3059
2943
|
if (userColumnWidthsByName.get(name) === 0) {
|
|
@@ -3092,9 +2976,7 @@ class IrisGrid extends Component {
|
|
|
3092
2976
|
});
|
|
3093
2977
|
}
|
|
3094
2978
|
handleDownloadTableStart() {
|
|
3095
|
-
var
|
|
3096
|
-
canDownloadCsv
|
|
3097
|
-
} = this.props;
|
|
2979
|
+
var canDownloadCsv = this.props.canDownloadCsv;
|
|
3098
2980
|
if (canDownloadCsv) {
|
|
3099
2981
|
this.setState({
|
|
3100
2982
|
isTableDownloading: true,
|
|
@@ -3107,9 +2989,7 @@ class IrisGrid extends Component {
|
|
|
3107
2989
|
}
|
|
3108
2990
|
}
|
|
3109
2991
|
handleDownloadTable(fileName, frozenTable, tableSubscription, snapshotRanges, modelRanges, includeColumnHeaders, useUnformattedValues) {
|
|
3110
|
-
var
|
|
3111
|
-
canDownloadCsv
|
|
3112
|
-
} = this.props;
|
|
2992
|
+
var canDownloadCsv = this.props.canDownloadCsv;
|
|
3113
2993
|
if (canDownloadCsv) {
|
|
3114
2994
|
log.info('start table downloading', fileName, frozenTable, tableSubscription, snapshotRanges, modelRanges, includeColumnHeaders, useUnformattedValues);
|
|
3115
2995
|
this.setState(() => {
|
|
@@ -3130,13 +3010,9 @@ class IrisGrid extends Component {
|
|
|
3130
3010
|
*/
|
|
3131
3011
|
removeEmptyAggregations() {
|
|
3132
3012
|
log.debug('removeEmptyAggregations');
|
|
3133
|
-
this.setState(
|
|
3134
|
-
var
|
|
3135
|
-
|
|
3136
|
-
} = _ref21;
|
|
3137
|
-
var {
|
|
3138
|
-
aggregations
|
|
3139
|
-
} = aggregationSettings;
|
|
3013
|
+
this.setState(_ref30 => {
|
|
3014
|
+
var aggregationSettings = _ref30.aggregationSettings;
|
|
3015
|
+
var aggregations = aggregationSettings.aggregations;
|
|
3140
3016
|
var newAggregations = aggregations.filter(a => a.selected.length > 0 || a.invert);
|
|
3141
3017
|
if (newAggregations.length !== aggregations.length) {
|
|
3142
3018
|
return {
|
|
@@ -3158,16 +3034,11 @@ class IrisGrid extends Component {
|
|
|
3158
3034
|
return _asyncToGenerator(function* () {
|
|
3159
3035
|
var _this6$grid;
|
|
3160
3036
|
var isBackwards = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : false;
|
|
3161
|
-
var
|
|
3162
|
-
gotoValueSelectedColumnName
|
|
3163
|
-
gotoValueSelectedFilter
|
|
3164
|
-
|
|
3165
|
-
var
|
|
3166
|
-
model
|
|
3167
|
-
} = _this6.props;
|
|
3168
|
-
var {
|
|
3169
|
-
dh
|
|
3170
|
-
} = model;
|
|
3037
|
+
var _this6$state = _this6.state,
|
|
3038
|
+
selectedColumnName = _this6$state.gotoValueSelectedColumnName,
|
|
3039
|
+
gotoValueSelectedFilter = _this6$state.gotoValueSelectedFilter;
|
|
3040
|
+
var model = _this6.props.model;
|
|
3041
|
+
var dh = model.dh;
|
|
3171
3042
|
if (!model.isSeekRowAvailable) {
|
|
3172
3043
|
return;
|
|
3173
3044
|
}
|
|
@@ -3186,9 +3057,7 @@ class IrisGrid extends Component {
|
|
|
3186
3057
|
var isIgnoreCase = gotoValueSelectedFilter === FilterType.eqIgnoreCase || gotoValueSelectedFilter === FilterType.containsIgnoreCase;
|
|
3187
3058
|
try {
|
|
3188
3059
|
var _this6$grid2;
|
|
3189
|
-
var
|
|
3190
|
-
formatter
|
|
3191
|
-
} = model;
|
|
3060
|
+
var formatter = model.formatter;
|
|
3192
3061
|
var columnDataType = TableUtils.getNormalizedType(selectedColumn.type);
|
|
3193
3062
|
var rowIndex;
|
|
3194
3063
|
switch (columnDataType) {
|
|
@@ -3200,7 +3069,9 @@ class IrisGrid extends Component {
|
|
|
3200
3069
|
}
|
|
3201
3070
|
case TableUtils.dataType.DATETIME:
|
|
3202
3071
|
{
|
|
3203
|
-
var
|
|
3072
|
+
var _DateUtils$parseDateR = DateUtils.parseDateRange(dh, inputString, formatter.timeZone),
|
|
3073
|
+
_DateUtils$parseDateR2 = _slicedToArray(_DateUtils$parseDateR, 1),
|
|
3074
|
+
startDate = _DateUtils$parseDateR2[0];
|
|
3204
3075
|
rowIndex = yield model.seekRow(searchFromRow, selectedColumn, dh.ValueType.DATETIME, startDate, undefined, undefined, isBackwards !== null && isBackwards !== void 0 ? isBackwards : false);
|
|
3205
3076
|
break;
|
|
3206
3077
|
}
|
|
@@ -3263,9 +3134,7 @@ class IrisGrid extends Component {
|
|
|
3263
3134
|
* @param ranges The ranges to delete
|
|
3264
3135
|
*/
|
|
3265
3136
|
deleteRanges(ranges) {
|
|
3266
|
-
var
|
|
3267
|
-
model
|
|
3268
|
-
} = this.props;
|
|
3137
|
+
var model = this.props.model;
|
|
3269
3138
|
if (!isDeletableGridModel(model) || !model.isDeletable) {
|
|
3270
3139
|
throw new Error('Model does not support deleting ranges');
|
|
3271
3140
|
}
|
|
@@ -3279,13 +3148,9 @@ class IrisGrid extends Component {
|
|
|
3279
3148
|
if (this.grid == null) {
|
|
3280
3149
|
return;
|
|
3281
3150
|
}
|
|
3282
|
-
var
|
|
3283
|
-
isSelectingColumn
|
|
3284
|
-
} = this.props;
|
|
3151
|
+
var isSelectingColumn = this.props.isSelectingColumn;
|
|
3285
3152
|
if (isSelectingColumn) {
|
|
3286
|
-
var
|
|
3287
|
-
columnAllowedCursor
|
|
3288
|
-
} = this.props;
|
|
3153
|
+
var columnAllowedCursor = this.props.columnAllowedCursor;
|
|
3289
3154
|
this.grid.setState({
|
|
3290
3155
|
cursor: columnAllowedCursor
|
|
3291
3156
|
});
|
|
@@ -3315,15 +3180,9 @@ class IrisGrid extends Component {
|
|
|
3315
3180
|
if (!this.grid) {
|
|
3316
3181
|
return;
|
|
3317
3182
|
}
|
|
3318
|
-
var
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
var {
|
|
3322
|
-
state: gridState
|
|
3323
|
-
} = this.grid;
|
|
3324
|
-
var {
|
|
3325
|
-
onStateChange
|
|
3326
|
-
} = this.props;
|
|
3183
|
+
var irisGridState = this.state;
|
|
3184
|
+
var gridState = this.grid.state;
|
|
3185
|
+
var onStateChange = this.props.onStateChange;
|
|
3327
3186
|
onStateChange(irisGridState, gridState);
|
|
3328
3187
|
}
|
|
3329
3188
|
handleOverflowClose() {
|
|
@@ -3346,22 +3205,19 @@ class IrisGrid extends Component {
|
|
|
3346
3205
|
}
|
|
3347
3206
|
getColumnBoundingRect() {
|
|
3348
3207
|
var _this$gridWrapper2;
|
|
3349
|
-
var
|
|
3350
|
-
metrics,
|
|
3351
|
-
shownColumnTooltip
|
|
3352
|
-
} = this.state;
|
|
3208
|
+
var _this$state17 = this.state,
|
|
3209
|
+
metrics = _this$state17.metrics,
|
|
3210
|
+
shownColumnTooltip = _this$state17.shownColumnTooltip;
|
|
3353
3211
|
assertNotNull(metrics);
|
|
3354
3212
|
assertNotNull(shownColumnTooltip);
|
|
3355
3213
|
var gridRect = (_this$gridWrapper2 = this.gridWrapper) === null || _this$gridWrapper2 === void 0 ? void 0 : _this$gridWrapper2.getBoundingClientRect();
|
|
3356
3214
|
var popperMargin = 20;
|
|
3357
3215
|
assertNotNull(gridRect);
|
|
3358
|
-
var
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
columnHeaderMaxDepth
|
|
3364
|
-
} = metrics;
|
|
3216
|
+
var columnHeaderHeight = metrics.columnHeaderHeight,
|
|
3217
|
+
allColumnXs = metrics.allColumnXs,
|
|
3218
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
3219
|
+
width = metrics.width,
|
|
3220
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth;
|
|
3365
3221
|
var columnX = allColumnXs.get(shownColumnTooltip);
|
|
3366
3222
|
var columnWidth = allColumnWidths.get(shownColumnTooltip);
|
|
3367
3223
|
assertNotNull(columnX);
|
|
@@ -3382,18 +3238,12 @@ class IrisGrid extends Component {
|
|
|
3382
3238
|
};
|
|
3383
3239
|
}
|
|
3384
3240
|
handleGotoRowSelectedRowNumberSubmit() {
|
|
3385
|
-
var
|
|
3386
|
-
gotoRow: rowNumber
|
|
3387
|
-
} = this.state;
|
|
3241
|
+
var rowNumber = this.state.gotoRow;
|
|
3388
3242
|
this.focusRowInGrid(rowNumber);
|
|
3389
3243
|
}
|
|
3390
3244
|
focusRowInGrid(rowNumber) {
|
|
3391
|
-
var
|
|
3392
|
-
|
|
3393
|
-
} = this.props;
|
|
3394
|
-
var {
|
|
3395
|
-
rowCount
|
|
3396
|
-
} = model;
|
|
3245
|
+
var model = this.props.model;
|
|
3246
|
+
var rowCount = model.rowCount;
|
|
3397
3247
|
this.setState({
|
|
3398
3248
|
gotoRow: rowNumber
|
|
3399
3249
|
});
|
|
@@ -3437,13 +3287,11 @@ class IrisGrid extends Component {
|
|
|
3437
3287
|
this.focusRowInGrid(rowNumber);
|
|
3438
3288
|
}
|
|
3439
3289
|
getColumnTooltip(visibleIndex, metrics, model) {
|
|
3440
|
-
var
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
width
|
|
3446
|
-
} = metrics;
|
|
3290
|
+
var columnHeaderHeight = metrics.columnHeaderHeight,
|
|
3291
|
+
columnHeaderMaxDepth = metrics.columnHeaderMaxDepth,
|
|
3292
|
+
allColumnXs = metrics.allColumnXs,
|
|
3293
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
3294
|
+
width = metrics.width;
|
|
3447
3295
|
var columnX = allColumnXs.get(visibleIndex);
|
|
3448
3296
|
var columnWidth = allColumnWidths.get(visibleIndex);
|
|
3449
3297
|
if (columnX == null || columnWidth == null) {
|
|
@@ -3526,14 +3374,11 @@ class IrisGrid extends Component {
|
|
|
3526
3374
|
}
|
|
3527
3375
|
handleGotoValueSelectedColumnNameChanged(columnName) {
|
|
3528
3376
|
var _this$grid28;
|
|
3529
|
-
var
|
|
3530
|
-
model
|
|
3531
|
-
} = this.props;
|
|
3377
|
+
var model = this.props.model;
|
|
3532
3378
|
var cursorRow = (_this$grid28 = this.grid) === null || _this$grid28 === void 0 ? void 0 : _this$grid28.state.cursorRow;
|
|
3533
|
-
var
|
|
3534
|
-
gotoValueSelectedColumnName
|
|
3535
|
-
gotoValueManuallyChanged
|
|
3536
|
-
} = this.state;
|
|
3379
|
+
var _this$state18 = this.state,
|
|
3380
|
+
prevColumnName = _this$state18.gotoValueSelectedColumnName,
|
|
3381
|
+
gotoValueManuallyChanged = _this$state18.gotoValueManuallyChanged;
|
|
3537
3382
|
if (cursorRow != null) {
|
|
3538
3383
|
var index = model.getColumnIndexByName(columnName);
|
|
3539
3384
|
var column = IrisGridUtils.getColumnByName(model.columns, columnName);
|
|
@@ -3572,9 +3417,7 @@ class IrisGrid extends Component {
|
|
|
3572
3417
|
});
|
|
3573
3418
|
}
|
|
3574
3419
|
handleGotoValueSubmitted(isBackwards) {
|
|
3575
|
-
var
|
|
3576
|
-
gotoValue
|
|
3577
|
-
} = this.state;
|
|
3420
|
+
var gotoValue = this.state.gotoValue;
|
|
3578
3421
|
this.seekRow(gotoValue, isBackwards);
|
|
3579
3422
|
}
|
|
3580
3423
|
|
|
@@ -3601,15 +3444,11 @@ class IrisGrid extends Component {
|
|
|
3601
3444
|
return null;
|
|
3602
3445
|
}
|
|
3603
3446
|
var debounceMs = Math.min(Math.max(IrisGrid.minDebounce, Math.round(metrics.rowCount / 200)), IrisGrid.maxDebounce);
|
|
3604
|
-
var
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
} = filterBoxCoordinates;
|
|
3610
|
-
var {
|
|
3611
|
-
width
|
|
3612
|
-
} = metrics;
|
|
3447
|
+
var x = filterBoxCoordinates.x,
|
|
3448
|
+
y = filterBoxCoordinates.y,
|
|
3449
|
+
fieldWidth = filterBoxCoordinates.width,
|
|
3450
|
+
fieldHeight = filterBoxCoordinates.height;
|
|
3451
|
+
var width = metrics.width;
|
|
3613
3452
|
var style = {
|
|
3614
3453
|
top: y,
|
|
3615
3454
|
left: x,
|
|
@@ -3658,99 +3497,96 @@ class IrisGrid extends Component {
|
|
|
3658
3497
|
_this7 = this,
|
|
3659
3498
|
_this$grid30,
|
|
3660
3499
|
_openOptions;
|
|
3661
|
-
var
|
|
3662
|
-
children,
|
|
3663
|
-
customFilters,
|
|
3664
|
-
getDownloadWorker,
|
|
3665
|
-
isSelectingColumn,
|
|
3666
|
-
isStuckToBottom,
|
|
3667
|
-
isStuckToRight,
|
|
3668
|
-
model,
|
|
3669
|
-
name,
|
|
3670
|
-
onlyFetchVisibleColumns,
|
|
3671
|
-
alwaysFetchColumns,
|
|
3672
|
-
advancedSettings,
|
|
3673
|
-
onAdvancedSettingsChange,
|
|
3674
|
-
canDownloadCsv,
|
|
3675
|
-
onCreateChart
|
|
3676
|
-
|
|
3677
|
-
var
|
|
3678
|
-
metricCalculator,
|
|
3679
|
-
metrics,
|
|
3680
|
-
isFilterBarShown,
|
|
3681
|
-
isSelectingPartition,
|
|
3682
|
-
isMenuShown,
|
|
3683
|
-
isReady,
|
|
3684
|
-
copyOperation,
|
|
3685
|
-
focusedFilterBarColumn,
|
|
3686
|
-
loadingText,
|
|
3687
|
-
loadingScrimProgress,
|
|
3688
|
-
loadingSpinnerShown,
|
|
3689
|
-
loadingCancelShown,
|
|
3690
|
-
loadingBlocksGrid,
|
|
3691
|
-
shownColumnTooltip,
|
|
3692
|
-
hoverAdvancedFilter,
|
|
3693
|
-
shownAdvancedFilter,
|
|
3694
|
-
maximizedAdvancedFilter,
|
|
3695
|
-
hoverSelectColumn,
|
|
3696
|
-
quickFilters,
|
|
3697
|
-
advancedFilters,
|
|
3698
|
-
searchFilter,
|
|
3699
|
-
selectDistinctColumns,
|
|
3700
|
-
movedColumns,
|
|
3701
|
-
movedRows,
|
|
3702
|
-
formatter,
|
|
3703
|
-
conditionalFormats,
|
|
3704
|
-
conditionalFormatPreview,
|
|
3705
|
-
conditionalFormatEditIndex,
|
|
3706
|
-
columnAlignmentMap,
|
|
3707
|
-
sorts,
|
|
3708
|
-
reverse,
|
|
3709
|
-
customColumns,
|
|
3710
|
-
selectedRanges,
|
|
3711
|
-
isTableDownloading,
|
|
3712
|
-
tableDownloadStatus,
|
|
3713
|
-
tableDownloadProgress,
|
|
3714
|
-
tableDownloadEstimatedTime,
|
|
3715
|
-
showSearchBar,
|
|
3716
|
-
searchValue,
|
|
3717
|
-
selectedSearchColumns,
|
|
3718
|
-
invertSearchColumns,
|
|
3719
|
-
aggregationSettings,
|
|
3720
|
-
selectedAggregation,
|
|
3721
|
-
rollupConfig,
|
|
3722
|
-
openOptions,
|
|
3723
|
-
pendingSavePromise,
|
|
3724
|
-
pendingSaveError,
|
|
3725
|
-
pendingRowCount,
|
|
3726
|
-
pendingDataErrors,
|
|
3727
|
-
pendingDataMap,
|
|
3728
|
-
toastMessage,
|
|
3729
|
-
frozenColumns,
|
|
3730
|
-
columnHeaderGroups,
|
|
3731
|
-
showOverflowModal,
|
|
3732
|
-
showNoPastePermissionModal,
|
|
3733
|
-
noPastePermissionError,
|
|
3734
|
-
overflowText,
|
|
3735
|
-
overflowButtonTooltipProps,
|
|
3736
|
-
expandCellTooltipProps,
|
|
3737
|
-
hoverTooltipProps,
|
|
3738
|
-
isGotoShown,
|
|
3739
|
-
gotoRow,
|
|
3740
|
-
gotoRowError,
|
|
3741
|
-
gotoValueError,
|
|
3742
|
-
gotoValueSelectedColumnName,
|
|
3743
|
-
gotoValue,
|
|
3744
|
-
gotoValueSelectedFilter,
|
|
3745
|
-
partitionConfig
|
|
3746
|
-
} = this.state;
|
|
3500
|
+
var _this$props8 = this.props,
|
|
3501
|
+
children = _this$props8.children,
|
|
3502
|
+
customFilters = _this$props8.customFilters,
|
|
3503
|
+
getDownloadWorker = _this$props8.getDownloadWorker,
|
|
3504
|
+
isSelectingColumn = _this$props8.isSelectingColumn,
|
|
3505
|
+
isStuckToBottom = _this$props8.isStuckToBottom,
|
|
3506
|
+
isStuckToRight = _this$props8.isStuckToRight,
|
|
3507
|
+
model = _this$props8.model,
|
|
3508
|
+
name = _this$props8.name,
|
|
3509
|
+
onlyFetchVisibleColumns = _this$props8.onlyFetchVisibleColumns,
|
|
3510
|
+
alwaysFetchColumns = _this$props8.alwaysFetchColumns,
|
|
3511
|
+
advancedSettings = _this$props8.advancedSettings,
|
|
3512
|
+
onAdvancedSettingsChange = _this$props8.onAdvancedSettingsChange,
|
|
3513
|
+
canDownloadCsv = _this$props8.canDownloadCsv,
|
|
3514
|
+
onCreateChart = _this$props8.onCreateChart,
|
|
3515
|
+
transformTableOptions = _this$props8.transformTableOptions;
|
|
3516
|
+
var _this$state19 = this.state,
|
|
3517
|
+
metricCalculator = _this$state19.metricCalculator,
|
|
3518
|
+
metrics = _this$state19.metrics,
|
|
3519
|
+
isFilterBarShown = _this$state19.isFilterBarShown,
|
|
3520
|
+
isSelectingPartition = _this$state19.isSelectingPartition,
|
|
3521
|
+
isMenuShown = _this$state19.isMenuShown,
|
|
3522
|
+
isReady = _this$state19.isReady,
|
|
3523
|
+
copyOperation = _this$state19.copyOperation,
|
|
3524
|
+
focusedFilterBarColumn = _this$state19.focusedFilterBarColumn,
|
|
3525
|
+
loadingText = _this$state19.loadingText,
|
|
3526
|
+
loadingScrimProgress = _this$state19.loadingScrimProgress,
|
|
3527
|
+
loadingSpinnerShown = _this$state19.loadingSpinnerShown,
|
|
3528
|
+
loadingCancelShown = _this$state19.loadingCancelShown,
|
|
3529
|
+
loadingBlocksGrid = _this$state19.loadingBlocksGrid,
|
|
3530
|
+
shownColumnTooltip = _this$state19.shownColumnTooltip,
|
|
3531
|
+
hoverAdvancedFilter = _this$state19.hoverAdvancedFilter,
|
|
3532
|
+
shownAdvancedFilter = _this$state19.shownAdvancedFilter,
|
|
3533
|
+
maximizedAdvancedFilter = _this$state19.maximizedAdvancedFilter,
|
|
3534
|
+
hoverSelectColumn = _this$state19.hoverSelectColumn,
|
|
3535
|
+
quickFilters = _this$state19.quickFilters,
|
|
3536
|
+
advancedFilters = _this$state19.advancedFilters,
|
|
3537
|
+
searchFilter = _this$state19.searchFilter,
|
|
3538
|
+
selectDistinctColumns = _this$state19.selectDistinctColumns,
|
|
3539
|
+
movedColumns = _this$state19.movedColumns,
|
|
3540
|
+
movedRows = _this$state19.movedRows,
|
|
3541
|
+
formatter = _this$state19.formatter,
|
|
3542
|
+
conditionalFormats = _this$state19.conditionalFormats,
|
|
3543
|
+
conditionalFormatPreview = _this$state19.conditionalFormatPreview,
|
|
3544
|
+
conditionalFormatEditIndex = _this$state19.conditionalFormatEditIndex,
|
|
3545
|
+
columnAlignmentMap = _this$state19.columnAlignmentMap,
|
|
3546
|
+
sorts = _this$state19.sorts,
|
|
3547
|
+
reverse = _this$state19.reverse,
|
|
3548
|
+
customColumns = _this$state19.customColumns,
|
|
3549
|
+
selectedRanges = _this$state19.selectedRanges,
|
|
3550
|
+
isTableDownloading = _this$state19.isTableDownloading,
|
|
3551
|
+
tableDownloadStatus = _this$state19.tableDownloadStatus,
|
|
3552
|
+
tableDownloadProgress = _this$state19.tableDownloadProgress,
|
|
3553
|
+
tableDownloadEstimatedTime = _this$state19.tableDownloadEstimatedTime,
|
|
3554
|
+
showSearchBar = _this$state19.showSearchBar,
|
|
3555
|
+
searchValue = _this$state19.searchValue,
|
|
3556
|
+
selectedSearchColumns = _this$state19.selectedSearchColumns,
|
|
3557
|
+
invertSearchColumns = _this$state19.invertSearchColumns,
|
|
3558
|
+
aggregationSettings = _this$state19.aggregationSettings,
|
|
3559
|
+
selectedAggregation = _this$state19.selectedAggregation,
|
|
3560
|
+
rollupConfig = _this$state19.rollupConfig,
|
|
3561
|
+
openOptions = _this$state19.openOptions,
|
|
3562
|
+
pendingSavePromise = _this$state19.pendingSavePromise,
|
|
3563
|
+
pendingSaveError = _this$state19.pendingSaveError,
|
|
3564
|
+
pendingRowCount = _this$state19.pendingRowCount,
|
|
3565
|
+
pendingDataErrors = _this$state19.pendingDataErrors,
|
|
3566
|
+
pendingDataMap = _this$state19.pendingDataMap,
|
|
3567
|
+
toastMessage = _this$state19.toastMessage,
|
|
3568
|
+
frozenColumns = _this$state19.frozenColumns,
|
|
3569
|
+
columnHeaderGroups = _this$state19.columnHeaderGroups,
|
|
3570
|
+
showOverflowModal = _this$state19.showOverflowModal,
|
|
3571
|
+
showNoPastePermissionModal = _this$state19.showNoPastePermissionModal,
|
|
3572
|
+
noPastePermissionError = _this$state19.noPastePermissionError,
|
|
3573
|
+
overflowText = _this$state19.overflowText,
|
|
3574
|
+
overflowButtonTooltipProps = _this$state19.overflowButtonTooltipProps,
|
|
3575
|
+
expandCellTooltipProps = _this$state19.expandCellTooltipProps,
|
|
3576
|
+
hoverTooltipProps = _this$state19.hoverTooltipProps,
|
|
3577
|
+
isGotoShown = _this$state19.isGotoShown,
|
|
3578
|
+
gotoRow = _this$state19.gotoRow,
|
|
3579
|
+
gotoRowError = _this$state19.gotoRowError,
|
|
3580
|
+
gotoValueError = _this$state19.gotoValueError,
|
|
3581
|
+
gotoValueSelectedColumnName = _this$state19.gotoValueSelectedColumnName,
|
|
3582
|
+
gotoValue = _this$state19.gotoValue,
|
|
3583
|
+
gotoValueSelectedFilter = _this$state19.gotoValueSelectedFilter,
|
|
3584
|
+
partitionConfig = _this$state19.partitionConfig;
|
|
3747
3585
|
if (!isReady) {
|
|
3748
3586
|
return null;
|
|
3749
3587
|
}
|
|
3750
3588
|
var theme = this.getTheme();
|
|
3751
|
-
var
|
|
3752
|
-
columnHeaderHeight: singleColumnHeaderHeight
|
|
3753
|
-
} = theme;
|
|
3589
|
+
var singleColumnHeaderHeight = theme.columnHeaderHeight;
|
|
3754
3590
|
var filter = this.getCachedFilter(customFilters, quickFilters, advancedFilters, searchFilter);
|
|
3755
3591
|
var userColumnWidths = metricCalculator.getUserColumnWidths();
|
|
3756
3592
|
var stateOverride = this.getCachedStateOverride(model, theme, hoverSelectColumn, isFilterBarShown, isSelectingColumn, loadingScrimProgress, quickFilters, advancedFilters, sorts, reverse, rollupConfig, isMenuShown);
|
|
@@ -3807,9 +3643,7 @@ class IrisGrid extends Component {
|
|
|
3807
3643
|
var metricState = this.getMetricState();
|
|
3808
3644
|
|
|
3809
3645
|
// Advanced Filter buttons
|
|
3810
|
-
var
|
|
3811
|
-
visibleColumns
|
|
3812
|
-
} = metrics;
|
|
3646
|
+
var visibleColumns = metrics.visibleColumns;
|
|
3813
3647
|
var _loop2 = function _loop2() {
|
|
3814
3648
|
var columnIndex = visibleColumns[i];
|
|
3815
3649
|
var modelColumn = _this7.getModelColumn(columnIndex);
|
|
@@ -3817,10 +3651,8 @@ class IrisGrid extends Component {
|
|
|
3817
3651
|
var isFilterable = model.isFilterable(modelColumn);
|
|
3818
3652
|
var buttonCoordinates = isFilterable && metricState ? metricCalculator.getAdvancedFilterButtonCoordinates(columnIndex, metricState, metrics) : null;
|
|
3819
3653
|
if (buttonCoordinates != null) {
|
|
3820
|
-
var
|
|
3821
|
-
|
|
3822
|
-
y
|
|
3823
|
-
} = buttonCoordinates;
|
|
3654
|
+
var x = buttonCoordinates.x,
|
|
3655
|
+
y = buttonCoordinates.y;
|
|
3824
3656
|
var style = {
|
|
3825
3657
|
position: 'absolute',
|
|
3826
3658
|
top: y,
|
|
@@ -3881,13 +3713,11 @@ class IrisGrid extends Component {
|
|
|
3881
3713
|
}
|
|
3882
3714
|
var advancedFilterMenus = [];
|
|
3883
3715
|
if (metrics) {
|
|
3884
|
-
var
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
columnHeaderHeight
|
|
3890
|
-
} = metrics;
|
|
3716
|
+
var gridX = metrics.gridX,
|
|
3717
|
+
_visibleColumns = metrics.visibleColumns,
|
|
3718
|
+
allColumnXs = metrics.allColumnXs,
|
|
3719
|
+
allColumnWidths = metrics.allColumnWidths,
|
|
3720
|
+
columnHeaderHeight = metrics.columnHeaderHeight;
|
|
3891
3721
|
var _loop3 = function _loop3() {
|
|
3892
3722
|
var columnIndex = _visibleColumns[_i4];
|
|
3893
3723
|
var columnX = allColumnXs.get(columnIndex);
|
|
@@ -3918,9 +3748,8 @@ class IrisGrid extends Component {
|
|
|
3918
3748
|
return 1; // continue
|
|
3919
3749
|
}
|
|
3920
3750
|
var advancedFilter = advancedFilters.get(modelColumn);
|
|
3921
|
-
var {
|
|
3922
|
-
options
|
|
3923
|
-
} = advancedFilter || {};
|
|
3751
|
+
var _ref31 = advancedFilter || {},
|
|
3752
|
+
advancedFilterOptions = _ref31.options;
|
|
3924
3753
|
var sort = TableUtils.getSortForColumn(model.sort, column.name);
|
|
3925
3754
|
var sortDirection = sort ? sort.direction : null;
|
|
3926
3755
|
if (!isSortDirection(sortDirection)) {
|
|
@@ -3953,7 +3782,8 @@ class IrisGrid extends Component {
|
|
|
3953
3782
|
if (_loop3()) continue;
|
|
3954
3783
|
}
|
|
3955
3784
|
}
|
|
3956
|
-
var
|
|
3785
|
+
var defaultOptionItems = 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);
|
|
3786
|
+
var optionItems = this.getCachedTransformedOptionItems(defaultOptionItems, transformTableOptions);
|
|
3957
3787
|
var hiddenColumns = this.getCachedHiddenColumns(metricCalculator, userColumnWidths);
|
|
3958
3788
|
var openOptionsStack = openOptions.map(option => {
|
|
3959
3789
|
switch (option.type) {
|
|
@@ -4048,7 +3878,25 @@ class IrisGrid extends Component {
|
|
|
4048
3878
|
onChange: onAdvancedSettingsChange
|
|
4049
3879
|
});
|
|
4050
3880
|
default:
|
|
4051
|
-
|
|
3881
|
+
{
|
|
3882
|
+
// Plugin-contributed items render their own page via
|
|
3883
|
+
// `configPage`. The page is isolated inside an error
|
|
3884
|
+
// boundary so a throwing plugin doesn't tear down the
|
|
3885
|
+
// entire grid subtree. Built-in items that hit the default
|
|
3886
|
+
// case indicate a programmer error (unhandled enum case).
|
|
3887
|
+
var PluginPage = option.configPage;
|
|
3888
|
+
if (PluginPage == null) {
|
|
3889
|
+
throw Error("Unexpected option type ".concat(option.type));
|
|
3890
|
+
}
|
|
3891
|
+
return /*#__PURE__*/_jsx(PluginTableOptionsErrorBoundary, {
|
|
3892
|
+
itemType: String(option.type),
|
|
3893
|
+
onBack: this.handleMenuBack,
|
|
3894
|
+
children: /*#__PURE__*/_jsx(PluginPage, {
|
|
3895
|
+
model: model,
|
|
3896
|
+
onBack: this.handleMenuBack
|
|
3897
|
+
})
|
|
3898
|
+
}, String(option.type));
|
|
3899
|
+
}
|
|
4052
3900
|
}
|
|
4053
3901
|
});
|
|
4054
3902
|
return /*#__PURE__*/_jsxs("div", {
|