@deephaven/dashboard-core-plugins 1.22.1 → 1.22.2-alpha-pivot-builder.0730ba6.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 (105) hide show
  1. package/dist/ChartBuilderPlugin.js +8 -15
  2. package/dist/ChartBuilderPlugin.js.map +1 -1
  3. package/dist/ChartPanelPlugin.js +13 -6
  4. package/dist/ChartPanelPlugin.js.map +1 -1
  5. package/dist/ChartWidgetPlugin.js +11 -4
  6. package/dist/ChartWidgetPlugin.js.map +1 -1
  7. package/dist/ConsolePlugin.js +38 -46
  8. package/dist/ConsolePlugin.js.map +1 -1
  9. package/dist/FilterPlugin.js +63 -44
  10. package/dist/FilterPlugin.js.map +1 -1
  11. package/dist/GridPanelPlugin.js +3 -5
  12. package/dist/GridPanelPlugin.js.map +1 -1
  13. package/dist/GridWidgetPlugin.d.ts +18 -1
  14. package/dist/GridWidgetPlugin.d.ts.map +1 -1
  15. package/dist/GridWidgetPlugin.js +54 -30
  16. package/dist/GridWidgetPlugin.js.map +1 -1
  17. package/dist/LinkerPlugin.js +3 -5
  18. package/dist/LinkerPlugin.js.map +1 -1
  19. package/dist/MarkdownPlugin.js +18 -17
  20. package/dist/MarkdownPlugin.js.map +1 -1
  21. package/dist/PandasPanelPlugin.js +3 -5
  22. package/dist/PandasPanelPlugin.js.map +1 -1
  23. package/dist/PandasWidgetPlugin.js +3 -7
  24. package/dist/PandasWidgetPlugin.js.map +1 -1
  25. package/dist/TablePluginWrapper.js +8 -10
  26. package/dist/TablePluginWrapper.js.map +1 -1
  27. package/dist/WidgetLoaderPlugin.js +24 -29
  28. package/dist/WidgetLoaderPlugin.js.map +1 -1
  29. package/dist/controls/dropdown-filter/DropdownFilter.js +63 -79
  30. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  31. package/dist/controls/input-filter/InputFilter.js +32 -58
  32. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  33. package/dist/controls/markdown/MarkdownContainer.js +4 -5
  34. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  35. package/dist/controls/markdown/MarkdownEditor.js +7 -10
  36. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  37. package/dist/controls/markdown/MarkdownStartPage.js +8 -12
  38. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  39. package/dist/linker/Linker.js +100 -192
  40. package/dist/linker/Linker.js.map +1 -1
  41. package/dist/linker/LinkerLink.js +23 -31
  42. package/dist/linker/LinkerLink.js.map +1 -1
  43. package/dist/linker/LinkerOverlayContent.js +65 -66
  44. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  45. package/dist/linker/LinkerUtils.js +6 -14
  46. package/dist/linker/LinkerUtils.js.map +1 -1
  47. package/dist/panels/ChartColumnSelectorOverlay.js +4 -6
  48. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  49. package/dist/panels/ChartFilterOverlay.js +7 -9
  50. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  51. package/dist/panels/ChartPanel.js +136 -220
  52. package/dist/panels/ChartPanel.js.map +1 -1
  53. package/dist/panels/ChartPanelUtils.js +3 -4
  54. package/dist/panels/ChartPanelUtils.js.map +1 -1
  55. package/dist/panels/CommandHistoryPanel.js +33 -52
  56. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  57. package/dist/panels/ConsolePanel.js +68 -130
  58. package/dist/panels/ConsolePanel.js.map +1 -1
  59. package/dist/panels/CorePanel.js +6 -18
  60. package/dist/panels/CorePanel.js.map +1 -1
  61. package/dist/panels/DropdownFilterPanel.js +109 -165
  62. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  63. package/dist/panels/FileExplorerPanel.js +30 -55
  64. package/dist/panels/FileExplorerPanel.js.map +1 -1
  65. package/dist/panels/FilterSetManager.js +81 -141
  66. package/dist/panels/FilterSetManager.js.map +1 -1
  67. package/dist/panels/FilterSetManagerPanel.js +68 -87
  68. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  69. package/dist/panels/InputFilterPanel.js +45 -68
  70. package/dist/panels/InputFilterPanel.js.map +1 -1
  71. package/dist/panels/IrisGridPanel.d.ts +28 -6
  72. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  73. package/dist/panels/IrisGridPanel.js +224 -280
  74. package/dist/panels/IrisGridPanel.js.map +1 -1
  75. package/dist/panels/IrisGridPanelTooltip.js +1 -3
  76. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  77. package/dist/panels/LogPanel.js +6 -13
  78. package/dist/panels/LogPanel.js.map +1 -1
  79. package/dist/panels/MarkdownNotebook.js +28 -50
  80. package/dist/panels/MarkdownNotebook.js.map +1 -1
  81. package/dist/panels/MarkdownPanel.js +19 -38
  82. package/dist/panels/MarkdownPanel.js.map +1 -1
  83. package/dist/panels/NotebookPanel.js +157 -292
  84. package/dist/panels/NotebookPanel.js.map +1 -1
  85. package/dist/panels/PandasPanel.js +5 -15
  86. package/dist/panels/PandasPanel.js.map +1 -1
  87. package/dist/panels/PandasReloadButton.js +1 -3
  88. package/dist/panels/PandasReloadButton.js.map +1 -1
  89. package/dist/panels/WidgetPanel.js +42 -51
  90. package/dist/panels/WidgetPanel.js.map +1 -1
  91. package/dist/panels/WidgetPanelTooltip.js +6 -10
  92. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  93. package/dist/useConfigureRuff.js +8 -9
  94. package/dist/useConfigureRuff.js.map +1 -1
  95. package/dist/useDashboardColumnFilters.js +4 -7
  96. package/dist/useDashboardColumnFilters.js.map +1 -1
  97. package/dist/useGridLinker.js +9 -16
  98. package/dist/useGridLinker.js.map +1 -1
  99. package/dist/useIrisGridModel.d.ts +2 -2
  100. package/dist/useIrisGridModel.d.ts.map +1 -1
  101. package/dist/useIrisGridModel.js +34 -6
  102. package/dist/useIrisGridModel.js.map +1 -1
  103. package/dist/useTablePlugin.js +27 -14
  104. package/dist/useTablePlugin.js.map +1 -1
  105. package/package.json +24 -24
@@ -1,3 +1,11 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
8
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
1
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
11
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -58,10 +66,8 @@ export class IrisGridPanel extends PureComponent {
58
66
  _defineProperty(this, "getGridInputFilters", memoize((columns, inputFilters) => IrisGridUtils.getInputFiltersForColumns(columns,
59
67
  // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.
60
68
  inputFilters.filter(_ref => {
61
- var {
62
- value,
63
- excludePanelIds
64
- } = _ref;
69
+ var value = _ref.value,
70
+ excludePanelIds = _ref.excludePanelIds;
65
71
  var id = LayoutUtils.getIdFromPanel(this);
66
72
  return value != null && (excludePanelIds == null || id != null && !excludePanelIds.includes(id));
67
73
  }))));
@@ -70,9 +76,7 @@ export class IrisGridPanel extends PureComponent {
70
76
  // Always fetch columns which are the start/source of a link or columns specified by a plugin
71
77
  var columnSet = new Set(pluginFetchColumns);
72
78
  for (var i = 0; i < dashboardLinks.length; i += 1) {
73
- var {
74
- start
75
- } = dashboardLinks[i];
79
+ var start = dashboardLinks[i].start;
76
80
  if (start != null && start.panelId === id) {
77
81
  columnSet.add(start.columnName);
78
82
  }
@@ -127,22 +131,17 @@ export class IrisGridPanel extends PureComponent {
127
131
  });
128
132
  }));
129
133
  _defineProperty(this, "savePanelState", debounce(() => {
130
- var {
131
- irisGridState,
132
- gridState,
133
- pluginState
134
- } = this;
134
+ var irisGridState = this.irisGridState,
135
+ gridState = this.gridState,
136
+ pluginState = this.pluginState;
135
137
  assertNotNull(irisGridState);
136
- var {
137
- onPanelStateUpdate
138
- } = this.props;
139
- var {
140
- model,
141
- panelState: oldPanelState,
142
- isSelectingPartition,
143
- partitions,
144
- advancedSettings
145
- } = this.state;
138
+ var onPanelStateUpdate = this.props.onPanelStateUpdate;
139
+ var _this$state = this.state,
140
+ model = _this$state.model,
141
+ oldPanelState = _this$state.panelState,
142
+ isSelectingPartition = _this$state.isSelectingPartition,
143
+ partitions = _this$state.partitions,
144
+ advancedSettings = _this$state.advancedSettings;
146
145
  assertNotNull(this.irisGridUtils);
147
146
  assertNotNull(model);
148
147
  assertNotNull(gridState);
@@ -177,9 +176,7 @@ export class IrisGridPanel extends PureComponent {
177
176
  this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
178
177
  this.irisGrid = /*#__PURE__*/React.createRef();
179
178
  this.pluginRef = /*#__PURE__*/React.createRef();
180
- var {
181
- panelState: _panelState
182
- } = props;
179
+ var _panelState = props.panelState;
183
180
  this.pluginState = null;
184
181
  this.irisGridUtils = null;
185
182
  this.state = {
@@ -236,12 +233,8 @@ export class IrisGridPanel extends PureComponent {
236
233
  this.initModel();
237
234
  }
238
235
  componentDidUpdate(prevProps, prevState) {
239
- var {
240
- model
241
- } = this.state;
242
- var {
243
- makeModel
244
- } = this.props;
236
+ var model = this.state.model;
237
+ var makeModel = this.props.makeModel;
245
238
  if (model !== prevState.model) {
246
239
  if (prevState.model != null) {
247
240
  this.stopModelListening(prevState.model);
@@ -261,18 +254,14 @@ export class IrisGridPanel extends PureComponent {
261
254
  this.modelPromise.cancel();
262
255
  this.modelPromise = undefined;
263
256
  }
264
- var {
265
- model
266
- } = this.state;
257
+ var model = this.state.model;
267
258
  if (model) {
268
259
  this.stopModelListening(model);
269
260
  model.close();
270
261
  }
271
262
  }
272
263
  getTableName() {
273
- var {
274
- metadata
275
- } = this.props;
264
+ var metadata = this.props.metadata;
276
265
  return getTableNameFromMetadata(metadata);
277
266
  }
278
267
  initModel() {
@@ -282,33 +271,47 @@ export class IrisGridPanel extends PureComponent {
282
271
  error: null,
283
272
  isDisconnected: false
284
273
  });
285
- var {
286
- makeModel
287
- } = this.props;
274
+ var _this$props = this.props,
275
+ makeModel = _this$props.makeModel,
276
+ transformModel = _this$props.transformModel;
288
277
  if (this.modelPromise != null) {
289
278
  this.modelPromise.cancel();
290
279
  }
291
- this.modelPromise = PromiseUtils.makeCancelable(makeModel(), resolved => resolved.close());
280
+ var modelPromise = transformModel != null ? Promise.resolve(makeModel()).then(/*#__PURE__*/function () {
281
+ var _ref2 = _asyncToGenerator(function* (model) {
282
+ try {
283
+ var transformedModel = yield transformModel(model);
284
+ return transformedModel;
285
+ } catch (e) {
286
+ // The host owns the base model's lifecycle; if the transform
287
+ // rejects it never returns a model for us to close, so close
288
+ // the base model here to avoid leaking it.
289
+ model.close();
290
+ throw e;
291
+ }
292
+ });
293
+ return function (_x) {
294
+ return _ref2.apply(this, arguments);
295
+ };
296
+ }()) : Promise.resolve(makeModel());
297
+ this.modelPromise = PromiseUtils.makeCancelable(modelPromise, resolved => resolved.close());
292
298
  this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);
293
299
  }
294
300
  handleLoadSuccess(modelParam) {
295
301
  var model = modelParam;
296
- var {
297
- panelState,
298
- irisGridStateOverrides
299
- } = this.state;
302
+ var _this$state2 = this.state,
303
+ panelState = _this$state2.panelState,
304
+ irisGridStateOverrides = _this$state2.irisGridStateOverrides;
300
305
  var modelQueue = [];
301
306
  this.irisGridUtils = new IrisGridUtils(model.dh);
302
307
  if (panelState != null) {
303
- var {
304
- irisGridState
305
- } = panelState;
306
- var {
307
- aggregationSettings,
308
- customColumns,
309
- selectDistinctColumns = [],
310
- rollupConfig
311
- } = _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides);
308
+ var irisGridState = panelState.irisGridState;
309
+ var _irisGridState$irisGr = _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides),
310
+ aggregationSettings = _irisGridState$irisGr.aggregationSettings,
311
+ customColumns = _irisGridState$irisGr.customColumns,
312
+ _irisGridState$irisGr2 = _irisGridState$irisGr.selectDistinctColumns,
313
+ selectDistinctColumns = _irisGridState$irisGr2 === void 0 ? [] : _irisGridState$irisGr2,
314
+ rollupConfig = _irisGridState$irisGr.rollupConfig;
312
315
  if (customColumns.length > 0) {
313
316
  modelQueue.push(m => {
314
317
  // eslint-disable-next-line no-param-reassign
@@ -355,10 +358,8 @@ export class IrisGridPanel extends PureComponent {
355
358
  }
356
359
  handleAdvancedSettingsChange(key, value) {
357
360
  log.debug('handleAdvancedSettingsChange', key, value);
358
- this.setState(_ref2 => {
359
- var {
360
- advancedSettings
361
- } = _ref2;
361
+ this.setState(_ref3 => {
362
+ var advancedSettings = _ref3.advancedSettings;
362
363
  return advancedSettings.get(key) === value ? null : {
363
364
  advancedSettings: new Map(advancedSettings).set(key, value)
364
365
  };
@@ -366,14 +367,10 @@ export class IrisGridPanel extends PureComponent {
366
367
  }
367
368
  handlePluginFilter(filters) {
368
369
  var _this$irisGridUtils$g, _this$irisGridUtils;
369
- var {
370
- model
371
- } = this.state;
370
+ var model = this.state.model;
372
371
  assertNotNull(model);
373
- var {
374
- columns,
375
- formatter
376
- } = model;
372
+ var columns = model.columns,
373
+ formatter = model.formatter;
377
374
  var pluginFilters = (_this$irisGridUtils$g = (_this$irisGridUtils = this.irisGridUtils) === null || _this$irisGridUtils === void 0 ? void 0 : _this$irisGridUtils.getFiltersFromInputFilters(columns, filters, formatter.timeZone)) !== null && _this$irisGridUtils$g !== void 0 ? _this$irisGridUtils$g : [];
378
375
  this.setState({
379
376
  pluginFilters
@@ -389,9 +386,7 @@ export class IrisGridPanel extends PureComponent {
389
386
  return (_this$pluginRef$curre = (_this$pluginRef$curre2 = this.pluginRef.current) === null || _this$pluginRef$curre2 === void 0 || (_this$pluginRef$curre3 = _this$pluginRef$curre2.getMenu) === null || _this$pluginRef$curre3 === void 0 ? void 0 : _this$pluginRef$curre3.call(_this$pluginRef$curre2, data)) !== null && _this$pluginRef$curre !== void 0 ? _this$pluginRef$curre : [];
390
387
  }
391
388
  isColumnSelectionValid(tableColumn) {
392
- var {
393
- columnSelectionValidator
394
- } = this.props;
389
+ var columnSelectionValidator = this.props.columnSelectionValidator;
395
390
  if (columnSelectionValidator && tableColumn) {
396
391
  return columnSelectionValidator(this, tableColumn, {
397
392
  type: 'tableLink'
@@ -409,18 +404,15 @@ export class IrisGridPanel extends PureComponent {
409
404
  isLoading: false
410
405
  });
411
406
  this.savePanelState();
412
- var {
413
- glEventHub,
414
- onStateChange
415
- } = this.props;
407
+ var _this$props2 = this.props,
408
+ glEventHub = _this$props2.glEventHub,
409
+ onStateChange = _this$props2.onStateChange;
416
410
  glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);
417
411
  onStateChange === null || onStateChange === void 0 || onStateChange(irisGridState, gridState);
418
412
  }
419
413
  handlePluginStateChange(pluginState) {
420
- var {
421
- irisGridState,
422
- gridState
423
- } = this;
414
+ var irisGridState = this.irisGridState,
415
+ gridState = this.gridState;
424
416
  this.pluginState = pluginState;
425
417
  // Do not save if there is null state
426
418
  // The save will happen when the grid loads
@@ -429,11 +421,10 @@ export class IrisGridPanel extends PureComponent {
429
421
  }
430
422
  }
431
423
  handleColumnsChanged(event) {
432
- var {
433
- isModelReady,
434
- model,
435
- modelQueue
436
- } = this.state;
424
+ var _this$state3 = this.state,
425
+ isModelReady = _this$state3.isModelReady,
426
+ model = _this$state3.model,
427
+ modelQueue = _this$state3.modelQueue;
437
428
  if (isModelReady) {
438
429
  this.sendColumnsChange(event.detail);
439
430
  } else {
@@ -443,12 +434,9 @@ export class IrisGridPanel extends PureComponent {
443
434
  }
444
435
  handleTableChanged(event) {
445
436
  log.debug('handleTableChanged', event);
446
- var {
447
- glEventHub
448
- } = this.props;
449
- var {
450
- detail: table
451
- } = event;
437
+ var glEventHub = this.props.glEventHub;
438
+ var _ref4 = event,
439
+ table = _ref4.detail;
452
440
  var panelId = LayoutUtils.getIdFromPanel(this);
453
441
  assertNotNull(panelId);
454
442
  emitFilterTableChanged(glEventHub, panelId, table);
@@ -465,15 +453,12 @@ export class IrisGridPanel extends PureComponent {
465
453
  // Panel state is stored with the created chart, so flush it first
466
454
  this.savePanelState.flush();
467
455
  this.setState(() => null, () => {
468
- var {
469
- glEventHub,
470
- inputFilters,
471
- metadata
472
- } = this.props;
456
+ var _this$props3 = this.props,
457
+ glEventHub = _this$props3.glEventHub,
458
+ inputFilters = _this$props3.inputFilters,
459
+ metadata = _this$props3.metadata;
473
460
  var table = this.getTableName();
474
- var {
475
- panelState
476
- } = this.state;
461
+ var panelState = this.state.panelState;
477
462
  var sourcePanelId = LayoutUtils.getIdFromPanel(this);
478
463
  var tableSettings;
479
464
  if (panelState) {
@@ -491,9 +476,7 @@ export class IrisGridPanel extends PureComponent {
491
476
  });
492
477
  }
493
478
  handleColumnSelected(column) {
494
- var {
495
- glEventHub
496
- } = this.props;
479
+ var glEventHub = this.props.glEventHub;
497
480
  var panelId = LayoutUtils.getIdFromPanel(this);
498
481
  assertNotNull(panelId);
499
482
  emitLinkPointSelected(glEventHub, panelId, column, {
@@ -501,9 +484,7 @@ export class IrisGridPanel extends PureComponent {
501
484
  });
502
485
  }
503
486
  handleDataSelected(row, dataMap) {
504
- var {
505
- glEventHub
506
- } = this.props;
487
+ var glEventHub = this.props.glEventHub;
507
488
  var panelId = LayoutUtils.getIdFromPanel(this);
508
489
  assertNotNull(panelId);
509
490
  emitLinkSourceDataSelected(glEventHub, panelId, dataMap);
@@ -543,10 +524,10 @@ export class IrisGridPanel extends PureComponent {
543
524
  this.handleError(error);
544
525
  }
545
526
  modelInitialized(model) {
546
- var {
547
- glEventHub,
548
- loadPlugin
549
- } = this.props;
527
+ var _this$props4 = this.props,
528
+ glEventHub = _this$props4.glEventHub,
529
+ loadPlugin = _this$props4.loadPlugin,
530
+ onModelChanged = _this$props4.onModelChanged;
550
531
  this.modelPromise = undefined;
551
532
 
552
533
  // Custom columns at this point already initialized, can load state
@@ -554,13 +535,10 @@ export class IrisGridPanel extends PureComponent {
554
535
  this.setState({
555
536
  isModelReady: true
556
537
  });
538
+ onModelChanged === null || onModelChanged === void 0 || onModelChanged(model);
557
539
  if (isIrisGridTableModelTemplate(model)) {
558
- var {
559
- table
560
- } = model;
561
- var {
562
- pluginName
563
- } = table;
540
+ var table = model.table;
541
+ var pluginName = table.pluginName;
564
542
  if (pluginName !== '') {
565
543
  if (loadPlugin != null && pluginName != null) {
566
544
  var Plugin = loadPlugin(pluginName);
@@ -577,18 +555,14 @@ export class IrisGridPanel extends PureComponent {
577
555
  }
578
556
  handleClearAllFilters() {
579
557
  var irisGrid = this.irisGrid.current;
580
- var {
581
- isDisconnected
582
- } = this.state;
558
+ var isDisconnected = this.state.isDisconnected;
583
559
  if (irisGrid != null && !isDisconnected) {
584
560
  irisGrid.clearAllFilters();
585
561
  }
586
562
  }
587
563
  sendColumnsChange(columns) {
588
564
  log.debug2('sendColumnsChange', columns);
589
- var {
590
- glEventHub
591
- } = this.props;
565
+ var glEventHub = this.props.glEventHub;
592
566
  var panelId = LayoutUtils.getIdFromPanel(this);
593
567
  assertNotNull(panelId);
594
568
  emitFilterColumnsChanged(glEventHub, panelId, columns);
@@ -607,32 +581,25 @@ export class IrisGridPanel extends PureComponent {
607
581
  }
608
582
  getCoordinateForColumn(columnName) {
609
583
  var _gridWrapper$getBound, _allColumnXs$get, _allColumnWidths$get;
610
- var {
611
- model
612
- } = this.state;
584
+ var model = this.state.model;
613
585
  if (!model) {
614
586
  return null;
615
587
  }
616
588
  var irisGrid = this.irisGrid.current;
617
- var {
618
- gridWrapper
619
- } = irisGrid || {};
589
+ var _ref5 = irisGrid || {},
590
+ gridWrapper = _ref5.gridWrapper;
620
591
  var rect = (_gridWrapper$getBound = gridWrapper === null || gridWrapper === void 0 ? void 0 : gridWrapper.getBoundingClientRect()) !== null && _gridWrapper$getBound !== void 0 ? _gridWrapper$getBound : null;
621
592
  if (rect == null || rect.width <= 0 || rect.height <= 0) {
622
593
  return null;
623
594
  }
624
595
  assertNotNull(irisGrid);
625
- var {
626
- metrics
627
- } = irisGrid.state;
596
+ var metrics = irisGrid.state.metrics;
628
597
  assertNotNull(metrics);
629
- var {
630
- columnHeaderHeight,
631
- allColumnXs,
632
- allColumnWidths,
633
- right,
634
- columnHeaderMaxDepth
635
- } = metrics;
598
+ var columnHeaderHeight = metrics.columnHeaderHeight,
599
+ allColumnXs = metrics.allColumnXs,
600
+ allColumnWidths = metrics.allColumnWidths,
601
+ right = metrics.right,
602
+ columnHeaderMaxDepth = metrics.columnHeaderMaxDepth;
636
603
  var columnIndex = model.getColumnIndexByName(columnName);
637
604
  assertNotNull(columnIndex);
638
605
  var visibleIndex = irisGrid.getVisibleColumn(columnIndex);
@@ -654,32 +621,29 @@ export class IrisGridPanel extends PureComponent {
654
621
  irisGrid.setAdvancedFilterMap(filterMap);
655
622
  }
656
623
  }
657
- setFilters(_ref3) {
658
- var {
659
- quickFilters,
660
- advancedFilters
661
- } = _ref3;
624
+ setFilters(_ref6) {
625
+ var quickFilters = _ref6.quickFilters,
626
+ advancedFilters = _ref6.advancedFilters;
662
627
  log.debug('setFilters', quickFilters, advancedFilters);
663
- var {
664
- model,
665
- isDisconnected
666
- } = this.state;
628
+ var _this$state4 = this.state,
629
+ model = _this$state4.model,
630
+ isDisconnected = _this$state4.isDisconnected;
667
631
  var irisGrid = this.irisGrid.current;
668
632
  if (irisGrid == null || isDisconnected) {
669
633
  log.debug('Ignore setFilters, model disconnected');
670
634
  return;
671
635
  }
672
636
  assertNotNull(model);
673
- var {
674
- columns,
675
- formatter
676
- } = model;
677
- var indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, quickFilters).filter(_ref4 => {
678
- var [columnIndex] = _ref4;
637
+ var columns = model.columns,
638
+ formatter = model.formatter;
639
+ var indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, quickFilters).filter(_ref7 => {
640
+ var _ref8 = _slicedToArray(_ref7, 1),
641
+ columnIndex = _ref8[0];
679
642
  return model.isFilterable(columnIndex);
680
643
  });
681
- var indexedAdvancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, advancedFilters).filter(_ref5 => {
682
- var [columnIndex] = _ref5;
644
+ var indexedAdvancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, advancedFilters).filter(_ref9 => {
645
+ var _ref0 = _slicedToArray(_ref9, 1),
646
+ columnIndex = _ref0[0];
683
647
  return model.isFilterable(columnIndex);
684
648
  });
685
649
  assertNotNull(this.irisGridUtils);
@@ -691,10 +655,8 @@ export class IrisGridPanel extends PureComponent {
691
655
  }
692
656
  setStateOverrides(overrides) {
693
657
  log.debug('setStateOverrides', overrides);
694
- var {
695
- irisGridState: irisGridStateOverrides,
696
- gridState: gridStateOverrides
697
- } = overrides;
658
+ var irisGridStateOverrides = overrides.irisGridState,
659
+ gridStateOverrides = overrides.gridState;
698
660
  this.setState({
699
661
  irisGridStateOverrides,
700
662
  gridStateOverrides
@@ -709,68 +671,60 @@ export class IrisGridPanel extends PureComponent {
709
671
  // We need to define this so LinkerUtils#isLinkablePanel passes the check
710
672
  }
711
673
  loadPanelState(model) {
712
- var {
713
- panelState,
714
- irisGridStateOverrides: originalIrisGridStateOverrides,
715
- gridStateOverrides
716
- } = this.state;
674
+ var _this$state5 = this.state,
675
+ panelState = _this$state5.panelState,
676
+ originalIrisGridStateOverrides = _this$state5.irisGridStateOverrides,
677
+ gridStateOverrides = _this$state5.gridStateOverrides;
717
678
  if (panelState == null) {
718
679
  return;
719
680
  }
720
681
  try {
721
- var {
722
- gridState,
723
- irisGridState,
724
- irisGridPanelState
725
- } = panelState;
682
+ var gridState = panelState.gridState,
683
+ irisGridState = panelState.irisGridState,
684
+ irisGridPanelState = panelState.irisGridPanelState;
726
685
  var irisGridStateOverrides = _objectSpread({}, originalIrisGridStateOverrides);
727
- var {
728
- quickFilters: savedQuickFilters,
729
- advancedFilters: savedAdvancedFilters
730
- } = irisGridStateOverrides;
686
+ var savedQuickFilters = irisGridStateOverrides.quickFilters,
687
+ savedAdvancedFilters = irisGridStateOverrides.advancedFilters;
731
688
  if (savedQuickFilters) {
732
689
  irisGridStateOverrides.quickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, savedQuickFilters);
733
690
  }
734
691
  if (savedAdvancedFilters) {
735
692
  irisGridStateOverrides.advancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, savedAdvancedFilters);
736
693
  }
737
- var {
738
- isSelectingPartition,
739
- partitions,
740
- advancedSettings
741
- } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);
694
+ var _IrisGridUtils$hydrat = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState),
695
+ isSelectingPartition = _IrisGridUtils$hydrat.isSelectingPartition,
696
+ partitions = _IrisGridUtils$hydrat.partitions,
697
+ advancedSettings = _IrisGridUtils$hydrat.advancedSettings;
742
698
  assertNotNull(this.irisGridUtils);
743
- var {
744
- advancedFilters,
745
- customColumns,
746
- customColumnFormatMap,
747
- columnAlignmentMap,
748
- isFilterBarShown,
749
- quickFilters,
750
- reverse,
751
- rollupConfig,
752
- aggregationSettings,
753
- sorts,
754
- userColumnWidths,
755
- userColumnWidthsByName,
756
- userRowHeights,
757
- showSearchBar,
758
- searchValue,
759
- selectDistinctColumns,
760
- selectedSearchColumns,
761
- invertSearchColumns,
762
- pendingDataMap,
763
- frozenColumns,
764
- conditionalFormats,
765
- columnHeaderGroups,
766
- partitionConfig
767
- } = this.irisGridUtils.hydrateIrisGridState(model, _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides));
768
- var {
769
- isStuckToBottom,
770
- isStuckToRight,
771
- movedColumns,
772
- movedRows
773
- } = IrisGridUtils.hydrateGridState(model, _objectSpread(_objectSpread({}, gridState), gridStateOverrides), irisGridState.customColumns);
699
+ var _this$irisGridUtils$h = this.irisGridUtils.hydrateIrisGridState(model, _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides)),
700
+ advancedFilters = _this$irisGridUtils$h.advancedFilters,
701
+ customColumns = _this$irisGridUtils$h.customColumns,
702
+ customColumnFormatMap = _this$irisGridUtils$h.customColumnFormatMap,
703
+ columnAlignmentMap = _this$irisGridUtils$h.columnAlignmentMap,
704
+ isFilterBarShown = _this$irisGridUtils$h.isFilterBarShown,
705
+ quickFilters = _this$irisGridUtils$h.quickFilters,
706
+ reverse = _this$irisGridUtils$h.reverse,
707
+ rollupConfig = _this$irisGridUtils$h.rollupConfig,
708
+ aggregationSettings = _this$irisGridUtils$h.aggregationSettings,
709
+ sorts = _this$irisGridUtils$h.sorts,
710
+ userColumnWidths = _this$irisGridUtils$h.userColumnWidths,
711
+ userColumnWidthsByName = _this$irisGridUtils$h.userColumnWidthsByName,
712
+ userRowHeights = _this$irisGridUtils$h.userRowHeights,
713
+ showSearchBar = _this$irisGridUtils$h.showSearchBar,
714
+ searchValue = _this$irisGridUtils$h.searchValue,
715
+ selectDistinctColumns = _this$irisGridUtils$h.selectDistinctColumns,
716
+ selectedSearchColumns = _this$irisGridUtils$h.selectedSearchColumns,
717
+ invertSearchColumns = _this$irisGridUtils$h.invertSearchColumns,
718
+ pendingDataMap = _this$irisGridUtils$h.pendingDataMap,
719
+ frozenColumns = _this$irisGridUtils$h.frozenColumns,
720
+ conditionalFormats = _this$irisGridUtils$h.conditionalFormats,
721
+ columnHeaderGroups = _this$irisGridUtils$h.columnHeaderGroups,
722
+ partitionConfig = _this$irisGridUtils$h.partitionConfig;
723
+ var _IrisGridUtils$hydrat2 = IrisGridUtils.hydrateGridState(model, _objectSpread(_objectSpread({}, gridState), gridStateOverrides), irisGridState.customColumns),
724
+ isStuckToBottom = _IrisGridUtils$hydrat2.isStuckToBottom,
725
+ isStuckToRight = _IrisGridUtils$hydrat2.isStuckToRight,
726
+ movedColumns = _IrisGridUtils$hydrat2.movedColumns,
727
+ movedRows = _IrisGridUtils$hydrat2.movedRows;
774
728
  this.setState({
775
729
  advancedFilters,
776
730
  advancedSettings,
@@ -817,75 +771,67 @@ export class IrisGridPanel extends PureComponent {
817
771
  }
818
772
  render() {
819
773
  var _model$description, _panelState$pluginSta;
820
- var {
821
- children,
822
- glContainer,
823
- glEventHub,
824
- columnSelectionValidator,
825
- getDownloadWorker,
826
- inputFilters,
827
- links,
828
- metadata,
829
- mouseHandlers,
830
- panelState,
831
- user,
832
- renderer,
833
- settings,
834
- getMetricCalculator,
835
- theme
836
- } = this.props;
837
- var {
838
- advancedFilters,
839
- aggregationSettings,
840
- advancedSettings,
841
- conditionalFormats,
842
- customColumns,
843
- customColumnFormatMap,
844
- columnAlignmentMap,
845
- error,
846
- isDisconnected,
847
- isFilterBarShown,
848
- isSelectingPartition,
849
- isStuckToBottom,
850
- isStuckToRight,
851
- isLoaded,
852
- isLoading,
853
- isModelReady,
854
- model,
855
- movedColumns,
856
- movedRows,
857
- partitions,
858
- partitionConfig,
859
- quickFilters,
860
- reverse,
861
- rollupConfig,
862
- sorts,
863
- userColumnWidths,
864
- userColumnWidthsByName,
865
- userRowHeights,
866
- showSearchBar,
867
- searchValue,
868
- selectDistinctColumns,
869
- selectedSearchColumns,
870
- invertSearchColumns,
871
- Plugin,
872
- pluginFilters,
873
- pluginFetchColumns,
874
- pendingDataMap,
875
- frozenColumns,
876
- columnHeaderGroups
877
- } = this.state;
774
+ var _this$props5 = this.props,
775
+ children = _this$props5.children,
776
+ glContainer = _this$props5.glContainer,
777
+ glEventHub = _this$props5.glEventHub,
778
+ columnSelectionValidator = _this$props5.columnSelectionValidator,
779
+ getDownloadWorker = _this$props5.getDownloadWorker,
780
+ inputFilters = _this$props5.inputFilters,
781
+ links = _this$props5.links,
782
+ metadata = _this$props5.metadata,
783
+ panelState = _this$props5.panelState,
784
+ user = _this$props5.user,
785
+ settings = _this$props5.settings,
786
+ irisGridProps = _this$props5.irisGridProps,
787
+ transformTableOptions = _this$props5.transformTableOptions;
788
+ var _this$state6 = this.state,
789
+ advancedFilters = _this$state6.advancedFilters,
790
+ aggregationSettings = _this$state6.aggregationSettings,
791
+ advancedSettings = _this$state6.advancedSettings,
792
+ conditionalFormats = _this$state6.conditionalFormats,
793
+ customColumns = _this$state6.customColumns,
794
+ customColumnFormatMap = _this$state6.customColumnFormatMap,
795
+ columnAlignmentMap = _this$state6.columnAlignmentMap,
796
+ error = _this$state6.error,
797
+ isDisconnected = _this$state6.isDisconnected,
798
+ isFilterBarShown = _this$state6.isFilterBarShown,
799
+ isSelectingPartition = _this$state6.isSelectingPartition,
800
+ isStuckToBottom = _this$state6.isStuckToBottom,
801
+ isStuckToRight = _this$state6.isStuckToRight,
802
+ isLoaded = _this$state6.isLoaded,
803
+ isLoading = _this$state6.isLoading,
804
+ isModelReady = _this$state6.isModelReady,
805
+ model = _this$state6.model,
806
+ movedColumns = _this$state6.movedColumns,
807
+ movedRows = _this$state6.movedRows,
808
+ partitions = _this$state6.partitions,
809
+ partitionConfig = _this$state6.partitionConfig,
810
+ quickFilters = _this$state6.quickFilters,
811
+ reverse = _this$state6.reverse,
812
+ rollupConfig = _this$state6.rollupConfig,
813
+ sorts = _this$state6.sorts,
814
+ userColumnWidths = _this$state6.userColumnWidths,
815
+ userColumnWidthsByName = _this$state6.userColumnWidthsByName,
816
+ userRowHeights = _this$state6.userRowHeights,
817
+ showSearchBar = _this$state6.showSearchBar,
818
+ searchValue = _this$state6.searchValue,
819
+ selectDistinctColumns = _this$state6.selectDistinctColumns,
820
+ selectedSearchColumns = _this$state6.selectedSearchColumns,
821
+ invertSearchColumns = _this$state6.invertSearchColumns,
822
+ Plugin = _this$state6.Plugin,
823
+ pluginFilters = _this$state6.pluginFilters,
824
+ pluginFetchColumns = _this$state6.pluginFetchColumns,
825
+ pendingDataMap = _this$state6.pendingDataMap,
826
+ frozenColumns = _this$state6.frozenColumns,
827
+ columnHeaderGroups = _this$state6.columnHeaderGroups;
878
828
  var errorMessage = error != null ? "Unable to open table. ".concat(error) : undefined;
879
829
  var description = (_model$description = model === null || model === void 0 ? void 0 : model.description) !== null && _model$description !== void 0 ? _model$description : undefined;
880
830
  var pluginState = (_panelState$pluginSta = panelState === null || panelState === void 0 ? void 0 : panelState.pluginState) !== null && _panelState$pluginSta !== void 0 ? _panelState$pluginSta : null;
881
831
  var childrenContent = children !== null && children !== void 0 ? children : this.getPluginContent(Plugin, model, pluginState);
882
- var {
883
- permissions
884
- } = user;
885
- var {
886
- canCopy,
887
- canDownloadCsv
888
- } = permissions;
832
+ var permissions = user.permissions;
833
+ var canCopy = permissions.canCopy,
834
+ canDownloadCsv = permissions.canDownloadCsv;
889
835
  var widgetPanelDescriptor = this.getWidgetPanelDescriptor(metadata, description);
890
836
  return /*#__PURE__*/_jsx(WidgetPanel, {
891
837
  errorMessage: errorMessage,
@@ -905,7 +851,7 @@ export class IrisGridPanel extends PureComponent {
905
851
  descriptor: widgetPanelDescriptor,
906
852
  model: model
907
853
  }),
908
- children: isModelReady && model && /*#__PURE__*/_jsx(IrisGrid, {
854
+ children: isModelReady && model && /*#__PURE__*/_jsx(IrisGrid, _objectSpread(_objectSpread({
909
855
  advancedFilters: advancedFilters,
910
856
  aggregationSettings: aggregationSettings,
911
857
  advancedSettings: advancedSettings,
@@ -925,13 +871,11 @@ export class IrisGridPanel extends PureComponent {
925
871
  isSelectingPartition: isSelectingPartition,
926
872
  isStuckToBottom: isStuckToBottom,
927
873
  isStuckToRight: isStuckToRight,
928
- mouseHandlers: mouseHandlers,
929
874
  movedColumns: movedColumns,
930
875
  movedRows: movedRows,
931
876
  partitions: partitions,
932
877
  partitionConfig: partitionConfig,
933
878
  quickFilters: quickFilters,
934
- renderer: renderer,
935
879
  reverse: reverse,
936
880
  rollupConfig: rollupConfig,
937
881
  settings: settings,
@@ -959,11 +903,12 @@ export class IrisGridPanel extends PureComponent {
959
903
  ref: this.irisGrid,
960
904
  getDownloadWorker: getDownloadWorker,
961
905
  frozenColumns: frozenColumns,
962
- theme: theme,
963
906
  columnHeaderGroups: columnHeaderGroups,
964
- getMetricCalculator: getMetricCalculator,
907
+ transformTableOptions: transformTableOptions
908
+ // eslint-disable-next-line react/jsx-props-no-spreading
909
+ }, irisGridProps), {}, {
965
910
  children: childrenContent
966
- })
911
+ }))
967
912
  });
968
913
  }
969
914
  }
@@ -973,11 +918,10 @@ _defineProperty(IrisGridPanel, "defaultProps", {
973
918
  });
974
919
  _defineProperty(IrisGridPanel, "displayName", 'IrisGridPanel');
975
920
  _defineProperty(IrisGridPanel, "COMPONENT", 'IrisGridPanel');
976
- var mapStateToProps = (state, _ref6) => {
977
- var {
978
- localDashboardId = DEFAULT_DASHBOARD_ID,
979
- glContainer
980
- } = _ref6;
921
+ var mapStateToProps = (state, _ref1) => {
922
+ var _ref1$localDashboardI = _ref1.localDashboardId,
923
+ localDashboardId = _ref1$localDashboardI === void 0 ? DEFAULT_DASHBOARD_ID : _ref1$localDashboardI,
924
+ glContainer = _ref1.glContainer;
981
925
  return {
982
926
  inputFilters: getInputFiltersForDashboard(state, localDashboardId),
983
927
  links: getLinksForDashboard(state, localDashboardId),