@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
@@ -8,19 +8,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
8
8
  // Will probably need to handle window popping out from golden layout here.
9
9
  import React, { PureComponent } from 'react';
10
10
  import memoize from 'memoize-one';
11
- import PropTypes from 'prop-types';
12
11
  import { connect } from 'react-redux';
13
12
  import debounce from 'lodash.debounce';
14
- import { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
13
+ import { LayoutUtils } from '@deephaven/dashboard';
15
14
  import { AdvancedSettings, IrisGrid, IrisGridModel, IrisGridUtils, IrisGridTableModel, isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
16
15
  import { TableUtils } from '@deephaven/jsapi-utils';
17
16
  import Log from '@deephaven/log';
18
17
  import { getSettings, getUser, getWorkspace } from '@deephaven/redux';
19
- import { PromiseUtils } from '@deephaven/utils';
18
+ import { assertNotNull, PromiseUtils } from '@deephaven/utils';
20
19
  import { ContextMenuRoot } from '@deephaven/components';
21
20
  import { ConsoleEvent, InputFilterEvent, IrisGridEvent } from "../events/index.js";
22
21
  import { getInputFiltersForDashboard, getLinksForDashboard, getColumnSelectionValidatorForDashboard } from "../redux/index.js";
23
- import { UIPropTypes } from "../prop-types/index.js";
24
22
  import WidgetPanel from "./WidgetPanel.js";
25
23
  import WidgetPanelTooltip from "./WidgetPanelTooltip.js";
26
24
  import "./IrisGridPanel.css";
@@ -35,13 +33,26 @@ export class IrisGridPanel extends PureComponent {
35
33
  constructor(props) {
36
34
  super(props);
37
35
 
36
+ _defineProperty(this, "irisGrid", void 0);
37
+
38
+ _defineProperty(this, "pluginRef", void 0);
39
+
40
+ _defineProperty(this, "modelPromise", void 0);
41
+
42
+ _defineProperty(this, "irisGridState", void 0);
43
+
44
+ _defineProperty(this, "gridState", void 0);
45
+
46
+ _defineProperty(this, "pluginState", void 0);
47
+
38
48
  _defineProperty(this, "getGridInputFilters", memoize((columns, inputFilters) => IrisGridUtils.getInputFiltersForColumns(columns, // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.
39
49
  inputFilters.filter(_ref => {
40
50
  var {
41
51
  value,
42
52
  excludePanelIds
43
53
  } = _ref;
44
- return value != null && (excludePanelIds == null || !excludePanelIds.includes(LayoutUtils.getIdFromPanel(this)));
54
+ var id = LayoutUtils.getIdFromPanel(this);
55
+ return value != null && (excludePanelIds == null || id && !excludePanelIds.includes(id));
45
56
  }))));
46
57
 
47
58
  _defineProperty(this, "getAlwaysFetchColumns", memoize((dashboardLinks, pluginFetchColumns) => {
@@ -62,8 +73,8 @@ export class IrisGridPanel extends PureComponent {
62
73
  return [...columnSet];
63
74
  }));
64
75
 
65
- _defineProperty(this, "getPluginContent", memoize((Plugin, table, user, workspace, pluginState) => {
66
- if (Plugin == null || table == null) {
76
+ _defineProperty(this, "getPluginContent", memoize((Plugin, model, user, workspace, pluginState) => {
77
+ if (!model || !isIrisGridTableModelTemplate(model) || Plugin == null || model.table == null) {
67
78
  return null;
68
79
  }
69
80
 
@@ -77,7 +88,7 @@ export class IrisGridPanel extends PureComponent {
77
88
  fetchColumns: this.handlePluginFetchColumns // onFetchColumns is deprecated
78
89
  ,
79
90
  onFetchColumns: this.handlePluginFetchColumns,
80
- table: table,
91
+ table: model.table,
81
92
  user: user,
82
93
  panel: this,
83
94
  workspace: workspace,
@@ -93,9 +104,8 @@ export class IrisGridPanel extends PureComponent {
93
104
  partitionColumn
94
105
  })));
95
106
 
96
- _defineProperty(this, "getDehydratedIrisGridState", memoize((model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns, conditionalFormats) => IrisGridUtils.dehydrateIrisGridState(model, {
107
+ _defineProperty(this, "getDehydratedIrisGridState", memoize((model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, pendingDataMap, frozenColumns, conditionalFormats) => IrisGridUtils.dehydrateIrisGridState(model, {
97
108
  advancedFilters,
98
- advancedSettings,
99
109
  aggregationSettings,
100
110
  customColumnFormatMap,
101
111
  isFilterBarShown,
@@ -132,7 +142,66 @@ export class IrisGridPanel extends PureComponent {
132
142
  pluginState
133
143
  })));
134
144
 
135
- this.savePanelState = debounce(this.savePanelState.bind(this), DEBOUNCE_PANEL_STATE_UPDATE);
145
+ _defineProperty(this, "savePanelState", debounce(() => {
146
+ var {
147
+ irisGridState,
148
+ gridState,
149
+ pluginState
150
+ } = this;
151
+ assertNotNull(irisGridState);
152
+ var {
153
+ onPanelStateUpdate
154
+ } = this.props;
155
+ var {
156
+ model,
157
+ panelState: oldPanelState,
158
+ isSelectingPartition,
159
+ partition,
160
+ partitionColumn
161
+ } = this.state;
162
+ var {
163
+ advancedFilters,
164
+ aggregationSettings,
165
+ customColumnFormatMap,
166
+ isFilterBarShown,
167
+ quickFilters,
168
+ customColumns,
169
+ reverseType,
170
+ rollupConfig,
171
+ showSearchBar,
172
+ searchValue,
173
+ selectDistinctColumns,
174
+ selectedSearchColumns,
175
+ sorts,
176
+ invertSearchColumns,
177
+ metrics,
178
+ pendingDataMap,
179
+ frozenColumns,
180
+ conditionalFormats
181
+ } = irisGridState;
182
+ assertNotNull(metrics);
183
+ var {
184
+ userColumnWidths,
185
+ userRowHeights
186
+ } = metrics;
187
+ assertNotNull(gridState);
188
+ var {
189
+ isStuckToBottom,
190
+ isStuckToRight,
191
+ movedColumns,
192
+ movedRows
193
+ } = gridState;
194
+ var panelState = this.getCachedPanelState(this.getDehydratedIrisGridPanelState(model, isSelectingPartition, partition, partitionColumn), this.getDehydratedIrisGridState(model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, pendingDataMap, frozenColumns, conditionalFormats), this.getDehydratedGridState(model, movedColumns, movedRows, isStuckToBottom, isStuckToRight), pluginState);
195
+
196
+ if (panelState !== oldPanelState) {
197
+ log.debug('Saving panel state', this, panelState);
198
+ this.setState({
199
+ panelState
200
+ });
201
+ onPanelStateUpdate === null || onPanelStateUpdate === void 0 ? void 0 : onPanelStateUpdate(panelState);
202
+ }
203
+ }, DEBOUNCE_PANEL_STATE_UPDATE));
204
+
136
205
  this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(this);
137
206
  this.handleColumnsChanged = this.handleColumnsChanged.bind(this);
138
207
  this.handleTableChanged = this.handleTableChanged.bind(this);
@@ -157,14 +226,9 @@ export class IrisGridPanel extends PureComponent {
157
226
  this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
158
227
  this.irisGrid = /*#__PURE__*/React.createRef();
159
228
  this.pluginRef = /*#__PURE__*/React.createRef();
160
- this.modelPromise = null;
161
229
  var {
162
- panelState,
163
- metadata
230
+ panelState: _panelState
164
231
  } = props;
165
- var queryName = metadata.query;
166
- this.irisGridState = null;
167
- this.gridState = null;
168
232
  this.pluginState = null;
169
233
  this.state = {
170
234
  error: null,
@@ -172,7 +236,7 @@ export class IrisGridPanel extends PureComponent {
172
236
  isLoaded: false,
173
237
  isLoading: true,
174
238
  isModelReady: false,
175
- model: null,
239
+ model: undefined,
176
240
  // State is hydrated from panel state when table is loaded
177
241
  advancedFilters: new Map(),
178
242
  aggregationSettings: {
@@ -191,25 +255,28 @@ export class IrisGridPanel extends PureComponent {
191
255
  movedColumns: [],
192
256
  movedRows: [],
193
257
  isSelectingPartition: false,
194
- partition: null,
195
- partitionColumn: null,
196
- queryName,
197
- rollupConfig: null,
258
+ partition: undefined,
259
+ partitionColumn: undefined,
260
+ rollupConfig: undefined,
198
261
  showSearchBar: false,
199
262
  searchValue: '',
200
- selectedSearchColumns: null,
263
+ selectedSearchColumns: undefined,
201
264
  invertSearchColumns: true,
202
- Plugin: null,
265
+ Plugin: undefined,
203
266
  pluginFilters: [],
204
267
  pluginFetchColumns: [],
205
268
  modelQueue: [],
206
269
  pendingDataMap: new Map(),
207
- frozenColumns: null,
270
+ frozenColumns: undefined,
208
271
  // eslint-disable-next-line react/no-unused-state
209
- panelState,
272
+ panelState: _panelState,
210
273
  // Dehydrated panel state that can load this panel
211
274
  irisGridStateOverrides: {},
212
- gridStateOverrides: {}
275
+ gridStateOverrides: {},
276
+ isStuckToBottom: false,
277
+ isStuckToRight: false,
278
+ conditionalFormats: [],
279
+ selectDistinctColumns: []
213
280
  };
214
281
  }
215
282
 
@@ -239,7 +306,7 @@ export class IrisGridPanel extends PureComponent {
239
306
 
240
307
  if (this.modelPromise != null) {
241
308
  this.modelPromise.cancel();
242
- this.modelPromise = null;
309
+ this.modelPromise = undefined;
243
310
  }
244
311
 
245
312
  var {
@@ -273,7 +340,7 @@ export class IrisGridPanel extends PureComponent {
273
340
  this.modelPromise.cancel();
274
341
  }
275
342
 
276
- this.modelPromise = PromiseUtils.makeCancelable(makeModel(), resolved => resolved.close);
343
+ this.modelPromise = PromiseUtils.makeCancelable(makeModel(), resolved => resolved.close());
277
344
  this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);
278
345
  }
279
346
 
@@ -287,7 +354,7 @@ export class IrisGridPanel extends PureComponent {
287
354
 
288
355
  if (panelState != null) {
289
356
  var {
290
- irisGridState
357
+ irisGridState: _irisGridState
291
358
  } = panelState;
292
359
 
293
360
  var {
@@ -295,7 +362,7 @@ export class IrisGridPanel extends PureComponent {
295
362
  customColumns,
296
363
  selectDistinctColumns = [],
297
364
  rollupConfig
298
- } = _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides);
365
+ } = _objectSpread(_objectSpread({}, _irisGridState), irisGridStateOverrides);
299
366
 
300
367
  if (customColumns.length > 0) {
301
368
  modelQueue.push(m => {
@@ -340,7 +407,10 @@ export class IrisGridPanel extends PureComponent {
340
407
  var modelChange = modelQueue.shift();
341
408
  log.debug('initModelQueue', modelChange); // Apply next model change. Triggers columnschanged event.
342
409
 
343
- modelChange(model);
410
+ if (modelChange) {
411
+ modelChange(model);
412
+ }
413
+
344
414
  this.setState({
345
415
  modelQueue
346
416
  });
@@ -362,6 +432,7 @@ export class IrisGridPanel extends PureComponent {
362
432
  var {
363
433
  model
364
434
  } = this.state;
435
+ assertNotNull(model);
365
436
  var {
366
437
  columns,
367
438
  formatter
@@ -378,10 +449,12 @@ export class IrisGridPanel extends PureComponent {
378
449
  });
379
450
  }
380
451
 
381
- handleContextMenu(data) {
452
+ handleContextMenu(obj) {
382
453
  var _this$pluginRef$curre, _this$pluginRef$curre2, _this$pluginRef$curre3;
383
454
 
384
- return (_this$pluginRef$curre = (_this$pluginRef$curre2 = this.pluginRef.current) === null || _this$pluginRef$curre2 === void 0 ? 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 : [];
455
+ return (_this$pluginRef$curre = (_this$pluginRef$curre2 = (_this$pluginRef$curre3 = this.pluginRef.current).getMenu) === null || _this$pluginRef$curre2 === void 0 ? void 0 : _this$pluginRef$curre2.call(_this$pluginRef$curre3, {
456
+ data: obj
457
+ })) !== null && _this$pluginRef$curre !== void 0 ? _this$pluginRef$curre : [];
385
458
  }
386
459
 
387
460
  isColumnSelectionValid(tableColumn) {
@@ -389,7 +462,7 @@ export class IrisGridPanel extends PureComponent {
389
462
  columnSelectionValidator
390
463
  } = this.props;
391
464
 
392
- if (columnSelectionValidator) {
465
+ if (columnSelectionValidator && tableColumn) {
393
466
  return columnSelectionValidator(this, tableColumn);
394
467
  }
395
468
 
@@ -410,7 +483,7 @@ export class IrisGridPanel extends PureComponent {
410
483
  onStateChange
411
484
  } = this.props;
412
485
  glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);
413
- onStateChange(irisGridState, gridState);
486
+ onStateChange === null || onStateChange === void 0 ? void 0 : onStateChange(irisGridState, gridState);
414
487
  }
415
488
 
416
489
  handlePluginStateChange(pluginState) {
@@ -436,6 +509,7 @@ export class IrisGridPanel extends PureComponent {
436
509
  if (isModelReady) {
437
510
  this.sendColumnsChange(event.detail);
438
511
  } else {
512
+ assertNotNull(model);
439
513
  this.initModelQueue(model, modelQueue);
440
514
  }
441
515
  }
@@ -464,12 +538,10 @@ export class IrisGridPanel extends PureComponent {
464
538
  }
465
539
  /**
466
540
  * Create a chart with the specified settings
467
- * @param {ChartBuilderSettings} settings The settings from the chart builder
468
- * @param {string} settings.type The settings from the chart builder
469
- * @param {string[]} settings.series The names of the series
470
- * @param {string} xAxis The xAxis for this chart
471
- * @param {boolean} isLinked Whether this chart should be linked or not
472
- * @param {IrisGridModel} model The IrisGridModel object
541
+ * @param settings The settings from the chart builder
542
+ * @param settings.type The settings from the chart builder
543
+ * @param settings.series The names of the series
544
+ * @param model The IrisGridModel object
473
545
  */
474
546
 
475
547
 
@@ -489,7 +561,12 @@ export class IrisGridPanel extends PureComponent {
489
561
  panelState
490
562
  } = this.state;
491
563
  var sourcePanelId = LayoutUtils.getIdFromPanel(this);
492
- var tableSettings = IrisGridUtils.extractTableSettings(panelState, inputFilters);
564
+ var tableSettings;
565
+
566
+ if (panelState) {
567
+ tableSettings = IrisGridUtils.extractTableSettings(panelState, inputFilters);
568
+ }
569
+
493
570
  glEventHub.emit(IrisGridEvent.CREATE_CHART, {
494
571
  metadata: {
495
572
  settings,
@@ -497,7 +574,7 @@ export class IrisGridPanel extends PureComponent {
497
574
  table,
498
575
  tableSettings
499
576
  },
500
- table: model.table
577
+ table: isIrisGridTableModelTemplate(model) ? model.table : undefined
501
578
  });
502
579
  });
503
580
  }
@@ -566,7 +643,7 @@ export class IrisGridPanel extends PureComponent {
566
643
  glEventHub,
567
644
  loadPlugin
568
645
  } = this.props;
569
- this.modelPromise = null; // Custom columns at this point already initialized, can load state
646
+ this.modelPromise = undefined; // Custom columns at this point already initialized, can load state
570
647
 
571
648
  this.loadPanelState(model);
572
649
  this.setState({
@@ -578,14 +655,15 @@ export class IrisGridPanel extends PureComponent {
578
655
  table
579
656
  } = model;
580
657
  var {
581
- pluginName
658
+ pluginName: _pluginName
582
659
  } = table;
583
660
 
584
- if (pluginName) {
585
- if (loadPlugin && pluginName) {
586
- var Plugin = loadPlugin(pluginName);
661
+ if (_pluginName) {
662
+ if (loadPlugin && _pluginName) {
663
+ var _Plugin = loadPlugin(_pluginName);
664
+
587
665
  this.setState({
588
- Plugin
666
+ Plugin: _Plugin
589
667
  });
590
668
  }
591
669
  }
@@ -650,9 +728,11 @@ export class IrisGridPanel extends PureComponent {
650
728
  return null;
651
729
  }
652
730
 
731
+ assertNotNull(irisGrid);
653
732
  var {
654
733
  metrics
655
734
  } = irisGrid.state;
735
+ assertNotNull(metrics);
656
736
  var {
657
737
  columnHeaderHeight,
658
738
  visibleColumnXs,
@@ -660,7 +740,9 @@ export class IrisGridPanel extends PureComponent {
660
740
  right,
661
741
  columnHeaderMaxDepth
662
742
  } = metrics;
663
- var visibleIndex = irisGrid.getVisibleColumn(model.getColumnIndexByName(columnName));
743
+ var columnIndex = model.getColumnIndexByName(columnName);
744
+ assertNotNull(columnIndex);
745
+ var visibleIndex = irisGrid.getVisibleColumn(columnIndex);
664
746
  var columnX = visibleColumnXs.get(visibleIndex) || 0;
665
747
  var columnWidth = visibleColumnWidths.get(visibleIndex) || 0;
666
748
  var x = Math.max(rect.left, Math.min(visibleIndex > right ? rect.right : rect.left + columnX + columnWidth * 0.5, rect.right));
@@ -701,6 +783,7 @@ export class IrisGridPanel extends PureComponent {
701
783
  return;
702
784
  }
703
785
 
786
+ assertNotNull(model);
704
787
  var {
705
788
  columns,
706
789
  formatter
@@ -751,8 +834,8 @@ export class IrisGridPanel extends PureComponent {
751
834
 
752
835
  try {
753
836
  var {
754
- gridState,
755
- irisGridState,
837
+ gridState: _gridState,
838
+ irisGridState: _irisGridState2,
756
839
  irisGridPanelState
757
840
  } = panelState;
758
841
 
@@ -778,7 +861,6 @@ export class IrisGridPanel extends PureComponent {
778
861
  } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);
779
862
  var {
780
863
  advancedFilters,
781
- advancedSettings,
782
864
  customColumns,
783
865
  customColumnFormatMap,
784
866
  isFilterBarShown,
@@ -797,16 +879,15 @@ export class IrisGridPanel extends PureComponent {
797
879
  pendingDataMap,
798
880
  frozenColumns,
799
881
  conditionalFormats
800
- } = IrisGridUtils.hydrateIrisGridState(model, _objectSpread(_objectSpread({}, irisGridState), irisGridStateOverrides));
882
+ } = IrisGridUtils.hydrateIrisGridState(model, _objectSpread(_objectSpread({}, _irisGridState2), irisGridStateOverrides));
801
883
  var {
802
884
  isStuckToBottom,
803
885
  isStuckToRight,
804
886
  movedColumns,
805
887
  movedRows
806
- } = IrisGridUtils.hydrateGridState(model, _objectSpread(_objectSpread({}, gridState), gridStateOverrides), irisGridState.customColumns);
888
+ } = IrisGridUtils.hydrateGridState(model, _objectSpread(_objectSpread({}, _gridState), gridStateOverrides), _irisGridState2.customColumns);
807
889
  this.setState({
808
890
  advancedFilters,
809
- advancedSettings,
810
891
  conditionalFormats,
811
892
  customColumns,
812
893
  customColumnFormatMap,
@@ -838,64 +919,6 @@ export class IrisGridPanel extends PureComponent {
838
919
  }
839
920
  }
840
921
 
841
- savePanelState() {
842
- var {
843
- irisGridState,
844
- gridState,
845
- pluginState
846
- } = this;
847
- var {
848
- onPanelStateUpdate
849
- } = this.props;
850
- var {
851
- model,
852
- panelState: oldPanelState,
853
- isSelectingPartition,
854
- partition,
855
- partitionColumn,
856
- advancedSettings
857
- } = this.state;
858
- var {
859
- advancedFilters,
860
- aggregationSettings,
861
- customColumnFormatMap,
862
- isFilterBarShown,
863
- quickFilters,
864
- customColumns,
865
- reverseType,
866
- rollupConfig,
867
- showSearchBar,
868
- searchValue,
869
- selectDistinctColumns,
870
- selectedSearchColumns,
871
- sorts,
872
- invertSearchColumns,
873
- metrics,
874
- pendingDataMap,
875
- frozenColumns,
876
- conditionalFormats
877
- } = irisGridState;
878
- var {
879
- userColumnWidths,
880
- userRowHeights
881
- } = metrics;
882
- var {
883
- isStuckToBottom,
884
- isStuckToRight,
885
- movedColumns,
886
- movedRows
887
- } = gridState;
888
- var panelState = this.getCachedPanelState(this.getDehydratedIrisGridPanelState(model, isSelectingPartition, partition, partitionColumn), this.getDehydratedIrisGridState(model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns, conditionalFormats), this.getDehydratedGridState(model, movedColumns, movedRows, isStuckToBottom, isStuckToRight), pluginState);
889
-
890
- if (panelState !== oldPanelState) {
891
- log.debug('Saving panel state', this, panelState);
892
- this.setState({
893
- panelState
894
- });
895
- onPanelStateUpdate(panelState);
896
- }
897
- }
898
-
899
922
  updateGrid() {
900
923
  var _this$irisGrid$curren, _this$irisGrid$curren2;
901
924
 
@@ -944,7 +967,6 @@ export class IrisGridPanel extends PureComponent {
944
967
  movedRows,
945
968
  partition,
946
969
  partitionColumn,
947
- queryName,
948
970
  quickFilters,
949
971
  reverseType,
950
972
  rollupConfig,
@@ -962,14 +984,13 @@ export class IrisGridPanel extends PureComponent {
962
984
  pendingDataMap,
963
985
  frozenColumns
964
986
  } = this.state;
965
- var errorMessage = error ? "Unable to open table. ".concat(error) : null;
987
+ var errorMessage = error ? "Unable to open table. ".concat(error) : undefined;
966
988
  var {
967
- table: name,
968
- querySerial
989
+ table: name
969
990
  } = metadata;
970
- var description = (_model$description = model === null || model === void 0 ? void 0 : model.description) !== null && _model$description !== void 0 ? _model$description : null;
991
+ var description = (_model$description = model === null || model === void 0 ? void 0 : model.description) !== null && _model$description !== void 0 ? _model$description : undefined;
971
992
  var pluginState = (_panelState$pluginSta = panelState === null || panelState === void 0 ? void 0 : panelState.pluginState) !== null && _panelState$pluginSta !== void 0 ? _panelState$pluginSta : null;
972
- var childrenContent = children !== null && children !== void 0 ? children : this.getPluginContent(Plugin, model === null || model === void 0 ? void 0 : model.table, user, workspace, pluginState);
993
+ var childrenContent = children !== null && children !== void 0 ? children : this.getPluginContent(Plugin, model, user, workspace, pluginState);
973
994
  var {
974
995
  permissions
975
996
  } = user;
@@ -991,8 +1012,6 @@ export class IrisGridPanel extends PureComponent {
991
1012
  onShow: this.handleShow,
992
1013
  onTabFocus: this.handleShow,
993
1014
  onTabClicked: this.handleTabClicked,
994
- queryName: queryName,
995
- querySerial: querySerial,
996
1015
  widgetName: name,
997
1016
  widgetType: "Table",
998
1017
  description: description,
@@ -1009,7 +1028,7 @@ export class IrisGridPanel extends PureComponent {
1009
1028
  }, "Number of Rows"), /*#__PURE__*/React.createElement("span", {
1010
1029
  className: "column-statistic-value"
1011
1030
  }, formattedRowCount)))
1012
- }, isModelReady && /*#__PURE__*/React.createElement(IrisGrid, {
1031
+ }, isModelReady && model && /*#__PURE__*/React.createElement(IrisGrid, {
1013
1032
  advancedFilters: advancedFilters,
1014
1033
  aggregationSettings: aggregationSettings,
1015
1034
  advancedSettings: advancedSettings,
@@ -1039,7 +1058,6 @@ export class IrisGridPanel extends PureComponent {
1039
1058
  userColumnWidths: userColumnWidths,
1040
1059
  userRowHeights: userRowHeights,
1041
1060
  model: model,
1042
- tableName: name,
1043
1061
  showSearchBar: showSearchBar,
1044
1062
  searchValue: searchValue,
1045
1063
  selectedSearchColumns: selectedSearchColumns,
@@ -1066,61 +1084,14 @@ export class IrisGridPanel extends PureComponent {
1066
1084
 
1067
1085
  }
1068
1086
 
1069
- _defineProperty(IrisGridPanel, "COMPONENT", 'IrisGridPanel');
1087
+ _defineProperty(IrisGridPanel, "defaultProps", {
1088
+ onStateChange: () => undefined,
1089
+ onPanelStateUpdate: () => undefined
1090
+ });
1070
1091
 
1071
- IrisGridPanel.propTypes = {
1072
- children: PropTypes.node,
1073
- glContainer: GLPropTypes.Container.isRequired,
1074
- glEventHub: GLPropTypes.EventHub.isRequired,
1075
- metadata: PropTypes.shape({
1076
- table: PropTypes.string.isRequired,
1077
- query: PropTypes.string,
1078
- querySerial: PropTypes.string
1079
- }).isRequired,
1080
- panelState: PropTypes.shape({
1081
- gridState: PropTypes.shape({}),
1082
- irisGridState: PropTypes.shape({
1083
- aggregationSettings: PropTypes.shape({}),
1084
- customColumns: PropTypes.arrayOf(PropTypes.string),
1085
- conditionalFormats: PropTypes.arrayOf(PropTypes.shape({})),
1086
- selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),
1087
- rollupConfig: PropTypes.shape({
1088
- columns: PropTypes.arrayOf(PropTypes.string).isRequired
1089
- }),
1090
- pendingDataMap: PropTypes.arrayOf(PropTypes.array),
1091
- frozenColumns: PropTypes.arrayOf(PropTypes.string)
1092
- }),
1093
- irisGridPanelState: PropTypes.shape({}),
1094
- pluginState: PropTypes.shape({})
1095
- }),
1096
- makeModel: PropTypes.func.isRequired,
1097
- inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,
1098
- links: UIPropTypes.Links.isRequired,
1099
- columnSelectionValidator: PropTypes.func,
1100
- onStateChange: PropTypes.func,
1101
- onPanelStateUpdate: PropTypes.func,
1102
- user: UIPropTypes.User.isRequired,
1103
- workspace: PropTypes.shape({}).isRequired,
1104
- settings: PropTypes.shape({
1105
- timeZone: PropTypes.string.isRequired
1106
- }).isRequired,
1107
- // Retrieve a download worker for optimizing exporting tables
1108
- getDownloadWorker: PropTypes.func,
1109
- // Load a plugin defined by the table
1110
- loadPlugin: PropTypes.func,
1111
- theme: PropTypes.shape({})
1112
- };
1113
- IrisGridPanel.defaultProps = {
1114
- children: null,
1115
- panelState: null,
1116
- columnSelectionValidator: null,
1117
- onStateChange: () => {},
1118
- onPanelStateUpdate: () => {},
1119
- getDownloadWorker: undefined,
1120
- loadPlugin: undefined,
1121
- theme: undefined
1122
- };
1123
- IrisGridPanel.displayName = 'IrisGridPanel';
1092
+ _defineProperty(IrisGridPanel, "displayName", 'IrisGridPanel');
1093
+
1094
+ _defineProperty(IrisGridPanel, "COMPONENT", 'IrisGridPanel');
1124
1095
 
1125
1096
  var mapStateToProps = (state, ownProps) => {
1126
1097
  var {