@deephaven/console 0.15.1-beta.2 → 0.15.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/Console.d.ts +129 -121
  2. package/dist/Console.d.ts.map +1 -1
  3. package/dist/Console.js +98 -99
  4. package/dist/Console.js.map +1 -1
  5. package/dist/ConsoleInput.d.ts +47 -43
  6. package/dist/ConsoleInput.d.ts.map +1 -1
  7. package/dist/ConsoleInput.js +111 -73
  8. package/dist/ConsoleInput.js.map +1 -1
  9. package/dist/ConsoleMenu.d.ts +24 -22
  10. package/dist/ConsoleMenu.d.ts.map +1 -1
  11. package/dist/ConsoleMenu.js +7 -12
  12. package/dist/ConsoleMenu.js.map +1 -1
  13. package/dist/ConsolePropTypes.d.ts +2 -2
  14. package/dist/ConsolePropTypes.d.ts.map +1 -1
  15. package/dist/ConsolePropTypes.js.map +1 -1
  16. package/dist/ConsoleStatusBar.d.ts +26 -29
  17. package/dist/ConsoleStatusBar.d.ts.map +1 -1
  18. package/dist/ConsoleStatusBar.js +11 -12
  19. package/dist/ConsoleStatusBar.js.map +1 -1
  20. package/dist/StoragePropTypes.d.ts +2 -2
  21. package/dist/StoragePropTypes.d.ts.map +1 -1
  22. package/dist/StoragePropTypes.js.map +1 -1
  23. package/dist/command-history/CommandHistory.d.ts +52 -77
  24. package/dist/command-history/CommandHistory.d.ts.map +1 -1
  25. package/dist/command-history/CommandHistory.js +12 -14
  26. package/dist/command-history/CommandHistory.js.map +1 -1
  27. package/dist/command-history/CommandHistoryActions.d.ts +11 -19
  28. package/dist/command-history/CommandHistoryActions.d.ts.map +1 -1
  29. package/dist/command-history/CommandHistoryActions.js +4 -19
  30. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  31. package/dist/command-history/CommandHistoryItem.d.ts +15 -21
  32. package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
  33. package/dist/command-history/CommandHistoryItem.js +1 -10
  34. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  35. package/dist/command-history/CommandHistoryItemTooltip.d.ts +34 -31
  36. package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
  37. package/dist/command-history/CommandHistoryItemTooltip.js +28 -36
  38. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  39. package/dist/command-history/CommandHistoryTypes.d.ts +19 -0
  40. package/dist/command-history/CommandHistoryTypes.d.ts.map +1 -0
  41. package/dist/command-history/CommandHistoryTypes.js +2 -0
  42. package/dist/command-history/CommandHistoryTypes.js.map +1 -0
  43. package/dist/command-history/index.d.ts +5 -5
  44. package/dist/command-history/index.d.ts.map +1 -1
  45. package/dist/command-history/index.js.map +1 -1
  46. package/dist/common/Code.d.ts +10 -11
  47. package/dist/common/Code.d.ts.map +1 -1
  48. package/dist/common/Code.js +5 -5
  49. package/dist/common/Code.js.map +1 -1
  50. package/dist/common/ConsoleUtils.d.ts +20 -8
  51. package/dist/common/ConsoleUtils.d.ts.map +1 -1
  52. package/dist/common/ConsoleUtils.js +34 -10
  53. package/dist/common/ConsoleUtils.js.map +1 -1
  54. package/dist/console-history/ConsoleHistory.d.ts +19 -18
  55. package/dist/console-history/ConsoleHistory.d.ts.map +1 -1
  56. package/dist/console-history/ConsoleHistory.js +5 -9
  57. package/dist/console-history/ConsoleHistory.js.map +1 -1
  58. package/dist/console-history/ConsoleHistoryItem.d.ts +21 -44
  59. package/dist/console-history/ConsoleHistoryItem.d.ts.map +1 -1
  60. package/dist/console-history/ConsoleHistoryItem.js +12 -28
  61. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  62. package/dist/console-history/ConsoleHistoryItemResult.d.ts +13 -9
  63. package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
  64. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  65. package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts +25 -21
  66. package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts.map +1 -1
  67. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +15 -9
  68. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  69. package/dist/console-history/ConsoleHistoryResultInProgress.d.ts +21 -17
  70. package/dist/console-history/ConsoleHistoryResultInProgress.d.ts.map +1 -1
  71. package/dist/console-history/ConsoleHistoryResultInProgress.js +12 -10
  72. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  73. package/dist/console-history/ConsoleHistoryTypes.d.ts +19 -0
  74. package/dist/console-history/ConsoleHistoryTypes.d.ts.map +1 -0
  75. package/dist/console-history/ConsoleHistoryTypes.js +2 -0
  76. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -0
  77. package/dist/console-history/index.d.ts +5 -5
  78. package/dist/console-history/index.d.ts.map +1 -1
  79. package/dist/console-history/index.js.map +1 -1
  80. package/dist/csv/CsvFormats.d.ts +13 -12
  81. package/dist/csv/CsvFormats.d.ts.map +1 -1
  82. package/dist/csv/CsvFormats.js +8 -8
  83. package/dist/csv/CsvFormats.js.map +1 -1
  84. package/dist/csv/CsvInputBar.d.ts +46 -38
  85. package/dist/csv/CsvInputBar.d.ts.map +1 -1
  86. package/dist/csv/CsvInputBar.js +15 -23
  87. package/dist/csv/CsvInputBar.js.map +1 -1
  88. package/dist/csv/CsvOverlay.d.ts +40 -40
  89. package/dist/csv/CsvOverlay.d.ts.map +1 -1
  90. package/dist/csv/CsvOverlay.js +38 -29
  91. package/dist/csv/CsvOverlay.js.map +1 -1
  92. package/dist/csv/CsvParser.d.ts +44 -46
  93. package/dist/csv/CsvParser.d.ts.map +1 -1
  94. package/dist/csv/CsvParser.js +53 -8
  95. package/dist/csv/CsvParser.js.map +1 -1
  96. package/dist/csv/CsvTypeParser.d.ts +32 -27
  97. package/dist/csv/CsvTypeParser.d.ts.map +1 -1
  98. package/dist/csv/CsvTypeParser.js +42 -8
  99. package/dist/csv/CsvTypeParser.js.map +1 -1
  100. package/dist/csv/NewTableColumnTypes.d.ts +1 -1
  101. package/dist/csv/NewTableColumnTypes.d.ts.map +1 -1
  102. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  103. package/dist/declaration.d.js +2 -0
  104. package/dist/declaration.d.js.map +1 -0
  105. package/dist/index.d.ts +14 -13
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/log/LogLevel.d.ts +1 -1
  109. package/dist/log/LogLevel.d.ts.map +1 -1
  110. package/dist/log/LogLevel.js.map +1 -1
  111. package/dist/log/LogLevelMenuItem.d.ts +11 -12
  112. package/dist/log/LogLevelMenuItem.d.ts.map +1 -1
  113. package/dist/log/LogLevelMenuItem.js +0 -6
  114. package/dist/log/LogLevelMenuItem.js.map +1 -1
  115. package/dist/log/LogView.d.ts +40 -47
  116. package/dist/log/LogView.d.ts.map +1 -1
  117. package/dist/log/LogView.js +65 -29
  118. package/dist/log/LogView.js.map +1 -1
  119. package/dist/monaco/MonacoCompletionProvider.d.ts +19 -19
  120. package/dist/monaco/MonacoCompletionProvider.d.ts.map +1 -1
  121. package/dist/monaco/MonacoCompletionProvider.js +11 -15
  122. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  123. package/dist/monaco/MonacoUtils.d.ts +77 -20
  124. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  125. package/dist/monaco/MonacoUtils.js +32 -24
  126. package/dist/monaco/MonacoUtils.js.map +1 -1
  127. package/dist/monaco/index.d.ts +3 -2
  128. package/dist/monaco/index.d.ts.map +1 -1
  129. package/dist/monaco/index.js.map +1 -1
  130. package/dist/monaco/lang/Language.d.ts +7 -0
  131. package/dist/monaco/lang/Language.d.ts.map +1 -0
  132. package/dist/monaco/lang/Language.js +2 -0
  133. package/dist/monaco/lang/Language.js.map +1 -0
  134. package/dist/monaco/lang/db.d.ts +3 -93
  135. package/dist/monaco/lang/db.d.ts.map +1 -1
  136. package/dist/monaco/lang/db.js +18 -3
  137. package/dist/monaco/lang/db.js.map +1 -1
  138. package/dist/monaco/lang/groovy.d.ts +3 -146
  139. package/dist/monaco/lang/groovy.d.ts.map +1 -1
  140. package/dist/monaco/lang/groovy.js +15 -2
  141. package/dist/monaco/lang/groovy.js.map +1 -1
  142. package/dist/monaco/lang/log.d.ts +3 -40
  143. package/dist/monaco/lang/log.d.ts.map +1 -1
  144. package/dist/monaco/lang/log.js +2 -1
  145. package/dist/monaco/lang/log.js.map +1 -1
  146. package/dist/monaco/lang/python.d.ts +3 -154
  147. package/dist/monaco/lang/python.d.ts.map +1 -1
  148. package/dist/monaco/lang/python.js +15 -2
  149. package/dist/monaco/lang/python.js.map +1 -1
  150. package/dist/monaco/lang/scala.d.ts +3 -140
  151. package/dist/monaco/lang/scala.d.ts.map +1 -1
  152. package/dist/monaco/lang/scala.js +10 -3
  153. package/dist/monaco/lang/scala.js.map +1 -1
  154. package/dist/notebook/Editor.d.ts +26 -27
  155. package/dist/notebook/Editor.d.ts.map +1 -1
  156. package/dist/notebook/Editor.js +23 -19
  157. package/dist/notebook/Editor.js.map +1 -1
  158. package/dist/notebook/ScriptEditor.d.ts +54 -51
  159. package/dist/notebook/ScriptEditor.d.ts.map +1 -1
  160. package/dist/notebook/ScriptEditor.js +45 -48
  161. package/dist/notebook/ScriptEditor.js.map +1 -1
  162. package/dist/notebook/ScriptEditorUtils.d.ts +15 -10
  163. package/dist/notebook/ScriptEditorUtils.d.ts.map +1 -1
  164. package/dist/notebook/ScriptEditorUtils.js +7 -7
  165. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  166. package/package.json +12 -11
@@ -1,10 +1,12 @@
1
+ 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; }
2
+
1
3
  /**
2
4
  * Script editor for large blocks of code
3
5
  */
4
6
  import React, { Component } from 'react';
5
- import PropTypes from 'prop-types';
6
7
  import { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';
7
8
  import Log from '@deephaven/log';
9
+ import { assertNotNull } from '@deephaven/utils';
8
10
  import Editor from "./Editor.js";
9
11
  import { MonacoCompletionProvider, MonacoUtils } from "../monaco/index.js";
10
12
  import "./ScriptEditor.css";
@@ -14,14 +16,21 @@ var log = Log.module('ScriptEditor');
14
16
  class ScriptEditor extends Component {
15
17
  constructor(props) {
16
18
  super(props);
19
+
20
+ _defineProperty(this, "contextActionCleanups", void 0);
21
+
22
+ _defineProperty(this, "completionCleanup", void 0);
23
+
24
+ _defineProperty(this, "editor", void 0);
25
+
26
+ _defineProperty(this, "editorComponent", void 0);
27
+
17
28
  this.handleEditorInitialized = this.handleEditorInitialized.bind(this);
18
29
  this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);
19
30
  this.handleRun = this.handleRun.bind(this);
20
31
  this.handleRunSelected = this.handleRunSelected.bind(this);
21
32
  this.updateShortcuts = this.updateShortcuts.bind(this);
22
33
  this.contextActionCleanups = [];
23
- this.completionCleanup = null;
24
- this.editor = null;
25
34
  this.editorComponent = /*#__PURE__*/React.createRef();
26
35
  this.state = {
27
36
  model: null
@@ -33,14 +42,14 @@ class ScriptEditor extends Component {
33
42
  }
34
43
 
35
44
  componentDidUpdate(prevProps) {
45
+ var _prevProps$settings, _prevProps$settings2;
46
+
36
47
  var {
37
48
  sessionLanguage,
38
49
  settings
39
50
  } = this.props;
40
- var {
41
- language
42
- } = settings;
43
- var languageChanged = language !== prevProps.settings.language;
51
+ var language = settings === null || settings === void 0 ? void 0 : settings.language;
52
+ var languageChanged = language !== ((_prevProps$settings = prevProps.settings) === null || _prevProps$settings === void 0 ? void 0 : _prevProps$settings.language);
44
53
 
45
54
  if (languageChanged) {
46
55
  log.debug('Set language', language);
@@ -49,7 +58,7 @@ class ScriptEditor extends Component {
49
58
 
50
59
  var sessionDisconnected = sessionLanguage == null && prevProps.sessionLanguage != null;
51
60
  var languageMatch = language === sessionLanguage;
52
- var prevLanguageMatch = prevProps.settings.language === prevProps.sessionLanguage;
61
+ var prevLanguageMatch = ((_prevProps$settings2 = prevProps.settings) === null || _prevProps$settings2 === void 0 ? void 0 : _prevProps$settings2.language) === prevProps.sessionLanguage;
53
62
 
54
63
  if (sessionDisconnected || sessionLanguage && prevLanguageMatch && !languageMatch) {
55
64
  // Session disconnected or language changed from matching the session language to non-matching
@@ -82,8 +91,12 @@ class ScriptEditor extends Component {
82
91
  }
83
92
 
84
93
  getSelectedCommand() {
85
- var range = this.editor.getSelection();
86
- var model = this.editor.getModel();
94
+ var _this$editor, _this$editor2;
95
+
96
+ var range = (_this$editor = this.editor) === null || _this$editor === void 0 ? void 0 : _this$editor.getSelection();
97
+ assertNotNull(range);
98
+ var model = (_this$editor2 = this.editor) === null || _this$editor2 === void 0 ? void 0 : _this$editor2.getModel();
99
+ assertNotNull(model);
87
100
  var {
88
101
  startLineNumber,
89
102
  endColumn
@@ -96,13 +109,13 @@ class ScriptEditor extends Component {
96
109
  endLineNumber -= 1;
97
110
  }
98
111
 
99
- var startLineMinColumn = model.getLineMinColumn(startLineNumber);
100
- var endLineMaxColumn = model.getLineMaxColumn(endLineNumber);
112
+ var startLineMinColumn = model === null || model === void 0 ? void 0 : model.getLineMinColumn(startLineNumber);
113
+ var endLineMaxColumn = model === null || model === void 0 ? void 0 : model.getLineMaxColumn(endLineNumber);
101
114
  var wholeLineRange = range.setStartPosition(startLineNumber, startLineMinColumn).setEndPosition(endLineNumber, endLineMaxColumn);
102
- return model.getValueInRange(wholeLineRange);
115
+ return model === null || model === void 0 ? void 0 : model.getValueInRange(wholeLineRange);
103
116
  }
104
117
 
105
- handleEditorInitialized(editor) {
118
+ handleEditorInitialized(innerEditor) {
106
119
  var {
107
120
  focusOnMount,
108
121
  onChange,
@@ -111,22 +124,22 @@ class ScriptEditor extends Component {
111
124
  sessionLanguage
112
125
  } = this.props;
113
126
  log.debug('handleEditorInitialized', sessionLanguage, session, settings);
114
- this.editor = editor;
127
+ this.editor = innerEditor;
115
128
  this.setState({
116
129
  model: this.editor.getModel()
117
130
  });
118
- MonacoUtils.setEOL(editor);
119
- MonacoUtils.registerPasteHandler(editor);
131
+ MonacoUtils.setEOL(innerEditor);
132
+ MonacoUtils.registerPasteHandler(innerEditor);
120
133
 
121
134
  if (session && settings && sessionLanguage === settings.language) {
122
135
  this.initContextActions();
123
136
  this.initCodeCompletion();
124
137
  }
125
138
 
126
- editor.onDidChangeModelContent(onChange);
139
+ innerEditor.onDidChangeModelContent(onChange);
127
140
 
128
141
  if (focusOnMount) {
129
- editor.focus();
142
+ innerEditor.focus();
130
143
  }
131
144
  }
132
145
 
@@ -137,7 +150,7 @@ class ScriptEditor extends Component {
137
150
  this.setState({
138
151
  model: null
139
152
  });
140
- this.editor = null;
153
+ this.editor = undefined;
141
154
  }
142
155
 
143
156
  handleRun() {
@@ -145,7 +158,10 @@ class ScriptEditor extends Component {
145
158
  onRunCommand
146
159
  } = this.props;
147
160
  var command = this.getValue();
148
- onRunCommand(command);
161
+
162
+ if (command != null) {
163
+ onRunCommand(command);
164
+ }
149
165
  }
150
166
 
151
167
  handleRunSelected() {
@@ -171,26 +187,20 @@ class ScriptEditor extends Component {
171
187
  id: 'run-code',
172
188
  label: 'Run',
173
189
  keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN)],
174
- precondition: null,
175
- keybindingContext: null,
176
190
  contextMenuGroupId: 'navigation',
177
191
  contextMenuOrder: 1.5,
178
192
  run: () => {
179
193
  this.handleRun();
180
- return null;
181
194
  }
182
195
  }));
183
196
  cleanups.push(this.editor.addAction({
184
197
  id: 'run-selected-code',
185
198
  label: 'Run Selected',
186
199
  keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN_SELECTED)],
187
- precondition: null,
188
- keybindingContext: null,
189
200
  contextMenuGroupId: 'navigation',
190
201
  contextMenuOrder: 1.5,
191
202
  run: () => {
192
203
  this.handleRunSelected();
193
- return null;
194
204
  }
195
205
  }));
196
206
  this.contextActionCleanups = cleanups;
@@ -232,7 +242,7 @@ class ScriptEditor extends Component {
232
242
 
233
243
  if (this.completionCleanup) {
234
244
  this.completionCleanup.dispose();
235
- this.completionCleanup = null;
245
+ this.completionCleanup = undefined;
236
246
  }
237
247
 
238
248
  if (this.editor && session) {
@@ -242,7 +252,9 @@ class ScriptEditor extends Component {
242
252
 
243
253
  append(text) {
244
254
  var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
255
+ assertNotNull(this.editor);
245
256
  var model = this.editor.getModel();
257
+ assertNotNull(model);
246
258
  var currentText = model.getValue();
247
259
 
248
260
  if (currentText) {
@@ -286,7 +298,7 @@ class ScriptEditor extends Component {
286
298
  }
287
299
 
288
300
  setLanguage(language) {
289
- if (this.editorComponent.current) {
301
+ if (this.editorComponent.current && language) {
290
302
  this.editorComponent.current.setLanguage(language);
291
303
  }
292
304
  }
@@ -328,31 +340,16 @@ class ScriptEditor extends Component {
328
340
 
329
341
  }
330
342
 
331
- ScriptEditor.propTypes = {
332
- error: PropTypes.shape({
333
- message: PropTypes.string
334
- }),
335
- isLoading: PropTypes.bool,
336
- isLoaded: PropTypes.bool,
337
- focusOnMount: PropTypes.bool,
338
- onChange: PropTypes.func,
339
- onRunCommand: PropTypes.func.isRequired,
340
- session: PropTypes.shape({}),
341
- sessionLanguage: PropTypes.string,
342
- settings: PropTypes.shape({
343
- language: PropTypes.string,
344
- value: PropTypes.string
345
- })
346
- };
347
- ScriptEditor.defaultProps = {
343
+ _defineProperty(ScriptEditor, "defaultProps", {
348
344
  error: null,
349
345
  isLoading: false,
350
346
  isLoaded: false,
351
347
  focusOnMount: true,
352
- onChange: () => {},
348
+ onChange: () => undefined,
353
349
  session: null,
354
350
  sessionLanguage: null,
355
351
  settings: null
356
- };
352
+ });
353
+
357
354
  export default ScriptEditor;
358
355
  //# sourceMappingURL=ScriptEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/notebook/ScriptEditor.jsx"],"names":["React","Component","PropTypes","LoadingOverlay","ShortcutRegistry","Log","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","completionCleanup","editor","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","focusOnMount","onChange","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","precondition","keybindingContext","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled","propTypes","shape","message","string","bool","func","isRequired","value","defaultProps"],"mappings":"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","sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\nclass ScriptEditor extends Component {\n constructor(props) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.completionCleanup = null;\n this.editor = null;\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount() {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps) {\n const { sessionLanguage, settings } = this.props;\n const { language } = settings;\n\n const languageChanged = language !== prevProps.settings.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount() {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n getValue() {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand() {\n const range = this.editor.getSelection();\n const model = this.editor.getModel();\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(editor) {\n const {\n focusOnMount,\n onChange,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = editor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(editor);\n MonacoUtils.registerPasteHandler(editor);\n\n if (session && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n editor.onDidChangeModelContent(onChange);\n if (focusOnMount) {\n editor.focus();\n }\n }\n\n handleEditorWillDestroy() {\n log.debug('handleEditorWillDestroy');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = null;\n }\n\n handleRun() {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n onRunCommand(command);\n }\n\n handleRunSelected() {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions() {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n precondition: null,\n\n keybindingContext: null,\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n return null;\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n precondition: null,\n keybindingContext: null,\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n return null;\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions() {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts() {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion() {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion() {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = null;\n }\n if (this.editor && session) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text, focus = true) {\n const model = this.editor.getModel();\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions() {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus() {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind() {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language) {\n if (this.editorComponent.current) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render() {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nScriptEditor.propTypes = {\n error: PropTypes.shape({ message: PropTypes.string }),\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n focusOnMount: PropTypes.bool,\n onChange: PropTypes.func,\n onRunCommand: PropTypes.func.isRequired,\n session: PropTypes.shape({}),\n sessionLanguage: PropTypes.string,\n settings: PropTypes.shape({\n language: PropTypes.string,\n value: PropTypes.string,\n }),\n};\n\nScriptEditor.defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: () => {},\n session: null,\n sessionLanguage: null,\n settings: null,\n};\n\nexport default ScriptEditor;\n"],"file":"ScriptEditor.js"}
1
+ {"version":3,"sources":["../../src/notebook/ScriptEditor.tsx"],"names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","editor","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","undefined","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"mappings":"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","sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n session: IdeSession;\n sessionLanguage?: string;\n settings?: {\n language: string;\n value?: string;\n };\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n session: null,\n sessionLanguage: null,\n settings: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount) {\n innerEditor.focus();\n }\n }\n\n handleEditorWillDestroy(): void {\n log.debug('handleEditorWillDestroy');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n }\n if (this.editor && session) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"file":"ScriptEditor.js"}
@@ -1,18 +1,23 @@
1
- export default ScriptEditorUtils;
1
+ declare const LANGUAGES: {
2
+ readonly groovy: "Groovy";
3
+ readonly python: "Python";
4
+ readonly scala: "Scala";
5
+ };
2
6
  declare class ScriptEditorUtils {
3
7
  /** Get PQ script language from Monaco language
4
- * @param {string} language Monaco language
5
- * @returns {string} PQ script language
8
+ * @paramlanguage Monaco language
9
+ * @returns PQ script language
6
10
  */
7
- static normalizeScriptLanguage(language: string): string;
11
+ static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string;
8
12
  /**
9
13
  * Get a tooltip for disabled button based on the session status and language
10
- * @param {boolean} isSessionConnected True if console session connected
11
- * @param {boolean} isLanguageMatching True if the script language is matching the session language
12
- * @param {string} scriptLanguageLabel Language label to use in the tooltip message
13
- * @param {string} buttonLabel Button label to use in the tooltip message
14
- * @returns {string} Tooltip message or `null` if the session is connected and language is matching
14
+ * @param isSessionConnected True if console session connected
15
+ * @param isLanguageMatching True if the script language is matching the session language
16
+ * @param scriptLanguageLabel Language label to use in the tooltip message
17
+ * @param buttonLabel Button label to use in the tooltip message
18
+ * @returns Tooltip message or `null` if the session is connected and language is matching
15
19
  */
16
- static getDisabledRunTooltip(isSessionConnected: boolean, isLanguageMatching: boolean, scriptLanguageLabel: string, buttonLabel: string): string;
20
+ static getDisabledRunTooltip(isSessionConnected: boolean, isLanguageMatching: boolean, scriptLanguageLabel: string, buttonLabel: string): string | null;
17
21
  }
22
+ export default ScriptEditorUtils;
18
23
  //# sourceMappingURL=ScriptEditorUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptEditorUtils.d.ts","sourceRoot":"","sources":["../../src/notebook/ScriptEditorUtils.js"],"names":[],"mappings":";AAEA;IACE;;;OAGG;IACH,yCAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,iDANW,OAAO,sBACP,OAAO,uBACP,MAAM,eACN,MAAM,GACJ,MAAM,CAelB;CACF"}
1
+ {"version":3,"file":"ScriptEditorUtils.d.ts","sourceRoot":"","sources":["../../src/notebook/ScriptEditorUtils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,SAAS;;;;CAIL,CAAC;AAEX,cAAM,iBAAiB;IACrB;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,OAAO,SAAS,GAAG,MAAM;IAIxE;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAC1B,kBAAkB,EAAE,OAAO,EAC3B,kBAAkB,EAAE,OAAO,EAC3B,mBAAmB,EAAE,MAAM,EAC3B,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI;CASjB;AAED,eAAe,iBAAiB,CAAC"}
@@ -6,19 +6,19 @@ var LANGUAGES = {
6
6
 
7
7
  class ScriptEditorUtils {
8
8
  /** Get PQ script language from Monaco language
9
- * @param {string} language Monaco language
10
- * @returns {string} PQ script language
9
+ * @paramlanguage Monaco language
10
+ * @returns PQ script language
11
11
  */
12
12
  static normalizeScriptLanguage(language) {
13
13
  return LANGUAGES[language] || null;
14
14
  }
15
15
  /**
16
16
  * Get a tooltip for disabled button based on the session status and language
17
- * @param {boolean} isSessionConnected True if console session connected
18
- * @param {boolean} isLanguageMatching True if the script language is matching the session language
19
- * @param {string} scriptLanguageLabel Language label to use in the tooltip message
20
- * @param {string} buttonLabel Button label to use in the tooltip message
21
- * @returns {string} Tooltip message or `null` if the session is connected and language is matching
17
+ * @param isSessionConnected True if console session connected
18
+ * @param isLanguageMatching True if the script language is matching the session language
19
+ * @param scriptLanguageLabel Language label to use in the tooltip message
20
+ * @param buttonLabel Button label to use in the tooltip message
21
+ * @returns Tooltip message or `null` if the session is connected and language is matching
22
22
  */
23
23
 
24
24
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/notebook/ScriptEditorUtils.js"],"names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"mappings":"AAAA,IAAMA,SAAS,GAAG;AAAEC,EAAAA,MAAM,EAAE,QAAV;AAAoBC,EAAAA,MAAM,EAAE,QAA5B;AAAsCC,EAAAA,KAAK,EAAE;AAA7C,CAAlB;;AAEA,MAAMC,iBAAN,CAAwB;AACtB;AACF;AACA;AACA;AACgC,SAAvBC,uBAAuB,CAACC,QAAD,EAAW;AACvC,WAAON,SAAS,CAACM,QAAD,CAAT,IAAuB,IAA9B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC8B,SAArBC,qBAAqB,CAC1BC,kBAD0B,EAE1BC,kBAF0B,EAG1BC,mBAH0B,EAI1BC,WAJ0B,EAK1B;AACA,QAAI,CAACH,kBAAL,EAAyB;AACvB,4DAA0CG,WAA1C;AACD;;AACD,QAAI,CAACF,kBAAL,EAAyB;AACvB,uBAAUC,mBAAV,wDAAsEC,WAAtE;AACD;;AACD,WAAO,IAAP;AACD;;AA9BqB;;AAiCxB,eAAeP,iBAAf","sourcesContent":["const LANGUAGES = { groovy: 'Groovy', python: 'Python', scala: 'Scala' };\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @param {string} language Monaco language\n * @returns {string} PQ script language\n */\n static normalizeScriptLanguage(language) {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param {boolean} isSessionConnected True if console session connected\n * @param {boolean} isLanguageMatching True if the script language is matching the session language\n * @param {string} scriptLanguageLabel Language label to use in the tooltip message\n * @param {string} buttonLabel Button label to use in the tooltip message\n * @returns {string} Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected,\n isLanguageMatching,\n scriptLanguageLabel,\n buttonLabel\n ) {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n}\n\nexport default ScriptEditorUtils;\n"],"file":"ScriptEditorUtils.js"}
1
+ {"version":3,"sources":["../../src/notebook/ScriptEditorUtils.ts"],"names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"mappings":"AAAA,IAAMA,SAAS,GAAG;AAChBC,EAAAA,MAAM,EAAE,QADQ;AAEhBC,EAAAA,MAAM,EAAE,QAFQ;AAGhBC,EAAAA,KAAK,EAAE;AAHS,CAAlB;;AAMA,MAAMC,iBAAN,CAAwB;AACtB;AACF;AACA;AACA;AACgC,SAAvBC,uBAAuB,CAACC,QAAD,EAA2C;AACvE,WAAON,SAAS,CAACM,QAAD,CAAT,IAAuB,IAA9B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAC8B,SAArBC,qBAAqB,CAC1BC,kBAD0B,EAE1BC,kBAF0B,EAG1BC,mBAH0B,EAI1BC,WAJ0B,EAKX;AACf,QAAI,CAACH,kBAAL,EAAyB;AACvB,4DAA0CG,WAA1C;AACD;;AACD,QAAI,CAACF,kBAAL,EAAyB;AACvB,uBAAUC,mBAAV,wDAAsEC,WAAtE;AACD;;AACD,WAAO,IAAP;AACD;;AA9BqB;;AAiCxB,eAAeP,iBAAf","sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n}\n\nexport default ScriptEditorUtils;\n"],"file":"ScriptEditorUtils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.15.1-beta.2+d4f06fc",
3
+ "version": "0.15.2-beta.0+ebdc345",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -30,12 +30,12 @@
30
30
  "start": "cross-env NODE_ENV=development npm run watch"
31
31
  },
32
32
  "dependencies": {
33
- "@deephaven/components": "^0.15.1-beta.2+d4f06fc",
34
- "@deephaven/icons": "^0.15.1-beta.2+d4f06fc",
35
- "@deephaven/jsapi-shim": "^0.15.1-beta.2+d4f06fc",
36
- "@deephaven/log": "^0.15.1-beta.2+d4f06fc",
37
- "@deephaven/storage": "^0.15.1-beta.2+d4f06fc",
38
- "@deephaven/utils": "^0.15.1-beta.2+d4f06fc",
33
+ "@deephaven/components": "^0.15.2-beta.0+ebdc345",
34
+ "@deephaven/icons": "^0.15.2-beta.0+ebdc345",
35
+ "@deephaven/jsapi-shim": "^0.15.2-beta.0+ebdc345",
36
+ "@deephaven/log": "^0.15.2-beta.0+ebdc345",
37
+ "@deephaven/storage": "^0.15.2-beta.0+ebdc345",
38
+ "@deephaven/utils": "^0.15.2-beta.0+ebdc345",
39
39
  "@fortawesome/react-fontawesome": "^0.1.18",
40
40
  "classnames": "^2.3.1",
41
41
  "lodash.debounce": "^4.0.8",
@@ -43,7 +43,8 @@
43
43
  "memoize-one": "^5.1.1",
44
44
  "memoizee": "^0.4.15",
45
45
  "monaco-editor": "^0.27.0",
46
- "papaparse": "^5.2.0",
46
+ "papaparse": "^5.3.2",
47
+ "popper.js": "^1.16.1",
47
48
  "prop-types": "^15.7.2",
48
49
  "shell-quote": "^1.7.2"
49
50
  },
@@ -52,8 +53,8 @@
52
53
  "react-dom": "^17.x"
53
54
  },
54
55
  "devDependencies": {
55
- "@deephaven/mocks": "^0.15.1-beta.2+d4f06fc",
56
- "@deephaven/tsconfig": "^0.15.1-beta.2+d4f06fc"
56
+ "@deephaven/mocks": "^0.15.2-beta.0+ebdc345",
57
+ "@deephaven/tsconfig": "^0.15.2-beta.0+ebdc345"
57
58
  },
58
59
  "files": [
59
60
  "dist"
@@ -64,5 +65,5 @@
64
65
  "publishConfig": {
65
66
  "access": "public"
66
67
  },
67
- "gitHead": "d4f06fc67ee1ff5ac5a4c5bea8a453aa8fc96df7"
68
+ "gitHead": "ebdc3452ada8cca6744aee0feef98313ebaef3ba"
68
69
  }