@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.
@@ -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 Settings {
13
- language: string;
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: 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: 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 | null;
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
- getOverflowActions: () => {
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
- }, never>>, "session" | "fileStorage" | "sessionLanguage"> & {
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":"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"}
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, "getOverflowActions", memoize(() => [{
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 != null) {
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 : null;
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 !== null && content !== void 0 ? content : undefined);
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 overflowActions = this.getOverflowActions();
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, null, null, {
1307
+ export default connect(mapStateToProps, {
1308
+ saveSettings: saveSettingsAction
1309
+ }, null, {
1182
1310
  forwardRef: true
1183
1311
  })(NotebookPanel);
1184
1312
  //# sourceMappingURL=NotebookPanel.js.map