@deephaven/iris-grid 0.38.1-beta.7 → 0.38.1
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 +2 -4
- package/dist/AdvancedFilterCreator.d.ts +2 -3
- package/dist/AdvancedFilterCreator.d.ts.map +1 -1
- package/dist/AdvancedFilterCreator.js +4 -8
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.d.ts +3 -4
- package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +4 -5
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.d.ts +2 -4
- package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +3 -11
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts +1 -3
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +5 -7
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnStatistics.d.ts +1 -1
- package/dist/ColumnStatistics.d.ts.map +1 -1
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.d.ts +1 -1
- package/dist/CommonTypes.d.ts.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.d.ts +2 -2
- package/dist/CrossColumnSearch.d.ts.map +1 -1
- package/dist/CrossColumnSearch.js +2 -1
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/GotoRow.d.ts +1 -3
- package/dist/GotoRow.d.ts.map +1 -1
- package/dist/GotoRow.js +0 -1
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.css +0 -3
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.d.ts +6 -8
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +33 -46
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.d.ts +1 -1
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +1 -1
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.d.ts +2 -2
- package/dist/IrisGridModelFactory.d.ts.map +1 -1
- package/dist/IrisGridModelFactory.js +3 -3
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +2 -3
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +2 -2
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.d.ts +1 -2
- package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
- package/dist/IrisGridPartitionSelector.js +0 -2
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +2 -3
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +9 -11
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.d.ts +27 -19
- package/dist/IrisGridRenderer.d.ts.map +1 -1
- package/dist/IrisGridRenderer.js +205 -64
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +2 -2
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +6 -6
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +3 -8
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +15 -36
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.d.ts +3 -2
- package/dist/IrisGridTestUtils.d.ts.map +1 -1
- package/dist/IrisGridTestUtils.js +6 -5
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTheme.d.ts.map +1 -1
- package/dist/IrisGridTheme.js +1 -4
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridTheme.module.css +0 -3
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +1 -1
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +85 -88
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +558 -569
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/PartitionSelectorSearch.d.ts +1 -2
- package/dist/PartitionSelectorSearch.d.ts.map +1 -1
- package/dist/PartitionSelectorSearch.js +1 -3
- package/dist/PartitionSelectorSearch.js.map +1 -1
- package/dist/TableViewportUpdater.d.ts +1 -1
- package/dist/TableViewportUpdater.d.ts.map +1 -1
- package/dist/TableViewportUpdater.js.map +1 -1
- package/dist/TreeTableViewportUpdater.d.ts +1 -2
- package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
- package/dist/TreeTableViewportUpdater.js +1 -1
- package/dist/TreeTableViewportUpdater.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +9 -10
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +28 -41
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +3 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts +11 -12
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.js +81 -98
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/RollupRows.d.ts +1 -1
- package/dist/sidebar/RollupRows.d.ts.map +1 -1
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.d.ts +1 -1
- package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.d.ts +2 -3
- package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +3 -3
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.d.ts +1 -2
- package/dist/sidebar/TableSaver.d.ts.map +1 -1
- package/dist/sidebar/TableSaver.js +1 -4
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.d.ts +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +0 -2
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +0 -2
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +0 -2
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -3
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +0 -2
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts +2 -2
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +3 -3
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +3 -3
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +0 -2
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +0 -2
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +15 -16
- package/dist/IrisGridCellRendererUtils.d.ts +0 -7
- package/dist/IrisGridCellRendererUtils.d.ts.map +0 -1
- package/dist/IrisGridCellRendererUtils.js +0 -20
- package/dist/IrisGridCellRendererUtils.js.map +0 -1
- package/dist/IrisGridDataBarCellRenderer.d.ts +0 -7
- package/dist/IrisGridDataBarCellRenderer.d.ts.map +0 -1
- package/dist/IrisGridDataBarCellRenderer.js +0 -10
- package/dist/IrisGridDataBarCellRenderer.js.map +0 -1
- package/dist/IrisGridIcons.d.ts +0 -4
- package/dist/IrisGridIcons.d.ts.map +0 -1
- package/dist/IrisGridIcons.js +0 -25
- package/dist/IrisGridIcons.js.map +0 -1
- package/dist/IrisGridTextCellRenderer.d.ts +0 -20
- package/dist/IrisGridTextCellRenderer.d.ts.map +0 -1
- package/dist/IrisGridTextCellRenderer.js +0 -139
- package/dist/IrisGridTextCellRenderer.js.map +0 -1
package/dist/IrisGridUtils.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
var _excluded = ["selectedValues"],
|
|
2
2
|
_excluded2 = ["selectedValues"];
|
|
3
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
5
3
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
4
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
6
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
9
7
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
10
|
import { GridUtils } from '@deephaven/grid';
|
|
11
|
+
import dh from '@deephaven/jsapi-shim';
|
|
11
12
|
import { DateUtils, TableUtils } from '@deephaven/jsapi-utils';
|
|
12
13
|
import Log from '@deephaven/log';
|
|
13
14
|
import { assertNotNull, EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';
|
|
@@ -116,6 +117,152 @@ class IrisGridUtils {
|
|
|
116
117
|
};
|
|
117
118
|
}
|
|
118
119
|
|
|
120
|
+
/**
|
|
121
|
+
* Exports the state from IrisGrid to a JSON stringifiable object
|
|
122
|
+
* @param model The table model to export the state for
|
|
123
|
+
* @param irisGridState The current state of the IrisGrid
|
|
124
|
+
*/
|
|
125
|
+
static dehydrateIrisGridState(model, irisGridState) {
|
|
126
|
+
var {
|
|
127
|
+
aggregationSettings = {
|
|
128
|
+
aggregations: EMPTY_ARRAY,
|
|
129
|
+
showOnTop: false
|
|
130
|
+
},
|
|
131
|
+
advancedFilters,
|
|
132
|
+
customColumnFormatMap,
|
|
133
|
+
isFilterBarShown,
|
|
134
|
+
metrics,
|
|
135
|
+
quickFilters,
|
|
136
|
+
customColumns,
|
|
137
|
+
conditionalFormats = EMPTY_ARRAY,
|
|
138
|
+
reverseType,
|
|
139
|
+
rollupConfig = undefined,
|
|
140
|
+
showSearchBar,
|
|
141
|
+
searchValue,
|
|
142
|
+
selectDistinctColumns = EMPTY_ARRAY,
|
|
143
|
+
selectedSearchColumns,
|
|
144
|
+
sorts,
|
|
145
|
+
invertSearchColumns,
|
|
146
|
+
pendingDataMap = EMPTY_MAP,
|
|
147
|
+
frozenColumns,
|
|
148
|
+
columnHeaderGroups
|
|
149
|
+
} = irisGridState;
|
|
150
|
+
assertNotNull(metrics);
|
|
151
|
+
var {
|
|
152
|
+
userColumnWidths,
|
|
153
|
+
userRowHeights
|
|
154
|
+
} = metrics;
|
|
155
|
+
var {
|
|
156
|
+
columns
|
|
157
|
+
} = model;
|
|
158
|
+
return {
|
|
159
|
+
advancedFilters: IrisGridUtils.dehydrateAdvancedFilters(columns, advancedFilters),
|
|
160
|
+
aggregationSettings,
|
|
161
|
+
customColumnFormatMap: [...customColumnFormatMap],
|
|
162
|
+
isFilterBarShown,
|
|
163
|
+
quickFilters: IrisGridUtils.dehydrateQuickFilters(quickFilters),
|
|
164
|
+
sorts: IrisGridUtils.dehydrateSort(sorts),
|
|
165
|
+
userColumnWidths: [...userColumnWidths].filter(_ref6 => {
|
|
166
|
+
var [columnIndex] = _ref6;
|
|
167
|
+
return columnIndex != null && columnIndex >= 0 && columnIndex < columns.length;
|
|
168
|
+
}).map(_ref7 => {
|
|
169
|
+
var [columnIndex, width] = _ref7;
|
|
170
|
+
return [columns[columnIndex].name, width];
|
|
171
|
+
}),
|
|
172
|
+
userRowHeights: [...userRowHeights],
|
|
173
|
+
customColumns: [...customColumns],
|
|
174
|
+
conditionalFormats: [...conditionalFormats],
|
|
175
|
+
reverseType,
|
|
176
|
+
rollupConfig,
|
|
177
|
+
showSearchBar,
|
|
178
|
+
searchValue,
|
|
179
|
+
selectDistinctColumns: [...selectDistinctColumns],
|
|
180
|
+
selectedSearchColumns,
|
|
181
|
+
invertSearchColumns,
|
|
182
|
+
pendingDataMap: IrisGridUtils.dehydratePendingDataMap(columns, pendingDataMap),
|
|
183
|
+
frozenColumns,
|
|
184
|
+
columnHeaderGroups: columnHeaderGroups === null || columnHeaderGroups === void 0 ? void 0 : columnHeaderGroups.map(item => ({
|
|
185
|
+
name: item.name,
|
|
186
|
+
children: item.children,
|
|
187
|
+
color: item.color
|
|
188
|
+
}))
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Import a state for IrisGrid that was exported with {{@link dehydrateIrisGridState}}
|
|
194
|
+
* @param model The table model to import the state with
|
|
195
|
+
* @param irisGridState The saved IrisGrid state
|
|
196
|
+
*/
|
|
197
|
+
static hydrateIrisGridState(model, irisGridState) {
|
|
198
|
+
var _ref11, _model$layoutHints;
|
|
199
|
+
var {
|
|
200
|
+
advancedFilters,
|
|
201
|
+
aggregationSettings = {
|
|
202
|
+
aggregations: [],
|
|
203
|
+
showOnTop: false
|
|
204
|
+
},
|
|
205
|
+
customColumnFormatMap,
|
|
206
|
+
isFilterBarShown,
|
|
207
|
+
quickFilters,
|
|
208
|
+
sorts,
|
|
209
|
+
customColumns,
|
|
210
|
+
conditionalFormats,
|
|
211
|
+
userColumnWidths,
|
|
212
|
+
userRowHeights,
|
|
213
|
+
reverseType,
|
|
214
|
+
rollupConfig = undefined,
|
|
215
|
+
showSearchBar,
|
|
216
|
+
searchValue,
|
|
217
|
+
selectDistinctColumns,
|
|
218
|
+
selectedSearchColumns,
|
|
219
|
+
invertSearchColumns = true,
|
|
220
|
+
pendingDataMap = [],
|
|
221
|
+
frozenColumns,
|
|
222
|
+
columnHeaderGroups
|
|
223
|
+
} = irisGridState;
|
|
224
|
+
var {
|
|
225
|
+
columns,
|
|
226
|
+
formatter
|
|
227
|
+
} = model;
|
|
228
|
+
return {
|
|
229
|
+
advancedFilters: IrisGridUtils.hydrateAdvancedFilters(columns, advancedFilters, formatter.timeZone),
|
|
230
|
+
aggregationSettings,
|
|
231
|
+
customColumnFormatMap: new Map(customColumnFormatMap),
|
|
232
|
+
isFilterBarShown,
|
|
233
|
+
quickFilters: IrisGridUtils.hydrateQuickFilters(columns, quickFilters, formatter.timeZone),
|
|
234
|
+
sorts: IrisGridUtils.hydrateSort(columns, sorts),
|
|
235
|
+
userColumnWidths: new Map(userColumnWidths.map(_ref8 => {
|
|
236
|
+
var [column, width] = _ref8;
|
|
237
|
+
if (typeof column === 'string' || column instanceof String) {
|
|
238
|
+
return [columns.findIndex(_ref9 => {
|
|
239
|
+
var {
|
|
240
|
+
name
|
|
241
|
+
} = _ref9;
|
|
242
|
+
return name === column;
|
|
243
|
+
}), width];
|
|
244
|
+
}
|
|
245
|
+
return [column, width];
|
|
246
|
+
}).filter(_ref10 => {
|
|
247
|
+
var [column] = _ref10;
|
|
248
|
+
return column != null && column >= 0 && column < columns.length;
|
|
249
|
+
})),
|
|
250
|
+
customColumns,
|
|
251
|
+
conditionalFormats,
|
|
252
|
+
userRowHeights: new Map(userRowHeights),
|
|
253
|
+
reverseType,
|
|
254
|
+
rollupConfig,
|
|
255
|
+
showSearchBar,
|
|
256
|
+
searchValue,
|
|
257
|
+
selectDistinctColumns,
|
|
258
|
+
selectedSearchColumns,
|
|
259
|
+
invertSearchColumns,
|
|
260
|
+
pendingDataMap: IrisGridUtils.hydratePendingDataMap(columns, pendingDataMap),
|
|
261
|
+
frozenColumns,
|
|
262
|
+
columnHeaderGroups: IrisGridUtils.parseColumnHeaderGroups(model, (_ref11 = columnHeaderGroups !== null && columnHeaderGroups !== void 0 ? columnHeaderGroups : (_model$layoutHints = model.layoutHints) === null || _model$layoutHints === void 0 ? void 0 : _model$layoutHints.columnGroups) !== null && _ref11 !== void 0 ? _ref11 : []).groups
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
|
|
119
266
|
/**
|
|
120
267
|
* Export the IrisGridPanel state.
|
|
121
268
|
* @param model The table model the state is being dehydrated with
|
|
@@ -167,8 +314,8 @@ class IrisGridUtils {
|
|
|
167
314
|
* @returns The dehydrated quick filters
|
|
168
315
|
*/
|
|
169
316
|
static dehydrateQuickFilters(quickFilters) {
|
|
170
|
-
return [...quickFilters].map(
|
|
171
|
-
var [columnIndex, quickFilter] =
|
|
317
|
+
return [...quickFilters].map(_ref12 => {
|
|
318
|
+
var [columnIndex, quickFilter] = _ref12;
|
|
172
319
|
var {
|
|
173
320
|
text
|
|
174
321
|
} = quickFilter;
|
|
@@ -177,107 +324,387 @@ class IrisGridUtils {
|
|
|
177
324
|
}];
|
|
178
325
|
});
|
|
179
326
|
}
|
|
180
|
-
static dehydrateLong(value) {
|
|
181
|
-
return value != null ? "".concat(value) : null;
|
|
182
|
-
}
|
|
183
327
|
|
|
184
328
|
/**
|
|
185
|
-
*
|
|
186
|
-
* @param
|
|
187
|
-
* @
|
|
329
|
+
* Import the saved quick filters to apply to the columns. Does not actually apply the filters.
|
|
330
|
+
* @param columns The columns the filters will be applied to
|
|
331
|
+
* @param savedQuickFilters Exported quick filters definitions
|
|
332
|
+
* @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
|
|
333
|
+
* @returns The quick filters to apply to the columns
|
|
188
334
|
*/
|
|
189
|
-
static
|
|
190
|
-
|
|
335
|
+
static hydrateQuickFilters(columns, savedQuickFilters, timeZone) {
|
|
336
|
+
var importedFilters = savedQuickFilters.map(_ref13 => {
|
|
337
|
+
var [columnIndex, quickFilter] = _ref13;
|
|
191
338
|
var {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
column
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
339
|
+
text
|
|
340
|
+
} = quickFilter;
|
|
341
|
+
var filter = null;
|
|
342
|
+
try {
|
|
343
|
+
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
344
|
+
if (column != null) {
|
|
345
|
+
filter = TableUtils.makeQuickFilter(column, text, timeZone);
|
|
346
|
+
}
|
|
347
|
+
} catch (error) {
|
|
348
|
+
log.error('hydrateQuickFilters error with', text, error);
|
|
349
|
+
}
|
|
350
|
+
return [columnIndex, {
|
|
351
|
+
text,
|
|
352
|
+
filter
|
|
353
|
+
}];
|
|
201
354
|
});
|
|
355
|
+
return new Map(importedFilters);
|
|
202
356
|
}
|
|
203
357
|
|
|
204
358
|
/**
|
|
205
|
-
*
|
|
206
|
-
* @param
|
|
207
|
-
* @
|
|
359
|
+
* Export the advanced filters from the provided columns to JSON striginfiable object
|
|
360
|
+
* @param columns The columns for the filters
|
|
361
|
+
* @param advancedFilters The advanced filters to dehydrate
|
|
362
|
+
* @returns The dehydrated advanced filters
|
|
208
363
|
*/
|
|
209
|
-
static
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
} = irisGridPanelState;
|
|
219
|
-
var {
|
|
220
|
-
advancedFilters,
|
|
221
|
-
quickFilters,
|
|
222
|
-
sorts
|
|
223
|
-
} = irisGridState;
|
|
224
|
-
return {
|
|
225
|
-
advancedFilters,
|
|
226
|
-
inputFilters,
|
|
227
|
-
partition,
|
|
228
|
-
partitionColumn,
|
|
229
|
-
quickFilters,
|
|
230
|
-
sorts
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
static getInputFiltersForColumns(columns) {
|
|
234
|
-
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
235
|
-
return inputFilters.filter(_ref7 => {
|
|
236
|
-
var {
|
|
237
|
-
name,
|
|
238
|
-
type
|
|
239
|
-
} = _ref7;
|
|
240
|
-
return columns.find(_ref8 => {
|
|
241
|
-
var {
|
|
242
|
-
name: columnName,
|
|
243
|
-
type: columnType
|
|
244
|
-
} = _ref8;
|
|
245
|
-
return columnName === name && columnType === type;
|
|
246
|
-
});
|
|
364
|
+
static dehydrateAdvancedFilters(columns, advancedFilters) {
|
|
365
|
+
return [...advancedFilters].map(_ref14 => {
|
|
366
|
+
var [columnIndex, advancedFilter] = _ref14;
|
|
367
|
+
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
368
|
+
assertNotNull(column);
|
|
369
|
+
var options = IrisGridUtils.dehydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
370
|
+
return [columnIndex, {
|
|
371
|
+
options
|
|
372
|
+
}];
|
|
247
373
|
});
|
|
248
374
|
}
|
|
249
|
-
static getFiltersFromFilterMap(filterMap) {
|
|
250
|
-
var filters = [];
|
|
251
|
-
var keys = Array.from(filterMap.keys());
|
|
252
|
-
for (var i = 0; i < keys.length; i += 1) {
|
|
253
|
-
var key = keys[i];
|
|
254
|
-
var item = filterMap.get(key);
|
|
255
|
-
if ((item === null || item === void 0 ? void 0 : item.filter) != null) {
|
|
256
|
-
filters.push(item.filter);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
return filters;
|
|
260
|
-
}
|
|
261
375
|
|
|
262
376
|
/**
|
|
263
|
-
*
|
|
264
|
-
* @param
|
|
265
|
-
* @
|
|
377
|
+
* Import the saved advanced filters to apply to the columns. Does not actually apply the filters.
|
|
378
|
+
* @param columns The columns the filters will be applied to
|
|
379
|
+
* @param savedAdvancedFilters Exported advanced filters definitions
|
|
380
|
+
* @param timeZone The time zone to make this filter in if it is a date type. E.g. America/New_York
|
|
381
|
+
* @returns The advanced filters to apply to the columns
|
|
266
382
|
*/
|
|
267
|
-
static
|
|
268
|
-
|
|
269
|
-
var [,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
var
|
|
273
|
-
|
|
383
|
+
static hydrateAdvancedFilters(columns, savedAdvancedFilters, timeZone) {
|
|
384
|
+
var importedFilters = savedAdvancedFilters.map(_ref15 => {
|
|
385
|
+
var [columnIndex, advancedFilter] = _ref15;
|
|
386
|
+
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
387
|
+
assertNotNull(column);
|
|
388
|
+
var options = IrisGridUtils.hydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
389
|
+
var filter = null;
|
|
390
|
+
try {
|
|
391
|
+
var columnRetrieved = IrisGridUtils.getColumn(columns, columnIndex);
|
|
392
|
+
if (columnRetrieved != null) {
|
|
393
|
+
filter = TableUtils.makeAdvancedFilter(column, options, timeZone);
|
|
394
|
+
}
|
|
395
|
+
} catch (error) {
|
|
396
|
+
log.error('hydrateAdvancedFilters error with', options, error);
|
|
397
|
+
}
|
|
398
|
+
return [columnIndex, {
|
|
399
|
+
options,
|
|
400
|
+
filter
|
|
401
|
+
}];
|
|
274
402
|
});
|
|
403
|
+
return new Map(importedFilters);
|
|
275
404
|
}
|
|
276
|
-
static
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
405
|
+
static dehydrateAdvancedFilterOptions(column, options) {
|
|
406
|
+
var {
|
|
407
|
+
selectedValues
|
|
408
|
+
} = options,
|
|
409
|
+
otherOptions = _objectWithoutProperties(options, _excluded);
|
|
410
|
+
return _objectSpread({
|
|
411
|
+
selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => IrisGridUtils.dehydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
|
|
412
|
+
}, otherOptions);
|
|
413
|
+
}
|
|
414
|
+
static hydrateAdvancedFilterOptions(column, options) {
|
|
415
|
+
var {
|
|
416
|
+
selectedValues
|
|
417
|
+
} = options,
|
|
418
|
+
otherOptions = _objectWithoutProperties(options, _excluded2);
|
|
419
|
+
return _objectSpread({
|
|
420
|
+
selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => IrisGridUtils.hydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
|
|
421
|
+
}, otherOptions);
|
|
422
|
+
}
|
|
423
|
+
static dehydratePendingDataMap(columns, pendingDataMap) {
|
|
424
|
+
return [...pendingDataMap].map(_ref16 => {
|
|
425
|
+
var [rowIndex, {
|
|
426
|
+
data
|
|
427
|
+
}] = _ref16;
|
|
428
|
+
return [rowIndex, {
|
|
429
|
+
data: [...data].map(_ref17 => {
|
|
430
|
+
var [c, value] = _ref17;
|
|
431
|
+
return [columns[c].name, IrisGridUtils.dehydrateValue(value, columns[c].type)];
|
|
432
|
+
})
|
|
433
|
+
}];
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
static hydratePendingDataMap(columns, pendingDataMap) {
|
|
437
|
+
var columnMap = new Map();
|
|
438
|
+
var getColumnIndex = columnName => {
|
|
439
|
+
if (!columnMap.has(columnName)) {
|
|
440
|
+
columnMap.set(columnName, columns.findIndex(_ref18 => {
|
|
441
|
+
var {
|
|
442
|
+
name
|
|
443
|
+
} = _ref18;
|
|
444
|
+
return name === columnName;
|
|
445
|
+
}));
|
|
446
|
+
}
|
|
447
|
+
return columnMap.get(columnName);
|
|
448
|
+
};
|
|
449
|
+
return new Map(pendingDataMap.map(_ref19 => {
|
|
450
|
+
var [rowIndex, {
|
|
451
|
+
data
|
|
452
|
+
}] = _ref19;
|
|
453
|
+
return [rowIndex, {
|
|
454
|
+
data: new Map(data.map(_ref20 => {
|
|
455
|
+
var _getColumnIndex;
|
|
456
|
+
var [columnName, value] = _ref20;
|
|
457
|
+
var index = getColumnIndex(columnName);
|
|
458
|
+
assertNotNull(index);
|
|
459
|
+
return [(_getColumnIndex = getColumnIndex(columnName)) !== null && _getColumnIndex !== void 0 ? _getColumnIndex : null, IrisGridUtils.hydrateValue(value, columns[index].type)];
|
|
460
|
+
}))
|
|
461
|
+
}];
|
|
462
|
+
}));
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Dehydrates/serializes a value for storage.
|
|
467
|
+
* @param value The value to dehydrate
|
|
468
|
+
* @param columnType The column type
|
|
469
|
+
*/
|
|
470
|
+
static dehydrateValue(value, columnType) {
|
|
471
|
+
if (TableUtils.isDateType(columnType)) {
|
|
472
|
+
return IrisGridUtils.dehydrateDateTime(value);
|
|
473
|
+
}
|
|
474
|
+
if (TableUtils.isLongType(columnType)) {
|
|
475
|
+
return IrisGridUtils.dehydrateLong(value);
|
|
476
|
+
}
|
|
477
|
+
return value;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Hydrate a value from it's serialized state
|
|
482
|
+
* @param value The dehydrated value that needs to be hydrated
|
|
483
|
+
* @param columnType The type of column
|
|
484
|
+
*/
|
|
485
|
+
static hydrateValue(value, columnType) {
|
|
486
|
+
if (TableUtils.isDateType(columnType)) {
|
|
487
|
+
return IrisGridUtils.hydrateDateTime(value);
|
|
488
|
+
}
|
|
489
|
+
if (TableUtils.isLongType(columnType)) {
|
|
490
|
+
return IrisGridUtils.hydrateLong(value);
|
|
491
|
+
}
|
|
492
|
+
return value;
|
|
493
|
+
}
|
|
494
|
+
static dehydrateDateTime(value) {
|
|
495
|
+
return value != null ? dh.i18n.DateTimeFormat.format(DateUtils.FULL_DATE_FORMAT, value) : null;
|
|
496
|
+
}
|
|
497
|
+
static hydrateDateTime(value) {
|
|
498
|
+
return value != null ? dh.i18n.DateTimeFormat.parse(DateUtils.FULL_DATE_FORMAT, value) : null;
|
|
499
|
+
}
|
|
500
|
+
static dehydrateLong(value) {
|
|
501
|
+
return value != null ? "".concat(value) : null;
|
|
502
|
+
}
|
|
503
|
+
static hydrateLong(value) {
|
|
504
|
+
return value != null ? dh.LongWrapper.ofString(value) : null;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Export the sorts from the provided table sorts to JSON stringifiable object
|
|
509
|
+
* @param sorts The table sorts
|
|
510
|
+
* @returns The dehydrated sorts
|
|
511
|
+
*/
|
|
512
|
+
static dehydrateSort(sorts) {
|
|
513
|
+
return sorts.map(sort => {
|
|
514
|
+
var {
|
|
515
|
+
column,
|
|
516
|
+
isAbs,
|
|
517
|
+
direction
|
|
518
|
+
} = sort;
|
|
519
|
+
return {
|
|
520
|
+
column: column.name,
|
|
521
|
+
isAbs,
|
|
522
|
+
direction
|
|
523
|
+
};
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* Import the saved sorts to apply to the table. Does not actually apply the sort.
|
|
529
|
+
* @param columns The columns the sorts will be applied to
|
|
530
|
+
* @param sorts Exported sort definitions
|
|
531
|
+
* @returns The sorts to apply to the table
|
|
532
|
+
*/
|
|
533
|
+
static hydrateSort(columns, sorts) {
|
|
534
|
+
return sorts.map(sort => {
|
|
535
|
+
var {
|
|
536
|
+
column: columnIndexOrName,
|
|
537
|
+
isAbs,
|
|
538
|
+
direction
|
|
539
|
+
} = sort;
|
|
540
|
+
if (direction === TableUtils.sortDirection.reverse) {
|
|
541
|
+
return dh.Table.reverse();
|
|
542
|
+
}
|
|
543
|
+
var column = typeof columnIndexOrName === 'string' ? IrisGridUtils.getColumnByName(columns, columnIndexOrName) : IrisGridUtils.getColumn(columns, columnIndexOrName);
|
|
544
|
+
if (column != null) {
|
|
545
|
+
var columnSort = column.sort();
|
|
546
|
+
if (isAbs) {
|
|
547
|
+
columnSort = columnSort.abs();
|
|
548
|
+
}
|
|
549
|
+
if (direction === TableUtils.sortDirection.descending) {
|
|
550
|
+
columnSort = columnSort.desc();
|
|
551
|
+
} else {
|
|
552
|
+
columnSort = columnSort.asc();
|
|
553
|
+
}
|
|
554
|
+
return columnSort;
|
|
555
|
+
}
|
|
556
|
+
return null;
|
|
557
|
+
})
|
|
558
|
+
// If we can't find the column any more, it's null, filter it out
|
|
559
|
+
// If the item is a reverse sort item, filter it out - it will get applied with the `reverseType` property
|
|
560
|
+
// This should only happen when loading a legacy dashboard
|
|
561
|
+
.filter(item => item != null && item.direction !== TableUtils.sortDirection.reverse);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Pulls just the table settings from the panel state, eg. filters/sorts
|
|
566
|
+
* @param panelState The dehydrated panel state
|
|
567
|
+
* @returns A dehydrated table settings object, { partition, partitionColumn, advancedFilters, quickFilters, sorts }
|
|
568
|
+
*/
|
|
569
|
+
static extractTableSettings(panelState) {
|
|
570
|
+
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
571
|
+
var {
|
|
572
|
+
irisGridPanelState,
|
|
573
|
+
irisGridState
|
|
574
|
+
} = panelState;
|
|
575
|
+
var {
|
|
576
|
+
partitionColumn,
|
|
577
|
+
partition
|
|
578
|
+
} = irisGridPanelState;
|
|
579
|
+
var {
|
|
580
|
+
advancedFilters,
|
|
581
|
+
quickFilters,
|
|
582
|
+
sorts
|
|
583
|
+
} = irisGridState;
|
|
584
|
+
return {
|
|
585
|
+
advancedFilters,
|
|
586
|
+
inputFilters,
|
|
587
|
+
partition,
|
|
588
|
+
partitionColumn,
|
|
589
|
+
quickFilters,
|
|
590
|
+
sorts
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* Applies the passed in table settings directly to the provided table
|
|
596
|
+
* @param table The table to apply the settings to
|
|
597
|
+
* @param tableSettings Dehydrated table settings extracted with `extractTableSettings`
|
|
598
|
+
* @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
|
|
599
|
+
*/
|
|
600
|
+
static applyTableSettings(table, tableSettings, timeZone) {
|
|
601
|
+
var {
|
|
602
|
+
columns
|
|
603
|
+
} = table;
|
|
604
|
+
var quickFilters = [];
|
|
605
|
+
if (tableSettings.quickFilters) {
|
|
606
|
+
quickFilters = IrisGridUtils.getFiltersFromFilterMap(IrisGridUtils.hydrateQuickFilters(columns, tableSettings.quickFilters, timeZone));
|
|
607
|
+
}
|
|
608
|
+
var advancedFilters = [];
|
|
609
|
+
if (tableSettings.advancedFilters) {
|
|
610
|
+
advancedFilters = IrisGridUtils.getFiltersFromFilterMap(IrisGridUtils.hydrateAdvancedFilters(columns, tableSettings.advancedFilters, timeZone));
|
|
611
|
+
}
|
|
612
|
+
var inputFilters = IrisGridUtils.getFiltersFromInputFilters(columns, tableSettings.inputFilters, timeZone);
|
|
613
|
+
var sorts = [];
|
|
614
|
+
if (tableSettings.sorts) {
|
|
615
|
+
sorts = IrisGridUtils.hydrateSort(columns, tableSettings.sorts);
|
|
616
|
+
}
|
|
617
|
+
var filters = [...quickFilters, ...advancedFilters];
|
|
618
|
+
var {
|
|
619
|
+
partition,
|
|
620
|
+
partitionColumn: partitionColumnName
|
|
621
|
+
} = tableSettings;
|
|
622
|
+
if (partition != null && partitionColumnName != null) {
|
|
623
|
+
var partitionColumn = IrisGridUtils.getColumnByName(columns, partitionColumnName);
|
|
624
|
+
if (partitionColumn) {
|
|
625
|
+
var partitionFilter = partitionColumn.filter().eq(dh.FilterValue.ofString(partition));
|
|
626
|
+
filters = [partitionFilter, ...filters];
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
filters = [...inputFilters, ...filters];
|
|
630
|
+
table.applyFilter(filters);
|
|
631
|
+
table.applySort(sorts);
|
|
632
|
+
}
|
|
633
|
+
static getInputFiltersForColumns(columns) {
|
|
634
|
+
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
635
|
+
return inputFilters.filter(_ref21 => {
|
|
636
|
+
var {
|
|
637
|
+
name,
|
|
638
|
+
type
|
|
639
|
+
} = _ref21;
|
|
640
|
+
return columns.find(_ref22 => {
|
|
641
|
+
var {
|
|
642
|
+
name: columnName,
|
|
643
|
+
type: columnType
|
|
644
|
+
} = _ref22;
|
|
645
|
+
return columnName === name && columnType === type;
|
|
646
|
+
});
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
static getFiltersFromInputFilters(columns) {
|
|
650
|
+
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
651
|
+
var timeZone = arguments.length > 2 ? arguments[2] : undefined;
|
|
652
|
+
return inputFilters.map(_ref23 => {
|
|
653
|
+
var {
|
|
654
|
+
name,
|
|
655
|
+
type,
|
|
656
|
+
value
|
|
657
|
+
} = _ref23;
|
|
658
|
+
var column = columns.find(_ref24 => {
|
|
659
|
+
var {
|
|
660
|
+
name: columnName,
|
|
661
|
+
type: columnType
|
|
662
|
+
} = _ref24;
|
|
663
|
+
return columnName === name && columnType === type;
|
|
664
|
+
});
|
|
665
|
+
if (column) {
|
|
666
|
+
try {
|
|
667
|
+
return TableUtils.makeQuickFilter(column, value, timeZone);
|
|
668
|
+
} catch (e) {
|
|
669
|
+
// It may be unable to create it because user hasn't completed their input
|
|
670
|
+
log.debug('Unable to create input filter', e);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
return null;
|
|
674
|
+
}).filter(filter => filter != null);
|
|
675
|
+
}
|
|
676
|
+
static getFiltersFromFilterMap(filterMap) {
|
|
677
|
+
var filters = [];
|
|
678
|
+
var keys = Array.from(filterMap.keys());
|
|
679
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
680
|
+
var key = keys[i];
|
|
681
|
+
var item = filterMap.get(key);
|
|
682
|
+
if ((item === null || item === void 0 ? void 0 : item.filter) != null) {
|
|
683
|
+
filters.push(item.filter);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
return filters;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
/**
|
|
690
|
+
* Get array of hidden column indexes
|
|
691
|
+
* @param userColumnWidths Map of user column widths
|
|
692
|
+
* @returns Array of hidden column indexes
|
|
693
|
+
*/
|
|
694
|
+
static getHiddenColumns(userColumnWidths) {
|
|
695
|
+
return [...userColumnWidths.entries()].filter(_ref25 => {
|
|
696
|
+
var [, value] = _ref25;
|
|
697
|
+
return value === 0;
|
|
698
|
+
}).map(_ref26 => {
|
|
699
|
+
var [key] = _ref26;
|
|
700
|
+
return key;
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
static parseCustomColumnNames(customColumns) {
|
|
704
|
+
return customColumns.map(customColumn => customColumn.split('=')[0]);
|
|
705
|
+
}
|
|
706
|
+
static getRemovedCustomColumnNames(oldCustomColumns, customColumns) {
|
|
707
|
+
var oldCustomColumnsNames = IrisGridUtils.parseCustomColumnNames(oldCustomColumns);
|
|
281
708
|
var customColumnNames = IrisGridUtils.parseCustomColumnNames(customColumns);
|
|
282
709
|
return oldCustomColumnsNames.filter(oldCustomColumnName => !customColumnNames.includes(oldCustomColumnName));
|
|
283
710
|
}
|
|
@@ -285,10 +712,10 @@ class IrisGridUtils {
|
|
|
285
712
|
return sorts.filter(sort => !columnNames.includes(sort.column.name));
|
|
286
713
|
}
|
|
287
714
|
static removeFiltersInColumns(columns, filters, removedColumnNames) {
|
|
288
|
-
var columnNames = columns.map(
|
|
715
|
+
var columnNames = columns.map(_ref27 => {
|
|
289
716
|
var {
|
|
290
717
|
name
|
|
291
|
-
} =
|
|
718
|
+
} = _ref27;
|
|
292
719
|
return name;
|
|
293
720
|
});
|
|
294
721
|
var newFilter = new Map(filters);
|
|
@@ -296,10 +723,10 @@ class IrisGridUtils {
|
|
|
296
723
|
return newFilter;
|
|
297
724
|
}
|
|
298
725
|
static removeColumnFromMovedColumns(columns, movedColumns, removedColumnNames) {
|
|
299
|
-
var columnNames = columns.map(
|
|
726
|
+
var columnNames = columns.map(_ref28 => {
|
|
300
727
|
var {
|
|
301
728
|
name
|
|
302
|
-
} =
|
|
729
|
+
} = _ref28;
|
|
303
730
|
return name;
|
|
304
731
|
});
|
|
305
732
|
var newMoves = [...movedColumns];
|
|
@@ -387,10 +814,10 @@ class IrisGridUtils {
|
|
|
387
814
|
static getColumnsToFetch(tableColumns, viewportColumns, alwaysFetchColumnNames) {
|
|
388
815
|
var columnsToFetch = [...viewportColumns];
|
|
389
816
|
alwaysFetchColumnNames.forEach(columnName => {
|
|
390
|
-
var column = tableColumns.find(
|
|
817
|
+
var column = tableColumns.find(_ref29 => {
|
|
391
818
|
var {
|
|
392
819
|
name
|
|
393
|
-
} =
|
|
820
|
+
} = _ref29;
|
|
394
821
|
return name === columnName;
|
|
395
822
|
});
|
|
396
823
|
if (column != null && !viewportColumns.includes(column)) {
|
|
@@ -415,8 +842,32 @@ class IrisGridUtils {
|
|
|
415
842
|
}
|
|
416
843
|
|
|
417
844
|
/**
|
|
418
|
-
*
|
|
419
|
-
*
|
|
845
|
+
* Get the dh.RangeSet representation of the provided ranges.
|
|
846
|
+
* Ranges are sorted prior to creating the RangeSet. Only the rows are taken into account,
|
|
847
|
+
* RangeSet does not have an option for columns.
|
|
848
|
+
* @param ranges The ranges to get the range set for
|
|
849
|
+
* @returns The rangeset for the provided ranges
|
|
850
|
+
*/
|
|
851
|
+
static rangeSetFromRanges(ranges) {
|
|
852
|
+
var rangeSets = ranges.slice().sort((a, b) => {
|
|
853
|
+
assertNotNull(a.startRow);
|
|
854
|
+
assertNotNull(b.startRow);
|
|
855
|
+
return a.startRow - b.startRow;
|
|
856
|
+
}).map(range => {
|
|
857
|
+
var {
|
|
858
|
+
startRow,
|
|
859
|
+
endRow
|
|
860
|
+
} = range;
|
|
861
|
+
assertNotNull(startRow);
|
|
862
|
+
assertNotNull(endRow);
|
|
863
|
+
return dh.RangeSet.ofRange(startRow, endRow);
|
|
864
|
+
});
|
|
865
|
+
return dh.RangeSet.ofRanges(rangeSets);
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* Validate whether the ranges passed in are valid to take a snapshot from.
|
|
870
|
+
* Multiple selections are valid if all of the selected rows have the same columns selected.
|
|
420
871
|
*
|
|
421
872
|
* @param ranges The ranges to validate
|
|
422
873
|
* @returns True if the ranges are valid, false otherwise
|
|
@@ -534,12 +985,12 @@ class IrisGridUtils {
|
|
|
534
985
|
var {
|
|
535
986
|
aggregations = []
|
|
536
987
|
} = aggregationSettings !== null && aggregationSettings !== void 0 ? aggregationSettings : {};
|
|
537
|
-
var aggregationColumns = aggregations.map(
|
|
988
|
+
var aggregationColumns = aggregations.map(_ref30 => {
|
|
538
989
|
var {
|
|
539
990
|
operation,
|
|
540
991
|
selected,
|
|
541
992
|
invert
|
|
542
|
-
} =
|
|
993
|
+
} = _ref30;
|
|
543
994
|
return AggregationUtils.isRollupOperation(operation) ? [] : AggregationUtils.getOperationColumnNames(originalColumns, operation, selected, invert);
|
|
544
995
|
});
|
|
545
996
|
var aggregationMap = {};
|
|
@@ -607,17 +1058,17 @@ class IrisGridUtils {
|
|
|
607
1058
|
* @param columnName The column name to retrieve
|
|
608
1059
|
*/
|
|
609
1060
|
static getColumnByName(columns, columnName) {
|
|
610
|
-
var column = columns.find(
|
|
1061
|
+
var column = columns.find(_ref31 => {
|
|
611
1062
|
var {
|
|
612
1063
|
name
|
|
613
|
-
} =
|
|
1064
|
+
} = _ref31;
|
|
614
1065
|
return name === columnName;
|
|
615
1066
|
});
|
|
616
1067
|
if (column == null) {
|
|
617
|
-
log.error('Unable to retrieve column by name', columnName, columns.map(
|
|
1068
|
+
log.error('Unable to retrieve column by name', columnName, columns.map(_ref32 => {
|
|
618
1069
|
var {
|
|
619
1070
|
name
|
|
620
|
-
} =
|
|
1071
|
+
} = _ref32;
|
|
621
1072
|
return name;
|
|
622
1073
|
}));
|
|
623
1074
|
}
|
|
@@ -631,11 +1082,11 @@ class IrisGridUtils {
|
|
|
631
1082
|
* @returns Updated filter configs with column names changed to indexes
|
|
632
1083
|
*/
|
|
633
1084
|
static changeFilterColumnNamesToIndexes(columns, filters) {
|
|
634
|
-
return filters.map(
|
|
1085
|
+
return filters.map(_ref33 => {
|
|
635
1086
|
var {
|
|
636
1087
|
name,
|
|
637
1088
|
filter
|
|
638
|
-
} =
|
|
1089
|
+
} = _ref33;
|
|
639
1090
|
var index = columns.findIndex(column => column.name === name);
|
|
640
1091
|
return index < 0 ? null : [index, filter];
|
|
641
1092
|
}).filter(filterConfig => filterConfig != null);
|
|
@@ -705,10 +1156,10 @@ class IrisGridUtils {
|
|
|
705
1156
|
var groupMap = new Map();
|
|
706
1157
|
|
|
707
1158
|
// Remove any empty groups before parsing
|
|
708
|
-
var groups = groupsParam === null || groupsParam === void 0 ? void 0 : groupsParam.filter(
|
|
1159
|
+
var groups = groupsParam === null || groupsParam === void 0 ? void 0 : groupsParam.filter(_ref34 => {
|
|
709
1160
|
var {
|
|
710
1161
|
children
|
|
711
|
-
} =
|
|
1162
|
+
} = _ref34;
|
|
712
1163
|
return children.length > 0;
|
|
713
1164
|
});
|
|
714
1165
|
if (groups.length === 0) {
|
|
@@ -808,468 +1259,6 @@ class IrisGridUtils {
|
|
|
808
1259
|
}
|
|
809
1260
|
return "".concat(value);
|
|
810
1261
|
}
|
|
811
|
-
constructor(dh) {
|
|
812
|
-
_defineProperty(this, "dh", void 0);
|
|
813
|
-
_defineProperty(this, "tableUtils", void 0);
|
|
814
|
-
this.dh = dh;
|
|
815
|
-
this.tableUtils = new TableUtils(dh);
|
|
816
|
-
}
|
|
817
|
-
|
|
818
|
-
/**
|
|
819
|
-
* Exports the state from IrisGrid to a JSON stringifiable object
|
|
820
|
-
* @param model The table model to export the state for
|
|
821
|
-
* @param irisGridState The current state of the IrisGrid
|
|
822
|
-
*/
|
|
823
|
-
dehydrateIrisGridState(model, irisGridState) {
|
|
824
|
-
var {
|
|
825
|
-
aggregationSettings = {
|
|
826
|
-
aggregations: EMPTY_ARRAY,
|
|
827
|
-
showOnTop: false
|
|
828
|
-
},
|
|
829
|
-
advancedFilters,
|
|
830
|
-
customColumnFormatMap,
|
|
831
|
-
isFilterBarShown,
|
|
832
|
-
metrics,
|
|
833
|
-
quickFilters,
|
|
834
|
-
customColumns,
|
|
835
|
-
conditionalFormats = EMPTY_ARRAY,
|
|
836
|
-
reverseType,
|
|
837
|
-
rollupConfig = undefined,
|
|
838
|
-
showSearchBar,
|
|
839
|
-
searchValue,
|
|
840
|
-
selectDistinctColumns = EMPTY_ARRAY,
|
|
841
|
-
selectedSearchColumns,
|
|
842
|
-
sorts,
|
|
843
|
-
invertSearchColumns,
|
|
844
|
-
pendingDataMap = EMPTY_MAP,
|
|
845
|
-
frozenColumns,
|
|
846
|
-
columnHeaderGroups
|
|
847
|
-
} = irisGridState;
|
|
848
|
-
assertNotNull(metrics);
|
|
849
|
-
var {
|
|
850
|
-
userColumnWidths,
|
|
851
|
-
userRowHeights
|
|
852
|
-
} = metrics;
|
|
853
|
-
var {
|
|
854
|
-
columns
|
|
855
|
-
} = model;
|
|
856
|
-
return {
|
|
857
|
-
advancedFilters: this.dehydrateAdvancedFilters(columns, advancedFilters),
|
|
858
|
-
aggregationSettings,
|
|
859
|
-
customColumnFormatMap: [...customColumnFormatMap],
|
|
860
|
-
isFilterBarShown,
|
|
861
|
-
quickFilters: IrisGridUtils.dehydrateQuickFilters(quickFilters),
|
|
862
|
-
sorts: IrisGridUtils.dehydrateSort(sorts),
|
|
863
|
-
userColumnWidths: [...userColumnWidths].filter(_ref19 => {
|
|
864
|
-
var [columnIndex] = _ref19;
|
|
865
|
-
return columnIndex != null && columnIndex >= 0 && columnIndex < columns.length;
|
|
866
|
-
}).map(_ref20 => {
|
|
867
|
-
var [columnIndex, width] = _ref20;
|
|
868
|
-
return [columns[columnIndex].name, width];
|
|
869
|
-
}),
|
|
870
|
-
userRowHeights: [...userRowHeights],
|
|
871
|
-
customColumns: [...customColumns],
|
|
872
|
-
conditionalFormats: [...conditionalFormats],
|
|
873
|
-
reverseType,
|
|
874
|
-
rollupConfig,
|
|
875
|
-
showSearchBar,
|
|
876
|
-
searchValue,
|
|
877
|
-
selectDistinctColumns: [...selectDistinctColumns],
|
|
878
|
-
selectedSearchColumns,
|
|
879
|
-
invertSearchColumns,
|
|
880
|
-
pendingDataMap: this.dehydratePendingDataMap(columns, pendingDataMap),
|
|
881
|
-
frozenColumns,
|
|
882
|
-
columnHeaderGroups: columnHeaderGroups === null || columnHeaderGroups === void 0 ? void 0 : columnHeaderGroups.map(item => ({
|
|
883
|
-
name: item.name,
|
|
884
|
-
children: item.children,
|
|
885
|
-
color: item.color
|
|
886
|
-
}))
|
|
887
|
-
};
|
|
888
|
-
}
|
|
889
|
-
|
|
890
|
-
/**
|
|
891
|
-
* Import a state for IrisGrid that was exported with {{@link dehydrateIrisGridState}}
|
|
892
|
-
* @param model The table model to import the state with
|
|
893
|
-
* @param irisGridState The saved IrisGrid state
|
|
894
|
-
*/
|
|
895
|
-
hydrateIrisGridState(model, irisGridState) {
|
|
896
|
-
var _ref24, _model$layoutHints;
|
|
897
|
-
var {
|
|
898
|
-
advancedFilters,
|
|
899
|
-
aggregationSettings = {
|
|
900
|
-
aggregations: [],
|
|
901
|
-
showOnTop: false
|
|
902
|
-
},
|
|
903
|
-
customColumnFormatMap,
|
|
904
|
-
isFilterBarShown,
|
|
905
|
-
quickFilters,
|
|
906
|
-
sorts,
|
|
907
|
-
customColumns,
|
|
908
|
-
conditionalFormats,
|
|
909
|
-
userColumnWidths,
|
|
910
|
-
userRowHeights,
|
|
911
|
-
reverseType,
|
|
912
|
-
rollupConfig = undefined,
|
|
913
|
-
showSearchBar,
|
|
914
|
-
searchValue,
|
|
915
|
-
selectDistinctColumns,
|
|
916
|
-
selectedSearchColumns,
|
|
917
|
-
invertSearchColumns = true,
|
|
918
|
-
pendingDataMap = [],
|
|
919
|
-
frozenColumns,
|
|
920
|
-
columnHeaderGroups
|
|
921
|
-
} = irisGridState;
|
|
922
|
-
var {
|
|
923
|
-
columns,
|
|
924
|
-
formatter
|
|
925
|
-
} = model;
|
|
926
|
-
return {
|
|
927
|
-
advancedFilters: this.hydrateAdvancedFilters(columns, advancedFilters, formatter.timeZone),
|
|
928
|
-
aggregationSettings,
|
|
929
|
-
customColumnFormatMap: new Map(customColumnFormatMap),
|
|
930
|
-
isFilterBarShown,
|
|
931
|
-
quickFilters: this.hydrateQuickFilters(columns, quickFilters, formatter.timeZone),
|
|
932
|
-
sorts: this.hydrateSort(columns, sorts),
|
|
933
|
-
userColumnWidths: new Map(userColumnWidths.map(_ref21 => {
|
|
934
|
-
var [column, width] = _ref21;
|
|
935
|
-
if (typeof column === 'string' || column instanceof String) {
|
|
936
|
-
return [columns.findIndex(_ref22 => {
|
|
937
|
-
var {
|
|
938
|
-
name
|
|
939
|
-
} = _ref22;
|
|
940
|
-
return name === column;
|
|
941
|
-
}), width];
|
|
942
|
-
}
|
|
943
|
-
return [column, width];
|
|
944
|
-
}).filter(_ref23 => {
|
|
945
|
-
var [column] = _ref23;
|
|
946
|
-
return column != null && column >= 0 && column < columns.length;
|
|
947
|
-
})),
|
|
948
|
-
customColumns,
|
|
949
|
-
conditionalFormats,
|
|
950
|
-
userRowHeights: new Map(userRowHeights),
|
|
951
|
-
reverseType,
|
|
952
|
-
rollupConfig,
|
|
953
|
-
showSearchBar,
|
|
954
|
-
searchValue,
|
|
955
|
-
selectDistinctColumns,
|
|
956
|
-
selectedSearchColumns,
|
|
957
|
-
invertSearchColumns,
|
|
958
|
-
pendingDataMap: this.hydratePendingDataMap(columns, pendingDataMap),
|
|
959
|
-
frozenColumns,
|
|
960
|
-
columnHeaderGroups: IrisGridUtils.parseColumnHeaderGroups(model, (_ref24 = columnHeaderGroups !== null && columnHeaderGroups !== void 0 ? columnHeaderGroups : (_model$layoutHints = model.layoutHints) === null || _model$layoutHints === void 0 ? void 0 : _model$layoutHints.columnGroups) !== null && _ref24 !== void 0 ? _ref24 : []).groups
|
|
961
|
-
};
|
|
962
|
-
}
|
|
963
|
-
|
|
964
|
-
/**
|
|
965
|
-
* Import the saved quick filters to apply to the columns. Does not actually apply the filters.
|
|
966
|
-
* @param columns The columns the filters will be applied to
|
|
967
|
-
* @param savedQuickFilters Exported quick filters definitions
|
|
968
|
-
* @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
|
|
969
|
-
* @returns The quick filters to apply to the columns
|
|
970
|
-
*/
|
|
971
|
-
hydrateQuickFilters(columns, savedQuickFilters, timeZone) {
|
|
972
|
-
var importedFilters = savedQuickFilters.map(_ref25 => {
|
|
973
|
-
var [columnIndex, quickFilter] = _ref25;
|
|
974
|
-
var {
|
|
975
|
-
text
|
|
976
|
-
} = quickFilter;
|
|
977
|
-
var filter = null;
|
|
978
|
-
try {
|
|
979
|
-
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
980
|
-
if (column != null) {
|
|
981
|
-
filter = this.tableUtils.makeQuickFilter(column, text, timeZone);
|
|
982
|
-
}
|
|
983
|
-
} catch (error) {
|
|
984
|
-
log.error('hydrateQuickFilters error with', text, error);
|
|
985
|
-
}
|
|
986
|
-
return [columnIndex, {
|
|
987
|
-
text,
|
|
988
|
-
filter
|
|
989
|
-
}];
|
|
990
|
-
});
|
|
991
|
-
return new Map(importedFilters);
|
|
992
|
-
}
|
|
993
|
-
|
|
994
|
-
/**
|
|
995
|
-
* Export the advanced filters from the provided columns to JSON striginfiable object
|
|
996
|
-
* @param columns The columns for the filters
|
|
997
|
-
* @param advancedFilters The advanced filters to dehydrate
|
|
998
|
-
* @returns The dehydrated advanced filters
|
|
999
|
-
*/
|
|
1000
|
-
dehydrateAdvancedFilters(columns, advancedFilters) {
|
|
1001
|
-
return [...advancedFilters].map(_ref26 => {
|
|
1002
|
-
var [columnIndex, advancedFilter] = _ref26;
|
|
1003
|
-
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
1004
|
-
assertNotNull(column);
|
|
1005
|
-
var options = this.dehydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
1006
|
-
return [columnIndex, {
|
|
1007
|
-
options
|
|
1008
|
-
}];
|
|
1009
|
-
});
|
|
1010
|
-
}
|
|
1011
|
-
|
|
1012
|
-
/**
|
|
1013
|
-
* Import the saved advanced filters to apply to the columns. Does not actually apply the filters.
|
|
1014
|
-
* @param columns The columns the filters will be applied to
|
|
1015
|
-
* @param savedAdvancedFilters Exported advanced filters definitions
|
|
1016
|
-
* @param timeZone The time zone to make this filter in if it is a date type. E.g. America/New_York
|
|
1017
|
-
* @returns The advanced filters to apply to the columns
|
|
1018
|
-
*/
|
|
1019
|
-
hydrateAdvancedFilters(columns, savedAdvancedFilters, timeZone) {
|
|
1020
|
-
var importedFilters = savedAdvancedFilters.map(_ref27 => {
|
|
1021
|
-
var [columnIndex, advancedFilter] = _ref27;
|
|
1022
|
-
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
1023
|
-
assertNotNull(column);
|
|
1024
|
-
var options = this.hydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
1025
|
-
var filter = null;
|
|
1026
|
-
try {
|
|
1027
|
-
var columnRetrieved = IrisGridUtils.getColumn(columns, columnIndex);
|
|
1028
|
-
if (columnRetrieved != null) {
|
|
1029
|
-
filter = this.tableUtils.makeAdvancedFilter(column, options, timeZone);
|
|
1030
|
-
}
|
|
1031
|
-
} catch (error) {
|
|
1032
|
-
log.error('hydrateAdvancedFilters error with', options, error);
|
|
1033
|
-
}
|
|
1034
|
-
return [columnIndex, {
|
|
1035
|
-
options,
|
|
1036
|
-
filter
|
|
1037
|
-
}];
|
|
1038
|
-
});
|
|
1039
|
-
return new Map(importedFilters);
|
|
1040
|
-
}
|
|
1041
|
-
dehydrateAdvancedFilterOptions(column, options) {
|
|
1042
|
-
var {
|
|
1043
|
-
selectedValues
|
|
1044
|
-
} = options,
|
|
1045
|
-
otherOptions = _objectWithoutProperties(options, _excluded);
|
|
1046
|
-
return _objectSpread({
|
|
1047
|
-
selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => this.dehydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
|
|
1048
|
-
}, otherOptions);
|
|
1049
|
-
}
|
|
1050
|
-
hydrateAdvancedFilterOptions(column, options) {
|
|
1051
|
-
var {
|
|
1052
|
-
selectedValues
|
|
1053
|
-
} = options,
|
|
1054
|
-
otherOptions = _objectWithoutProperties(options, _excluded2);
|
|
1055
|
-
return _objectSpread({
|
|
1056
|
-
selectedValues: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map(value => this.hydrateValue(value, column === null || column === void 0 ? void 0 : column.type))
|
|
1057
|
-
}, otherOptions);
|
|
1058
|
-
}
|
|
1059
|
-
dehydratePendingDataMap(columns, pendingDataMap) {
|
|
1060
|
-
return [...pendingDataMap].map(_ref28 => {
|
|
1061
|
-
var [rowIndex, {
|
|
1062
|
-
data
|
|
1063
|
-
}] = _ref28;
|
|
1064
|
-
return [rowIndex, {
|
|
1065
|
-
data: [...data].map(_ref29 => {
|
|
1066
|
-
var [c, value] = _ref29;
|
|
1067
|
-
return [columns[c].name, this.dehydrateValue(value, columns[c].type)];
|
|
1068
|
-
})
|
|
1069
|
-
}];
|
|
1070
|
-
});
|
|
1071
|
-
}
|
|
1072
|
-
hydratePendingDataMap(columns, pendingDataMap) {
|
|
1073
|
-
var columnMap = new Map();
|
|
1074
|
-
var getColumnIndex = columnName => {
|
|
1075
|
-
if (!columnMap.has(columnName)) {
|
|
1076
|
-
columnMap.set(columnName, columns.findIndex(_ref30 => {
|
|
1077
|
-
var {
|
|
1078
|
-
name
|
|
1079
|
-
} = _ref30;
|
|
1080
|
-
return name === columnName;
|
|
1081
|
-
}));
|
|
1082
|
-
}
|
|
1083
|
-
return columnMap.get(columnName);
|
|
1084
|
-
};
|
|
1085
|
-
return new Map(pendingDataMap.map(_ref31 => {
|
|
1086
|
-
var [rowIndex, {
|
|
1087
|
-
data
|
|
1088
|
-
}] = _ref31;
|
|
1089
|
-
return [rowIndex, {
|
|
1090
|
-
data: new Map(data.map(_ref32 => {
|
|
1091
|
-
var _getColumnIndex;
|
|
1092
|
-
var [columnName, value] = _ref32;
|
|
1093
|
-
var index = getColumnIndex(columnName);
|
|
1094
|
-
assertNotNull(index);
|
|
1095
|
-
return [(_getColumnIndex = getColumnIndex(columnName)) !== null && _getColumnIndex !== void 0 ? _getColumnIndex : null, this.hydrateValue(value, columns[index].type)];
|
|
1096
|
-
}))
|
|
1097
|
-
}];
|
|
1098
|
-
}));
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
/**
|
|
1102
|
-
* Dehydrates/serializes a value for storage.
|
|
1103
|
-
* @param value The value to dehydrate
|
|
1104
|
-
* @param columnType The column type
|
|
1105
|
-
*/
|
|
1106
|
-
dehydrateValue(value, columnType) {
|
|
1107
|
-
if (TableUtils.isDateType(columnType)) {
|
|
1108
|
-
return this.dehydrateDateTime(value);
|
|
1109
|
-
}
|
|
1110
|
-
if (TableUtils.isLongType(columnType)) {
|
|
1111
|
-
return IrisGridUtils.dehydrateLong(value);
|
|
1112
|
-
}
|
|
1113
|
-
return value;
|
|
1114
|
-
}
|
|
1115
|
-
|
|
1116
|
-
/**
|
|
1117
|
-
* Hydrate a value from it's serialized state
|
|
1118
|
-
* @param value The dehydrated value that needs to be hydrated
|
|
1119
|
-
* @param columnType The type of column
|
|
1120
|
-
*/
|
|
1121
|
-
hydrateValue(value, columnType) {
|
|
1122
|
-
if (TableUtils.isDateType(columnType)) {
|
|
1123
|
-
return this.hydrateDateTime(value);
|
|
1124
|
-
}
|
|
1125
|
-
if (TableUtils.isLongType(columnType)) {
|
|
1126
|
-
return this.hydrateLong(value);
|
|
1127
|
-
}
|
|
1128
|
-
return value;
|
|
1129
|
-
}
|
|
1130
|
-
dehydrateDateTime(value) {
|
|
1131
|
-
return value != null ? this.dh.i18n.DateTimeFormat.format(DateUtils.FULL_DATE_FORMAT, value) : null;
|
|
1132
|
-
}
|
|
1133
|
-
hydrateDateTime(value) {
|
|
1134
|
-
return value != null ? this.dh.i18n.DateTimeFormat.parse(DateUtils.FULL_DATE_FORMAT, value) : null;
|
|
1135
|
-
}
|
|
1136
|
-
hydrateLong(value) {
|
|
1137
|
-
return value != null ? this.dh.LongWrapper.ofString(value) : null;
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
/**
|
|
1141
|
-
* Import the saved sorts to apply to the table. Does not actually apply the sort.
|
|
1142
|
-
* @param columns The columns the sorts will be applied to
|
|
1143
|
-
* @param sorts Exported sort definitions
|
|
1144
|
-
* @returns The sorts to apply to the table
|
|
1145
|
-
*/
|
|
1146
|
-
hydrateSort(columns, sorts) {
|
|
1147
|
-
var {
|
|
1148
|
-
dh
|
|
1149
|
-
} = this;
|
|
1150
|
-
return sorts.map(sort => {
|
|
1151
|
-
var {
|
|
1152
|
-
column: columnIndexOrName,
|
|
1153
|
-
isAbs,
|
|
1154
|
-
direction
|
|
1155
|
-
} = sort;
|
|
1156
|
-
if (direction === TableUtils.sortDirection.reverse) {
|
|
1157
|
-
return dh.Table.reverse();
|
|
1158
|
-
}
|
|
1159
|
-
var column = typeof columnIndexOrName === 'string' ? IrisGridUtils.getColumnByName(columns, columnIndexOrName) : IrisGridUtils.getColumn(columns, columnIndexOrName);
|
|
1160
|
-
if (column != null) {
|
|
1161
|
-
var columnSort = column.sort();
|
|
1162
|
-
if (isAbs) {
|
|
1163
|
-
columnSort = columnSort.abs();
|
|
1164
|
-
}
|
|
1165
|
-
if (direction === TableUtils.sortDirection.descending) {
|
|
1166
|
-
columnSort = columnSort.desc();
|
|
1167
|
-
} else {
|
|
1168
|
-
columnSort = columnSort.asc();
|
|
1169
|
-
}
|
|
1170
|
-
return columnSort;
|
|
1171
|
-
}
|
|
1172
|
-
return null;
|
|
1173
|
-
})
|
|
1174
|
-
// If we can't find the column any more, it's null, filter it out
|
|
1175
|
-
// If the item is a reverse sort item, filter it out - it will get applied with the `reverseType` property
|
|
1176
|
-
// This should only happen when loading a legacy dashboard
|
|
1177
|
-
.filter(item => item != null && item.direction !== TableUtils.sortDirection.reverse);
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
/**
|
|
1181
|
-
* Applies the passed in table settings directly to the provided table
|
|
1182
|
-
* @param table The table to apply the settings to
|
|
1183
|
-
* @param tableSettings Dehydrated table settings extracted with `extractTableSettings`
|
|
1184
|
-
* @param timeZone The time zone to make this value in if it is a date type. E.g. America/New_York
|
|
1185
|
-
*/
|
|
1186
|
-
applyTableSettings(table, tableSettings, timeZone) {
|
|
1187
|
-
var {
|
|
1188
|
-
columns
|
|
1189
|
-
} = table;
|
|
1190
|
-
var quickFilters = [];
|
|
1191
|
-
if (tableSettings.quickFilters) {
|
|
1192
|
-
quickFilters = IrisGridUtils.getFiltersFromFilterMap(this.hydrateQuickFilters(columns, tableSettings.quickFilters, timeZone));
|
|
1193
|
-
}
|
|
1194
|
-
var advancedFilters = [];
|
|
1195
|
-
if (tableSettings.advancedFilters) {
|
|
1196
|
-
advancedFilters = IrisGridUtils.getFiltersFromFilterMap(this.hydrateAdvancedFilters(columns, tableSettings.advancedFilters, timeZone));
|
|
1197
|
-
}
|
|
1198
|
-
var inputFilters = this.getFiltersFromInputFilters(columns, tableSettings.inputFilters, timeZone);
|
|
1199
|
-
var sorts = [];
|
|
1200
|
-
if (tableSettings.sorts) {
|
|
1201
|
-
sorts = this.hydrateSort(columns, tableSettings.sorts);
|
|
1202
|
-
}
|
|
1203
|
-
var filters = [...quickFilters, ...advancedFilters];
|
|
1204
|
-
var {
|
|
1205
|
-
partition,
|
|
1206
|
-
partitionColumn: partitionColumnName
|
|
1207
|
-
} = tableSettings;
|
|
1208
|
-
if (partition != null && partitionColumnName != null) {
|
|
1209
|
-
var partitionColumn = IrisGridUtils.getColumnByName(columns, partitionColumnName);
|
|
1210
|
-
if (partitionColumn) {
|
|
1211
|
-
var partitionFilter = partitionColumn.filter().eq(dh.FilterValue.ofString(partition));
|
|
1212
|
-
filters = [partitionFilter, ...filters];
|
|
1213
|
-
}
|
|
1214
|
-
}
|
|
1215
|
-
filters = [...inputFilters, ...filters];
|
|
1216
|
-
table.applyFilter(filters);
|
|
1217
|
-
table.applySort(sorts);
|
|
1218
|
-
}
|
|
1219
|
-
getFiltersFromInputFilters(columns) {
|
|
1220
|
-
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
1221
|
-
var timeZone = arguments.length > 2 ? arguments[2] : undefined;
|
|
1222
|
-
return inputFilters.map(_ref33 => {
|
|
1223
|
-
var {
|
|
1224
|
-
name,
|
|
1225
|
-
type,
|
|
1226
|
-
value
|
|
1227
|
-
} = _ref33;
|
|
1228
|
-
var column = columns.find(_ref34 => {
|
|
1229
|
-
var {
|
|
1230
|
-
name: columnName,
|
|
1231
|
-
type: columnType
|
|
1232
|
-
} = _ref34;
|
|
1233
|
-
return columnName === name && columnType === type;
|
|
1234
|
-
});
|
|
1235
|
-
if (column) {
|
|
1236
|
-
try {
|
|
1237
|
-
return this.tableUtils.makeQuickFilter(column, value, timeZone);
|
|
1238
|
-
} catch (e) {
|
|
1239
|
-
// It may be unable to create it because user hasn't completed their input
|
|
1240
|
-
log.debug('Unable to create input filter', e);
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
return null;
|
|
1244
|
-
}).filter(filter => filter != null);
|
|
1245
|
-
}
|
|
1246
|
-
|
|
1247
|
-
/**
|
|
1248
|
-
* Get the dh.RangeSet representation of the provided ranges.
|
|
1249
|
-
* Ranges are sorted prior to creating the RangeSet. Only the rows are taken into account,
|
|
1250
|
-
* RangeSet does not have an option for columns.
|
|
1251
|
-
* @param ranges The ranges to get the range set for
|
|
1252
|
-
* @returns The rangeset for the provided ranges
|
|
1253
|
-
*/
|
|
1254
|
-
rangeSetFromRanges(ranges) {
|
|
1255
|
-
var {
|
|
1256
|
-
dh
|
|
1257
|
-
} = this;
|
|
1258
|
-
var rangeSets = ranges.slice().sort((a, b) => {
|
|
1259
|
-
assertNotNull(a.startRow);
|
|
1260
|
-
assertNotNull(b.startRow);
|
|
1261
|
-
return a.startRow - b.startRow;
|
|
1262
|
-
}).map(range => {
|
|
1263
|
-
var {
|
|
1264
|
-
startRow,
|
|
1265
|
-
endRow
|
|
1266
|
-
} = range;
|
|
1267
|
-
assertNotNull(startRow);
|
|
1268
|
-
assertNotNull(endRow);
|
|
1269
|
-
return dh.RangeSet.ofRange(startRow, endRow);
|
|
1270
|
-
});
|
|
1271
|
-
return dh.RangeSet.ofRanges(rangeSets);
|
|
1272
|
-
}
|
|
1273
1262
|
}
|
|
1274
1263
|
export default IrisGridUtils;
|
|
1275
1264
|
//# sourceMappingURL=IrisGridUtils.js.map
|