@deephaven/iris-grid 0.24.1-beta.3 → 0.25.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/dist/ColumnHeaderGroup.d.ts +10 -3
- package/dist/ColumnHeaderGroup.d.ts.map +1 -1
- package/dist/ColumnHeaderGroup.js +20 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.d.ts +6 -3
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +42 -25
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModel.d.ts +9 -2
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +0 -13
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +3 -1
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +5 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +7 -2
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +16 -4
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +1 -1
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +18 -9
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +143 -165
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.d.ts +8 -2
- package/dist/IrisGridTestUtils.d.ts.map +1 -1
- package/dist/IrisGridTestUtils.js +9 -4
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/IrisGridUtils.d.ts +16 -2
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +151 -48
- package/dist/IrisGridUtils.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/sidebar/index.d.ts +1 -1
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.js +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +68 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +156 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +962 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +26 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +130 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +29 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts +13 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +160 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts +19 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +81 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts +13 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +28 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts +18 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +156 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts +19 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +144 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts +7 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +57 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +139 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts +36 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +44 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts +4 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +127 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts +20 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +4 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +55 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +265 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -0
- package/package.json +20 -16
- package/dist/sidebar/VisibilityOrderingBuilder.css +0 -156
- package/dist/sidebar/VisibilityOrderingBuilder.css.map +0 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts +0 -79
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +0 -1
- package/dist/sidebar/VisibilityOrderingBuilder.js +0 -753
- package/dist/sidebar/VisibilityOrderingBuilder.js.map +0 -1
package/dist/IrisGridUtils.js
CHANGED
|
@@ -13,6 +13,7 @@ import { assertNotNull } from '@deephaven/utils';
|
|
|
13
13
|
import AggregationUtils from "./sidebar/aggregations/AggregationUtils.js";
|
|
14
14
|
import AggregationOperation from "./sidebar/aggregations/AggregationOperation.js";
|
|
15
15
|
import AdvancedSettings from "./sidebar/AdvancedSettings.js";
|
|
16
|
+
import ColumnHeaderGroup from "./ColumnHeaderGroup.js";
|
|
16
17
|
var log = Log.module('IrisGridUtils');
|
|
17
18
|
/**
|
|
18
19
|
* Checks if an index is valid for the given array
|
|
@@ -138,7 +139,8 @@ class IrisGridUtils {
|
|
|
138
139
|
sorts,
|
|
139
140
|
invertSearchColumns,
|
|
140
141
|
pendingDataMap = new Map(),
|
|
141
|
-
frozenColumns
|
|
142
|
+
frozenColumns,
|
|
143
|
+
columnHeaderGroups
|
|
142
144
|
} = irisGridState;
|
|
143
145
|
assertNotNull(metrics);
|
|
144
146
|
var {
|
|
@@ -173,7 +175,12 @@ class IrisGridUtils {
|
|
|
173
175
|
selectedSearchColumns,
|
|
174
176
|
invertSearchColumns,
|
|
175
177
|
pendingDataMap: IrisGridUtils.dehydratePendingDataMap(columns, pendingDataMap),
|
|
176
|
-
frozenColumns
|
|
178
|
+
frozenColumns,
|
|
179
|
+
columnHeaderGroups: columnHeaderGroups === null || columnHeaderGroups === void 0 ? void 0 : columnHeaderGroups.map(item => ({
|
|
180
|
+
name: item.name,
|
|
181
|
+
children: item.children,
|
|
182
|
+
color: item.color
|
|
183
|
+
}))
|
|
177
184
|
};
|
|
178
185
|
}
|
|
179
186
|
|
|
@@ -183,6 +190,7 @@ class IrisGridUtils {
|
|
|
183
190
|
* @param irisGridState The saved IrisGrid state
|
|
184
191
|
*/
|
|
185
192
|
static hydrateIrisGridState(model, irisGridState) {
|
|
193
|
+
var _ref11, _model$layoutHints;
|
|
186
194
|
var {
|
|
187
195
|
advancedFilters,
|
|
188
196
|
aggregationSettings = {
|
|
@@ -205,7 +213,8 @@ class IrisGridUtils {
|
|
|
205
213
|
selectedSearchColumns,
|
|
206
214
|
invertSearchColumns = true,
|
|
207
215
|
pendingDataMap = [],
|
|
208
|
-
frozenColumns
|
|
216
|
+
frozenColumns,
|
|
217
|
+
columnHeaderGroups
|
|
209
218
|
} = irisGridState;
|
|
210
219
|
var {
|
|
211
220
|
columns,
|
|
@@ -244,7 +253,8 @@ class IrisGridUtils {
|
|
|
244
253
|
selectedSearchColumns,
|
|
245
254
|
invertSearchColumns,
|
|
246
255
|
pendingDataMap: IrisGridUtils.hydratePendingDataMap(columns, pendingDataMap),
|
|
247
|
-
frozenColumns
|
|
256
|
+
frozenColumns,
|
|
257
|
+
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
|
|
248
258
|
};
|
|
249
259
|
}
|
|
250
260
|
|
|
@@ -299,8 +309,8 @@ class IrisGridUtils {
|
|
|
299
309
|
* @returns The dehydrated quick filters
|
|
300
310
|
*/
|
|
301
311
|
static dehydrateQuickFilters(quickFilters) {
|
|
302
|
-
return [...quickFilters].map(
|
|
303
|
-
var [columnIndex, quickFilter] =
|
|
312
|
+
return [...quickFilters].map(_ref12 => {
|
|
313
|
+
var [columnIndex, quickFilter] = _ref12;
|
|
304
314
|
var {
|
|
305
315
|
text
|
|
306
316
|
} = quickFilter;
|
|
@@ -318,8 +328,8 @@ class IrisGridUtils {
|
|
|
318
328
|
* @returns The quick filters to apply to the columns
|
|
319
329
|
*/
|
|
320
330
|
static hydrateQuickFilters(columns, savedQuickFilters, timeZone) {
|
|
321
|
-
var importedFilters = savedQuickFilters.map(
|
|
322
|
-
var [columnIndex, quickFilter] =
|
|
331
|
+
var importedFilters = savedQuickFilters.map(_ref13 => {
|
|
332
|
+
var [columnIndex, quickFilter] = _ref13;
|
|
323
333
|
var {
|
|
324
334
|
text
|
|
325
335
|
} = quickFilter;
|
|
@@ -347,8 +357,8 @@ class IrisGridUtils {
|
|
|
347
357
|
* @returns The dehydrated advanced filters
|
|
348
358
|
*/
|
|
349
359
|
static dehydrateAdvancedFilters(columns, advancedFilters) {
|
|
350
|
-
return [...advancedFilters].map(
|
|
351
|
-
var [columnIndex, advancedFilter] =
|
|
360
|
+
return [...advancedFilters].map(_ref14 => {
|
|
361
|
+
var [columnIndex, advancedFilter] = _ref14;
|
|
352
362
|
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
353
363
|
assertNotNull(column);
|
|
354
364
|
var options = IrisGridUtils.dehydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
@@ -366,8 +376,8 @@ class IrisGridUtils {
|
|
|
366
376
|
* @returns The advanced filters to apply to the columns
|
|
367
377
|
*/
|
|
368
378
|
static hydrateAdvancedFilters(columns, savedAdvancedFilters, timeZone) {
|
|
369
|
-
var importedFilters = savedAdvancedFilters.map(
|
|
370
|
-
var [columnIndex, advancedFilter] =
|
|
379
|
+
var importedFilters = savedAdvancedFilters.map(_ref15 => {
|
|
380
|
+
var [columnIndex, advancedFilter] = _ref15;
|
|
371
381
|
var column = IrisGridUtils.getColumn(columns, columnIndex);
|
|
372
382
|
assertNotNull(column);
|
|
373
383
|
var options = IrisGridUtils.hydrateAdvancedFilterOptions(column, advancedFilter.options);
|
|
@@ -406,13 +416,13 @@ class IrisGridUtils {
|
|
|
406
416
|
}, otherOptions);
|
|
407
417
|
}
|
|
408
418
|
static dehydratePendingDataMap(columns, pendingDataMap) {
|
|
409
|
-
return [...pendingDataMap].map(
|
|
419
|
+
return [...pendingDataMap].map(_ref16 => {
|
|
410
420
|
var [rowIndex, {
|
|
411
421
|
data
|
|
412
|
-
}] =
|
|
422
|
+
}] = _ref16;
|
|
413
423
|
return [rowIndex, {
|
|
414
|
-
data: [...data].map(
|
|
415
|
-
var [c, value] =
|
|
424
|
+
data: [...data].map(_ref17 => {
|
|
425
|
+
var [c, value] = _ref17;
|
|
416
426
|
return [columns[c].name, IrisGridUtils.dehydrateValue(value, columns[c].type)];
|
|
417
427
|
})
|
|
418
428
|
}];
|
|
@@ -422,23 +432,23 @@ class IrisGridUtils {
|
|
|
422
432
|
var columnMap = new Map();
|
|
423
433
|
var getColumnIndex = columnName => {
|
|
424
434
|
if (!columnMap.has(columnName)) {
|
|
425
|
-
columnMap.set(columnName, columns.findIndex(
|
|
435
|
+
columnMap.set(columnName, columns.findIndex(_ref18 => {
|
|
426
436
|
var {
|
|
427
437
|
name
|
|
428
|
-
} =
|
|
438
|
+
} = _ref18;
|
|
429
439
|
return name === columnName;
|
|
430
440
|
}));
|
|
431
441
|
}
|
|
432
442
|
return columnMap.get(columnName);
|
|
433
443
|
};
|
|
434
|
-
return new Map(pendingDataMap.map(
|
|
444
|
+
return new Map(pendingDataMap.map(_ref19 => {
|
|
435
445
|
var [rowIndex, {
|
|
436
446
|
data
|
|
437
|
-
}] =
|
|
447
|
+
}] = _ref19;
|
|
438
448
|
return [rowIndex, {
|
|
439
|
-
data: new Map(data.map(
|
|
449
|
+
data: new Map(data.map(_ref20 => {
|
|
440
450
|
var _getColumnIndex;
|
|
441
|
-
var [columnName, value] =
|
|
451
|
+
var [columnName, value] = _ref20;
|
|
442
452
|
var index = getColumnIndex(columnName);
|
|
443
453
|
assertNotNull(index);
|
|
444
454
|
return [(_getColumnIndex = getColumnIndex(columnName)) !== null && _getColumnIndex !== void 0 ? _getColumnIndex : null, IrisGridUtils.hydrateValue(value, columns[index].type)];
|
|
@@ -617,16 +627,16 @@ class IrisGridUtils {
|
|
|
617
627
|
}
|
|
618
628
|
static getInputFiltersForColumns(columns) {
|
|
619
629
|
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
620
|
-
return inputFilters.filter(
|
|
630
|
+
return inputFilters.filter(_ref21 => {
|
|
621
631
|
var {
|
|
622
632
|
name,
|
|
623
633
|
type
|
|
624
|
-
} =
|
|
625
|
-
return columns.find(
|
|
634
|
+
} = _ref21;
|
|
635
|
+
return columns.find(_ref22 => {
|
|
626
636
|
var {
|
|
627
637
|
name: columnName,
|
|
628
638
|
type: columnType
|
|
629
|
-
} =
|
|
639
|
+
} = _ref22;
|
|
630
640
|
return columnName === name && columnType === type;
|
|
631
641
|
});
|
|
632
642
|
});
|
|
@@ -634,17 +644,17 @@ class IrisGridUtils {
|
|
|
634
644
|
static getFiltersFromInputFilters(columns) {
|
|
635
645
|
var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
636
646
|
var timeZone = arguments.length > 2 ? arguments[2] : undefined;
|
|
637
|
-
return inputFilters.map(
|
|
647
|
+
return inputFilters.map(_ref23 => {
|
|
638
648
|
var {
|
|
639
649
|
name,
|
|
640
650
|
type,
|
|
641
651
|
value
|
|
642
|
-
} =
|
|
643
|
-
var column = columns.find(
|
|
652
|
+
} = _ref23;
|
|
653
|
+
var column = columns.find(_ref24 => {
|
|
644
654
|
var {
|
|
645
655
|
name: columnName,
|
|
646
656
|
type: columnType
|
|
647
|
-
} =
|
|
657
|
+
} = _ref24;
|
|
648
658
|
return columnName === name && columnType === type;
|
|
649
659
|
});
|
|
650
660
|
if (column) {
|
|
@@ -677,11 +687,11 @@ class IrisGridUtils {
|
|
|
677
687
|
* @returns Array of hidden column indexes
|
|
678
688
|
*/
|
|
679
689
|
static getHiddenColumns(userColumnWidths) {
|
|
680
|
-
return [...userColumnWidths.entries()].filter(
|
|
681
|
-
var [, value] =
|
|
690
|
+
return [...userColumnWidths.entries()].filter(_ref25 => {
|
|
691
|
+
var [, value] = _ref25;
|
|
682
692
|
return value === 0;
|
|
683
|
-
}).map(
|
|
684
|
-
var [key] =
|
|
693
|
+
}).map(_ref26 => {
|
|
694
|
+
var [key] = _ref26;
|
|
685
695
|
return key;
|
|
686
696
|
});
|
|
687
697
|
}
|
|
@@ -697,10 +707,10 @@ class IrisGridUtils {
|
|
|
697
707
|
return sorts.filter(sort => !columnNames.includes(sort.column.name));
|
|
698
708
|
}
|
|
699
709
|
static removeFiltersInColumns(columns, filters, removedColumnNames) {
|
|
700
|
-
var columnNames = columns.map(
|
|
710
|
+
var columnNames = columns.map(_ref27 => {
|
|
701
711
|
var {
|
|
702
712
|
name
|
|
703
|
-
} =
|
|
713
|
+
} = _ref27;
|
|
704
714
|
return name;
|
|
705
715
|
});
|
|
706
716
|
var newFilter = new Map(filters);
|
|
@@ -708,10 +718,10 @@ class IrisGridUtils {
|
|
|
708
718
|
return newFilter;
|
|
709
719
|
}
|
|
710
720
|
static removeColumnFromMovedColumns(columns, movedColumns, removedColumnNames) {
|
|
711
|
-
var columnNames = columns.map(
|
|
721
|
+
var columnNames = columns.map(_ref28 => {
|
|
712
722
|
var {
|
|
713
723
|
name
|
|
714
|
-
} =
|
|
724
|
+
} = _ref28;
|
|
715
725
|
return name;
|
|
716
726
|
});
|
|
717
727
|
var newMoves = [...movedColumns];
|
|
@@ -799,10 +809,10 @@ class IrisGridUtils {
|
|
|
799
809
|
static getColumnsToFetch(tableColumns, viewportColumns, alwaysFetchColumnNames) {
|
|
800
810
|
var columnsToFetch = [...viewportColumns];
|
|
801
811
|
alwaysFetchColumnNames.forEach(columnName => {
|
|
802
|
-
var column = tableColumns.find(
|
|
812
|
+
var column = tableColumns.find(_ref29 => {
|
|
803
813
|
var {
|
|
804
814
|
name
|
|
805
|
-
} =
|
|
815
|
+
} = _ref29;
|
|
806
816
|
return name === columnName;
|
|
807
817
|
});
|
|
808
818
|
if (column != null && !viewportColumns.includes(column)) {
|
|
@@ -970,12 +980,12 @@ class IrisGridUtils {
|
|
|
970
980
|
var {
|
|
971
981
|
aggregations = []
|
|
972
982
|
} = aggregationSettings !== null && aggregationSettings !== void 0 ? aggregationSettings : {};
|
|
973
|
-
var aggregationColumns = aggregations.map(
|
|
983
|
+
var aggregationColumns = aggregations.map(_ref30 => {
|
|
974
984
|
var {
|
|
975
985
|
operation,
|
|
976
986
|
selected,
|
|
977
987
|
invert
|
|
978
|
-
} =
|
|
988
|
+
} = _ref30;
|
|
979
989
|
return AggregationUtils.isRollupOperation(operation) ? [] : AggregationUtils.getOperationColumnNames(originalColumns, operation, selected, invert);
|
|
980
990
|
});
|
|
981
991
|
var aggregationMap = {};
|
|
@@ -1043,17 +1053,17 @@ class IrisGridUtils {
|
|
|
1043
1053
|
* @param columnName The column name to retrieve
|
|
1044
1054
|
*/
|
|
1045
1055
|
static getColumnByName(columns, columnName) {
|
|
1046
|
-
var column = columns.find(
|
|
1056
|
+
var column = columns.find(_ref31 => {
|
|
1047
1057
|
var {
|
|
1048
1058
|
name
|
|
1049
|
-
} =
|
|
1059
|
+
} = _ref31;
|
|
1050
1060
|
return name === columnName;
|
|
1051
1061
|
});
|
|
1052
1062
|
if (column == null) {
|
|
1053
|
-
log.error('Unable to retrieve column by name', columnName, columns.map(
|
|
1063
|
+
log.error('Unable to retrieve column by name', columnName, columns.map(_ref32 => {
|
|
1054
1064
|
var {
|
|
1055
1065
|
name
|
|
1056
|
-
} =
|
|
1066
|
+
} = _ref32;
|
|
1057
1067
|
return name;
|
|
1058
1068
|
}));
|
|
1059
1069
|
}
|
|
@@ -1067,11 +1077,11 @@ class IrisGridUtils {
|
|
|
1067
1077
|
* @returns Updated filter configs with column names changed to indexes
|
|
1068
1078
|
*/
|
|
1069
1079
|
static changeFilterColumnNamesToIndexes(columns, filters) {
|
|
1070
|
-
return filters.map(
|
|
1080
|
+
return filters.map(_ref33 => {
|
|
1071
1081
|
var {
|
|
1072
1082
|
name,
|
|
1073
1083
|
filter
|
|
1074
|
-
} =
|
|
1084
|
+
} = _ref33;
|
|
1075
1085
|
var index = columns.findIndex(column => column.name === name);
|
|
1076
1086
|
return index < 0 ? null : [index, filter];
|
|
1077
1087
|
}).filter(filterConfig => filterConfig != null);
|
|
@@ -1128,6 +1138,99 @@ class IrisGridUtils {
|
|
|
1128
1138
|
}
|
|
1129
1139
|
return combinedText;
|
|
1130
1140
|
}
|
|
1141
|
+
|
|
1142
|
+
/**
|
|
1143
|
+
* Parses the column header groups provided.
|
|
1144
|
+
* If undefined, should provide default groups such as from layoutHints
|
|
1145
|
+
*
|
|
1146
|
+
* @returns Object containing groups array, max depth, map of name to parent group, and map of name to group
|
|
1147
|
+
*/
|
|
1148
|
+
static parseColumnHeaderGroups(model, groupsParam) {
|
|
1149
|
+
var maxDepth = 1;
|
|
1150
|
+
var parentMap = new Map();
|
|
1151
|
+
var groupMap = new Map();
|
|
1152
|
+
|
|
1153
|
+
// Remove any empty groups before parsing
|
|
1154
|
+
var groups = groupsParam === null || groupsParam === void 0 ? void 0 : groupsParam.filter(_ref34 => {
|
|
1155
|
+
var {
|
|
1156
|
+
children
|
|
1157
|
+
} = _ref34;
|
|
1158
|
+
return children.length > 0;
|
|
1159
|
+
});
|
|
1160
|
+
if (groups.length === 0) {
|
|
1161
|
+
return {
|
|
1162
|
+
groups: [],
|
|
1163
|
+
maxDepth,
|
|
1164
|
+
parentMap,
|
|
1165
|
+
groupMap
|
|
1166
|
+
};
|
|
1167
|
+
}
|
|
1168
|
+
var originalGroupMap = new Map(groups.map(group => [group.name, group]));
|
|
1169
|
+
var seenChildren = new Set();
|
|
1170
|
+
var addGroup = group => {
|
|
1171
|
+
var {
|
|
1172
|
+
name
|
|
1173
|
+
} = group;
|
|
1174
|
+
if (model.getColumnIndexByName(name) != null) {
|
|
1175
|
+
throw new Error("Column header group has same name as column: ".concat(name));
|
|
1176
|
+
}
|
|
1177
|
+
var existingGroup = groupMap.get(name);
|
|
1178
|
+
if (existingGroup) {
|
|
1179
|
+
return existingGroup;
|
|
1180
|
+
}
|
|
1181
|
+
var childIndexes = [];
|
|
1182
|
+
var depth = 1;
|
|
1183
|
+
group.children.forEach(childName => {
|
|
1184
|
+
if (seenChildren.has(childName)) {
|
|
1185
|
+
throw new Error("Column group child ".concat(childName, " specified in multiple groups"));
|
|
1186
|
+
}
|
|
1187
|
+
seenChildren.add(childName);
|
|
1188
|
+
var childGroup = originalGroupMap.get(childName);
|
|
1189
|
+
var childIndex = model.getColumnIndexByName(childName);
|
|
1190
|
+
if (childGroup) {
|
|
1191
|
+
// Adding another column header group
|
|
1192
|
+
var addedGroup = addGroup(childGroup);
|
|
1193
|
+
childIndexes.push(...addedGroup.childIndexes);
|
|
1194
|
+
depth = Math.max(depth, addedGroup.depth + 1);
|
|
1195
|
+
} else if (childIndex != null) {
|
|
1196
|
+
// Adding a base column
|
|
1197
|
+
childIndexes.push(childIndex);
|
|
1198
|
+
depth = Math.max(depth, 1);
|
|
1199
|
+
} else {
|
|
1200
|
+
throw new Error("Unknown child ".concat(childName, " in group ").concat(name));
|
|
1201
|
+
}
|
|
1202
|
+
});
|
|
1203
|
+
var columnHeaderGroup = new ColumnHeaderGroup(_objectSpread(_objectSpread({}, group), {}, {
|
|
1204
|
+
depth,
|
|
1205
|
+
childIndexes: childIndexes.flat()
|
|
1206
|
+
}));
|
|
1207
|
+
groupMap.set(name, columnHeaderGroup);
|
|
1208
|
+
group.children.forEach(childName => parentMap.set(childName, columnHeaderGroup));
|
|
1209
|
+
maxDepth = Math.max(maxDepth, columnHeaderGroup.depth + 1);
|
|
1210
|
+
return columnHeaderGroup;
|
|
1211
|
+
};
|
|
1212
|
+
var groupNames = new Set();
|
|
1213
|
+
groups.forEach(group => {
|
|
1214
|
+
var {
|
|
1215
|
+
name
|
|
1216
|
+
} = group;
|
|
1217
|
+
if (groupNames.has(name)) {
|
|
1218
|
+
throw new Error("Duplicate column group name: ".concat(name));
|
|
1219
|
+
}
|
|
1220
|
+
groupNames.add(name);
|
|
1221
|
+
addGroup(group);
|
|
1222
|
+
});
|
|
1223
|
+
groupMap.forEach(group => {
|
|
1224
|
+
var _parentMap$get;
|
|
1225
|
+
group.setParent((_parentMap$get = parentMap.get(group.name)) === null || _parentMap$get === void 0 ? void 0 : _parentMap$get.name);
|
|
1226
|
+
});
|
|
1227
|
+
return {
|
|
1228
|
+
groups: [...groupMap.values()],
|
|
1229
|
+
maxDepth,
|
|
1230
|
+
groupMap,
|
|
1231
|
+
parentMap
|
|
1232
|
+
};
|
|
1233
|
+
}
|
|
1131
1234
|
}
|
|
1132
1235
|
export default IrisGridUtils;
|
|
1133
1236
|
//# sourceMappingURL=IrisGridUtils.js.map
|