@deephaven/dashboard-core-plugins 0.22.3-beta.18 → 0.22.3-beta.21
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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.js +7 -51
- package/dist/controls/dropdown-filter/DropdownFilter.js.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.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/Linker.d.ts +3 -0
- 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 +20 -2
- 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 +11 -0
- 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 +9 -2
- 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.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 +4 -4
- 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.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.map +1 -1
- package/dist/panels/ConsolePanel.js +12 -57
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +16 -122
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.js +4 -33
- package/dist/panels/FileExplorerPanel.js.map +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.map +1 -1
- package/dist/panels/IrisGridPanel.js +24 -133
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/IrisGridPanelTooltip.d.ts +5 -5
- 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.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.js +2 -20
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts +5 -5
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +2 -4
- 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.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 -20
|
@@ -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 Notebook for use in a golden layout container
|
|
8
5
|
import React, { Component } from 'react';
|
|
9
6
|
import ReactDOM from 'react-dom';
|
|
@@ -26,60 +23,42 @@ import MarkdownNotebook from "./MarkdownNotebook.js";
|
|
|
26
23
|
import "./NotebookPanel.css";
|
|
27
24
|
var log = Log.module('NotebookPanel');
|
|
28
25
|
var DEBOUNCE_PANEL_STATE_UPDATE = 400;
|
|
29
|
-
|
|
30
26
|
class NotebookPanel extends Component {
|
|
31
27
|
static handleError(error) {
|
|
32
28
|
if (PromiseUtils.isCanceled(error)) {
|
|
33
29
|
return;
|
|
34
30
|
}
|
|
35
|
-
|
|
36
31
|
log.error(error);
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
static languageFromFileName(fileName) {
|
|
40
34
|
var extension = FileUtils.getExtension(fileName).toLowerCase();
|
|
41
|
-
|
|
42
35
|
switch (extension) {
|
|
43
36
|
case 'py':
|
|
44
37
|
case 'python':
|
|
45
38
|
return 'python';
|
|
46
|
-
|
|
47
39
|
case 'groovy':
|
|
48
40
|
return 'groovy';
|
|
49
|
-
|
|
50
41
|
case 'scala':
|
|
51
42
|
return 'scala';
|
|
52
|
-
|
|
53
43
|
default:
|
|
54
44
|
return null;
|
|
55
45
|
}
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
constructor(props) {
|
|
59
48
|
super(props);
|
|
60
|
-
|
|
61
49
|
_defineProperty(this, "pending", void 0);
|
|
62
|
-
|
|
63
50
|
_defineProperty(this, "debouncedSavePanelState", void 0);
|
|
64
|
-
|
|
65
51
|
_defineProperty(this, "debouncedLoad", void 0);
|
|
66
|
-
|
|
67
52
|
_defineProperty(this, "notebook", void 0);
|
|
68
|
-
|
|
69
53
|
_defineProperty(this, "tabTitleElement", void 0);
|
|
70
|
-
|
|
71
54
|
_defineProperty(this, "tabInitOnce", void 0);
|
|
72
|
-
|
|
73
55
|
_defineProperty(this, "shouldPromptClose", void 0);
|
|
74
|
-
|
|
75
56
|
_defineProperty(this, "editor", void 0);
|
|
76
|
-
|
|
77
57
|
_defineProperty(this, "getSettings", memoize((initialSettings, isMinimapEnabled) => _objectSpread(_objectSpread({}, initialSettings), {}, {
|
|
78
58
|
minimap: {
|
|
79
59
|
enabled: isMinimapEnabled
|
|
80
60
|
}
|
|
81
61
|
})));
|
|
82
|
-
|
|
83
62
|
_defineProperty(this, "getOverflowActions", memoize((isMinimapEnabled, isWordWrapEnabled) => [{
|
|
84
63
|
title: 'Find',
|
|
85
64
|
icon: dhFileSearch,
|
|
@@ -102,7 +81,6 @@ class NotebookPanel extends Component {
|
|
|
102
81
|
shortcut: SHORTCUTS.NOTEBOOK.WORDWRAP,
|
|
103
82
|
order: 30
|
|
104
83
|
}]));
|
|
105
|
-
|
|
106
84
|
this.handleBlur = this.handleBlur.bind(this);
|
|
107
85
|
this.handleCloseCancel = this.handleCloseCancel.bind(this);
|
|
108
86
|
this.handleCloseDiscard = this.handleCloseDiscard.bind(this);
|
|
@@ -160,20 +138,20 @@ class NotebookPanel extends Component {
|
|
|
160
138
|
var {
|
|
161
139
|
isPreview
|
|
162
140
|
} = props;
|
|
163
|
-
|
|
164
141
|
if (panelState != null) {
|
|
165
142
|
({
|
|
166
143
|
fileMetadata = fileMetadata,
|
|
167
144
|
isPreview = isPreview,
|
|
168
145
|
settings = settings
|
|
169
146
|
} = panelState);
|
|
170
|
-
}
|
|
171
|
-
// may need to implement some other indication that this notebook has never been saved
|
|
147
|
+
}
|
|
172
148
|
|
|
149
|
+
// Not showing the unsaved indicator for null file id and editor content === '',
|
|
150
|
+
// may need to implement some other indication that this notebook has never been saved
|
|
151
|
+
var hasFileId = fileMetadata != null && FileUtils.hasPath(fileMetadata.itemName);
|
|
173
152
|
|
|
174
|
-
|
|
153
|
+
// Unsaved if file id != null and content != null
|
|
175
154
|
// OR file id is null AND content is not null or ''
|
|
176
|
-
|
|
177
155
|
var isUnsaved = hasFileId === true && settings.value != null || !hasFileId && settings.value != null && settings.value.length > 0;
|
|
178
156
|
var changeCount = isUnsaved ? 1 : 0;
|
|
179
157
|
this.state = {
|
|
@@ -200,7 +178,6 @@ class NotebookPanel extends Component {
|
|
|
200
178
|
};
|
|
201
179
|
log.debug('constructor', props, this.state);
|
|
202
180
|
}
|
|
203
|
-
|
|
204
181
|
componentDidMount() {
|
|
205
182
|
var {
|
|
206
183
|
glContainer,
|
|
@@ -214,7 +191,6 @@ class NotebookPanel extends Component {
|
|
|
214
191
|
glEventHub.on(NotebookEvent.RENAME_FILE, this.handleRenameFile);
|
|
215
192
|
glContainer.on('tabClicked', this.handlePanelTabClick);
|
|
216
193
|
}
|
|
217
|
-
|
|
218
194
|
componentDidUpdate(prevProps, prevState) {
|
|
219
195
|
var {
|
|
220
196
|
isPreview,
|
|
@@ -226,21 +202,17 @@ class NotebookPanel extends Component {
|
|
|
226
202
|
var {
|
|
227
203
|
defaultNotebookSettings
|
|
228
204
|
} = this.props;
|
|
229
|
-
|
|
230
205
|
if (isPreview !== prevState.isPreview) {
|
|
231
206
|
this.setPreviewStatus();
|
|
232
207
|
}
|
|
233
|
-
|
|
234
208
|
if (wordWrap !== prevState.settings.wordWrap) {
|
|
235
209
|
this.updateEditorWordWrap();
|
|
236
210
|
this.debouncedSavePanelState();
|
|
237
211
|
}
|
|
238
|
-
|
|
239
212
|
if (defaultNotebookSettings.isMinimapEnabled !== prevProps.defaultNotebookSettings.isMinimapEnabled) {
|
|
240
213
|
this.updateEditorMinimap();
|
|
241
214
|
}
|
|
242
215
|
}
|
|
243
|
-
|
|
244
216
|
componentWillUnmount() {
|
|
245
217
|
this.debouncedSavePanelState.flush();
|
|
246
218
|
this.pending.cancel();
|
|
@@ -256,7 +228,6 @@ class NotebookPanel extends Component {
|
|
|
256
228
|
glContainer.off('tabClicked', this.handlePanelTabClick);
|
|
257
229
|
glEventHub.emit(NotebookEvent.UNREGISTER_FILE, fileMetadata, isPreview);
|
|
258
230
|
}
|
|
259
|
-
|
|
260
231
|
// Called by TabEvent. Happens once when created, but also each time its moved.
|
|
261
232
|
// when moved, need to re-init the unsaved indicators on title elements
|
|
262
233
|
initTab(tab) {
|
|
@@ -264,23 +235,20 @@ class NotebookPanel extends Component {
|
|
|
264
235
|
this.tabInitOnce = true;
|
|
265
236
|
this.initTabCloseOverride();
|
|
266
237
|
}
|
|
267
|
-
|
|
268
238
|
this.initTabClasses(tab);
|
|
269
|
-
}
|
|
270
|
-
|
|
239
|
+
}
|
|
271
240
|
|
|
241
|
+
// override glContainer.close() with a custom closure that checks if needs saving
|
|
272
242
|
initTabCloseOverride() {
|
|
273
243
|
var {
|
|
274
244
|
glContainer
|
|
275
245
|
} = this.props;
|
|
276
246
|
var close = glContainer.close.bind(glContainer);
|
|
277
|
-
|
|
278
247
|
glContainer.close = () => {
|
|
279
248
|
var {
|
|
280
249
|
changeCount,
|
|
281
250
|
savedChangeCount
|
|
282
251
|
} = this.state;
|
|
283
|
-
|
|
284
252
|
if (changeCount !== savedChangeCount && this.shouldPromptClose) {
|
|
285
253
|
this.setState({
|
|
286
254
|
showCloseModal: true
|
|
@@ -288,11 +256,9 @@ class NotebookPanel extends Component {
|
|
|
288
256
|
} else {
|
|
289
257
|
close();
|
|
290
258
|
}
|
|
291
|
-
|
|
292
259
|
return true;
|
|
293
260
|
};
|
|
294
261
|
}
|
|
295
|
-
|
|
296
262
|
initTabClasses(tab) {
|
|
297
263
|
var tabElement = tab.element.get(0);
|
|
298
264
|
assertNotNull(tabElement);
|
|
@@ -301,7 +267,6 @@ class NotebookPanel extends Component {
|
|
|
301
267
|
titleElement === null || titleElement === void 0 ? void 0 : titleElement.classList.add('notebook-title');
|
|
302
268
|
this.setPreviewStatus();
|
|
303
269
|
}
|
|
304
|
-
|
|
305
270
|
getNotebookValue() {
|
|
306
271
|
var {
|
|
307
272
|
changeCount,
|
|
@@ -311,15 +276,12 @@ class NotebookPanel extends Component {
|
|
|
311
276
|
var {
|
|
312
277
|
value
|
|
313
278
|
} = settings;
|
|
314
|
-
|
|
315
279
|
if (changeCount !== savedChangeCount && this.notebook) {
|
|
316
280
|
var notebookValue = this.notebook.getValue();
|
|
317
281
|
return notebookValue != null ? notebookValue : value;
|
|
318
282
|
}
|
|
319
|
-
|
|
320
283
|
return value;
|
|
321
284
|
}
|
|
322
|
-
|
|
323
285
|
initNotebookContent() {
|
|
324
286
|
// Init from file,
|
|
325
287
|
// fallback to content from settings for unsaved notebook
|
|
@@ -328,24 +290,20 @@ class NotebookPanel extends Component {
|
|
|
328
290
|
settings,
|
|
329
291
|
isPreview
|
|
330
292
|
} = this.state;
|
|
331
|
-
|
|
332
293
|
if (fileMetadata && fileMetadata.id) {
|
|
333
294
|
log.debug('Init content from file');
|
|
334
295
|
this.registerFileMetadata(fileMetadata, isPreview);
|
|
335
296
|
this.load();
|
|
336
297
|
return;
|
|
337
298
|
}
|
|
338
|
-
|
|
339
299
|
if (settings.value != null) {
|
|
340
300
|
log.debug('Use content passed in the settings prop');
|
|
341
301
|
this.handleLoadSuccess();
|
|
342
302
|
return;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
303
|
+
}
|
|
304
|
+
// No settings, no metadata
|
|
346
305
|
this.handleLoadError(new Error('Missing file metadata'));
|
|
347
306
|
}
|
|
348
|
-
|
|
349
307
|
closeFileTabById(id) {
|
|
350
308
|
var {
|
|
351
309
|
glEventHub
|
|
@@ -353,10 +311,10 @@ class NotebookPanel extends Component {
|
|
|
353
311
|
glEventHub.emit(NotebookEvent.CLOSE_FILE, {
|
|
354
312
|
id
|
|
355
313
|
});
|
|
356
|
-
}
|
|
357
|
-
// so the next time the file is opened this tab can be focused instead of opening a new tab
|
|
358
|
-
|
|
314
|
+
}
|
|
359
315
|
|
|
316
|
+
// Associate file id with the current tab
|
|
317
|
+
// so the next time the file is opened this tab can be focused instead of opening a new tab
|
|
360
318
|
registerFileMetadata(fileMetadata, isPreview) {
|
|
361
319
|
var {
|
|
362
320
|
glEventHub,
|
|
@@ -367,14 +325,12 @@ class NotebookPanel extends Component {
|
|
|
367
325
|
} = metadata;
|
|
368
326
|
glEventHub.emit(NotebookEvent.REGISTER_FILE, tabId, fileMetadata, isPreview);
|
|
369
327
|
}
|
|
370
|
-
|
|
371
328
|
renameTab(id, title) {
|
|
372
329
|
var {
|
|
373
330
|
glEventHub
|
|
374
331
|
} = this.props;
|
|
375
332
|
glEventHub.emit(NotebookEvent.RENAME, id, title);
|
|
376
333
|
}
|
|
377
|
-
|
|
378
334
|
load() {
|
|
379
335
|
var {
|
|
380
336
|
fileMetadata,
|
|
@@ -389,7 +345,6 @@ class NotebookPanel extends Component {
|
|
|
389
345
|
} = this.props;
|
|
390
346
|
this.pending.add(fileStorage.loadFile(id)).then(loadedFile => {
|
|
391
347
|
var _NotebookPanel$langua;
|
|
392
|
-
|
|
393
348
|
log.debug('Loaded file', loadedFile);
|
|
394
349
|
var {
|
|
395
350
|
filename: itemName
|
|
@@ -397,7 +352,6 @@ class NotebookPanel extends Component {
|
|
|
397
352
|
var {
|
|
398
353
|
itemName: prevItemName
|
|
399
354
|
} = this.state;
|
|
400
|
-
|
|
401
355
|
if (itemName !== prevItemName) {
|
|
402
356
|
var {
|
|
403
357
|
metadata
|
|
@@ -407,19 +361,15 @@ class NotebookPanel extends Component {
|
|
|
407
361
|
} = metadata;
|
|
408
362
|
this.renameTab(tabId, FileUtils.getBaseName(itemName));
|
|
409
363
|
}
|
|
410
|
-
|
|
411
364
|
var updatedSettings = _objectSpread(_objectSpread({}, settings), {}, {
|
|
412
365
|
language: (_NotebookPanel$langua = NotebookPanel.languageFromFileName(itemName)) !== null && _NotebookPanel$langua !== void 0 ? _NotebookPanel$langua : ''
|
|
413
366
|
});
|
|
414
|
-
|
|
415
367
|
if (settings.value == null) {
|
|
416
368
|
updatedSettings.value = loadedFile.content;
|
|
417
369
|
}
|
|
418
|
-
|
|
419
370
|
if (settings.wordWrap === undefined) {
|
|
420
371
|
settings.wordWrap = 'off';
|
|
421
372
|
}
|
|
422
|
-
|
|
423
373
|
this.setState({
|
|
424
374
|
fileMetadata: {
|
|
425
375
|
id: itemName,
|
|
@@ -430,40 +380,34 @@ class NotebookPanel extends Component {
|
|
|
430
380
|
this.debouncedSavePanelState();
|
|
431
381
|
}).then(this.handleLoadSuccess).catch(this.handleLoadError);
|
|
432
382
|
}
|
|
383
|
+
|
|
433
384
|
/**
|
|
434
385
|
* Attempts to save the notebook.
|
|
435
386
|
* @returns Returns true if save has begun, false if user needed to be prompted
|
|
436
387
|
*/
|
|
437
|
-
|
|
438
|
-
|
|
439
388
|
save() {
|
|
440
389
|
var {
|
|
441
390
|
fileMetadata
|
|
442
391
|
} = this.state;
|
|
443
|
-
|
|
444
392
|
if (fileMetadata && FileUtils.hasPath(fileMetadata.itemName)) {
|
|
445
393
|
var content = this.getNotebookValue();
|
|
446
|
-
|
|
447
394
|
if (content !== undefined) {
|
|
448
395
|
this.saveContent(fileMetadata.itemName, content);
|
|
449
396
|
return true;
|
|
450
397
|
}
|
|
451
|
-
|
|
452
398
|
return false;
|
|
453
399
|
}
|
|
454
|
-
|
|
455
400
|
this.setState({
|
|
456
401
|
showSaveAsModal: true
|
|
457
402
|
});
|
|
458
403
|
return false;
|
|
459
404
|
}
|
|
405
|
+
|
|
460
406
|
/**
|
|
461
407
|
* Update existing file content
|
|
462
408
|
* @param filename The name of the file
|
|
463
409
|
* @param content New file content
|
|
464
410
|
*/
|
|
465
|
-
|
|
466
|
-
|
|
467
411
|
saveContent(filename, content) {
|
|
468
412
|
log.debug('saveContent', filename, content);
|
|
469
413
|
this.updateSavedChangeCount();
|
|
@@ -476,7 +420,6 @@ class NotebookPanel extends Component {
|
|
|
476
420
|
basename: filename
|
|
477
421
|
})).then(this.handleSaveSuccess).catch(this.handleSaveError);
|
|
478
422
|
}
|
|
479
|
-
|
|
480
423
|
updateSavedChangeCount() {
|
|
481
424
|
this.setState(_ref => {
|
|
482
425
|
var {
|
|
@@ -487,24 +430,20 @@ class NotebookPanel extends Component {
|
|
|
487
430
|
};
|
|
488
431
|
});
|
|
489
432
|
}
|
|
490
|
-
|
|
491
433
|
setPreviewStatus() {
|
|
492
434
|
if (!this.tabTitleElement) {
|
|
493
435
|
return;
|
|
494
436
|
}
|
|
495
|
-
|
|
496
437
|
var {
|
|
497
438
|
isPreview
|
|
498
439
|
} = this.state;
|
|
499
440
|
log.debug('setPreviewStatus', this.tabTitleElement, isPreview);
|
|
500
|
-
|
|
501
441
|
if (isPreview) {
|
|
502
442
|
this.tabTitleElement.classList.add('is-preview');
|
|
503
443
|
} else {
|
|
504
444
|
this.tabTitleElement.classList.remove('is-preview');
|
|
505
445
|
}
|
|
506
446
|
}
|
|
507
|
-
|
|
508
447
|
savePanelState() {
|
|
509
448
|
this.setState(state => {
|
|
510
449
|
var {
|
|
@@ -514,19 +453,16 @@ class NotebookPanel extends Component {
|
|
|
514
453
|
isPreview,
|
|
515
454
|
settings: initialSettings
|
|
516
455
|
} = state;
|
|
517
|
-
var value = this.getNotebookValue();
|
|
456
|
+
var value = this.getNotebookValue();
|
|
457
|
+
// notebooks with no unsaved changes have value === null in dehydrated state
|
|
518
458
|
// content will be loaded from file when hydrating
|
|
519
|
-
|
|
520
459
|
var dehydratedValue = changeCount !== savedChangeCount ? value : undefined;
|
|
521
|
-
|
|
522
460
|
var settings = _objectSpread(_objectSpread({}, initialSettings), {}, {
|
|
523
461
|
value
|
|
524
462
|
});
|
|
525
|
-
|
|
526
463
|
var dehydratedSettings = _objectSpread(_objectSpread({}, initialSettings), {}, {
|
|
527
464
|
value: dehydratedValue
|
|
528
465
|
});
|
|
529
|
-
|
|
530
466
|
var panelState = {
|
|
531
467
|
settings: dehydratedSettings,
|
|
532
468
|
fileMetadata,
|
|
@@ -540,7 +476,6 @@ class NotebookPanel extends Component {
|
|
|
540
476
|
};
|
|
541
477
|
});
|
|
542
478
|
}
|
|
543
|
-
|
|
544
479
|
handleCloseDiscard() {
|
|
545
480
|
this.shouldPromptClose = false;
|
|
546
481
|
this.setState({
|
|
@@ -551,13 +486,11 @@ class NotebookPanel extends Component {
|
|
|
551
486
|
} = this.props;
|
|
552
487
|
glContainer.close();
|
|
553
488
|
}
|
|
554
|
-
|
|
555
489
|
handleCloseSave() {
|
|
556
490
|
this.shouldPromptClose = false;
|
|
557
491
|
this.setState({
|
|
558
492
|
showCloseModal: false
|
|
559
493
|
});
|
|
560
|
-
|
|
561
494
|
if (this.save()) {
|
|
562
495
|
var {
|
|
563
496
|
glContainer
|
|
@@ -565,14 +498,12 @@ class NotebookPanel extends Component {
|
|
|
565
498
|
glContainer.close();
|
|
566
499
|
}
|
|
567
500
|
}
|
|
568
|
-
|
|
569
501
|
handleCloseCancel() {
|
|
570
502
|
this.shouldPromptClose = true;
|
|
571
503
|
this.setState({
|
|
572
504
|
showCloseModal: false
|
|
573
505
|
});
|
|
574
506
|
}
|
|
575
|
-
|
|
576
507
|
handleCopy() {
|
|
577
508
|
var {
|
|
578
509
|
fileMetadata,
|
|
@@ -590,15 +521,12 @@ class NotebookPanel extends Component {
|
|
|
590
521
|
log.debug('handleCopy', fileMetadata, itemName, copyName);
|
|
591
522
|
this.createNotebook(copyName, language, content);
|
|
592
523
|
}
|
|
593
|
-
|
|
594
524
|
handleEditorInitialized(innerEditor) {
|
|
595
525
|
this.editor = innerEditor;
|
|
596
526
|
}
|
|
597
|
-
|
|
598
527
|
handleEditorWillDestroy() {
|
|
599
528
|
this.editor = undefined;
|
|
600
529
|
}
|
|
601
|
-
|
|
602
530
|
handleEditorChange(e) {
|
|
603
531
|
log.debug2('handleEditorChanged', e);
|
|
604
532
|
this.removePreviewStatus();
|
|
@@ -611,7 +539,6 @@ class NotebookPanel extends Component {
|
|
|
611
539
|
isUndoing,
|
|
612
540
|
isRedoing
|
|
613
541
|
} = e;
|
|
614
|
-
|
|
615
542
|
if (isUndoing) {
|
|
616
543
|
// Note that it's possible to undo past where the user last saved, if they save and then undo for example
|
|
617
544
|
return {
|
|
@@ -619,7 +546,6 @@ class NotebookPanel extends Component {
|
|
|
619
546
|
savedChangeCount
|
|
620
547
|
};
|
|
621
548
|
}
|
|
622
|
-
|
|
623
549
|
if (!isRedoing && changeCount < savedChangeCount) {
|
|
624
550
|
// We made another change after undoing some changes from the previous save
|
|
625
551
|
// Just reset the saved counter to zero and increase the unchanged saves
|
|
@@ -629,7 +555,6 @@ class NotebookPanel extends Component {
|
|
|
629
555
|
savedChangeCount: 0
|
|
630
556
|
};
|
|
631
557
|
}
|
|
632
|
-
|
|
633
558
|
return {
|
|
634
559
|
changeCount: changeCount + 1,
|
|
635
560
|
savedChangeCount
|
|
@@ -637,13 +562,11 @@ class NotebookPanel extends Component {
|
|
|
637
562
|
});
|
|
638
563
|
this.debouncedSavePanelState();
|
|
639
564
|
}
|
|
640
|
-
|
|
641
565
|
handleFind() {
|
|
642
566
|
if (this.notebook) {
|
|
643
567
|
this.notebook.toggleFind();
|
|
644
568
|
}
|
|
645
569
|
}
|
|
646
|
-
|
|
647
570
|
updateEditorMinimap() {
|
|
648
571
|
if (this.editor) {
|
|
649
572
|
var {
|
|
@@ -656,23 +579,19 @@ class NotebookPanel extends Component {
|
|
|
656
579
|
});
|
|
657
580
|
}
|
|
658
581
|
}
|
|
659
|
-
|
|
660
582
|
handleMinimapChange() {
|
|
661
583
|
var {
|
|
662
584
|
settings,
|
|
663
585
|
defaultNotebookSettings,
|
|
664
586
|
saveSettings
|
|
665
587
|
} = this.props;
|
|
666
|
-
|
|
667
588
|
var newSettings = _objectSpread(_objectSpread({}, settings), {}, {
|
|
668
589
|
defaultNotebookSettings: {
|
|
669
590
|
isMinimapEnabled: !defaultNotebookSettings.isMinimapEnabled
|
|
670
591
|
}
|
|
671
592
|
});
|
|
672
|
-
|
|
673
593
|
saveSettings(newSettings);
|
|
674
594
|
}
|
|
675
|
-
|
|
676
595
|
updateEditorWordWrap() {
|
|
677
596
|
if (this.editor) {
|
|
678
597
|
var {
|
|
@@ -686,7 +605,6 @@ class NotebookPanel extends Component {
|
|
|
686
605
|
});
|
|
687
606
|
}
|
|
688
607
|
}
|
|
689
|
-
|
|
690
608
|
handleWordWrapChange() {
|
|
691
609
|
if (this.editor) {
|
|
692
610
|
this.setState(prevState => {
|
|
@@ -702,25 +620,22 @@ class NotebookPanel extends Component {
|
|
|
702
620
|
});
|
|
703
621
|
}
|
|
704
622
|
}
|
|
705
|
-
|
|
706
623
|
handleBlur() {
|
|
707
624
|
log.debug('handleBlur');
|
|
708
625
|
this.setState({
|
|
709
626
|
isFocused: false
|
|
710
627
|
});
|
|
711
628
|
}
|
|
712
|
-
|
|
713
629
|
handleFocus() {
|
|
714
630
|
log.debug('handleFocus');
|
|
715
631
|
this.setState({
|
|
716
632
|
isFocused: true
|
|
717
633
|
});
|
|
718
634
|
}
|
|
635
|
+
|
|
719
636
|
/**
|
|
720
637
|
* @param event The click event from clicking on the link
|
|
721
638
|
*/
|
|
722
|
-
|
|
723
|
-
|
|
724
639
|
handleLinkClick(event) {
|
|
725
640
|
var {
|
|
726
641
|
notebooksUrl,
|
|
@@ -730,20 +645,16 @@ class NotebookPanel extends Component {
|
|
|
730
645
|
var {
|
|
731
646
|
href
|
|
732
647
|
} = event.currentTarget;
|
|
733
|
-
|
|
734
648
|
if (!href || !href.startsWith(notebooksUrl)) {
|
|
735
649
|
return;
|
|
736
650
|
}
|
|
737
|
-
|
|
738
651
|
event.stopPropagation();
|
|
739
652
|
event.preventDefault();
|
|
740
653
|
var notebookPath = "/".concat(href.substring(notebooksUrl.length)).replace(/%20/g, ' ');
|
|
741
|
-
|
|
742
654
|
if (notebookPath === '/') {
|
|
743
655
|
log.debug('Ignoring invalid notebook link', notebookPath);
|
|
744
656
|
return;
|
|
745
657
|
}
|
|
746
|
-
|
|
747
658
|
log.debug('Notebook link clicked, opening', notebookPath);
|
|
748
659
|
var {
|
|
749
660
|
glEventHub
|
|
@@ -758,7 +669,6 @@ class NotebookPanel extends Component {
|
|
|
758
669
|
};
|
|
759
670
|
glEventHub.emit(NotebookEvent.SELECT_NOTEBOOK, session, sessionLanguage, notebookSettings, fileMetadata);
|
|
760
671
|
}
|
|
761
|
-
|
|
762
672
|
handleLoadSuccess() {
|
|
763
673
|
this.setState({
|
|
764
674
|
error: undefined,
|
|
@@ -766,33 +676,26 @@ class NotebookPanel extends Component {
|
|
|
766
676
|
isLoading: false
|
|
767
677
|
});
|
|
768
678
|
}
|
|
769
|
-
|
|
770
679
|
handleLoadError(errorParam) {
|
|
771
680
|
var error = errorParam;
|
|
772
|
-
|
|
773
681
|
if (PromiseUtils.isCanceled(error)) {
|
|
774
682
|
return;
|
|
775
683
|
}
|
|
776
|
-
|
|
777
684
|
if (PromiseUtils.isTimedOut(error)) {
|
|
778
685
|
error = new Error('File not found.');
|
|
779
686
|
}
|
|
780
|
-
|
|
781
687
|
log.error(error);
|
|
782
688
|
this.setState({
|
|
783
689
|
error,
|
|
784
690
|
isLoading: false
|
|
785
691
|
});
|
|
786
692
|
}
|
|
787
|
-
|
|
788
693
|
handleSave() {
|
|
789
694
|
log.debug('handleSave');
|
|
790
695
|
this.save();
|
|
791
696
|
}
|
|
792
|
-
|
|
793
697
|
handleSaveSuccess(file) {
|
|
794
698
|
var _NotebookPanel$langua2;
|
|
795
|
-
|
|
796
699
|
var {
|
|
797
700
|
fileStorage
|
|
798
701
|
} = this.props;
|
|
@@ -805,18 +708,14 @@ class NotebookPanel extends Component {
|
|
|
805
708
|
var {
|
|
806
709
|
fileMetadata: oldMetadata
|
|
807
710
|
} = state;
|
|
808
|
-
|
|
809
711
|
var settings = _objectSpread(_objectSpread({}, state.settings), {}, {
|
|
810
712
|
language
|
|
811
713
|
});
|
|
812
|
-
|
|
813
714
|
log.debug('handleSaveSuccess', fileMetadata, oldMetadata, settings);
|
|
814
|
-
|
|
815
715
|
if (oldMetadata && FileUtils.hasPath(oldMetadata.itemName) && oldMetadata.itemName !== fileMetadata.itemName) {
|
|
816
716
|
log.debug('handleSaveSuccess deleting old file', oldMetadata.itemName);
|
|
817
717
|
fileStorage.deleteFile(oldMetadata.itemName).catch(NotebookPanel.handleError);
|
|
818
718
|
}
|
|
819
|
-
|
|
820
719
|
return {
|
|
821
720
|
fileMetadata,
|
|
822
721
|
settings,
|
|
@@ -826,39 +725,32 @@ class NotebookPanel extends Component {
|
|
|
826
725
|
this.debouncedSavePanelState();
|
|
827
726
|
this.registerFileMetadata(fileMetadata, false);
|
|
828
727
|
}
|
|
829
|
-
|
|
830
728
|
handleSaveError(error) {
|
|
831
729
|
if (PromiseUtils.isCanceled(error)) {
|
|
832
730
|
return;
|
|
833
|
-
}
|
|
731
|
+
}
|
|
732
|
+
// There was an error saving, just reset the savedChangeCount
|
|
834
733
|
// It's possible if they undo changes they'll be back at the spot where it was last saved successfully,
|
|
835
734
|
// But we may as well continue showing the error until they actually save again
|
|
836
|
-
|
|
837
|
-
|
|
838
735
|
this.setState({
|
|
839
736
|
savedChangeCount: 0
|
|
840
737
|
});
|
|
841
738
|
log.error(error);
|
|
842
739
|
}
|
|
843
|
-
|
|
844
740
|
handleSaveAsCancel() {
|
|
845
741
|
this.setState({
|
|
846
742
|
showSaveAsModal: false
|
|
847
743
|
});
|
|
848
744
|
}
|
|
849
|
-
|
|
850
745
|
handleSaveAsSubmit(name) {
|
|
851
746
|
var _this$getNotebookValu;
|
|
852
|
-
|
|
853
747
|
log.debug('handleSaveAsSubmit', name);
|
|
854
748
|
var {
|
|
855
749
|
fileMetadata
|
|
856
750
|
} = this.state;
|
|
857
|
-
|
|
858
751
|
if (!fileMetadata) {
|
|
859
752
|
return;
|
|
860
753
|
}
|
|
861
|
-
|
|
862
754
|
var {
|
|
863
755
|
itemName: prevItemName
|
|
864
756
|
} = fileMetadata;
|
|
@@ -866,7 +758,6 @@ class NotebookPanel extends Component {
|
|
|
866
758
|
this.setState({
|
|
867
759
|
showSaveAsModal: false
|
|
868
760
|
});
|
|
869
|
-
|
|
870
761
|
if (FileUtils.getBaseName(prevItemName) !== FileUtils.getBaseName(name)) {
|
|
871
762
|
var {
|
|
872
763
|
metadata
|
|
@@ -876,15 +767,12 @@ class NotebookPanel extends Component {
|
|
|
876
767
|
} = metadata;
|
|
877
768
|
this.renameTab(tabId, FileUtils.getBaseName(name));
|
|
878
769
|
}
|
|
879
|
-
|
|
880
770
|
this.saveContent(name, content);
|
|
881
771
|
}
|
|
882
|
-
|
|
883
772
|
handleRenameFile(oldName, newName) {
|
|
884
773
|
var {
|
|
885
774
|
fileMetadata
|
|
886
775
|
} = this.state;
|
|
887
|
-
|
|
888
776
|
if (fileMetadata && fileMetadata.id === oldName) {
|
|
889
777
|
this.setState({
|
|
890
778
|
fileMetadata: {
|
|
@@ -895,37 +783,28 @@ class NotebookPanel extends Component {
|
|
|
895
783
|
this.debouncedSavePanelState();
|
|
896
784
|
}
|
|
897
785
|
}
|
|
898
|
-
|
|
899
786
|
handleResize() {
|
|
900
787
|
var _this$notebook;
|
|
901
|
-
|
|
902
788
|
(_this$notebook = this.notebook) === null || _this$notebook === void 0 ? void 0 : _this$notebook.updateDimensions();
|
|
903
789
|
}
|
|
904
|
-
|
|
905
790
|
handleRunCommand(command) {
|
|
906
791
|
this.runCommand(command);
|
|
907
792
|
}
|
|
908
|
-
|
|
909
793
|
handleRunAll() {
|
|
910
794
|
var _this$notebook$getVal;
|
|
911
|
-
|
|
912
795
|
if (!this.notebook) {
|
|
913
796
|
log.error('Editor is not initialized.');
|
|
914
797
|
return;
|
|
915
798
|
}
|
|
916
|
-
|
|
917
799
|
this.runCommand((_this$notebook$getVal = this.notebook.getValue()) !== null && _this$notebook$getVal !== void 0 ? _this$notebook$getVal : undefined);
|
|
918
800
|
}
|
|
919
|
-
|
|
920
801
|
handleRunSelected() {
|
|
921
802
|
if (!this.notebook) {
|
|
922
803
|
log.error('Editor is not initialized.');
|
|
923
804
|
return;
|
|
924
805
|
}
|
|
925
|
-
|
|
926
806
|
this.runCommand(this.notebook.getSelectedCommand());
|
|
927
807
|
}
|
|
928
|
-
|
|
929
808
|
handleSessionOpened(session, _ref2) {
|
|
930
809
|
var {
|
|
931
810
|
language
|
|
@@ -935,37 +814,30 @@ class NotebookPanel extends Component {
|
|
|
935
814
|
sessionLanguage: language
|
|
936
815
|
});
|
|
937
816
|
}
|
|
938
|
-
|
|
939
817
|
handleSessionClosed() {
|
|
940
818
|
this.setState({
|
|
941
819
|
session: undefined,
|
|
942
820
|
sessionLanguage: undefined
|
|
943
821
|
});
|
|
944
822
|
}
|
|
945
|
-
|
|
946
823
|
handleShow() {
|
|
947
824
|
var _this$notebook2;
|
|
948
|
-
|
|
949
825
|
log.debug('handleShow');
|
|
950
826
|
(_this$notebook2 = this.notebook) === null || _this$notebook2 === void 0 ? void 0 : _this$notebook2.updateDimensions();
|
|
951
827
|
}
|
|
952
|
-
|
|
953
828
|
handleShowRename() {
|
|
954
829
|
this.setState({
|
|
955
830
|
showSaveAsModal: true
|
|
956
831
|
});
|
|
957
832
|
}
|
|
958
|
-
|
|
959
833
|
handleTab(tab) {
|
|
960
834
|
log.debug('NotebookPanel tab event', tab);
|
|
961
835
|
this.initTab(tab);
|
|
962
836
|
}
|
|
963
|
-
|
|
964
837
|
handleTabFocus() {
|
|
965
838
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
966
839
|
args[_key] = arguments[_key];
|
|
967
840
|
}
|
|
968
|
-
|
|
969
841
|
log.debug('handleTabFocus', ...args);
|
|
970
842
|
var {
|
|
971
843
|
glContainer
|
|
@@ -973,30 +845,26 @@ class NotebookPanel extends Component {
|
|
|
973
845
|
this.setState({
|
|
974
846
|
isDashboardActive: true
|
|
975
847
|
});
|
|
976
|
-
|
|
977
848
|
if (this.notebook && !glContainer.isHidden) {
|
|
978
849
|
this.notebook.updateDimensions();
|
|
979
850
|
}
|
|
980
851
|
}
|
|
981
|
-
|
|
982
852
|
handleTabBlur() {
|
|
983
853
|
log.debug('handleTabBlur');
|
|
984
854
|
this.setState({
|
|
985
855
|
isDashboardActive: false
|
|
986
856
|
});
|
|
987
857
|
}
|
|
988
|
-
|
|
989
858
|
handlePanelTabClick() {
|
|
990
859
|
log.debug('handlePanelTabClick');
|
|
991
860
|
this.focus();
|
|
992
861
|
}
|
|
862
|
+
|
|
993
863
|
/**
|
|
994
864
|
* Transform the link URI to load from where the notebook is if it's relative
|
|
995
865
|
* @param src The link to transform
|
|
996
866
|
* @returns String the transformed link
|
|
997
867
|
*/
|
|
998
|
-
|
|
999
|
-
|
|
1000
868
|
handleTransformLinkUri(src) {
|
|
1001
869
|
var {
|
|
1002
870
|
notebooksUrl
|
|
@@ -1004,29 +872,22 @@ class NotebookPanel extends Component {
|
|
|
1004
872
|
var {
|
|
1005
873
|
fileMetadata
|
|
1006
874
|
} = this.state;
|
|
1007
|
-
|
|
1008
875
|
if (src.endsWith('/')) {
|
|
1009
876
|
return src;
|
|
1010
877
|
}
|
|
1011
|
-
|
|
1012
878
|
if (src.startsWith('/')) {
|
|
1013
879
|
return "".concat(notebooksUrl).concat(src.substring(1));
|
|
1014
880
|
}
|
|
1015
|
-
|
|
1016
881
|
var itemName = fileMetadata === null || fileMetadata === void 0 ? void 0 : fileMetadata.itemName;
|
|
1017
|
-
|
|
1018
882
|
if (itemName === undefined) {
|
|
1019
883
|
return src;
|
|
1020
884
|
}
|
|
1021
|
-
|
|
1022
885
|
if (itemName.charAt(0) === '/') {
|
|
1023
886
|
itemName = itemName.substring(1);
|
|
1024
887
|
}
|
|
1025
|
-
|
|
1026
888
|
var itemUri = new URL(itemName, notebooksUrl);
|
|
1027
889
|
return new URL(src, itemUri).href;
|
|
1028
890
|
}
|
|
1029
|
-
|
|
1030
891
|
focus() {
|
|
1031
892
|
requestAnimationFrame(() => {
|
|
1032
893
|
if (this.notebook) {
|
|
@@ -1034,7 +895,6 @@ class NotebookPanel extends Component {
|
|
|
1034
895
|
}
|
|
1035
896
|
});
|
|
1036
897
|
}
|
|
1037
|
-
|
|
1038
898
|
createNotebook(itemName, language) {
|
|
1039
899
|
var content = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
1040
900
|
var {
|
|
@@ -1045,12 +905,10 @@ class NotebookPanel extends Component {
|
|
|
1045
905
|
sessionLanguage,
|
|
1046
906
|
settings
|
|
1047
907
|
} = this.state;
|
|
1048
|
-
|
|
1049
908
|
var notebookSettings = _objectSpread(_objectSpread({}, settings), {}, {
|
|
1050
909
|
language,
|
|
1051
910
|
value: content
|
|
1052
911
|
});
|
|
1053
|
-
|
|
1054
912
|
var fileMetadata = {
|
|
1055
913
|
id: null,
|
|
1056
914
|
itemName
|
|
@@ -1058,44 +916,36 @@ class NotebookPanel extends Component {
|
|
|
1058
916
|
log.debug('handleCreateNotebook', session, sessionLanguage, notebookSettings, fileMetadata);
|
|
1059
917
|
glEventHub.emit(NotebookEvent.CREATE_NOTEBOOK, session, sessionLanguage, notebookSettings, fileMetadata);
|
|
1060
918
|
}
|
|
1061
|
-
|
|
1062
919
|
runCommand(command) {
|
|
1063
920
|
if (command === undefined) {
|
|
1064
921
|
log.debug('Ignoring empty command.');
|
|
1065
922
|
return;
|
|
1066
923
|
}
|
|
1067
|
-
|
|
1068
924
|
this.removePreviewStatus();
|
|
1069
925
|
var {
|
|
1070
926
|
glEventHub
|
|
1071
927
|
} = this.props;
|
|
1072
928
|
glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);
|
|
1073
929
|
}
|
|
1074
|
-
|
|
1075
930
|
removePreviewStatus() {
|
|
1076
931
|
this.setState(_ref3 => {
|
|
1077
932
|
var {
|
|
1078
933
|
isPreview
|
|
1079
934
|
} = _ref3;
|
|
1080
|
-
|
|
1081
935
|
if (isPreview) {
|
|
1082
936
|
var {
|
|
1083
937
|
fileMetadata
|
|
1084
938
|
} = this.state;
|
|
1085
|
-
|
|
1086
939
|
if (fileMetadata) {
|
|
1087
940
|
this.registerFileMetadata(fileMetadata, false);
|
|
1088
941
|
}
|
|
1089
|
-
|
|
1090
942
|
return {
|
|
1091
943
|
isPreview: false
|
|
1092
944
|
};
|
|
1093
945
|
}
|
|
1094
|
-
|
|
1095
946
|
return null;
|
|
1096
947
|
});
|
|
1097
948
|
}
|
|
1098
|
-
|
|
1099
949
|
getDropdownOverflowActions() {
|
|
1100
950
|
var {
|
|
1101
951
|
defaultNotebookSettings
|
|
@@ -1105,10 +955,8 @@ class NotebookPanel extends Component {
|
|
|
1105
955
|
} = this.state;
|
|
1106
956
|
return this.getOverflowActions(defaultNotebookSettings.isMinimapEnabled, this.getSettings(initialSettings, defaultNotebookSettings.isMinimapEnabled).wordWrap === 'on');
|
|
1107
957
|
}
|
|
1108
|
-
|
|
1109
958
|
render() {
|
|
1110
959
|
var _fileMetadata$itemNam, _settings$value;
|
|
1111
|
-
|
|
1112
960
|
var {
|
|
1113
961
|
fileStorage,
|
|
1114
962
|
glContainer,
|
|
@@ -1132,8 +980,8 @@ class NotebookPanel extends Component {
|
|
|
1132
980
|
settings: initialSettings,
|
|
1133
981
|
showCloseModal,
|
|
1134
982
|
showSaveAsModal
|
|
1135
|
-
} = this.state;
|
|
1136
|
-
|
|
983
|
+
} = this.state;
|
|
984
|
+
// We don't want to steal focus if this isn't shown or it's just a preview
|
|
1137
985
|
var focusOnMount = isDashboardActive && !glContainer.isHidden && !isPreview;
|
|
1138
986
|
var itemName = (_fileMetadata$itemNam = fileMetadata === null || fileMetadata === void 0 ? void 0 : fileMetadata.itemName) !== null && _fileMetadata$itemNam !== void 0 ? _fileMetadata$itemNam : NotebookPanel.DEFAULT_NAME;
|
|
1139
987
|
var isMarkdown = itemName.endsWith('.md');
|
|
@@ -1226,7 +1074,8 @@ class NotebookPanel extends Component {
|
|
|
1226
1074
|
disabled: toolbarDisabled,
|
|
1227
1075
|
icon: vsKebabVertical,
|
|
1228
1076
|
tooltip: "More Actions...",
|
|
1229
|
-
onClick: () => {
|
|
1077
|
+
onClick: () => {
|
|
1078
|
+
// no-op: click is handled in `DropdownMenu`
|
|
1230
1079
|
}
|
|
1231
1080
|
}, /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
1232
1081
|
actions: this.getDropdownOverflowActions,
|
|
@@ -1274,17 +1123,12 @@ class NotebookPanel extends Component {
|
|
|
1274
1123
|
actions: contextActions
|
|
1275
1124
|
})));
|
|
1276
1125
|
}
|
|
1277
|
-
|
|
1278
1126
|
}
|
|
1279
|
-
|
|
1280
1127
|
_defineProperty(NotebookPanel, "COMPONENT", 'NotebookPanel');
|
|
1281
|
-
|
|
1282
1128
|
_defineProperty(NotebookPanel, "POPPER_OPTIONS", {
|
|
1283
1129
|
placement: 'bottom-end'
|
|
1284
1130
|
});
|
|
1285
|
-
|
|
1286
1131
|
_defineProperty(NotebookPanel, "DEFAULT_NAME", 'Untitled');
|
|
1287
|
-
|
|
1288
1132
|
_defineProperty(NotebookPanel, "defaultProps", {
|
|
1289
1133
|
isDashboardActive: true,
|
|
1290
1134
|
isPreview: false,
|
|
@@ -1292,7 +1136,6 @@ _defineProperty(NotebookPanel, "defaultProps", {
|
|
|
1292
1136
|
sessionLanguage: null,
|
|
1293
1137
|
defaultNotebookSettings: null
|
|
1294
1138
|
});
|
|
1295
|
-
|
|
1296
1139
|
var mapStateToProps = (state, ownProps) => {
|
|
1297
1140
|
var fileStorage = getFileStorage(state);
|
|
1298
1141
|
var settings = getSettings(state);
|
|
@@ -1313,7 +1156,6 @@ var mapStateToProps = (state, ownProps) => {
|
|
|
1313
1156
|
sessionLanguage
|
|
1314
1157
|
};
|
|
1315
1158
|
};
|
|
1316
|
-
|
|
1317
1159
|
export default connect(mapStateToProps, {
|
|
1318
1160
|
saveSettings: saveSettingsAction
|
|
1319
1161
|
}, null, {
|