@deephaven/console 0.9.1-beta.0 → 0.9.1-beta.10

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.
@@ -8,13 +8,13 @@ export class ConsoleInput extends React.PureComponent<any, any, any> {
8
8
  cancelListener: any;
9
9
  commandContainer: React.RefObject<any>;
10
10
  commandEditor: monaco.editor.IStandaloneCodeEditor | null;
11
- commandHistoryIndex: any;
11
+ commandHistoryIndex: number | null;
12
12
  commandSuggestionContainer: Element | null;
13
- isCommandModified: boolean;
14
13
  loadingPromise: any;
15
14
  timestamp: number;
16
15
  bufferIndex: number;
17
16
  history: any[];
17
+ modifiedCommands: Map<any, any>;
18
18
  /**
19
19
  * Sets the console text from an external source.
20
20
  * Sets commandHistoryIndex to null since the source is not part of the history
@@ -33,7 +33,12 @@ export class ConsoleInput extends React.PureComponent<any, any, any> {
33
33
  focusEnd(): void;
34
34
  clear(): void;
35
35
  layoutEditor(): void;
36
- loadCommand(index: any): void;
36
+ /**
37
+ * Loads the given command from history
38
+ * If edits have been made to the command since last run command, loads the modified version
39
+ * @param {number | null} index The index to load. Null to load command started in the editor and not in the history
40
+ */
41
+ loadCommand(index: number | null): void;
37
42
  loadMoreHistory(): Promise<void>;
38
43
  processCommand(): void;
39
44
  updateDimensions(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.jsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH;IACE,gCAA0C;IAE1C,wBAqBC;IAoMD,2BAEC;IAtNC,oBAA0B;IAC1B,uCAAyC;IACzC,0DAAyB;IACzB,yBAA+B;IAC/B,2CAAsC;IACtC,2BAA8B;IAC9B,oBAA0B;IAC1B,kBAA2B;IAC3B,oBAAoB;IACpB,eAAiB;IA+BnB;;;;;;;OAOG;IACH,qBALW,MAAM,UACN,OAAO,YACP,OAAO,QAsBjB;IAED,0BAoIC;IAED,6BAOC;IAMD,yCAWC;IAED,4CAMC;IAED,cAEC;IAED,mBAOC;IAED,iBAQC;IAED,cAIC;IAED,qBAIC;IAED,8BAeC;IAED,iCA+CC;IAED,uBAWC;IAED,yBA8BC;CA4BF"}
1
+ {"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.jsx"],"names":[],"mappings":"AAkBA;;GAEG;AACH;IACE,gCAA0C;IAE1C,wBAsBC;IAyMD,2BAEC;IA5NC,oBAA0B;IAC1B,uCAAyC;IACzC,0DAAyB;IACzB,mCAA+B;IAC/B,2CAAsC;IACtC,oBAA0B;IAC1B,kBAA2B;IAC3B,oBAAoB;IACpB,eAAiB;IAEjB,gCAAiC;IA+BnC;;;;;;;OAOG;IACH,qBALW,MAAM,UACN,OAAO,YACP,OAAO,QAwBjB;IAED,0BAuIC;IAED,6BAOC;IAMD,yCAWC;IAED,4CAMC;IAED,cAEC;IAED,mBAOC;IAED,iBAQC;IAED,cAIC;IAED,qBAIC;IAED;;;;OAIG;IACH,mBAFW,MAAM,GAAG,IAAI,QAevB;IAED,iCA+CC;IAED,uBAWC;IAED,yBA8BC;CA4BF"}
@@ -32,11 +32,12 @@ export class ConsoleInput extends PureComponent {
32
32
  this.commandEditor = null;
33
33
  this.commandHistoryIndex = null;
34
34
  this.commandSuggestionContainer = null;
35
- this.isCommandModified = false;
36
35
  this.loadingPromise = null;
37
36
  this.timestamp = Date.now();
38
37
  this.bufferIndex = 0;
39
- this.history = [];
38
+ this.history = []; // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed
39
+
40
+ this.modifiedCommands = new Map();
40
41
  this.state = {
41
42
  commandEditorHeight: LINE_HEIGHT,
42
43
  isFocused: false,
@@ -81,9 +82,11 @@ export class ConsoleInput extends PureComponent {
81
82
  return;
82
83
  }
83
84
 
84
- log.debug('Command received: ', text);
85
- this.commandEditor.setValue(text);
85
+ log.debug('Command received: ', text); // Need to set commandHistoryIndex before value
86
+ // On value change, modified commands map updates
87
+
86
88
  this.commandHistoryIndex = null;
89
+ this.commandEditor.setValue(text);
87
90
 
88
91
  if (focus) {
89
92
  this.focusEnd();
@@ -134,7 +137,7 @@ export class ConsoleInput extends PureComponent {
134
137
  MonacoUtils.setEOL(this.commandEditor);
135
138
  MonacoUtils.openDocument(this.commandEditor, session);
136
139
  this.commandEditor.onDidChangeModelContent(() => {
137
- this.isCommandModified = true;
140
+ this.modifiedCommands.set(this.commandHistoryIndex, this.commandEditor.getValue());
138
141
  this.updateDimensions();
139
142
  });
140
143
  this.commandEditor.onDidFocusEditorText(() => {
@@ -166,7 +169,7 @@ export class ConsoleInput extends PureComponent {
166
169
  if (keyEvent.keyCode === monaco.KeyCode.UpArrow && lineNumber === 1) {
167
170
  if (commandHistoryIndex != null) {
168
171
  this.loadCommand(commandHistoryIndex + 1);
169
- } else if (model.getValueLength() === 0) {
172
+ } else {
170
173
  this.loadCommand(0);
171
174
  }
172
175
 
@@ -177,10 +180,10 @@ export class ConsoleInput extends PureComponent {
177
180
  }
178
181
 
179
182
  if (keyEvent.keyCode === monaco.KeyCode.DownArrow && lineNumber === model.getLineCount()) {
180
- if (commandHistoryIndex != null && commandHistoryIndex >= 0) {
183
+ if (commandHistoryIndex != null && commandHistoryIndex > 0) {
181
184
  this.loadCommand(commandHistoryIndex - 1);
182
185
  } else {
183
- this.commandHistoryIndex = null;
186
+ this.loadCommand(null);
184
187
  }
185
188
 
186
189
  this.focusEnd();
@@ -289,21 +292,29 @@ export class ConsoleInput extends PureComponent {
289
292
  this.commandEditor.layout();
290
293
  }
291
294
  }
295
+ /**
296
+ * Loads the given command from history
297
+ * If edits have been made to the command since last run command, loads the modified version
298
+ * @param {number | null} index The index to load. Null to load command started in the editor and not in the history
299
+ */
300
+
292
301
 
293
302
  loadCommand(index) {
294
- if (index < 0) {
295
- this.commandHistoryIndex = null;
296
- this.commandEditor.getModel().setValue('');
297
- } else if (index < this.history.length) {
298
- this.commandHistoryIndex = index;
299
- this.commandEditor.getModel().setValue(this.history[this.history.length - index - 1]);
303
+ var _this$modifiedCommand;
304
+
305
+ var value = '';
306
+
307
+ if (index !== null && index < this.history.length) {
308
+ value = this.history[this.history.length - index - 1];
300
309
 
301
310
  if (index > this.history.length - BUFFER_SIZE) {
302
311
  this.loadMoreHistory();
303
312
  }
304
313
  }
305
314
 
306
- this.isCommandModified = false;
315
+ this.commandHistoryIndex = index;
316
+ value = (_this$modifiedCommand = this.modifiedCommands.get(index)) !== null && _this$modifiedCommand !== void 0 ? _this$modifiedCommand : value;
317
+ this.commandEditor.getModel().setValue(value);
307
318
  }
308
319
 
309
320
  loadMoreHistory() {
@@ -358,8 +369,8 @@ export class ConsoleInput extends PureComponent {
358
369
  }
359
370
 
360
371
  processCommand() {
361
- this.isCommandModified = false;
362
372
  this.commandHistoryIndex = null;
373
+ this.modifiedCommands.clear();
363
374
  var command = this.commandEditor.getValue().trim();
364
375
  this.history.push(command);
365
376
  this.commandEditor.setValue('');
@@ -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","isCommandModified","loadingPromise","timestamp","Date","now","bufferIndex","history","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","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","lineNumber","getPosition","getModel","keyCode","KeyCode","UpArrow","loadCommand","getValueLength","focusStart","stopPropagation","preventDefault","DownArrow","getLineCount","altKey","shiftKey","metaKey","Enter","isSuggestionMenuPopulated","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","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","map","name","reverse","err","isCanceled","debug2","error","command","getValue","trim","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","getOptions","overviewRulerLanes","undefined","updateOptions","render","INPUT_CLASS_NAME","height","propTypes","shape","isRequired","string","CommandHistoryStorage","func","number","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.isCommandModified = false;\n this.loadingPromise = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\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 this.commandEditor.setValue(text);\n this.commandHistoryIndex = null;\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.isCommandModified = true;\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 (keyEvent.keyCode === monaco.KeyCode.UpArrow && lineNumber === 1) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else if (model.getValueLength() === 0) {\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 lineNumber === model.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex >= 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.commandHistoryIndex = 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 loadCommand(index) {\n if (index < 0) {\n this.commandHistoryIndex = null;\n this.commandEditor.getModel().setValue('');\n } else if (index < this.history.length) {\n this.commandHistoryIndex = index;\n this.commandEditor\n .getModel()\n .setValue(this.history[this.history.length - index - 1]);\n if (index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n this.isCommandModified = false;\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.isCommandModified = false;\n this.commandHistoryIndex = null;\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 { language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className=\"console-input-wrapper\">\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};\n\nConsoleInput.defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n};\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
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","loadCommand","focusStart","stopPropagation","preventDefault","DownArrow","getLineCount","altKey","shiftKey","metaKey","Enter","isSuggestionMenuPopulated","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","get","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","INPUT_CLASS_NAME","height","propTypes","shape","isRequired","string","CommandHistoryStorage","func","number","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 (keyEvent.keyCode === monaco.KeyCode.UpArrow && lineNumber === 1) {\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 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 let value = '';\n if (index !== null && index < this.history.length) {\n value = this.history[this.history.length - index - 1];\n\n if (index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n this.commandHistoryIndex = index;\n value = this.modifiedCommands.get(index) ?? value;\n this.commandEditor.getModel().setValue(value);\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 { language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className=\"console-input-wrapper\">\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};\n\nConsoleInput.defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n};\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
@@ -21,7 +21,7 @@ declare class MonacoUtils {
21
21
  * @param {monaco.editor.IEditor} editor The editor to link the session to
22
22
  * @return A cleanup function for disposing of the created listeners
23
23
  */
24
- static openDocument(editor: monaco.editor.IEditor, session: any): any;
24
+ static openDocument(editor: monaco.editor.IEditor, session: dh.IdeSession): any;
25
25
  static closeDocument(editor: any, session: any): void;
26
26
  /**
27
27
  * Register a paste handle to clean up any garbage code pasted.
@@ -29,14 +29,14 @@ declare class MonacoUtils {
29
29
  * I've emailed Slack about the issue and they're working on it. I can't reference a ticket number because their ticket system is entirely internally facing.
30
30
  * @param {Monaco.editor} editor The editor the register the paste handler for
31
31
  */
32
- static registerPasteHandler(editor: any): void;
32
+ static registerPasteHandler(editor: Monaco.editor): void;
33
33
  static isMacPlatform(): boolean;
34
34
  /**
35
35
  * Remove any keybindings which are used for our own shortcuts.
36
36
  * This allows the key events to bubble up so a component higher up can capture them
37
37
  * @param {Monaco.editor} editor The editor to remove the keybindings from
38
38
  */
39
- static removeConflictingKeybindings(editor: any): void;
39
+ static removeConflictingKeybindings(editor: Monaco.editor): void;
40
40
  /**
41
41
  * Remove a keybinding and allow the events to bubble up
42
42
  * If you want the keybinding removed for all editors, add it to removeConflictingKeybindings
@@ -49,7 +49,7 @@ declare class MonacoUtils {
49
49
  * @param {Monaco.editor} editor The editor to remove the keybinding from
50
50
  * @param {string} keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows
51
51
  */
52
- static removeKeybinding(editor: any, keybinding: string): void;
52
+ static removeKeybinding(editor: Monaco.editor, keybinding: string): void;
53
53
  static getMonacoKeyCodeFromShortcut(shortcut: any): number;
54
54
  }
55
55
  import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.js"],"names":[],"mappings":";AAsEA;IACE,oBAoHC;IAED;;;;OAIG;IACH,4CAEC;IAED,+CAmBC;IAED,6CAQC;IAED;;;;OAIG;IACH,sBAHW,OAAO,MAAM,CAAC,OAAO,gBACrB,OAAO,MAAM,CAAC,iBAAiB,QAIzC;IAED;;;;;OAKG;IACH,4BAHW,OAAO,MAAM,CAAC,OAAO,qBAwD/B;IAED,sDAQC;IAED;;;;;OAKG;IACH,+CAiBC;IAED,gCAGC;IAED;;;;OAIG;IACH,uDA2BC;IAED;;;;;;;;;;;OAWG;IACH,iDAFW,MAAM,QA2BhB;IAED,2DA4BC;CACF"}
1
+ {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.js"],"names":[],"mappings":";AAsEA;IACE,oBAoHC;IAED;;;;OAIG;IACH,4CAEC;IAED,+CAmBC;IAED,6CAQC;IAED;;;;OAIG;IACH,sBAHW,OAAO,MAAM,CAAC,OAAO,gBACrB,OAAO,MAAM,CAAC,iBAAiB,QAIzC;IAED;;;;;OAKG;IACH,4BAHW,OAAO,MAAM,CAAC,OAAO,+BAwD/B;IAED,sDAQC;IAED;;;;;OAKG;IACH,yDAiBC;IAED,gCAGC;IAED;;;;OAIG;IACH,iEA2BC;IAED;;;;;;;;;;;OAWG;IACH,2DAFW,MAAM,QA2BhB;IAED,2DA4BC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.9.1-beta.0+559f166",
3
+ "version": "0.9.1-beta.10+8a6f7d2",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -16,28 +16,23 @@
16
16
  "node": ">=10"
17
17
  },
18
18
  "scripts": {
19
- "build": "cross-env NODE_ENV=production run-s clean build-steps",
20
- "build-dev": "cross-env NODE_ENV=development run-s clean build-steps",
21
- "build-steps": "run-p build:*",
22
- "babel": "babel ./src --out-dir ./dist --extensions \".ts,.tsx,.js,.jsx\" --source-maps --root-mode upward --verbose",
19
+ "build": "cross-env NODE_ENV=production run-p build:*",
20
+ "build-dev": "cross-env NODE_ENV=development run-p build:*",
21
+ "babel": "babel ./src --out-dir ./dist --extensions \".ts,.tsx,.js,.jsx\" --source-maps --root-mode upward",
23
22
  "sass": "sass ./src:./dist",
24
- "types": "tsc",
25
23
  "build:babel": "npm run babel",
26
24
  "build:sass": "npm run sass",
27
- "build:types": "npm run types -- --incremental",
28
25
  "watch": "run-p watch:*",
29
26
  "watch:babel": "npm run babel -- -w --skip-initial-build",
30
27
  "watch:sass": "npm run sass -- --watch --update",
31
- "watch:types": "npm run types -- -w --incremental --preserveWatchOutput",
32
- "clean": "rimraf ./dist tsconfig.tsbuildinfo",
33
28
  "prestart": "npm run build-dev",
34
29
  "start": "cross-env NODE_ENV=development npm run watch"
35
30
  },
36
31
  "dependencies": {
37
- "@deephaven/icons": "^0.9.1-beta.0+559f166",
38
- "@deephaven/jsapi-shim": "^0.9.1-beta.0+559f166",
39
- "@deephaven/storage": "^0.9.1-beta.0+559f166",
40
- "@deephaven/utils": "^0.9.1-beta.0+559f166",
32
+ "@deephaven/icons": "^0.9.1-beta.10+8a6f7d2",
33
+ "@deephaven/jsapi-shim": "^0.9.1-beta.10+8a6f7d2",
34
+ "@deephaven/storage": "^0.9.1-beta.10+8a6f7d2",
35
+ "@deephaven/utils": "^0.9.1-beta.10+8a6f7d2",
41
36
  "@fortawesome/react-fontawesome": "^0.1.12",
42
37
  "classnames": "^2.3.1",
43
38
  "jszip": "3.2.2",
@@ -58,10 +53,10 @@
58
53
  },
59
54
  "devDependencies": {
60
55
  "@babel/cli": "^7.16.0",
61
- "@deephaven/components": "^0.9.1-beta.0+559f166",
62
- "@deephaven/log": "^0.9.1-beta.0+559f166",
63
- "@deephaven/mocks": "^0.9.1-beta.0+559f166",
64
- "@deephaven/tsconfig": "^0.9.1-beta.0+559f166",
56
+ "@deephaven/components": "^0.9.1-beta.10+8a6f7d2",
57
+ "@deephaven/log": "^0.9.1-beta.10+8a6f7d2",
58
+ "@deephaven/mocks": "^0.9.1-beta.10+8a6f7d2",
59
+ "@deephaven/tsconfig": "^0.9.1-beta.10+8a6f7d2",
65
60
  "@types/react": "^16.14.8",
66
61
  "@types/react-dom": "^16.9.13",
67
62
  "cross-env": "^7.0.2",
@@ -70,8 +65,7 @@
70
65
  "react": "^16.14.0",
71
66
  "react-dom": "^16.14.0",
72
67
  "rimraf": "^3.0.2",
73
- "sass": "1.32.13",
74
- "typescript": "~4.3.2"
68
+ "sass": "1.32.13"
75
69
  },
76
70
  "files": [
77
71
  "dist"
@@ -82,5 +76,5 @@
82
76
  "publishConfig": {
83
77
  "access": "public"
84
78
  },
85
- "gitHead": "559f166018ce6e882a57351526fba18153912503"
79
+ "gitHead": "8a6f7d21a06c9b590682684844fb169153ee8340"
86
80
  }