@deephaven/console 0.42.1-beta.2 → 0.43.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 (141) hide show
  1. package/package.json +12 -12
  2. package/dist/Console.css +0 -44
  3. package/dist/Console.css.map +0 -1
  4. package/dist/Console.js +0 -875
  5. package/dist/Console.js.map +0 -1
  6. package/dist/ConsoleInput.css +0 -42
  7. package/dist/ConsoleInput.css.map +0 -1
  8. package/dist/ConsoleInput.js +0 -442
  9. package/dist/ConsoleInput.js.map +0 -1
  10. package/dist/ConsoleMenu.css +0 -25
  11. package/dist/ConsoleMenu.css.map +0 -1
  12. package/dist/ConsoleMenu.js +0 -192
  13. package/dist/ConsoleMenu.js.map +0 -1
  14. package/dist/ConsolePropTypes.js +0 -10
  15. package/dist/ConsolePropTypes.js.map +0 -1
  16. package/dist/ConsoleShortcuts.js +0 -85
  17. package/dist/ConsoleShortcuts.js.map +0 -1
  18. package/dist/ConsoleStatusBar.css +0 -52
  19. package/dist/ConsoleStatusBar.css.map +0 -1
  20. package/dist/ConsoleStatusBar.js +0 -105
  21. package/dist/ConsoleStatusBar.js.map +0 -1
  22. package/dist/HeapUsage.css +0 -61
  23. package/dist/HeapUsage.css.map +0 -1
  24. package/dist/HeapUsage.js +0 -168
  25. package/dist/HeapUsage.js.map +0 -1
  26. package/dist/StoragePropTypes.js +0 -16
  27. package/dist/StoragePropTypes.js.map +0 -1
  28. package/dist/command-history/CommandHistory.css +0 -41
  29. package/dist/command-history/CommandHistory.css.map +0 -1
  30. package/dist/command-history/CommandHistory.js +0 -381
  31. package/dist/command-history/CommandHistory.js.map +0 -1
  32. package/dist/command-history/CommandHistoryActions.css +0 -10
  33. package/dist/command-history/CommandHistoryActions.css.map +0 -1
  34. package/dist/command-history/CommandHistoryActions.js +0 -47
  35. package/dist/command-history/CommandHistoryActions.js.map +0 -1
  36. package/dist/command-history/CommandHistoryItem.css +0 -61
  37. package/dist/command-history/CommandHistoryItem.css.map +0 -1
  38. package/dist/command-history/CommandHistoryItem.js +0 -50
  39. package/dist/command-history/CommandHistoryItem.js.map +0 -1
  40. package/dist/command-history/CommandHistoryItemTooltip.css +0 -37
  41. package/dist/command-history/CommandHistoryItemTooltip.css.map +0 -1
  42. package/dist/command-history/CommandHistoryItemTooltip.js +0 -159
  43. package/dist/command-history/CommandHistoryItemTooltip.js.map +0 -1
  44. package/dist/command-history/CommandHistoryStorage.js +0 -2
  45. package/dist/command-history/CommandHistoryStorage.js.map +0 -1
  46. package/dist/command-history/CommandHistoryTypes.js +0 -2
  47. package/dist/command-history/CommandHistoryTypes.js.map +0 -1
  48. package/dist/command-history/CommandHistoryViewportUpdater.js +0 -57
  49. package/dist/command-history/CommandHistoryViewportUpdater.js.map +0 -1
  50. package/dist/command-history/index.js +0 -7
  51. package/dist/command-history/index.js.map +0 -1
  52. package/dist/common/Code.js +0 -45
  53. package/dist/common/Code.js.map +0 -1
  54. package/dist/common/ConsoleConstants.js +0 -10
  55. package/dist/common/ConsoleConstants.js.map +0 -1
  56. package/dist/common/ConsoleUtils.js +0 -62
  57. package/dist/common/ConsoleUtils.js.map +0 -1
  58. package/dist/common/ObjectIcon.js +0 -33
  59. package/dist/common/ObjectIcon.js.map +0 -1
  60. package/dist/common/index.js +0 -5
  61. package/dist/common/index.js.map +0 -1
  62. package/dist/console-history/ConsoleHistory.css +0 -42
  63. package/dist/console-history/ConsoleHistory.css.map +0 -1
  64. package/dist/console-history/ConsoleHistory.js +0 -42
  65. package/dist/console-history/ConsoleHistory.js.map +0 -1
  66. package/dist/console-history/ConsoleHistoryItem.css +0 -87
  67. package/dist/console-history/ConsoleHistoryItem.css.map +0 -1
  68. package/dist/console-history/ConsoleHistoryItem.js +0 -139
  69. package/dist/console-history/ConsoleHistoryItem.js.map +0 -1
  70. package/dist/console-history/ConsoleHistoryItemResult.js +0 -22
  71. package/dist/console-history/ConsoleHistoryItemResult.js.map +0 -1
  72. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +0 -142
  73. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +0 -1
  74. package/dist/console-history/ConsoleHistoryResultInProgress.css +0 -27
  75. package/dist/console-history/ConsoleHistoryResultInProgress.css.map +0 -1
  76. package/dist/console-history/ConsoleHistoryResultInProgress.js +0 -66
  77. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +0 -1
  78. package/dist/console-history/ConsoleHistoryTypes.js +0 -2
  79. package/dist/console-history/ConsoleHistoryTypes.js.map +0 -1
  80. package/dist/console-history/index.js +0 -6
  81. package/dist/console-history/index.js.map +0 -1
  82. package/dist/csv/CsvFormats.js +0 -134
  83. package/dist/csv/CsvFormats.js.map +0 -1
  84. package/dist/csv/CsvInputBar.css +0 -36
  85. package/dist/csv/CsvInputBar.css.map +0 -1
  86. package/dist/csv/CsvInputBar.js +0 -342
  87. package/dist/csv/CsvInputBar.js.map +0 -1
  88. package/dist/csv/CsvOverlay.css +0 -57
  89. package/dist/csv/CsvOverlay.css.map +0 -1
  90. package/dist/csv/CsvOverlay.js +0 -244
  91. package/dist/csv/CsvOverlay.js.map +0 -1
  92. package/dist/csv/CsvParser.js +0 -268
  93. package/dist/csv/CsvParser.js.map +0 -1
  94. package/dist/csv/CsvTypeParser.js +0 -235
  95. package/dist/csv/CsvTypeParser.js.map +0 -1
  96. package/dist/csv/NewTableColumnTypes.js +0 -16
  97. package/dist/csv/NewTableColumnTypes.js.map +0 -1
  98. package/dist/declaration.d.js +0 -2
  99. package/dist/declaration.d.js.map +0 -1
  100. package/dist/index.js +0 -18
  101. package/dist/index.js.map +0 -1
  102. package/dist/log/LogLevel.js +0 -11
  103. package/dist/log/LogLevel.js.map +0 -1
  104. package/dist/log/LogLevelMenuItem.css +0 -38
  105. package/dist/log/LogLevelMenuItem.css.map +0 -1
  106. package/dist/log/LogLevelMenuItem.js +0 -32
  107. package/dist/log/LogLevelMenuItem.js.map +0 -1
  108. package/dist/log/LogView.css +0 -65
  109. package/dist/log/LogView.css.map +0 -1
  110. package/dist/log/LogView.js +0 -487
  111. package/dist/log/LogView.js.map +0 -1
  112. package/dist/monaco/MonacoProviders.js +0 -314
  113. package/dist/monaco/MonacoProviders.js.map +0 -1
  114. package/dist/monaco/MonacoTheme.module.css +0 -54
  115. package/dist/monaco/MonacoTheme.module.css.map +0 -1
  116. package/dist/monaco/MonacoUtils.js +0 -423
  117. package/dist/monaco/MonacoUtils.js.map +0 -1
  118. package/dist/monaco/index.js +0 -4
  119. package/dist/monaco/index.js.map +0 -1
  120. package/dist/monaco/lang/Language.js +0 -2
  121. package/dist/monaco/lang/Language.js.map +0 -1
  122. package/dist/monaco/lang/db.js +0 -152
  123. package/dist/monaco/lang/db.js.map +0 -1
  124. package/dist/monaco/lang/groovy.js +0 -229
  125. package/dist/monaco/lang/groovy.js.map +0 -1
  126. package/dist/monaco/lang/log.js +0 -64
  127. package/dist/monaco/lang/log.js.map +0 -1
  128. package/dist/monaco/lang/python.js +0 -234
  129. package/dist/monaco/lang/python.js.map +0 -1
  130. package/dist/monaco/lang/scala.js +0 -264
  131. package/dist/monaco/lang/scala.js.map +0 -1
  132. package/dist/notebook/Editor.css +0 -6
  133. package/dist/notebook/Editor.css.map +0 -1
  134. package/dist/notebook/Editor.js +0 -130
  135. package/dist/notebook/Editor.js.map +0 -1
  136. package/dist/notebook/ScriptEditor.css +0 -8
  137. package/dist/notebook/ScriptEditor.css.map +0 -1
  138. package/dist/notebook/ScriptEditor.js +0 -310
  139. package/dist/notebook/ScriptEditor.js.map +0 -1
  140. package/dist/notebook/ScriptEditorUtils.js +0 -34
  141. package/dist/notebook/ScriptEditorUtils.js.map +0 -1
@@ -1,310 +0,0 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- /**
5
- * Script editor for large blocks of code
6
- */
7
- import React, { Component } from 'react';
8
- import { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';
9
- import Log from '@deephaven/log';
10
- import { assertNotNull } from '@deephaven/utils';
11
- import { editor } from 'monaco-editor';
12
- import Editor from "./Editor.js";
13
- import { MonacoProviders, MonacoUtils } from "../monaco/index.js";
14
- import "./ScriptEditor.css";
15
- import SHORTCUTS from "../ConsoleShortcuts.js";
16
- var log = Log.module('ScriptEditor');
17
- class ScriptEditor extends Component {
18
- constructor(props) {
19
- super(props);
20
- _defineProperty(this, "contextActionCleanups", void 0);
21
- _defineProperty(this, "completionCleanup", void 0);
22
- _defineProperty(this, "editor", void 0);
23
- _defineProperty(this, "editorComponent", void 0);
24
- this.handleEditorInitialized = this.handleEditorInitialized.bind(this);
25
- this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);
26
- this.handleRun = this.handleRun.bind(this);
27
- this.handleRunSelected = this.handleRunSelected.bind(this);
28
- this.updateShortcuts = this.updateShortcuts.bind(this);
29
- this.contextActionCleanups = [];
30
- this.editorComponent = /*#__PURE__*/React.createRef();
31
- this.state = {
32
- model: null
33
- };
34
- }
35
- componentDidMount() {
36
- ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);
37
- }
38
- componentDidUpdate(prevProps) {
39
- var _prevProps$settings, _prevProps$settings2;
40
- var {
41
- sessionLanguage,
42
- settings
43
- } = this.props;
44
- var language = settings === null || settings === void 0 ? void 0 : settings.language;
45
- var languageChanged = language !== ((_prevProps$settings = prevProps.settings) === null || _prevProps$settings === void 0 ? void 0 : _prevProps$settings.language);
46
- if (languageChanged) {
47
- log.debug('Set language', language);
48
- this.setLanguage(language);
49
- }
50
- var sessionDisconnected = sessionLanguage == null && prevProps.sessionLanguage != null;
51
- var languageMatch = language === sessionLanguage;
52
- var prevLanguageMatch = ((_prevProps$settings2 = prevProps.settings) === null || _prevProps$settings2 === void 0 ? void 0 : _prevProps$settings2.language) === prevProps.sessionLanguage;
53
- if (sessionDisconnected || sessionLanguage !== undefined && prevLanguageMatch && !languageMatch) {
54
- // Session disconnected or language changed from matching the session language to non-matching
55
- log.debug('De-init completion and context actions');
56
- this.deInitContextActions();
57
- this.deInitCodeCompletion();
58
- }
59
- var sessionConnected = sessionLanguage != null && prevProps.sessionLanguage == null;
60
- if (sessionConnected && languageMatch || sessionLanguage !== undefined && !prevLanguageMatch && languageMatch) {
61
- // Session connected with a matching language or notebook language changed to matching
62
- log.debug('Init completion and context actions');
63
- this.initContextActions();
64
- this.initCodeCompletion();
65
- }
66
- }
67
- componentWillUnmount() {
68
- ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);
69
- }
70
- getValue() {
71
- if (this.editor) {
72
- return this.editor.getValue();
73
- }
74
- log.error('Editor not initialized');
75
- return null;
76
- }
77
- getSelectedCommand() {
78
- var _this$editor, _this$editor2;
79
- var range = (_this$editor = this.editor) === null || _this$editor === void 0 ? void 0 : _this$editor.getSelection();
80
- assertNotNull(range);
81
- var model = (_this$editor2 = this.editor) === null || _this$editor2 === void 0 ? void 0 : _this$editor2.getModel();
82
- assertNotNull(model);
83
- var {
84
- startLineNumber,
85
- endColumn
86
- } = range;
87
- var {
88
- endLineNumber
89
- } = range;
90
- if (endColumn === 1 && endLineNumber > startLineNumber) {
91
- endLineNumber -= 1;
92
- }
93
- var startLineMinColumn = model === null || model === void 0 ? void 0 : model.getLineMinColumn(startLineNumber);
94
- var endLineMaxColumn = model === null || model === void 0 ? void 0 : model.getLineMaxColumn(endLineNumber);
95
- var wholeLineRange = range.setStartPosition(startLineNumber, startLineMinColumn).setEndPosition(endLineNumber, endLineMaxColumn);
96
- return model === null || model === void 0 ? void 0 : model.getValueInRange(wholeLineRange);
97
- }
98
- handleEditorInitialized(innerEditor) {
99
- var {
100
- focusOnMount,
101
- onChange,
102
- onEditorInitialized,
103
- settings,
104
- session,
105
- sessionLanguage
106
- } = this.props;
107
- log.debug('handleEditorInitialized', sessionLanguage, session, settings);
108
- this.editor = innerEditor;
109
- this.setState({
110
- model: this.editor.getModel()
111
- });
112
- MonacoUtils.setEOL(innerEditor);
113
- MonacoUtils.registerPasteHandler(innerEditor);
114
- if (session != null && settings && sessionLanguage === settings.language) {
115
- this.initContextActions();
116
- this.initCodeCompletion();
117
- }
118
- innerEditor.onDidChangeModelContent(onChange);
119
- if (focusOnMount != null && focusOnMount) {
120
- innerEditor.focus();
121
- }
122
- onEditorInitialized(this.editor);
123
- }
124
- handleEditorWillDestroy(innerEditor) {
125
- log.debug('handleEditorWillDestroy');
126
- var {
127
- onEditorWillDestroy
128
- } = this.props;
129
- onEditorWillDestroy(innerEditor);
130
- this.deInitContextActions();
131
- this.deInitCodeCompletion();
132
- this.setState({
133
- model: null
134
- });
135
- this.editor = undefined;
136
- }
137
- handleRun() {
138
- var {
139
- onRunCommand
140
- } = this.props;
141
- var command = this.getValue();
142
- if (command != null) {
143
- onRunCommand(command);
144
- }
145
- }
146
- handleRunSelected() {
147
- var {
148
- onRunCommand
149
- } = this.props;
150
- var command = this.getSelectedCommand();
151
- onRunCommand(command);
152
- }
153
- initContextActions() {
154
- if (this.contextActionCleanups.length > 0) {
155
- log.error('Context actions already initialized.');
156
- return;
157
- }
158
- if (!this.editor) {
159
- return;
160
- }
161
- var cleanups = [];
162
- cleanups.push(this.editor.addAction({
163
- id: 'run-code',
164
- label: 'Run',
165
- keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN)],
166
- contextMenuGroupId: 'navigation',
167
- contextMenuOrder: 1.5,
168
- run: () => {
169
- this.handleRun();
170
- }
171
- }));
172
- cleanups.push(this.editor.addAction({
173
- id: 'run-selected-code',
174
- label: 'Run Selected',
175
- keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN_SELECTED)],
176
- contextMenuGroupId: 'navigation',
177
- contextMenuOrder: 1.5,
178
- run: () => {
179
- this.handleRunSelected();
180
- }
181
- }));
182
- this.contextActionCleanups = cleanups;
183
- }
184
- deInitContextActions() {
185
- if (this.contextActionCleanups.length > 0) {
186
- this.contextActionCleanups.forEach(cleanup => cleanup.dispose());
187
- this.contextActionCleanups = [];
188
- }
189
- }
190
- updateShortcuts() {
191
- this.deInitContextActions();
192
- this.initContextActions();
193
- }
194
- initCodeCompletion() {
195
- if (this.completionCleanup != null) {
196
- log.error('Code completion already initialized.');
197
- return;
198
- }
199
- var {
200
- session
201
- } = this.props;
202
- log.debug('initCodeCompletion', this.editor, session);
203
- if (this.editor && session != null) {
204
- this.completionCleanup = MonacoUtils.openDocument(this.editor, session);
205
- }
206
- }
207
- deInitCodeCompletion() {
208
- var {
209
- session
210
- } = this.props;
211
- log.debug('deInitCodeCompletion', this.editor, session);
212
- if (this.completionCleanup) {
213
- this.completionCleanup.dispose();
214
- this.completionCleanup = undefined;
215
- if (this.editor && session != null) {
216
- MonacoUtils.closeDocument(this.editor, session);
217
- }
218
- }
219
- }
220
- append(text) {
221
- var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
222
- assertNotNull(this.editor);
223
- var model = this.editor.getModel();
224
- assertNotNull(model);
225
- var currentText = model.getValue();
226
- if (currentText) {
227
- model.setValue("".concat(currentText, "\n").concat(text));
228
- } else {
229
- model.setValue("".concat(text));
230
- }
231
- var lastLine = model.getLineCount();
232
- var column = model.getLineLength(lastLine) + 1;
233
- this.editor.setPosition({
234
- lineNumber: lastLine,
235
- column
236
- });
237
- if (focus) {
238
- this.editor.focus();
239
- }
240
- }
241
- updateDimensions() {
242
- log.debug('updateDimensions');
243
- if (this.editor) {
244
- this.editor.layout();
245
- }
246
- }
247
- focus() {
248
- log.debug('focus');
249
- if (this.editor) {
250
- this.editor.focus();
251
- }
252
- }
253
- toggleFind() {
254
- if (this.editorComponent.current) {
255
- this.editorComponent.current.toggleFind();
256
- }
257
- }
258
- setLanguage(language) {
259
- if (this.editorComponent.current && language !== undefined) {
260
- this.editorComponent.current.setLanguage(language);
261
- }
262
- }
263
- render() {
264
- var _settings$language;
265
- var {
266
- error,
267
- isLoaded,
268
- isLoading,
269
- session,
270
- sessionLanguage,
271
- settings
272
- } = this.props;
273
- var {
274
- model
275
- } = this.state;
276
- var errorMessage = error ? "Unable to open document. ".concat(error) : null;
277
- var editorLanguage = settings ? (_settings$language = settings.language) !== null && _settings$language !== void 0 ? _settings$language : null : null;
278
- var completionProviderEnabled = model && session && editorLanguage === sessionLanguage;
279
- return /*#__PURE__*/React.createElement(React.Fragment, null, (error || isLoading) && /*#__PURE__*/React.createElement("div", {
280
- className: "h-100 w-100 position-relative"
281
- }, /*#__PURE__*/React.createElement(LoadingOverlay, {
282
- errorMessage: errorMessage,
283
- isLoading: isLoading,
284
- isLoaded: isLoaded
285
- })), isLoaded && /*#__PURE__*/React.createElement("div", {
286
- className: "h-100 w-100 script-editor"
287
- }, settings && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Editor, {
288
- ref: this.editorComponent,
289
- settings: settings,
290
- onEditorInitialized: this.handleEditorInitialized,
291
- onEditorWillDestroy: this.handleEditorWillDestroy
292
- }), completionProviderEnabled != null && completionProviderEnabled && /*#__PURE__*/React.createElement(MonacoProviders, {
293
- model: model,
294
- language: editorLanguage,
295
- session: session
296
- }))));
297
- }
298
- }
299
- _defineProperty(ScriptEditor, "defaultProps", {
300
- error: null,
301
- isLoading: false,
302
- isLoaded: false,
303
- focusOnMount: true,
304
- onChange: () => undefined,
305
- onEditorInitialized: () => undefined,
306
- onEditorWillDestroy: () => undefined,
307
- session: null
308
- });
309
- export default ScriptEditor;
310
- //# sourceMappingURL=ScriptEditor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","editor","Editor","MonacoProviders","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","undefined","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","onEditorWillDestroy","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"],"sources":["../../src/notebook/ScriptEditor.tsx"],"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 type { IdeSession } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoProviders, 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 onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: IdeSession | null;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\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 onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: 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 !== undefined && 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 !== undefined && !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 onEditorInitialized,\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 != null && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\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 != null) {\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 if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\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 !== undefined) {\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 : 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 != null &&\n completionProviderEnabled && (\n <MonacoProviders\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"],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- var LANGUAGES = {
2
- groovy: 'Groovy',
3
- python: 'Python',
4
- scala: 'Scala'
5
- };
6
- class ScriptEditorUtils {
7
- /** Get PQ script language from Monaco language
8
- * @paramlanguage Monaco language
9
- * @returns PQ script language
10
- */
11
- static normalizeScriptLanguage(language) {
12
- return LANGUAGES[language] || null;
13
- }
14
-
15
- /**
16
- * Get a tooltip for disabled button based on the session status and language
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
- */
23
- static getDisabledRunTooltip(isSessionConnected, isLanguageMatching, scriptLanguageLabel, buttonLabel) {
24
- if (!isSessionConnected) {
25
- return "Console session not connected \u2013 ".concat(buttonLabel, " disabled");
26
- }
27
- if (!isLanguageMatching) {
28
- return "".concat(scriptLanguageLabel, " doesn't match the session language \u2013 ").concat(buttonLabel, " disabled");
29
- }
30
- return null;
31
- }
32
- }
33
- export default ScriptEditorUtils;
34
- //# sourceMappingURL=ScriptEditorUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"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"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE;AACT,CAAU;AAEV,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,uBAAuB,CAACC,QAAgC,EAAU;IACvE,OAAON,SAAS,CAACM,QAAQ,CAAC,IAAI,IAAI;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,qBAAqB,CAC1BC,kBAA2B,EAC3BC,kBAA2B,EAC3BC,mBAA2B,EAC3BC,WAAmB,EACJ;IACf,IAAI,CAACH,kBAAkB,EAAE;MACvB,sDAA0CG,WAAW;IACvD;IACA,IAAI,CAACF,kBAAkB,EAAE;MACvB,iBAAUC,mBAAmB,wDAAyCC,WAAW;IACnF;IACA,OAAO,IAAI;EACb;AACF;AAEA,eAAeP,iBAAiB"}