@deephaven/console 0.16.1-beta.0 → 0.16.1-vite.18

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 (56) hide show
  1. package/dist/Console.js.map +1 -1
  2. package/dist/ConsoleInput.js.map +1 -1
  3. package/dist/ConsoleMenu.js.map +1 -1
  4. package/dist/ConsolePropTypes.js.map +1 -1
  5. package/dist/ConsoleShortcuts.js.map +1 -1
  6. package/dist/ConsoleStatusBar.js.map +1 -1
  7. package/dist/HeapUsage.js.map +1 -1
  8. package/dist/StoragePropTypes.js.map +1 -1
  9. package/dist/command-history/CommandHistory.js.map +1 -1
  10. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  11. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  12. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  13. package/dist/command-history/CommandHistoryStorage.js.map +1 -1
  14. package/dist/command-history/CommandHistoryTypes.js.map +1 -1
  15. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  16. package/dist/command-history/index.js.map +1 -1
  17. package/dist/common/Code.js.map +1 -1
  18. package/dist/common/ConsoleConstants.js.map +1 -1
  19. package/dist/common/ConsoleUtils.js.map +1 -1
  20. package/dist/common/ObjectIcon.js.map +1 -1
  21. package/dist/common/index.d.js.map +1 -1
  22. package/dist/common/index.js.map +1 -1
  23. package/dist/console-history/ConsoleHistory.js.map +1 -1
  24. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  25. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  26. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  27. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  28. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
  29. package/dist/console-history/index.js.map +1 -1
  30. package/dist/csv/CsvFormats.js.map +1 -1
  31. package/dist/csv/CsvInputBar.js.map +1 -1
  32. package/dist/csv/CsvOverlay.js.map +1 -1
  33. package/dist/csv/CsvParser.js.map +1 -1
  34. package/dist/csv/CsvTypeParser.js.map +1 -1
  35. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  36. package/dist/declaration.d.js.map +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/log/LogLevel.js.map +1 -1
  39. package/dist/log/LogLevelMenuItem.js.map +1 -1
  40. package/dist/log/LogView.js.map +1 -1
  41. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  42. package/dist/monaco/MonacoUtils.d.ts +6 -1
  43. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  44. package/dist/monaco/MonacoUtils.js +14 -1
  45. package/dist/monaco/MonacoUtils.js.map +1 -1
  46. package/dist/monaco/index.js.map +1 -1
  47. package/dist/monaco/lang/Language.js.map +1 -1
  48. package/dist/monaco/lang/db.js.map +1 -1
  49. package/dist/monaco/lang/groovy.js.map +1 -1
  50. package/dist/monaco/lang/log.js.map +1 -1
  51. package/dist/monaco/lang/python.js.map +1 -1
  52. package/dist/monaco/lang/scala.js.map +1 -1
  53. package/dist/notebook/Editor.js.map +1 -1
  54. package/dist/notebook/ScriptEditor.js.map +1 -1
  55. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  56. package/package.json +12 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Console.tsx"],"names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","dh","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","scrollConsoleHistoryToBottom","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","pending","settings","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","componentDidMount","initConsoleLogging","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","cancelListener","onLogMessage","undefined","event","preventDefault","stopPropagation","current","clear","code","result","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","Date","now","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","then","resolved","error","handleCommandError","historyItemParam","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","lastIndexOf","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","removed","closeObject","itemIndex","disableOldObject","isRemoved","title","oldIndex","get","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","force","pane","scrollTop","scrollHeight","offsetHeight","window","requestAnimationFrame","scrollPane","clientHeight","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","type","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","consoleMenuObjects","getObjects","inputMaxHeight","Math","round","contextActions","getContextActions","handleDragOver","INPUT_CLASS_NAME"],"mappings":"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","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n DragEvent,\n PureComponent,\n ReactElement,\n ReactNode,\n RefObject,\n} from 'react';\nimport { ContextActions, DropdownAction } from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport type { JSZipObject } from 'jszip';\nimport dh, {\n IdeSession,\n LogItem,\n VariableChanges,\n VariableDefinition,\n} from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n} from './command-history';\n\nconst log = Log.module('Console');\n\ninterface Settings {\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nconst DEFAULT_SETTINGS: Settings = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n} as const;\n\ninterface ConsoleProps {\n statusBarChildren: ReactNode;\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n openObject: (object: VariableDefinition) => void;\n closeObject: (object: VariableDefinition) => void;\n session: IdeSession;\n language: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSettingsChange: (settings: Record<string, unknown>) => void;\n scope: string;\n actions: DropdownAction[];\n timeZone: string;\n\n // Children shown at the bottom of the console history\n historyChildren: ReactNode;\n\n // Known object map\n objectMap: Map<string, VariableDefinition>;\n\n disabled: boolean;\n\n /**\n * Function to unzip a zip file. If not provided, zip files will not be accepted\n * (file:File) => Promise<File[]>\n */\n unzip: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsoleState {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: ConsoleHistoryActionItem[];\n\n // Height of the viewport of the console input and history\n consoleHeight: number;\n\n isScrollDecorationShown: boolean;\n\n // Location of objects in the console history\n objectHistoryMap: Map<string, number>;\n\n // The object definitions, name/type\n objectMap: Map<string, VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\nexport class Console extends PureComponent<ConsoleProps, ConsoleState> {\n static defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: (): void => undefined,\n scope: null,\n actions: [],\n historyChildren: null,\n timeZone: 'America/New_York',\n objectMap: new Map(),\n disabled: false,\n unzip: null,\n };\n\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param logLevel The LogLevel being checked\n * @returns true if the log level is an error level log\n */\n static isErrorLevel(\n logLevel: typeof LogLevel[keyof typeof LogLevel]\n ): boolean {\n return (\n logLevel === LogLevel.STDERR ||\n logLevel === LogLevel.ERROR ||\n logLevel === LogLevel.FATAL\n );\n }\n\n /**\n * Check if the provided log level is output level\n * @param logLevel The LogLevel being checked\n * @returns true if the log level should be output to the console\n */\n static isOutputLevel(logLevel: string): boolean {\n // We want all errors to be output, in addition to STDOUT.\n // That way the user is more likely to see them.\n return logLevel === LogLevel.STDOUT || Console.isErrorLevel(logLevel);\n }\n\n constructor(props: ConsoleProps) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleToggleAutoLaunchPanels = this.handleToggleAutoLaunchPanels.bind(\n this\n );\n this.handleToggleClosePanelsOnDisconnect = this.handleToggleClosePanelsOnDisconnect.bind(\n this\n );\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.bind(this);\n this.handleCsvFileCanceled = this.handleCsvFileCanceled.bind(this);\n this.handleCsvFileOpened = this.handleCsvFileOpened.bind(this);\n this.handleCsvPaste = this.handleCsvPaste.bind(this);\n this.handleDragEnter = this.handleDragEnter.bind(this);\n this.handleDragLeave = this.handleDragLeave.bind(this);\n this.handleClearDragError = this.handleClearDragError.bind(this);\n this.handleOpenCsvTable = this.handleOpenCsvTable.bind(this);\n this.handleCsvUpdate = this.handleCsvUpdate.bind(this);\n this.handleCsvError = this.handleCsvError.bind(this);\n this.handleCsvInProgress = this.handleCsvInProgress.bind(this);\n\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n\n const { objectMap, settings } = this.props;\n\n this.state = {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: [],\n\n // Height of the viewport of the console input and history\n consoleHeight: 0,\n\n isScrollDecorationShown: false,\n\n // Location of objects in the console history\n objectHistoryMap: new Map(),\n\n // The object definitions, name/type\n objectMap: new Map(objectMap),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n }\n\n componentDidUpdate(prevProps: ConsoleProps, prevState: ConsoleState): void {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (props.objectMap !== prevProps.objectMap) {\n this.updateObjectMap();\n }\n }\n\n componentWillUnmount(): void {\n const { session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n initConsoleLogging(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n handleClearShortcut(event: CustomEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem = {\n command: code,\n disabledObjects: [],\n startTime: Date.now(),\n cancelResult: () => {\n result.cancel();\n },\n wrappedResult,\n };\n\n const { commandHistoryStorage, language, scope } = this.props;\n const workspaceItemPromise = commandHistoryStorage.addItem(\n language,\n scope,\n code,\n {\n command: code,\n startTime: new Date().toJSON(),\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom(true);\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(\n result:\n | {\n message: string;\n error?: string;\n changes: VariableChanges;\n }\n | undefined,\n historyItemParam: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = undefined;\n historyItem.cancelResult = undefined;\n\n if (!result) {\n return;\n }\n\n historyItem.result = result;\n\n this.updateHistory(result, historyItem);\n this.updateKnownObjects(historyItem);\n this.updateWorkspaceHistoryItem(\n { error: result.error },\n workspaceItemPromise\n );\n\n this.closeRemovedItems(result.changes);\n this.openUpdatedItems(result.changes);\n }\n\n handleCommandError(\n error: unknown,\n historyItemParam: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = undefined;\n historyItem.cancelResult = undefined;\n\n if (PromiseUtils.isCanceled(error)) {\n log.debug('Called handleCommandError on a cancelled promise result');\n return;\n }\n\n this.updateWorkspaceHistoryItem(\n { error: `${error}` },\n workspaceItemPromise\n );\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const index = history.lastIndexOf(historyItem);\n historyItem.endTime = Date.now();\n historyItem.result = { error };\n history[index] = { ...historyItem };\n return {\n consoleHistory: history,\n };\n });\n }\n\n handleFocusHistory(event: CustomEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message: LogItem): void {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (Console.isOutputLevel(message.logLevel)) {\n this.queueLogMessage(message.message, message.logLevel);\n }\n }\n\n queueLogMessage(message: string, logLevel: string): void {\n const result: Record<string, string> = {};\n if (Console.isErrorLevel(logLevel)) {\n result.error = message;\n } else {\n result.message = message;\n }\n\n const historyItem = { command: undefined, result };\n\n this.queuedLogMessages.push(historyItem);\n\n this.processLogMessageQueue();\n }\n\n processLogMessageQueue = throttle(() => {\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => {\n log.debug2(\n 'processLogMessageQueue',\n this.queuedLogMessages.length,\n ' items'\n );\n\n let { consoleHistory } = state;\n consoleHistory = consoleHistory.concat(this.queuedLogMessages);\n this.queuedLogMessages = [];\n\n return { consoleHistory };\n });\n }, Console.LOG_THROTTLE);\n\n openUpdatedItems(changes: VariableChanges): void {\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (!changes || !isAutoLaunchPanelsEnabled) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated].forEach(object =>\n openObject(object)\n );\n }\n\n closeRemovedItems(changes: VariableChanges): void {\n if (!changes || !changes.removed || changes.removed.length === 0) {\n return;\n }\n\n const { closeObject } = this.props;\n const { removed } = changes;\n removed.forEach(object => closeObject(object));\n }\n\n updateHistory(\n result: { changes: unknown },\n historyItemParam: ConsoleHistoryActionItem\n ): void {\n const historyItem = historyItemParam;\n if (!result || !result.changes || !historyItem) {\n return;\n }\n\n historyItem.endTime = Date.now();\n\n this.scrollConsoleHistoryToBottom();\n\n // Update history to re-render items as necessary\n this.setState(state => {\n const consoleHistory = state.consoleHistory.concat();\n return { consoleHistory };\n });\n }\n\n updateKnownObjects(historyItem: ConsoleHistoryActionItem): void {\n let changes: undefined | VariableChanges;\n if (historyItem.result) {\n changes = historyItem.result.changes;\n }\n if (\n !changes ||\n ((!changes.created || changes.created.length === 0) &&\n (!changes.updated || changes.updated.length === 0) &&\n (!changes.removed || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const itemIndex = history.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in state.consoleHistory`);\n return null;\n }\n\n const objectHistoryMap = new Map(state.objectHistoryMap);\n const objectMap = new Map(state.objectMap);\n\n const disableOldObject = (\n object: VariableDefinition,\n isRemoved = false\n ) => {\n const { title } = object;\n assertNotNull(title);\n const oldIndex = objectHistoryMap.get(title);\n // oldIndex can be -1 if a object is active but doesn't have a command in consoleHistory\n // this can happen after clearing the console using 'clear' or 'cls' command\n\n if (oldIndex != null && oldIndex >= 0) {\n // disable outdated object variable in the old consoleHistory item\n history[oldIndex].disabledObjects = [\n ...(history[oldIndex].disabledObjects ?? []),\n title,\n ];\n }\n objectHistoryMap.set(title, itemIndex);\n if (isRemoved) {\n objectMap.delete(title);\n } else {\n objectMap.set(title, object);\n }\n };\n\n changes?.updated.forEach(object => disableOldObject(object));\n changes?.removed.forEach(object => disableOldObject(object, true));\n\n // Created objects have to be processed after removed\n // in case the same object name is present in both removed and created\n changes?.created.forEach(object => {\n const { title } = object;\n assertNotNull(title);\n objectHistoryMap.set(title, itemIndex);\n objectMap.set(title, object);\n });\n\n return { objectHistoryMap, objectMap, consoleHistory: history };\n });\n }\n\n updateObjectMap(): void {\n const { objectMap } = this.props;\n this.setState({ objectMap });\n }\n\n /**\n * Updates an existing workspace CommandHistoryItem\n * @param result The result to store with the history item. Could be empty object for success\n * @param workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(\n result: { error?: string },\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(force = false): void {\n const pane = this.consoleHistoryScrollPane.current;\n assertNotNull(pane);\n if (!force && pane.scrollTop < pane.scrollHeight - pane.offsetHeight) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTop = pane.scrollHeight;\n });\n }\n\n handleScrollPaneScroll(): void {\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n if (\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight\n ) {\n this.setState({ isScrollDecorationShown: true });\n } else {\n this.setState({ isScrollDecorationShown: false });\n }\n }\n\n handleToggleAutoLaunchPanels(): void {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect(): void {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout(): void {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv(): void {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv(): void {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileCanceled(): void {\n this.setState({ csvFile: null, csvPaste: null });\n }\n\n handleCsvFileOpened(file: File): void {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value: string): void {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e: DragEvent<HTMLDivElement>): void {\n if (\n !e.dataTransfer ||\n !e.dataTransfer.items ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e: DragEvent<HTMLDivElement>): void {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (\n !e.currentTarget ||\n (e.currentTarget instanceof Element &&\n e.relatedTarget instanceof Element &&\n e.currentTarget.contains(e.relatedTarget))\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError(): void {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(title: string): void {\n const { openObject, commandHistoryStorage, language, scope } = this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name: title, title, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(title);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n this.scrollConsoleHistoryToBottom(true);\n this.updateKnownObjects(historyItem);\n openObject({ name: title, title, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, title, {\n command: title,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n });\n }\n\n addConsoleHistoryMessage(message?: string, error?: string): void {\n const { consoleHistory } = this.state;\n const historyItem = {\n command: '',\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message: string): void {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error: unknown): void {\n this.addConsoleHistoryMessage(undefined, error ? `${error}` : undefined);\n }\n\n handleCsvInProgress(csvUploadInProgress: boolean): void {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions(): DropdownAction[] {\n const {\n isAutoLaunchPanelsEnabled,\n isClosePanelsOnDisconnectEnabled,\n isPrintStdOutEnabled,\n } = this.state;\n const { actions } = this.props;\n return [\n ...actions,\n {\n title: 'Print Stdout',\n action: this.handleTogglePrintStdout,\n group: ContextActions.groups.high,\n icon: isPrintStdOutEnabled ? vsCheck : undefined,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : undefined,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : undefined,\n order: 30,\n },\n {\n title: 'Upload Table from File',\n action: this.handleUploadCsv,\n group: ContextActions.groups.high + 10,\n order: 40,\n },\n ];\n }\n\n handleCommandSubmit(command: string): void {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom(true);\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory(): void {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(objectMap => [...objectMap.values()]);\n\n getContextActions = memoize(actions => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]);\n\n addCommand(command: string, focus = true, execute = false): void {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom(true);\n }\n }\n\n focus(): void {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(\n prevState: ConsoleState,\n state: ConsoleState,\n checkIfChanged = true\n ): void {\n const keys = Object.keys(DEFAULT_SETTINGS) as Array<keyof Settings>;\n const settings: Record<string, unknown> = {};\n let hasChanges = false;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const { [key]: setting } = state;\n const { [key]: prevSetting } = prevState;\n if (setting !== prevSetting) {\n hasChanges = true;\n }\n settings[key] = setting;\n }\n if (checkIfChanged && !hasChanges) {\n return;\n }\n const { onSettingsChange } = this.props;\n onSettingsChange(settings);\n }\n\n updateDimensions(): void {\n if (this.consolePane.current) {\n this.setState({\n consoleHeight: this.consolePane.current.clientHeight,\n });\n }\n if (this.consoleInput.current) {\n this.consoleInput.current.updateDimensions();\n }\n }\n\n render(): ReactElement {\n const {\n actions,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n } = this.props;\n const {\n consoleHeight,\n consoleHistory,\n isScrollDecorationShown,\n objectMap,\n showCsvOverlay,\n csvFile,\n csvPaste,\n dragError,\n csvUploadInProgress,\n } = this.state;\n const consoleMenuObjects = this.getObjects(objectMap);\n const inputMaxHeight = Math.round(consoleHeight * 0.7);\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console', 'h-100', 'w-100', { disabled })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n session={session}\n overflowActions={this.handleOverflowActions()}\n openObject={openObject}\n objects={consoleMenuObjects}\n >\n {statusBarChildren}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {showCsvOverlay && (\n <CsvOverlay\n onCancel={this.handleCsvFileCanceled}\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\n allowZip={unzip != null}\n />\n )}\n <div\n role=\"presentation\"\n className={classNames('scroll-pane no-scroll-x', {\n 'scroll-decoration': isScrollDecorationShown,\n })}\n onScroll={this.handleScrollPaneScroll}\n ref={this.consoleHistoryScrollPane}\n >\n <ConsoleHistory\n items={consoleHistory}\n openObject={openObject}\n language={language}\n disabled={disabled}\n />\n {historyChildren}\n </div>\n </div>\n {!showCsvOverlay && (\n <ConsoleInput\n ref={this.consoleInput}\n session={session}\n language={language}\n scope={scope}\n onSubmit={this.handleCommandSubmit}\n maxHeight={inputMaxHeight}\n commandHistoryStorage={commandHistoryStorage}\n />\n )}\n {showCsvOverlay && (\n <CsvInputBar\n session={session}\n onOpenTable={this.handleOpenCsvTable}\n onClose={this.handleHideCsv}\n onUpdate={this.handleCsvUpdate}\n onError={this.handleCsvError}\n file={csvFile ?? undefined}\n paste={csvPaste ?? undefined}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n unzip={unzip}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nexport default Console;\n"],"file":"Console.js"}
1
+ {"version":3,"file":"Console.js","names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","dh","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","scrollConsoleHistoryToBottom","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","pending","settings","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","componentDidMount","initConsoleLogging","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","cancelListener","onLogMessage","undefined","event","preventDefault","stopPropagation","current","clear","code","result","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","Date","now","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","then","resolved","error","handleCommandError","historyItemParam","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","lastIndexOf","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","removed","closeObject","itemIndex","disableOldObject","isRemoved","title","oldIndex","get","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","force","pane","scrollTop","scrollHeight","offsetHeight","window","requestAnimationFrame","scrollPane","clientHeight","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","type","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","consoleMenuObjects","getObjects","inputMaxHeight","Math","round","contextActions","getContextActions","handleDragOver","INPUT_CLASS_NAME"],"sources":["../src/Console.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n DragEvent,\n PureComponent,\n ReactElement,\n ReactNode,\n RefObject,\n} from 'react';\nimport { ContextActions, DropdownAction } from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport type { JSZipObject } from 'jszip';\nimport dh, {\n IdeSession,\n LogItem,\n VariableChanges,\n VariableDefinition,\n} from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n} from './command-history';\n\nconst log = Log.module('Console');\n\ninterface Settings {\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nconst DEFAULT_SETTINGS: Settings = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n} as const;\n\ninterface ConsoleProps {\n statusBarChildren: ReactNode;\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n openObject: (object: VariableDefinition) => void;\n closeObject: (object: VariableDefinition) => void;\n session: IdeSession;\n language: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSettingsChange: (settings: Record<string, unknown>) => void;\n scope: string;\n actions: DropdownAction[];\n timeZone: string;\n\n // Children shown at the bottom of the console history\n historyChildren: ReactNode;\n\n // Known object map\n objectMap: Map<string, VariableDefinition>;\n\n disabled: boolean;\n\n /**\n * Function to unzip a zip file. If not provided, zip files will not be accepted\n * (file:File) => Promise<File[]>\n */\n unzip: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsoleState {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: ConsoleHistoryActionItem[];\n\n // Height of the viewport of the console input and history\n consoleHeight: number;\n\n isScrollDecorationShown: boolean;\n\n // Location of objects in the console history\n objectHistoryMap: Map<string, number>;\n\n // The object definitions, name/type\n objectMap: Map<string, VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\nexport class Console extends PureComponent<ConsoleProps, ConsoleState> {\n static defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: (): void => undefined,\n scope: null,\n actions: [],\n historyChildren: null,\n timeZone: 'America/New_York',\n objectMap: new Map(),\n disabled: false,\n unzip: null,\n };\n\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param logLevel The LogLevel being checked\n * @returns true if the log level is an error level log\n */\n static isErrorLevel(\n logLevel: typeof LogLevel[keyof typeof LogLevel]\n ): boolean {\n return (\n logLevel === LogLevel.STDERR ||\n logLevel === LogLevel.ERROR ||\n logLevel === LogLevel.FATAL\n );\n }\n\n /**\n * Check if the provided log level is output level\n * @param logLevel The LogLevel being checked\n * @returns true if the log level should be output to the console\n */\n static isOutputLevel(logLevel: string): boolean {\n // We want all errors to be output, in addition to STDOUT.\n // That way the user is more likely to see them.\n return logLevel === LogLevel.STDOUT || Console.isErrorLevel(logLevel);\n }\n\n constructor(props: ConsoleProps) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleToggleAutoLaunchPanels = this.handleToggleAutoLaunchPanels.bind(\n this\n );\n this.handleToggleClosePanelsOnDisconnect = this.handleToggleClosePanelsOnDisconnect.bind(\n this\n );\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.bind(this);\n this.handleCsvFileCanceled = this.handleCsvFileCanceled.bind(this);\n this.handleCsvFileOpened = this.handleCsvFileOpened.bind(this);\n this.handleCsvPaste = this.handleCsvPaste.bind(this);\n this.handleDragEnter = this.handleDragEnter.bind(this);\n this.handleDragLeave = this.handleDragLeave.bind(this);\n this.handleClearDragError = this.handleClearDragError.bind(this);\n this.handleOpenCsvTable = this.handleOpenCsvTable.bind(this);\n this.handleCsvUpdate = this.handleCsvUpdate.bind(this);\n this.handleCsvError = this.handleCsvError.bind(this);\n this.handleCsvInProgress = this.handleCsvInProgress.bind(this);\n\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n\n const { objectMap, settings } = this.props;\n\n this.state = {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: [],\n\n // Height of the viewport of the console input and history\n consoleHeight: 0,\n\n isScrollDecorationShown: false,\n\n // Location of objects in the console history\n objectHistoryMap: new Map(),\n\n // The object definitions, name/type\n objectMap: new Map(objectMap),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n }\n\n componentDidUpdate(prevProps: ConsoleProps, prevState: ConsoleState): void {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (props.objectMap !== prevProps.objectMap) {\n this.updateObjectMap();\n }\n }\n\n componentWillUnmount(): void {\n const { session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n initConsoleLogging(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n handleClearShortcut(event: CustomEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem = {\n command: code,\n disabledObjects: [],\n startTime: Date.now(),\n cancelResult: () => {\n result.cancel();\n },\n wrappedResult,\n };\n\n const { commandHistoryStorage, language, scope } = this.props;\n const workspaceItemPromise = commandHistoryStorage.addItem(\n language,\n scope,\n code,\n {\n command: code,\n startTime: new Date().toJSON(),\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom(true);\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(\n result:\n | {\n message: string;\n error?: string;\n changes: VariableChanges;\n }\n | undefined,\n historyItemParam: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = undefined;\n historyItem.cancelResult = undefined;\n\n if (!result) {\n return;\n }\n\n historyItem.result = result;\n\n this.updateHistory(result, historyItem);\n this.updateKnownObjects(historyItem);\n this.updateWorkspaceHistoryItem(\n { error: result.error },\n workspaceItemPromise\n );\n\n this.closeRemovedItems(result.changes);\n this.openUpdatedItems(result.changes);\n }\n\n handleCommandError(\n error: unknown,\n historyItemParam: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = undefined;\n historyItem.cancelResult = undefined;\n\n if (PromiseUtils.isCanceled(error)) {\n log.debug('Called handleCommandError on a cancelled promise result');\n return;\n }\n\n this.updateWorkspaceHistoryItem(\n { error: `${error}` },\n workspaceItemPromise\n );\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const index = history.lastIndexOf(historyItem);\n historyItem.endTime = Date.now();\n historyItem.result = { error };\n history[index] = { ...historyItem };\n return {\n consoleHistory: history,\n };\n });\n }\n\n handleFocusHistory(event: CustomEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message: LogItem): void {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (Console.isOutputLevel(message.logLevel)) {\n this.queueLogMessage(message.message, message.logLevel);\n }\n }\n\n queueLogMessage(message: string, logLevel: string): void {\n const result: Record<string, string> = {};\n if (Console.isErrorLevel(logLevel)) {\n result.error = message;\n } else {\n result.message = message;\n }\n\n const historyItem = { command: undefined, result };\n\n this.queuedLogMessages.push(historyItem);\n\n this.processLogMessageQueue();\n }\n\n processLogMessageQueue = throttle(() => {\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => {\n log.debug2(\n 'processLogMessageQueue',\n this.queuedLogMessages.length,\n ' items'\n );\n\n let { consoleHistory } = state;\n consoleHistory = consoleHistory.concat(this.queuedLogMessages);\n this.queuedLogMessages = [];\n\n return { consoleHistory };\n });\n }, Console.LOG_THROTTLE);\n\n openUpdatedItems(changes: VariableChanges): void {\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (!changes || !isAutoLaunchPanelsEnabled) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated].forEach(object =>\n openObject(object)\n );\n }\n\n closeRemovedItems(changes: VariableChanges): void {\n if (!changes || !changes.removed || changes.removed.length === 0) {\n return;\n }\n\n const { closeObject } = this.props;\n const { removed } = changes;\n removed.forEach(object => closeObject(object));\n }\n\n updateHistory(\n result: { changes: unknown },\n historyItemParam: ConsoleHistoryActionItem\n ): void {\n const historyItem = historyItemParam;\n if (!result || !result.changes || !historyItem) {\n return;\n }\n\n historyItem.endTime = Date.now();\n\n this.scrollConsoleHistoryToBottom();\n\n // Update history to re-render items as necessary\n this.setState(state => {\n const consoleHistory = state.consoleHistory.concat();\n return { consoleHistory };\n });\n }\n\n updateKnownObjects(historyItem: ConsoleHistoryActionItem): void {\n let changes: undefined | VariableChanges;\n if (historyItem.result) {\n changes = historyItem.result.changes;\n }\n if (\n !changes ||\n ((!changes.created || changes.created.length === 0) &&\n (!changes.updated || changes.updated.length === 0) &&\n (!changes.removed || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const itemIndex = history.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in state.consoleHistory`);\n return null;\n }\n\n const objectHistoryMap = new Map(state.objectHistoryMap);\n const objectMap = new Map(state.objectMap);\n\n const disableOldObject = (\n object: VariableDefinition,\n isRemoved = false\n ) => {\n const { title } = object;\n assertNotNull(title);\n const oldIndex = objectHistoryMap.get(title);\n // oldIndex can be -1 if a object is active but doesn't have a command in consoleHistory\n // this can happen after clearing the console using 'clear' or 'cls' command\n\n if (oldIndex != null && oldIndex >= 0) {\n // disable outdated object variable in the old consoleHistory item\n history[oldIndex].disabledObjects = [\n ...(history[oldIndex].disabledObjects ?? []),\n title,\n ];\n }\n objectHistoryMap.set(title, itemIndex);\n if (isRemoved) {\n objectMap.delete(title);\n } else {\n objectMap.set(title, object);\n }\n };\n\n changes?.updated.forEach(object => disableOldObject(object));\n changes?.removed.forEach(object => disableOldObject(object, true));\n\n // Created objects have to be processed after removed\n // in case the same object name is present in both removed and created\n changes?.created.forEach(object => {\n const { title } = object;\n assertNotNull(title);\n objectHistoryMap.set(title, itemIndex);\n objectMap.set(title, object);\n });\n\n return { objectHistoryMap, objectMap, consoleHistory: history };\n });\n }\n\n updateObjectMap(): void {\n const { objectMap } = this.props;\n this.setState({ objectMap });\n }\n\n /**\n * Updates an existing workspace CommandHistoryItem\n * @param result The result to store with the history item. Could be empty object for success\n * @param workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(\n result: { error?: string },\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(force = false): void {\n const pane = this.consoleHistoryScrollPane.current;\n assertNotNull(pane);\n if (!force && pane.scrollTop < pane.scrollHeight - pane.offsetHeight) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTop = pane.scrollHeight;\n });\n }\n\n handleScrollPaneScroll(): void {\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n if (\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight\n ) {\n this.setState({ isScrollDecorationShown: true });\n } else {\n this.setState({ isScrollDecorationShown: false });\n }\n }\n\n handleToggleAutoLaunchPanels(): void {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect(): void {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout(): void {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv(): void {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv(): void {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileCanceled(): void {\n this.setState({ csvFile: null, csvPaste: null });\n }\n\n handleCsvFileOpened(file: File): void {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value: string): void {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e: DragEvent<HTMLDivElement>): void {\n if (\n !e.dataTransfer ||\n !e.dataTransfer.items ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e: DragEvent<HTMLDivElement>): void {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (\n !e.currentTarget ||\n (e.currentTarget instanceof Element &&\n e.relatedTarget instanceof Element &&\n e.currentTarget.contains(e.relatedTarget))\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError(): void {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(title: string): void {\n const { openObject, commandHistoryStorage, language, scope } = this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name: title, title, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(title);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n this.scrollConsoleHistoryToBottom(true);\n this.updateKnownObjects(historyItem);\n openObject({ name: title, title, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, title, {\n command: title,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n });\n }\n\n addConsoleHistoryMessage(message?: string, error?: string): void {\n const { consoleHistory } = this.state;\n const historyItem = {\n command: '',\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message: string): void {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error: unknown): void {\n this.addConsoleHistoryMessage(undefined, error ? `${error}` : undefined);\n }\n\n handleCsvInProgress(csvUploadInProgress: boolean): void {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions(): DropdownAction[] {\n const {\n isAutoLaunchPanelsEnabled,\n isClosePanelsOnDisconnectEnabled,\n isPrintStdOutEnabled,\n } = this.state;\n const { actions } = this.props;\n return [\n ...actions,\n {\n title: 'Print Stdout',\n action: this.handleTogglePrintStdout,\n group: ContextActions.groups.high,\n icon: isPrintStdOutEnabled ? vsCheck : undefined,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : undefined,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : undefined,\n order: 30,\n },\n {\n title: 'Upload Table from File',\n action: this.handleUploadCsv,\n group: ContextActions.groups.high + 10,\n order: 40,\n },\n ];\n }\n\n handleCommandSubmit(command: string): void {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom(true);\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory(): void {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(objectMap => [...objectMap.values()]);\n\n getContextActions = memoize(actions => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]);\n\n addCommand(command: string, focus = true, execute = false): void {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom(true);\n }\n }\n\n focus(): void {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(\n prevState: ConsoleState,\n state: ConsoleState,\n checkIfChanged = true\n ): void {\n const keys = Object.keys(DEFAULT_SETTINGS) as Array<keyof Settings>;\n const settings: Record<string, unknown> = {};\n let hasChanges = false;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const { [key]: setting } = state;\n const { [key]: prevSetting } = prevState;\n if (setting !== prevSetting) {\n hasChanges = true;\n }\n settings[key] = setting;\n }\n if (checkIfChanged && !hasChanges) {\n return;\n }\n const { onSettingsChange } = this.props;\n onSettingsChange(settings);\n }\n\n updateDimensions(): void {\n if (this.consolePane.current) {\n this.setState({\n consoleHeight: this.consolePane.current.clientHeight,\n });\n }\n if (this.consoleInput.current) {\n this.consoleInput.current.updateDimensions();\n }\n }\n\n render(): ReactElement {\n const {\n actions,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n } = this.props;\n const {\n consoleHeight,\n consoleHistory,\n isScrollDecorationShown,\n objectMap,\n showCsvOverlay,\n csvFile,\n csvPaste,\n dragError,\n csvUploadInProgress,\n } = this.state;\n const consoleMenuObjects = this.getObjects(objectMap);\n const inputMaxHeight = Math.round(consoleHeight * 0.7);\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console', 'h-100', 'w-100', { disabled })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n session={session}\n overflowActions={this.handleOverflowActions()}\n openObject={openObject}\n objects={consoleMenuObjects}\n >\n {statusBarChildren}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {showCsvOverlay && (\n <CsvOverlay\n onCancel={this.handleCsvFileCanceled}\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\n allowZip={unzip != null}\n />\n )}\n <div\n role=\"presentation\"\n className={classNames('scroll-pane no-scroll-x', {\n 'scroll-decoration': isScrollDecorationShown,\n })}\n onScroll={this.handleScrollPaneScroll}\n ref={this.consoleHistoryScrollPane}\n >\n <ConsoleHistory\n items={consoleHistory}\n openObject={openObject}\n language={language}\n disabled={disabled}\n />\n {historyChildren}\n </div>\n </div>\n {!showCsvOverlay && (\n <ConsoleInput\n ref={this.consoleInput}\n session={session}\n language={language}\n scope={scope}\n onSubmit={this.handleCommandSubmit}\n maxHeight={inputMaxHeight}\n commandHistoryStorage={commandHistoryStorage}\n />\n )}\n {showCsvOverlay && (\n <CsvInputBar\n session={session}\n onOpenTable={this.handleOpenCsvTable}\n onClose={this.handleHideCsv}\n onUpdate={this.handleCsvUpdate}\n onError={this.handleCsvError}\n file={csvFile ?? undefined}\n paste={csvPaste ?? undefined}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n unzip={unzip}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nexport default Console;\n"],"mappings":"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"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"ConsoleInput.js","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"],"sources":["../src/ConsoleInput.tsx"],"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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ConsoleMenu.tsx"],"names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","SearchInput","Tooltip","dhTable","vsGraph","vsKebabVertical","vsTriangleDown","Log","memoize","ConsoleUtils","log","module","ConsoleMenu","makeItemActions","objects","filterText","refCallback","changeCallback","openCallback","length","searchAction","menuElement","filteredItems","filter","title","toLowerCase","indexOf","openActions","map","object","action","constructor","props","openObject","tables","isTableType","type","searchField","tableSearchField","handleTableFilterChange","widgets","isWidgetType","widgetSearchField","handleWidgetFilterChange","bind","handleTableMenuClosed","handleTableMenuOpened","handleWidgetMenuClosed","handleWidgetMenuOpened","state","tableFilterText","widgetFilterText","e","debug","setState","target","value","focus","render","overflowActions","tableActions","makeTableActions","widgetActions","makeWidgetActions","popperOptions","placement","initialKeyboardIndex"],"mappings":"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","sourcesContent":["import React, {\n ChangeEvent,\n ChangeEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n DropdownAction,\n DropdownMenu,\n PopperOptions,\n SearchInput,\n Tooltip,\n} from '@deephaven/components';\nimport {\n dhTable,\n vsGraph,\n vsKebabVertical,\n vsTriangleDown,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport { VariableDefinition } from '@deephaven/jsapi-shim';\nimport memoize from 'memoize-one';\nimport './ConsoleMenu.scss';\nimport ConsoleUtils from './common/ConsoleUtils';\n\nconst log = Log.module('ConsoleMenu');\n\ninterface ConsoleMenuProps {\n openObject: (object: VariableDefinition) => void;\n objects: VariableDefinition[];\n overflowActions: DropdownAction[];\n}\n\ninterface ConsoleMenuState {\n tableFilterText: string;\n widgetFilterText: string;\n}\n\nclass ConsoleMenu extends PureComponent<ConsoleMenuProps, ConsoleMenuState> {\n static makeItemActions(\n objects: VariableDefinition[],\n filterText: string,\n refCallback: (ref: SearchInput) => void,\n changeCallback: ChangeEventHandler<HTMLInputElement>,\n openCallback: (object: VariableDefinition) => void\n ): DropdownAction[] {\n if (objects.length === 0) {\n return [];\n }\n\n const searchAction = {\n menuElement: (\n <SearchInput\n value={filterText}\n onChange={changeCallback}\n className=\"console-menu\"\n ref={refCallback}\n />\n ),\n };\n let filteredItems = objects;\n if (filterText) {\n filteredItems = filteredItems.filter(\n ({ title }: { title?: string }) =>\n title != null &&\n title.toLowerCase().indexOf(filterText.toLowerCase()) >= 0\n );\n }\n const openActions = filteredItems.map(object => ({\n title: object.title,\n action: () => {\n openCallback(object);\n },\n }));\n\n return [searchAction, ...openActions];\n }\n\n constructor(props: ConsoleMenuProps) {\n super(props);\n\n this.handleTableFilterChange = this.handleTableFilterChange.bind(this);\n this.handleTableMenuClosed = this.handleTableMenuClosed.bind(this);\n this.handleTableMenuOpened = this.handleTableMenuOpened.bind(this);\n this.handleWidgetFilterChange = this.handleWidgetFilterChange.bind(this);\n this.handleWidgetMenuClosed = this.handleWidgetMenuClosed.bind(this);\n this.handleWidgetMenuOpened = this.handleWidgetMenuOpened.bind(this);\n\n this.state = {\n tableFilterText: '',\n widgetFilterText: '',\n };\n }\n\n tableSearchField?: SearchInput;\n\n widgetSearchField?: SearchInput;\n\n makeTableActions = memoize(\n (\n objects: VariableDefinition[],\n filterText: string,\n openObject: (object: VariableDefinition) => void\n ): DropdownAction[] => {\n const tables = objects.filter(object =>\n ConsoleUtils.isTableType(object.type)\n );\n return ConsoleMenu.makeItemActions(\n tables,\n filterText,\n searchField => {\n this.tableSearchField = searchField;\n },\n this.handleTableFilterChange,\n openObject\n );\n }\n );\n\n makeWidgetActions = memoize(\n (\n objects: VariableDefinition[],\n filterText: string,\n openObject: (object: VariableDefinition) => void\n ): DropdownAction[] => {\n const widgets = objects.filter(object =>\n ConsoleUtils.isWidgetType(object.type)\n );\n return ConsoleMenu.makeItemActions(\n widgets,\n filterText,\n searchField => {\n this.widgetSearchField = searchField;\n },\n this.handleWidgetFilterChange,\n openObject\n );\n }\n );\n\n handleTableFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering tables...');\n this.setState({ tableFilterText: e.target.value });\n }\n\n handleTableMenuClosed(): void {\n this.setState({ tableFilterText: '' });\n }\n\n handleTableMenuOpened(): void {\n if (this.tableSearchField && this.tableSearchField.focus) {\n this.tableSearchField.focus();\n }\n }\n\n handleWidgetFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering widgets...');\n this.setState({ widgetFilterText: e.target.value });\n }\n\n handleWidgetMenuClosed(): void {\n this.setState({ widgetFilterText: '' });\n }\n\n handleWidgetMenuOpened(): void {\n if (this.widgetSearchField && this.widgetSearchField.focus) {\n this.widgetSearchField.focus();\n }\n }\n\n render(): ReactElement {\n const { overflowActions, objects, openObject } = this.props;\n const { tableFilterText, widgetFilterText } = this.state;\n const tableActions = this.makeTableActions(\n objects,\n tableFilterText,\n openObject\n );\n const widgetActions = this.makeWidgetActions(\n objects,\n widgetFilterText,\n openObject\n );\n const popperOptions: PopperOptions = { placement: 'bottom-end' };\n\n return (\n <div className=\"console-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon\"\n disabled={tableActions.length === 0}\n >\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={dhTable}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon icon={vsTriangleDown} transform=\"right-8 down-6\" />\n </div>\n <Tooltip>Tables</Tooltip>\n <DropdownMenu\n key=\"table-actions \"\n actions={tableActions}\n onMenuOpened={this.handleTableMenuOpened}\n onMenuClosed={this.handleTableMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon\"\n disabled={widgetActions.length === 0}\n >\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={vsGraph}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon icon={vsTriangleDown} transform=\"right-8 down-6\" />\n </div>\n <Tooltip>Widgets</Tooltip>\n <DropdownMenu\n key=\"table-actions\"\n actions={widgetActions}\n onMenuOpened={this.handleWidgetMenuOpened}\n onMenuClosed={this.handleWidgetMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-overflow btn-link-icon\"\n >\n <FontAwesomeIcon icon={vsKebabVertical} />\n <Tooltip>More Actions...</Tooltip>\n <DropdownMenu\n actions={overflowActions}\n popperOptions={popperOptions}\n />\n </button>\n </div>\n );\n }\n}\n\nexport default ConsoleMenu;\n"],"file":"ConsoleMenu.js"}
1
+ {"version":3,"file":"ConsoleMenu.js","names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","SearchInput","Tooltip","dhTable","vsGraph","vsKebabVertical","vsTriangleDown","Log","memoize","ConsoleUtils","log","module","ConsoleMenu","makeItemActions","objects","filterText","refCallback","changeCallback","openCallback","length","searchAction","menuElement","filteredItems","filter","title","toLowerCase","indexOf","openActions","map","object","action","constructor","props","openObject","tables","isTableType","type","searchField","tableSearchField","handleTableFilterChange","widgets","isWidgetType","widgetSearchField","handleWidgetFilterChange","bind","handleTableMenuClosed","handleTableMenuOpened","handleWidgetMenuClosed","handleWidgetMenuOpened","state","tableFilterText","widgetFilterText","e","debug","setState","target","value","focus","render","overflowActions","tableActions","makeTableActions","widgetActions","makeWidgetActions","popperOptions","placement","initialKeyboardIndex"],"sources":["../src/ConsoleMenu.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ChangeEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n DropdownAction,\n DropdownMenu,\n PopperOptions,\n SearchInput,\n Tooltip,\n} from '@deephaven/components';\nimport {\n dhTable,\n vsGraph,\n vsKebabVertical,\n vsTriangleDown,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport { VariableDefinition } from '@deephaven/jsapi-shim';\nimport memoize from 'memoize-one';\nimport './ConsoleMenu.scss';\nimport ConsoleUtils from './common/ConsoleUtils';\n\nconst log = Log.module('ConsoleMenu');\n\ninterface ConsoleMenuProps {\n openObject: (object: VariableDefinition) => void;\n objects: VariableDefinition[];\n overflowActions: DropdownAction[];\n}\n\ninterface ConsoleMenuState {\n tableFilterText: string;\n widgetFilterText: string;\n}\n\nclass ConsoleMenu extends PureComponent<ConsoleMenuProps, ConsoleMenuState> {\n static makeItemActions(\n objects: VariableDefinition[],\n filterText: string,\n refCallback: (ref: SearchInput) => void,\n changeCallback: ChangeEventHandler<HTMLInputElement>,\n openCallback: (object: VariableDefinition) => void\n ): DropdownAction[] {\n if (objects.length === 0) {\n return [];\n }\n\n const searchAction = {\n menuElement: (\n <SearchInput\n value={filterText}\n onChange={changeCallback}\n className=\"console-menu\"\n ref={refCallback}\n />\n ),\n };\n let filteredItems = objects;\n if (filterText) {\n filteredItems = filteredItems.filter(\n ({ title }: { title?: string }) =>\n title != null &&\n title.toLowerCase().indexOf(filterText.toLowerCase()) >= 0\n );\n }\n const openActions = filteredItems.map(object => ({\n title: object.title,\n action: () => {\n openCallback(object);\n },\n }));\n\n return [searchAction, ...openActions];\n }\n\n constructor(props: ConsoleMenuProps) {\n super(props);\n\n this.handleTableFilterChange = this.handleTableFilterChange.bind(this);\n this.handleTableMenuClosed = this.handleTableMenuClosed.bind(this);\n this.handleTableMenuOpened = this.handleTableMenuOpened.bind(this);\n this.handleWidgetFilterChange = this.handleWidgetFilterChange.bind(this);\n this.handleWidgetMenuClosed = this.handleWidgetMenuClosed.bind(this);\n this.handleWidgetMenuOpened = this.handleWidgetMenuOpened.bind(this);\n\n this.state = {\n tableFilterText: '',\n widgetFilterText: '',\n };\n }\n\n tableSearchField?: SearchInput;\n\n widgetSearchField?: SearchInput;\n\n makeTableActions = memoize(\n (\n objects: VariableDefinition[],\n filterText: string,\n openObject: (object: VariableDefinition) => void\n ): DropdownAction[] => {\n const tables = objects.filter(object =>\n ConsoleUtils.isTableType(object.type)\n );\n return ConsoleMenu.makeItemActions(\n tables,\n filterText,\n searchField => {\n this.tableSearchField = searchField;\n },\n this.handleTableFilterChange,\n openObject\n );\n }\n );\n\n makeWidgetActions = memoize(\n (\n objects: VariableDefinition[],\n filterText: string,\n openObject: (object: VariableDefinition) => void\n ): DropdownAction[] => {\n const widgets = objects.filter(object =>\n ConsoleUtils.isWidgetType(object.type)\n );\n return ConsoleMenu.makeItemActions(\n widgets,\n filterText,\n searchField => {\n this.widgetSearchField = searchField;\n },\n this.handleWidgetFilterChange,\n openObject\n );\n }\n );\n\n handleTableFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering tables...');\n this.setState({ tableFilterText: e.target.value });\n }\n\n handleTableMenuClosed(): void {\n this.setState({ tableFilterText: '' });\n }\n\n handleTableMenuOpened(): void {\n if (this.tableSearchField && this.tableSearchField.focus) {\n this.tableSearchField.focus();\n }\n }\n\n handleWidgetFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering widgets...');\n this.setState({ widgetFilterText: e.target.value });\n }\n\n handleWidgetMenuClosed(): void {\n this.setState({ widgetFilterText: '' });\n }\n\n handleWidgetMenuOpened(): void {\n if (this.widgetSearchField && this.widgetSearchField.focus) {\n this.widgetSearchField.focus();\n }\n }\n\n render(): ReactElement {\n const { overflowActions, objects, openObject } = this.props;\n const { tableFilterText, widgetFilterText } = this.state;\n const tableActions = this.makeTableActions(\n objects,\n tableFilterText,\n openObject\n );\n const widgetActions = this.makeWidgetActions(\n objects,\n widgetFilterText,\n openObject\n );\n const popperOptions: PopperOptions = { placement: 'bottom-end' };\n\n return (\n <div className=\"console-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon\"\n disabled={tableActions.length === 0}\n >\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={dhTable}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon icon={vsTriangleDown} transform=\"right-8 down-6\" />\n </div>\n <Tooltip>Tables</Tooltip>\n <DropdownMenu\n key=\"table-actions \"\n actions={tableActions}\n onMenuOpened={this.handleTableMenuOpened}\n onMenuClosed={this.handleTableMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon\"\n disabled={widgetActions.length === 0}\n >\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={vsGraph}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon icon={vsTriangleDown} transform=\"right-8 down-6\" />\n </div>\n <Tooltip>Widgets</Tooltip>\n <DropdownMenu\n key=\"table-actions\"\n actions={widgetActions}\n onMenuOpened={this.handleWidgetMenuOpened}\n onMenuClosed={this.handleWidgetMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-overflow btn-link-icon\"\n >\n <FontAwesomeIcon icon={vsKebabVertical} />\n <Tooltip>More Actions...</Tooltip>\n <DropdownMenu\n actions={overflowActions}\n popperOptions={popperOptions}\n />\n </button>\n </div>\n );\n }\n}\n\nexport default ConsoleMenu;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ConsolePropTypes.ts"],"names":["PropTypes","CommandHistoryItem","shape","id","string","isRequired","name","ConsolePropTypes","Object","freeze"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,IAAMC,kBAAkB,GAAGD,SAAS,CAACE,KAAV,CAAgB;AACzCC,EAAAA,EAAE,EAAEH,SAAS,CAACI,MAAV,CAAiBC,UADoB;AAEzCC,EAAAA,IAAI,EAAEN,SAAS,CAACI,MAAV,CAAiBC;AAFkB,CAAhB,CAA3B;AAKA,IAAME,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAc;AACrCR,EAAAA;AADqC,CAAd,CAAzB;AAIA,eAAeM,gBAAf","sourcesContent":["import PropTypes from 'prop-types';\n\nconst CommandHistoryItem = PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n});\n\nconst ConsolePropTypes = Object.freeze({\n CommandHistoryItem,\n});\n\nexport default ConsolePropTypes;\n"],"file":"ConsolePropTypes.js"}
1
+ {"version":3,"file":"ConsolePropTypes.js","names":["PropTypes","CommandHistoryItem","shape","id","string","isRequired","name","ConsolePropTypes","Object","freeze"],"sources":["../src/ConsolePropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst CommandHistoryItem = PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n});\n\nconst ConsolePropTypes = Object.freeze({\n CommandHistoryItem,\n});\n\nexport default ConsolePropTypes;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,IAAMC,kBAAkB,GAAGD,SAAS,CAACE,KAAV,CAAgB;EACzCC,EAAE,EAAEH,SAAS,CAACI,MAAV,CAAiBC,UADoB;EAEzCC,IAAI,EAAEN,SAAS,CAACI,MAAV,CAAiBC;AAFkB,CAAhB,CAA3B;AAKA,IAAME,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAc;EACrCR;AADqC,CAAd,CAAzB;AAIA,eAAeM,gBAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ConsoleShortcuts.ts"],"names":["ShortcutRegistry","KEY","MODIFIER","CONSOLE","name","CLEAR","createAndAdd","id","shortcut","CTRL","L","macShortcut","C","FOCUS_HISTORY","H","OPTION","COMMAND_HISTORY","SEND_TO_CONSOLE","ENTER","SEND_TO_NOTEBOOK","CMD","RUN","ALT","R","NOTEBOOK","RUN_SELECTED","SHIFT","FIND","F","isEditable","SHORTCUTS"],"mappings":"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","sourcesContent":["import { ShortcutRegistry, KEY, MODIFIER } from '@deephaven/components';\n\nconst CONSOLE = {\n name: 'Console',\n CLEAR: ShortcutRegistry.createAndAdd({\n id: 'CONSOLE.CLEAR',\n name: 'Clear',\n shortcut: [MODIFIER.CTRL, KEY.L],\n macShortcut: [MODIFIER.CTRL, KEY.C],\n }),\n FOCUS_HISTORY: ShortcutRegistry.createAndAdd({\n id: 'CONSOLE.FOCUS_HISTORY',\n name: 'Focus History',\n shortcut: [MODIFIER.CTRL, KEY.H],\n macShortcut: [MODIFIER.CTRL, MODIFIER.OPTION, KEY.H], // cmd+H is a system level shortcut on Mac, so use something else\n }),\n};\n\nconst COMMAND_HISTORY = {\n name: 'Command History',\n FOCUS_HISTORY: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.FOCUS_HISTORY',\n name: 'Focus History Search',\n shortcut: [MODIFIER.CTRL, KEY.H],\n macShortcut: [MODIFIER.CTRL, MODIFIER.OPTION, KEY.H],\n }),\n SEND_TO_CONSOLE: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.SEND_TO_CONSOLE',\n name: 'Send to Console',\n shortcut: [KEY.ENTER],\n macShortcut: [KEY.ENTER],\n }),\n SEND_TO_NOTEBOOK: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.SEND_TO_NOTEBOOK',\n name: 'Send to Notebook',\n shortcut: [MODIFIER.CTRL, KEY.ENTER],\n macShortcut: [MODIFIER.CMD, KEY.ENTER],\n }),\n RUN: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.RUN',\n name: 'Run',\n shortcut: [MODIFIER.ALT, KEY.R],\n macShortcut: [MODIFIER.OPTION, KEY.R],\n }),\n};\n\nconst NOTEBOOK = {\n name: 'Notebook',\n RUN: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.RUN',\n name: 'Run',\n shortcut: [MODIFIER.ALT, KEY.R],\n macShortcut: [MODIFIER.OPTION, KEY.R],\n }),\n RUN_SELECTED: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.RUN_SELECTED',\n name: 'Run Selected',\n shortcut: [MODIFIER.ALT, MODIFIER.SHIFT, KEY.R],\n macShortcut: [MODIFIER.OPTION, MODIFIER.SHIFT, KEY.R],\n }),\n FIND: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.FIND',\n name: 'Find',\n shortcut: [MODIFIER.CTRL, KEY.F],\n macShortcut: [MODIFIER.CMD, KEY.F],\n isEditable: false,\n }),\n};\n\nconst SHORTCUTS = {\n CONSOLE,\n COMMAND_HISTORY,\n NOTEBOOK,\n};\n\nexport default SHORTCUTS;\n"],"file":"ConsoleShortcuts.js"}
1
+ {"version":3,"file":"ConsoleShortcuts.js","names":["ShortcutRegistry","KEY","MODIFIER","CONSOLE","name","CLEAR","createAndAdd","id","shortcut","CTRL","L","macShortcut","C","FOCUS_HISTORY","H","OPTION","COMMAND_HISTORY","SEND_TO_CONSOLE","ENTER","SEND_TO_NOTEBOOK","CMD","RUN","ALT","R","NOTEBOOK","RUN_SELECTED","SHIFT","FIND","F","isEditable","SHORTCUTS"],"sources":["../src/ConsoleShortcuts.ts"],"sourcesContent":["import { ShortcutRegistry, KEY, MODIFIER } from '@deephaven/components';\n\nconst CONSOLE = {\n name: 'Console',\n CLEAR: ShortcutRegistry.createAndAdd({\n id: 'CONSOLE.CLEAR',\n name: 'Clear',\n shortcut: [MODIFIER.CTRL, KEY.L],\n macShortcut: [MODIFIER.CTRL, KEY.C],\n }),\n FOCUS_HISTORY: ShortcutRegistry.createAndAdd({\n id: 'CONSOLE.FOCUS_HISTORY',\n name: 'Focus History',\n shortcut: [MODIFIER.CTRL, KEY.H],\n macShortcut: [MODIFIER.CTRL, MODIFIER.OPTION, KEY.H], // cmd+H is a system level shortcut on Mac, so use something else\n }),\n};\n\nconst COMMAND_HISTORY = {\n name: 'Command History',\n FOCUS_HISTORY: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.FOCUS_HISTORY',\n name: 'Focus History Search',\n shortcut: [MODIFIER.CTRL, KEY.H],\n macShortcut: [MODIFIER.CTRL, MODIFIER.OPTION, KEY.H],\n }),\n SEND_TO_CONSOLE: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.SEND_TO_CONSOLE',\n name: 'Send to Console',\n shortcut: [KEY.ENTER],\n macShortcut: [KEY.ENTER],\n }),\n SEND_TO_NOTEBOOK: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.SEND_TO_NOTEBOOK',\n name: 'Send to Notebook',\n shortcut: [MODIFIER.CTRL, KEY.ENTER],\n macShortcut: [MODIFIER.CMD, KEY.ENTER],\n }),\n RUN: ShortcutRegistry.createAndAdd({\n id: 'COMMAND_HISTORY.RUN',\n name: 'Run',\n shortcut: [MODIFIER.ALT, KEY.R],\n macShortcut: [MODIFIER.OPTION, KEY.R],\n }),\n};\n\nconst NOTEBOOK = {\n name: 'Notebook',\n RUN: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.RUN',\n name: 'Run',\n shortcut: [MODIFIER.ALT, KEY.R],\n macShortcut: [MODIFIER.OPTION, KEY.R],\n }),\n RUN_SELECTED: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.RUN_SELECTED',\n name: 'Run Selected',\n shortcut: [MODIFIER.ALT, MODIFIER.SHIFT, KEY.R],\n macShortcut: [MODIFIER.OPTION, MODIFIER.SHIFT, KEY.R],\n }),\n FIND: ShortcutRegistry.createAndAdd({\n id: 'NOTEBOOK.FIND',\n name: 'Find',\n shortcut: [MODIFIER.CTRL, KEY.F],\n macShortcut: [MODIFIER.CMD, KEY.F],\n isEditable: false,\n }),\n};\n\nconst SHORTCUTS = {\n CONSOLE,\n COMMAND_HISTORY,\n NOTEBOOK,\n};\n\nexport default SHORTCUTS;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ConsoleStatusBar.tsx"],"names":["React","PureComponent","classNames","dh","Tooltip","CanceledPromiseError","Pending","ConsoleMenu","ConsoleStatusBar","constructor","props","handleCommandStarted","bind","handleCommandCompleted","pending","state","isDisconnected","isCommandRunning","componentDidMount","startListening","componentWillUnmount","stopListening","cancelPendingPromises","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","removeEventListener","cancel","event","result","detail","add","then","catch","error","setState","length","render","children","openObject","overflowActions","objects","statusIconClass","tooltipText"],"mappings":"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","sourcesContent":["import React, { PureComponent, ReactElement, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport dh, { IdeSession, VariableDefinition } from '@deephaven/jsapi-shim';\nimport { DropdownAction, Tooltip } from '@deephaven/components';\nimport { CanceledPromiseError, Pending } from '@deephaven/utils';\nimport ConsoleMenu from './ConsoleMenu';\nimport './ConsoleStatusBar.scss';\n\ninterface ConsoleStatusBarProps {\n children: ReactNode;\n session: IdeSession;\n openObject: (object: VariableDefinition) => void;\n objects: VariableDefinition[];\n overflowActions: DropdownAction[];\n}\n\ninterface ConsoleStatusBarState {\n isDisconnected: boolean;\n isCommandRunning: boolean;\n}\n\nexport class ConsoleStatusBar extends PureComponent<\n ConsoleStatusBarProps,\n ConsoleStatusBarState\n> {\n static defaultProps = {\n children: null,\n };\n\n constructor(props: ConsoleStatusBarProps) {\n super(props);\n\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandCompleted = this.handleCommandCompleted.bind(this);\n\n this.pending = new Pending();\n\n this.state = {\n isDisconnected: false,\n isCommandRunning: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.cancelPendingPromises();\n }\n\n pending: Pending;\n\n startListening(): void {\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n stopListening(): void {\n const { session } = this.props;\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n cancelPendingPromises(): void {\n this.pending.cancel();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { result } = event.detail;\n\n this.pending\n .add(result)\n .then(() => this.handleCommandCompleted(null))\n .catch(error => this.handleCommandCompleted(error));\n\n this.setState({\n isCommandRunning: true,\n });\n }\n\n handleCommandCompleted(error: unknown): void {\n // Don't update state if the promise was canceled\n if (!(error instanceof CanceledPromiseError)) {\n this.setState({\n isCommandRunning: this.pending.pending.length > 0,\n });\n }\n }\n\n render(): ReactElement {\n const { children, openObject, overflowActions, objects } = this.props;\n const { isDisconnected, isCommandRunning } = this.state;\n\n let statusIconClass = null;\n let tooltipText = null;\n\n if (isDisconnected) {\n statusIconClass = 'console-status-icon-disconnected';\n tooltipText = 'Worker is disconnected';\n } else if (isCommandRunning) {\n // Connected, Pending\n statusIconClass = 'console-status-icon-pending';\n tooltipText = 'Worker is busy';\n } else {\n // Connected, Idle\n statusIconClass = 'console-status-icon-idle';\n tooltipText = 'Worker is idle';\n }\n\n return (\n <div className=\"console-pane-status-bar\">\n <div>\n <div className={classNames('console-status-icon', statusIconClass)} />\n <Tooltip>{tooltipText}</Tooltip>\n </div>\n {children}\n <ConsoleMenu\n overflowActions={overflowActions}\n openObject={openObject}\n objects={objects}\n />\n </div>\n );\n }\n}\n\nexport default ConsoleStatusBar;\n"],"file":"ConsoleStatusBar.js"}
1
+ {"version":3,"file":"ConsoleStatusBar.js","names":["React","PureComponent","classNames","dh","Tooltip","CanceledPromiseError","Pending","ConsoleMenu","ConsoleStatusBar","constructor","props","handleCommandStarted","bind","handleCommandCompleted","pending","state","isDisconnected","isCommandRunning","componentDidMount","startListening","componentWillUnmount","stopListening","cancelPendingPromises","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","removeEventListener","cancel","event","result","detail","add","then","catch","error","setState","length","render","children","openObject","overflowActions","objects","statusIconClass","tooltipText"],"sources":["../src/ConsoleStatusBar.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport dh, { IdeSession, VariableDefinition } from '@deephaven/jsapi-shim';\nimport { DropdownAction, Tooltip } from '@deephaven/components';\nimport { CanceledPromiseError, Pending } from '@deephaven/utils';\nimport ConsoleMenu from './ConsoleMenu';\nimport './ConsoleStatusBar.scss';\n\ninterface ConsoleStatusBarProps {\n children: ReactNode;\n session: IdeSession;\n openObject: (object: VariableDefinition) => void;\n objects: VariableDefinition[];\n overflowActions: DropdownAction[];\n}\n\ninterface ConsoleStatusBarState {\n isDisconnected: boolean;\n isCommandRunning: boolean;\n}\n\nexport class ConsoleStatusBar extends PureComponent<\n ConsoleStatusBarProps,\n ConsoleStatusBarState\n> {\n static defaultProps = {\n children: null,\n };\n\n constructor(props: ConsoleStatusBarProps) {\n super(props);\n\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandCompleted = this.handleCommandCompleted.bind(this);\n\n this.pending = new Pending();\n\n this.state = {\n isDisconnected: false,\n isCommandRunning: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.cancelPendingPromises();\n }\n\n pending: Pending;\n\n startListening(): void {\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n stopListening(): void {\n const { session } = this.props;\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n cancelPendingPromises(): void {\n this.pending.cancel();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { result } = event.detail;\n\n this.pending\n .add(result)\n .then(() => this.handleCommandCompleted(null))\n .catch(error => this.handleCommandCompleted(error));\n\n this.setState({\n isCommandRunning: true,\n });\n }\n\n handleCommandCompleted(error: unknown): void {\n // Don't update state if the promise was canceled\n if (!(error instanceof CanceledPromiseError)) {\n this.setState({\n isCommandRunning: this.pending.pending.length > 0,\n });\n }\n }\n\n render(): ReactElement {\n const { children, openObject, overflowActions, objects } = this.props;\n const { isDisconnected, isCommandRunning } = this.state;\n\n let statusIconClass = null;\n let tooltipText = null;\n\n if (isDisconnected) {\n statusIconClass = 'console-status-icon-disconnected';\n tooltipText = 'Worker is disconnected';\n } else if (isCommandRunning) {\n // Connected, Pending\n statusIconClass = 'console-status-icon-pending';\n tooltipText = 'Worker is busy';\n } else {\n // Connected, Idle\n statusIconClass = 'console-status-icon-idle';\n tooltipText = 'Worker is idle';\n }\n\n return (\n <div className=\"console-pane-status-bar\">\n <div>\n <div className={classNames('console-status-icon', statusIconClass)} />\n <Tooltip>{tooltipText}</Tooltip>\n </div>\n {children}\n <ConsoleMenu\n overflowActions={overflowActions}\n openObject={openObject}\n objects={objects}\n />\n </div>\n );\n }\n}\n\nexport default ConsoleStatusBar;\n"],"mappings":"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"}