@deephaven/dashboard-core-plugins 0.15.5-vite.12 → 0.15.6-vite.19

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 (203) hide show
  1. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  2. package/dist/ChartBuilderPlugin.js +2 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/ChartPlugin.d.ts +2 -1
  5. package/dist/ChartPlugin.d.ts.map +1 -1
  6. package/dist/ChartPlugin.js.map +1 -1
  7. package/dist/FilterPlugin.js +1 -1
  8. package/dist/FilterPlugin.js.map +1 -1
  9. package/dist/GridPlugin.d.ts +2 -1
  10. package/dist/GridPlugin.d.ts.map +1 -1
  11. package/dist/GridPlugin.js.map +1 -1
  12. package/dist/PandasPlugin.d.ts +2 -1
  13. package/dist/PandasPlugin.d.ts.map +1 -1
  14. package/dist/PandasPlugin.js.map +1 -1
  15. package/dist/controls/ControlType.d.ts +1 -1
  16. package/dist/controls/ControlType.d.ts.map +1 -1
  17. package/dist/controls/ControlType.js.map +1 -1
  18. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  19. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  20. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  21. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  22. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  23. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  24. package/dist/controls/input-filter/InputFilter.js +32 -39
  25. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  26. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  27. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  28. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  29. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  30. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  31. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  32. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  33. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  34. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  35. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  36. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  37. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  38. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  39. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  40. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  41. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  42. package/dist/events/ChartEvent.d.ts +1 -1
  43. package/dist/events/ChartEvent.d.ts.map +1 -1
  44. package/dist/events/ChartEvent.js.map +1 -1
  45. package/dist/events/ConsoleEvent.d.ts +1 -1
  46. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  47. package/dist/events/ConsoleEvent.js.map +1 -1
  48. package/dist/events/InputFilterEvent.d.ts +1 -1
  49. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  50. package/dist/events/InputFilterEvent.js.map +1 -1
  51. package/dist/events/IrisGridEvent.d.ts +1 -1
  52. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  53. package/dist/events/IrisGridEvent.js.map +1 -1
  54. package/dist/events/NotebookEvent.d.ts +1 -1
  55. package/dist/events/NotebookEvent.d.ts.map +1 -1
  56. package/dist/events/NotebookEvent.js.map +1 -1
  57. package/dist/events/PQEvent.d.ts +1 -1
  58. package/dist/events/PQEvent.d.ts.map +1 -1
  59. package/dist/events/PQEvent.js.map +1 -1
  60. package/dist/events/PandasEvent.d.ts +1 -1
  61. package/dist/events/PandasEvent.d.ts.map +1 -1
  62. package/dist/events/PandasEvent.js.map +1 -1
  63. package/dist/events/TabEvent.d.ts +1 -1
  64. package/dist/events/TabEvent.d.ts.map +1 -1
  65. package/dist/events/TabEvent.js.map +1 -1
  66. package/dist/events/index.d.ts +8 -8
  67. package/dist/events/index.d.ts.map +1 -1
  68. package/dist/events/index.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  74. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  75. package/dist/linker/ColumnSelectionValidator.js +2 -0
  76. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  77. package/dist/linker/Linker.d.ts +11 -11
  78. package/dist/linker/Linker.js +1 -1
  79. package/dist/linker/Linker.js.map +1 -1
  80. package/dist/linker/LinkerUtils.d.ts +3 -3
  81. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  82. package/dist/linker/LinkerUtils.js.map +1 -1
  83. package/dist/linker/ToolType.d.ts +1 -1
  84. package/dist/linker/ToolType.d.ts.map +1 -1
  85. package/dist/linker/ToolType.js.map +1 -1
  86. package/dist/linker/index.d.ts +2 -0
  87. package/dist/linker/index.d.ts.map +1 -0
  88. package/dist/linker/index.js +2 -0
  89. package/dist/linker/index.js.map +1 -0
  90. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  91. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  92. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  93. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  94. package/dist/panels/ChartFilterOverlay.d.ts +29 -21
  95. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  96. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  97. package/dist/panels/ChartPanel.d.ts +187 -152
  98. package/dist/panels/ChartPanel.d.ts.map +1 -1
  99. package/dist/panels/ChartPanel.js +87 -84
  100. package/dist/panels/ChartPanel.js.map +1 -1
  101. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  102. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  103. package/dist/panels/CommandHistoryPanel.js +13 -35
  104. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  105. package/dist/panels/ConsolePanel.d.ts +63 -73
  106. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  107. package/dist/panels/ConsolePanel.js +67 -83
  108. package/dist/panels/ConsolePanel.js.map +1 -1
  109. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  110. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  111. package/dist/panels/DropdownFilterPanel.js +60 -62
  112. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  113. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  114. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  115. package/dist/panels/FileExplorerPanel.js.map +1 -1
  116. package/dist/panels/FilterSetManager.d.ts +3 -1
  117. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  118. package/dist/panels/FilterSetManager.js.map +1 -1
  119. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  120. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  121. package/dist/panels/FilterSetManagerPanel.js +58 -36
  122. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  123. package/dist/panels/InputFilterPanel.d.ts +50 -51
  124. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  125. package/dist/panels/InputFilterPanel.js +35 -34
  126. package/dist/panels/InputFilterPanel.js.map +1 -1
  127. package/dist/panels/IrisGridPanel.d.ts +191 -178
  128. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  129. package/dist/panels/IrisGridPanel.js +150 -179
  130. package/dist/panels/IrisGridPanel.js.map +1 -1
  131. package/dist/panels/LogPanel.d.ts +29 -45
  132. package/dist/panels/LogPanel.d.ts.map +1 -1
  133. package/dist/panels/LogPanel.js +9 -11
  134. package/dist/panels/LogPanel.js.map +1 -1
  135. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  136. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  137. package/dist/panels/MarkdownNotebook.js +21 -18
  138. package/dist/panels/MarkdownNotebook.js.map +1 -1
  139. package/dist/panels/MarkdownPanel.d.ts +41 -47
  140. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  141. package/dist/panels/MarkdownPanel.js +17 -19
  142. package/dist/panels/MarkdownPanel.js.map +1 -1
  143. package/dist/panels/NotebookPanel.d.ts +135 -115
  144. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  145. package/dist/panels/NotebookPanel.js +93 -68
  146. package/dist/panels/NotebookPanel.js.map +1 -1
  147. package/dist/panels/PandasPanel.d.ts +20 -17
  148. package/dist/panels/PandasPanel.d.ts.map +1 -1
  149. package/dist/panels/PandasPanel.js +17 -13
  150. package/dist/panels/PandasPanel.js.map +1 -1
  151. package/dist/panels/Panel.d.ts +87 -123
  152. package/dist/panels/Panel.d.ts.map +1 -1
  153. package/dist/panels/Panel.js +29 -54
  154. package/dist/panels/Panel.js.map +1 -1
  155. package/dist/panels/PanelContextMenu.d.ts +16 -31
  156. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  157. package/dist/panels/PanelContextMenu.js +12 -15
  158. package/dist/panels/PanelContextMenu.js.map +1 -1
  159. package/dist/panels/RenameDialog.d.ts +26 -28
  160. package/dist/panels/RenameDialog.d.ts.map +1 -1
  161. package/dist/panels/RenameDialog.js +15 -19
  162. package/dist/panels/RenameDialog.js.map +1 -1
  163. package/dist/panels/WidgetPanel.d.ts +72 -106
  164. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  165. package/dist/panels/WidgetPanel.js +17 -47
  166. package/dist/panels/WidgetPanel.js.map +1 -1
  167. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  168. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  169. package/dist/panels/WidgetPanelTooltip.js +1 -1
  170. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  171. package/dist/panels/index.d.ts +3 -0
  172. package/dist/panels/index.d.ts.map +1 -1
  173. package/dist/panels/index.js +3 -0
  174. package/dist/panels/index.js.map +1 -1
  175. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  176. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  177. package/dist/prop-types/CommonPropTypes.js +1 -1
  178. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  179. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  180. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  181. package/dist/prop-types/UIPropTypes.js +0 -7
  182. package/dist/prop-types/UIPropTypes.js.map +1 -1
  183. package/dist/prop-types/index.d.ts +2 -2
  184. package/dist/prop-types/index.d.ts.map +1 -1
  185. package/dist/prop-types/index.js.map +1 -1
  186. package/dist/redux/actionTypes.d.ts +1 -1
  187. package/dist/redux/actionTypes.d.ts.map +1 -1
  188. package/dist/redux/actionTypes.js.map +1 -1
  189. package/dist/redux/actions.d.ts +63 -8
  190. package/dist/redux/actions.d.ts.map +1 -1
  191. package/dist/redux/actions.js +17 -17
  192. package/dist/redux/actions.js.map +1 -1
  193. package/dist/redux/reducers/index.d.ts +3 -4
  194. package/dist/redux/reducers/index.d.ts.map +1 -1
  195. package/dist/redux/reducers/index.js.map +1 -1
  196. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  197. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  198. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  199. package/dist/redux/selectors.d.ts +63 -9
  200. package/dist/redux/selectors.d.ts.map +1 -1
  201. package/dist/redux/selectors.js +27 -27
  202. package/dist/redux/selectors.js.map +1 -1
  203. package/package.json +20 -17
@@ -6,22 +6,20 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
6
6
 
7
7
  import React, { Component } from 'react';
8
8
  import classNames from 'classnames';
9
- import PropTypes from 'prop-types';
10
9
  import memoize from 'memoize-one';
11
10
  import { connect } from 'react-redux';
12
11
  import { CSSTransition } from 'react-transition-group';
13
12
  import debounce from 'lodash.debounce';
14
- import { Chart, ChartUtils } from '@deephaven/chart';
15
- import { getOpenedPanelMapForDashboard, GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
13
+ import { Chart, ChartUtils, isFigureChartModel } from '@deephaven/chart';
14
+ import { getOpenedPanelMapForDashboard, LayoutUtils } from '@deephaven/dashboard';
16
15
  import { IrisGridUtils } from '@deephaven/iris-grid';
17
- import dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
16
+ import dh from '@deephaven/jsapi-shim';
18
17
  import { ThemeExport } from '@deephaven/components';
19
18
  import Log from '@deephaven/log';
20
19
  import { getActiveTool, getSettings, setActiveTool as setActiveToolAction } from '@deephaven/redux';
21
- import { Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
20
+ import { assertNotNull, Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
22
21
  import WidgetPanel from "./WidgetPanel.js";
23
22
  import ToolType from "../linker/ToolType.js";
24
- import { UIPropTypes } from "../prop-types/index.js";
25
23
  import { InputFilterEvent, ChartEvent } from "../events/index.js";
26
24
  import { getColumnSelectionValidatorForDashboard, getInputFiltersForDashboard, getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, getTableMapForDashboard, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction } from "../redux/index.js";
27
25
  import ChartFilterOverlay from "./ChartFilterOverlay.js";
@@ -29,10 +27,28 @@ import ChartColumnSelectorOverlay from "./ChartColumnSelectorOverlay.js";
29
27
  import "./ChartPanel.css";
30
28
  var log = Log.module('ChartPanel');
31
29
  var UPDATE_MODEL_DEBOUNCE = 150;
30
+ export function isChartPanelTableMetadata(metadata) {
31
+ return metadata.settings !== undefined;
32
+ }
33
+
34
+ function hasInputFilter(panel) {
35
+ return panel.inputFilters != null;
36
+ }
37
+
38
+ function hasPanelState(panel) {
39
+ return panel.panelState != null;
40
+ }
41
+
32
42
  export class ChartPanel extends Component {
33
43
  constructor(props) {
34
44
  super(props);
35
45
 
46
+ _defineProperty(this, "panelContainer", void 0);
47
+
48
+ _defineProperty(this, "chart", void 0);
49
+
50
+ _defineProperty(this, "pending", void 0);
51
+
36
52
  _defineProperty(this, "getWaitingInputMap", memoize((isFilterRequired, columnMap, filterMap) => {
37
53
  if (!isFilterRequired) {
38
54
  return new Map();
@@ -97,7 +113,9 @@ export class ChartPanel extends Component {
97
113
  }
98
114
 
99
115
  if (columnName != null && columnMap.has(columnName)) {
100
- linkedColumnMap.set(columnName, columnMap.get(columnName));
116
+ var column = columnMap.get(columnName);
117
+ assertNotNull(column);
118
+ linkedColumnMap.set(columnName, column);
101
119
  }
102
120
  }
103
121
 
@@ -144,24 +162,22 @@ export class ChartPanel extends Component {
144
162
  filterValueMap = [],
145
163
  settings = {}
146
164
  } = panelState !== null && panelState !== void 0 ? panelState : {};
147
- var queryName = metadata.query;
148
165
  this.state = {
149
166
  settings,
150
- error: null,
167
+ error: undefined,
151
168
  isActive: false,
152
169
  isDisconnected: false,
153
170
  isLoading: false,
154
171
  isLoaded: false,
155
- isLinked: metadata && metadata.settings && metadata.settings.isLinked,
172
+ isLinked: metadata && isChartPanelTableMetadata(metadata) && metadata.settings && metadata.settings.isLinked,
156
173
  // Map of all non-empty filters applied to the chart.
157
174
  // Initialize the filter map to the previously stored values; input filters will be applied after load.
158
175
  filterMap: new Map(filterValueMap),
159
176
  // Map of filter values set from links, stored in panelState.
160
177
  // Combined with inputFilters to get applied filters (filterMap).
161
178
  filterValueMap: new Map(filterValueMap),
162
- model: null,
179
+ model: undefined,
163
180
  columnMap: new Map(),
164
- queryName,
165
181
  // eslint-disable-next-line react/no-unused-state
166
182
  panelState
167
183
  };
@@ -208,7 +224,7 @@ export class ChartPanel extends Component {
208
224
  this.updatePanelState();
209
225
  }
210
226
 
211
- if (settings !== prevState.settings) {
227
+ if (settings !== prevState.settings && isFigureChartModel(model)) {
212
228
  model.updateSettings(settings);
213
229
  this.updatePanelState();
214
230
  }
@@ -249,7 +265,7 @@ export class ChartPanel extends Component {
249
265
  this.setState({
250
266
  isLoading: true,
251
267
  isLoaded: false,
252
- error: null
268
+ error: undefined
253
269
  });
254
270
  var {
255
271
  makeModel
@@ -335,7 +351,7 @@ export class ChartPanel extends Component {
335
351
  return;
336
352
  }
337
353
 
338
- columnSelectionValidator(this, null);
354
+ columnSelectionValidator(this, undefined);
339
355
  }
340
356
 
341
357
  handleDisconnect() {
@@ -364,7 +380,7 @@ export class ChartPanel extends Component {
364
380
  handleReconnect() {
365
381
  this.setState({
366
382
  isDisconnected: false,
367
- error: null
383
+ error: undefined
368
384
  });
369
385
  this.sendColumnChange();
370
386
  this.updateColumnFilters();
@@ -434,9 +450,6 @@ export class ChartPanel extends Component {
434
450
  isLinked,
435
451
  model
436
452
  } = this.state;
437
- var {
438
- settings
439
- } = metadata;
440
453
 
441
454
  if (!isLinked || !model || !source) {
442
455
  log.debug2('updateModelFromSource ignoring', isLinked, model, source);
@@ -445,9 +458,18 @@ export class ChartPanel extends Component {
445
458
 
446
459
 
447
460
  this.pending.cancel();
448
- this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(figure => {
449
- model.setFigure(figure);
450
- }).catch(this.handleLoadError);
461
+
462
+ if (isChartPanelTableMetadata(metadata)) {
463
+ var {
464
+ settings
465
+ } = metadata;
466
+ this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(figure => {
467
+ if (isFigureChartModel(model)) {
468
+ model.setFigure(figure);
469
+ }
470
+ }).catch(this.handleLoadError);
471
+ }
472
+
451
473
  this.updatePanelState();
452
474
  }
453
475
 
@@ -467,15 +489,17 @@ export class ChartPanel extends Component {
467
489
  if (sourcePanel) {
468
490
  // Right now just update the panel state from the source
469
491
  // If the source isn't available, just keep the state that's already saved
470
- var {
471
- inputFilters
472
- } = sourcePanel.props;
473
- var {
474
- panelState: sourcePanelState
475
- } = sourcePanel.state;
492
+ if (hasInputFilter(sourcePanel.props) && hasPanelState(sourcePanel.state)) {
493
+ var {
494
+ inputFilters
495
+ } = sourcePanel.props;
496
+ var {
497
+ panelState: sourcePanelState
498
+ } = sourcePanel.state;
476
499
 
477
- if (sourcePanelState) {
478
- tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
500
+ if (sourcePanelState) {
501
+ tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
502
+ }
479
503
  }
480
504
  } // eslint-disable-next-line react/no-unused-state
481
505
 
@@ -550,7 +574,7 @@ export class ChartPanel extends Component {
550
574
  }
551
575
  /**
552
576
  * Create an input filter panel for the provided column
553
- * @param {dh.Column} column The column to create the input filter for
577
+ * @param column The column to create the input filter for
554
578
  */
555
579
 
556
580
 
@@ -622,7 +646,7 @@ export class ChartPanel extends Component {
622
646
  }
623
647
  /**
624
648
  * Set chart filters based on the filter map
625
- * @param {Map<string, Object>} filterMapParam Filter map
649
+ * @param filterMapParam Filter map
626
650
  */
627
651
 
628
652
 
@@ -693,8 +717,10 @@ export class ChartPanel extends Component {
693
717
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
694
718
 
695
719
  if (inputFilterMap.has(columnName)) {
720
+ var _inputFilterMap$get;
721
+
696
722
  var filterValue = filterMap.get(columnName);
697
- var inputFilterValue = inputFilterMap.get(columnName).value;
723
+ var inputFilterValue = (_inputFilterMap$get = inputFilterMap.get(columnName)) === null || _inputFilterMap$get === void 0 ? void 0 : _inputFilterMap$get.value;
698
724
 
699
725
  if (inputFilterValue != null && filterValue !== inputFilterValue) {
700
726
  filterMap = new Map(state.filterMap);
@@ -800,7 +826,7 @@ export class ChartPanel extends Component {
800
826
  if (filterValueMap.has(name)) {
801
827
  var linkValue = filterValueMap.get(name);
802
828
 
803
- if (linkValue !== filterValue) {
829
+ if (linkValue !== filterValue && linkValue != null) {
804
830
  needsUpdate = true;
805
831
  filterMap.set(name, linkValue);
806
832
  }
@@ -841,6 +867,7 @@ export class ChartPanel extends Component {
841
867
  filterMap,
842
868
  model
843
869
  } = this.state;
870
+ assertNotNull(model);
844
871
  var waitingInputMap = this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap);
845
872
  model.setFilter(filterMap);
846
873
 
@@ -922,22 +949,24 @@ export class ChartPanel extends Component {
922
949
  filterMap,
923
950
  error,
924
951
  model,
925
- queryName,
926
952
  isActive,
927
953
  isDisconnected,
928
954
  isLoaded,
929
955
  isLoading
930
956
  } = this.state;
931
- var {
932
- figure: figureName,
933
- querySerial,
934
- table: tableName
935
- } = metadata;
957
+ var name;
958
+
959
+ if (isChartPanelTableMetadata(metadata)) {
960
+ name = metadata.table;
961
+ } else {
962
+ name = metadata.figure;
963
+ }
964
+
936
965
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
937
966
  var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
938
967
  var waitingInputMap = model != null ? this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap) : new Map();
939
968
  var waitingFilterMap = model != null ? this.getWaitingFilterMap(model.isFilterRequired(), columnMap, filterMap, linkedColumnMap, inputFilterMap) : new Map();
940
- var errorMessage = error ? "Unable to open chart. ".concat(error) : null;
969
+ var errorMessage = error ? "Unable to open chart. ".concat(error) : undefined;
941
970
  var isWaitingForFilter = waitingInputMap.size > 0;
942
971
  var isSelectingColumn = columnMap.size > 0 && isLinkerActive;
943
972
  return /*#__PURE__*/React.createElement(WidgetPanel, {
@@ -957,16 +986,14 @@ export class ChartPanel extends Component {
957
986
  isDisconnected: isDisconnected,
958
987
  isLoading: isLoading,
959
988
  isLoaded: isLoaded,
960
- queryName: queryName,
961
- querySerial: querySerial,
962
- widgetName: figureName || tableName,
989
+ widgetName: name,
963
990
  widgetType: "Chart"
964
991
  }, /*#__PURE__*/React.createElement("div", {
965
992
  ref: this.panelContainer,
966
993
  className: "chart-panel-container h-100 w-100"
967
994
  }, /*#__PURE__*/React.createElement("div", {
968
995
  className: "chart-container h-100 w-100"
969
- }, isLoaded && /*#__PURE__*/React.createElement(Chart, {
996
+ }, isLoaded && model && /*#__PURE__*/React.createElement(Chart, {
970
997
  isActive: isActive,
971
998
  model: model,
972
999
  settings: settings,
@@ -1006,54 +1033,30 @@ export class ChartPanel extends Component {
1006
1033
 
1007
1034
  }
1008
1035
 
1009
- _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1010
-
1011
- ChartPanel.propTypes = {
1012
- glContainer: GLPropTypes.Container.isRequired,
1013
- glEventHub: GLPropTypes.EventHub.isRequired,
1014
- metadata: PropTypes.shape({
1015
- figure: PropTypes.string,
1016
- table: PropTypes.string,
1017
- query: PropTypes.string,
1018
- querySerial: PropTypes.string,
1019
- sourcePanelId: PropTypes.string,
1020
- settings: PropTypes.shape({
1021
- isLinked: PropTypes.bool
1022
- })
1023
- }).isRequired,
1024
-
1025
- /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */
1026
- makeModel: PropTypes.func.isRequired,
1027
- inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,
1028
- links: UIPropTypes.Links.isRequired,
1029
- localDashboardId: PropTypes.string.isRequired,
1030
- isLinkerActive: PropTypes.bool,
1031
- source: APIPropTypes.Table,
1032
- sourcePanel: UIPropTypes.Panel,
1033
- columnSelectionValidator: PropTypes.func,
1034
- setActiveTool: PropTypes.func.isRequired,
1035
- setDashboardIsolatedLinkerPanelId: PropTypes.func.isRequired,
1036
- panelState: PropTypes.shape({}),
1037
- settings: PropTypes.shape({})
1038
- };
1039
- ChartPanel.defaultProps = {
1036
+ _defineProperty(ChartPanel, "defaultProps", {
1040
1037
  columnSelectionValidator: null,
1041
1038
  isLinkerActive: false,
1042
1039
  source: null,
1043
1040
  sourcePanel: null,
1044
1041
  panelState: null,
1045
1042
  settings: {}
1046
- };
1047
- ChartPanel.displayName = 'ChartPanel';
1043
+ });
1044
+
1045
+ _defineProperty(ChartPanel, "displayName", 'ChartPanel');
1046
+
1047
+ _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1048
1048
 
1049
1049
  var mapStateToProps = (state, ownProps) => {
1050
1050
  var {
1051
1051
  localDashboardId,
1052
- metadata = {}
1052
+ metadata
1053
1053
  } = ownProps;
1054
- var {
1055
- sourcePanelId
1056
- } = metadata;
1054
+ var sourcePanelId;
1055
+
1056
+ if (metadata) {
1057
+ sourcePanelId = metadata.sourcePanelId;
1058
+ }
1059
+
1057
1060
  var panelTableMap = getTableMapForDashboard(state, localDashboardId);
1058
1061
  var openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);
1059
1062
  var activeTool = getActiveTool(state);
@@ -1064,8 +1067,8 @@ var mapStateToProps = (state, ownProps) => {
1064
1067
  isLinkerActive,
1065
1068
  inputFilters: getInputFiltersForDashboard(state, localDashboardId),
1066
1069
  links: getLinksForDashboard(state, localDashboardId),
1067
- source: panelTableMap.get(sourcePanelId),
1068
- sourcePanel: openedPanelMap.get(sourcePanelId),
1070
+ source: sourcePanelId != null ? panelTableMap.get(sourcePanelId) : undefined,
1071
+ sourcePanel: sourcePanelId != null ? openedPanelMap.get(sourcePanelId) : undefined,
1069
1072
  settings: getSettings(state)
1070
1073
  };
1071
1074
  };