@deephaven/iris-grid 0.24.1-hierarchical-table.0 → 0.25.1-beta.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 (106) hide show
  1. package/dist/ColumnHeaderGroup.d.ts +10 -3
  2. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  3. package/dist/ColumnHeaderGroup.js +20 -1
  4. package/dist/ColumnHeaderGroup.js.map +1 -1
  5. package/dist/IrisGrid.css.map +1 -1
  6. package/dist/IrisGrid.d.ts +6 -3
  7. package/dist/IrisGrid.d.ts.map +1 -1
  8. package/dist/IrisGrid.js +42 -25
  9. package/dist/IrisGrid.js.map +1 -1
  10. package/dist/IrisGridModel.d.ts +9 -2
  11. package/dist/IrisGridModel.d.ts.map +1 -1
  12. package/dist/IrisGridModel.js +0 -13
  13. package/dist/IrisGridModel.js.map +1 -1
  14. package/dist/IrisGridModelUpdater.d.ts +3 -1
  15. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  16. package/dist/IrisGridModelUpdater.js +5 -1
  17. package/dist/IrisGridModelUpdater.js.map +1 -1
  18. package/dist/IrisGridProxyModel.d.ts +7 -2
  19. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  20. package/dist/IrisGridProxyModel.js +16 -4
  21. package/dist/IrisGridProxyModel.js.map +1 -1
  22. package/dist/IrisGridTableModel.d.ts +1 -1
  23. package/dist/IrisGridTableModel.d.ts.map +1 -1
  24. package/dist/IrisGridTableModel.js.map +1 -1
  25. package/dist/IrisGridTableModelTemplate.d.ts +18 -9
  26. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  27. package/dist/IrisGridTableModelTemplate.js +143 -165
  28. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  29. package/dist/IrisGridTestUtils.d.ts +8 -2
  30. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  31. package/dist/IrisGridTestUtils.js +9 -4
  32. package/dist/IrisGridTestUtils.js.map +1 -1
  33. package/dist/IrisGridTheme.module.css.map +1 -1
  34. package/dist/IrisGridUtils.d.ts +16 -2
  35. package/dist/IrisGridUtils.d.ts.map +1 -1
  36. package/dist/IrisGridUtils.js +151 -48
  37. package/dist/IrisGridUtils.js.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/sidebar/index.d.ts +1 -1
  43. package/dist/sidebar/index.d.ts.map +1 -1
  44. package/dist/sidebar/index.js +1 -1
  45. package/dist/sidebar/index.js.map +1 -1
  46. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +68 -0
  47. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -0
  48. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +156 -0
  49. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -0
  50. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +962 -0
  51. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -0
  52. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +26 -0
  53. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -0
  54. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +130 -0
  55. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -0
  56. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +29 -0
  57. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -0
  58. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts +13 -0
  59. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -0
  60. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +160 -0
  61. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -0
  62. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts +19 -0
  63. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -0
  64. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +81 -0
  65. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -0
  66. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts +13 -0
  67. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts.map +1 -0
  68. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +28 -0
  69. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -0
  70. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts +18 -0
  71. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts.map +1 -0
  72. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +156 -0
  73. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -0
  74. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts +19 -0
  75. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts.map +1 -0
  76. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +144 -0
  77. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -0
  78. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts +7 -0
  79. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts.map +1 -0
  80. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +57 -0
  81. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -0
  82. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +139 -0
  83. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -0
  84. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts +36 -0
  85. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts.map +1 -0
  86. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +44 -0
  87. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -0
  88. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts +4 -0
  89. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts.map +1 -0
  90. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +127 -0
  91. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -0
  92. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts +20 -0
  93. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts.map +1 -0
  94. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +4 -0
  95. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -0
  96. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +55 -0
  97. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -0
  98. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +265 -0
  99. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -0
  100. package/package.json +20 -16
  101. package/dist/sidebar/VisibilityOrderingBuilder.css +0 -156
  102. package/dist/sidebar/VisibilityOrderingBuilder.css.map +0 -1
  103. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +0 -79
  104. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +0 -1
  105. package/dist/sidebar/VisibilityOrderingBuilder.js +0 -753
  106. package/dist/sidebar/VisibilityOrderingBuilder.js.map +0 -1
package/dist/IrisGrid.js CHANGED
@@ -133,7 +133,7 @@ export class IrisGrid extends Component {
133
133
  }
134
134
  optionItems.push({
135
135
  type: OptionType.VISIBILITY_ORDERING_BUILDER,
136
- title: 'Column Visibility & Ordering',
136
+ title: 'Hide, Group, and Order Columns',
137
137
  icon: dhEye
138
138
  });
139
139
  if (isFormatColumnsAvailable) {
@@ -395,6 +395,7 @@ export class IrisGrid extends Component {
395
395
  this.handleRequestFailed = this.handleRequestFailed.bind(this);
396
396
  this.handleSelectionChanged = this.handleSelectionChanged.bind(this);
397
397
  this.handleMovedColumnsChanged = this.handleMovedColumnsChanged.bind(this);
398
+ this.handleHeaderGroupsChanged = this.handleHeaderGroupsChanged.bind(this);
398
399
  this.handleUpdate = this.handleUpdate.bind(this);
399
400
  this.handleTooltipRef = this.handleTooltipRef.bind(this);
400
401
  this.handleViewChanged = this.handleViewChanged.bind(this);
@@ -500,15 +501,16 @@ export class IrisGrid extends Component {
500
501
  selectDistinctColumns,
501
502
  pendingDataMap,
502
503
  canCopy,
503
- frozenColumns
504
+ frozenColumns,
505
+ columnHeaderGroups
504
506
  } = props;
505
507
  var keyHandlers = [new ReverseKeyHandler(this), new ClearFilterKeyHandler(this)];
506
508
  if (canCopy) {
507
509
  keyHandlers.push(new CopyKeyHandler(this));
508
510
  }
509
511
  var mouseHandlers = [new IrisGridCellOverflowMouseHandler(this), new IrisGridColumnSelectMouseHandler(this), new IrisGridColumnTooltipMouseHandler(this), new IrisGridSortMouseHandler(this), new IrisGridFilterMouseHandler(this), new IrisGridContextMenuHandler(this), new IrisGridDataSelectMouseHandler(this), new PendingMouseHandler(this)];
510
- var _movedColumns = movedColumnsProp.length > 0 ? movedColumnsProp : _model.movedColumns;
511
- var movedRows = movedRowsProp.length > 0 ? movedRowsProp : _model.movedRows;
512
+ var _movedColumns = movedColumnsProp.length > 0 ? movedColumnsProp : _model.initialMovedColumns;
513
+ var movedRows = movedRowsProp.length > 0 ? movedRowsProp : _model.initialMovedRows;
512
514
  var metricCalculator = new IrisGridMetricCalculator({
513
515
  userColumnWidths: new Map(userColumnWidths),
514
516
  userRowHeights: new Map(userRowHeights),
@@ -584,7 +586,8 @@ export class IrisGrid extends Component {
584
586
  overflowButtonTooltipProps: null,
585
587
  isGotoRowShown: false,
586
588
  gotoRow: '',
587
- gotoRowError: ''
589
+ gotoRowError: '',
590
+ columnHeaderGroups: columnHeaderGroups !== null && columnHeaderGroups !== void 0 ? columnHeaderGroups : _model.initialColumnHeaderGroups
588
591
  };
589
592
  }
590
593
  componentDidMount() {
@@ -1429,12 +1432,12 @@ export class IrisGrid extends Component {
1429
1432
  movedColumns: newMovedColumns
1430
1433
  });
1431
1434
  }
1432
- handleColumnVisibilityChanged(modelIndexes, visibilityOption) {
1435
+ handleColumnVisibilityChanged(modelIndexes, isVisible) {
1433
1436
  var _this$grid6;
1434
1437
  var {
1435
1438
  metricCalculator
1436
1439
  } = this.state;
1437
- if (visibilityOption === VisibilityOrderingBuilder.VISIBILITY_OPTIONS.SHOW) {
1440
+ if (isVisible) {
1438
1441
  modelIndexes.forEach(modelIndex => {
1439
1442
  metricCalculator.resetColumnWidth(modelIndex);
1440
1443
  });
@@ -2080,12 +2083,22 @@ export class IrisGrid extends Component {
2080
2083
  }
2081
2084
  onSelectionChanged(selectedRanges);
2082
2085
  }
2083
- handleMovedColumnsChanged(movedColumns) {
2084
- var onChangeApplied = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => null;
2086
+ handleMovedColumnsChanged(movedColumns, onChangeApplied) {
2085
2087
  this.setState({
2086
2088
  movedColumns
2087
2089
  }, onChangeApplied);
2088
2090
  }
2091
+ handleHeaderGroupsChanged(columnHeaderGroups) {
2092
+ var {
2093
+ model
2094
+ } = this.props;
2095
+ this.setState({
2096
+ columnHeaderGroups: IrisGridUtils.parseColumnHeaderGroups(model, columnHeaderGroups).groups
2097
+ }, () => {
2098
+ var _this$grid20;
2099
+ return (_this$grid20 = this.grid) === null || _this$grid20 === void 0 ? void 0 : _this$grid20.forceUpdate();
2100
+ });
2101
+ }
2089
2102
  handleTooltipRef(tooltip) {
2090
2103
  // Need to start the timer right away, since we're creating the tooltip when we want the timer to start
2091
2104
  if (tooltip != null) {
@@ -2218,9 +2231,9 @@ export class IrisGrid extends Component {
2218
2231
  isReady
2219
2232
  } = this.state;
2220
2233
  if (isReady) {
2221
- var _this$grid20;
2234
+ var _this$grid21;
2222
2235
  this.stopLoading();
2223
- (_this$grid20 = this.grid) === null || _this$grid20 === void 0 ? void 0 : _this$grid20.forceUpdate();
2236
+ (_this$grid21 = this.grid) === null || _this$grid21 === void 0 ? void 0 : _this$grid21.forceUpdate();
2224
2237
  } else {
2225
2238
  this.initState();
2226
2239
  }
@@ -2232,7 +2245,7 @@ export class IrisGrid extends Component {
2232
2245
  return this.discardPending();
2233
2246
  }
2234
2247
  handlePendingDataUpdated() {
2235
- var _this$grid21;
2248
+ var _this$grid22;
2236
2249
  log.debug('pending data updated');
2237
2250
  var {
2238
2251
  model
@@ -2246,7 +2259,7 @@ export class IrisGrid extends Component {
2246
2259
  pendingDataErrors,
2247
2260
  pendingSaveError: null
2248
2261
  });
2249
- (_this$grid21 = this.grid) === null || _this$grid21 === void 0 ? void 0 : _this$grid21.forceUpdate();
2262
+ (_this$grid22 = this.grid) === null || _this$grid22 === void 0 ? void 0 : _this$grid22.forceUpdate();
2250
2263
  }
2251
2264
 
2252
2265
  /**
@@ -2520,20 +2533,20 @@ export class IrisGrid extends Component {
2520
2533
  gotoRowError: 'Invalid row index'
2521
2534
  });
2522
2535
  } else if (rowInt === 0) {
2523
- var _this$grid22;
2536
+ var _this$grid23;
2524
2537
  this.setState({
2525
2538
  gotoRowError: ''
2526
2539
  });
2527
- (_this$grid22 = this.grid) === null || _this$grid22 === void 0 ? void 0 : _this$grid22.setFocusRow(0);
2540
+ (_this$grid23 = this.grid) === null || _this$grid23 === void 0 ? void 0 : _this$grid23.setFocusRow(0);
2528
2541
  } else if (rowInt < 0) {
2529
- var _this$grid23;
2542
+ var _this$grid24;
2530
2543
  this.setState({
2531
2544
  gotoRowError: ''
2532
2545
  });
2533
- (_this$grid23 = this.grid) === null || _this$grid23 === void 0 ? void 0 : _this$grid23.setFocusRow(rowInt + rowCount);
2546
+ (_this$grid24 = this.grid) === null || _this$grid24 === void 0 ? void 0 : _this$grid24.setFocusRow(rowInt + rowCount);
2534
2547
  } else {
2535
- var _this$grid24;
2536
- (_this$grid24 = this.grid) === null || _this$grid24 === void 0 ? void 0 : _this$grid24.setFocusRow(rowInt - 1);
2548
+ var _this$grid25;
2549
+ (_this$grid25 = this.grid) === null || _this$grid25 === void 0 ? void 0 : _this$grid25.setFocusRow(rowInt - 1);
2537
2550
  this.setState({
2538
2551
  gotoRowError: ''
2539
2552
  });
@@ -2634,8 +2647,8 @@ export class IrisGrid extends Component {
2634
2647
  var _rollupConfig$columns3,
2635
2648
  _rollupConfig$columns4,
2636
2649
  _this5 = this,
2637
- _this$grid26,
2638
- _this$grid26$state$dr,
2650
+ _this$grid27,
2651
+ _this$grid27$state$dr,
2639
2652
  _openOptions;
2640
2653
  var {
2641
2654
  children,
@@ -2708,6 +2721,7 @@ export class IrisGrid extends Component {
2708
2721
  pendingDataMap,
2709
2722
  toastMessage,
2710
2723
  frozenColumns,
2724
+ columnHeaderGroups,
2711
2725
  showOverflowModal,
2712
2726
  overflowText,
2713
2727
  overflowButtonTooltipProps,
@@ -2745,7 +2759,7 @@ export class IrisGrid extends Component {
2745
2759
  var columnX = visibleColumnXs.get(focusedFilterBarColumn);
2746
2760
  var columnWidth = visibleColumnWidths.get(focusedFilterBarColumn);
2747
2761
  if (columnX != null && columnWidth != null) {
2748
- var _theme$filterBarHeigh, _theme$filterBarHeigh2, _this$grid25;
2762
+ var _theme$filterBarHeigh, _theme$filterBarHeigh2, _this$grid26;
2749
2763
  var x = gridX + columnX;
2750
2764
  var y = gridY - ((_theme$filterBarHeigh = theme.filterBarHeight) !== null && _theme$filterBarHeigh !== void 0 ? _theme$filterBarHeigh : 0);
2751
2765
  var fieldWidth = columnWidth + 1; // cover right border
@@ -2786,7 +2800,7 @@ export class IrisGrid extends Component {
2786
2800
  onChange: this.handleFilterBarChange,
2787
2801
  onDone: this.handleFilterBarDone,
2788
2802
  onTab: this.handleFilterBarTab,
2789
- onContextMenu: (_this$grid25 = this.grid) === null || _this$grid25 === void 0 ? void 0 : _this$grid25.handleContextMenu,
2803
+ onContextMenu: (_this$grid26 = this.grid) === null || _this$grid26 === void 0 ? void 0 : _this$grid26.handleContextMenu,
2790
2804
  debounceMs: debounceMs,
2791
2805
  value: _value4
2792
2806
  });
@@ -2980,8 +2994,10 @@ export class IrisGrid extends Component {
2980
2994
  model: model,
2981
2995
  movedColumns: movedColumns,
2982
2996
  userColumnWidths: userColumnWidths,
2997
+ columnHeaderGroups: columnHeaderGroups,
2983
2998
  onColumnVisibilityChanged: this.handleColumnVisibilityChanged,
2984
2999
  onMovedColumnsChanged: this.handleMovedColumnsChanged,
3000
+ onColumnHeaderGroupChanged: this.handleHeaderGroupsChanged,
2985
3001
  key: OptionType.VISIBILITY_ORDERING_BUILDER
2986
3002
  });
2987
3003
  case OptionType.CONDITIONAL_FORMATTING:
@@ -3151,7 +3167,7 @@ export class IrisGrid extends Component {
3151
3167
  movedColumns: movedColumns,
3152
3168
  customColumns: customColumns,
3153
3169
  hiddenColumns: hiddenColumns,
3154
- alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, movedColumns, model.floatingLeftColumnCount, model.floatingRightColumnCount, (_this$grid26 = this.grid) === null || _this$grid26 === void 0 ? void 0 : (_this$grid26$state$dr = _this$grid26.state.draggingColumn) === null || _this$grid26$state$dr === void 0 ? void 0 : _this$grid26$state$dr.range),
3170
+ alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, movedColumns, model.floatingLeftColumnCount, model.floatingRightColumnCount, (_this$grid27 = this.grid) === null || _this$grid27 === void 0 ? void 0 : (_this$grid27$state$dr = _this$grid27.state.draggingColumn) === null || _this$grid27$state$dr === void 0 ? void 0 : _this$grid27$state$dr.range),
3155
3171
  formatColumns: this.getCachedPreviewFormatColumns(this.getCachedModelColumns(model, customColumns), conditionalFormats, conditionalFormatPreview,
3156
3172
  // Disable the preview format when we press Back on the format edit page
3157
3173
  ((_openOptions = openOptions[openOptions.length - 1]) === null || _openOptions === void 0 ? void 0 : _openOptions.type) === OptionType.CONDITIONAL_FORMATTING_EDIT ? conditionalFormatEditIndex !== null && conditionalFormatEditIndex !== void 0 ? conditionalFormatEditIndex : undefined : undefined),
@@ -3160,7 +3176,8 @@ export class IrisGrid extends Component {
3160
3176
  selectDistinctColumns: selectDistinctColumns,
3161
3177
  pendingRowCount: pendingRowCount,
3162
3178
  pendingDataMap: pendingDataMap,
3163
- frozenColumns: frozenColumns
3179
+ frozenColumns: frozenColumns,
3180
+ columnHeaderGroups: columnHeaderGroups
3164
3181
  }), !isMenuShown && /*#__PURE__*/React.createElement("div", {
3165
3182
  className: "grid-settings-button"
3166
3183
  }, /*#__PURE__*/React.createElement(Button, {