@deephaven/console 1.7.2-beta.1 → 1.7.2-react-18-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Console.d.ts +1 -1
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +6 -8
- package/dist/Console.js.map +1 -1
- package/dist/ConsoleInput.js +30 -34
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/ConsoleObjectsMenu.js +2 -3
- package/dist/ConsoleObjectsMenu.js.map +1 -1
- package/dist/ConsoleShortcuts.js +0 -1
- package/dist/ConsoleShortcuts.js.map +1 -1
- package/dist/ConsoleStatusBar.js +2 -3
- package/dist/ConsoleStatusBar.js.map +1 -1
- package/dist/HeapUsage.js +2 -3
- package/dist/HeapUsage.js.map +1 -1
- package/dist/command-history/CommandHistory.js +2 -3
- package/dist/command-history/CommandHistory.js.map +1 -1
- package/dist/command-history/CommandHistoryActions.js +1 -2
- package/dist/command-history/CommandHistoryActions.js.map +1 -1
- package/dist/command-history/CommandHistoryItem.d.ts +1 -6
- package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryItem.js +5 -10
- package/dist/command-history/CommandHistoryItem.js.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.js +2 -3
- package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
- package/dist/command-history/CommandHistoryStorage.js.map +1 -1
- package/dist/command-history/CommandHistoryTypes.js.map +1 -1
- package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
- package/dist/command-history/index.js.map +1 -1
- package/dist/common/Code.js.map +1 -1
- package/dist/common/ConsoleConstants.js.map +1 -1
- package/dist/common/ConsoleUtils.js.map +1 -1
- package/dist/common/ObjectIcon.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/console-history/ConsoleHistory.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js +1 -2
- package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.d.ts +2 -10
- package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.js +1 -6
- package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js +1 -3
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.js +1 -2
- package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
- package/dist/console-history/index.js.map +1 -1
- package/dist/csv/CsvFormats.js.map +1 -1
- package/dist/csv/CsvInputBar.js +2 -3
- package/dist/csv/CsvInputBar.js.map +1 -1
- package/dist/csv/CsvOverlay.js +5 -6
- package/dist/csv/CsvOverlay.js.map +1 -1
- package/dist/csv/CsvParser.js +4 -3
- package/dist/csv/CsvParser.js.map +1 -1
- package/dist/csv/CsvTypeParser.js.map +1 -1
- package/dist/csv/ZipStreamHelper.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/log/LogLevel.js.map +1 -1
- package/dist/log/LogLevelMenuItem.js +1 -2
- package/dist/log/LogLevelMenuItem.js.map +1 -1
- package/dist/log/LogView.js +9 -12
- package/dist/log/LogView.js.map +1 -1
- package/dist/monaco/MonacoProviders.js +3 -4
- package/dist/monaco/MonacoProviders.js.map +1 -1
- package/dist/monaco/MonacoThemeProvider.js +1 -2
- package/dist/monaco/MonacoThemeProvider.js.map +1 -1
- package/dist/monaco/MonacoUtils.js +1 -1
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/monaco/RuffDefaultSettings.js +0 -1
- package/dist/monaco/RuffDefaultSettings.js.map +1 -1
- package/dist/monaco/RuffSettingsModal.js +5 -7
- package/dist/monaco/RuffSettingsModal.js.map +1 -1
- package/dist/monaco/index.js.map +1 -1
- package/dist/monaco/lang/Language.js.map +1 -1
- package/dist/monaco/lang/db.js +0 -1
- package/dist/monaco/lang/db.js.map +1 -1
- package/dist/monaco/lang/groovy.js +0 -1
- package/dist/monaco/lang/groovy.js.map +1 -1
- package/dist/monaco/lang/log.js.map +1 -1
- package/dist/monaco/lang/python.js +0 -1
- package/dist/monaco/lang/python.js.map +1 -1
- package/dist/monaco/lang/scala.js.map +1 -1
- package/dist/monaco/ruffSchema.js.map +1 -1
- package/dist/notebook/Editor.js +1 -1
- package/dist/notebook/Editor.js.map +1 -1
- package/dist/notebook/ScriptEditor.js +1 -3
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/dist/notebook/ScriptEditorUtils.js.map +1 -1
- package/package.json +14 -15
- package/dist/ConsolePropTypes.d.ts +0 -9
- package/dist/ConsolePropTypes.d.ts.map +0 -1
- package/dist/ConsolePropTypes.js +0 -10
- package/dist/ConsolePropTypes.js.map +0 -1
- package/dist/StoragePropTypes.d.ts +0 -14
- package/dist/StoragePropTypes.d.ts.map +0 -1
- package/dist/StoragePropTypes.js +0 -16
- package/dist/StoragePropTypes.js.map +0 -1
package/dist/Console.d.ts
CHANGED
|
@@ -130,7 +130,7 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
|
|
|
130
130
|
handleFocusHistory(event: Event): void;
|
|
131
131
|
handleLogMessage(message: DhType.ide.LogItem): void;
|
|
132
132
|
queueLogMessage(message: string, logLevel: string): void;
|
|
133
|
-
processLogMessageQueue: import("lodash").
|
|
133
|
+
processLogMessageQueue: import("lodash").DebouncedFuncLeading<() => void>;
|
|
134
134
|
openUpdatedItems(changes: DhType.ide.VariableChanges): void;
|
|
135
135
|
closeRemovedItems(changes: DhType.ide.VariableChanges): void;
|
|
136
136
|
updateHistory(result: {
|
package/dist/Console.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.tsx"],"names":[],"mappings":"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"}
|
package/dist/Console.js
CHANGED
|
@@ -23,9 +23,7 @@ import CsvInputBar from "./csv/CsvInputBar.js";
|
|
|
23
23
|
import "./Console.css";
|
|
24
24
|
import ConsoleStatusBar from "./ConsoleStatusBar.js";
|
|
25
25
|
import ConsoleObjectsMenu from "./ConsoleObjectsMenu.js";
|
|
26
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
27
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
28
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
27
|
var log = Log.module('Console');
|
|
30
28
|
var DEFAULT_SETTINGS = {
|
|
31
29
|
isAutoLaunchPanelsEnabled: true,
|
|
@@ -207,7 +205,7 @@ export class Console extends PureComponent {
|
|
|
207
205
|
var _this$consoleInput$cu;
|
|
208
206
|
event.preventDefault();
|
|
209
207
|
event.stopPropagation();
|
|
210
|
-
(_this$consoleInput$cu = this.consoleInput.current) === null || _this$consoleInput$cu === void 0
|
|
208
|
+
(_this$consoleInput$cu = this.consoleInput.current) === null || _this$consoleInput$cu === void 0 || _this$consoleInput$cu.clear();
|
|
211
209
|
}
|
|
212
210
|
handleCommandStarted(event) {
|
|
213
211
|
var {
|
|
@@ -427,12 +425,12 @@ export class Console extends PureComponent {
|
|
|
427
425
|
objectMap.set(title, object);
|
|
428
426
|
}
|
|
429
427
|
};
|
|
430
|
-
(_changes = changes) === null || _changes === void 0
|
|
431
|
-
(_changes2 = changes) === null || _changes2 === void 0
|
|
428
|
+
(_changes = changes) === null || _changes === void 0 || _changes.updated.forEach(object => disableOldObject(object));
|
|
429
|
+
(_changes2 = changes) === null || _changes2 === void 0 || _changes2.removed.forEach(object => disableOldObject(object, true));
|
|
432
430
|
|
|
433
431
|
// Created objects have to be processed after removed
|
|
434
432
|
// in case the same object name is present in both removed and created
|
|
435
|
-
(_changes3 = changes) === null || _changes3 === void 0
|
|
433
|
+
(_changes3 = changes) === null || _changes3 === void 0 || _changes3.created.forEach(object => {
|
|
436
434
|
var {
|
|
437
435
|
title
|
|
438
436
|
} = object;
|
|
@@ -769,7 +767,7 @@ export class Console extends PureComponent {
|
|
|
769
767
|
}
|
|
770
768
|
focus() {
|
|
771
769
|
var _this$consoleInput$cu2;
|
|
772
|
-
(_this$consoleInput$cu2 = this.consoleInput.current) === null || _this$consoleInput$cu2 === void 0
|
|
770
|
+
(_this$consoleInput$cu2 = this.consoleInput.current) === null || _this$consoleInput$cu2 === void 0 || _this$consoleInput$cu2.focus();
|
|
773
771
|
}
|
|
774
772
|
sendSettingsChange(prevState, state) {
|
|
775
773
|
var checkIfChanged = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
package/dist/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","ConsoleObjectsMenu","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","defaultSupportsType","defaultIconForType","type","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","_defineProperty","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","Array","from","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleHistoryResize","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","consoleHistoryContent","pending","resizeObserver","window","ResizeObserver","settings","_objectSpread","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","isStuckToBottom","componentDidMount","initConsoleLogging","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","current","observe","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","isAtBottom","scrollConsoleHistoryToBottom","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","disconnect","cancelListener","onLogMessage","undefined","scrollHeight","clientHeight","scrollTop","Math","abs","event","_this$consoleInput$cu","preventDefault","stopPropagation","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","newHistoryItem","_ref","itemIndex","lastIndexOf","newHistory","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","title","startsWith","removed","closeObject","historyItemParam","_changes","_changes2","_changes3","disableOldObject","isRemoved","arguments","oldIndex","get","_consoleHistory$oldIn","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","pane","requestAnimationFrame","scrollTo","top","behavior","scrollPane","entries","entry","contentRect","height","width","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","_this$consoleInput$cu2","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","supportsType","iconForType","showObjectsMenu","consoleMenuObjects","getObjects","inputMaxHeight","round","contextActions","getContextActions","role","className","children","ref","overflowActions","objects","onDragOver","handleDragOver","onDragEnter","onDragLeave","onCancel","onFileOpened","onPaste","clearDragError","onError","uploadInProgress","allowZip","onScroll","onSubmit","maxHeight","onOpenTable","onClose","onUpdate","paste","onInProgress","ignoreClassNames","INPUT_CLASS_NAME"],"sources":["../src/Console.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n type DragEvent,\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n type UIEvent,\n} from 'react';\nimport {\n ContextActions,\n type DropdownAction,\n type ResolvableContextAction,\n} 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 type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { type 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 type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n} from './command-history';\nimport ConsoleObjectsMenu from './ConsoleObjectsMenu';\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 dh: typeof DhType;\n\n /** Additional children to show in the status bar */\n statusBarChildren: ReactNode;\n\n /** Show the objects menu in the status bar. Defaults to true. */\n showObjectsMenu?: boolean;\n\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n\n /**\n * @param object The object to open\n * @param forceOpen If true, always open the object. If false, only update existing panels\n */\n openObject: (\n object: DhType.ide.VariableDescriptor,\n forceOpen?: boolean\n ) => void;\n\n /** Closes all panels containing the object */\n closeObject: (object: DhType.ide.VariableDefinition) => void;\n session: DhType.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, DhType.ide.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 supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\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 // Scroll decoration is a drop shadow across the top border of the console\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, DhType.ide.VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isStuckToBottom: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nfunction defaultSupportsType(): boolean {\n return true;\n}\n\nfunction defaultIconForType(type: string): ReactElement {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n}\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 supportsType: defaultSupportsType,\n iconForType: defaultIconForType,\n showObjectsMenu: true,\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(logLevel: string): 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(\n logLevel: (typeof LogLevel)[keyof typeof LogLevel]\n ): 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.handleHistoryResize = this.handleHistoryResize.bind(this);\n this.handleToggleAutoLaunchPanels =\n this.handleToggleAutoLaunchPanels.bind(this);\n this.handleToggleClosePanelsOnDisconnect =\n this.handleToggleClosePanelsOnDisconnect.bind(this);\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.consoleHistoryContent = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n this.resizeObserver = new window.ResizeObserver(this.handleHistoryResize);\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 isStuckToBottom: true,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { dh, session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n\n if (\n this.consoleHistoryScrollPane.current &&\n this.consoleHistoryContent.current\n ) {\n this.resizeObserver.observe(this.consoleHistoryScrollPane.current);\n this.resizeObserver.observe(this.consoleHistoryContent.current);\n }\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 if (state.isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n componentWillUnmount(): void {\n const { dh, 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 this.resizeObserver.disconnect();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n consoleHistoryContent: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n resizeObserver: ResizeObserver;\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 isAtBottom(): boolean {\n if (this.consoleHistoryScrollPane.current == null) {\n return false;\n }\n const { scrollHeight, clientHeight, scrollTop } =\n this.consoleHistoryScrollPane.current;\n return Math.abs(scrollHeight - clientHeight - scrollTop) <= 1;\n }\n\n handleClearShortcut(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(\n event: DhType.Event<{\n code: string;\n result: {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n cancel: () => unknown;\n };\n }>\n ): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem: ConsoleHistoryActionItem = {\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();\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: DhType.ide.VariableChanges;\n }\n | undefined,\n historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const newHistoryItem = {\n ...historyItem,\n wrappedResult: undefined,\n cancelResult: undefined,\n result: result ?? historyItem.result,\n };\n\n this.setState(({ consoleHistory }) => {\n const itemIndex = consoleHistory.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in consoleHistory`);\n return null;\n }\n const newHistory = consoleHistory.concat();\n newHistory[itemIndex] = newHistoryItem;\n\n return { consoleHistory: newHistory };\n });\n\n if (!result) {\n return;\n }\n\n this.scrollConsoleHistoryToBottom();\n this.updateHistory(result, newHistoryItem);\n this.updateKnownObjects(newHistoryItem);\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 historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\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 const newHistoryItem = { ...historyItem };\n newHistoryItem.wrappedResult = undefined;\n newHistoryItem.cancelResult = undefined;\n newHistoryItem.endTime = Date.now();\n newHistoryItem.result = { error };\n history[index] = newHistoryItem;\n return { consoleHistory: history };\n });\n }\n\n handleFocusHistory(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message: DhType.ide.LogItem): void {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (\n Console.isOutputLevel(\n message.logLevel as (typeof LogLevel)[keyof typeof LogLevel]\n )\n ) {\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 (\n Console.isErrorLevel(logLevel as (typeof LogLevel)[keyof typeof LogLevel])\n ) {\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.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: DhType.ide.VariableChanges): void {\n log.debug('openUpdatedItems', changes);\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (changes == null) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated].forEach(object =>\n openObject(\n object,\n isAutoLaunchPanelsEnabled &&\n (object.title === undefined || !object.title.startsWith('_'))\n )\n );\n }\n\n closeRemovedItems(changes: DhType.ide.VariableChanges): void {\n if (\n changes == null ||\n changes.removed == null ||\n changes.removed.length === 0\n ) {\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 == null || result.changes == null || historyItem == null) {\n return;\n }\n\n historyItem.endTime = Date.now();\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 | DhType.ide.VariableChanges;\n if (historyItem.result) {\n changes = historyItem.result.changes;\n }\n if (\n !changes ||\n ((changes.created == null || changes.created.length === 0) &&\n (changes.updated == null || changes.updated.length === 0) &&\n (changes.removed == null || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n let { consoleHistory } = state;\n const itemIndex = consoleHistory.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: DhType.ide.VariableDefinition,\n isRemoved = false\n ): void => {\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 if (consoleHistory === state.consoleHistory) {\n // First item in the history being updated,\n consoleHistory = consoleHistory.concat();\n }\n const newHistoryItem = {\n ...consoleHistory[oldIndex],\n disabledObjects: [\n ...(consoleHistory[oldIndex].disabledObjects ?? []),\n title,\n ],\n };\n consoleHistory[oldIndex] = newHistoryItem;\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 };\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(): void {\n const pane = this.consoleHistoryScrollPane.current;\n if (pane == null) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTo({ top: pane.scrollHeight, behavior: 'instant' });\n });\n }\n\n handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void {\n log.debug('handleScrollPaneScroll', event);\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n this.setState({\n isScrollDecorationShown:\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight,\n isStuckToBottom: this.isAtBottom(),\n });\n }\n\n handleHistoryResize(entries: ResizeObserverEntry[]): void {\n log.debug('handleHistoryResize', entries);\n const entry = entries[0];\n if (entry.contentRect.height > 0 && entry.contentRect.width > 0) {\n const { isStuckToBottom } = this.state;\n if (isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\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 == null ||\n e.dataTransfer.items == null ||\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 == null ||\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 { dh, openObject, commandHistoryStorage, language, scope } =\n 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\n const history = consoleHistory.concat(historyItem);\n this.setState({ consoleHistory: history });\n this.scrollConsoleHistoryToBottom();\n this.updateKnownObjects(historyItem);\n openObject({ name: 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 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(\n undefined,\n error != null ? `${error}` : undefined\n );\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();\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(\n (objectMap: Map<string, DhType.ide.VariableDefinition>) =>\n Array.from(objectMap.values())\n );\n\n getContextActions = memoize(\n (actions: DropdownAction[]): ResolvableContextAction[] => [\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\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();\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 dh,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n supportsType,\n iconForType,\n showObjectsMenu,\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 dh={dh}\n session={session}\n overflowActions={this.handleOverflowActions}\n >\n {statusBarChildren}\n {showObjectsMenu === true && (\n <ConsoleObjectsMenu\n openObject={openObject}\n objects={consoleMenuObjects}\n />\n )}\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 supportsType={supportsType}\n iconForType={iconForType}\n ref={this.consoleHistoryContent}\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
|
+
{"version":3,"file":"Console.js","names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","ConsoleObjectsMenu","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","defaultSupportsType","defaultIconForType","type","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","_defineProperty","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","Array","from","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleHistoryResize","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","consoleHistoryContent","pending","resizeObserver","window","ResizeObserver","settings","_objectSpread","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","isStuckToBottom","componentDidMount","initConsoleLogging","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","current","observe","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","isAtBottom","scrollConsoleHistoryToBottom","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","disconnect","cancelListener","onLogMessage","undefined","scrollHeight","clientHeight","scrollTop","Math","abs","event","_this$consoleInput$cu","preventDefault","stopPropagation","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","newHistoryItem","_ref","itemIndex","lastIndexOf","newHistory","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","title","startsWith","removed","closeObject","historyItemParam","_changes","_changes2","_changes3","disableOldObject","isRemoved","arguments","oldIndex","get","_consoleHistory$oldIn","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","pane","requestAnimationFrame","scrollTo","top","behavior","scrollPane","entries","entry","contentRect","height","width","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","_this$consoleInput$cu2","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","supportsType","iconForType","showObjectsMenu","consoleMenuObjects","getObjects","inputMaxHeight","round","contextActions","getContextActions","role","className","children","ref","overflowActions","objects","onDragOver","handleDragOver","onDragEnter","onDragLeave","onCancel","onFileOpened","onPaste","clearDragError","onError","uploadInProgress","allowZip","onScroll","onSubmit","maxHeight","onOpenTable","onClose","onUpdate","paste","onInProgress","ignoreClassNames","INPUT_CLASS_NAME"],"sources":["../src/Console.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n type DragEvent,\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n type UIEvent,\n} from 'react';\nimport {\n ContextActions,\n type DropdownAction,\n type ResolvableContextAction,\n} 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 type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { type 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 type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n} from './command-history';\nimport ConsoleObjectsMenu from './ConsoleObjectsMenu';\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 dh: typeof DhType;\n\n /** Additional children to show in the status bar */\n statusBarChildren: ReactNode;\n\n /** Show the objects menu in the status bar. Defaults to true. */\n showObjectsMenu?: boolean;\n\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n\n /**\n * @param object The object to open\n * @param forceOpen If true, always open the object. If false, only update existing panels\n */\n openObject: (\n object: DhType.ide.VariableDescriptor,\n forceOpen?: boolean\n ) => void;\n\n /** Closes all panels containing the object */\n closeObject: (object: DhType.ide.VariableDefinition) => void;\n session: DhType.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, DhType.ide.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 supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\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 // Scroll decoration is a drop shadow across the top border of the console\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, DhType.ide.VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isStuckToBottom: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nfunction defaultSupportsType(): boolean {\n return true;\n}\n\nfunction defaultIconForType(type: string): ReactElement {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n}\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 supportsType: defaultSupportsType,\n iconForType: defaultIconForType,\n showObjectsMenu: true,\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(logLevel: string): 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(\n logLevel: (typeof LogLevel)[keyof typeof LogLevel]\n ): 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.handleHistoryResize = this.handleHistoryResize.bind(this);\n this.handleToggleAutoLaunchPanels =\n this.handleToggleAutoLaunchPanels.bind(this);\n this.handleToggleClosePanelsOnDisconnect =\n this.handleToggleClosePanelsOnDisconnect.bind(this);\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.consoleHistoryContent = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n this.resizeObserver = new window.ResizeObserver(this.handleHistoryResize);\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 isStuckToBottom: true,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { dh, session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n\n if (\n this.consoleHistoryScrollPane.current &&\n this.consoleHistoryContent.current\n ) {\n this.resizeObserver.observe(this.consoleHistoryScrollPane.current);\n this.resizeObserver.observe(this.consoleHistoryContent.current);\n }\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 if (state.isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n componentWillUnmount(): void {\n const { dh, 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 this.resizeObserver.disconnect();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n consoleHistoryContent: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n resizeObserver: ResizeObserver;\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 isAtBottom(): boolean {\n if (this.consoleHistoryScrollPane.current == null) {\n return false;\n }\n const { scrollHeight, clientHeight, scrollTop } =\n this.consoleHistoryScrollPane.current;\n return Math.abs(scrollHeight - clientHeight - scrollTop) <= 1;\n }\n\n handleClearShortcut(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(\n event: DhType.Event<{\n code: string;\n result: {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n cancel: () => unknown;\n };\n }>\n ): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem: ConsoleHistoryActionItem = {\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();\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: DhType.ide.VariableChanges;\n }\n | undefined,\n historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const newHistoryItem = {\n ...historyItem,\n wrappedResult: undefined,\n cancelResult: undefined,\n result: result ?? historyItem.result,\n };\n\n this.setState(({ consoleHistory }) => {\n const itemIndex = consoleHistory.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in consoleHistory`);\n return null;\n }\n const newHistory = consoleHistory.concat();\n newHistory[itemIndex] = newHistoryItem;\n\n return { consoleHistory: newHistory };\n });\n\n if (!result) {\n return;\n }\n\n this.scrollConsoleHistoryToBottom();\n this.updateHistory(result, newHistoryItem);\n this.updateKnownObjects(newHistoryItem);\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 historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\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 const newHistoryItem = { ...historyItem };\n newHistoryItem.wrappedResult = undefined;\n newHistoryItem.cancelResult = undefined;\n newHistoryItem.endTime = Date.now();\n newHistoryItem.result = { error };\n history[index] = newHistoryItem;\n return { consoleHistory: history };\n });\n }\n\n handleFocusHistory(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message: DhType.ide.LogItem): void {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (\n Console.isOutputLevel(\n message.logLevel as (typeof LogLevel)[keyof typeof LogLevel]\n )\n ) {\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 (\n Console.isErrorLevel(logLevel as (typeof LogLevel)[keyof typeof LogLevel])\n ) {\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.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: DhType.ide.VariableChanges): void {\n log.debug('openUpdatedItems', changes);\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (changes == null) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated].forEach(object =>\n openObject(\n object,\n isAutoLaunchPanelsEnabled &&\n (object.title === undefined || !object.title.startsWith('_'))\n )\n );\n }\n\n closeRemovedItems(changes: DhType.ide.VariableChanges): void {\n if (\n changes == null ||\n changes.removed == null ||\n changes.removed.length === 0\n ) {\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 == null || result.changes == null || historyItem == null) {\n return;\n }\n\n historyItem.endTime = Date.now();\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 | DhType.ide.VariableChanges;\n if (historyItem.result) {\n changes = historyItem.result.changes;\n }\n if (\n !changes ||\n ((changes.created == null || changes.created.length === 0) &&\n (changes.updated == null || changes.updated.length === 0) &&\n (changes.removed == null || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n let { consoleHistory } = state;\n const itemIndex = consoleHistory.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: DhType.ide.VariableDefinition,\n isRemoved = false\n ): void => {\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 if (consoleHistory === state.consoleHistory) {\n // First item in the history being updated,\n consoleHistory = consoleHistory.concat();\n }\n const newHistoryItem = {\n ...consoleHistory[oldIndex],\n disabledObjects: [\n ...(consoleHistory[oldIndex].disabledObjects ?? []),\n title,\n ],\n };\n consoleHistory[oldIndex] = newHistoryItem;\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 };\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(): void {\n const pane = this.consoleHistoryScrollPane.current;\n if (pane == null) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTo({ top: pane.scrollHeight, behavior: 'instant' });\n });\n }\n\n handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void {\n log.debug('handleScrollPaneScroll', event);\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n this.setState({\n isScrollDecorationShown:\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight,\n isStuckToBottom: this.isAtBottom(),\n });\n }\n\n handleHistoryResize(entries: ResizeObserverEntry[]): void {\n log.debug('handleHistoryResize', entries);\n const entry = entries[0];\n if (entry.contentRect.height > 0 && entry.contentRect.width > 0) {\n const { isStuckToBottom } = this.state;\n if (isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\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 == null ||\n e.dataTransfer.items == null ||\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 == null ||\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 { dh, openObject, commandHistoryStorage, language, scope } =\n 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\n const history = consoleHistory.concat(historyItem);\n this.setState({ consoleHistory: history });\n this.scrollConsoleHistoryToBottom();\n this.updateKnownObjects(historyItem);\n openObject({ name: 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 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(\n undefined,\n error != null ? `${error}` : undefined\n );\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();\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(\n (objectMap: Map<string, DhType.ide.VariableDefinition>) =>\n Array.from(objectMap.values())\n );\n\n getContextActions = memoize(\n (actions: DropdownAction[]): ResolvableContextAction[] => [\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\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();\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 dh,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n supportsType,\n iconForType,\n showObjectsMenu,\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 dh={dh}\n session={session}\n overflowActions={this.handleOverflowActions}\n >\n {statusBarChildren}\n {showObjectsMenu === true && (\n <ConsoleObjectsMenu\n openObject={openObject}\n objects={consoleMenuObjects}\n />\n )}\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 supportsType={supportsType}\n iconForType={iconForType}\n ref={this.consoleHistoryContent}\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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","ignoreList":[]}
|
package/dist/ConsoleInput.js
CHANGED
|
@@ -10,8 +10,7 @@ import Log from '@deephaven/log';
|
|
|
10
10
|
import { assertNotNull, PromiseUtils } from '@deephaven/utils';
|
|
11
11
|
import { MonacoProviders, MonacoTheme, MonacoUtils } from "./monaco/index.js";
|
|
12
12
|
import "./ConsoleInput.css";
|
|
13
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
14
|
var log = Log.module('ConsoleInput');
|
|
16
15
|
var LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);
|
|
17
16
|
var TOP_PADDING = 6;
|
|
@@ -34,6 +33,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
34
33
|
_defineProperty(this, "timestamp", void 0);
|
|
35
34
|
_defineProperty(this, "bufferIndex", void 0);
|
|
36
35
|
_defineProperty(this, "history", void 0);
|
|
36
|
+
// Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed
|
|
37
37
|
_defineProperty(this, "modifiedCommands", void 0);
|
|
38
38
|
this.handleResize = this.handleResize.bind(this);
|
|
39
39
|
this.commandContainer = /*#__PURE__*/React.createRef();
|
|
@@ -64,9 +64,6 @@ export class ConsoleInput extends PureComponent {
|
|
|
64
64
|
}
|
|
65
65
|
this.destroyCommandEditor();
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
// Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed
|
|
69
|
-
|
|
70
67
|
/**
|
|
71
68
|
* Sets the console text from an external source.
|
|
72
69
|
* Sets commandHistoryIndex to null since the source is not part of the history
|
|
@@ -89,7 +86,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
89
86
|
// Need to set commandHistoryIndex before value
|
|
90
87
|
// On value change, modified commands map updates
|
|
91
88
|
this.commandHistoryIndex = null;
|
|
92
|
-
(_this$commandEditor = this.commandEditor) === null || _this$commandEditor === void 0
|
|
89
|
+
(_this$commandEditor = this.commandEditor) === null || _this$commandEditor === void 0 || _this$commandEditor.setValue(text);
|
|
93
90
|
}
|
|
94
91
|
if (focus) {
|
|
95
92
|
this.focusEnd();
|
|
@@ -199,11 +196,11 @@ export class ConsoleInput extends PureComponent {
|
|
|
199
196
|
var _this$commandEditor3;
|
|
200
197
|
keyEvent.stopPropagation();
|
|
201
198
|
keyEvent.preventDefault();
|
|
202
|
-
var
|
|
203
|
-
if (
|
|
199
|
+
var command = (_this$commandEditor3 = this.commandEditor) === null || _this$commandEditor3 === void 0 ? void 0 : _this$commandEditor3.getValue().trim();
|
|
200
|
+
if (command !== undefined) {
|
|
204
201
|
var _this$commandEditor4;
|
|
205
|
-
this.processCommand(
|
|
206
|
-
(_this$commandEditor4 = this.commandEditor) === null || _this$commandEditor4 === void 0
|
|
202
|
+
this.processCommand(command);
|
|
203
|
+
(_this$commandEditor4 = this.commandEditor) === null || _this$commandEditor4 === void 0 || _this$commandEditor4.setValue('');
|
|
207
204
|
}
|
|
208
205
|
}
|
|
209
206
|
}
|
|
@@ -212,7 +209,6 @@ export class ConsoleInput extends PureComponent {
|
|
|
212
209
|
// Disable the Ctrl+F functionality so that the find window doesn't appear
|
|
213
210
|
MonacoUtils.disableKeyBindings(this.commandEditor, [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF // eslint-disable-line no-bitwise
|
|
214
211
|
]);
|
|
215
|
-
|
|
216
212
|
MonacoUtils.registerPasteHandler(this.commandEditor);
|
|
217
213
|
this.commandEditor.focus();
|
|
218
214
|
this.resizeObserver.observe(element);
|
|
@@ -237,52 +233,52 @@ export class ConsoleInput extends PureComponent {
|
|
|
237
233
|
isSuggestionMenuActive() {
|
|
238
234
|
var _ref;
|
|
239
235
|
if (!this.commandSuggestionContainer) {
|
|
240
|
-
var _this$commandEditor5
|
|
241
|
-
this.commandSuggestionContainer = (_this$commandEditor5 = this.commandEditor) === null || _this$commandEditor5 === void 0
|
|
236
|
+
var _this$commandEditor5;
|
|
237
|
+
this.commandSuggestionContainer = (_this$commandEditor5 = this.commandEditor) === null || _this$commandEditor5 === void 0 || (_this$commandEditor5 = _this$commandEditor5.getDomNode()) === null || _this$commandEditor5 === void 0 ? void 0 : _this$commandEditor5.querySelector('.suggest-widget');
|
|
242
238
|
}
|
|
243
239
|
return (_ref = this.commandSuggestionContainer && this.commandSuggestionContainer.classList.contains('visible')) !== null && _ref !== void 0 ? _ref : false;
|
|
244
240
|
}
|
|
245
241
|
isSuggestionMenuPopulated() {
|
|
246
|
-
var _this$commandSuggesti, _this$commandSuggesti2
|
|
247
|
-
return this.isSuggestionMenuActive() && ((_this$commandSuggesti = (_this$commandSuggesti2 = this.commandSuggestionContainer) === null || _this$commandSuggesti2 === void 0
|
|
242
|
+
var _this$commandSuggesti, _this$commandSuggesti2;
|
|
243
|
+
return this.isSuggestionMenuActive() && ((_this$commandSuggesti = (_this$commandSuggesti2 = this.commandSuggestionContainer) === null || _this$commandSuggesti2 === void 0 || (_this$commandSuggesti2 = _this$commandSuggesti2.querySelector('.monaco-list-rows')) === null || _this$commandSuggesti2 === void 0 ? void 0 : _this$commandSuggesti2.childElementCount) !== null && _this$commandSuggesti !== void 0 ? _this$commandSuggesti : 0) > 0;
|
|
248
244
|
}
|
|
249
245
|
focus() {
|
|
250
246
|
var _this$commandEditor6;
|
|
251
|
-
(_this$commandEditor6 = this.commandEditor) === null || _this$commandEditor6 === void 0
|
|
247
|
+
(_this$commandEditor6 = this.commandEditor) === null || _this$commandEditor6 === void 0 || _this$commandEditor6.focus();
|
|
252
248
|
}
|
|
253
249
|
focusStart() {
|
|
254
|
-
var _this$commandEditor7, _this$commandEditor8, _this$commandEditor9, _this$
|
|
250
|
+
var _this$commandEditor7, _this$commandEditor8, _this$commandEditor9, _this$commandEditor0, _this$commandEditor1;
|
|
255
251
|
var model = (_this$commandEditor7 = this.commandEditor) === null || _this$commandEditor7 === void 0 ? void 0 : _this$commandEditor7.getModel();
|
|
256
252
|
assertNotNull(model);
|
|
257
253
|
var column = model.getLineLength(1) + 1; // Length of 1st line
|
|
258
254
|
var firstCharTop = (_this$commandEditor8 = this.commandEditor) === null || _this$commandEditor8 === void 0 ? void 0 : _this$commandEditor8.getTopForPosition(1, column);
|
|
259
255
|
assertNotNull(firstCharTop);
|
|
260
|
-
(_this$commandEditor9 = this.commandEditor) === null || _this$commandEditor9 === void 0
|
|
256
|
+
(_this$commandEditor9 = this.commandEditor) === null || _this$commandEditor9 === void 0 || _this$commandEditor9.setPosition({
|
|
261
257
|
lineNumber: 1,
|
|
262
258
|
column
|
|
263
259
|
});
|
|
264
|
-
(_this$
|
|
265
|
-
(_this$
|
|
260
|
+
(_this$commandEditor0 = this.commandEditor) === null || _this$commandEditor0 === void 0 || _this$commandEditor0.setScrollTop(firstCharTop);
|
|
261
|
+
(_this$commandEditor1 = this.commandEditor) === null || _this$commandEditor1 === void 0 || _this$commandEditor1.focus();
|
|
266
262
|
}
|
|
267
263
|
focusEnd() {
|
|
268
|
-
var _this$
|
|
269
|
-
var model = (_this$
|
|
264
|
+
var _this$commandEditor10, _this$commandEditor11, _this$commandEditor12, _this$commandEditor13, _this$commandEditor14;
|
|
265
|
+
var model = (_this$commandEditor10 = this.commandEditor) === null || _this$commandEditor10 === void 0 ? void 0 : _this$commandEditor10.getModel();
|
|
270
266
|
assertNotNull(model);
|
|
271
267
|
var lastLine = model.getLineCount();
|
|
272
268
|
var column = model.getLineLength(lastLine) + 1;
|
|
273
|
-
var lastCharTop = (_this$
|
|
269
|
+
var lastCharTop = (_this$commandEditor11 = this.commandEditor) === null || _this$commandEditor11 === void 0 ? void 0 : _this$commandEditor11.getTopForPosition(lastLine, column);
|
|
274
270
|
assertNotNull(lastCharTop);
|
|
275
|
-
(_this$
|
|
271
|
+
(_this$commandEditor12 = this.commandEditor) === null || _this$commandEditor12 === void 0 || _this$commandEditor12.setPosition({
|
|
276
272
|
lineNumber: lastLine,
|
|
277
273
|
column
|
|
278
274
|
});
|
|
279
|
-
(_this$
|
|
280
|
-
(_this$
|
|
275
|
+
(_this$commandEditor13 = this.commandEditor) === null || _this$commandEditor13 === void 0 || _this$commandEditor13.setScrollTop(lastCharTop);
|
|
276
|
+
(_this$commandEditor14 = this.commandEditor) === null || _this$commandEditor14 === void 0 || _this$commandEditor14.focus();
|
|
281
277
|
}
|
|
282
278
|
clear() {
|
|
283
|
-
var _this$
|
|
284
|
-
(_this$
|
|
285
|
-
(_this$
|
|
279
|
+
var _this$commandEditor15, _this$commandEditor16;
|
|
280
|
+
(_this$commandEditor15 = this.commandEditor) === null || _this$commandEditor15 === void 0 || _this$commandEditor15.focus();
|
|
281
|
+
(_this$commandEditor16 = this.commandEditor) === null || _this$commandEditor16 === void 0 || (_this$commandEditor16 = _this$commandEditor16.getModel()) === null || _this$commandEditor16 === void 0 || _this$commandEditor16.setValue('');
|
|
286
282
|
this.commandHistoryIndex = null;
|
|
287
283
|
}
|
|
288
284
|
layoutEditor() {
|
|
@@ -297,14 +293,14 @@ export class ConsoleInput extends PureComponent {
|
|
|
297
293
|
* @param index The index to load. Null to load command started in the editor and not in the history
|
|
298
294
|
*/
|
|
299
295
|
loadCommand(index) {
|
|
300
|
-
var _this$
|
|
296
|
+
var _this$commandEditor17;
|
|
301
297
|
if (index !== null && index >= this.history.length) {
|
|
302
298
|
return;
|
|
303
299
|
}
|
|
304
300
|
var modifiedValue = this.modifiedCommands.get(index);
|
|
305
301
|
var historyValue = index === null ? '' : this.history[this.history.length - index - 1];
|
|
306
302
|
this.commandHistoryIndex = index;
|
|
307
|
-
(_this$
|
|
303
|
+
(_this$commandEditor17 = this.commandEditor) === null || _this$commandEditor17 === void 0 || (_this$commandEditor17 = _this$commandEditor17.getModel()) === null || _this$commandEditor17 === void 0 || _this$commandEditor17.setValue(modifiedValue !== null && modifiedValue !== void 0 ? modifiedValue : historyValue);
|
|
308
304
|
if (index !== null && index > this.history.length - BUFFER_SIZE) {
|
|
309
305
|
this.loadMoreHistory();
|
|
310
306
|
}
|
|
@@ -390,9 +386,9 @@ export class ConsoleInput extends PureComponent {
|
|
|
390
386
|
this.setState({
|
|
391
387
|
commandEditorHeight
|
|
392
388
|
}, () => {
|
|
393
|
-
var _this$
|
|
394
|
-
(_this$
|
|
395
|
-
(_this$
|
|
389
|
+
var _this$commandEditor18, _this$commandEditor19;
|
|
390
|
+
(_this$commandEditor18 = this.commandEditor) === null || _this$commandEditor18 === void 0 || _this$commandEditor18.updateOptions(options);
|
|
391
|
+
(_this$commandEditor19 = this.commandEditor) === null || _this$commandEditor19 === void 0 || _this$commandEditor19.layout();
|
|
396
392
|
});
|
|
397
393
|
}
|
|
398
394
|
render() {
|