@deephaven/console 0.15.1-beta.1 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Console.d.ts +129 -121
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +98 -99
- package/dist/Console.js.map +1 -1
- package/dist/ConsoleInput.d.ts +47 -43
- package/dist/ConsoleInput.d.ts.map +1 -1
- package/dist/ConsoleInput.js +111 -73
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/ConsoleMenu.d.ts +24 -22
- package/dist/ConsoleMenu.d.ts.map +1 -1
- package/dist/ConsoleMenu.js +7 -12
- package/dist/ConsoleMenu.js.map +1 -1
- package/dist/ConsolePropTypes.d.ts +2 -2
- package/dist/ConsolePropTypes.d.ts.map +1 -1
- package/dist/ConsolePropTypes.js.map +1 -1
- package/dist/ConsoleStatusBar.d.ts +26 -29
- package/dist/ConsoleStatusBar.d.ts.map +1 -1
- package/dist/ConsoleStatusBar.js +11 -12
- package/dist/ConsoleStatusBar.js.map +1 -1
- package/dist/StoragePropTypes.d.ts +2 -2
- package/dist/StoragePropTypes.d.ts.map +1 -1
- package/dist/StoragePropTypes.js.map +1 -1
- package/dist/command-history/CommandHistory.d.ts +52 -77
- package/dist/command-history/CommandHistory.d.ts.map +1 -1
- package/dist/command-history/CommandHistory.js +12 -14
- package/dist/command-history/CommandHistory.js.map +1 -1
- package/dist/command-history/CommandHistoryActions.d.ts +11 -19
- package/dist/command-history/CommandHistoryActions.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryActions.js +4 -19
- package/dist/command-history/CommandHistoryActions.js.map +1 -1
- package/dist/command-history/CommandHistoryItem.d.ts +15 -21
- package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryItem.js +1 -10
- package/dist/command-history/CommandHistoryItem.js.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.d.ts +34 -31
- package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.js +28 -36
- package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
- package/dist/command-history/CommandHistoryTypes.d.ts +19 -0
- package/dist/command-history/CommandHistoryTypes.d.ts.map +1 -0
- package/dist/command-history/CommandHistoryTypes.js +2 -0
- package/dist/command-history/CommandHistoryTypes.js.map +1 -0
- package/dist/command-history/index.d.ts +5 -5
- package/dist/command-history/index.d.ts.map +1 -1
- package/dist/command-history/index.js.map +1 -1
- package/dist/common/Code.d.ts +10 -11
- package/dist/common/Code.d.ts.map +1 -1
- package/dist/common/Code.js +5 -5
- package/dist/common/Code.js.map +1 -1
- package/dist/common/ConsoleUtils.d.ts +20 -8
- package/dist/common/ConsoleUtils.d.ts.map +1 -1
- package/dist/common/ConsoleUtils.js +34 -10
- package/dist/common/ConsoleUtils.js.map +1 -1
- package/dist/console-history/ConsoleHistory.d.ts +19 -18
- package/dist/console-history/ConsoleHistory.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistory.js +5 -9
- package/dist/console-history/ConsoleHistory.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.d.ts +21 -44
- package/dist/console-history/ConsoleHistoryItem.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js +12 -28
- package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.d.ts +13 -9
- package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts +25 -21
- package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js +15 -9
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.d.ts +21 -17
- package/dist/console-history/ConsoleHistoryResultInProgress.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.js +12 -10
- package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.d.ts +19 -0
- package/dist/console-history/ConsoleHistoryTypes.d.ts.map +1 -0
- package/dist/console-history/ConsoleHistoryTypes.js +2 -0
- package/dist/console-history/ConsoleHistoryTypes.js.map +1 -0
- package/dist/console-history/index.d.ts +5 -5
- package/dist/console-history/index.d.ts.map +1 -1
- package/dist/console-history/index.js.map +1 -1
- package/dist/csv/CsvFormats.d.ts +13 -12
- package/dist/csv/CsvFormats.d.ts.map +1 -1
- package/dist/csv/CsvFormats.js +8 -8
- package/dist/csv/CsvFormats.js.map +1 -1
- package/dist/csv/CsvInputBar.d.ts +46 -38
- package/dist/csv/CsvInputBar.d.ts.map +1 -1
- package/dist/csv/CsvInputBar.js +15 -23
- package/dist/csv/CsvInputBar.js.map +1 -1
- package/dist/csv/CsvOverlay.d.ts +40 -40
- package/dist/csv/CsvOverlay.d.ts.map +1 -1
- package/dist/csv/CsvOverlay.js +38 -29
- package/dist/csv/CsvOverlay.js.map +1 -1
- package/dist/csv/CsvParser.d.ts +44 -46
- package/dist/csv/CsvParser.d.ts.map +1 -1
- package/dist/csv/CsvParser.js +53 -8
- package/dist/csv/CsvParser.js.map +1 -1
- package/dist/csv/CsvTypeParser.d.ts +32 -27
- package/dist/csv/CsvTypeParser.d.ts.map +1 -1
- package/dist/csv/CsvTypeParser.js +42 -8
- package/dist/csv/CsvTypeParser.js.map +1 -1
- package/dist/csv/NewTableColumnTypes.d.ts +1 -1
- package/dist/csv/NewTableColumnTypes.d.ts.map +1 -1
- package/dist/csv/NewTableColumnTypes.js.map +1 -1
- package/dist/declaration.d.js +2 -0
- package/dist/declaration.d.js.map +1 -0
- package/dist/index.d.ts +14 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/log/LogLevel.d.ts +1 -1
- package/dist/log/LogLevel.d.ts.map +1 -1
- package/dist/log/LogLevel.js.map +1 -1
- package/dist/log/LogLevelMenuItem.d.ts +11 -12
- package/dist/log/LogLevelMenuItem.d.ts.map +1 -1
- package/dist/log/LogLevelMenuItem.js +0 -6
- package/dist/log/LogLevelMenuItem.js.map +1 -1
- package/dist/log/LogView.d.ts +40 -47
- package/dist/log/LogView.d.ts.map +1 -1
- package/dist/log/LogView.js +65 -29
- package/dist/log/LogView.js.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.d.ts +19 -19
- package/dist/monaco/MonacoCompletionProvider.d.ts.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.js +11 -15
- package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +77 -20
- package/dist/monaco/MonacoUtils.d.ts.map +1 -1
- package/dist/monaco/MonacoUtils.js +32 -24
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/monaco/index.d.ts +3 -2
- package/dist/monaco/index.d.ts.map +1 -1
- package/dist/monaco/index.js.map +1 -1
- package/dist/monaco/lang/Language.d.ts +7 -0
- package/dist/monaco/lang/Language.d.ts.map +1 -0
- package/dist/monaco/lang/Language.js +2 -0
- package/dist/monaco/lang/Language.js.map +1 -0
- package/dist/monaco/lang/db.d.ts +3 -93
- package/dist/monaco/lang/db.d.ts.map +1 -1
- package/dist/monaco/lang/db.js +18 -3
- package/dist/monaco/lang/db.js.map +1 -1
- package/dist/monaco/lang/groovy.d.ts +3 -146
- package/dist/monaco/lang/groovy.d.ts.map +1 -1
- package/dist/monaco/lang/groovy.js +15 -2
- package/dist/monaco/lang/groovy.js.map +1 -1
- package/dist/monaco/lang/log.d.ts +3 -40
- package/dist/monaco/lang/log.d.ts.map +1 -1
- package/dist/monaco/lang/log.js +2 -1
- package/dist/monaco/lang/log.js.map +1 -1
- package/dist/monaco/lang/python.d.ts +3 -154
- package/dist/monaco/lang/python.d.ts.map +1 -1
- package/dist/monaco/lang/python.js +15 -2
- package/dist/monaco/lang/python.js.map +1 -1
- package/dist/monaco/lang/scala.d.ts +3 -140
- package/dist/monaco/lang/scala.d.ts.map +1 -1
- package/dist/monaco/lang/scala.js +10 -3
- package/dist/monaco/lang/scala.js.map +1 -1
- package/dist/notebook/Editor.d.ts +26 -27
- package/dist/notebook/Editor.d.ts.map +1 -1
- package/dist/notebook/Editor.js +23 -19
- package/dist/notebook/Editor.js.map +1 -1
- package/dist/notebook/ScriptEditor.d.ts +54 -51
- package/dist/notebook/ScriptEditor.d.ts.map +1 -1
- package/dist/notebook/ScriptEditor.js +45 -48
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/dist/notebook/ScriptEditorUtils.d.ts +15 -10
- package/dist/notebook/ScriptEditorUtils.d.ts.map +1 -1
- package/dist/notebook/ScriptEditorUtils.js +7 -7
- package/dist/notebook/ScriptEditorUtils.js.map +1 -1
- package/package.json +12 -11
package/dist/ConsoleInput.js
CHANGED
|
@@ -5,34 +5,49 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
|
|
|
5
5
|
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; }
|
|
6
6
|
|
|
7
7
|
import React, { PureComponent } from 'react';
|
|
8
|
-
import PropTypes from 'prop-types';
|
|
9
8
|
import classNames from 'classnames';
|
|
10
9
|
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
11
10
|
import Log from '@deephaven/log';
|
|
12
|
-
import { PromiseUtils } from '@deephaven/utils';
|
|
11
|
+
import { assertNotNull, PromiseUtils } from '@deephaven/utils';
|
|
13
12
|
import { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from "./monaco/index.js";
|
|
14
13
|
import "./ConsoleInput.css";
|
|
15
|
-
import StoragePropTypes from "./StoragePropTypes.js";
|
|
16
14
|
var log = Log.module('ConsoleInput');
|
|
17
15
|
var LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);
|
|
18
16
|
var TOP_PADDING = 6;
|
|
19
17
|
var BOTTOM_PADDING = 6;
|
|
20
18
|
var MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;
|
|
21
19
|
var BUFFER_SIZE = 100;
|
|
20
|
+
|
|
22
21
|
/**
|
|
23
22
|
* Component for input in a console session. Handles loading the recent command history
|
|
24
23
|
*/
|
|
25
|
-
|
|
26
24
|
export class ConsoleInput extends PureComponent {
|
|
27
25
|
constructor(props) {
|
|
28
26
|
super(props);
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "cancelListener", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "commandContainer", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "commandEditor", void 0);
|
|
33
|
+
|
|
34
|
+
_defineProperty(this, "commandHistoryIndex", void 0);
|
|
35
|
+
|
|
36
|
+
_defineProperty(this, "commandSuggestionContainer", void 0);
|
|
37
|
+
|
|
38
|
+
_defineProperty(this, "loadingPromise", void 0);
|
|
39
|
+
|
|
40
|
+
_defineProperty(this, "timestamp", void 0);
|
|
41
|
+
|
|
42
|
+
_defineProperty(this, "bufferIndex", void 0);
|
|
43
|
+
|
|
44
|
+
_defineProperty(this, "history", void 0);
|
|
45
|
+
|
|
46
|
+
_defineProperty(this, "modifiedCommands", void 0);
|
|
47
|
+
|
|
29
48
|
this.handleWindowResize = this.handleWindowResize.bind(this);
|
|
30
|
-
this.cancelListener = null;
|
|
31
49
|
this.commandContainer = /*#__PURE__*/React.createRef();
|
|
32
|
-
this.commandEditor = null;
|
|
33
50
|
this.commandHistoryIndex = null;
|
|
34
|
-
this.commandSuggestionContainer = null;
|
|
35
|
-
this.loadingPromise = null;
|
|
36
51
|
this.timestamp = Date.now();
|
|
37
52
|
this.bufferIndex = 0;
|
|
38
53
|
this.history = []; // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed
|
|
@@ -64,17 +79,18 @@ export class ConsoleInput extends PureComponent {
|
|
|
64
79
|
|
|
65
80
|
this.destroyCommandEditor();
|
|
66
81
|
}
|
|
82
|
+
|
|
67
83
|
/**
|
|
68
84
|
* Sets the console text from an external source.
|
|
69
85
|
* Sets commandHistoryIndex to null since the source is not part of the history
|
|
70
|
-
* @param
|
|
71
|
-
* @param
|
|
72
|
-
* @param
|
|
86
|
+
* @param text The text to set in the input
|
|
87
|
+
* @param focus If the input should be focused
|
|
88
|
+
* @param execute If the input should be executed
|
|
73
89
|
* @returns void
|
|
74
90
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
91
|
setConsoleText(text) {
|
|
92
|
+
var _this$commandEditor;
|
|
93
|
+
|
|
78
94
|
var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
79
95
|
var execute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
80
96
|
|
|
@@ -86,7 +102,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
86
102
|
// On value change, modified commands map updates
|
|
87
103
|
|
|
88
104
|
this.commandHistoryIndex = null;
|
|
89
|
-
this.commandEditor.setValue(text);
|
|
105
|
+
(_this$commandEditor = this.commandEditor) === null || _this$commandEditor === void 0 ? void 0 : _this$commandEditor.setValue(text);
|
|
90
106
|
|
|
91
107
|
if (focus) {
|
|
92
108
|
this.focusEnd();
|
|
@@ -105,7 +121,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
105
121
|
session
|
|
106
122
|
} = this.props;
|
|
107
123
|
var commandSettings = {
|
|
108
|
-
copyWithSyntaxHighlighting:
|
|
124
|
+
copyWithSyntaxHighlighting: false,
|
|
109
125
|
cursorStyle: 'block',
|
|
110
126
|
fixedOverflowWidgets: true,
|
|
111
127
|
folding: false,
|
|
@@ -133,11 +149,16 @@ export class ConsoleInput extends PureComponent {
|
|
|
133
149
|
value: '',
|
|
134
150
|
wordWrap: 'on'
|
|
135
151
|
};
|
|
136
|
-
|
|
152
|
+
var element = this.commandContainer.current;
|
|
153
|
+
assertNotNull(element);
|
|
154
|
+
this.commandEditor = monaco.editor.create(element, commandSettings);
|
|
137
155
|
MonacoUtils.setEOL(this.commandEditor);
|
|
138
156
|
MonacoUtils.openDocument(this.commandEditor, session);
|
|
139
157
|
this.commandEditor.onDidChangeModelContent(() => {
|
|
140
|
-
|
|
158
|
+
var _this$commandEditor2;
|
|
159
|
+
|
|
160
|
+
var value = (_this$commandEditor2 = this.commandEditor) === null || _this$commandEditor2 === void 0 ? void 0 : _this$commandEditor2.getValue();
|
|
161
|
+
this.modifiedCommands.set(this.commandHistoryIndex, value !== null && value !== void 0 ? value : null);
|
|
141
162
|
this.updateDimensions();
|
|
142
163
|
});
|
|
143
164
|
this.commandEditor.onDidFocusEditorText(() => {
|
|
@@ -161,10 +182,12 @@ export class ConsoleInput extends PureComponent {
|
|
|
161
182
|
commandEditor,
|
|
162
183
|
commandHistoryIndex
|
|
163
184
|
} = this;
|
|
185
|
+
var position = commandEditor === null || commandEditor === void 0 ? void 0 : commandEditor.getPosition();
|
|
186
|
+
assertNotNull(position);
|
|
164
187
|
var {
|
|
165
188
|
lineNumber
|
|
166
|
-
} =
|
|
167
|
-
var model = commandEditor.getModel();
|
|
189
|
+
} = position;
|
|
190
|
+
var model = commandEditor === null || commandEditor === void 0 ? void 0 : commandEditor.getModel();
|
|
168
191
|
|
|
169
192
|
if (keyEvent.keyCode === monaco.KeyCode.UpArrow && !this.isSuggestionMenuPopulated() && lineNumber === 1) {
|
|
170
193
|
if (commandHistoryIndex != null) {
|
|
@@ -179,7 +202,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
179
202
|
return;
|
|
180
203
|
}
|
|
181
204
|
|
|
182
|
-
if (keyEvent.keyCode === monaco.KeyCode.DownArrow && !this.isSuggestionMenuPopulated() && lineNumber === model.getLineCount()) {
|
|
205
|
+
if (keyEvent.keyCode === monaco.KeyCode.DownArrow && !this.isSuggestionMenuPopulated() && lineNumber === (model === null || model === void 0 ? void 0 : model.getLineCount())) {
|
|
183
206
|
if (commandHistoryIndex != null && commandHistoryIndex > 0) {
|
|
184
207
|
this.loadCommand(commandHistoryIndex - 1);
|
|
185
208
|
} else {
|
|
@@ -201,9 +224,11 @@ export class ConsoleInput extends PureComponent {
|
|
|
201
224
|
}
|
|
202
225
|
} else if (keyEvent.keyCode === monaco.KeyCode.Tab) {
|
|
203
226
|
if (!this.isSuggestionMenuActive()) {
|
|
227
|
+
var _this$commandEditor3;
|
|
228
|
+
|
|
204
229
|
keyEvent.stopPropagation();
|
|
205
230
|
keyEvent.preventDefault();
|
|
206
|
-
this.commandEditor.trigger('Tab key trigger suggestions', 'editor.action.triggerSuggest', {});
|
|
231
|
+
(_this$commandEditor3 = this.commandEditor) === null || _this$commandEditor3 === void 0 ? void 0 : _this$commandEditor3.trigger('Tab key trigger suggestions', 'editor.action.triggerSuggest', {});
|
|
207
232
|
} else if (!this.isSuggestionMenuPopulated()) {
|
|
208
233
|
keyEvent.stopPropagation();
|
|
209
234
|
keyEvent.preventDefault();
|
|
@@ -213,7 +238,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
213
238
|
}); // Override the Ctrl+F functionality so that the find window doesn't appear
|
|
214
239
|
|
|
215
240
|
this.commandEditor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, // eslint-disable-line no-bitwise
|
|
216
|
-
() =>
|
|
241
|
+
() => undefined);
|
|
217
242
|
MonacoUtils.removeConflictingKeybindings(this.commandEditor);
|
|
218
243
|
MonacoUtils.registerPasteHandler(this.commandEditor);
|
|
219
244
|
this.commandEditor.focus();
|
|
@@ -231,7 +256,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
231
256
|
if (this.commandEditor) {
|
|
232
257
|
MonacoUtils.closeDocument(this.commandEditor, session);
|
|
233
258
|
this.commandEditor.dispose();
|
|
234
|
-
this.commandEditor =
|
|
259
|
+
this.commandEditor = undefined;
|
|
235
260
|
}
|
|
236
261
|
}
|
|
237
262
|
|
|
@@ -240,50 +265,68 @@ export class ConsoleInput extends PureComponent {
|
|
|
240
265
|
}
|
|
241
266
|
|
|
242
267
|
isSuggestionMenuActive() {
|
|
268
|
+
var _ref;
|
|
269
|
+
|
|
243
270
|
if (!this.commandSuggestionContainer) {
|
|
244
|
-
|
|
271
|
+
var _this$commandEditor4, _this$commandEditor4$;
|
|
272
|
+
|
|
273
|
+
this.commandSuggestionContainer = (_this$commandEditor4 = this.commandEditor) === null || _this$commandEditor4 === void 0 ? void 0 : (_this$commandEditor4$ = _this$commandEditor4.getDomNode()) === null || _this$commandEditor4$ === void 0 ? void 0 : _this$commandEditor4$.querySelector('.suggest-widget');
|
|
245
274
|
}
|
|
246
275
|
|
|
247
|
-
return this.commandSuggestionContainer && this.commandSuggestionContainer.classList.contains('visible');
|
|
276
|
+
return (_ref = this.commandSuggestionContainer && this.commandSuggestionContainer.classList.contains('visible')) !== null && _ref !== void 0 ? _ref : false;
|
|
248
277
|
}
|
|
249
278
|
|
|
250
279
|
isSuggestionMenuPopulated() {
|
|
251
|
-
|
|
280
|
+
var _this$commandSuggesti, _this$commandSuggesti2, _this$commandSuggesti3;
|
|
281
|
+
|
|
282
|
+
return this.isSuggestionMenuActive() && ((_this$commandSuggesti = (_this$commandSuggesti2 = this.commandSuggestionContainer) === null || _this$commandSuggesti2 === void 0 ? void 0 : (_this$commandSuggesti3 = _this$commandSuggesti2.querySelector('.monaco-list-rows')) === null || _this$commandSuggesti3 === void 0 ? void 0 : _this$commandSuggesti3.childElementCount) !== null && _this$commandSuggesti !== void 0 ? _this$commandSuggesti : 0) > 0;
|
|
252
283
|
}
|
|
253
284
|
|
|
254
285
|
focus() {
|
|
255
|
-
|
|
286
|
+
var _this$commandEditor5;
|
|
287
|
+
|
|
288
|
+
(_this$commandEditor5 = this.commandEditor) === null || _this$commandEditor5 === void 0 ? void 0 : _this$commandEditor5.focus();
|
|
256
289
|
}
|
|
257
290
|
|
|
258
291
|
focusStart() {
|
|
259
|
-
var
|
|
292
|
+
var _this$commandEditor6, _this$commandEditor7, _this$commandEditor8, _this$commandEditor9, _this$commandEditor10;
|
|
293
|
+
|
|
294
|
+
var model = (_this$commandEditor6 = this.commandEditor) === null || _this$commandEditor6 === void 0 ? void 0 : _this$commandEditor6.getModel();
|
|
295
|
+
assertNotNull(model);
|
|
260
296
|
var column = model.getLineLength(1) + 1; // Length of 1st line
|
|
261
297
|
|
|
262
|
-
var firstCharTop = this.commandEditor.getTopForPosition(1, column);
|
|
263
|
-
|
|
298
|
+
var firstCharTop = (_this$commandEditor7 = this.commandEditor) === null || _this$commandEditor7 === void 0 ? void 0 : _this$commandEditor7.getTopForPosition(1, column);
|
|
299
|
+
assertNotNull(firstCharTop);
|
|
300
|
+
(_this$commandEditor8 = this.commandEditor) === null || _this$commandEditor8 === void 0 ? void 0 : _this$commandEditor8.setPosition({
|
|
264
301
|
lineNumber: 1,
|
|
265
302
|
column
|
|
266
303
|
});
|
|
267
|
-
this.commandEditor.setScrollTop(firstCharTop);
|
|
268
|
-
this.commandEditor.focus();
|
|
304
|
+
(_this$commandEditor9 = this.commandEditor) === null || _this$commandEditor9 === void 0 ? void 0 : _this$commandEditor9.setScrollTop(firstCharTop);
|
|
305
|
+
(_this$commandEditor10 = this.commandEditor) === null || _this$commandEditor10 === void 0 ? void 0 : _this$commandEditor10.focus();
|
|
269
306
|
}
|
|
270
307
|
|
|
271
308
|
focusEnd() {
|
|
272
|
-
var
|
|
309
|
+
var _this$commandEditor11, _this$commandEditor12, _this$commandEditor13, _this$commandEditor14, _this$commandEditor15;
|
|
310
|
+
|
|
311
|
+
var model = (_this$commandEditor11 = this.commandEditor) === null || _this$commandEditor11 === void 0 ? void 0 : _this$commandEditor11.getModel();
|
|
312
|
+
assertNotNull(model);
|
|
273
313
|
var lastLine = model.getLineCount();
|
|
274
314
|
var column = model.getLineLength(lastLine) + 1;
|
|
275
|
-
var lastCharTop = this.commandEditor.getTopForPosition(lastLine, column);
|
|
276
|
-
|
|
315
|
+
var lastCharTop = (_this$commandEditor12 = this.commandEditor) === null || _this$commandEditor12 === void 0 ? void 0 : _this$commandEditor12.getTopForPosition(lastLine, column);
|
|
316
|
+
assertNotNull(lastCharTop);
|
|
317
|
+
(_this$commandEditor13 = this.commandEditor) === null || _this$commandEditor13 === void 0 ? void 0 : _this$commandEditor13.setPosition({
|
|
277
318
|
lineNumber: lastLine,
|
|
278
319
|
column
|
|
279
320
|
});
|
|
280
|
-
this.commandEditor.setScrollTop(lastCharTop);
|
|
281
|
-
this.commandEditor.focus();
|
|
321
|
+
(_this$commandEditor14 = this.commandEditor) === null || _this$commandEditor14 === void 0 ? void 0 : _this$commandEditor14.setScrollTop(lastCharTop);
|
|
322
|
+
(_this$commandEditor15 = this.commandEditor) === null || _this$commandEditor15 === void 0 ? void 0 : _this$commandEditor15.focus();
|
|
282
323
|
}
|
|
283
324
|
|
|
284
325
|
clear() {
|
|
285
|
-
|
|
286
|
-
|
|
326
|
+
var _this$commandEditor16, _this$commandEditor17, _this$commandEditor18;
|
|
327
|
+
|
|
328
|
+
(_this$commandEditor16 = this.commandEditor) === null || _this$commandEditor16 === void 0 ? void 0 : _this$commandEditor16.focus();
|
|
329
|
+
(_this$commandEditor17 = this.commandEditor) === null || _this$commandEditor17 === void 0 ? void 0 : (_this$commandEditor18 = _this$commandEditor17.getModel()) === null || _this$commandEditor18 === void 0 ? void 0 : _this$commandEditor18.setValue('');
|
|
287
330
|
this.commandHistoryIndex = null;
|
|
288
331
|
}
|
|
289
332
|
|
|
@@ -295,19 +338,21 @@ export class ConsoleInput extends PureComponent {
|
|
|
295
338
|
/**
|
|
296
339
|
* Loads the given command from history
|
|
297
340
|
* If edits have been made to the command since last run command, loads the modified version
|
|
298
|
-
* @param
|
|
341
|
+
* @param index The index to load. Null to load command started in the editor and not in the history
|
|
299
342
|
*/
|
|
300
343
|
|
|
301
344
|
|
|
302
345
|
loadCommand(index) {
|
|
303
|
-
|
|
346
|
+
var _this$commandEditor19, _this$commandEditor20;
|
|
347
|
+
|
|
348
|
+
if (index === null || index >= this.history.length) {
|
|
304
349
|
return;
|
|
305
350
|
}
|
|
306
351
|
|
|
307
352
|
var modifiedValue = this.modifiedCommands.get(index);
|
|
308
353
|
var historyValue = index === null ? '' : this.history[this.history.length - index - 1];
|
|
309
354
|
this.commandHistoryIndex = index;
|
|
310
|
-
this.commandEditor.getModel().setValue(modifiedValue !== null && modifiedValue !== void 0 ? modifiedValue : historyValue);
|
|
355
|
+
(_this$commandEditor19 = this.commandEditor) === null || _this$commandEditor19 === void 0 ? void 0 : (_this$commandEditor20 = _this$commandEditor19.getModel()) === null || _this$commandEditor20 === void 0 ? void 0 : _this$commandEditor20.setValue(modifiedValue !== null && modifiedValue !== void 0 ? modifiedValue : historyValue);
|
|
311
356
|
|
|
312
357
|
if (index !== null && index > this.history.length - BUFFER_SIZE) {
|
|
313
358
|
this.loadMoreHistory();
|
|
@@ -328,7 +373,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
328
373
|
language,
|
|
329
374
|
scope
|
|
330
375
|
} = _this.props;
|
|
331
|
-
_this.loadingPromise = PromiseUtils.makeCancelable(commandHistoryStorage.getTable(language, scope, _this.timestamp), resolved => resolved.close());
|
|
376
|
+
_this.loadingPromise = PromiseUtils.makeCancelable(commandHistoryStorage.getTable(language, scope !== null && scope !== void 0 ? scope : '', _this.timestamp), resolved => resolved.close());
|
|
332
377
|
var table = yield _this.loadingPromise;
|
|
333
378
|
table.setReversed(true);
|
|
334
379
|
table.setViewport({
|
|
@@ -344,16 +389,16 @@ export class ConsoleInput extends PureComponent {
|
|
|
344
389
|
_this.bufferIndex = null;
|
|
345
390
|
}
|
|
346
391
|
|
|
347
|
-
_this.history = [...viewportData.items.map(
|
|
392
|
+
_this.history = [...(viewportData === null || viewportData === void 0 ? void 0 : viewportData.items.map(_ref2 => {
|
|
348
393
|
var {
|
|
349
394
|
name
|
|
350
|
-
} =
|
|
395
|
+
} = _ref2;
|
|
351
396
|
return name;
|
|
352
|
-
}).reverse(), ..._this.history];
|
|
353
|
-
_this.loadingPromise =
|
|
397
|
+
}).reverse()), ..._this.history];
|
|
398
|
+
_this.loadingPromise = undefined;
|
|
354
399
|
table.close();
|
|
355
400
|
} catch (err) {
|
|
356
|
-
_this.loadingPromise =
|
|
401
|
+
_this.loadingPromise = undefined;
|
|
357
402
|
|
|
358
403
|
if (PromiseUtils.isCanceled(err)) {
|
|
359
404
|
log.debug2('Promise canceled, not loading history');
|
|
@@ -366,11 +411,14 @@ export class ConsoleInput extends PureComponent {
|
|
|
366
411
|
}
|
|
367
412
|
|
|
368
413
|
processCommand() {
|
|
414
|
+
var _this$commandEditor21, _this$commandEditor22;
|
|
415
|
+
|
|
369
416
|
this.commandHistoryIndex = null;
|
|
370
417
|
this.modifiedCommands.clear();
|
|
371
|
-
var command = this.commandEditor.getValue().trim();
|
|
418
|
+
var command = (_this$commandEditor21 = this.commandEditor) === null || _this$commandEditor21 === void 0 ? void 0 : _this$commandEditor21.getValue().trim();
|
|
419
|
+
assertNotNull(command);
|
|
372
420
|
this.history.push(command);
|
|
373
|
-
this.commandEditor.setValue('');
|
|
421
|
+
(_this$commandEditor22 = this.commandEditor) === null || _this$commandEditor22 === void 0 ? void 0 : _this$commandEditor22.setValue('');
|
|
374
422
|
this.updateDimensions();
|
|
375
423
|
var {
|
|
376
424
|
onSubmit
|
|
@@ -386,23 +434,21 @@ export class ConsoleInput extends PureComponent {
|
|
|
386
434
|
var {
|
|
387
435
|
maxHeight
|
|
388
436
|
} = this.props;
|
|
437
|
+
assertNotNull(maxHeight);
|
|
389
438
|
var contentHeight = this.commandEditor.getContentHeight();
|
|
390
439
|
var commandEditorHeight = Math.max(Math.min(contentHeight, maxHeight), MIN_INPUT_HEIGHT); // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show
|
|
391
440
|
|
|
392
441
|
var shouldScroll = contentHeight > commandEditorHeight;
|
|
393
|
-
var options =
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
options.overviewRulerLanes = undefined; // Resets to default
|
|
397
|
-
} else {
|
|
398
|
-
options.overviewRulerLanes = 0;
|
|
399
|
-
}
|
|
400
|
-
|
|
442
|
+
var options = {
|
|
443
|
+
overviewRulerLanes: shouldScroll ? undefined : 0
|
|
444
|
+
};
|
|
401
445
|
this.setState({
|
|
402
446
|
commandEditorHeight
|
|
403
447
|
}, () => {
|
|
404
|
-
|
|
405
|
-
|
|
448
|
+
var _this$commandEditor23, _this$commandEditor24;
|
|
449
|
+
|
|
450
|
+
(_this$commandEditor23 = this.commandEditor) === null || _this$commandEditor23 === void 0 ? void 0 : _this$commandEditor23.updateOptions(options);
|
|
451
|
+
(_this$commandEditor24 = this.commandEditor) === null || _this$commandEditor24 === void 0 ? void 0 : _this$commandEditor24.layout();
|
|
406
452
|
});
|
|
407
453
|
}
|
|
408
454
|
|
|
@@ -440,21 +486,13 @@ export class ConsoleInput extends PureComponent {
|
|
|
440
486
|
|
|
441
487
|
}
|
|
442
488
|
|
|
443
|
-
_defineProperty(ConsoleInput, "
|
|
444
|
-
|
|
445
|
-
ConsoleInput.propTypes = {
|
|
446
|
-
session: PropTypes.shape({}).isRequired,
|
|
447
|
-
language: PropTypes.string.isRequired,
|
|
448
|
-
scope: PropTypes.string,
|
|
449
|
-
commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,
|
|
450
|
-
onSubmit: PropTypes.func.isRequired,
|
|
451
|
-
maxHeight: PropTypes.number,
|
|
452
|
-
disabled: PropTypes.bool
|
|
453
|
-
};
|
|
454
|
-
ConsoleInput.defaultProps = {
|
|
489
|
+
_defineProperty(ConsoleInput, "defaultProps", {
|
|
455
490
|
maxHeight: LINE_HEIGHT * 10,
|
|
456
491
|
scope: null,
|
|
457
492
|
disabled: false
|
|
458
|
-
};
|
|
493
|
+
});
|
|
494
|
+
|
|
495
|
+
_defineProperty(ConsoleInput, "INPUT_CLASS_NAME", 'console-input');
|
|
496
|
+
|
|
459
497
|
export default ConsoleInput;
|
|
460
498
|
//# sourceMappingURL=ConsoleInput.js.map
|
package/dist/ConsoleInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ConsoleInput.jsx"],"names":["React","PureComponent","PropTypes","classNames","monaco","Log","PromiseUtils","MonacoCompletionProvider","MonacoTheme","MonacoUtils","StoragePropTypes","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","handleWindowResize","bind","cancelListener","commandContainer","createRef","commandEditor","commandHistoryIndex","commandSuggestionContainer","loadingPromise","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","window","addEventListener","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","removeEventListener","cancel","destroyCommandEditor","setConsoleText","text","focus","execute","debug","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","tabCompletion","value","wordWrap","editor","create","current","setEOL","openDocument","onDidChangeModelContent","set","getValue","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","lineNumber","getPosition","getModel","keyCode","KeyCode","UpArrow","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","DownArrow","getLineCount","altKey","shiftKey","metaKey","Enter","Tab","isSuggestionMenuActive","trigger","addCommand","KeyMod","CtrlCmd","KEY_F","removeConflictingKeybindings","registerPasteHandler","closeDocument","dispose","getDomNode","querySelector","classList","contains","childElementCount","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","lastLine","lastCharTop","clear","layout","index","length","modifiedValue","get","historyValue","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","map","name","reverse","err","isCanceled","debug2","error","command","trim","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","getOptions","overviewRulerLanes","undefined","updateOptions","render","disabled","INPUT_CLASS_NAME","height","propTypes","shape","isRequired","string","CommandHistoryStorage","func","number","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\nimport StoragePropTypes from './StoragePropTypes';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent {\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props) {\n super(props);\n\n this.handleWindowResize = this.handleWindowResize.bind(this);\n\n this.cancelListener = null;\n this.commandContainer = React.createRef();\n this.commandEditor = null;\n this.commandHistoryIndex = null;\n this.commandSuggestionContainer = null;\n this.loadingPromise = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount() {\n this.initCommandEditor();\n\n window.addEventListener('resize', this.handleWindowResize);\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate() {\n this.layoutEditor();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param {string} text The text to set in the input\n * @param {boolean} focus If the input should be focused\n * @param {boolean} execute If the input should be executed\n * @returns void\n */\n setConsoleText(text, focus = true, execute = false) {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor.setValue(text);\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand();\n }\n }\n\n initCommandEditor() {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: 'false',\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n tabCompletion: 'on',\n value: '',\n wordWrap: 'on',\n };\n\n this.commandEditor = monaco.editor.create(\n this.commandContainer.current,\n commandSettings\n );\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n this.modifiedCommands.set(\n this.commandHistoryIndex,\n this.commandEditor.getValue()\n );\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n const { commandEditor, commandHistoryIndex } = this;\n const { lineNumber } = commandEditor.getPosition();\n const model = commandEditor.getModel();\n if (\n keyEvent.keyCode === monaco.KeyCode.UpArrow &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.keyCode === monaco.KeyCode.DownArrow &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (keyEvent.keyCode === monaco.KeyCode.Enter) {\n if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.processCommand();\n }\n } else if (keyEvent.keyCode === monaco.KeyCode.Tab) {\n if (!this.isSuggestionMenuActive()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.commandEditor.trigger(\n 'Tab key trigger suggestions',\n 'editor.action.triggerSuggest',\n {}\n );\n } else if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n }\n }\n }\n });\n\n // Override the Ctrl+F functionality so that the find window doesn't appear\n this.commandEditor.addCommand(\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, // eslint-disable-line no-bitwise\n () => {}\n );\n\n MonacoUtils.removeConflictingKeybindings(this.commandEditor);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor() {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = null;\n }\n }\n\n handleWindowResize() {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive() {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n .getDomNode()\n .querySelector('.suggest-widget');\n }\n\n return (\n this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')\n );\n }\n\n isSuggestionMenuPopulated() {\n return (\n this.isSuggestionMenuActive() &&\n this.commandSuggestionContainer.querySelector('.monaco-list-rows')\n .childElementCount > 0\n );\n }\n\n focus() {\n this.commandEditor.focus();\n }\n\n focusStart() {\n const model = this.commandEditor.getModel();\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor.getTopForPosition(1, column);\n this.commandEditor.setPosition({ lineNumber: 1, column });\n this.commandEditor.setScrollTop(firstCharTop);\n this.commandEditor.focus();\n }\n\n focusEnd() {\n const model = this.commandEditor.getModel();\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor.getTopForPosition(lastLine, column);\n this.commandEditor.setPosition({ lineNumber: lastLine, column });\n this.commandEditor.setScrollTop(lastCharTop);\n this.commandEditor.focus();\n }\n\n clear() {\n this.commandEditor.focus();\n this.commandEditor.getModel().setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor() {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param {number | null} index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index) {\n if (index !== null && index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor.getModel().setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory() {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope, this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData.items.map(({ name }) => name).reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = null;\n\n table.close();\n } catch (err) {\n this.loadingPromise = null;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand() {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n const command = this.commandEditor.getValue().trim();\n this.history.push(command);\n this.commandEditor.setValue('');\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions() {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n const options = this.commandEditor.getOptions();\n if (shouldScroll) {\n options.overviewRulerLanes = undefined; // Resets to default\n } else {\n options.overviewRulerLanes = 0;\n }\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor.updateOptions(options);\n this.commandEditor.layout();\n }\n );\n }\n\n render() {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoCompletionProvider\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nConsoleInput.propTypes = {\n session: PropTypes.shape({}).isRequired,\n language: PropTypes.string.isRequired,\n scope: PropTypes.string,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n onSubmit: PropTypes.func.isRequired,\n maxHeight: PropTypes.number,\n disabled: PropTypes.bool,\n};\n\nConsoleInput.defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n};\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
|
|
1
|
+
{"version":3,"sources":["../src/ConsoleInput.tsx"],"names":["React","PureComponent","classNames","monaco","Log","assertNotNull","PromiseUtils","MonacoCompletionProvider","MonacoTheme","MonacoUtils","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","handleWindowResize","bind","commandContainer","createRef","commandHistoryIndex","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","window","addEventListener","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","removeEventListener","loadingPromise","cancel","destroyCommandEditor","setConsoleText","text","focus","execute","debug","commandEditor","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","tabCompletion","value","wordWrap","element","current","editor","create","setEOL","openDocument","onDidChangeModelContent","getValue","set","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","position","getPosition","lineNumber","getModel","keyCode","KeyCode","UpArrow","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","DownArrow","getLineCount","altKey","shiftKey","metaKey","Enter","Tab","isSuggestionMenuActive","trigger","addCommand","KeyMod","CtrlCmd","KEY_F","undefined","removeConflictingKeybindings","registerPasteHandler","closeDocument","dispose","commandSuggestionContainer","getDomNode","querySelector","classList","contains","childElementCount","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","lastLine","lastCharTop","clear","layout","index","length","modifiedValue","get","historyValue","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","map","name","reverse","err","isCanceled","debug2","error","command","trim","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","overviewRulerLanes","updateOptions","render","disabled","INPUT_CLASS_NAME","height"],"mappings":"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","sourcesContent":["import React, { PureComponent, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { ViewportData } from '@deephaven/storage';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './command-history';\nimport { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\ninterface ConsoleInputProps {\n session: IdeSession;\n language: string;\n scope?: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSubmit: (command: string) => void;\n maxHeight?: number;\n disabled?: boolean;\n}\n\ninterface ConsoleInputState {\n commandEditorHeight: number;\n isFocused: boolean;\n model: monaco.editor.ITextModel | null;\n}\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent<\n ConsoleInputProps,\n ConsoleInputState\n> {\n static defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n };\n\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props: ConsoleInputProps) {\n super(props);\n\n this.handleWindowResize = this.handleWindowResize.bind(this);\n\n this.commandContainer = React.createRef();\n this.commandHistoryIndex = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount(): void {\n this.initCommandEditor();\n\n window.addEventListener('resize', this.handleWindowResize);\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate(): void {\n this.layoutEditor();\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('resize', this.handleWindowResize);\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n cancelListener?: () => void;\n\n commandContainer: RefObject<HTMLDivElement>;\n\n commandEditor?: monaco.editor.IStandaloneCodeEditor;\n\n commandHistoryIndex: number | null;\n\n commandSuggestionContainer?: Element | null;\n\n loadingPromise?:\n | CancelablePromise<ViewportData<CommandHistoryStorageItem>>\n | CancelablePromise<CommandHistoryTable>;\n\n timestamp: number;\n\n bufferIndex: number | null;\n\n history: string[];\n\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n modifiedCommands: Map<number | null, string | null>;\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param text The text to set in the input\n * @param focus If the input should be focused\n * @param execute If the input should be executed\n * @returns void\n */\n setConsoleText(text: string, focus = true, execute = false): void {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor?.setValue(text);\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand();\n }\n }\n\n initCommandEditor(): void {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: false,\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n tabCompletion: 'on',\n value: '',\n wordWrap: 'on',\n } as const;\n\n const element = this.commandContainer.current;\n assertNotNull(element);\n this.commandEditor = monaco.editor.create(element, commandSettings);\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n const value = this.commandEditor?.getValue();\n this.modifiedCommands.set(this.commandHistoryIndex, value ?? null);\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n const { commandEditor, commandHistoryIndex } = this;\n const position = commandEditor?.getPosition();\n assertNotNull(position);\n const { lineNumber } = position;\n const model = commandEditor?.getModel();\n if (\n keyEvent.keyCode === monaco.KeyCode.UpArrow &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.keyCode === monaco.KeyCode.DownArrow &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model?.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (keyEvent.keyCode === monaco.KeyCode.Enter) {\n if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.processCommand();\n }\n } else if (keyEvent.keyCode === monaco.KeyCode.Tab) {\n if (!this.isSuggestionMenuActive()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.commandEditor?.trigger(\n 'Tab key trigger suggestions',\n 'editor.action.triggerSuggest',\n {}\n );\n } else if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n }\n }\n }\n });\n\n // Override the Ctrl+F functionality so that the find window doesn't appear\n this.commandEditor.addCommand(\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, // eslint-disable-line no-bitwise\n () => undefined\n );\n\n MonacoUtils.removeConflictingKeybindings(this.commandEditor);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor(): void {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = undefined;\n }\n }\n\n handleWindowResize(): void {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive(): boolean {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n ?.getDomNode()\n ?.querySelector('.suggest-widget');\n }\n\n return (\n (this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')) ??\n false\n );\n }\n\n isSuggestionMenuPopulated(): boolean {\n return (\n this.isSuggestionMenuActive() &&\n (this.commandSuggestionContainer?.querySelector('.monaco-list-rows')\n ?.childElementCount ?? 0) > 0\n );\n }\n\n focus(): void {\n this.commandEditor?.focus();\n }\n\n focusStart(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor?.getTopForPosition(1, column);\n assertNotNull(firstCharTop);\n this.commandEditor?.setPosition({ lineNumber: 1, column });\n this.commandEditor?.setScrollTop(firstCharTop);\n this.commandEditor?.focus();\n }\n\n focusEnd(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor?.getTopForPosition(lastLine, column);\n assertNotNull(lastCharTop);\n this.commandEditor?.setPosition({ lineNumber: lastLine, column });\n this.commandEditor?.setScrollTop(lastCharTop);\n this.commandEditor?.focus();\n }\n\n clear(): void {\n this.commandEditor?.focus();\n this.commandEditor?.getModel()?.setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor(): void {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index: number | null): void {\n if (index === null || index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor?.getModel()?.setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory(): Promise<void> {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope ?? '', this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData?.items.map(({ name }) => name).reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = undefined;\n\n table.close();\n } catch (err) {\n this.loadingPromise = undefined;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand(): void {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n const command = this.commandEditor?.getValue().trim();\n assertNotNull(command);\n this.history.push(command);\n this.commandEditor?.setValue('');\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions(): void {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n assertNotNull(maxHeight);\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n\n const options = { overviewRulerLanes: shouldScroll ? undefined : 0 };\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor?.updateOptions(options);\n this.commandEditor?.layout();\n }\n );\n }\n\n render(): ReactElement {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoCompletionProvider\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
|
package/dist/ConsoleMenu.d.ts
CHANGED
|
@@ -1,28 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { ChangeEvent, ChangeEventHandler, PureComponent, ReactElement } from 'react';
|
|
2
|
+
import { DropdownAction, SearchInput } from '@deephaven/components';
|
|
3
|
+
import { VariableDefinition } from '@deephaven/jsapi-shim';
|
|
4
|
+
import './ConsoleMenu.scss';
|
|
5
|
+
interface ConsoleMenuProps {
|
|
6
|
+
openObject: (object: VariableDefinition) => void;
|
|
7
|
+
objects: VariableDefinition[];
|
|
8
|
+
overflowActions: DropdownAction[];
|
|
9
|
+
}
|
|
10
|
+
interface ConsoleMenuState {
|
|
11
|
+
tableFilterText: string;
|
|
12
|
+
widgetFilterText: string;
|
|
13
|
+
}
|
|
14
|
+
declare class ConsoleMenu extends PureComponent<ConsoleMenuProps, ConsoleMenuState> {
|
|
15
|
+
static makeItemActions(objects: VariableDefinition[], filterText: string, refCallback: (ref: SearchInput) => void, changeCallback: ChangeEventHandler<HTMLInputElement>, openCallback: (object: VariableDefinition) => void): DropdownAction[];
|
|
16
|
+
constructor(props: ConsoleMenuProps);
|
|
17
|
+
tableSearchField?: SearchInput;
|
|
18
|
+
widgetSearchField?: SearchInput;
|
|
19
|
+
makeTableActions: (objects: VariableDefinition[], filterText: string, openObject: (object: VariableDefinition) => void) => DropdownAction[];
|
|
20
|
+
makeWidgetActions: (objects: VariableDefinition[], filterText: string, openObject: (object: VariableDefinition) => void) => DropdownAction[];
|
|
21
|
+
handleTableFilterChange(e: ChangeEvent<HTMLInputElement>): void;
|
|
6
22
|
handleTableMenuClosed(): void;
|
|
7
23
|
handleTableMenuOpened(): void;
|
|
8
|
-
handleWidgetFilterChange(e:
|
|
24
|
+
handleWidgetFilterChange(e: ChangeEvent<HTMLInputElement>): void;
|
|
9
25
|
handleWidgetMenuClosed(): void;
|
|
10
26
|
handleWidgetMenuOpened(): void;
|
|
11
|
-
|
|
12
|
-
widgetSearchField: any;
|
|
13
|
-
makeTableActions: (this: any, objects: any, filterText: any, openObject: any) => any[];
|
|
14
|
-
makeWidgetActions: (this: any, objects: any, filterText: any, openObject: any) => any[];
|
|
27
|
+
render(): ReactElement;
|
|
15
28
|
}
|
|
16
|
-
|
|
17
|
-
namespace propTypes {
|
|
18
|
-
const openObject: PropTypes.Validator<(...args: any[]) => any>;
|
|
19
|
-
const objects: PropTypes.Validator<(PropTypes.InferProps<{
|
|
20
|
-
name: PropTypes.Validator<string>;
|
|
21
|
-
type: PropTypes.Validator<string>;
|
|
22
|
-
}> | null | undefined)[]>;
|
|
23
|
-
const overflowActions: PropTypes.Validator<((...args: any[]) => any) | (PropTypes.InferProps<{}> | null | undefined)[]>;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
import React from "react";
|
|
27
|
-
import PropTypes from "prop-types";
|
|
29
|
+
export default ConsoleMenu;
|
|
28
30
|
//# sourceMappingURL=ConsoleMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleMenu.d.ts","sourceRoot":"","sources":["../src/ConsoleMenu.
|
|
1
|
+
{"version":3,"file":"ConsoleMenu.d.ts","sourceRoot":"","sources":["../src/ConsoleMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACb,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,cAAc,EAGd,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,oBAAoB,CAAC;AAK5B,UAAU,gBAAgB;IACxB,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,UAAU,gBAAgB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,cAAM,WAAY,SAAQ,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzE,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,EACvC,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACpD,YAAY,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GACjD,cAAc,EAAE;gBAiCP,KAAK,EAAE,gBAAgB;IAgBnC,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,gBAAgB,YAEH,kBAAkB,EAAE,cACjB,MAAM,uBACG,kBAAkB,KAAK,IAAI,KAC/C,cAAc,EAAE,CAcnB;IAEF,iBAAiB,YAEJ,kBAAkB,EAAE,cACjB,MAAM,uBACG,kBAAkB,KAAK,IAAI,KAC/C,cAAc,EAAE,CAcnB;IAEF,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK/D,qBAAqB,IAAI,IAAI;IAI7B,qBAAqB,IAAI,IAAI;IAM7B,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAKhE,sBAAsB,IAAI,IAAI;IAI9B,sBAAsB,IAAI,IAAI;IAM9B,MAAM,IAAI,YAAY;CA6EvB;AAED,eAAe,WAAW,CAAC"}
|