@deephaven/dashboard-core-plugins 0.15.5-beta.3 → 0.15.5-beta.4
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.map +1 -1
- package/dist/ChartBuilderPlugin.js +2 -1
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/FilterPlugin.js +1 -1
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/controls/ControlType.d.ts +1 -1
- package/dist/controls/ControlType.d.ts.map +1 -1
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.d.ts +46 -46
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +32 -39
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
- package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js +5 -8
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
- package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js +5 -8
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
- package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js +19 -23
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
- package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js +2 -2
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.d.ts +1 -1
- package/dist/events/ChartEvent.d.ts.map +1 -1
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.d.ts +1 -1
- package/dist/events/ConsoleEvent.d.ts.map +1 -1
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.d.ts +1 -1
- package/dist/events/InputFilterEvent.d.ts.map +1 -1
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.d.ts +1 -1
- package/dist/events/IrisGridEvent.d.ts.map +1 -1
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/NotebookEvent.d.ts +1 -1
- package/dist/events/NotebookEvent.d.ts.map +1 -1
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.d.ts +1 -1
- package/dist/events/PQEvent.d.ts.map +1 -1
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.d.ts +1 -1
- package/dist/events/PandasEvent.d.ts.map +1 -1
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.d.ts +1 -1
- package/dist/events/TabEvent.d.ts.map +1 -1
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/events/index.d.ts +8 -8
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
- package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
- package/dist/linker/ColumnSelectionValidator.js +2 -0
- package/dist/linker/ColumnSelectionValidator.js.map +1 -0
- package/dist/linker/Linker.d.ts +11 -11
- package/dist/linker/Linker.js +1 -1
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerUtils.d.ts +3 -3
- package/dist/linker/LinkerUtils.d.ts.map +1 -1
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/linker/ToolType.d.ts +1 -1
- package/dist/linker/ToolType.d.ts.map +1 -1
- package/dist/linker/ToolType.js.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
- package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.d.ts +27 -21
- package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +149 -152
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +65 -73
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.d.ts +41 -56
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
- package/dist/panels/CommandHistoryPanel.js +13 -35
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +63 -73
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +67 -83
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +110 -106
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +60 -62
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.d.ts +5 -7
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.d.ts +3 -1
- package/dist/panels/FilterSetManager.d.ts.map +1 -1
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +58 -36
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/InputFilterPanel.d.ts +50 -51
- package/dist/panels/InputFilterPanel.d.ts.map +1 -1
- package/dist/panels/InputFilterPanel.js +35 -34
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +191 -178
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +150 -179
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/LogPanel.d.ts +29 -45
- package/dist/panels/LogPanel.d.ts.map +1 -1
- package/dist/panels/LogPanel.js +9 -11
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebook.d.ts +34 -34
- package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
- package/dist/panels/MarkdownNotebook.js +21 -18
- package/dist/panels/MarkdownNotebook.js.map +1 -1
- package/dist/panels/MarkdownPanel.d.ts +41 -47
- package/dist/panels/MarkdownPanel.d.ts.map +1 -1
- package/dist/panels/MarkdownPanel.js +17 -19
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +137 -115
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +95 -68
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.d.ts +20 -17
- package/dist/panels/PandasPanel.d.ts.map +1 -1
- package/dist/panels/PandasPanel.js +17 -13
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +87 -123
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +29 -54
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.d.ts +16 -31
- package/dist/panels/PanelContextMenu.d.ts.map +1 -1
- package/dist/panels/PanelContextMenu.js +12 -15
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.d.ts +26 -28
- package/dist/panels/RenameDialog.d.ts.map +1 -1
- package/dist/panels/RenameDialog.js +15 -19
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +72 -106
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +17 -47
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +1 -1
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.d.ts +4 -4
- package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
- package/dist/prop-types/CommonPropTypes.js +1 -1
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/prop-types/UIPropTypes.d.ts +2 -7
- package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
- package/dist/prop-types/UIPropTypes.js +0 -7
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/prop-types/index.d.ts +2 -2
- package/dist/prop-types/index.d.ts.map +1 -1
- package/dist/prop-types/index.js.map +1 -1
- package/dist/redux/actionTypes.d.ts +1 -1
- package/dist/redux/actionTypes.d.ts.map +1 -1
- package/dist/redux/actionTypes.js.map +1 -1
- package/dist/redux/actions.d.ts +63 -8
- package/dist/redux/actions.d.ts.map +1 -1
- package/dist/redux/actions.js +17 -17
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/reducers/index.d.ts +3 -4
- package/dist/redux/reducers/index.d.ts.map +1 -1
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/redux/selectors.d.ts +63 -9
- package/dist/redux/selectors.d.ts.map +1 -1
- package/dist/redux/selectors.js +24 -24
- package/dist/redux/selectors.js.map +1 -1
- package/package.json +20 -17
|
@@ -7,20 +7,18 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
7
7
|
// Wrapper for the Notebook for use in a golden layout container
|
|
8
8
|
import React, { Component } from 'react';
|
|
9
9
|
import ReactDOM from 'react-dom';
|
|
10
|
-
import PropTypes from 'prop-types';
|
|
11
10
|
import memoize from 'memoize-one';
|
|
12
11
|
import { connect } from 'react-redux';
|
|
13
12
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
14
13
|
import { BasicModal, ContextActions, DropdownMenu, Tooltip, GLOBAL_SHORTCUTS } from '@deephaven/components';
|
|
15
14
|
import { ScriptEditor, ScriptEditorUtils, SHORTCUTS } from '@deephaven/console';
|
|
16
|
-
import { GLPropTypes } from '@deephaven/dashboard';
|
|
17
15
|
import { FileUtils, NewItemModal } from '@deephaven/file-explorer';
|
|
18
16
|
import { vsSave, vsKebabVertical, dhFileSearch, vsPlay, dhRunSelection } from '@deephaven/icons';
|
|
19
17
|
import { getFileStorage } from '@deephaven/redux';
|
|
20
18
|
import classNames from 'classnames';
|
|
21
19
|
import debounce from 'lodash.debounce';
|
|
22
20
|
import Log from '@deephaven/log';
|
|
23
|
-
import { Pending, PromiseUtils } from '@deephaven/utils';
|
|
21
|
+
import { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';
|
|
24
22
|
import { ConsoleEvent, NotebookEvent } from "../events/index.js";
|
|
25
23
|
import { getDashboardSessionWrapper } from "../redux/index.js";
|
|
26
24
|
import Panel from "./Panel.js";
|
|
@@ -58,8 +56,24 @@ class NotebookPanel extends Component {
|
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
constructor(props) {
|
|
59
|
+
var _fileMetadata;
|
|
60
|
+
|
|
61
61
|
super(props);
|
|
62
62
|
|
|
63
|
+
_defineProperty(this, "pending", void 0);
|
|
64
|
+
|
|
65
|
+
_defineProperty(this, "debouncedSavePanelState", void 0);
|
|
66
|
+
|
|
67
|
+
_defineProperty(this, "debouncedLoad", void 0);
|
|
68
|
+
|
|
69
|
+
_defineProperty(this, "notebook", void 0);
|
|
70
|
+
|
|
71
|
+
_defineProperty(this, "tabTitleElement", void 0);
|
|
72
|
+
|
|
73
|
+
_defineProperty(this, "tabInitOnce", void 0);
|
|
74
|
+
|
|
75
|
+
_defineProperty(this, "shouldPromptClose", void 0);
|
|
76
|
+
|
|
63
77
|
_defineProperty(this, "getOverflowActions", memoize(() => [{
|
|
64
78
|
title: 'Find',
|
|
65
79
|
icon: dhFileSearch,
|
|
@@ -104,7 +118,6 @@ class NotebookPanel extends Component {
|
|
|
104
118
|
this.debouncedLoad = debounce(this.load.bind(this), DEBOUNCE_PANEL_STATE_UPDATE);
|
|
105
119
|
this.notebook = null;
|
|
106
120
|
this.tabTitleElement = null;
|
|
107
|
-
this.unsavedIndicator = null;
|
|
108
121
|
this.tabInitOnce = false;
|
|
109
122
|
this.shouldPromptClose = true;
|
|
110
123
|
var {
|
|
@@ -114,7 +127,8 @@ class NotebookPanel extends Component {
|
|
|
114
127
|
panelState
|
|
115
128
|
} = props;
|
|
116
129
|
var settings = {
|
|
117
|
-
value: ''
|
|
130
|
+
value: '',
|
|
131
|
+
language: ''
|
|
118
132
|
};
|
|
119
133
|
var fileMetadata = null;
|
|
120
134
|
var {
|
|
@@ -131,13 +145,13 @@ class NotebookPanel extends Component {
|
|
|
131
145
|
// may need to implement some other indication that this notebook has never been saved
|
|
132
146
|
|
|
133
147
|
|
|
134
|
-
var hasFileId = fileMetadata.itemName && FileUtils.hasPath(fileMetadata.itemName); // Unsaved if file id != null and content != null
|
|
148
|
+
var hasFileId = ((_fileMetadata = fileMetadata) === null || _fileMetadata === void 0 ? void 0 : _fileMetadata.itemName) && FileUtils.hasPath(fileMetadata.itemName); // Unsaved if file id != null and content != null
|
|
135
149
|
// OR file id is null AND content is not null or ''
|
|
136
150
|
|
|
137
151
|
var isUnsaved = hasFileId && settings.value != null || !hasFileId && settings.value;
|
|
138
152
|
var changeCount = isUnsaved ? 1 : 0;
|
|
139
153
|
this.state = {
|
|
140
|
-
error:
|
|
154
|
+
error: undefined,
|
|
141
155
|
isDashboardActive,
|
|
142
156
|
isFocused: false,
|
|
143
157
|
isLoading: true,
|
|
@@ -181,7 +195,7 @@ class NotebookPanel extends Component {
|
|
|
181
195
|
} = this.state;
|
|
182
196
|
|
|
183
197
|
if (isPreview !== prevState.isPreview) {
|
|
184
|
-
this.setPreviewStatus(
|
|
198
|
+
this.setPreviewStatus();
|
|
185
199
|
}
|
|
186
200
|
}
|
|
187
201
|
|
|
@@ -199,10 +213,10 @@ class NotebookPanel extends Component {
|
|
|
199
213
|
glEventHub.off(NotebookEvent.RENAME_FILE, this.handleRenameFile);
|
|
200
214
|
glContainer.off('tabClicked', this.handlePanelTabClick);
|
|
201
215
|
glEventHub.emit(NotebookEvent.UNREGISTER_FILE, fileMetadata, isPreview);
|
|
202
|
-
}
|
|
203
|
-
// when moved, need to re-init the unsaved indicators on title elements
|
|
204
|
-
|
|
216
|
+
}
|
|
205
217
|
|
|
218
|
+
// Called by TabEvent. Happens once when created, but also each time its moved.
|
|
219
|
+
// when moved, need to re-init the unsaved indicators on title elements
|
|
206
220
|
initTab(tab) {
|
|
207
221
|
if (!this.tabInitOnce) {
|
|
208
222
|
this.tabInitOnce = true;
|
|
@@ -232,14 +246,17 @@ class NotebookPanel extends Component {
|
|
|
232
246
|
} else {
|
|
233
247
|
close();
|
|
234
248
|
}
|
|
249
|
+
|
|
250
|
+
return true;
|
|
235
251
|
};
|
|
236
252
|
}
|
|
237
253
|
|
|
238
254
|
initTabClasses(tab) {
|
|
239
255
|
var tabElement = tab.element.get(0);
|
|
256
|
+
assertNotNull(tabElement);
|
|
240
257
|
var titleElement = tabElement.querySelector('.lm_title');
|
|
241
258
|
this.tabTitleElement = titleElement;
|
|
242
|
-
titleElement.classList.add('notebook-title');
|
|
259
|
+
titleElement === null || titleElement === void 0 ? void 0 : titleElement.classList.add('notebook-title');
|
|
243
260
|
this.setPreviewStatus();
|
|
244
261
|
}
|
|
245
262
|
|
|
@@ -321,6 +338,7 @@ class NotebookPanel extends Component {
|
|
|
321
338
|
fileMetadata,
|
|
322
339
|
settings
|
|
323
340
|
} = this.state;
|
|
341
|
+
assertNotNull(fileMetadata);
|
|
324
342
|
var {
|
|
325
343
|
id
|
|
326
344
|
} = fileMetadata;
|
|
@@ -328,6 +346,8 @@ class NotebookPanel extends Component {
|
|
|
328
346
|
fileStorage
|
|
329
347
|
} = this.props;
|
|
330
348
|
this.pending.add(fileStorage.loadFile(id)).then(loadedFile => {
|
|
349
|
+
var _NotebookPanel$langua;
|
|
350
|
+
|
|
331
351
|
log.debug('Loaded file', loadedFile);
|
|
332
352
|
var {
|
|
333
353
|
filename: itemName
|
|
@@ -347,7 +367,7 @@ class NotebookPanel extends Component {
|
|
|
347
367
|
}
|
|
348
368
|
|
|
349
369
|
var updatedSettings = _objectSpread(_objectSpread({}, settings), {}, {
|
|
350
|
-
language: NotebookPanel.languageFromFileName(itemName)
|
|
370
|
+
language: (_NotebookPanel$langua = NotebookPanel.languageFromFileName(itemName)) !== null && _NotebookPanel$langua !== void 0 ? _NotebookPanel$langua : ''
|
|
351
371
|
});
|
|
352
372
|
|
|
353
373
|
if (settings.value == null) {
|
|
@@ -366,7 +386,7 @@ class NotebookPanel extends Component {
|
|
|
366
386
|
}
|
|
367
387
|
/**
|
|
368
388
|
* Attempts to save the notebook.
|
|
369
|
-
* @returns
|
|
389
|
+
* @returns Returns true if save has begun, false if user needed to be prompted
|
|
370
390
|
*/
|
|
371
391
|
|
|
372
392
|
|
|
@@ -377,8 +397,13 @@ class NotebookPanel extends Component {
|
|
|
377
397
|
|
|
378
398
|
if (fileMetadata && FileUtils.hasPath(fileMetadata.itemName)) {
|
|
379
399
|
var content = this.getNotebookValue();
|
|
380
|
-
|
|
381
|
-
|
|
400
|
+
|
|
401
|
+
if (content != null) {
|
|
402
|
+
this.saveContent(fileMetadata.itemName, content);
|
|
403
|
+
return true;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
return false;
|
|
382
407
|
}
|
|
383
408
|
|
|
384
409
|
this.setState({
|
|
@@ -388,8 +413,8 @@ class NotebookPanel extends Component {
|
|
|
388
413
|
}
|
|
389
414
|
/**
|
|
390
415
|
* Update existing file content
|
|
391
|
-
* @param
|
|
392
|
-
* @param
|
|
416
|
+
* @param filename The name of the file
|
|
417
|
+
* @param content New file content
|
|
393
418
|
*/
|
|
394
419
|
|
|
395
420
|
|
|
@@ -401,7 +426,8 @@ class NotebookPanel extends Component {
|
|
|
401
426
|
} = this.props;
|
|
402
427
|
this.pending.add(fileStorage.saveFile({
|
|
403
428
|
filename,
|
|
404
|
-
content
|
|
429
|
+
content,
|
|
430
|
+
basename: filename
|
|
405
431
|
})).then(this.handleSaveSuccess).catch(this.handleSaveError);
|
|
406
432
|
}
|
|
407
433
|
|
|
@@ -506,6 +532,7 @@ class NotebookPanel extends Component {
|
|
|
506
532
|
fileMetadata,
|
|
507
533
|
settings
|
|
508
534
|
} = this.state;
|
|
535
|
+
assertNotNull(fileMetadata);
|
|
509
536
|
var content = this.getNotebookValue();
|
|
510
537
|
var {
|
|
511
538
|
language
|
|
@@ -515,17 +542,17 @@ class NotebookPanel extends Component {
|
|
|
515
542
|
} = fileMetadata;
|
|
516
543
|
var copyName = FileUtils.getCopyFileName(itemName);
|
|
517
544
|
log.debug('handleCopy', fileMetadata, itemName, copyName);
|
|
518
|
-
this.createNotebook(copyName, language, content);
|
|
545
|
+
this.createNotebook(copyName, language, content !== null && content !== void 0 ? content : undefined);
|
|
519
546
|
}
|
|
520
547
|
|
|
521
548
|
handleEditorChange(e) {
|
|
522
549
|
log.debug2('handleEditorChanged', e);
|
|
523
550
|
this.removePreviewStatus();
|
|
524
|
-
this.setState(
|
|
551
|
+
this.setState(state => {
|
|
525
552
|
var {
|
|
526
553
|
changeCount,
|
|
527
554
|
savedChangeCount
|
|
528
|
-
} =
|
|
555
|
+
} = state;
|
|
529
556
|
var {
|
|
530
557
|
isUndoing,
|
|
531
558
|
isRedoing
|
|
@@ -534,7 +561,8 @@ class NotebookPanel extends Component {
|
|
|
534
561
|
if (isUndoing) {
|
|
535
562
|
// Note that it's possible to undo past where the user last saved, if they save and then undo for example
|
|
536
563
|
return {
|
|
537
|
-
changeCount: changeCount - 1
|
|
564
|
+
changeCount: changeCount - 1,
|
|
565
|
+
savedChangeCount
|
|
538
566
|
};
|
|
539
567
|
}
|
|
540
568
|
|
|
@@ -549,7 +577,8 @@ class NotebookPanel extends Component {
|
|
|
549
577
|
}
|
|
550
578
|
|
|
551
579
|
return {
|
|
552
|
-
changeCount: changeCount + 1
|
|
580
|
+
changeCount: changeCount + 1,
|
|
581
|
+
savedChangeCount
|
|
553
582
|
};
|
|
554
583
|
});
|
|
555
584
|
this.debouncedSavePanelState();
|
|
@@ -575,7 +604,7 @@ class NotebookPanel extends Component {
|
|
|
575
604
|
});
|
|
576
605
|
}
|
|
577
606
|
/**
|
|
578
|
-
* @param
|
|
607
|
+
* @param event The click event from clicking on the link
|
|
579
608
|
*/
|
|
580
609
|
|
|
581
610
|
|
|
@@ -587,7 +616,7 @@ class NotebookPanel extends Component {
|
|
|
587
616
|
} = this.props;
|
|
588
617
|
var {
|
|
589
618
|
href
|
|
590
|
-
} = event.
|
|
619
|
+
} = event.currentTarget;
|
|
591
620
|
|
|
592
621
|
if (!href || !href.startsWith(notebooksUrl)) {
|
|
593
622
|
return;
|
|
@@ -619,7 +648,7 @@ class NotebookPanel extends Component {
|
|
|
619
648
|
|
|
620
649
|
handleLoadSuccess() {
|
|
621
650
|
this.setState({
|
|
622
|
-
error:
|
|
651
|
+
error: undefined,
|
|
623
652
|
isLoaded: true,
|
|
624
653
|
isLoading: false
|
|
625
654
|
});
|
|
@@ -649,6 +678,8 @@ class NotebookPanel extends Component {
|
|
|
649
678
|
}
|
|
650
679
|
|
|
651
680
|
handleSaveSuccess(file) {
|
|
681
|
+
var _NotebookPanel$langua2;
|
|
682
|
+
|
|
652
683
|
var {
|
|
653
684
|
fileStorage
|
|
654
685
|
} = this.props;
|
|
@@ -656,7 +687,7 @@ class NotebookPanel extends Component {
|
|
|
656
687
|
id: file.filename,
|
|
657
688
|
itemName: file.filename
|
|
658
689
|
};
|
|
659
|
-
var language = NotebookPanel.languageFromFileName(file.filename);
|
|
690
|
+
var language = (_NotebookPanel$langua2 = NotebookPanel.languageFromFileName(file.filename)) !== null && _NotebookPanel$langua2 !== void 0 ? _NotebookPanel$langua2 : '';
|
|
660
691
|
this.setState(state => {
|
|
661
692
|
var {
|
|
662
693
|
fileMetadata: oldMetadata
|
|
@@ -668,7 +699,7 @@ class NotebookPanel extends Component {
|
|
|
668
699
|
|
|
669
700
|
log.debug('handleSaveSuccess', fileMetadata, oldMetadata, settings);
|
|
670
701
|
|
|
671
|
-
if (FileUtils.hasPath(oldMetadata.itemName) && oldMetadata.itemName !== fileMetadata.itemName) {
|
|
702
|
+
if (oldMetadata && FileUtils.hasPath(oldMetadata.itemName) && oldMetadata.itemName !== fileMetadata.itemName) {
|
|
672
703
|
log.debug('handleSaveSuccess deleting old file', oldMetadata.itemName);
|
|
673
704
|
fileStorage.deleteFile(oldMetadata.itemName).catch(NotebookPanel.handleError);
|
|
674
705
|
}
|
|
@@ -704,14 +735,21 @@ class NotebookPanel extends Component {
|
|
|
704
735
|
}
|
|
705
736
|
|
|
706
737
|
handleSaveAsSubmit(name) {
|
|
738
|
+
var _this$getNotebookValu;
|
|
739
|
+
|
|
707
740
|
log.debug('handleSaveAsSubmit', name);
|
|
708
741
|
var {
|
|
709
742
|
fileMetadata
|
|
710
743
|
} = this.state;
|
|
744
|
+
|
|
745
|
+
if (!fileMetadata) {
|
|
746
|
+
return;
|
|
747
|
+
}
|
|
748
|
+
|
|
711
749
|
var {
|
|
712
750
|
itemName: prevItemName
|
|
713
751
|
} = fileMetadata;
|
|
714
|
-
var content = this.getNotebookValue();
|
|
752
|
+
var content = (_this$getNotebookValu = this.getNotebookValue()) !== null && _this$getNotebookValu !== void 0 ? _this$getNotebookValu : '';
|
|
715
753
|
this.setState({
|
|
716
754
|
showSaveAsModal: false
|
|
717
755
|
});
|
|
@@ -734,7 +772,7 @@ class NotebookPanel extends Component {
|
|
|
734
772
|
fileMetadata
|
|
735
773
|
} = this.state;
|
|
736
774
|
|
|
737
|
-
if (fileMetadata.id === oldName) {
|
|
775
|
+
if (fileMetadata && fileMetadata.id === oldName) {
|
|
738
776
|
this.setState({
|
|
739
777
|
fileMetadata: {
|
|
740
778
|
id: newName,
|
|
@@ -756,12 +794,14 @@ class NotebookPanel extends Component {
|
|
|
756
794
|
}
|
|
757
795
|
|
|
758
796
|
handleRunAll() {
|
|
797
|
+
var _this$notebook$getVal;
|
|
798
|
+
|
|
759
799
|
if (!this.notebook) {
|
|
760
800
|
log.error('Editor is not initialized.');
|
|
761
801
|
return;
|
|
762
802
|
}
|
|
763
803
|
|
|
764
|
-
this.runCommand(this.notebook.getValue());
|
|
804
|
+
this.runCommand((_this$notebook$getVal = this.notebook.getValue()) !== null && _this$notebook$getVal !== void 0 ? _this$notebook$getVal : undefined);
|
|
765
805
|
}
|
|
766
806
|
|
|
767
807
|
handleRunSelected() {
|
|
@@ -773,10 +813,10 @@ class NotebookPanel extends Component {
|
|
|
773
813
|
this.runCommand(this.notebook.getSelectedCommand());
|
|
774
814
|
}
|
|
775
815
|
|
|
776
|
-
handleSessionOpened(session,
|
|
816
|
+
handleSessionOpened(session, _ref2) {
|
|
777
817
|
var {
|
|
778
818
|
language
|
|
779
|
-
} =
|
|
819
|
+
} = _ref2;
|
|
780
820
|
this.setState({
|
|
781
821
|
session,
|
|
782
822
|
sessionLanguage: language
|
|
@@ -785,8 +825,8 @@ class NotebookPanel extends Component {
|
|
|
785
825
|
|
|
786
826
|
handleSessionClosed() {
|
|
787
827
|
this.setState({
|
|
788
|
-
session:
|
|
789
|
-
sessionLanguage:
|
|
828
|
+
session: undefined,
|
|
829
|
+
sessionLanguage: undefined
|
|
790
830
|
});
|
|
791
831
|
}
|
|
792
832
|
|
|
@@ -839,7 +879,7 @@ class NotebookPanel extends Component {
|
|
|
839
879
|
}
|
|
840
880
|
/**
|
|
841
881
|
* Transform the link URI to load from where the notebook is if it's relative
|
|
842
|
-
* @param
|
|
882
|
+
* @param src The link to transform
|
|
843
883
|
* @returns String the transformed link
|
|
844
884
|
*/
|
|
845
885
|
|
|
@@ -882,7 +922,8 @@ class NotebookPanel extends Component {
|
|
|
882
922
|
});
|
|
883
923
|
}
|
|
884
924
|
|
|
885
|
-
createNotebook(itemName, language
|
|
925
|
+
createNotebook(itemName, language) {
|
|
926
|
+
var content = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
886
927
|
var {
|
|
887
928
|
glEventHub
|
|
888
929
|
} = this.props;
|
|
@@ -919,16 +960,20 @@ class NotebookPanel extends Component {
|
|
|
919
960
|
}
|
|
920
961
|
|
|
921
962
|
removePreviewStatus() {
|
|
922
|
-
this.setState(
|
|
963
|
+
this.setState(_ref3 => {
|
|
923
964
|
var {
|
|
924
965
|
isPreview
|
|
925
|
-
} =
|
|
966
|
+
} = _ref3;
|
|
926
967
|
|
|
927
968
|
if (isPreview) {
|
|
928
969
|
var {
|
|
929
970
|
fileMetadata
|
|
930
971
|
} = this.state;
|
|
931
|
-
|
|
972
|
+
|
|
973
|
+
if (fileMetadata) {
|
|
974
|
+
this.registerFileMetadata(fileMetadata, false);
|
|
975
|
+
}
|
|
976
|
+
|
|
932
977
|
return {
|
|
933
978
|
isPreview: false
|
|
934
979
|
};
|
|
@@ -939,7 +984,7 @@ class NotebookPanel extends Component {
|
|
|
939
984
|
}
|
|
940
985
|
|
|
941
986
|
render() {
|
|
942
|
-
var _fileMetadata$itemNam;
|
|
987
|
+
var _fileMetadata$itemNam, _settings$value;
|
|
943
988
|
|
|
944
989
|
var {
|
|
945
990
|
fileStorage,
|
|
@@ -994,11 +1039,13 @@ class NotebookPanel extends Component {
|
|
|
994
1039
|
group: ContextActions.groups.high,
|
|
995
1040
|
order: 20
|
|
996
1041
|
}];
|
|
1042
|
+
var portal = tab.element.find('.lm_title_before').get(0);
|
|
1043
|
+
assertNotNull(portal);
|
|
997
1044
|
return /*#__PURE__*/React.createElement(React.Fragment, null, tab && /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement("span", {
|
|
998
1045
|
className: classNames('editor-unsaved-indicator', {
|
|
999
1046
|
'is-unsaved': changeCount !== savedChangeCount
|
|
1000
1047
|
})
|
|
1001
|
-
}),
|
|
1048
|
+
}), portal // tab.element is jquery element, we want a dom element
|
|
1002
1049
|
), /*#__PURE__*/React.createElement(Panel, {
|
|
1003
1050
|
className: "notebook-container",
|
|
1004
1051
|
componentPanel: this,
|
|
@@ -1063,7 +1110,7 @@ class NotebookPanel extends Component {
|
|
|
1063
1110
|
this.notebook = notebook;
|
|
1064
1111
|
}
|
|
1065
1112
|
})), isMarkdown && /*#__PURE__*/React.createElement(MarkdownNotebook, {
|
|
1066
|
-
content: settings.value,
|
|
1113
|
+
content: (_settings$value = settings.value) !== null && _settings$value !== void 0 ? _settings$value : '',
|
|
1067
1114
|
onLinkClick: this.handleLinkClick,
|
|
1068
1115
|
onRunCode: this.handleRunCommand,
|
|
1069
1116
|
transformImageUri: this.handleTransformLinkUri,
|
|
@@ -1101,33 +1148,13 @@ _defineProperty(NotebookPanel, "POPPER_OPTIONS", {
|
|
|
1101
1148
|
|
|
1102
1149
|
_defineProperty(NotebookPanel, "DEFAULT_NAME", 'Untitled');
|
|
1103
1150
|
|
|
1104
|
-
NotebookPanel
|
|
1105
|
-
fileStorage: PropTypes.shape({
|
|
1106
|
-
deleteFile: PropTypes.func.isRequired,
|
|
1107
|
-
loadFile: PropTypes.func.isRequired,
|
|
1108
|
-
saveFile: PropTypes.func.isRequired
|
|
1109
|
-
}).isRequired,
|
|
1110
|
-
glContainer: GLPropTypes.Container.isRequired,
|
|
1111
|
-
glEventHub: GLPropTypes.EventHub.isRequired,
|
|
1112
|
-
isDashboardActive: PropTypes.bool,
|
|
1113
|
-
isPreview: PropTypes.bool,
|
|
1114
|
-
metadata: PropTypes.shape({
|
|
1115
|
-
id: PropTypes.string.isRequired
|
|
1116
|
-
}).isRequired,
|
|
1117
|
-
session: PropTypes.shape({}),
|
|
1118
|
-
sessionLanguage: PropTypes.string,
|
|
1119
|
-
panelState: PropTypes.shape({
|
|
1120
|
-
settings: PropTypes.shape({}),
|
|
1121
|
-
fileMetadata: PropTypes.shape({})
|
|
1122
|
-
}).isRequired,
|
|
1123
|
-
notebooksUrl: PropTypes.string.isRequired
|
|
1124
|
-
};
|
|
1125
|
-
NotebookPanel.defaultProps = {
|
|
1151
|
+
_defineProperty(NotebookPanel, "defaultProps", {
|
|
1126
1152
|
isDashboardActive: true,
|
|
1127
1153
|
isPreview: false,
|
|
1128
1154
|
session: null,
|
|
1129
|
-
sessionLanguage: null
|
|
1130
|
-
|
|
1155
|
+
sessionLanguage: null,
|
|
1156
|
+
notebooksUrl: new URL("".concat(process.env.REACT_APP_NOTEBOOKS_URL, "/"), "".concat(window.location)).href
|
|
1157
|
+
});
|
|
1131
1158
|
|
|
1132
1159
|
var mapStateToProps = (state, ownProps) => {
|
|
1133
1160
|
var fileStorage = getFileStorage(state);
|