@deephaven/dashboard-core-plugins 0.42.1-beta.4 → 0.43.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 (183) hide show
  1. package/dist/prop-types/UIPropTypes.d.ts +1 -6
  2. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  3. package/package.json +22 -22
  4. package/dist/ChartBuilderPlugin.js +0 -54
  5. package/dist/ChartBuilderPlugin.js.map +0 -1
  6. package/dist/ChartPlugin.js +0 -66
  7. package/dist/ChartPlugin.js.map +0 -1
  8. package/dist/ConsolePlugin.js +0 -396
  9. package/dist/ConsolePlugin.js.map +0 -1
  10. package/dist/FilterPlugin.js +0 -205
  11. package/dist/FilterPlugin.js.map +0 -1
  12. package/dist/GridPlugin.js +0 -74
  13. package/dist/GridPlugin.js.map +0 -1
  14. package/dist/LinkerPlugin.js +0 -18
  15. package/dist/LinkerPlugin.js.map +0 -1
  16. package/dist/MarkdownPlugin.js +0 -87
  17. package/dist/MarkdownPlugin.js.map +0 -1
  18. package/dist/PandasPlugin.js +0 -66
  19. package/dist/PandasPlugin.js.map +0 -1
  20. package/dist/controls/ControlType.js +0 -10
  21. package/dist/controls/ControlType.js.map +0 -1
  22. package/dist/controls/dropdown-filter/DropdownFilter.css +0 -86
  23. package/dist/controls/dropdown-filter/DropdownFilter.css.map +0 -1
  24. package/dist/controls/dropdown-filter/DropdownFilter.js +0 -417
  25. package/dist/controls/dropdown-filter/DropdownFilter.js.map +0 -1
  26. package/dist/controls/input-filter/InputFilter.css +0 -75
  27. package/dist/controls/input-filter/InputFilter.css.map +0 -1
  28. package/dist/controls/input-filter/InputFilter.js +0 -291
  29. package/dist/controls/input-filter/InputFilter.js.map +0 -1
  30. package/dist/controls/markdown/MarkdownContainer.js +0 -30
  31. package/dist/controls/markdown/MarkdownContainer.js.map +0 -1
  32. package/dist/controls/markdown/MarkdownEditor.js +0 -52
  33. package/dist/controls/markdown/MarkdownEditor.js.map +0 -1
  34. package/dist/controls/markdown/MarkdownStartPage.js +0 -109
  35. package/dist/controls/markdown/MarkdownStartPage.js.map +0 -1
  36. package/dist/controls/markdown/MarkdownUtils.js +0 -23
  37. package/dist/controls/markdown/MarkdownUtils.js.map +0 -1
  38. package/dist/events/ChartEvent.js +0 -9
  39. package/dist/events/ChartEvent.js.map +0 -1
  40. package/dist/events/ConsoleEvent.js +0 -11
  41. package/dist/events/ConsoleEvent.js.map +0 -1
  42. package/dist/events/InputFilterEvent.js +0 -14
  43. package/dist/events/InputFilterEvent.js.map +0 -1
  44. package/dist/events/IrisGridEvent.js +0 -12
  45. package/dist/events/IrisGridEvent.js.map +0 -1
  46. package/dist/events/MarkdownEvent.js +0 -4
  47. package/dist/events/MarkdownEvent.js.map +0 -1
  48. package/dist/events/NotebookEvent.js +0 -15
  49. package/dist/events/NotebookEvent.js.map +0 -1
  50. package/dist/events/PQEvent.js +0 -9
  51. package/dist/events/PQEvent.js.map +0 -1
  52. package/dist/events/PandasEvent.js +0 -8
  53. package/dist/events/PandasEvent.js.map +0 -1
  54. package/dist/events/TabEvent.js +0 -12
  55. package/dist/events/TabEvent.js.map +0 -1
  56. package/dist/events/index.js +0 -9
  57. package/dist/events/index.js.map +0 -1
  58. package/dist/index.js +0 -17
  59. package/dist/index.js.map +0 -1
  60. package/dist/linker/ColumnSelectionValidator.js +0 -2
  61. package/dist/linker/ColumnSelectionValidator.js.map +0 -1
  62. package/dist/linker/Linker.js +0 -736
  63. package/dist/linker/Linker.js.map +0 -1
  64. package/dist/linker/LinkerLink.css +0 -142
  65. package/dist/linker/LinkerLink.css.map +0 -1
  66. package/dist/linker/LinkerLink.js +0 -314
  67. package/dist/linker/LinkerLink.js.map +0 -1
  68. package/dist/linker/LinkerOverlayContent.css +0 -63
  69. package/dist/linker/LinkerOverlayContent.css.map +0 -1
  70. package/dist/linker/LinkerOverlayContent.js +0 -343
  71. package/dist/linker/LinkerOverlayContent.js.map +0 -1
  72. package/dist/linker/LinkerUtils.js +0 -139
  73. package/dist/linker/LinkerUtils.js.map +0 -1
  74. package/dist/linker/ToolType.js +0 -5
  75. package/dist/linker/ToolType.js.map +0 -1
  76. package/dist/linker/index.js +0 -2
  77. package/dist/linker/index.js.map +0 -1
  78. package/dist/panels/ChartColumnSelectorOverlay.css +0 -11
  79. package/dist/panels/ChartColumnSelectorOverlay.css.map +0 -1
  80. package/dist/panels/ChartColumnSelectorOverlay.js +0 -38
  81. package/dist/panels/ChartColumnSelectorOverlay.js.map +0 -1
  82. package/dist/panels/ChartFilterOverlay.css +0 -22
  83. package/dist/panels/ChartFilterOverlay.css.map +0 -1
  84. package/dist/panels/ChartFilterOverlay.js +0 -90
  85. package/dist/panels/ChartFilterOverlay.js.map +0 -1
  86. package/dist/panels/ChartPanel.css +0 -38
  87. package/dist/panels/ChartPanel.css.map +0 -1
  88. package/dist/panels/ChartPanel.js +0 -971
  89. package/dist/panels/ChartPanel.js.map +0 -1
  90. package/dist/panels/ChartPanelUtils.js +0 -5
  91. package/dist/panels/ChartPanelUtils.js.map +0 -1
  92. package/dist/panels/CommandHistoryPanel.css +0 -19
  93. package/dist/panels/CommandHistoryPanel.css.map +0 -1
  94. package/dist/panels/CommandHistoryPanel.js +0 -195
  95. package/dist/panels/CommandHistoryPanel.js.map +0 -1
  96. package/dist/panels/ConsolePanel.css +0 -19
  97. package/dist/panels/ConsolePanel.css.map +0 -1
  98. package/dist/panels/ConsolePanel.js +0 -365
  99. package/dist/panels/ConsolePanel.js.map +0 -1
  100. package/dist/panels/DropdownFilterPanel.css +0 -6
  101. package/dist/panels/DropdownFilterPanel.css.map +0 -1
  102. package/dist/panels/DropdownFilterPanel.js +0 -685
  103. package/dist/panels/DropdownFilterPanel.js.map +0 -1
  104. package/dist/panels/FileExplorerPanel.css +0 -6
  105. package/dist/panels/FileExplorerPanel.css.map +0 -1
  106. package/dist/panels/FileExplorerPanel.js +0 -252
  107. package/dist/panels/FileExplorerPanel.js.map +0 -1
  108. package/dist/panels/FilterSetManager.css +0 -112
  109. package/dist/panels/FilterSetManager.css.map +0 -1
  110. package/dist/panels/FilterSetManager.js +0 -689
  111. package/dist/panels/FilterSetManager.js.map +0 -1
  112. package/dist/panels/FilterSetManagerPanel.css +0 -34
  113. package/dist/panels/FilterSetManagerPanel.css.map +0 -1
  114. package/dist/panels/FilterSetManagerPanel.js +0 -345
  115. package/dist/panels/FilterSetManagerPanel.js.map +0 -1
  116. package/dist/panels/InputFilterPanel.js +0 -232
  117. package/dist/panels/InputFilterPanel.js.map +0 -1
  118. package/dist/panels/IrisGridPanel.css +0 -24
  119. package/dist/panels/IrisGridPanel.css.map +0 -1
  120. package/dist/panels/IrisGridPanel.js +0 -1018
  121. package/dist/panels/IrisGridPanel.js.map +0 -1
  122. package/dist/panels/IrisGridPanelTooltip.js +0 -39
  123. package/dist/panels/IrisGridPanelTooltip.js.map +0 -1
  124. package/dist/panels/LogPanel.css +0 -15
  125. package/dist/panels/LogPanel.css.map +0 -1
  126. package/dist/panels/LogPanel.js +0 -110
  127. package/dist/panels/LogPanel.js.map +0 -1
  128. package/dist/panels/MarkdownNotebook.css +0 -107
  129. package/dist/panels/MarkdownNotebook.css.map +0 -1
  130. package/dist/panels/MarkdownNotebook.js +0 -232
  131. package/dist/panels/MarkdownNotebook.js.map +0 -1
  132. package/dist/panels/MarkdownPanel.css +0 -90
  133. package/dist/panels/MarkdownPanel.css.map +0 -1
  134. package/dist/panels/MarkdownPanel.js +0 -202
  135. package/dist/panels/MarkdownPanel.js.map +0 -1
  136. package/dist/panels/MockFileStorage.js +0 -70
  137. package/dist/panels/MockFileStorage.js.map +0 -1
  138. package/dist/panels/MockFileStorageTable.js +0 -80
  139. package/dist/panels/MockFileStorageTable.js.map +0 -1
  140. package/dist/panels/NotebookPanel.css +0 -44
  141. package/dist/panels/NotebookPanel.css.map +0 -1
  142. package/dist/panels/NotebookPanel.js +0 -1224
  143. package/dist/panels/NotebookPanel.js.map +0 -1
  144. package/dist/panels/PandasPanel.css +0 -15
  145. package/dist/panels/PandasPanel.css.map +0 -1
  146. package/dist/panels/PandasPanel.js +0 -86
  147. package/dist/panels/PandasPanel.js.map +0 -1
  148. package/dist/panels/Panel.js +0 -314
  149. package/dist/panels/Panel.js.map +0 -1
  150. package/dist/panels/PanelContextMenu.js +0 -126
  151. package/dist/panels/PanelContextMenu.js.map +0 -1
  152. package/dist/panels/RenameDialog.js +0 -156
  153. package/dist/panels/RenameDialog.js.map +0 -1
  154. package/dist/panels/WidgetPanel.css +0 -17
  155. package/dist/panels/WidgetPanel.css.map +0 -1
  156. package/dist/panels/WidgetPanel.js +0 -189
  157. package/dist/panels/WidgetPanel.js.map +0 -1
  158. package/dist/panels/WidgetPanelTooltip.css +0 -40
  159. package/dist/panels/WidgetPanelTooltip.css.map +0 -1
  160. package/dist/panels/WidgetPanelTooltip.js +0 -49
  161. package/dist/panels/WidgetPanelTooltip.js.map +0 -1
  162. package/dist/panels/index.js +0 -22
  163. package/dist/panels/index.js.map +0 -1
  164. package/dist/prop-types/CommonPropTypes.js +0 -9
  165. package/dist/prop-types/CommonPropTypes.js.map +0 -1
  166. package/dist/prop-types/UIPropTypes.js +0 -47
  167. package/dist/prop-types/UIPropTypes.js.map +0 -1
  168. package/dist/prop-types/index.js +0 -3
  169. package/dist/prop-types/index.js.map +0 -1
  170. package/dist/redux/actionTypes.js +0 -3
  171. package/dist/redux/actionTypes.js.map +0 -1
  172. package/dist/redux/actions.js +0 -88
  173. package/dist/redux/actions.js.map +0 -1
  174. package/dist/redux/index.js +0 -10
  175. package/dist/redux/index.js.map +0 -1
  176. package/dist/redux/reducers/connection.js +0 -7
  177. package/dist/redux/reducers/connection.js.map +0 -1
  178. package/dist/redux/reducers/index.js +0 -5
  179. package/dist/redux/reducers/index.js.map +0 -1
  180. package/dist/redux/reducers/sessionWrapper.js +0 -7
  181. package/dist/redux/reducers/sessionWrapper.js.map +0 -1
  182. package/dist/redux/selectors.js +0 -92
  183. package/dist/redux/selectors.js.map +0 -1
@@ -1,1018 +0,0 @@
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
- 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; }
3
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
- // Wrapper for the IrisGrid for use in a golden layout container
7
- // Will probably need to handle window popping out from golden layout here.
8
- import React, { PureComponent } from 'react';
9
- import memoize from 'memoize-one';
10
- import { connect } from 'react-redux';
11
- import debounce from 'lodash.debounce';
12
- import { DEFAULT_DASHBOARD_ID, LayoutUtils } from '@deephaven/dashboard';
13
- import { AdvancedSettings, IrisGrid, IrisGridModel, IrisGridUtils, IrisGridTableModel, isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
14
- import { TableUtils } from '@deephaven/jsapi-utils';
15
- import Log from '@deephaven/log';
16
- import { getSettings, getUser, getWorkspace } from '@deephaven/redux';
17
- import { assertNotNull, PromiseUtils } from '@deephaven/utils';
18
- import { ContextMenuRoot } from '@deephaven/components';
19
- import { ConsoleEvent, InputFilterEvent, IrisGridEvent } from "../events/index.js";
20
- import { getInputFiltersForDashboard, getLinksForDashboard, getColumnSelectionValidatorForDashboard } from "../redux/index.js";
21
- import WidgetPanel from "./WidgetPanel.js";
22
- import "./IrisGridPanel.css";
23
- import IrisGridPanelTooltip from "./IrisGridPanelTooltip.js";
24
- var log = Log.module('IrisGridPanel');
25
- var DEBOUNCE_PANEL_STATE_UPDATE = 500;
26
- var PLUGIN_COMPONENTS = {
27
- IrisGrid,
28
- IrisGridTableModel,
29
- ContextMenuRoot
30
- };
31
- export class IrisGridPanel extends PureComponent {
32
- constructor(props) {
33
- super(props);
34
- _defineProperty(this, "irisGrid", void 0);
35
- _defineProperty(this, "pluginRef", void 0);
36
- _defineProperty(this, "modelPromise", void 0);
37
- _defineProperty(this, "irisGridState", void 0);
38
- _defineProperty(this, "gridState", void 0);
39
- _defineProperty(this, "pluginState", void 0);
40
- _defineProperty(this, "irisGridUtils", void 0);
41
- _defineProperty(this, "getGridInputFilters", memoize((columns, inputFilters) => IrisGridUtils.getInputFiltersForColumns(columns,
42
- // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.
43
- inputFilters.filter(_ref => {
44
- var {
45
- value,
46
- excludePanelIds
47
- } = _ref;
48
- var id = LayoutUtils.getIdFromPanel(this);
49
- return value != null && (excludePanelIds == null || id != null && !excludePanelIds.includes(id));
50
- }))));
51
- _defineProperty(this, "getAlwaysFetchColumns", memoize((dashboardLinks, pluginFetchColumns) => {
52
- var id = LayoutUtils.getIdFromPanel(this);
53
- // Always fetch columns which are the start/source of a link or columns specified by a plugin
54
- var columnSet = new Set(pluginFetchColumns);
55
- for (var i = 0; i < dashboardLinks.length; i += 1) {
56
- var {
57
- start
58
- } = dashboardLinks[i];
59
- if (start != null && start.panelId === id) {
60
- columnSet.add(start.columnName);
61
- }
62
- }
63
- return [...columnSet];
64
- }));
65
- _defineProperty(this, "getPluginContent", memoize((Plugin, model, user, workspace, pluginState) => {
66
- if (!model || !isIrisGridTableModelTemplate(model) || Plugin == null || model.table == null) {
67
- return null;
68
- }
69
- return /*#__PURE__*/React.createElement("div", {
70
- className: "iris-grid-plugin"
71
- }, /*#__PURE__*/React.createElement(Plugin, {
72
- ref: this.pluginRef,
73
- filter: this.handlePluginFilter
74
- // onFilter is deprecated
75
- ,
76
- onFilter: this.handlePluginFilter,
77
- fetchColumns: this.handlePluginFetchColumns
78
- // onFetchColumns is deprecated
79
- ,
80
- onFetchColumns: this.handlePluginFetchColumns,
81
- table: model.table,
82
- user: user,
83
- panel: this,
84
- workspace: workspace,
85
- components: PLUGIN_COMPONENTS,
86
- onStateChange: this.handlePluginStateChange,
87
- pluginState: pluginState
88
- }));
89
- }));
90
- _defineProperty(this, "getDehydratedIrisGridPanelState", memoize((model, isSelectingPartition, partition, partitionColumn, advancedSettings) => IrisGridUtils.dehydrateIrisGridPanelState(model, {
91
- isSelectingPartition,
92
- partition,
93
- partitionColumn,
94
- advancedSettings
95
- })));
96
- _defineProperty(this, "getDehydratedIrisGridState", memoize((model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, pendingDataMap, frozenColumns, conditionalFormats, columnHeaderGroups) => {
97
- assertNotNull(this.irisGridUtils);
98
- return this.irisGridUtils.dehydrateIrisGridState(model, {
99
- advancedFilters,
100
- aggregationSettings,
101
- customColumnFormatMap,
102
- isFilterBarShown,
103
- metrics: {
104
- userColumnWidths,
105
- userRowHeights
106
- },
107
- quickFilters,
108
- customColumns,
109
- reverseType,
110
- rollupConfig,
111
- showSearchBar,
112
- searchValue,
113
- selectDistinctColumns,
114
- selectedSearchColumns,
115
- sorts,
116
- invertSearchColumns,
117
- pendingDataMap,
118
- frozenColumns,
119
- conditionalFormats,
120
- columnHeaderGroups
121
- });
122
- }));
123
- _defineProperty(this, "getDehydratedGridState", memoize((model, movedColumns, movedRows, isStuckToBottom, isStuckToRight) => IrisGridUtils.dehydrateGridState(model, {
124
- isStuckToBottom,
125
- isStuckToRight,
126
- movedColumns,
127
- movedRows
128
- })));
129
- _defineProperty(this, "getCachedPanelState", memoize((irisGridPanelState, irisGridState, gridState, pluginState) => ({
130
- irisGridPanelState,
131
- irisGridState,
132
- gridState,
133
- pluginState
134
- })));
135
- _defineProperty(this, "savePanelState", debounce(() => {
136
- var {
137
- irisGridState,
138
- gridState,
139
- pluginState
140
- } = this;
141
- assertNotNull(irisGridState);
142
- var {
143
- onPanelStateUpdate
144
- } = this.props;
145
- var {
146
- model,
147
- panelState: oldPanelState,
148
- isSelectingPartition,
149
- partition,
150
- partitionColumn,
151
- advancedSettings
152
- } = this.state;
153
- var {
154
- advancedFilters,
155
- aggregationSettings,
156
- customColumnFormatMap,
157
- isFilterBarShown,
158
- quickFilters,
159
- customColumns,
160
- reverseType,
161
- rollupConfig,
162
- showSearchBar,
163
- searchValue,
164
- selectDistinctColumns,
165
- selectedSearchColumns,
166
- sorts,
167
- invertSearchColumns,
168
- metrics,
169
- pendingDataMap,
170
- frozenColumns,
171
- conditionalFormats,
172
- columnHeaderGroups
173
- } = irisGridState;
174
- assertNotNull(model);
175
- assertNotNull(metrics);
176
- var {
177
- userColumnWidths,
178
- userRowHeights
179
- } = metrics;
180
- assertNotNull(gridState);
181
- var {
182
- isStuckToBottom,
183
- isStuckToRight,
184
- movedColumns,
185
- movedRows
186
- } = gridState;
187
- var panelState = this.getCachedPanelState(this.getDehydratedIrisGridPanelState(model, isSelectingPartition, partition, partitionColumn, advancedSettings), this.getDehydratedIrisGridState(model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, pendingDataMap, frozenColumns, conditionalFormats, columnHeaderGroups), this.getDehydratedGridState(model, movedColumns, movedRows, isStuckToBottom, isStuckToRight), pluginState);
188
- if (panelState !== oldPanelState) {
189
- log.debug('Saving panel state', this, panelState);
190
- this.setState({
191
- panelState
192
- });
193
- onPanelStateUpdate === null || onPanelStateUpdate === void 0 ? void 0 : onPanelStateUpdate(panelState);
194
- }
195
- }, DEBOUNCE_PANEL_STATE_UPDATE));
196
- this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(this);
197
- this.handleColumnsChanged = this.handleColumnsChanged.bind(this);
198
- this.handleTableChanged = this.handleTableChanged.bind(this);
199
- this.handleColumnSelected = this.handleColumnSelected.bind(this);
200
- this.handleDataSelected = this.handleDataSelected.bind(this);
201
- this.handleError = this.handleError.bind(this);
202
- this.handleGridStateChange = this.handleGridStateChange.bind(this);
203
- this.handlePluginStateChange = this.handlePluginStateChange.bind(this);
204
- this.handlePartitionAppend = this.handlePartitionAppend.bind(this);
205
- this.handleCreateChart = this.handleCreateChart.bind(this);
206
- this.handleResize = this.handleResize.bind(this);
207
- this.handleShow = this.handleShow.bind(this);
208
- this.handleTabClicked = this.handleTabClicked.bind(this);
209
- this.handleDisconnect = this.handleDisconnect.bind(this);
210
- this.handleReconnect = this.handleReconnect.bind(this);
211
- this.handleLoadSuccess = this.handleLoadSuccess.bind(this);
212
- this.handleLoadError = this.handleLoadError.bind(this);
213
- this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);
214
- this.handleContextMenu = this.handleContextMenu.bind(this);
215
- this.handlePluginFilter = this.handlePluginFilter.bind(this);
216
- this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);
217
- this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
218
- this.irisGrid = /*#__PURE__*/React.createRef();
219
- this.pluginRef = /*#__PURE__*/React.createRef();
220
- var {
221
- panelState: _panelState
222
- } = props;
223
- this.pluginState = null;
224
- this.irisGridUtils = null;
225
- this.state = {
226
- error: null,
227
- isDisconnected: false,
228
- isLoaded: false,
229
- isLoading: true,
230
- isModelReady: false,
231
- model: undefined,
232
- // State is hydrated from panel state when table is loaded
233
- advancedFilters: new Map(),
234
- aggregationSettings: {
235
- aggregations: [],
236
- showOnTop: false
237
- },
238
- advancedSettings: new Map(AdvancedSettings.DEFAULTS),
239
- customColumns: [],
240
- customColumnFormatMap: new Map(),
241
- isFilterBarShown: false,
242
- quickFilters: new Map(),
243
- sorts: [],
244
- userColumnWidths: new Map(),
245
- userRowHeights: new Map(),
246
- reverseType: TableUtils.REVERSE_TYPE.NONE,
247
- movedColumns: [],
248
- movedRows: [],
249
- isSelectingPartition: false,
250
- partition: null,
251
- partitionColumn: null,
252
- rollupConfig: undefined,
253
- showSearchBar: false,
254
- searchValue: '',
255
- selectedSearchColumns: undefined,
256
- invertSearchColumns: true,
257
- Plugin: undefined,
258
- pluginFilters: [],
259
- pluginFetchColumns: [],
260
- modelQueue: [],
261
- pendingDataMap: new Map(),
262
- frozenColumns: undefined,
263
- // eslint-disable-next-line react/no-unused-state
264
- panelState: _panelState,
265
- // Dehydrated panel state that can load this panel
266
- irisGridStateOverrides: {},
267
- gridStateOverrides: {},
268
- isStuckToBottom: false,
269
- isStuckToRight: false,
270
- conditionalFormats: [],
271
- selectDistinctColumns: []
272
- };
273
- }
274
- componentDidMount() {
275
- this.initModel();
276
- }
277
- componentDidUpdate(_, prevState) {
278
- var {
279
- model
280
- } = this.state;
281
- if (model !== prevState.model) {
282
- if (prevState.model != null) {
283
- this.stopModelListening(prevState.model);
284
- prevState.model.close();
285
- }
286
- if (model != null) {
287
- this.startModelListening(model);
288
- }
289
- }
290
- }
291
- componentWillUnmount() {
292
- this.savePanelState.cancel();
293
- if (this.modelPromise != null) {
294
- this.modelPromise.cancel();
295
- this.modelPromise = undefined;
296
- }
297
- var {
298
- model
299
- } = this.state;
300
- if (model) {
301
- this.stopModelListening(model);
302
- model.close();
303
- }
304
- }
305
- getTableName() {
306
- var {
307
- metadata
308
- } = this.props;
309
- return metadata.table;
310
- }
311
- initModel() {
312
- this.setState({
313
- isModelReady: false,
314
- isLoading: true,
315
- error: null
316
- });
317
- var {
318
- makeModel
319
- } = this.props;
320
- if (this.modelPromise != null) {
321
- this.modelPromise.cancel();
322
- }
323
- this.modelPromise = PromiseUtils.makeCancelable(makeModel(), resolved => resolved.close());
324
- this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);
325
- }
326
- handleLoadSuccess(modelParam) {
327
- var model = modelParam;
328
- var {
329
- panelState,
330
- irisGridStateOverrides
331
- } = this.state;
332
- var modelQueue = [];
333
- this.irisGridUtils = new IrisGridUtils(model.dh);
334
- if (panelState != null) {
335
- var {
336
- irisGridState: _irisGridState
337
- } = panelState;
338
- var {
339
- aggregationSettings,
340
- customColumns,
341
- selectDistinctColumns = [],
342
- rollupConfig
343
- } = _objectSpread(_objectSpread({}, _irisGridState), irisGridStateOverrides);
344
- if (customColumns.length > 0) {
345
- modelQueue.push(m => {
346
- // eslint-disable-next-line no-param-reassign
347
- m.customColumns = customColumns;
348
- });
349
- }
350
- if (rollupConfig != null && rollupConfig.columns.length > 0) {
351
- // originalColumns might change by the time this model queue item is applied.
352
- // Instead of pushing a static object, push the function
353
- // that calculates the config based on the updated model state.
354
- modelQueue.push(m => {
355
- // eslint-disable-next-line no-param-reassign
356
- m.rollupConfig = IrisGridUtils.getModelRollupConfig(m.originalColumns, rollupConfig, aggregationSettings);
357
- });
358
- }
359
- if (selectDistinctColumns.length > 0) {
360
- modelQueue.push(m => {
361
- // eslint-disable-next-line no-param-reassign
362
- m.selectDistinctColumns = selectDistinctColumns;
363
- });
364
- }
365
- }
366
- this.setState({
367
- model,
368
- modelQueue
369
- });
370
- this.initModelQueue(model, modelQueue);
371
- }
372
- initModelQueue(modelParam, modelQueue) {
373
- var model = modelParam;
374
- if (modelQueue.length === 0) {
375
- this.modelInitialized(model);
376
- return;
377
- }
378
- var modelChange = modelQueue.shift();
379
- log.debug('initModelQueue', modelChange);
380
- // Apply next model change. Triggers columnschanged event.
381
- if (modelChange) {
382
- modelChange(model);
383
- }
384
- this.setState({
385
- modelQueue
386
- });
387
- }
388
- handleAdvancedSettingsChange(key, value) {
389
- log.debug('handleAdvancedSettingsChange', key, value);
390
- this.setState(_ref2 => {
391
- var {
392
- advancedSettings
393
- } = _ref2;
394
- return advancedSettings.get(key) === value ? null : {
395
- advancedSettings: new Map(advancedSettings).set(key, value)
396
- };
397
- });
398
- }
399
- handlePluginFilter(filters) {
400
- var _this$irisGridUtils$g, _this$irisGridUtils;
401
- var {
402
- model
403
- } = this.state;
404
- assertNotNull(model);
405
- var {
406
- columns,
407
- formatter
408
- } = model;
409
- var pluginFilters = (_this$irisGridUtils$g = (_this$irisGridUtils = this.irisGridUtils) === null || _this$irisGridUtils === void 0 ? void 0 : _this$irisGridUtils.getFiltersFromInputFilters(columns, filters, formatter.timeZone)) !== null && _this$irisGridUtils$g !== void 0 ? _this$irisGridUtils$g : [];
410
- this.setState({
411
- pluginFilters
412
- });
413
- }
414
- handlePluginFetchColumns(pluginFetchColumns) {
415
- this.setState({
416
- pluginFetchColumns
417
- });
418
- }
419
- handleContextMenu(obj) {
420
- var _this$pluginRef$curre, _this$pluginRef$curre2, _this$pluginRef$curre3;
421
- 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, obj)) !== null && _this$pluginRef$curre !== void 0 ? _this$pluginRef$curre : [];
422
- }
423
- isColumnSelectionValid(tableColumn) {
424
- var {
425
- columnSelectionValidator
426
- } = this.props;
427
- if (columnSelectionValidator && tableColumn) {
428
- return columnSelectionValidator(this, tableColumn);
429
- }
430
- return false;
431
- }
432
- handleGridStateChange(irisGridState, gridState) {
433
- this.irisGridState = irisGridState;
434
- this.gridState = gridState;
435
-
436
- // Grid sends it's first state change after it's finished loading
437
- this.setState({
438
- isLoaded: true,
439
- isLoading: false
440
- });
441
- this.savePanelState();
442
- var {
443
- glEventHub,
444
- onStateChange
445
- } = this.props;
446
- glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);
447
- onStateChange === null || onStateChange === void 0 ? void 0 : onStateChange(irisGridState, gridState);
448
- }
449
- handlePluginStateChange(pluginState) {
450
- var {
451
- irisGridState,
452
- gridState
453
- } = this;
454
- this.pluginState = pluginState;
455
- // Do not save if there is null state
456
- // The save will happen when the grid loads
457
- if (irisGridState !== null && gridState !== null) {
458
- this.savePanelState();
459
- }
460
- }
461
- handleColumnsChanged(event) {
462
- var {
463
- isModelReady,
464
- model,
465
- modelQueue
466
- } = this.state;
467
- if (isModelReady) {
468
- this.sendColumnsChange(event.detail);
469
- } else {
470
- assertNotNull(model);
471
- this.initModelQueue(model, modelQueue);
472
- }
473
- }
474
- handleTableChanged(event) {
475
- log.debug('handleTableChanged', event);
476
- var {
477
- glEventHub
478
- } = this.props;
479
- var {
480
- detail: table
481
- } = event;
482
- glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);
483
- }
484
- handlePartitionAppend(column, value) {
485
- var {
486
- glEventHub
487
- } = this.props;
488
- var {
489
- name
490
- } = column;
491
- var tableName = this.getTableName();
492
- var command = "".concat(tableName, " = ").concat(tableName, ".where(\"").concat(name, "=`").concat(value, "`\")");
493
- glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);
494
- }
495
-
496
- /**
497
- * Create a chart with the specified settings
498
- * @param settings The settings from the chart builder
499
- * @param settings.type The settings from the chart builder
500
- * @param settings.series The names of the series
501
- * @param model The IrisGridModel object
502
- */
503
- handleCreateChart(settings, model) {
504
- // Panel state is stored with the created chart, so flush it first
505
- this.savePanelState.flush();
506
- this.setState(() => null, () => {
507
- var {
508
- glEventHub,
509
- inputFilters,
510
- metadata
511
- } = this.props;
512
- var {
513
- table
514
- } = metadata;
515
- var {
516
- panelState
517
- } = this.state;
518
- var sourcePanelId = LayoutUtils.getIdFromPanel(this);
519
- var tableSettings;
520
- if (panelState) {
521
- tableSettings = IrisGridUtils.extractTableSettings(panelState, inputFilters);
522
- }
523
- glEventHub.emit(IrisGridEvent.CREATE_CHART, {
524
- metadata: {
525
- settings,
526
- sourcePanelId,
527
- table,
528
- tableSettings
529
- },
530
- table: isIrisGridTableModelTemplate(model) ? model.table : undefined
531
- });
532
- });
533
- }
534
- handleColumnSelected(column) {
535
- var {
536
- glEventHub
537
- } = this.props;
538
- glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);
539
- }
540
- handleDataSelected(row, dataMap) {
541
- var {
542
- glEventHub
543
- } = this.props;
544
- glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);
545
- }
546
- handleResize() {
547
- this.updateGrid();
548
- }
549
- handleShow() {
550
- this.updateGrid();
551
- }
552
- handleTabClicked() {
553
- if (this.irisGrid.current) {
554
- this.irisGrid.current.focus();
555
- }
556
- }
557
- handleError(error) {
558
- log.error(error);
559
- this.setState({
560
- error,
561
- isLoading: false
562
- });
563
- }
564
- handleDisconnect() {
565
- this.setState({
566
- error: new Error('Table disconnected'),
567
- isDisconnected: true,
568
- isLoading: false
569
- });
570
- }
571
- handleReconnect() {
572
- this.setState({
573
- isDisconnected: false,
574
- error: null
575
- });
576
- }
577
- handleLoadError(error) {
578
- if (PromiseUtils.isCanceled(error)) {
579
- return;
580
- }
581
- this.handleError(error);
582
- }
583
- modelInitialized(model) {
584
- var {
585
- glEventHub,
586
- loadPlugin
587
- } = this.props;
588
- this.modelPromise = undefined;
589
-
590
- // Custom columns at this point already initialized, can load state
591
- this.loadPanelState(model);
592
- this.setState({
593
- isModelReady: true
594
- });
595
- if (isIrisGridTableModelTemplate(model)) {
596
- var {
597
- table
598
- } = model;
599
- var {
600
- pluginName: _pluginName
601
- } = table;
602
- if (_pluginName !== '') {
603
- if (loadPlugin != null && _pluginName != null) {
604
- var _Plugin = loadPlugin(_pluginName);
605
- this.setState({
606
- Plugin: _Plugin
607
- });
608
- }
609
- }
610
- glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);
611
- }
612
- this.sendColumnsChange(model.columns);
613
- }
614
- handleClearAllFilters() {
615
- var irisGrid = this.irisGrid.current;
616
- var {
617
- isDisconnected
618
- } = this.state;
619
- if (irisGrid != null && !isDisconnected) {
620
- irisGrid.clearAllFilters();
621
- }
622
- }
623
- sendColumnsChange(columns) {
624
- log.debug2('sendColumnsChange', columns);
625
- var {
626
- glEventHub
627
- } = this.props;
628
- glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);
629
- }
630
- startModelListening(model) {
631
- model.addEventListener(IrisGridModel.EVENT.DISCONNECT, this.handleDisconnect);
632
- model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);
633
- model.addEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleColumnsChanged);
634
- model.addEventListener(IrisGridModel.EVENT.TABLE_CHANGED, this.handleTableChanged);
635
- }
636
- stopModelListening(model) {
637
- model.removeEventListener(IrisGridModel.EVENT.DISCONNECT, this.handleDisconnect);
638
- model.removeEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);
639
- model.removeEventListener(IrisGridModel.EVENT.COLUMNS_CHANGED, this.handleColumnsChanged);
640
- model.removeEventListener(IrisGridModel.EVENT.TABLE_CHANGED, this.handleTableChanged);
641
- }
642
- getCoordinateForColumn(columnName) {
643
- var _gridWrapper$getBound, _allColumnXs$get, _allColumnWidths$get;
644
- var {
645
- model
646
- } = this.state;
647
- if (!model) {
648
- return null;
649
- }
650
- var irisGrid = this.irisGrid.current;
651
- var {
652
- gridWrapper
653
- } = irisGrid || {};
654
- var rect = (_gridWrapper$getBound = gridWrapper === null || gridWrapper === void 0 ? void 0 : gridWrapper.getBoundingClientRect()) !== null && _gridWrapper$getBound !== void 0 ? _gridWrapper$getBound : null;
655
- if (rect == null || rect.width <= 0 || rect.height <= 0) {
656
- return null;
657
- }
658
- assertNotNull(irisGrid);
659
- var {
660
- metrics
661
- } = irisGrid.state;
662
- assertNotNull(metrics);
663
- var {
664
- columnHeaderHeight,
665
- allColumnXs,
666
- allColumnWidths,
667
- right,
668
- columnHeaderMaxDepth
669
- } = metrics;
670
- var columnIndex = model.getColumnIndexByName(columnName);
671
- assertNotNull(columnIndex);
672
- var visibleIndex = irisGrid.getVisibleColumn(columnIndex);
673
- var columnX = (_allColumnXs$get = allColumnXs.get(visibleIndex)) !== null && _allColumnXs$get !== void 0 ? _allColumnXs$get : 0;
674
- var columnWidth = (_allColumnWidths$get = allColumnWidths.get(visibleIndex)) !== null && _allColumnWidths$get !== void 0 ? _allColumnWidths$get : 0;
675
- var x = Math.max(rect.left, Math.min(visibleIndex > right ? rect.right : rect.left + columnX + columnWidth * 0.5, rect.right));
676
- var y = rect.top + columnHeaderHeight * columnHeaderMaxDepth;
677
- return [x, y];
678
- }
679
- setFilterMap(filterMap) {
680
- var irisGrid = this.irisGrid.current;
681
- if (irisGrid != null) {
682
- irisGrid.setFilterMap(filterMap);
683
- }
684
- }
685
- setAdvancedFilterMap(filterMap) {
686
- var irisGrid = this.irisGrid.current;
687
- if (irisGrid != null) {
688
- irisGrid.setAdvancedFilterMap(filterMap);
689
- }
690
- }
691
- setFilters(_ref3) {
692
- var {
693
- quickFilters,
694
- advancedFilters
695
- } = _ref3;
696
- log.debug('setFilters', quickFilters, advancedFilters);
697
- var {
698
- model,
699
- isDisconnected
700
- } = this.state;
701
- var irisGrid = this.irisGrid.current;
702
- if (irisGrid == null || isDisconnected) {
703
- log.debug('Ignore setFilters, model disconnected');
704
- return;
705
- }
706
- assertNotNull(model);
707
- var {
708
- columns,
709
- formatter
710
- } = model;
711
- var indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, quickFilters).filter(_ref4 => {
712
- var [columnIndex] = _ref4;
713
- return model.isFilterable(columnIndex);
714
- });
715
- var indexedAdvancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, advancedFilters).filter(_ref5 => {
716
- var [columnIndex] = _ref5;
717
- return model.isFilterable(columnIndex);
718
- });
719
- assertNotNull(this.irisGridUtils);
720
- irisGrid.clearAllFilters();
721
- irisGrid.setFilters({
722
- quickFilters: this.irisGridUtils.hydrateQuickFilters(columns, indexedQuickFilters, formatter.timeZone),
723
- advancedFilters: this.irisGridUtils.hydrateAdvancedFilters(columns, indexedAdvancedFilters, formatter.timeZone)
724
- });
725
- }
726
- setStateOverrides(overrides) {
727
- log.debug('setStateOverrides', overrides);
728
- var {
729
- irisGridState: irisGridStateOverrides,
730
- gridState: gridStateOverrides
731
- } = overrides;
732
- this.setState({
733
- irisGridStateOverrides,
734
- gridStateOverrides
735
- }, () => {
736
- this.initModel();
737
- });
738
- }
739
-
740
- // eslint-disable-next-line class-methods-use-this
741
- unsetFilterValue() {
742
- // IrisGridPanel retains the set value after the link is broken
743
- }
744
- loadPanelState(model) {
745
- var {
746
- panelState,
747
- irisGridStateOverrides: originalIrisGridStateOverrides,
748
- gridStateOverrides
749
- } = this.state;
750
- if (panelState == null) {
751
- return;
752
- }
753
- try {
754
- var {
755
- gridState: _gridState,
756
- irisGridState: _irisGridState2,
757
- irisGridPanelState
758
- } = panelState;
759
- var irisGridStateOverrides = _objectSpread({}, originalIrisGridStateOverrides);
760
- var {
761
- quickFilters: savedQuickFilters,
762
- advancedFilters: savedAdvancedFilters
763
- } = irisGridStateOverrides;
764
- if (savedQuickFilters) {
765
- irisGridStateOverrides.quickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, savedQuickFilters);
766
- }
767
- if (savedAdvancedFilters) {
768
- irisGridStateOverrides.advancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(model.columns, savedAdvancedFilters);
769
- }
770
- var {
771
- isSelectingPartition,
772
- partition,
773
- partitionColumn,
774
- advancedSettings
775
- } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);
776
- assertNotNull(this.irisGridUtils);
777
- var {
778
- advancedFilters,
779
- customColumns,
780
- customColumnFormatMap,
781
- isFilterBarShown,
782
- quickFilters,
783
- reverseType,
784
- rollupConfig,
785
- aggregationSettings,
786
- sorts,
787
- userColumnWidths,
788
- userRowHeights,
789
- showSearchBar,
790
- searchValue,
791
- selectDistinctColumns,
792
- selectedSearchColumns,
793
- invertSearchColumns,
794
- pendingDataMap,
795
- frozenColumns,
796
- conditionalFormats,
797
- columnHeaderGroups
798
- } = this.irisGridUtils.hydrateIrisGridState(model, _objectSpread(_objectSpread({}, _irisGridState2), irisGridStateOverrides));
799
- var {
800
- isStuckToBottom,
801
- isStuckToRight,
802
- movedColumns,
803
- movedRows
804
- } = IrisGridUtils.hydrateGridState(model, _objectSpread(_objectSpread({}, _gridState), gridStateOverrides), _irisGridState2.customColumns);
805
- this.setState({
806
- advancedFilters,
807
- advancedSettings,
808
- conditionalFormats,
809
- customColumns,
810
- customColumnFormatMap,
811
- isFilterBarShown,
812
- isSelectingPartition,
813
- movedColumns,
814
- movedRows,
815
- partition,
816
- partitionColumn,
817
- quickFilters,
818
- reverseType,
819
- rollupConfig,
820
- aggregationSettings,
821
- sorts,
822
- userColumnWidths,
823
- userRowHeights,
824
- showSearchBar,
825
- searchValue,
826
- selectDistinctColumns,
827
- selectedSearchColumns,
828
- invertSearchColumns,
829
- pendingDataMap,
830
- frozenColumns,
831
- isStuckToBottom,
832
- isStuckToRight,
833
- columnHeaderGroups
834
- });
835
- } catch (error) {
836
- log.error('loadPanelState failed to load panelState', panelState, error);
837
- }
838
- }
839
- updateGrid() {
840
- var _this$irisGrid$curren, _this$irisGrid$curren2;
841
- var grid = (_this$irisGrid$curren = (_this$irisGrid$curren2 = this.irisGrid.current) === null || _this$irisGrid$curren2 === void 0 ? void 0 : _this$irisGrid$curren2.grid) !== null && _this$irisGrid$curren !== void 0 ? _this$irisGrid$curren : null;
842
- if (!grid) return;
843
-
844
- // handle resize will verify state and draw and update
845
- grid.handleResize();
846
- }
847
- render() {
848
- var _model$description, _panelState$pluginSta;
849
- var {
850
- children,
851
- glContainer,
852
- glEventHub,
853
- columnSelectionValidator,
854
- getDownloadWorker,
855
- inputFilters,
856
- links,
857
- metadata,
858
- panelState,
859
- user,
860
- workspace,
861
- settings,
862
- theme
863
- } = this.props;
864
- var {
865
- advancedFilters,
866
- aggregationSettings,
867
- advancedSettings,
868
- conditionalFormats,
869
- customColumns,
870
- customColumnFormatMap,
871
- error,
872
- isDisconnected,
873
- isFilterBarShown,
874
- isSelectingPartition,
875
- isStuckToBottom,
876
- isStuckToRight,
877
- isLoaded,
878
- isLoading,
879
- isModelReady,
880
- model,
881
- movedColumns,
882
- movedRows,
883
- partition,
884
- partitionColumn,
885
- quickFilters,
886
- reverseType,
887
- rollupConfig,
888
- sorts,
889
- userColumnWidths,
890
- userRowHeights,
891
- showSearchBar,
892
- searchValue,
893
- selectDistinctColumns,
894
- selectedSearchColumns,
895
- invertSearchColumns,
896
- Plugin,
897
- pluginFilters,
898
- pluginFetchColumns,
899
- pendingDataMap,
900
- frozenColumns,
901
- columnHeaderGroups
902
- } = this.state;
903
- var errorMessage = error != null ? "Unable to open table. ".concat(error) : undefined;
904
- var {
905
- table: name
906
- } = metadata;
907
- var description = (_model$description = model === null || model === void 0 ? void 0 : model.description) !== null && _model$description !== void 0 ? _model$description : undefined;
908
- var pluginState = (_panelState$pluginSta = panelState === null || panelState === void 0 ? void 0 : panelState.pluginState) !== null && _panelState$pluginSta !== void 0 ? _panelState$pluginSta : null;
909
- var childrenContent = children !== null && children !== void 0 ? children : this.getPluginContent(Plugin, model, user, workspace, pluginState);
910
- var {
911
- permissions
912
- } = user;
913
- var {
914
- canCopy,
915
- canDownloadCsv
916
- } = permissions;
917
- return /*#__PURE__*/React.createElement(WidgetPanel, {
918
- errorMessage: errorMessage,
919
- isDisconnected: isDisconnected,
920
- isLoading: isLoading,
921
- isLoaded: isLoaded,
922
- className: "iris-grid-panel",
923
- glContainer: glContainer,
924
- glEventHub: glEventHub,
925
- onClearAllFilters: this.handleClearAllFilters,
926
- onResize: this.handleResize,
927
- onShow: this.handleShow,
928
- onTabFocus: this.handleShow,
929
- onTabClicked: this.handleTabClicked,
930
- widgetName: name,
931
- widgetType: "Table",
932
- description: description,
933
- componentPanel: this,
934
- renderTabTooltip: () => /*#__PURE__*/React.createElement(IrisGridPanelTooltip, {
935
- model: model,
936
- widgetName: name,
937
- glContainer: glContainer,
938
- description: description
939
- })
940
- }, isModelReady && model && /*#__PURE__*/React.createElement(IrisGrid, {
941
- advancedFilters: advancedFilters,
942
- aggregationSettings: aggregationSettings,
943
- advancedSettings: advancedSettings,
944
- alwaysFetchColumns: this.getAlwaysFetchColumns(links, pluginFetchColumns),
945
- columnAllowedCursor: "linker",
946
- columnNotAllowedCursor: "linker-not-allowed",
947
- customColumns: customColumns,
948
- customColumnFormatMap: customColumnFormatMap,
949
- columnSelectionValidator: this.isColumnSelectionValid,
950
- conditionalFormats: conditionalFormats,
951
- inputFilters: this.getGridInputFilters(model.columns, inputFilters),
952
- applyInputFiltersOnInit: panelState == null,
953
- isFilterBarShown: isFilterBarShown,
954
- isSelectingColumn: columnSelectionValidator != null,
955
- isSelectingPartition: isSelectingPartition,
956
- isStuckToBottom: isStuckToBottom,
957
- isStuckToRight: isStuckToRight,
958
- movedColumns: movedColumns,
959
- movedRows: movedRows,
960
- partition: partition,
961
- partitionColumn: partitionColumn,
962
- quickFilters: quickFilters,
963
- reverseType: reverseType,
964
- rollupConfig: rollupConfig,
965
- settings: settings,
966
- sorts: sorts,
967
- userColumnWidths: userColumnWidths,
968
- userRowHeights: userRowHeights,
969
- model: model,
970
- showSearchBar: showSearchBar,
971
- searchValue: searchValue,
972
- selectedSearchColumns: selectedSearchColumns,
973
- selectDistinctColumns: selectDistinctColumns,
974
- invertSearchColumns: invertSearchColumns,
975
- onColumnSelected: this.handleColumnSelected,
976
- onCreateChart: this.handleCreateChart,
977
- onDataSelected: this.handleDataSelected,
978
- onError: this.handleError,
979
- onPartitionAppend: this.handlePartitionAppend,
980
- onStateChange: this.handleGridStateChange,
981
- onContextMenu: this.handleContextMenu,
982
- onAdvancedSettingsChange: this.handleAdvancedSettingsChange,
983
- customFilters: pluginFilters,
984
- pendingDataMap: pendingDataMap,
985
- canCopy: canCopy,
986
- canDownloadCsv: canDownloadCsv,
987
- ref: this.irisGrid,
988
- getDownloadWorker: getDownloadWorker,
989
- frozenColumns: frozenColumns,
990
- theme: theme,
991
- columnHeaderGroups: columnHeaderGroups
992
- }, childrenContent));
993
- }
994
- }
995
- _defineProperty(IrisGridPanel, "defaultProps", {
996
- onStateChange: () => undefined,
997
- onPanelStateUpdate: () => undefined
998
- });
999
- _defineProperty(IrisGridPanel, "displayName", 'IrisGridPanel');
1000
- _defineProperty(IrisGridPanel, "COMPONENT", 'IrisGridPanel');
1001
- var mapStateToProps = (state, _ref6) => {
1002
- var {
1003
- localDashboardId = DEFAULT_DASHBOARD_ID
1004
- } = _ref6;
1005
- return {
1006
- inputFilters: getInputFiltersForDashboard(state, localDashboardId),
1007
- links: getLinksForDashboard(state, localDashboardId),
1008
- columnSelectionValidator: getColumnSelectionValidatorForDashboard(state, localDashboardId),
1009
- user: getUser(state),
1010
- workspace: getWorkspace(state),
1011
- settings: getSettings(state)
1012
- };
1013
- };
1014
- var ConnectedIrisGridPanel = connect(mapStateToProps, null, null, {
1015
- forwardRef: true
1016
- })(IrisGridPanel);
1017
- export default ConnectedIrisGridPanel;
1018
- //# sourceMappingURL=IrisGridPanel.js.map