@deephaven/dashboard-core-plugins 0.22.3-embed-pandas.11 → 0.23.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 (185) hide show
  1. package/dist/ChartBuilderPlugin.d.ts +2 -2
  2. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  3. package/dist/ChartBuilderPlugin.js +6 -8
  4. package/dist/ChartBuilderPlugin.js.map +1 -1
  5. package/dist/ChartPlugin.d.ts +2 -2
  6. package/dist/ChartPlugin.d.ts.map +1 -1
  7. package/dist/ChartPlugin.js +4 -8
  8. package/dist/ChartPlugin.js.map +1 -1
  9. package/dist/ConsolePlugin.d.ts +2 -2
  10. package/dist/ConsolePlugin.d.ts.map +1 -1
  11. package/dist/ConsolePlugin.js +16 -62
  12. package/dist/ConsolePlugin.js.map +1 -1
  13. package/dist/FilterPlugin.d.ts +4 -4
  14. package/dist/FilterPlugin.d.ts.map +1 -1
  15. package/dist/FilterPlugin.js +6 -13
  16. package/dist/FilterPlugin.js.map +1 -1
  17. package/dist/GridPlugin.d.ts +2 -2
  18. package/dist/GridPlugin.d.ts.map +1 -1
  19. package/dist/GridPlugin.js +4 -8
  20. package/dist/GridPlugin.js.map +1 -1
  21. package/dist/LinkerPlugin.d.ts +2 -2
  22. package/dist/LinkerPlugin.d.ts.map +1 -1
  23. package/dist/LinkerPlugin.js +2 -2
  24. package/dist/LinkerPlugin.js.map +1 -1
  25. package/dist/MarkdownPlugin.d.ts +3 -3
  26. package/dist/MarkdownPlugin.d.ts.map +1 -1
  27. package/dist/MarkdownPlugin.js +4 -8
  28. package/dist/MarkdownPlugin.js.map +1 -1
  29. package/dist/PandasPlugin.d.ts +2 -2
  30. package/dist/PandasPlugin.d.ts.map +1 -1
  31. package/dist/PandasPlugin.js +4 -8
  32. package/dist/PandasPlugin.js.map +1 -1
  33. package/dist/controls/ControlType.js +0 -6
  34. package/dist/controls/ControlType.js.map +1 -1
  35. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +2 -2
  36. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  37. package/dist/controls/dropdown-filter/DropdownFilter.js +7 -51
  38. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  39. package/dist/controls/input-filter/InputFilter.d.ts +2 -2
  40. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  41. package/dist/controls/input-filter/InputFilter.js +1 -31
  42. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  43. package/dist/controls/markdown/MarkdownContainer.js +0 -3
  44. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  45. package/dist/controls/markdown/MarkdownEditor.d.ts +0 -2
  46. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  47. package/dist/controls/markdown/MarkdownEditor.js +13 -20
  48. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  49. package/dist/controls/markdown/MarkdownStartPage.js +0 -11
  50. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  51. package/dist/controls/markdown/MarkdownUtils.js +0 -7
  52. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  53. package/dist/events/ChartEvent.js +0 -5
  54. package/dist/events/ChartEvent.js.map +1 -1
  55. package/dist/events/ConsoleEvent.js +0 -7
  56. package/dist/events/ConsoleEvent.js.map +1 -1
  57. package/dist/events/InputFilterEvent.js +0 -10
  58. package/dist/events/InputFilterEvent.js.map +1 -1
  59. package/dist/events/IrisGridEvent.js +0 -8
  60. package/dist/events/IrisGridEvent.js.map +1 -1
  61. package/dist/events/MarkdownEvent.d.ts +1 -1
  62. package/dist/events/MarkdownEvent.js.map +1 -1
  63. package/dist/events/NotebookEvent.js +0 -10
  64. package/dist/events/NotebookEvent.js.map +1 -1
  65. package/dist/events/PQEvent.js +0 -5
  66. package/dist/events/PQEvent.js.map +1 -1
  67. package/dist/events/PandasEvent.js +0 -4
  68. package/dist/events/PandasEvent.js.map +1 -1
  69. package/dist/events/TabEvent.js +0 -8
  70. package/dist/events/TabEvent.js.map +1 -1
  71. package/dist/events/index.js.map +1 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/linker/ColumnSelectionValidator.d.ts +1 -1
  74. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -1
  75. package/dist/linker/Linker.d.ts +5 -2
  76. package/dist/linker/Linker.d.ts.map +1 -1
  77. package/dist/linker/Linker.js +70 -119
  78. package/dist/linker/Linker.js.map +1 -1
  79. package/dist/linker/LinkerLink.css +90 -25
  80. package/dist/linker/LinkerLink.css.map +1 -1
  81. package/dist/linker/LinkerLink.d.ts +21 -3
  82. package/dist/linker/LinkerLink.d.ts.map +1 -1
  83. package/dist/linker/LinkerLink.js +214 -23
  84. package/dist/linker/LinkerLink.js.map +1 -1
  85. package/dist/linker/LinkerOverlayContent.css +0 -4
  86. package/dist/linker/LinkerOverlayContent.css.map +1 -1
  87. package/dist/linker/LinkerOverlayContent.d.ts +14 -3
  88. package/dist/linker/LinkerOverlayContent.d.ts.map +1 -1
  89. package/dist/linker/LinkerOverlayContent.js +78 -33
  90. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  91. package/dist/linker/LinkerUtils.d.ts +17 -10
  92. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  93. package/dist/linker/LinkerUtils.js +9 -25
  94. package/dist/linker/LinkerUtils.js.map +1 -1
  95. package/dist/linker/ToolType.d.ts +2 -2
  96. package/dist/linker/ToolType.js.map +1 -1
  97. package/dist/panels/ChartColumnSelectorOverlay.d.ts +5 -5
  98. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  99. package/dist/panels/ChartColumnSelectorOverlay.js +4 -7
  100. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  101. package/dist/panels/ChartFilterOverlay.d.ts +5 -5
  102. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  103. package/dist/panels/ChartFilterOverlay.js +2 -7
  104. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  105. package/dist/panels/ChartPanel.d.ts +8 -8
  106. package/dist/panels/ChartPanel.d.ts.map +1 -1
  107. package/dist/panels/ChartPanel.js +11 -150
  108. package/dist/panels/ChartPanel.js.map +1 -1
  109. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  110. package/dist/panels/CommandHistoryPanel.js +1 -26
  111. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  112. package/dist/panels/ConsolePanel.d.ts +1 -1
  113. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  114. package/dist/panels/ConsolePanel.js +12 -57
  115. package/dist/panels/ConsolePanel.js.map +1 -1
  116. package/dist/panels/DropdownFilterPanel.d.ts +9 -9
  117. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  118. package/dist/panels/DropdownFilterPanel.js +21 -127
  119. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  120. package/dist/panels/FileExplorerPanel.d.ts +4 -4
  121. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  122. package/dist/panels/FileExplorerPanel.js +4 -33
  123. package/dist/panels/FileExplorerPanel.js.map +1 -1
  124. package/dist/panels/FilterSetManager.d.ts +1 -1
  125. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  126. package/dist/panels/FilterSetManager.js +13 -86
  127. package/dist/panels/FilterSetManager.js.map +1 -1
  128. package/dist/panels/FilterSetManagerPanel.js +10 -64
  129. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  130. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  131. package/dist/panels/InputFilterPanel.js +8 -38
  132. package/dist/panels/InputFilterPanel.js.map +1 -1
  133. package/dist/panels/IrisGridPanel.d.ts +13 -13
  134. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  135. package/dist/panels/IrisGridPanel.js +24 -133
  136. package/dist/panels/IrisGridPanel.js.map +1 -1
  137. package/dist/panels/IrisGridPanelTooltip.d.ts +7 -7
  138. package/dist/panels/IrisGridPanelTooltip.d.ts.map +1 -1
  139. package/dist/panels/IrisGridPanelTooltip.js +2 -5
  140. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  141. package/dist/panels/LogPanel.js +4 -22
  142. package/dist/panels/LogPanel.js.map +1 -1
  143. package/dist/panels/MarkdownNotebook.js +3 -30
  144. package/dist/panels/MarkdownNotebook.js.map +1 -1
  145. package/dist/panels/MarkdownPanel.js +2 -30
  146. package/dist/panels/MarkdownPanel.js.map +1 -1
  147. package/dist/panels/MockFileStorage.js +1 -14
  148. package/dist/panels/MockFileStorage.js.map +1 -1
  149. package/dist/panels/MockFileStorageTable.js +11 -30
  150. package/dist/panels/MockFileStorageTable.js.map +1 -1
  151. package/dist/panels/NotebookPanel.js +24 -182
  152. package/dist/panels/NotebookPanel.js.map +1 -1
  153. package/dist/panels/PandasPanel.js +1 -20
  154. package/dist/panels/PandasPanel.js.map +1 -1
  155. package/dist/panels/Panel.d.ts +1 -1
  156. package/dist/panels/Panel.d.ts.map +1 -1
  157. package/dist/panels/Panel.js +2 -38
  158. package/dist/panels/Panel.js.map +1 -1
  159. package/dist/panels/PanelContextMenu.js +7 -29
  160. package/dist/panels/PanelContextMenu.js.map +1 -1
  161. package/dist/panels/RenameDialog.js +2 -17
  162. package/dist/panels/RenameDialog.js.map +1 -1
  163. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  164. package/dist/panels/WidgetPanel.js +5 -22
  165. package/dist/panels/WidgetPanel.js.map +1 -1
  166. package/dist/panels/WidgetPanelTooltip.d.ts +7 -7
  167. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  168. package/dist/panels/WidgetPanelTooltip.js +7 -17
  169. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  170. package/dist/panels/index.js.map +1 -1
  171. package/dist/prop-types/CommonPropTypes.js +0 -3
  172. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  173. package/dist/prop-types/UIPropTypes.d.ts +2 -2
  174. package/dist/prop-types/UIPropTypes.js.map +1 -1
  175. package/dist/prop-types/index.js.map +1 -1
  176. package/dist/redux/actionTypes.js.map +1 -1
  177. package/dist/redux/actions.js +8 -9
  178. package/dist/redux/actions.js.map +1 -1
  179. package/dist/redux/index.js.map +1 -1
  180. package/dist/redux/reducers/connection.js.map +1 -1
  181. package/dist/redux/reducers/index.js.map +1 -1
  182. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  183. package/dist/redux/selectors.js +10 -15
  184. package/dist/redux/selectors.js.map +1 -1
  185. package/package.json +21 -19
@@ -1,9 +1,6 @@
1
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  import React, { Component } from 'react';
8
5
  import classNames from 'classnames';
9
6
  import memoize from 'memoize-one';
@@ -30,42 +27,32 @@ var UPDATE_MODEL_DEBOUNCE = 150;
30
27
  export function isChartPanelTableMetadata(metadata) {
31
28
  return metadata.settings !== undefined;
32
29
  }
33
-
34
30
  function hasInputFilter(panel) {
35
31
  return panel.inputFilters != null;
36
32
  }
37
-
38
33
  function hasPanelState(panel) {
39
34
  return panel.panelState != null;
40
35
  }
41
-
42
36
  export class ChartPanel extends Component {
43
37
  constructor(props) {
44
38
  super(props);
45
-
46
39
  _defineProperty(this, "panelContainer", void 0);
47
-
48
40
  _defineProperty(this, "chart", void 0);
49
-
50
41
  _defineProperty(this, "pending", void 0);
51
-
52
42
  _defineProperty(this, "getWaitingInputMap", memoize((isFilterRequired, columnMap, filterMap) => {
53
43
  if (!isFilterRequired) {
54
44
  return new Map();
55
45
  }
56
-
57
46
  var waitingInputMap = new Map(columnMap);
58
47
  filterMap.forEach((filter, name) => {
59
48
  waitingInputMap.delete(name);
60
49
  });
61
50
  return waitingInputMap;
62
51
  }));
63
-
64
52
  _defineProperty(this, "getWaitingFilterMap", memoize((isFilterRequired, columnMap, filterMap, linkedColumnMap, inputFilterMap) => {
65
53
  if (!isFilterRequired) {
66
54
  return new Map();
67
55
  }
68
-
69
56
  var waitingFilterMap = new Map(columnMap);
70
57
  filterMap.forEach((filter, name) => {
71
58
  waitingFilterMap.delete(name);
@@ -78,10 +65,8 @@ export class ChartPanel extends Component {
78
65
  });
79
66
  return waitingFilterMap;
80
67
  }));
81
-
82
68
  _defineProperty(this, "getInputFilterColumnMap", memoize((columnMap, inputFilters) => {
83
69
  var inputFilterMap = new Map();
84
-
85
70
  for (var i = 0; i < inputFilters.length; i += 1) {
86
71
  var inputFilter = inputFilters[i];
87
72
  var {
@@ -89,46 +74,37 @@ export class ChartPanel extends Component {
89
74
  type
90
75
  } = inputFilter;
91
76
  var column = columnMap.get(name);
92
-
93
77
  if (column != null && column.type === type) {
94
78
  inputFilterMap.set(name, inputFilter);
95
79
  }
96
80
  }
97
-
98
81
  return inputFilterMap;
99
82
  }));
100
-
101
83
  _defineProperty(this, "getLinkedColumnMap", memoize((columnMap, links) => {
102
84
  var linkedColumnMap = new Map();
103
85
  var panelId = LayoutUtils.getIdFromPanel(this);
104
-
105
86
  for (var i = 0; i < links.length; i += 1) {
106
87
  var link = links[i];
107
88
  var columnName = null;
108
-
109
89
  if (link.start != null && link.start.panelId === panelId && columnMap.has(link.start.columnName)) {
110
90
  columnName = link.start.columnName;
111
91
  } else if (link.end && link.end.panelId === panelId && columnMap.has(link.end.columnName)) {
112
92
  columnName = link.end.columnName;
113
93
  }
114
-
115
94
  if (columnName != null && columnMap.has(columnName)) {
116
95
  var column = columnMap.get(columnName);
117
96
  assertNotNull(column);
118
97
  linkedColumnMap.set(columnName, column);
119
98
  }
120
99
  }
121
-
122
100
  return linkedColumnMap;
123
101
  }));
124
-
125
102
  _defineProperty(this, "getSelectorColumns", memoize((columnMap, linkedColumnMap, columnSelectionValidator) => Array.from(columnMap.values()).map(column => ({
126
103
  name: column.name,
127
104
  type: column.type,
128
105
  isValid: columnSelectionValidator ? columnSelectionValidator(this, column) : false,
129
106
  isActive: linkedColumnMap.has(column.name)
130
107
  }))));
131
-
132
108
  this.handleColumnSelected = this.handleColumnSelected.bind(this);
133
109
  this.handleColumnMouseEnter = this.handleColumnMouseEnter.bind(this);
134
110
  this.handleColumnMouseLeave = this.handleColumnMouseLeave.bind(this);
@@ -169,7 +145,7 @@ export class ChartPanel extends Component {
169
145
  isDisconnected: false,
170
146
  isLoading: false,
171
147
  isLoaded: false,
172
- isLinked: metadata != null && isChartPanelTableMetadata(metadata) && metadata.settings && metadata.settings.isLinked,
148
+ isLinked: metadata != null && isChartPanelTableMetadata(metadata) && metadata.settings.isLinked,
173
149
  // Map of all non-empty filters applied to the chart.
174
150
  // Initialize the filter map to the previously stored values; input filters will be applied after load.
175
151
  filterMap: new Map(filterValueMap),
@@ -182,7 +158,6 @@ export class ChartPanel extends Component {
182
158
  panelState
183
159
  };
184
160
  }
185
-
186
161
  componentDidMount() {
187
162
  if (!this.isHidden()) {
188
163
  this.setState({
@@ -191,7 +166,6 @@ export class ChartPanel extends Component {
191
166
  this.initModel();
192
167
  }
193
168
  }
194
-
195
169
  componentDidUpdate(prevProps, prevState) {
196
170
  var {
197
171
  inputFilters,
@@ -205,30 +179,24 @@ export class ChartPanel extends Component {
205
179
  isLinked,
206
180
  settings
207
181
  } = this.state;
208
-
209
182
  if (!model) {
210
183
  return;
211
184
  }
212
-
213
185
  if (columnMap !== prevState.columnMap) {
214
186
  this.pruneFilterMaps();
215
187
  }
216
-
217
188
  if (inputFilters !== prevProps.inputFilters) {
218
189
  this.updateChangedInputFilters(inputFilters, prevProps.inputFilters);
219
190
  }
220
-
221
191
  if (filterMap !== prevState.filterMap) {
222
192
  this.updateFilters();
223
193
  } else if (filterValueMap !== prevState.filterValueMap) {
224
194
  this.updatePanelState();
225
195
  }
226
-
227
196
  if (settings !== prevState.settings && isFigureChartModel(model)) {
228
197
  model.updateSettings(settings);
229
198
  this.updatePanelState();
230
199
  }
231
-
232
200
  if (isLinked !== prevState.isLinked) {
233
201
  if (source) {
234
202
  if (isLinked) {
@@ -242,25 +210,21 @@ export class ChartPanel extends Component {
242
210
  if (prevProps.source) {
243
211
  this.stopListeningToSource(prevProps.source);
244
212
  }
245
-
246
213
  if (source) {
247
214
  this.startListeningToSource(source);
248
215
  this.updateModelFromSource();
249
216
  }
250
217
  }
251
218
  }
252
-
253
219
  componentWillUnmount() {
254
220
  this.pending.cancel();
255
221
  var {
256
222
  source
257
223
  } = this.props;
258
-
259
224
  if (source) {
260
225
  this.stopListeningToSource(source);
261
226
  }
262
227
  }
263
-
264
228
  initModel() {
265
229
  this.setState({
266
230
  isLoading: true,
@@ -274,33 +238,28 @@ export class ChartPanel extends Component {
274
238
  resolved.close();
275
239
  }).then(this.handleLoadSuccess, this.handleLoadError);
276
240
  }
277
-
278
241
  startListeningToSource(table) {
279
242
  log.debug('startListeningToSource', table);
280
243
  table.addEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
281
244
  table.addEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
282
245
  table.addEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
283
246
  }
284
-
285
247
  stopListeningToSource(table) {
286
248
  log.debug('stopListeningToSource', table);
287
249
  table.removeEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
288
250
  table.removeEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
289
251
  table.removeEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
290
252
  }
291
-
292
253
  loadModelIfNecessary() {
293
254
  var {
294
255
  isActive,
295
256
  isLoaded,
296
257
  isLoading
297
258
  } = this.state;
298
-
299
259
  if (isActive && !isLoaded && !isLoading) {
300
260
  this.initModel();
301
261
  }
302
262
  }
303
-
304
263
  isHidden() {
305
264
  var {
306
265
  glContainer
@@ -310,7 +269,6 @@ export class ChartPanel extends Component {
310
269
  } = glContainer;
311
270
  return isHidden;
312
271
  }
313
-
314
272
  handleColumnSelected(columnName) {
315
273
  var {
316
274
  glEventHub
@@ -320,7 +278,6 @@ export class ChartPanel extends Component {
320
278
  } = this.state;
321
279
  glEventHub.emit(ChartEvent.COLUMN_SELECTED, this, columnMap.get(columnName));
322
280
  }
323
-
324
281
  handleColumnMouseEnter(_ref) {
325
282
  var {
326
283
  type,
@@ -330,43 +287,35 @@ export class ChartPanel extends Component {
330
287
  columnSelectionValidator
331
288
  } = this.props;
332
289
  log.debug('handleColumnMouseEnter', columnSelectionValidator, type, name);
333
-
334
290
  if (!columnSelectionValidator) {
335
291
  return;
336
292
  }
337
-
338
293
  columnSelectionValidator(this, {
339
294
  type,
340
295
  name
341
296
  });
342
297
  }
343
-
344
298
  handleColumnMouseLeave() {
345
299
  var {
346
300
  columnSelectionValidator
347
301
  } = this.props;
348
302
  log.debug('handleColumnMouseLeave', columnSelectionValidator);
349
-
350
303
  if (!columnSelectionValidator) {
351
304
  return;
352
305
  }
353
-
354
306
  columnSelectionValidator(this, undefined);
355
307
  }
356
-
357
308
  handleDisconnect() {
358
309
  this.setState({
359
310
  error: new Error('Figure disconnected'),
360
311
  isDisconnected: true
361
312
  });
362
313
  }
363
-
364
314
  handleFilterAdd(columns) {
365
315
  for (var i = 0; i < columns.length; i += 1) {
366
316
  this.openInputFilter(columns[i]);
367
317
  }
368
318
  }
369
-
370
319
  handleOpenLinker() {
371
320
  var {
372
321
  localDashboardId,
@@ -376,7 +325,6 @@ export class ChartPanel extends Component {
376
325
  setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);
377
326
  setActiveTool(ToolType.LINKER);
378
327
  }
379
-
380
328
  handleReconnect() {
381
329
  this.setState({
382
330
  isDisconnected: false,
@@ -385,7 +333,6 @@ export class ChartPanel extends Component {
385
333
  this.sendColumnChange();
386
334
  this.updateColumnFilters();
387
335
  }
388
-
389
336
  handleLoadSuccess(model) {
390
337
  log.debug('handleLoadSuccess');
391
338
  var {
@@ -403,12 +350,10 @@ export class ChartPanel extends Component {
403
350
  filterMap,
404
351
  isLinked
405
352
  } = this.state;
406
-
407
353
  if (model !== prevModel) {
408
354
  this.sendColumnChange();
409
355
  this.updateColumnFilters();
410
356
  this.updateInputFilters(inputFilters, filterMap.size > 0 || model.isFilterRequired());
411
-
412
357
  if (source && isLinked) {
413
358
  this.startListeningToSource(source);
414
359
  this.updateModelFromSource();
@@ -416,31 +361,25 @@ export class ChartPanel extends Component {
416
361
  }
417
362
  });
418
363
  }
419
-
420
364
  handleLoadError(error) {
421
365
  if (PromiseUtils.isCanceled(error)) {
422
366
  return;
423
367
  }
424
-
425
368
  log.error('handleLoadError', error);
426
369
  this.setState({
427
370
  error,
428
371
  isLoading: false
429
372
  });
430
373
  }
431
-
432
374
  handleSourceColumnChange() {
433
375
  this.updateModelFromSource();
434
376
  }
435
-
436
377
  handleSourceFilterChange() {
437
378
  this.updateModelFromSource();
438
379
  }
439
-
440
380
  handleSourceSortChange() {
441
381
  this.updateModelFromSource();
442
382
  }
443
-
444
383
  updateModelFromSource() {
445
384
  var {
446
385
  metadata,
@@ -450,15 +389,13 @@ export class ChartPanel extends Component {
450
389
  isLinked,
451
390
  model
452
391
  } = this.state;
453
-
454
392
  if (!isLinked || !model || !source) {
455
393
  log.debug2('updateModelFromSource ignoring', isLinked, model, source);
456
394
  return;
457
- } // By now the model has already been loaded, which is the only other cancelable thing in pending
458
-
395
+ }
459
396
 
397
+ // By now the model has already been loaded, which is the only other cancelable thing in pending
460
398
  this.pending.cancel();
461
-
462
399
  if (isChartPanelTableMetadata(metadata)) {
463
400
  var {
464
401
  settings
@@ -469,10 +406,8 @@ export class ChartPanel extends Component {
469
406
  }
470
407
  }).catch(this.handleLoadError);
471
408
  }
472
-
473
409
  this.updatePanelState();
474
410
  }
475
-
476
411
  updatePanelState() {
477
412
  var {
478
413
  sourcePanel
@@ -485,7 +420,6 @@ export class ChartPanel extends Component {
485
420
  var {
486
421
  tableSettings
487
422
  } = panelState !== null && panelState !== void 0 ? panelState : {};
488
-
489
423
  if (sourcePanel) {
490
424
  // Right now just update the panel state from the source
491
425
  // If the source isn't available, just keep the state that's already saved
@@ -496,14 +430,13 @@ export class ChartPanel extends Component {
496
430
  var {
497
431
  panelState: sourcePanelState
498
432
  } = sourcePanel.state;
499
-
500
433
  if (sourcePanelState != null) {
501
434
  tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
502
435
  }
503
436
  }
504
- } // eslint-disable-next-line react/no-unused-state
505
-
437
+ }
506
438
 
439
+ // eslint-disable-next-line react/no-unused-state
507
440
  this.setState({
508
441
  panelState: {
509
442
  settings,
@@ -512,7 +445,6 @@ export class ChartPanel extends Component {
512
445
  }
513
446
  });
514
447
  }
515
-
516
448
  handleError() {
517
449
  // Don't want to set an error state, because the user can fix a chart error within the chart itself.
518
450
  // We're not loading anymore either so stop showing the spinner so the user can actually click those buttons.
@@ -520,49 +452,39 @@ export class ChartPanel extends Component {
520
452
  isLoading: false
521
453
  });
522
454
  }
523
-
524
455
  handleResize() {
525
456
  this.updateChart();
526
457
  }
527
-
528
458
  handleSettingsChanged(update) {
529
459
  this.setState(_ref2 => {
530
460
  var {
531
461
  settings: prevSettings
532
462
  } = _ref2;
533
-
534
463
  var settings = _objectSpread(_objectSpread({}, prevSettings), update);
535
-
536
464
  log.debug('Updated settings', settings);
537
465
  return {
538
466
  settings
539
467
  };
540
468
  });
541
469
  }
542
-
543
470
  handleHide() {
544
471
  this.setActive(false);
545
472
  }
546
-
547
473
  handleShow() {
548
474
  this.setActive(true);
549
475
  }
550
-
551
476
  handleTabBlur() {
552
477
  this.setActive(false);
553
478
  }
554
-
555
479
  handleTabFocus() {
556
480
  var isHidden = this.isHidden();
557
481
  this.setActive(!isHidden);
558
482
  }
559
-
560
483
  handleUpdate() {
561
484
  this.setState({
562
485
  isLoading: false
563
486
  });
564
487
  }
565
-
566
488
  handleClearAllFilters() {
567
489
  // nuke link filter and input filter map
568
490
  // input filters only clear themselves if they are not yet empty
@@ -572,12 +494,11 @@ export class ChartPanel extends Component {
572
494
  });
573
495
  this.updatePanelState();
574
496
  }
497
+
575
498
  /**
576
499
  * Create an input filter panel for the provided column
577
500
  * @param column The column to create the input filter for
578
501
  */
579
-
580
-
581
502
  openInputFilter(column) {
582
503
  var {
583
504
  glEventHub
@@ -597,7 +518,6 @@ export class ChartPanel extends Component {
597
518
  focusElement: 'input'
598
519
  });
599
520
  }
600
-
601
521
  setActive(isActive) {
602
522
  this.setState({
603
523
  isActive
@@ -608,53 +528,42 @@ export class ChartPanel extends Component {
608
528
  }
609
529
  });
610
530
  }
611
-
612
531
  sendColumnChange() {
613
532
  var {
614
533
  model
615
534
  } = this.state;
616
-
617
535
  if (!model) {
618
536
  return;
619
537
  }
620
-
621
538
  var {
622
539
  glEventHub
623
540
  } = this.props;
624
541
  glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, Array.from(model.getFilterColumnMap().values()));
625
542
  }
626
-
627
543
  getCoordinateForColumn(columnName) {
628
544
  var _element$getBoundingC;
629
-
630
545
  var className = ChartColumnSelectorOverlay.makeButtonClassName(columnName);
631
-
632
546
  if (!this.panelContainer.current) {
633
547
  return null;
634
548
  }
635
-
636
549
  var element = this.panelContainer.current.querySelector(".".concat(className));
637
550
  var rect = (_element$getBoundingC = element === null || element === void 0 ? void 0 : element.getBoundingClientRect()) !== null && _element$getBoundingC !== void 0 ? _element$getBoundingC : null;
638
-
639
551
  if (rect == null || rect.width <= 0 || rect.height <= 0) {
640
552
  return null;
641
553
  }
642
-
643
554
  var x = rect.left + rect.width / 2;
644
555
  var y = rect.bottom;
645
556
  return [x, y];
646
557
  }
558
+
647
559
  /**
648
560
  * Set chart filters based on the filter map
649
561
  * @param filterMapParam Filter map
650
562
  */
651
-
652
-
653
563
  setFilterMap(filterMapParam) {
654
564
  log.debug('setFilterMap', filterMapParam);
655
565
  this.setState(state => {
656
566
  var _updatedFilterMap;
657
-
658
567
  var {
659
568
  columnMap,
660
569
  filterMap
@@ -667,31 +576,27 @@ export class ChartPanel extends Component {
667
576
  value
668
577
  } = _ref3;
669
578
  var column = columnMap.get(columnName);
670
-
671
579
  if (column == null || column.type !== columnType) {
672
580
  return;
673
581
  }
674
-
675
582
  filterValueMap.set(columnName, value);
676
-
677
583
  if (filterMap.get(columnName) !== value) {
678
584
  if (updatedFilterMap === null) {
679
585
  updatedFilterMap = new Map(filterMap);
680
586
  }
681
-
682
587
  updatedFilterMap.set(columnName, value);
683
588
  }
684
- }); // Don't update filterMap unless the filters actually changed.
589
+ });
590
+
591
+ // Don't update filterMap unless the filters actually changed.
685
592
  // Otherwise the chart gets stuck on a spinner
686
593
  // because it never gets an update event for unchanged filters.
687
-
688
594
  return {
689
595
  filterValueMap,
690
596
  filterMap: (_updatedFilterMap = updatedFilterMap) !== null && _updatedFilterMap !== void 0 ? _updatedFilterMap : filterMap
691
597
  };
692
598
  });
693
599
  }
694
-
695
600
  unsetFilterValue(columnName) {
696
601
  this.setState(state => {
697
602
  // We want to unset a value unless there's an input filter for it
@@ -707,24 +612,18 @@ export class ChartPanel extends Component {
707
612
  filterMap,
708
613
  filterValueMap
709
614
  } = state;
710
-
711
615
  if (!filterValueMap.has(columnName)) {
712
616
  return null;
713
617
  }
714
-
715
618
  filterValueMap = new Map(state.filterValueMap);
716
619
  filterValueMap.delete(columnName);
717
620
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
718
-
719
621
  if (inputFilterMap.has(columnName)) {
720
622
  var _inputFilterMap$get;
721
-
722
623
  var filterValue = filterMap.get(columnName);
723
624
  var inputFilterValue = (_inputFilterMap$get = inputFilterMap.get(columnName)) === null || _inputFilterMap$get === void 0 ? void 0 : _inputFilterMap$get.value;
724
-
725
625
  if (inputFilterValue != null && filterValue !== inputFilterValue) {
726
626
  filterMap = new Map(state.filterMap);
727
-
728
627
  if (inputFilterValue.length > 0) {
729
628
  filterMap.set(columnName, inputFilterValue);
730
629
  } else {
@@ -735,28 +634,22 @@ export class ChartPanel extends Component {
735
634
  filterMap = new Map(state.filterMap);
736
635
  filterMap.delete(columnName);
737
636
  }
738
-
739
637
  return {
740
638
  filterMap,
741
639
  filterValueMap
742
640
  };
743
641
  });
744
642
  }
745
-
746
643
  updateChangedInputFilters(inputFilters, prevInputFilters) {
747
644
  var deletedInputFilters = prevInputFilters.filter(prevInputFilter => inputFilters.find(inputFilter => inputFilter.name === prevInputFilter.name && inputFilter.type === prevInputFilter.type) === undefined);
748
-
749
645
  if (deletedInputFilters.length > 0) {
750
646
  this.deleteInputFilters(deletedInputFilters);
751
647
  }
752
-
753
648
  var changedInputFilters = inputFilters.filter(inputFilter => !prevInputFilters.includes(inputFilter));
754
-
755
649
  if (changedInputFilters.length > 0) {
756
650
  this.updateInputFilters(changedInputFilters);
757
651
  }
758
652
  }
759
-
760
653
  updateInputFilters(inputFilters) {
761
654
  var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
762
655
  this.setState(state => {
@@ -769,7 +662,6 @@ export class ChartPanel extends Component {
769
662
  filterMap,
770
663
  filterValueMap
771
664
  } : {};
772
-
773
665
  for (var i = 0; i < inputFilters.length; i += 1) {
774
666
  var {
775
667
  name,
@@ -777,7 +669,6 @@ export class ChartPanel extends Component {
777
669
  value
778
670
  } = inputFilters[i];
779
671
  var column = columnMap.get(name);
780
-
781
672
  if (column != null && column.type === type) {
782
673
  if (value != null && filterMap.get(name) !== value) {
783
674
  if (value === '') {
@@ -785,10 +676,8 @@ export class ChartPanel extends Component {
785
676
  } else {
786
677
  filterMap.set(name, value);
787
678
  }
788
-
789
679
  update.filterMap = filterMap;
790
680
  }
791
-
792
681
  if (filterValueMap.has(name)) {
793
682
  // Need to unset whatever the linked value was - if they want that value again, they need to double click the link again
794
683
  filterValueMap.delete(name);
@@ -796,12 +685,10 @@ export class ChartPanel extends Component {
796
685
  }
797
686
  }
798
687
  }
799
-
800
688
  log.debug('updateInputFilters', update);
801
689
  return update;
802
690
  });
803
691
  }
804
-
805
692
  deleteInputFilters(inputFilters) {
806
693
  var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
807
694
  this.setState(state => {
@@ -811,21 +698,17 @@ export class ChartPanel extends Component {
811
698
  } = state;
812
699
  var filterMap = new Map(state.filterMap);
813
700
  var needsUpdate = forceUpdate;
814
-
815
701
  for (var i = 0; i < inputFilters.length; i += 1) {
816
702
  var {
817
703
  name,
818
704
  type
819
705
  } = inputFilters[i];
820
706
  var column = columnMap.get(name);
821
-
822
707
  if (column != null && column.type === type) {
823
708
  if (filterMap.has(name)) {
824
709
  var filterValue = filterMap.get(name);
825
-
826
710
  if (filterValueMap.has(name)) {
827
711
  var linkValue = filterValueMap.get(name);
828
-
829
712
  if (linkValue !== filterValue && linkValue != null) {
830
713
  needsUpdate = true;
831
714
  filterMap.set(name, linkValue);
@@ -837,30 +720,25 @@ export class ChartPanel extends Component {
837
720
  }
838
721
  }
839
722
  }
840
-
841
723
  log.debug('deleteInputFilters', needsUpdate);
842
724
  return needsUpdate ? {
843
725
  filterMap
844
726
  } : null;
845
727
  });
846
728
  }
847
-
848
729
  updateColumnFilters() {
849
730
  this.setState(_ref4 => {
850
731
  var {
851
732
  model
852
733
  } = _ref4;
853
-
854
734
  if (!model) {
855
735
  return null;
856
736
  }
857
-
858
737
  return {
859
738
  columnMap: model.getFilterColumnMap()
860
739
  };
861
740
  });
862
741
  }
863
-
864
742
  updateFilters() {
865
743
  var {
866
744
  columnMap,
@@ -870,20 +748,17 @@ export class ChartPanel extends Component {
870
748
  assertNotNull(model);
871
749
  var waitingInputMap = this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap);
872
750
  model.setFilter(filterMap);
873
-
874
751
  if (filterMap.size > 0 && waitingInputMap.size === 0) {
875
752
  var defaultTitle = model.getDefaultTitle();
876
753
  var filterTitle = TextUtils.join(Array.from(filterMap.entries()).map(_ref5 => {
877
754
  var [name, value] = _ref5;
878
755
  return "".concat(name, ": ").concat(value);
879
756
  }));
880
-
881
757
  if (defaultTitle) {
882
758
  model.setTitle("".concat(defaultTitle, "<br><span style=\"font-size: smaller\">").concat(filterTitle, "</span>"));
883
759
  } else {
884
760
  model.setTitle(filterTitle);
885
761
  }
886
-
887
762
  log.debug2('updateFilters filters set', filterMap);
888
763
  this.setState({
889
764
  isLoading: true
@@ -895,14 +770,12 @@ export class ChartPanel extends Component {
895
770
  isLoading: false
896
771
  });
897
772
  }
898
-
899
773
  this.updatePanelState();
900
774
  }
775
+
901
776
  /**
902
777
  * Removes any set filter values that are no longer part of the model
903
778
  */
904
-
905
-
906
779
  pruneFilterMaps() {
907
780
  this.setState(state => {
908
781
  var {
@@ -926,13 +799,11 @@ export class ChartPanel extends Component {
926
799
  return newState;
927
800
  });
928
801
  }
929
-
930
802
  updateChart() {
931
803
  if (this.chart.current) {
932
804
  this.chart.current.updateDimensions();
933
805
  }
934
806
  }
935
-
936
807
  render() {
937
808
  var {
938
809
  columnSelectionValidator,
@@ -955,13 +826,11 @@ export class ChartPanel extends Component {
955
826
  isLoading
956
827
  } = this.state;
957
828
  var name;
958
-
959
829
  if (isChartPanelTableMetadata(metadata)) {
960
830
  name = metadata.table;
961
831
  } else {
962
832
  name = metadata.figure;
963
833
  }
964
-
965
834
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
966
835
  var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
967
836
  var waitingInputMap = model != null ? this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap) : new Map();
@@ -1030,9 +899,7 @@ export class ChartPanel extends Component {
1030
899
  onMouseLeave: this.handleColumnMouseLeave
1031
900
  }))));
1032
901
  }
1033
-
1034
902
  }
1035
-
1036
903
  _defineProperty(ChartPanel, "defaultProps", {
1037
904
  columnSelectionValidator: null,
1038
905
  isLinkerActive: false,
@@ -1041,22 +908,17 @@ _defineProperty(ChartPanel, "defaultProps", {
1041
908
  panelState: null,
1042
909
  settings: {}
1043
910
  });
1044
-
1045
911
  _defineProperty(ChartPanel, "displayName", 'ChartPanel');
1046
-
1047
912
  _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1048
-
1049
913
  var mapStateToProps = (state, ownProps) => {
1050
914
  var {
1051
915
  localDashboardId,
1052
916
  metadata
1053
917
  } = ownProps;
1054
918
  var sourcePanelId;
1055
-
1056
919
  if (metadata != null) {
1057
920
  sourcePanelId = metadata.sourcePanelId;
1058
921
  }
1059
-
1060
922
  var panelTableMap = getTableMapForDashboard(state, localDashboardId);
1061
923
  var openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);
1062
924
  var activeTool = getActiveTool(state);
@@ -1072,7 +934,6 @@ var mapStateToProps = (state, ownProps) => {
1072
934
  settings: getSettings(state)
1073
935
  };
1074
936
  };
1075
-
1076
937
  export default connect(mapStateToProps, {
1077
938
  setActiveTool: setActiveToolAction,
1078
939
  setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction