@deephaven/console 0.22.3-beta.18 → 0.22.3-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/Console.js +9 -114
  2. package/dist/Console.js.map +1 -1
  3. package/dist/ConsoleInput.js +14 -90
  4. package/dist/ConsoleInput.js.map +1 -1
  5. package/dist/ConsoleMenu.js +6 -25
  6. package/dist/ConsoleMenu.js.map +1 -1
  7. package/dist/ConsolePropTypes.js.map +1 -1
  8. package/dist/ConsoleShortcuts.js +1 -1
  9. package/dist/ConsoleShortcuts.js.map +1 -1
  10. package/dist/ConsoleStatusBar.js +0 -16
  11. package/dist/ConsoleStatusBar.js.map +1 -1
  12. package/dist/HeapUsage.d.ts +1 -1
  13. package/dist/HeapUsage.d.ts.map +1 -1
  14. package/dist/HeapUsage.js +2 -18
  15. package/dist/HeapUsage.js.map +1 -1
  16. package/dist/StoragePropTypes.js.map +1 -1
  17. package/dist/command-history/CommandHistory.js +1 -49
  18. package/dist/command-history/CommandHistory.js.map +1 -1
  19. package/dist/command-history/CommandHistoryActions.js +0 -6
  20. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  21. package/dist/command-history/CommandHistoryItem.d.ts +4 -4
  22. package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
  23. package/dist/command-history/CommandHistoryItem.js +3 -6
  24. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  25. package/dist/command-history/CommandHistoryItemTooltip.js +3 -28
  26. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  27. package/dist/command-history/CommandHistoryViewportUpdater.js +0 -3
  28. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  29. package/dist/command-history/index.js.map +1 -1
  30. package/dist/common/Code.js +2 -11
  31. package/dist/common/Code.js.map +1 -1
  32. package/dist/common/ConsoleConstants.js +0 -2
  33. package/dist/common/ConsoleConstants.js.map +1 -1
  34. package/dist/common/ConsoleUtils.js +4 -19
  35. package/dist/common/ConsoleUtils.js.map +1 -1
  36. package/dist/common/ObjectIcon.d.ts +1 -1
  37. package/dist/common/ObjectIcon.d.ts.map +1 -1
  38. package/dist/common/ObjectIcon.js +2 -8
  39. package/dist/common/ObjectIcon.js.map +1 -1
  40. package/dist/common/index.js.map +1 -1
  41. package/dist/console-history/ConsoleHistory.js +0 -8
  42. package/dist/console-history/ConsoleHistory.js.map +1 -1
  43. package/dist/console-history/ConsoleHistoryItem.js +2 -25
  44. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  45. package/dist/console-history/ConsoleHistoryItemResult.d.ts +6 -6
  46. package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
  47. package/dist/console-history/ConsoleHistoryItemResult.js +2 -4
  48. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  49. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +0 -22
  50. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  51. package/dist/console-history/ConsoleHistoryResultInProgress.js +0 -13
  52. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  53. package/dist/console-history/index.js.map +1 -1
  54. package/dist/csv/CsvFormats.js +0 -9
  55. package/dist/csv/CsvFormats.js.map +1 -1
  56. package/dist/csv/CsvInputBar.js +18 -51
  57. package/dist/csv/CsvInputBar.js.map +1 -1
  58. package/dist/csv/CsvOverlay.js +1 -41
  59. package/dist/csv/CsvOverlay.js.map +1 -1
  60. package/dist/csv/CsvParser.js +10 -73
  61. package/dist/csv/CsvParser.js.map +1 -1
  62. package/dist/csv/CsvTypeParser.js +15 -85
  63. package/dist/csv/CsvTypeParser.js.map +1 -1
  64. package/dist/csv/NewTableColumnTypes.js +0 -9
  65. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  66. package/dist/index.d.ts +3 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -2
  69. package/dist/index.js.map +1 -1
  70. package/dist/log/LogLevel.js.map +1 -1
  71. package/dist/log/LogLevelMenuItem.js +0 -5
  72. package/dist/log/LogLevelMenuItem.js.map +1 -1
  73. package/dist/log/LogView.js +16 -106
  74. package/dist/log/LogView.js.map +1 -1
  75. package/dist/monaco/MonacoCompletionProvider.js +2 -14
  76. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  77. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  78. package/dist/monaco/MonacoUtils.js +21 -49
  79. package/dist/monaco/MonacoUtils.js.map +1 -1
  80. package/dist/monaco/index.js.map +1 -1
  81. package/dist/monaco/lang/db.d.ts.map +1 -1
  82. package/dist/monaco/lang/db.js +22 -13
  83. package/dist/monaco/lang/db.js.map +1 -1
  84. package/dist/monaco/lang/groovy.d.ts.map +1 -1
  85. package/dist/monaco/lang/groovy.js +28 -15
  86. package/dist/monaco/lang/groovy.js.map +1 -1
  87. package/dist/monaco/lang/log.js +1 -0
  88. package/dist/monaco/lang/log.js.map +1 -1
  89. package/dist/monaco/lang/python.d.ts.map +1 -1
  90. package/dist/monaco/lang/python.js +30 -16
  91. package/dist/monaco/lang/python.js.map +1 -1
  92. package/dist/monaco/lang/scala.js +26 -13
  93. package/dist/monaco/lang/scala.js.map +1 -1
  94. package/dist/notebook/Editor.js +2 -21
  95. package/dist/notebook/Editor.js.map +1 -1
  96. package/dist/notebook/ScriptEditor.d.ts +1 -1
  97. package/dist/notebook/ScriptEditor.d.ts.map +1 -1
  98. package/dist/notebook/ScriptEditor.js +0 -57
  99. package/dist/notebook/ScriptEditor.js.map +1 -1
  100. package/dist/notebook/ScriptEditorUtils.js +1 -7
  101. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  102. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","editor","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","undefined","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","onEditorWillDestroy","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"sources":["../../src/notebook/ScriptEditor.tsx"],"sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: IdeSession;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage !== undefined && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage !== undefined && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n onEditorInitialized,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session != null && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session != null) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n }\n if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language !== undefined) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language ?? null : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled != null &&\n completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","editor","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","undefined","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","onEditorWillDestroy","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"sources":["../../src/notebook/ScriptEditor.tsx"],"sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: IdeSession | null;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage !== undefined && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage !== undefined && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n onEditorInitialized,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session != null && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session != null) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n }\n if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language !== undefined) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language ?? null : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled != null &&\n completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ var LANGUAGES = {
3
3
  python: 'Python',
4
4
  scala: 'Scala'
5
5
  };
6
-
7
6
  class ScriptEditorUtils {
8
7
  /** Get PQ script language from Monaco language
9
8
  * @paramlanguage Monaco language
@@ -12,6 +11,7 @@ class ScriptEditorUtils {
12
11
  static normalizeScriptLanguage(language) {
13
12
  return LANGUAGES[language] || null;
14
13
  }
14
+
15
15
  /**
16
16
  * Get a tooltip for disabled button based on the session status and language
17
17
  * @param isSessionConnected True if console session connected
@@ -20,21 +20,15 @@ class ScriptEditorUtils {
20
20
  * @param buttonLabel Button label to use in the tooltip message
21
21
  * @returns Tooltip message or `null` if the session is connected and language is matching
22
22
  */
23
-
24
-
25
23
  static getDisabledRunTooltip(isSessionConnected, isLanguageMatching, scriptLanguageLabel, buttonLabel) {
26
24
  if (!isSessionConnected) {
27
25
  return "Console session not connected \u2013 ".concat(buttonLabel, " disabled");
28
26
  }
29
-
30
27
  if (!isLanguageMatching) {
31
28
  return "".concat(scriptLanguageLabel, " doesn't match the session language \u2013 ").concat(buttonLabel, " disabled");
32
29
  }
33
-
34
30
  return null;
35
31
  }
36
-
37
32
  }
38
-
39
33
  export default ScriptEditorUtils;
40
34
  //# sourceMappingURL=ScriptEditorUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n}\n\nexport default ScriptEditorUtils;\n"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QADQ;EAEhBC,MAAM,EAAE,QAFQ;EAGhBC,KAAK,EAAE;AAHS,CAAlB;;AAMA,MAAMC,iBAAN,CAAwB;EACtB;AACF;AACA;AACA;EACgC,OAAvBC,uBAAuB,CAACC,QAAD,EAA2C;IACvE,OAAON,SAAS,CAACM,QAAD,CAAT,IAAuB,IAA9B;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC8B,OAArBC,qBAAqB,CAC1BC,kBAD0B,EAE1BC,kBAF0B,EAG1BC,mBAH0B,EAI1BC,WAJ0B,EAKX;IACf,IAAI,CAACH,kBAAL,EAAyB;MACvB,sDAA0CG,WAA1C;IACD;;IACD,IAAI,CAACF,kBAAL,EAAyB;MACvB,iBAAUC,mBAAV,wDAAsEC,WAAtE;IACD;;IACD,OAAO,IAAP;EACD;;AA9BqB;;AAiCxB,eAAeP,iBAAf"}
1
+ {"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n}\n\nexport default ScriptEditorUtils;\n"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE;AACT,CAAU;AAEV,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,uBAAuB,CAACC,QAAgC,EAAU;IACvE,OAAON,SAAS,CAACM,QAAQ,CAAC,IAAI,IAAI;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,qBAAqB,CAC1BC,kBAA2B,EAC3BC,kBAA2B,EAC3BC,mBAA2B,EAC3BC,WAAmB,EACJ;IACf,IAAI,CAACH,kBAAkB,EAAE;MACvB,sDAA0CG,WAAW;IACvD;IACA,IAAI,CAACF,kBAAkB,EAAE;MACvB,iBAAUC,mBAAmB,wDAAyCC,WAAW;IACnF;IACA,OAAO,IAAI;EACb;AACF;AAEA,eAAeP,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.22.3-beta.18+8d1ab1f",
3
+ "version": "0.22.3-beta.21+6d63afd",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,13 +23,13 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/chart": "^0.22.3-beta.18+8d1ab1f",
27
- "@deephaven/components": "^0.22.3-beta.18+8d1ab1f",
28
- "@deephaven/icons": "^0.22.3-beta.18+8d1ab1f",
29
- "@deephaven/jsapi-shim": "^0.22.3-beta.18+8d1ab1f",
30
- "@deephaven/log": "^0.22.3-beta.18+8d1ab1f",
31
- "@deephaven/storage": "^0.22.3-beta.18+8d1ab1f",
32
- "@deephaven/utils": "^0.22.3-beta.18+8d1ab1f",
26
+ "@deephaven/chart": "^0.22.3-beta.21+6d63afd",
27
+ "@deephaven/components": "^0.22.3-beta.21+6d63afd",
28
+ "@deephaven/icons": "^0.22.3-beta.21+6d63afd",
29
+ "@deephaven/jsapi-shim": "^0.22.3-beta.21+6d63afd",
30
+ "@deephaven/log": "^0.22.3-beta.21+6d63afd",
31
+ "@deephaven/storage": "^0.22.3-beta.21+6d63afd",
32
+ "@deephaven/utils": "^0.22.3-beta.21+6d63afd",
33
33
  "@fortawesome/react-fontawesome": "^0.1.18",
34
34
  "classnames": "^2.3.1",
35
35
  "lodash.debounce": "^4.0.8",
@@ -47,8 +47,8 @@
47
47
  "react-dom": "^17.x"
48
48
  },
49
49
  "devDependencies": {
50
- "@deephaven/mocks": "^0.22.3-beta.18+8d1ab1f",
51
- "@deephaven/tsconfig": "^0.22.3-beta.18+8d1ab1f"
50
+ "@deephaven/mocks": "^0.22.3-beta.21+6d63afd",
51
+ "@deephaven/tsconfig": "^0.22.3-beta.21+6d63afd"
52
52
  },
53
53
  "files": [
54
54
  "dist"
@@ -59,5 +59,5 @@
59
59
  "publishConfig": {
60
60
  "access": "public"
61
61
  },
62
- "gitHead": "8d1ab1fa6e893a438891194f922e069417b7f2d0"
62
+ "gitHead": "6d63afd124485605d545e0104d0cb437eb8993ab"
63
63
  }