@deephaven/iris-grid 1.22.0 → 1.22.1-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.
Files changed (51) hide show
  1. package/README.md +284 -1
  2. package/dist/CommonTypes.d.ts +62 -2
  3. package/dist/CommonTypes.d.ts.map +1 -1
  4. package/dist/CommonTypes.js.map +1 -1
  5. package/dist/IrisGrid.d.ts +85 -2
  6. package/dist/IrisGrid.d.ts.map +1 -1
  7. package/dist/IrisGrid.js +248 -68
  8. package/dist/IrisGrid.js.map +1 -1
  9. package/dist/IrisGridModel.d.ts +30 -1
  10. package/dist/IrisGridModel.d.ts.map +1 -1
  11. package/dist/IrisGridModel.js +36 -1
  12. package/dist/IrisGridModel.js.map +1 -1
  13. package/dist/IrisGridModelWidgetProps.d.ts +26 -0
  14. package/dist/IrisGridModelWidgetProps.d.ts.map +1 -0
  15. package/dist/IrisGridModelWidgetProps.js +2 -0
  16. package/dist/IrisGridModelWidgetProps.js.map +1 -0
  17. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  18. package/dist/IrisGridProxyModel.js +34 -2
  19. package/dist/IrisGridProxyModel.js.map +1 -1
  20. package/dist/IrisGridTextCellRenderer.d.ts.map +1 -1
  21. package/dist/IrisGridTextCellRenderer.js +1 -1
  22. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  23. package/dist/IrisGridUtils.d.ts +25 -2
  24. package/dist/IrisGridUtils.d.ts.map +1 -1
  25. package/dist/IrisGridUtils.js +99 -42
  26. package/dist/IrisGridUtils.js.map +1 -1
  27. package/dist/LazyIrisGrid.d.ts +1 -1
  28. package/dist/RemoteComponentModules.d.ts +12 -0
  29. package/dist/RemoteComponentModules.d.ts.map +1 -0
  30. package/dist/RemoteComponentModules.js +16 -0
  31. package/dist/RemoteComponentModules.js.map +1 -0
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts +22 -0
  37. package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts.map +1 -0
  38. package/dist/sidebar/IrisGridTableOptionsWidgetProps.js +2 -0
  39. package/dist/sidebar/IrisGridTableOptionsWidgetProps.js.map +1 -0
  40. package/dist/sidebar/OptionType.d.ts +8 -0
  41. package/dist/sidebar/OptionType.d.ts.map +1 -1
  42. package/dist/sidebar/OptionType.js +7 -0
  43. package/dist/sidebar/OptionType.js.map +1 -1
  44. package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts +30 -0
  45. package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts.map +1 -0
  46. package/dist/sidebar/PluginTableOptionsErrorBoundary.js +60 -0
  47. package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -0
  48. package/dist/sidebar/index.d.ts +3 -2
  49. package/dist/sidebar/index.d.ts.map +1 -1
  50. package/dist/sidebar/index.js.map +1 -1
  51. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","isStringType","text","textForCell","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","isStringType","text","textForCell","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n model.columns[modelColumn] == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  import { type GridMetrics, type GridRange, type GridState, type ModelIndex, type ModelSizeMap, type MoveOperation, type VisibleIndex } from '@deephaven/grid';
2
2
  import type { dh as DhType } from '@deephaven/jsapi-types';
3
3
  import { type ReverseType, type SortDirection, type FormattingRule, type SortDescriptor } from '@deephaven/jsapi-utils';
4
+ import AggregationOperation from './sidebar/aggregations/AggregationOperation';
4
5
  import { type FilterData, type IrisGridState } from './IrisGrid';
5
- import { type ColumnName, type ReadonlyAdvancedFilterMap, type ReadonlyQuickFilterMap, type InputFilter, type CellData, type PendingDataMap, type UIRow, type AdvancedFilterOptions } from './CommonTypes';
6
+ import { type ColumnName, type OperationMap, type ReadonlyAdvancedFilterMap, type ReadonlyQuickFilterMap, type InputFilter, type CellData, type PendingDataMap, type UIRow, type UITotalsTableConfig, type AdvancedFilterOptions } from './CommonTypes';
6
7
  import { type UIRollupConfig } from './sidebar/RollupRows';
7
- import { type AggregationSettings } from './sidebar/aggregations/Aggregations';
8
+ import { type Aggregation, type AggregationSettings } from './sidebar/aggregations/Aggregations';
8
9
  import { type FormattingRule as SidebarFormattingRule } from './sidebar/conditional-formatting/ConditionalFormattingUtils';
9
10
  import type IrisGridModel from './IrisGridModel';
10
11
  import type AdvancedSettingsType from './sidebar/AdvancedSettingsType';
@@ -233,6 +234,28 @@ declare class IrisGridUtils {
233
234
  * @returns Rollup config for the model
234
235
  */
235
236
  static getModelRollupConfig(originalColumns: readonly DhType.Column[], config: UIRollupConfig | undefined, aggregationSettings: AggregationSettings): DhType.RollupConfig | null;
237
+ /**
238
+ * Build a per-column aggregation operation map for use in a
239
+ * `UITotalsTableConfig`. Rollup-only operations are skipped.
240
+ */
241
+ static getOperationMap(columns: readonly DhType.Column[], aggregations: readonly Aggregation[]): OperationMap;
242
+ /**
243
+ * Ordered list of (non-rollup) operations used by a totals table.
244
+ */
245
+ static getOperationOrder(aggregations: readonly Aggregation[]): AggregationOperation[];
246
+ /**
247
+ * Hydrate model totals config for a standalone aggregations view
248
+ * (no rollup). Returns `null` when there are no active aggregations
249
+ * or when a rollup is active (in which case aggregations are folded
250
+ * into the rollup config instead — see `getModelRollupConfig`).
251
+ *
252
+ * @param columns Model columns
253
+ * @param rollupConfig Current rollup config (or undefined). When set
254
+ * with at least one grouping column, this returns
255
+ * `null` so totals don't double-up with the rollup.
256
+ * @param aggregationSettings Aggregation settings
257
+ */
258
+ static getModelTotalsConfig(columns: readonly DhType.Column[], rollupConfig: UIRollupConfig | undefined, aggregationSettings: AggregationSettings): UITotalsTableConfig | null;
236
259
  /**
237
260
  * @param pendingDataMap Map of pending data
238
261
  * @returns A map with the errors in the pending data
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridUtils.ts"],"names":[],"mappings":"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"}
@@ -581,6 +581,63 @@ class IrisGridUtils {
581
581
  };
582
582
  }
583
583
 
584
+ /**
585
+ * Build a per-column aggregation operation map for use in a
586
+ * `UITotalsTableConfig`. Rollup-only operations are skipped.
587
+ */
588
+ static getOperationMap(columns, aggregations) {
589
+ var operationMap = {};
590
+ aggregations.filter(a => !AggregationUtils.isRollupOperation(a.operation)).forEach(_ref14 => {
591
+ var {
592
+ operation,
593
+ selected,
594
+ invert
595
+ } = _ref14;
596
+ AggregationUtils.getOperationColumnNames(columns, operation, selected, invert).forEach(name => {
597
+ var _operationMap$name;
598
+ var newOperations = [...((_operationMap$name = operationMap[name]) !== null && _operationMap$name !== void 0 ? _operationMap$name : []), operation];
599
+ operationMap[name] = Object.freeze(newOperations);
600
+ });
601
+ });
602
+ return operationMap;
603
+ }
604
+
605
+ /**
606
+ * Ordered list of (non-rollup) operations used by a totals table.
607
+ */
608
+ static getOperationOrder(aggregations) {
609
+ return aggregations.map(a => a.operation).filter(o => !AggregationUtils.isRollupOperation(o));
610
+ }
611
+
612
+ /**
613
+ * Hydrate model totals config for a standalone aggregations view
614
+ * (no rollup). Returns `null` when there are no active aggregations
615
+ * or when a rollup is active (in which case aggregations are folded
616
+ * into the rollup config instead — see `getModelRollupConfig`).
617
+ *
618
+ * @param columns Model columns
619
+ * @param rollupConfig Current rollup config (or undefined). When set
620
+ * with at least one grouping column, this returns
621
+ * `null` so totals don't double-up with the rollup.
622
+ * @param aggregationSettings Aggregation settings
623
+ */
624
+ static getModelTotalsConfig(columns, rollupConfig, aggregationSettings) {
625
+ var _rollupConfig$columns, _rollupConfig$columns2;
626
+ if (((_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) {
627
+ return null;
628
+ }
629
+ var aggregations = aggregationSettings.aggregations.filter(agg => agg.selected.length > 0 || agg.invert);
630
+ if (aggregations.length === 0) {
631
+ return null;
632
+ }
633
+ return {
634
+ operationMap: IrisGridUtils.getOperationMap(columns, aggregations),
635
+ operationOrder: IrisGridUtils.getOperationOrder(aggregations),
636
+ showOnTop: aggregationSettings.showOnTop,
637
+ defaultOperation: AggregationOperation.SKIP
638
+ };
639
+ }
640
+
584
641
  /**
585
642
  * @param pendingDataMap Map of pending data
586
643
  * @returns A map with the errors in the pending data
@@ -622,17 +679,17 @@ class IrisGridUtils {
622
679
  */
623
680
  static getColumnByName(columns, columnName) {
624
681
  // Columns can contain ColumnBy sources with negative indexes
625
- var column = Object.values(columns).find(_ref14 => {
682
+ var column = Object.values(columns).find(_ref15 => {
626
683
  var {
627
684
  name
628
- } = _ref14;
685
+ } = _ref15;
629
686
  return name === columnName;
630
687
  });
631
688
  if (column == null) {
632
- log.error('Unable to retrieve column by name', columnName, columns.map(_ref15 => {
689
+ log.error('Unable to retrieve column by name', columnName, columns.map(_ref16 => {
633
690
  var {
634
691
  name
635
- } = _ref15;
692
+ } = _ref16;
636
693
  return name;
637
694
  }));
638
695
  }
@@ -646,11 +703,11 @@ class IrisGridUtils {
646
703
  * @returns Updated filter configs with column names changed to indexes
647
704
  */
648
705
  static changeFilterColumnNamesToIndexes(columns, filters) {
649
- return filters.map(_ref16 => {
706
+ return filters.map(_ref17 => {
650
707
  var {
651
708
  name,
652
709
  filter
653
- } = _ref16;
710
+ } = _ref17;
654
711
  var index = columns.findIndex(column => column.name === name);
655
712
  return index < 0 ? null : [index, filter];
656
713
  }).filter(filterConfig => filterConfig != null);
@@ -721,10 +778,10 @@ class IrisGridUtils {
721
778
  var groupMap = new Map();
722
779
 
723
780
  // Remove any empty groups before parsing
724
- var groups = groupsParam === null || groupsParam === void 0 ? void 0 : groupsParam.filter(_ref17 => {
781
+ var groups = groupsParam === null || groupsParam === void 0 ? void 0 : groupsParam.filter(_ref18 => {
725
782
  var {
726
783
  children
727
- } = _ref17;
784
+ } = _ref18;
728
785
  return children != null && children.length > 0;
729
786
  });
730
787
  if (groups.length === 0) {
@@ -890,11 +947,11 @@ class IrisGridUtils {
890
947
  // active), so reload-then-save round-trips don't drop them.
891
948
  // Fall back to projecting the by-index map from `metrics` against the
892
949
  // current model for callers that didn't pass a metric calculator.
893
- var dehydratedUserColumnWidths = metricCalculator != null ? [...metricCalculator.getUserColumnWidthsByName()] : [...userColumnWidths].filter(_ref18 => {
894
- var [columnIndex] = _ref18;
950
+ var dehydratedUserColumnWidths = metricCalculator != null ? [...metricCalculator.getUserColumnWidthsByName()] : [...userColumnWidths].filter(_ref19 => {
951
+ var [columnIndex] = _ref19;
895
952
  return columnIndex != null && columnIndex >= 0 && columnIndex < columns.length;
896
- }).map(_ref19 => {
897
- var [columnIndex, width] = _ref19;
953
+ }).map(_ref20 => {
954
+ var [columnIndex, width] = _ref20;
898
955
  return [columns[columnIndex].name, width];
899
956
  });
900
957
 
@@ -938,7 +995,7 @@ class IrisGridUtils {
938
995
  * @param irisGridState The saved IrisGrid state
939
996
  */
940
997
  hydrateIrisGridState(model, irisGridState) {
941
- var _ref23, _model$layoutHints;
998
+ var _ref24, _model$layoutHints;
942
999
  var {
943
1000
  advancedFilters,
944
1001
  aggregationSettings = {
@@ -978,9 +1035,9 @@ class IrisGridUtils {
978
1035
  // by-index map from that for back-compat with consumers that read
979
1036
  // widths immediately after hydrate.
980
1037
  var userColumnWidthsByName = new Map();
981
- userColumnWidths.forEach(_ref20 => {
1038
+ userColumnWidths.forEach(_ref21 => {
982
1039
  var _columns;
983
- var [column, width] = _ref20;
1040
+ var [column, width] = _ref21;
984
1041
  var name = typeof column === 'string' || column instanceof String ? column : (_columns = columns[column]) === null || _columns === void 0 ? void 0 : _columns.name;
985
1042
  if (name != null) {
986
1043
  userColumnWidthsByName.set(name, width);
@@ -995,11 +1052,11 @@ class IrisGridUtils {
995
1052
  quickFilters: this.hydrateQuickFilters(columns, quickFilters, formatter.timeZone),
996
1053
  sorts: this.hydrateSort(columns, sorts, true),
997
1054
  userColumnWidthsByName,
998
- userColumnWidths: new Map([...userColumnWidthsByName].map(_ref21 => {
999
- var [name, width] = _ref21;
1055
+ userColumnWidths: new Map([...userColumnWidthsByName].map(_ref22 => {
1056
+ var [name, width] = _ref22;
1000
1057
  return [columns.findIndex(c => c.name === name), width];
1001
- }).filter(_ref22 => {
1002
- var [column] = _ref22;
1058
+ }).filter(_ref23 => {
1059
+ var [column] = _ref23;
1003
1060
  return column != null && column >= 0 && column < columns.length;
1004
1061
  })),
1005
1062
  customColumns,
@@ -1014,7 +1071,7 @@ class IrisGridUtils {
1014
1071
  invertSearchColumns,
1015
1072
  pendingDataMap: this.hydratePendingDataMap(columns, pendingDataMap),
1016
1073
  frozenColumns,
1017
- columnHeaderGroups: IrisGridUtils.parseColumnHeaderGroups(model, (_ref23 = columnHeaderGroups !== null && columnHeaderGroups !== void 0 ? columnHeaderGroups : (_model$layoutHints = model.layoutHints) === null || _model$layoutHints === void 0 ? void 0 : _model$layoutHints.columnGroups) !== null && _ref23 !== void 0 ? _ref23 : []).groups,
1074
+ 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,
1018
1075
  partitionConfig: this.hydratePartitionConfig(partitionColumns, partitionConfig)
1019
1076
  };
1020
1077
  }
@@ -1027,8 +1084,8 @@ class IrisGridUtils {
1027
1084
  * @returns The quick filters to apply to the columns
1028
1085
  */
1029
1086
  hydrateQuickFilters(columns, savedQuickFilters, timeZone) {
1030
- var importedFilters = savedQuickFilters.map(_ref24 => {
1031
- var [columnIndex, quickFilter] = _ref24;
1087
+ var importedFilters = savedQuickFilters.map(_ref25 => {
1088
+ var [columnIndex, quickFilter] = _ref25;
1032
1089
  var {
1033
1090
  text
1034
1091
  } = quickFilter;
@@ -1056,8 +1113,8 @@ class IrisGridUtils {
1056
1113
  * @returns The dehydrated advanced filters
1057
1114
  */
1058
1115
  dehydrateAdvancedFilters(columns, advancedFilters) {
1059
- return [...advancedFilters].map(_ref25 => {
1060
- var [columnIndex, advancedFilter] = _ref25;
1116
+ return [...advancedFilters].map(_ref26 => {
1117
+ var [columnIndex, advancedFilter] = _ref26;
1061
1118
  var column = IrisGridUtils.getColumn(columns, columnIndex);
1062
1119
  assertNotNull(column);
1063
1120
  var options = this.dehydrateAdvancedFilterOptions(column, advancedFilter.options);
@@ -1075,8 +1132,8 @@ class IrisGridUtils {
1075
1132
  * @returns The advanced filters to apply to the columns
1076
1133
  */
1077
1134
  hydrateAdvancedFilters(columns, savedAdvancedFilters, timeZone) {
1078
- var importedFilters = savedAdvancedFilters.map(_ref26 => {
1079
- var [columnIndex, advancedFilter] = _ref26;
1135
+ var importedFilters = savedAdvancedFilters.map(_ref27 => {
1136
+ var [columnIndex, advancedFilter] = _ref27;
1080
1137
  var column = IrisGridUtils.getColumn(columns, columnIndex);
1081
1138
  assertNotNull(column);
1082
1139
  var options = this.hydrateAdvancedFilterOptions(column, advancedFilter.options);
@@ -1115,16 +1172,16 @@ class IrisGridUtils {
1115
1172
  }, otherOptions);
1116
1173
  }
1117
1174
  dehydratePendingDataMap(columns, pendingDataMap) {
1118
- return [...pendingDataMap].map(_ref27 => {
1175
+ return [...pendingDataMap].map(_ref28 => {
1119
1176
  var [rowIndex, {
1120
1177
  data
1121
- }] = _ref27;
1178
+ }] = _ref28;
1122
1179
  return [rowIndex, {
1123
- data: [...data].filter(_ref28 => {
1124
- var [c] = _ref28;
1180
+ data: [...data].filter(_ref29 => {
1181
+ var [c] = _ref29;
1125
1182
  return typeof c === 'number';
1126
- }).map(_ref29 => {
1127
- var [c, cellData] = _ref29;
1183
+ }).map(_ref30 => {
1184
+ var [c, cellData] = _ref30;
1128
1185
  return [columns[c].name, this.dehydrateValue(cellData.value, columns[c].type)];
1129
1186
  })
1130
1187
  }];
@@ -1134,23 +1191,23 @@ class IrisGridUtils {
1134
1191
  var columnMap = new Map();
1135
1192
  var getColumnIndex = columnName => {
1136
1193
  if (!columnMap.has(columnName)) {
1137
- columnMap.set(columnName, columns.findIndex(_ref30 => {
1194
+ columnMap.set(columnName, columns.findIndex(_ref31 => {
1138
1195
  var {
1139
1196
  name
1140
- } = _ref30;
1197
+ } = _ref31;
1141
1198
  return name === columnName;
1142
1199
  }));
1143
1200
  }
1144
1201
  return columnMap.get(columnName);
1145
1202
  };
1146
- return new Map(pendingDataMap.map(_ref31 => {
1203
+ return new Map(pendingDataMap.map(_ref32 => {
1147
1204
  var [rowIndex, {
1148
1205
  data
1149
- }] = _ref31;
1206
+ }] = _ref32;
1150
1207
  return [rowIndex, {
1151
- data: new Map(data.map(_ref32 => {
1208
+ data: new Map(data.map(_ref33 => {
1152
1209
  var _getColumnIndex;
1153
- var [columnName, value] = _ref32;
1210
+ var [columnName, value] = _ref33;
1154
1211
  var index = getColumnIndex(columnName);
1155
1212
  assertNotNull(index);
1156
1213
  return [(_getColumnIndex = getColumnIndex(columnName)) !== null && _getColumnIndex !== void 0 ? _getColumnIndex : null, {
@@ -1335,17 +1392,17 @@ class IrisGridUtils {
1335
1392
  getFiltersFromInputFilters(columns) {
1336
1393
  var inputFilters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1337
1394
  var timeZone = arguments.length > 2 ? arguments[2] : undefined;
1338
- return inputFilters.map(_ref33 => {
1395
+ return inputFilters.map(_ref34 => {
1339
1396
  var {
1340
1397
  name,
1341
1398
  type,
1342
1399
  value
1343
- } = _ref33;
1344
- var column = columns.find(_ref34 => {
1400
+ } = _ref34;
1401
+ var column = columns.find(_ref35 => {
1345
1402
  var {
1346
1403
  name: columnName,
1347
1404
  type: columnType
1348
- } = _ref34;
1405
+ } = _ref35;
1349
1406
  return columnName === name && columnType === type;
1350
1407
  });
1351
1408
  if (column) {