@deephaven/iris-grid 0.28.1-beta.0 → 0.29.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 (103) hide show
  1. package/dist/ColumnHeaderGroup.d.ts +1 -1
  2. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  3. package/dist/ColumnHeaderGroup.js.map +1 -1
  4. package/dist/CommonTypes.d.ts +9 -3
  5. package/dist/CommonTypes.d.ts.map +1 -1
  6. package/dist/CommonTypes.js.map +1 -1
  7. package/dist/CrossColumnSearch.d.ts +5 -5
  8. package/dist/CrossColumnSearch.d.ts.map +1 -1
  9. package/dist/CrossColumnSearch.js.map +1 -1
  10. package/dist/IrisGrid.d.ts +90 -87
  11. package/dist/IrisGrid.d.ts.map +1 -1
  12. package/dist/IrisGrid.js +59 -29
  13. package/dist/IrisGrid.js.map +1 -1
  14. package/dist/IrisGridCopyHandler.d.ts +2 -2
  15. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  16. package/dist/IrisGridCopyHandler.js.map +1 -1
  17. package/dist/IrisGridModel.d.ts +28 -30
  18. package/dist/IrisGridModel.d.ts.map +1 -1
  19. package/dist/IrisGridModel.js +5 -6
  20. package/dist/IrisGridModel.js.map +1 -1
  21. package/dist/IrisGridModelUpdater.d.ts +13 -13
  22. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  23. package/dist/IrisGridModelUpdater.js +3 -2
  24. package/dist/IrisGridModelUpdater.js.map +1 -1
  25. package/dist/IrisGridProxyModel.d.ts +23 -23
  26. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  27. package/dist/IrisGridProxyModel.js.map +1 -1
  28. package/dist/IrisGridRenderer.d.ts +14 -3
  29. package/dist/IrisGridRenderer.d.ts.map +1 -1
  30. package/dist/IrisGridRenderer.js +38 -0
  31. package/dist/IrisGridRenderer.js.map +1 -1
  32. package/dist/IrisGridTableModelTemplate.d.ts +3 -3
  33. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  34. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  35. package/dist/IrisGridUtils.d.ts +74 -98
  36. package/dist/IrisGridUtils.d.ts.map +1 -1
  37. package/dist/IrisGridUtils.js +7 -7
  38. package/dist/IrisGridUtils.js.map +1 -1
  39. package/dist/PendingDataBottomBar.d.ts +2 -2
  40. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  41. package/dist/PendingDataBottomBar.js.map +1 -1
  42. package/dist/mousehandlers/IrisGridContextMenuHandler.js +1 -1
  43. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  44. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.d.ts +16 -0
  45. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.d.ts.map +1 -0
  46. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +126 -0
  47. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -0
  48. package/dist/mousehandlers/index.d.ts +1 -0
  49. package/dist/mousehandlers/index.d.ts.map +1 -1
  50. package/dist/mousehandlers/index.js +1 -0
  51. package/dist/mousehandlers/index.js.map +1 -1
  52. package/dist/sidebar/ChartBuilder.d.ts +3 -3
  53. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  54. package/dist/sidebar/ChartBuilder.js +6 -6
  55. package/dist/sidebar/ChartBuilder.js.map +1 -1
  56. package/dist/sidebar/CustomColumnBuilder.d.ts +6 -6
  57. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  58. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  59. package/dist/sidebar/RollupRows.d.ts +4 -4
  60. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  61. package/dist/sidebar/RollupRows.js.map +1 -1
  62. package/dist/sidebar/SelectDistinctBuilder.d.ts +4 -4
  63. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  64. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  65. package/dist/sidebar/TableCsvExporter.d.ts +4 -4
  66. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  67. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  68. package/dist/sidebar/TableSaver.d.ts +4 -4
  69. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  70. package/dist/sidebar/TableSaver.js.map +1 -1
  71. package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
  72. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  73. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  74. package/dist/sidebar/aggregations/AggregationUtils.d.ts +4 -4
  75. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  76. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  77. package/dist/sidebar/aggregations/Aggregations.d.ts +2 -2
  78. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  79. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  80. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  81. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  82. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  83. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +2 -2
  84. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  85. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  86. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +1 -1
  87. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  88. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  89. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +13 -13
  90. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  91. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  92. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +4 -4
  93. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -1
  94. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +1 -1
  95. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  96. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts +1 -0
  97. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts.map +1 -1
  98. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
  99. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +6 -5
  100. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  101. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +1 -1
  102. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  103. package/package.json +15 -15
package/dist/IrisGrid.js CHANGED
@@ -13,12 +13,12 @@ import PropTypes from 'prop-types';
13
13
  import deepEqual from 'deep-equal';
14
14
  import Log from '@deephaven/log';
15
15
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
16
- import { ContextActions, Stack, Menu, Page, Popper, ThemeExport, Tooltip, Button } from '@deephaven/components';
16
+ import { ContextActions, Stack, Menu, Page, Popper, ThemeExport, Tooltip, Button, ContextActionUtils } from '@deephaven/components';
17
17
  import { Grid, GridRange, GridUtils, isEditableGridModel, isExpandableGridModel, getOrThrow } from '@deephaven/grid';
18
18
  import { dhEye, dhFilterFilled, dhGraphLineUp, dhTriangleDownSquare, vsClose, vsCloudDownload, vsEdit, vsFilter, vsMenu, vsReply, vsRuby, vsSearch, vsSplitHorizontal, vsSymbolOperator, vsTools } from '@deephaven/icons';
19
19
  import dh from '@deephaven/jsapi-shim';
20
20
  import { DateUtils, Formatter, FormatterUtils, TableUtils } from '@deephaven/jsapi-utils';
21
- import { assertNotNull, copyToClipboard, Pending, PromiseUtils, ValidationError } from '@deephaven/utils';
21
+ import { assertNotNull, copyToClipboard, EMPTY_ARRAY, EMPTY_MAP, Pending, PromiseUtils, ValidationError } from '@deephaven/utils';
22
22
  import { Type as FilterType } from '@deephaven/filters';
23
23
  import throttle from 'lodash.throttle';
24
24
  import debounce from 'lodash.debounce';
@@ -28,7 +28,7 @@ import PendingDataBottomBar from "./PendingDataBottomBar.js";
28
28
  import IrisGridCopyHandler from "./IrisGridCopyHandler.js";
29
29
  import FilterInputField from "./FilterInputField.js";
30
30
  import { ClearFilterKeyHandler, CopyKeyHandler, ReverseKeyHandler } from "./key-handlers/index.js";
31
- import { IrisGridCellOverflowMouseHandler, IrisGridColumnSelectMouseHandler, IrisGridColumnTooltipMouseHandler, IrisGridContextMenuHandler, IrisGridDataSelectMouseHandler, IrisGridFilterMouseHandler, IrisGridSortMouseHandler, PendingMouseHandler } from "./mousehandlers/index.js";
31
+ import { IrisGridCellOverflowMouseHandler, IrisGridColumnSelectMouseHandler, IrisGridColumnTooltipMouseHandler, IrisGridContextMenuHandler, IrisGridDataSelectMouseHandler, IrisGridFilterMouseHandler, IrisGridRowTreeMouseHandler, IrisGridSortMouseHandler, PendingMouseHandler } from "./mousehandlers/index.js";
32
32
  import ToastBottomBar from "./ToastBottomBar.js";
33
33
  import IrisGridMetricCalculator from "./IrisGridMetricCalculator.js";
34
34
  import IrisGridModelUpdater from "./IrisGridModelUpdater.js";
@@ -56,7 +56,7 @@ var SET_FILTER_DEBOUNCE = 250;
56
56
  var SEEK_ROW_DEBOUNCE = 250;
57
57
  var SET_CONDITIONAL_FORMAT_DEBOUNCE = 250;
58
58
  var DEFAULT_AGGREGATION_SETTINGS = Object.freeze({
59
- aggregations: [],
59
+ aggregations: EMPTY_ARRAY,
60
60
  showOnTop: false
61
61
  });
62
62
  var UNFORMATTED_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS z";
@@ -216,7 +216,7 @@ export class IrisGrid extends Component {
216
216
  isOn: showGotoRow,
217
217
  onChange: toggleGotoRowAction.action
218
218
  });
219
- return optionItems;
219
+ return Object.freeze(optionItems);
220
220
  }, {
221
221
  max: 1
222
222
  }));
@@ -246,7 +246,7 @@ export class IrisGrid extends Component {
246
246
  AggregationUtils.getOperationColumnNames(columns, operation, selected, invert).forEach(name => {
247
247
  var _operationMap$name;
248
248
  var newOperations = [...((_operationMap$name = operationMap[name]) !== null && _operationMap$name !== void 0 ? _operationMap$name : []), operation];
249
- operationMap[name] = newOperations;
249
+ operationMap[name] = Object.freeze(newOperations);
250
250
  });
251
251
  });
252
252
  return operationMap;
@@ -320,7 +320,7 @@ export class IrisGrid extends Component {
320
320
  }
321
321
  }
322
322
  var columnSet = new Set([...alwaysFetchColumns, ...floatingColumns]);
323
- return [...columnSet];
323
+ return Object.freeze([...columnSet]);
324
324
  }));
325
325
  _defineProperty(this, "updateSearchFilter", debounce((searchValue, selectedSearchColumns, columns, invertSearchColumns) => {
326
326
  var searchFilter = CrossColumnSearch.createSearchFilter(searchValue, selectedSearchColumns, columns, invertSearchColumns);
@@ -369,6 +369,33 @@ export class IrisGrid extends Component {
369
369
  ref: this.handleTooltipRef
370
370
  }, "View full contents"));
371
371
  }));
372
+ _defineProperty(this, "getExpandCellTooltip", memoize(expandCellTooltipProps => {
373
+ if (expandCellTooltipProps == null) {
374
+ return null;
375
+ }
376
+ var {
377
+ expandTooltipDisplayValue
378
+ } = this.state;
379
+ var wrapperStyle = _objectSpread(_objectSpread({
380
+ position: 'absolute'
381
+ }, expandCellTooltipProps), {}, {
382
+ pointerEvents: 'none'
383
+ });
384
+ var popperOptions = {
385
+ placement: 'bottom-start'
386
+ };
387
+ return /*#__PURE__*/React.createElement("div", {
388
+ style: wrapperStyle
389
+ }, /*#__PURE__*/React.createElement(Tooltip, {
390
+ key: Date.now(),
391
+ options: popperOptions,
392
+ ref: this.handleTooltipRef
393
+ }, /*#__PURE__*/React.createElement("div", {
394
+ style: {
395
+ textAlign: 'left'
396
+ }
397
+ }, "Click to ", expandTooltipDisplayValue, " row", /*#__PURE__*/React.createElement("br", null), ContextActionUtils.isMacPlatform() ? '⌘' : 'Ctrl+', "Click to expand row and all children")));
398
+ }));
372
399
  _defineProperty(this, "handleGotoValueChanged", input => {
373
400
  this.setState({
374
401
  gotoValue: input
@@ -447,7 +474,7 @@ export class IrisGrid extends Component {
447
474
  this.gridWrapper = null;
448
475
  this.lastLoadedConfig = null;
449
476
  this.pending = new Pending();
450
- this.globalColumnFormats = [];
477
+ this.globalColumnFormats = EMPTY_ARRAY;
451
478
  this.decimalFormatOptions = {};
452
479
  this.integerFormatOptions = {};
453
480
  this.truncateNumbersWithPound = false;
@@ -523,7 +550,7 @@ export class IrisGrid extends Component {
523
550
  if (canCopy) {
524
551
  keyHandlers.push(new CopyKeyHandler(this));
525
552
  }
526
- 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)];
553
+ var mouseHandlers = [new IrisGridCellOverflowMouseHandler(this), new IrisGridRowTreeMouseHandler(this), new IrisGridColumnSelectMouseHandler(this), new IrisGridColumnTooltipMouseHandler(this), new IrisGridSortMouseHandler(this), new IrisGridFilterMouseHandler(this), new IrisGridContextMenuHandler(this), new IrisGridDataSelectMouseHandler(this), new PendingMouseHandler(this)];
527
554
  var _movedColumns = movedColumnsProp.length > 0 ? movedColumnsProp : _model.initialMovedColumns;
528
555
  var movedRows = movedRowsProp.length > 0 ? movedRowsProp : _model.initialMovedRows;
529
556
  var _metricCalculator = new IrisGridMetricCalculator({
@@ -600,6 +627,8 @@ export class IrisGrid extends Component {
600
627
  showOverflowModal: false,
601
628
  overflowText: '',
602
629
  overflowButtonTooltipProps: null,
630
+ expandCellTooltipProps: null,
631
+ expandTooltipDisplayValue: 'expand',
603
632
  isGotoShown: false,
604
633
  gotoRow: '',
605
634
  gotoRowError: '',
@@ -1530,7 +1559,7 @@ export class IrisGrid extends Component {
1530
1559
  var {
1531
1560
  partitionColumn
1532
1561
  } = this.state;
1533
- if (!partitionColumn) {
1562
+ if (partitionColumn == null) {
1534
1563
  return;
1535
1564
  }
1536
1565
  onPartitionAppend(partitionColumn, value);
@@ -1539,7 +1568,7 @@ export class IrisGrid extends Component {
1539
1568
  var {
1540
1569
  partitionColumn
1541
1570
  } = this.state;
1542
- if (!partitionColumn) {
1571
+ if (partitionColumn == null) {
1543
1572
  return;
1544
1573
  }
1545
1574
  this.updatePartition(partition, partitionColumn);
@@ -2886,6 +2915,7 @@ export class IrisGrid extends Component {
2886
2915
  showOverflowModal,
2887
2916
  overflowText,
2888
2917
  overflowButtonTooltipProps,
2918
+ expandCellTooltipProps,
2889
2919
  isGotoShown,
2890
2920
  gotoRow,
2891
2921
  gotoRowError,
@@ -3354,7 +3384,7 @@ export class IrisGrid extends Component {
3354
3384
  transform: "up-1"
3355
3385
  }),
3356
3386
  tooltip: "Table Options"
3357
- })), focusField, loadingElement, filterBar, columnTooltip, advancedFilterMenus, overflowButtonTooltipProps && this.getOverflowButtonTooltip(overflowButtonTooltipProps)), /*#__PURE__*/React.createElement(GotoRow, {
3387
+ })), focusField, loadingElement, filterBar, columnTooltip, advancedFilterMenus, overflowButtonTooltipProps && this.getOverflowButtonTooltip(overflowButtonTooltipProps), expandCellTooltipProps && this.getExpandCellTooltip(expandCellTooltipProps)), /*#__PURE__*/React.createElement(GotoRow, {
3358
3388
  model: model,
3359
3389
  isShown: isGotoShown,
3360
3390
  gotoRow: gotoRow,
@@ -3439,17 +3469,17 @@ _defineProperty(IrisGrid, "maxDebounce", 500);
3439
3469
  _defineProperty(IrisGrid, "loadingSpinnerDelay", 800);
3440
3470
  _defineProperty(IrisGrid, "defaultProps", {
3441
3471
  children: null,
3442
- advancedFilters: new Map(),
3443
- advancedSettings: new Map(),
3444
- alwaysFetchColumns: [],
3445
- conditionalFormats: [],
3446
- customColumnFormatMap: new Map(),
3472
+ advancedFilters: EMPTY_MAP,
3473
+ advancedSettings: EMPTY_MAP,
3474
+ alwaysFetchColumns: EMPTY_ARRAY,
3475
+ conditionalFormats: EMPTY_ARRAY,
3476
+ customColumnFormatMap: EMPTY_MAP,
3447
3477
  isFilterBarShown: false,
3448
3478
  applyInputFiltersOnInit: false,
3449
- movedColumns: [],
3450
- movedRows: [],
3451
- inputFilters: [],
3452
- customFilters: [],
3479
+ movedColumns: EMPTY_ARRAY,
3480
+ movedRows: EMPTY_ARRAY,
3481
+ inputFilters: EMPTY_ARRAY,
3482
+ customFilters: EMPTY_ARRAY,
3453
3483
  onCreateChart: undefined,
3454
3484
  onColumnSelected: () => undefined,
3455
3485
  onDataSelected: () => undefined,
@@ -3459,15 +3489,15 @@ _defineProperty(IrisGrid, "defaultProps", {
3459
3489
  onAdvancedSettingsChange: () => undefined,
3460
3490
  partition: null,
3461
3491
  partitionColumn: null,
3462
- quickFilters: new Map(),
3463
- selectDistinctColumns: [],
3464
- sorts: [],
3492
+ quickFilters: EMPTY_MAP,
3493
+ selectDistinctColumns: EMPTY_ARRAY,
3494
+ sorts: EMPTY_ARRAY,
3465
3495
  reverseType: TableUtils.REVERSE_TYPE.NONE,
3466
- customColumns: [],
3496
+ customColumns: EMPTY_ARRAY,
3467
3497
  aggregationSettings: DEFAULT_AGGREGATION_SETTINGS,
3468
3498
  rollupConfig: undefined,
3469
- userColumnWidths: new Map(),
3470
- userRowHeights: new Map(),
3499
+ userColumnWidths: EMPTY_MAP,
3500
+ userRowHeights: EMPTY_MAP,
3471
3501
  onSelectionChanged: () => undefined,
3472
3502
  isSelectingColumn: false,
3473
3503
  isSelectingPartition: false,
@@ -3483,7 +3513,7 @@ _defineProperty(IrisGrid, "defaultProps", {
3483
3513
  selectedSearchColumns: null,
3484
3514
  invertSearchColumns: true,
3485
3515
  onContextMenu: () => undefined,
3486
- pendingDataMap: new Map(),
3516
+ pendingDataMap: EMPTY_MAP,
3487
3517
  getDownloadWorker: undefined,
3488
3518
  settings: {
3489
3519
  timeZone: 'America/New_York',
@@ -3491,7 +3521,7 @@ _defineProperty(IrisGrid, "defaultProps", {
3491
3521
  showTimeZone: false,
3492
3522
  showTSeparator: true,
3493
3523
  truncateNumbersWithPound: false,
3494
- formatter: [],
3524
+ formatter: EMPTY_ARRAY,
3495
3525
  decimalFormatOptions: PropTypes.shape({
3496
3526
  defaultFormatString: PropTypes.string
3497
3527
  }),