@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.
- package/dist/ChartBuilderPlugin.d.ts +2 -2
- package/dist/ChartBuilderPlugin.d.ts.map +1 -1
- package/dist/ChartBuilderPlugin.js +6 -8
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/ChartPlugin.d.ts +2 -2
- package/dist/ChartPlugin.d.ts.map +1 -1
- package/dist/ChartPlugin.js +4 -8
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/ConsolePlugin.d.ts +2 -2
- package/dist/ConsolePlugin.d.ts.map +1 -1
- package/dist/ConsolePlugin.js +16 -62
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/FilterPlugin.d.ts +4 -4
- package/dist/FilterPlugin.d.ts.map +1 -1
- package/dist/FilterPlugin.js +6 -13
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/GridPlugin.d.ts +2 -2
- package/dist/GridPlugin.d.ts.map +1 -1
- package/dist/GridPlugin.js +4 -8
- package/dist/GridPlugin.js.map +1 -1
- package/dist/LinkerPlugin.d.ts +2 -2
- package/dist/LinkerPlugin.d.ts.map +1 -1
- package/dist/LinkerPlugin.js +2 -2
- package/dist/LinkerPlugin.js.map +1 -1
- package/dist/MarkdownPlugin.d.ts +3 -3
- package/dist/MarkdownPlugin.d.ts.map +1 -1
- package/dist/MarkdownPlugin.js +4 -8
- package/dist/MarkdownPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts +2 -2
- package/dist/PandasPlugin.d.ts.map +1 -1
- package/dist/PandasPlugin.js +4 -8
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/controls/ControlType.js +0 -6
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts +2 -2
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js +7 -51
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.d.ts +2 -2
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +1 -31
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js +0 -3
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.d.ts +0 -2
- package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js +13 -20
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js +0 -11
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js +0 -7
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.js +0 -5
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.js +0 -7
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.js +0 -10
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.js +0 -8
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/MarkdownEvent.d.ts +1 -1
- package/dist/events/MarkdownEvent.js.map +1 -1
- package/dist/events/NotebookEvent.js +0 -10
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.js +0 -5
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.js +0 -4
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.js +0 -8
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/linker/ColumnSelectionValidator.d.ts +1 -1
- package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -1
- package/dist/linker/Linker.d.ts +5 -2
- package/dist/linker/Linker.d.ts.map +1 -1
- package/dist/linker/Linker.js +70 -119
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerLink.css +90 -25
- package/dist/linker/LinkerLink.css.map +1 -1
- package/dist/linker/LinkerLink.d.ts +21 -3
- package/dist/linker/LinkerLink.d.ts.map +1 -1
- package/dist/linker/LinkerLink.js +214 -23
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/linker/LinkerOverlayContent.css +0 -4
- package/dist/linker/LinkerOverlayContent.css.map +1 -1
- package/dist/linker/LinkerOverlayContent.d.ts +14 -3
- package/dist/linker/LinkerOverlayContent.d.ts.map +1 -1
- package/dist/linker/LinkerOverlayContent.js +78 -33
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/linker/LinkerUtils.d.ts +17 -10
- package/dist/linker/LinkerUtils.d.ts.map +1 -1
- package/dist/linker/LinkerUtils.js +9 -25
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/linker/ToolType.d.ts +2 -2
- package/dist/linker/ToolType.js.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.d.ts +5 -5
- package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js +4 -7
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.d.ts +5 -5
- package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
- package/dist/panels/ChartFilterOverlay.js +2 -7
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +8 -8
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +11 -150
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
- package/dist/panels/CommandHistoryPanel.js +1 -26
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +1 -1
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +12 -57
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +9 -9
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +21 -127
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.d.ts +4 -4
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
- package/dist/panels/FileExplorerPanel.js +4 -33
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.d.ts +1 -1
- package/dist/panels/FilterSetManager.d.ts.map +1 -1
- package/dist/panels/FilterSetManager.js +13 -86
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +10 -64
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/InputFilterPanel.d.ts.map +1 -1
- package/dist/panels/InputFilterPanel.js +8 -38
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +13 -13
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +24 -133
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/IrisGridPanelTooltip.d.ts +7 -7
- package/dist/panels/IrisGridPanelTooltip.d.ts.map +1 -1
- package/dist/panels/IrisGridPanelTooltip.js +2 -5
- package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
- package/dist/panels/LogPanel.js +4 -22
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebook.js +3 -30
- package/dist/panels/MarkdownNotebook.js.map +1 -1
- package/dist/panels/MarkdownPanel.js +2 -30
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/MockFileStorage.js +1 -14
- package/dist/panels/MockFileStorage.js.map +1 -1
- package/dist/panels/MockFileStorageTable.js +11 -30
- package/dist/panels/MockFileStorageTable.js.map +1 -1
- package/dist/panels/NotebookPanel.js +24 -182
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.js +1 -20
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +1 -1
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +2 -38
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.js +7 -29
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.js +2 -17
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +5 -22
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts +7 -7
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +7 -17
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/panels/index.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.js +0 -3
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/prop-types/UIPropTypes.d.ts +2 -2
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/prop-types/index.js.map +1 -1
- package/dist/redux/actionTypes.js.map +1 -1
- package/dist/redux/actions.js +8 -9
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/index.js.map +1 -1
- package/dist/redux/reducers/connection.js.map +1 -1
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/redux/selectors.js +10 -15
- package/dist/redux/selectors.js.map +1 -1
- 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
|
// Wrapper for the Console for use in a golden layout container
|
|
8
5
|
// Will probably need to handle window popping out from golden layout here.
|
|
9
6
|
import React, { PureComponent } from 'react';
|
|
@@ -28,11 +25,8 @@ var DEFAULT_PANEL_STATE = Object.freeze({
|
|
|
28
25
|
export class ConsolePanel extends PureComponent {
|
|
29
26
|
constructor(props) {
|
|
30
27
|
super(props);
|
|
31
|
-
|
|
32
28
|
_defineProperty(this, "consoleRef", void 0);
|
|
33
|
-
|
|
34
29
|
_defineProperty(this, "objectSubscriptionCleanup", void 0);
|
|
35
|
-
|
|
36
30
|
_defineProperty(this, "savePanelState", debounce(() => {
|
|
37
31
|
var {
|
|
38
32
|
consoleSettings,
|
|
@@ -42,13 +36,12 @@ export class ConsolePanel extends PureComponent {
|
|
|
42
36
|
consoleSettings,
|
|
43
37
|
itemIds: [...itemIds]
|
|
44
38
|
};
|
|
45
|
-
log.debug('Saving panel state', panelState);
|
|
46
|
-
|
|
39
|
+
log.debug('Saving panel state', panelState);
|
|
40
|
+
// eslint-disable-next-line react/no-unused-state
|
|
47
41
|
this.setState({
|
|
48
42
|
panelState
|
|
49
43
|
});
|
|
50
44
|
}, DEBOUNCE_PANEL_STATE_UPDATE));
|
|
51
|
-
|
|
52
45
|
this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);
|
|
53
46
|
this.handleOpenObject = this.handleOpenObject.bind(this);
|
|
54
47
|
this.handleCloseObject = this.handleCloseObject.bind(this);
|
|
@@ -60,9 +53,7 @@ export class ConsolePanel extends PureComponent {
|
|
|
60
53
|
var {
|
|
61
54
|
panelState: initialPanelState
|
|
62
55
|
} = props;
|
|
63
|
-
|
|
64
56
|
var _panelState = _objectSpread(_objectSpread({}, DEFAULT_PANEL_STATE), initialPanelState || {});
|
|
65
|
-
|
|
66
57
|
var {
|
|
67
58
|
consoleSettings: _consoleSettings,
|
|
68
59
|
itemIds: _itemIds
|
|
@@ -74,35 +65,30 @@ export class ConsolePanel extends PureComponent {
|
|
|
74
65
|
error: undefined,
|
|
75
66
|
// eslint-disable-next-line react/no-unused-state
|
|
76
67
|
panelState: _panelState // Dehydrated panel state that can load this panel
|
|
77
|
-
|
|
78
68
|
};
|
|
79
69
|
}
|
|
80
70
|
|
|
81
71
|
componentDidMount() {
|
|
82
72
|
var {
|
|
83
73
|
glEventHub
|
|
84
|
-
} = this.props;
|
|
74
|
+
} = this.props;
|
|
75
|
+
// Need to close the disconnected panels when we're first loaded,
|
|
85
76
|
// as they may have been saved with the dashboard
|
|
86
|
-
|
|
87
77
|
this.closeDisconnectedPanels();
|
|
88
78
|
glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);
|
|
89
79
|
this.subscribeToFieldUpdates();
|
|
90
80
|
}
|
|
91
|
-
|
|
92
81
|
componentDidUpdate(prevProps, prevState) {
|
|
93
82
|
var {
|
|
94
83
|
consoleSettings,
|
|
95
84
|
itemIds
|
|
96
85
|
} = this.state;
|
|
97
|
-
|
|
98
86
|
if (prevState.consoleSettings !== consoleSettings || prevState.itemIds !== itemIds) {
|
|
99
87
|
this.savePanelState();
|
|
100
88
|
}
|
|
101
89
|
}
|
|
102
|
-
|
|
103
90
|
componentWillUnmount() {
|
|
104
91
|
var _this$objectSubscript;
|
|
105
|
-
|
|
106
92
|
var {
|
|
107
93
|
glEventHub
|
|
108
94
|
} = this.props;
|
|
@@ -110,7 +96,6 @@ export class ConsolePanel extends PureComponent {
|
|
|
110
96
|
glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);
|
|
111
97
|
(_this$objectSubscript = this.objectSubscriptionCleanup) === null || _this$objectSubscript === void 0 ? void 0 : _this$objectSubscript.call(this);
|
|
112
98
|
}
|
|
113
|
-
|
|
114
99
|
subscribeToFieldUpdates() {
|
|
115
100
|
var {
|
|
116
101
|
sessionWrapper
|
|
@@ -128,20 +113,21 @@ export class ConsolePanel extends PureComponent {
|
|
|
128
113
|
updated,
|
|
129
114
|
created,
|
|
130
115
|
removed
|
|
131
|
-
} = updates;
|
|
116
|
+
} = updates;
|
|
132
117
|
|
|
118
|
+
// Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.
|
|
133
119
|
var objectsToRemove = [...updated, ...removed];
|
|
134
120
|
var newObjectMap = new Map(objectMap);
|
|
135
121
|
objectsToRemove.forEach(toRemove => {
|
|
136
122
|
var {
|
|
137
123
|
title
|
|
138
124
|
} = toRemove;
|
|
139
|
-
|
|
140
125
|
if (title !== undefined) {
|
|
141
126
|
newObjectMap.delete(title);
|
|
142
127
|
}
|
|
143
|
-
});
|
|
128
|
+
});
|
|
144
129
|
|
|
130
|
+
// Now add all the modified and updated widgets back in
|
|
145
131
|
var objectsToAdd = [...updated, ...created];
|
|
146
132
|
objectsToAdd.forEach(toAdd => {
|
|
147
133
|
if (toAdd.title !== undefined) {
|
|
@@ -154,7 +140,6 @@ export class ConsolePanel extends PureComponent {
|
|
|
154
140
|
});
|
|
155
141
|
});
|
|
156
142
|
}
|
|
157
|
-
|
|
158
143
|
setItemId(name, id) {
|
|
159
144
|
this.setState(_ref2 => {
|
|
160
145
|
var {
|
|
@@ -167,63 +152,50 @@ export class ConsolePanel extends PureComponent {
|
|
|
167
152
|
};
|
|
168
153
|
});
|
|
169
154
|
}
|
|
170
|
-
|
|
171
155
|
getItemId(name) {
|
|
172
156
|
var createIfNecessary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
173
157
|
var {
|
|
174
158
|
itemIds
|
|
175
159
|
} = this.state;
|
|
176
160
|
var id = itemIds.get(name);
|
|
177
|
-
|
|
178
161
|
if (id == null && createIfNecessary) {
|
|
179
162
|
id = shortid.generate();
|
|
180
163
|
this.setItemId(name, id);
|
|
181
164
|
}
|
|
182
|
-
|
|
183
165
|
return id;
|
|
184
166
|
}
|
|
185
|
-
|
|
186
167
|
handleTabFocus() {
|
|
187
168
|
var _this$consoleRef$curr;
|
|
188
|
-
|
|
189
169
|
(_this$consoleRef$curr = this.consoleRef.current) === null || _this$consoleRef$curr === void 0 ? void 0 : _this$consoleRef$curr.focus();
|
|
190
170
|
}
|
|
191
|
-
|
|
192
171
|
handlePanelMount(panel) {
|
|
193
172
|
var _panel$props, _panel$props2, _panel$props2$metadat;
|
|
194
|
-
|
|
195
173
|
var {
|
|
196
174
|
itemIds
|
|
197
175
|
} = this.state;
|
|
198
176
|
var panelId = panel === null || panel === void 0 ? void 0 : (_panel$props = panel.props) === null || _panel$props === void 0 ? void 0 : _panel$props.id;
|
|
199
177
|
var sourceId = panel === null || panel === void 0 ? void 0 : (_panel$props2 = panel.props) === null || _panel$props2 === void 0 ? void 0 : (_panel$props2$metadat = _panel$props2.metadata) === null || _panel$props2$metadat === void 0 ? void 0 : _panel$props2$metadat.sourcePanelId;
|
|
200
|
-
|
|
201
178
|
if (panelId && sourceId) {
|
|
202
179
|
// Check if the panel was created from a panel in this console
|
|
203
180
|
var pandelIds = new Set(itemIds.values());
|
|
204
|
-
|
|
205
181
|
if (pandelIds.has(sourceId)) {
|
|
206
182
|
// The Chart Panel does not have name so map panelId to panelId
|
|
207
183
|
this.setItemId(panelId, panelId);
|
|
208
184
|
}
|
|
209
185
|
}
|
|
210
186
|
}
|
|
211
|
-
|
|
212
187
|
handleFocusCommandHistory() {
|
|
213
188
|
var {
|
|
214
189
|
glEventHub
|
|
215
190
|
} = this.props;
|
|
216
191
|
glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);
|
|
217
192
|
}
|
|
218
|
-
|
|
219
193
|
handleResize() {
|
|
220
194
|
this.updateDimensions();
|
|
221
195
|
}
|
|
222
|
-
|
|
223
196
|
handleShow() {
|
|
224
197
|
this.updateDimensions();
|
|
225
198
|
}
|
|
226
|
-
|
|
227
199
|
handleOpenObject(object) {
|
|
228
200
|
var {
|
|
229
201
|
sessionWrapper
|
|
@@ -233,12 +205,10 @@ export class ConsolePanel extends PureComponent {
|
|
|
233
205
|
} = sessionWrapper;
|
|
234
206
|
this.openWidget(object, session);
|
|
235
207
|
}
|
|
236
|
-
|
|
237
208
|
handleCloseObject(object) {
|
|
238
209
|
var {
|
|
239
210
|
title
|
|
240
211
|
} = object;
|
|
241
|
-
|
|
242
212
|
if (title !== undefined) {
|
|
243
213
|
var id = this.getItemId(title, false);
|
|
244
214
|
var {
|
|
@@ -247,7 +217,6 @@ export class ConsolePanel extends PureComponent {
|
|
|
247
217
|
glEventHub.emit(PanelEvent.CLOSE, id);
|
|
248
218
|
}
|
|
249
219
|
}
|
|
250
|
-
|
|
251
220
|
handleSettingsChange(consoleSettings) {
|
|
252
221
|
var {
|
|
253
222
|
glEventHub
|
|
@@ -258,12 +227,11 @@ export class ConsolePanel extends PureComponent {
|
|
|
258
227
|
});
|
|
259
228
|
glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);
|
|
260
229
|
}
|
|
230
|
+
|
|
261
231
|
/**
|
|
262
232
|
* @param widget The widget to open
|
|
263
233
|
* @param session The session object
|
|
264
234
|
*/
|
|
265
|
-
|
|
266
|
-
|
|
267
235
|
openWidget(widget, session) {
|
|
268
236
|
var {
|
|
269
237
|
glEventHub
|
|
@@ -281,20 +249,17 @@ export class ConsolePanel extends PureComponent {
|
|
|
281
249
|
log.debug('openWidget', openOptions);
|
|
282
250
|
glEventHub.emit(PanelEvent.OPEN, openOptions);
|
|
283
251
|
}
|
|
284
|
-
|
|
285
252
|
addCommand(command) {
|
|
286
253
|
var _this$consoleRef$curr2;
|
|
287
|
-
|
|
288
254
|
var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
289
255
|
var execute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
290
256
|
(_this$consoleRef$curr2 = this.consoleRef.current) === null || _this$consoleRef$curr2 === void 0 ? void 0 : _this$consoleRef$curr2.addCommand(command, focus, execute);
|
|
291
257
|
}
|
|
258
|
+
|
|
292
259
|
/**
|
|
293
260
|
* Close the disconnected panels from this session
|
|
294
261
|
* @param force True to force the panels closed regardless of the current setting
|
|
295
262
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
263
|
closeDisconnectedPanels() {
|
|
299
264
|
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
300
265
|
var {
|
|
@@ -304,11 +269,9 @@ export class ConsolePanel extends PureComponent {
|
|
|
304
269
|
var {
|
|
305
270
|
isClosePanelsOnDisconnectEnabled = true
|
|
306
271
|
} = consoleSettings;
|
|
307
|
-
|
|
308
272
|
if (!isClosePanelsOnDisconnectEnabled && !force) {
|
|
309
273
|
return;
|
|
310
274
|
}
|
|
311
|
-
|
|
312
275
|
var panelIdsToClose = [...itemIds.values()];
|
|
313
276
|
var {
|
|
314
277
|
glEventHub
|
|
@@ -320,13 +283,10 @@ export class ConsolePanel extends PureComponent {
|
|
|
320
283
|
itemIds: new Map()
|
|
321
284
|
});
|
|
322
285
|
}
|
|
323
|
-
|
|
324
286
|
updateDimensions() {
|
|
325
287
|
var _this$consoleRef$curr3;
|
|
326
|
-
|
|
327
288
|
(_this$consoleRef$curr3 = this.consoleRef.current) === null || _this$consoleRef$curr3 === void 0 ? void 0 : _this$consoleRef$curr3.updateDimensions();
|
|
328
289
|
}
|
|
329
|
-
|
|
330
290
|
render() {
|
|
331
291
|
var {
|
|
332
292
|
commandHistoryStorage,
|
|
@@ -358,7 +318,7 @@ export class ConsolePanel extends PureComponent {
|
|
|
358
318
|
onShow: this.handleShow,
|
|
359
319
|
onTabFocus: this.handleTabFocus,
|
|
360
320
|
errorMessage: error != null ? "".concat(error) : undefined
|
|
361
|
-
},
|
|
321
|
+
}, session != null && /*#__PURE__*/React.createElement(Console, {
|
|
362
322
|
ref: this.consoleRef,
|
|
363
323
|
settings: consoleSettings,
|
|
364
324
|
session: session,
|
|
@@ -378,21 +338,16 @@ export class ConsolePanel extends PureComponent {
|
|
|
378
338
|
timeZone: timeZone,
|
|
379
339
|
objectMap: objectMap,
|
|
380
340
|
unzip: unzip
|
|
381
|
-
}))
|
|
341
|
+
}));
|
|
382
342
|
}
|
|
383
|
-
|
|
384
343
|
}
|
|
385
|
-
|
|
386
344
|
_defineProperty(ConsolePanel, "COMPONENT", 'ConsolePanel');
|
|
387
|
-
|
|
388
345
|
_defineProperty(ConsolePanel, "TITLE", 'Console');
|
|
389
|
-
|
|
390
346
|
var mapStateToProps = (state, ownProps) => ({
|
|
391
347
|
commandHistoryStorage: getCommandHistoryStorage(state),
|
|
392
348
|
sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),
|
|
393
349
|
timeZone: getTimeZone(state)
|
|
394
350
|
});
|
|
395
|
-
|
|
396
351
|
export default connect(mapStateToProps, null, null, {
|
|
397
352
|
forwardRef: true
|
|
398
353
|
})(ConsolePanel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","shortid","debounce","connect","Console","ConsoleConstants","HeapUsage","PanelEvent","Log","getCommandHistoryStorage","getTimeZone","assertNotNull","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","consoleRef","createRef","initialPanelState","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","flush","off","objectSubscriptionCleanup","sessionWrapper","session","updates","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","newItemIds","getItemId","createIfNecessary","get","generate","handleTabFocus","current","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","config","connection","sessionId","type","language","LANGUAGE_MAP","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent, ReactElement, RefObject } from 'react';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport {\n CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n} from '@deephaven/console';\nimport { PanelEvent } from '@deephaven/dashboard';\nimport { IdeSession, VariableDefinition } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getTimeZone,\n RootState,\n} from '@deephaven/redux';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper, SessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n glContainer: Container;\n glEventHub: EventEmitter;\n\n panelState?: PanelState;\n\n sessionWrapper: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props: ConsolePanelProps) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.consoleRef = React.createRef();\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name: string, createIfNecessary = true): string | undefined {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(object: VariableDefinition): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object: VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param widget The widget to open\n * @param session The session object\n */\n openWidget(widget: VariableDefinition, session: IdeSession): void {\n const { glEventHub } = this.props;\n const { title } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState = debounce((): void => {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n render(): ReactElement {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session, connection } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n <>\n {session != null && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div> </div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n <div> </div>\n <div>\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </div>\n <div> </div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </>\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","shortid","debounce","connect","Console","ConsoleConstants","HeapUsage","PanelEvent","Log","getCommandHistoryStorage","getTimeZone","assertNotNull","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","consoleRef","createRef","initialPanelState","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","flush","off","objectSubscriptionCleanup","sessionWrapper","session","updates","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","newItemIds","getItemId","createIfNecessary","get","generate","handleTabFocus","current","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","config","connection","sessionId","type","language","LANGUAGE_MAP","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent, ReactElement, RefObject } from 'react';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport {\n CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n} from '@deephaven/console';\nimport { PanelEvent } from '@deephaven/dashboard';\nimport { IdeSession, VariableDefinition } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getTimeZone,\n RootState,\n} from '@deephaven/redux';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper, SessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n glContainer: Container;\n glEventHub: EventEmitter;\n\n panelState?: PanelState;\n\n sessionWrapper: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props: ConsolePanelProps) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.consoleRef = React.createRef();\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name: string, createIfNecessary = true): string | undefined {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(object: VariableDefinition): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object: VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param widget The widget to open\n * @param session The session object\n */\n openWidget(widget: VariableDefinition, session: IdeSession): void {\n const { glEventHub } = this.props;\n const { title } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState = debounce((): void => {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n render(): ReactElement {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session, connection } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div> </div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n <div> </div>\n <div>\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </div>\n <div> </div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { Component, RefObject } from 'react';
|
|
2
|
-
import { Column, Row, TableTemplate } from '@deephaven/jsapi-shim';
|
|
2
|
+
import type { Column, Row, Table, TableTemplate } from '@deephaven/jsapi-shim';
|
|
3
3
|
import { DateTimeColumnFormatter, Formatter, FormattingRule } from '@deephaven/jsapi-utils';
|
|
4
4
|
import { Pending } from '@deephaven/utils';
|
|
5
5
|
import type { Container, EventEmitter } from '@deephaven/golden-layout';
|
|
6
6
|
import DropdownFilter, { DropdownFilterColumn } from '../controls/dropdown-filter/DropdownFilter';
|
|
7
7
|
import './DropdownFilterPanel.scss';
|
|
8
|
-
import { Link } from '../linker/LinkerUtils';
|
|
8
|
+
import type { Link, LinkPoint } from '../linker/LinkerUtils';
|
|
9
9
|
import { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';
|
|
10
10
|
interface PanelState {
|
|
11
11
|
name?: string;
|
|
@@ -52,7 +52,7 @@ declare class DropdownFilterPanel extends Component<DropdownFilterPanelProps, Dr
|
|
|
52
52
|
static MAX_TABLE_SIZE: number;
|
|
53
53
|
static DATETIME_FORMATTER: DateTimeColumnFormatter;
|
|
54
54
|
static SOURCE_COLUMN: Readonly<{
|
|
55
|
-
name:
|
|
55
|
+
name: "FilterSource";
|
|
56
56
|
type: null;
|
|
57
57
|
}>;
|
|
58
58
|
constructor(props: DropdownFilterPanelProps);
|
|
@@ -68,16 +68,16 @@ declare class DropdownFilterPanel extends Component<DropdownFilterPanelProps, Dr
|
|
|
68
68
|
getCoordinateForColumn(): [number, number] | null;
|
|
69
69
|
getSettingsErrorMessage(): string | undefined;
|
|
70
70
|
getPanelErrorMessage(): string | undefined;
|
|
71
|
-
getCachedPanelLinks: (
|
|
72
|
-
getCachedSource: (
|
|
73
|
-
getCachedSourceTable: (
|
|
74
|
-
getCachedSourceColumn: (
|
|
71
|
+
getCachedPanelLinks: (dashboardLinks: Link[], panel: DropdownFilterPanel) => Link[];
|
|
72
|
+
getCachedSource: (links: Link[]) => LinkPoint | undefined;
|
|
73
|
+
getCachedSourceTable: (panelTableMap: Map<string | string[], TableTemplate<Table>>, source: LinkPoint | undefined) => TableTemplate<Table> | null;
|
|
74
|
+
getCachedSourceColumn: (table: TableTemplate, source: LinkPoint | undefined) => Column | null;
|
|
75
75
|
getSource(props?: Readonly<DropdownFilterPanelProps> & Readonly<{
|
|
76
76
|
children?: React.ReactNode;
|
|
77
|
-
}>):
|
|
77
|
+
}>): LinkPoint | undefined;
|
|
78
78
|
getSourceTable(props?: Readonly<DropdownFilterPanelProps> & Readonly<{
|
|
79
79
|
children?: React.ReactNode;
|
|
80
|
-
}>):
|
|
80
|
+
}>): TableTemplate<Table> | null;
|
|
81
81
|
getValuesColumn(valuesTable: TableTemplate): Column | null;
|
|
82
82
|
startListeningToSource(sourceTable: TableTemplate): void;
|
|
83
83
|
stopListeningToSource(sourceTable: TableTemplate): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/DropdownFilterPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/DropdownFilterPanel.tsx"],"names":[],"mappings":"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"}
|