@deephaven/dashboard-core-plugins 0.21.2-dhe-vite.4 → 0.22.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/controls/dropdown-filter/DropdownFilter.css.map +1 -1
- package/dist/controls/input-filter/InputFilter.css.map +1 -1
- package/dist/linker/LinkerLink.css.map +1 -1
- package/dist/linker/LinkerOverlayContent.css.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.css.map +1 -1
- package/dist/panels/ChartFilterOverlay.css.map +1 -1
- package/dist/panels/ChartPanel.css.map +1 -1
- package/dist/panels/CommandHistoryPanel.css.map +1 -1
- package/dist/panels/ConsolePanel.css.map +1 -1
- package/dist/panels/DropdownFilterPanel.css.map +1 -1
- package/dist/panels/FileExplorerPanel.css.map +1 -1
- package/dist/panels/FilterSetManager.css.map +1 -1
- package/dist/panels/FilterSetManagerPanel.css.map +1 -1
- package/dist/panels/IrisGridPanel.css.map +1 -1
- package/dist/panels/LogPanel.css.map +1 -1
- package/dist/panels/MarkdownNotebook.css.map +1 -1
- package/dist/panels/MarkdownPanel.css.map +1 -1
- package/dist/panels/NotebookPanel.css.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +23 -10
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +143 -15
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.css.map +1 -1
- package/dist/panels/WidgetPanel.css.map +1 -1
- package/dist/panels/WidgetPanelTooltip.css.map +1 -1
- package/package.json +21 -29
|
@@ -2,6 +2,7 @@ import { Component, MouseEvent, ReactElement } from 'react';
|
|
|
2
2
|
import type { editor } from 'monaco-editor';
|
|
3
3
|
import { ScriptEditor } from '@deephaven/console';
|
|
4
4
|
import { FileStorage, File } from '@deephaven/file-explorer';
|
|
5
|
+
import { WorkspaceSettings } from '@deephaven/redux';
|
|
5
6
|
import { Pending } from '@deephaven/utils';
|
|
6
7
|
import type { Container, EventEmitter, Tab } from '@deephaven/golden-layout';
|
|
7
8
|
import { IdeSession } from '@deephaven/jsapi-shim';
|
|
@@ -9,9 +10,8 @@ import './NotebookPanel.scss';
|
|
|
9
10
|
interface Metadata {
|
|
10
11
|
id: string;
|
|
11
12
|
}
|
|
12
|
-
interface
|
|
13
|
-
|
|
14
|
-
value: string | null;
|
|
13
|
+
interface NotebookSetting {
|
|
14
|
+
isMinimapEnabled: boolean;
|
|
15
15
|
}
|
|
16
16
|
interface FileMetadata {
|
|
17
17
|
itemName: string;
|
|
@@ -19,7 +19,7 @@ interface FileMetadata {
|
|
|
19
19
|
}
|
|
20
20
|
interface PanelState {
|
|
21
21
|
isPreview?: boolean;
|
|
22
|
-
settings:
|
|
22
|
+
settings: editor.IStandaloneEditorConstructionOptions;
|
|
23
23
|
fileMetadata: FileMetadata | null;
|
|
24
24
|
}
|
|
25
25
|
interface NotebookPanelProps {
|
|
@@ -33,6 +33,9 @@ interface NotebookPanelProps {
|
|
|
33
33
|
sessionLanguage: string;
|
|
34
34
|
panelState: PanelState;
|
|
35
35
|
notebooksUrl: string;
|
|
36
|
+
defaultNotebookSettings: NotebookSetting;
|
|
37
|
+
settings: WorkspaceSettings;
|
|
38
|
+
saveSettings: (settings: WorkspaceSettings) => void;
|
|
36
39
|
}
|
|
37
40
|
interface NotebookPanelState {
|
|
38
41
|
error?: {
|
|
@@ -46,7 +49,7 @@ interface NotebookPanelState {
|
|
|
46
49
|
savedChangeCount: number;
|
|
47
50
|
changeCount: number;
|
|
48
51
|
fileMetadata: FileMetadata | null;
|
|
49
|
-
settings:
|
|
52
|
+
settings: editor.IStandaloneEditorConstructionOptions;
|
|
50
53
|
session?: IdeSession;
|
|
51
54
|
sessionLanguage?: string;
|
|
52
55
|
panelState: PanelState;
|
|
@@ -67,6 +70,7 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
|
|
|
67
70
|
isPreview: boolean;
|
|
68
71
|
session: null;
|
|
69
72
|
sessionLanguage: null;
|
|
73
|
+
defaultNotebookSettings: null;
|
|
70
74
|
};
|
|
71
75
|
static languageFromFileName(fileName: string): string | null;
|
|
72
76
|
constructor(props: NotebookPanelProps);
|
|
@@ -80,10 +84,11 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
|
|
|
80
84
|
tabTitleElement: Element | null;
|
|
81
85
|
tabInitOnce: boolean;
|
|
82
86
|
shouldPromptClose: boolean;
|
|
87
|
+
editor?: editor.IStandaloneCodeEditor;
|
|
83
88
|
initTab(tab: Tab): void;
|
|
84
89
|
initTabCloseOverride(): void;
|
|
85
90
|
initTabClasses(tab: Tab): void;
|
|
86
|
-
getNotebookValue(): string |
|
|
91
|
+
getNotebookValue(): string | undefined;
|
|
87
92
|
initNotebookContent(): void;
|
|
88
93
|
closeFileTabById(id: string): void;
|
|
89
94
|
registerFileMetadata(fileMetadata: FileMetadata, isPreview: boolean): void;
|
|
@@ -102,9 +107,10 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
|
|
|
102
107
|
saveContent(filename: string, content: string): void;
|
|
103
108
|
updateSavedChangeCount(): void;
|
|
104
109
|
setPreviewStatus(): void;
|
|
105
|
-
|
|
110
|
+
getSettings: (initialSettings: editor.IStandaloneEditorConstructionOptions, isMinimapEnabled: boolean) => editor.IStandaloneEditorConstructionOptions;
|
|
111
|
+
getOverflowActions: (isMinimapEnabled: boolean, isWordWrapEnabled: boolean) => {
|
|
106
112
|
title: string;
|
|
107
|
-
icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
113
|
+
icon: import("@fortawesome/fontawesome-common-types").IconDefinition | undefined;
|
|
108
114
|
action: () => void;
|
|
109
115
|
group: number;
|
|
110
116
|
shortcut: import("@deephaven/components").Shortcut;
|
|
@@ -115,8 +121,14 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
|
|
|
115
121
|
handleCloseSave(): void;
|
|
116
122
|
handleCloseCancel(): void;
|
|
117
123
|
handleCopy(): void;
|
|
124
|
+
handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void;
|
|
125
|
+
handleEditorWillDestroy(): void;
|
|
118
126
|
handleEditorChange(e: editor.IModelContentChangedEvent): void;
|
|
119
127
|
handleFind(): void;
|
|
128
|
+
updateEditorMinimap(): void;
|
|
129
|
+
handleMinimapChange(): void;
|
|
130
|
+
updateEditorWordWrap(): void;
|
|
131
|
+
handleWordWrapChange(): void;
|
|
120
132
|
handleBlur(): void;
|
|
121
133
|
handleFocus(): void;
|
|
122
134
|
/**
|
|
@@ -159,12 +171,13 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
|
|
|
159
171
|
removePreviewStatus(): void;
|
|
160
172
|
render(): ReactElement;
|
|
161
173
|
}
|
|
162
|
-
declare const _default: import("react-redux").ConnectedComponent<typeof NotebookPanel, import("react-redux").Omit<Pick<NotebookPanelProps, "glContainer" | "metadata" | "glEventHub" | "panelState" | "fileStorage" | "notebooksUrl"> & Partial<Pick<NotebookPanelProps, "session" | "isDashboardActive" | "isPreview" | "sessionLanguage">> & Partial<Pick<{
|
|
174
|
+
declare const _default: import("react-redux").ConnectedComponent<typeof NotebookPanel, import("react-redux").Omit<Pick<NotebookPanelProps, "glContainer" | "metadata" | "glEventHub" | "panelState" | "settings" | "fileStorage" | "notebooksUrl" | "saveSettings"> & Partial<Pick<NotebookPanelProps, "defaultNotebookSettings" | "session" | "isDashboardActive" | "isPreview" | "sessionLanguage">> & Partial<Pick<{
|
|
163
175
|
isDashboardActive: boolean;
|
|
164
176
|
isPreview: boolean;
|
|
165
177
|
session: null;
|
|
166
178
|
sessionLanguage: null;
|
|
167
|
-
|
|
179
|
+
defaultNotebookSettings: null;
|
|
180
|
+
}, never>>, "settings" | "defaultNotebookSettings" | "session" | "fileStorage" | "sessionLanguage" | "saveSettings"> & {
|
|
168
181
|
localDashboardId: string;
|
|
169
182
|
}>;
|
|
170
183
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAInE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,EAAE,YAAY,EAAgC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,WAAW,EAGX,IAAI,EACL,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
|
13
13
|
import { BasicModal, ContextActions, DropdownMenu, Tooltip, GLOBAL_SHORTCUTS, Button } from '@deephaven/components';
|
|
14
14
|
import { ScriptEditor, ScriptEditorUtils, SHORTCUTS } from '@deephaven/console';
|
|
15
15
|
import { FileUtils, NewItemModal } from '@deephaven/file-explorer';
|
|
16
|
-
import { vsSave, vsKebabVertical, dhFileSearch, vsPlay, dhRunSelection } from '@deephaven/icons';
|
|
17
|
-
import { getFileStorage } from '@deephaven/redux';
|
|
16
|
+
import { vsSave, vsKebabVertical, dhFileSearch, vsPlay, dhRunSelection, vsCheck } from '@deephaven/icons';
|
|
17
|
+
import { getFileStorage, saveSettings as saveSettingsAction, getSettings, getDefaultNotebookSettings } from '@deephaven/redux';
|
|
18
18
|
import classNames from 'classnames';
|
|
19
19
|
import debounce from 'lodash.debounce';
|
|
20
20
|
import Log from '@deephaven/log';
|
|
@@ -72,13 +72,35 @@ class NotebookPanel extends Component {
|
|
|
72
72
|
|
|
73
73
|
_defineProperty(this, "shouldPromptClose", void 0);
|
|
74
74
|
|
|
75
|
-
_defineProperty(this, "
|
|
75
|
+
_defineProperty(this, "editor", void 0);
|
|
76
|
+
|
|
77
|
+
_defineProperty(this, "getSettings", memoize((initialSettings, isMinimapEnabled) => _objectSpread(_objectSpread({}, initialSettings), {}, {
|
|
78
|
+
minimap: {
|
|
79
|
+
enabled: isMinimapEnabled
|
|
80
|
+
}
|
|
81
|
+
})));
|
|
82
|
+
|
|
83
|
+
_defineProperty(this, "getOverflowActions", memoize((isMinimapEnabled, isWordWrapEnabled) => [{
|
|
76
84
|
title: 'Find',
|
|
77
85
|
icon: dhFileSearch,
|
|
78
86
|
action: this.handleFind,
|
|
79
87
|
group: ContextActions.groups.high,
|
|
80
88
|
shortcut: SHORTCUTS.NOTEBOOK.FIND,
|
|
81
89
|
order: 10
|
|
90
|
+
}, {
|
|
91
|
+
title: 'Show Minimap',
|
|
92
|
+
icon: isMinimapEnabled ? vsCheck : undefined,
|
|
93
|
+
action: this.handleMinimapChange,
|
|
94
|
+
group: ContextActions.groups.medium,
|
|
95
|
+
shortcut: SHORTCUTS.NOTEBOOK.MINIMAP,
|
|
96
|
+
order: 20
|
|
97
|
+
}, {
|
|
98
|
+
title: 'Word Wrap',
|
|
99
|
+
icon: isWordWrapEnabled ? vsCheck : undefined,
|
|
100
|
+
action: this.handleWordWrapChange,
|
|
101
|
+
group: ContextActions.groups.medium,
|
|
102
|
+
shortcut: SHORTCUTS.NOTEBOOK.WORDWRAP,
|
|
103
|
+
order: 30
|
|
82
104
|
}]));
|
|
83
105
|
|
|
84
106
|
this.handleBlur = this.handleBlur.bind(this);
|
|
@@ -86,8 +108,12 @@ class NotebookPanel extends Component {
|
|
|
86
108
|
this.handleCloseDiscard = this.handleCloseDiscard.bind(this);
|
|
87
109
|
this.handleCloseSave = this.handleCloseSave.bind(this);
|
|
88
110
|
this.handleCopy = this.handleCopy.bind(this);
|
|
111
|
+
this.handleEditorInitialized = this.handleEditorInitialized.bind(this);
|
|
112
|
+
this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);
|
|
89
113
|
this.handleEditorChange = this.handleEditorChange.bind(this);
|
|
90
114
|
this.handleFind = this.handleFind.bind(this);
|
|
115
|
+
this.handleMinimapChange = this.handleMinimapChange.bind(this);
|
|
116
|
+
this.handleWordWrapChange = this.handleWordWrapChange.bind(this);
|
|
91
117
|
this.handleFocus = this.handleFocus.bind(this);
|
|
92
118
|
this.handleLinkClick = this.handleLinkClick.bind(this);
|
|
93
119
|
this.handleLoadSuccess = this.handleLoadSuccess.bind(this);
|
|
@@ -126,7 +152,8 @@ class NotebookPanel extends Component {
|
|
|
126
152
|
} = props;
|
|
127
153
|
var settings = {
|
|
128
154
|
value: '',
|
|
129
|
-
language: ''
|
|
155
|
+
language: '',
|
|
156
|
+
wordWrap: 'off'
|
|
130
157
|
};
|
|
131
158
|
var fileMetadata = null;
|
|
132
159
|
var {
|
|
@@ -189,12 +216,28 @@ class NotebookPanel extends Component {
|
|
|
189
216
|
|
|
190
217
|
componentDidUpdate(prevProps, prevState) {
|
|
191
218
|
var {
|
|
192
|
-
isPreview
|
|
219
|
+
isPreview,
|
|
220
|
+
settings
|
|
193
221
|
} = this.state;
|
|
222
|
+
var {
|
|
223
|
+
wordWrap
|
|
224
|
+
} = settings;
|
|
225
|
+
var {
|
|
226
|
+
defaultNotebookSettings
|
|
227
|
+
} = this.props;
|
|
194
228
|
|
|
195
229
|
if (isPreview !== prevState.isPreview) {
|
|
196
230
|
this.setPreviewStatus();
|
|
197
231
|
}
|
|
232
|
+
|
|
233
|
+
if (wordWrap !== prevState.settings.wordWrap) {
|
|
234
|
+
this.updateEditorWordWrap();
|
|
235
|
+
this.debouncedSavePanelState();
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
if (defaultNotebookSettings.isMinimapEnabled !== prevProps.defaultNotebookSettings.isMinimapEnabled) {
|
|
239
|
+
this.updateEditorMinimap();
|
|
240
|
+
}
|
|
198
241
|
}
|
|
199
242
|
|
|
200
243
|
componentWillUnmount() {
|
|
@@ -372,6 +415,10 @@ class NotebookPanel extends Component {
|
|
|
372
415
|
updatedSettings.value = loadedFile.content;
|
|
373
416
|
}
|
|
374
417
|
|
|
418
|
+
if (settings.wordWrap === undefined) {
|
|
419
|
+
settings.wordWrap = 'off';
|
|
420
|
+
}
|
|
421
|
+
|
|
375
422
|
this.setState({
|
|
376
423
|
fileMetadata: {
|
|
377
424
|
id: itemName,
|
|
@@ -396,7 +443,7 @@ class NotebookPanel extends Component {
|
|
|
396
443
|
if (fileMetadata && FileUtils.hasPath(fileMetadata.itemName)) {
|
|
397
444
|
var content = this.getNotebookValue();
|
|
398
445
|
|
|
399
|
-
if (content
|
|
446
|
+
if (content !== undefined) {
|
|
400
447
|
this.saveContent(fileMetadata.itemName, content);
|
|
401
448
|
return true;
|
|
402
449
|
}
|
|
@@ -469,7 +516,7 @@ class NotebookPanel extends Component {
|
|
|
469
516
|
var value = this.getNotebookValue(); // notebooks with no unsaved changes have value === null in dehydrated state
|
|
470
517
|
// content will be loaded from file when hydrating
|
|
471
518
|
|
|
472
|
-
var dehydratedValue = changeCount !== savedChangeCount ? value :
|
|
519
|
+
var dehydratedValue = changeCount !== savedChangeCount ? value : undefined;
|
|
473
520
|
|
|
474
521
|
var settings = _objectSpread(_objectSpread({}, initialSettings), {}, {
|
|
475
522
|
value
|
|
@@ -540,7 +587,15 @@ class NotebookPanel extends Component {
|
|
|
540
587
|
} = fileMetadata;
|
|
541
588
|
var copyName = FileUtils.getCopyFileName(itemName);
|
|
542
589
|
log.debug('handleCopy', fileMetadata, itemName, copyName);
|
|
543
|
-
this.createNotebook(copyName, language, content
|
|
590
|
+
this.createNotebook(copyName, language, content);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
handleEditorInitialized(innerEditor) {
|
|
594
|
+
this.editor = innerEditor;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
handleEditorWillDestroy() {
|
|
598
|
+
this.editor = undefined;
|
|
544
599
|
}
|
|
545
600
|
|
|
546
601
|
handleEditorChange(e) {
|
|
@@ -588,6 +643,65 @@ class NotebookPanel extends Component {
|
|
|
588
643
|
}
|
|
589
644
|
}
|
|
590
645
|
|
|
646
|
+
updateEditorMinimap() {
|
|
647
|
+
if (this.editor) {
|
|
648
|
+
var {
|
|
649
|
+
defaultNotebookSettings
|
|
650
|
+
} = this.props;
|
|
651
|
+
this.editor.updateOptions({
|
|
652
|
+
minimap: {
|
|
653
|
+
enabled: defaultNotebookSettings.isMinimapEnabled
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
handleMinimapChange() {
|
|
660
|
+
var {
|
|
661
|
+
settings,
|
|
662
|
+
defaultNotebookSettings,
|
|
663
|
+
saveSettings
|
|
664
|
+
} = this.props;
|
|
665
|
+
|
|
666
|
+
var newSettings = _objectSpread(_objectSpread({}, settings), {}, {
|
|
667
|
+
defaultNotebookSettings: {
|
|
668
|
+
isMinimapEnabled: !defaultNotebookSettings.isMinimapEnabled
|
|
669
|
+
}
|
|
670
|
+
});
|
|
671
|
+
|
|
672
|
+
saveSettings(newSettings);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
updateEditorWordWrap() {
|
|
676
|
+
if (this.editor) {
|
|
677
|
+
var {
|
|
678
|
+
settings: _settings
|
|
679
|
+
} = this.state;
|
|
680
|
+
var {
|
|
681
|
+
wordWrap
|
|
682
|
+
} = _settings;
|
|
683
|
+
this.editor.updateOptions({
|
|
684
|
+
wordWrap
|
|
685
|
+
});
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
handleWordWrapChange() {
|
|
690
|
+
if (this.editor) {
|
|
691
|
+
this.setState(prevState => {
|
|
692
|
+
var {
|
|
693
|
+
settings
|
|
694
|
+
} = prevState;
|
|
695
|
+
var wordWrap = settings.wordWrap === 'on' ? 'off' : 'on';
|
|
696
|
+
return {
|
|
697
|
+
settings: _objectSpread(_objectSpread({}, settings), {}, {
|
|
698
|
+
wordWrap
|
|
699
|
+
})
|
|
700
|
+
};
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
|
|
591
705
|
handleBlur() {
|
|
592
706
|
log.debug('handleBlur');
|
|
593
707
|
this.setState({
|
|
@@ -990,7 +1104,8 @@ class NotebookPanel extends Component {
|
|
|
990
1104
|
glContainer: {
|
|
991
1105
|
tab
|
|
992
1106
|
},
|
|
993
|
-
glEventHub
|
|
1107
|
+
glEventHub,
|
|
1108
|
+
defaultNotebookSettings
|
|
994
1109
|
} = this.props;
|
|
995
1110
|
var {
|
|
996
1111
|
changeCount,
|
|
@@ -1012,10 +1127,8 @@ class NotebookPanel extends Component {
|
|
|
1012
1127
|
var itemName = (_fileMetadata$itemNam = fileMetadata === null || fileMetadata === void 0 ? void 0 : fileMetadata.itemName) !== null && _fileMetadata$itemNam !== void 0 ? _fileMetadata$itemNam : NotebookPanel.DEFAULT_NAME;
|
|
1013
1128
|
var isMarkdown = itemName.endsWith('.md');
|
|
1014
1129
|
var isExistingItem = (fileMetadata === null || fileMetadata === void 0 ? void 0 : fileMetadata.id) != null;
|
|
1015
|
-
var
|
|
1016
|
-
|
|
1017
|
-
var settings = _objectSpread({}, initialSettings);
|
|
1018
|
-
|
|
1130
|
+
var settings = this.getSettings(initialSettings, defaultNotebookSettings.isMinimapEnabled);
|
|
1131
|
+
var overflowActions = this.getOverflowActions(defaultNotebookSettings.isMinimapEnabled, settings.wordWrap === 'on');
|
|
1019
1132
|
var isSessionConnected = session != null;
|
|
1020
1133
|
var isLanguageMatching = sessionLanguage === settings.language;
|
|
1021
1134
|
var runButtonsDisabled = !isLoaded || !isSessionConnected || !isLanguageMatching;
|
|
@@ -1023,6 +1136,12 @@ class NotebookPanel extends Component {
|
|
|
1023
1136
|
var contextActions = [{
|
|
1024
1137
|
action: this.handleSave,
|
|
1025
1138
|
shortcut: GLOBAL_SHORTCUTS.SAVE
|
|
1139
|
+
}, {
|
|
1140
|
+
action: this.handleMinimapChange,
|
|
1141
|
+
shortcut: SHORTCUTS.NOTEBOOK.MINIMAP
|
|
1142
|
+
}, {
|
|
1143
|
+
action: this.handleWordWrapChange,
|
|
1144
|
+
shortcut: SHORTCUTS.NOTEBOOK.WORDWRAP
|
|
1026
1145
|
}];
|
|
1027
1146
|
var disabledRunButtonTooltip = ScriptEditorUtils.getDisabledRunTooltip(isSessionConnected, isLanguageMatching, 'Notebook extension', 'Run');
|
|
1028
1147
|
var disabledRunSelectedButtonTooltip = ScriptEditorUtils.getDisabledRunTooltip(isSessionConnected, isLanguageMatching, 'Notebook extension', 'Run Selected');
|
|
@@ -1110,6 +1229,8 @@ class NotebookPanel extends Component {
|
|
|
1110
1229
|
onRunCommand: this.handleRunCommand,
|
|
1111
1230
|
session: session,
|
|
1112
1231
|
sessionLanguage: sessionLanguage,
|
|
1232
|
+
onEditorInitialized: this.handleEditorInitialized,
|
|
1233
|
+
onEditorWillDestroy: this.handleEditorWillDestroy,
|
|
1113
1234
|
settings: settings,
|
|
1114
1235
|
focusOnMount: focusOnMount,
|
|
1115
1236
|
ref: notebook => {
|
|
@@ -1158,11 +1279,14 @@ _defineProperty(NotebookPanel, "defaultProps", {
|
|
|
1158
1279
|
isDashboardActive: true,
|
|
1159
1280
|
isPreview: false,
|
|
1160
1281
|
session: null,
|
|
1161
|
-
sessionLanguage: null
|
|
1282
|
+
sessionLanguage: null,
|
|
1283
|
+
defaultNotebookSettings: null
|
|
1162
1284
|
});
|
|
1163
1285
|
|
|
1164
1286
|
var mapStateToProps = (state, ownProps) => {
|
|
1165
1287
|
var fileStorage = getFileStorage(state);
|
|
1288
|
+
var settings = getSettings(state);
|
|
1289
|
+
var defaultNotebookSettings = getDefaultNotebookSettings(state);
|
|
1166
1290
|
var sessionWrapper = getDashboardSessionWrapper(state, ownProps.localDashboardId);
|
|
1167
1291
|
var {
|
|
1168
1292
|
session,
|
|
@@ -1173,12 +1297,16 @@ var mapStateToProps = (state, ownProps) => {
|
|
|
1173
1297
|
} = sessionConfig !== null && sessionConfig !== void 0 ? sessionConfig : {};
|
|
1174
1298
|
return {
|
|
1175
1299
|
fileStorage,
|
|
1300
|
+
settings,
|
|
1301
|
+
defaultNotebookSettings,
|
|
1176
1302
|
session,
|
|
1177
1303
|
sessionLanguage
|
|
1178
1304
|
};
|
|
1179
1305
|
};
|
|
1180
1306
|
|
|
1181
|
-
export default connect(mapStateToProps,
|
|
1307
|
+
export default connect(mapStateToProps, {
|
|
1308
|
+
saveSettings: saveSettingsAction
|
|
1309
|
+
}, null, {
|
|
1182
1310
|
forwardRef: true
|
|
1183
1311
|
})(NotebookPanel);
|
|
1184
1312
|
//# sourceMappingURL=NotebookPanel.js.map
|