@deephaven/console 0.101.1-beta.0 → 0.102.1-beta.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Console display for use in the Iris environment.
3
3
  */
4
- import { type DragEvent, PureComponent, type ReactElement, type ReactNode, type RefObject } from 'react';
4
+ import { type DragEvent, PureComponent, type ReactElement, type ReactNode, type RefObject, type UIEvent } from 'react';
5
5
  import { type DropdownAction, type ResolvableContextAction } from '@deephaven/components';
6
6
  import type { JSZipObject } from 'jszip';
7
7
  import type { dh as DhType } from '@deephaven/jsapi-types';
@@ -104,8 +104,10 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
104
104
  consolePane: RefObject<HTMLDivElement>;
105
105
  consoleInput: RefObject<ConsoleInput>;
106
106
  consoleHistoryScrollPane: RefObject<HTMLDivElement>;
107
+ consoleHistoryContent: RefObject<HTMLDivElement>;
107
108
  pending: Pending;
108
109
  queuedLogMessages: ConsoleHistoryActionItem[];
110
+ resizeObserver: ResizeObserver;
109
111
  initConsoleLogging(): void;
110
112
  deinitConsoleLogging(): void;
111
113
  isAtBottom(): boolean;
@@ -137,7 +139,8 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
137
139
  error?: string;
138
140
  }, workspaceItemPromise: Promise<CommandHistoryStorageItem>): void;
139
141
  scrollConsoleHistoryToBottom(): void;
140
- handleScrollPaneScroll(): void;
142
+ handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void;
143
+ handleHistoryResize(entries: ResizeObserverEntry[]): void;
141
144
  handleToggleAutoLaunchPanels(): void;
142
145
  handleToggleClosePanelsOnDisconnect(): void;
143
146
  handleTogglePrintStdout(): void;
@@ -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
@@ -65,8 +65,10 @@ export class Console extends PureComponent {
65
65
  _defineProperty(this, "consolePane", void 0);
66
66
  _defineProperty(this, "consoleInput", void 0);
67
67
  _defineProperty(this, "consoleHistoryScrollPane", void 0);
68
+ _defineProperty(this, "consoleHistoryContent", void 0);
68
69
  _defineProperty(this, "pending", void 0);
69
70
  _defineProperty(this, "queuedLogMessages", void 0);
71
+ _defineProperty(this, "resizeObserver", void 0);
70
72
  _defineProperty(this, "processLogMessageQueue", throttle(() => {
71
73
  this.setState(state => {
72
74
  log.debug2('processLogMessageQueue', this.queuedLogMessages.length, ' items');
@@ -96,6 +98,7 @@ export class Console extends PureComponent {
96
98
  this.handleLogMessage = this.handleLogMessage.bind(this);
97
99
  this.handleOverflowActions = this.handleOverflowActions.bind(this);
98
100
  this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);
101
+ this.handleHistoryResize = this.handleHistoryResize.bind(this);
99
102
  this.handleToggleAutoLaunchPanels = this.handleToggleAutoLaunchPanels.bind(this);
100
103
  this.handleToggleClosePanelsOnDisconnect = this.handleToggleClosePanelsOnDisconnect.bind(this);
101
104
  this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);
@@ -114,8 +117,10 @@ export class Console extends PureComponent {
114
117
  this.consolePane = /*#__PURE__*/React.createRef();
115
118
  this.consoleInput = /*#__PURE__*/React.createRef();
116
119
  this.consoleHistoryScrollPane = /*#__PURE__*/React.createRef();
120
+ this.consoleHistoryContent = /*#__PURE__*/React.createRef();
117
121
  this.pending = new Pending();
118
122
  this.queuedLogMessages = [];
123
+ this.resizeObserver = new window.ResizeObserver(this.handleHistoryResize);
119
124
  var {
120
125
  objectMap: _objectMap,
121
126
  settings
@@ -146,6 +151,10 @@ export class Console extends PureComponent {
146
151
  } = this.props;
147
152
  session.addEventListener(dh.IdeSession.EVENT_COMMANDSTARTED, this.handleCommandStarted);
148
153
  this.updateDimensions();
154
+ if (this.consoleHistoryScrollPane.current && this.consoleHistoryContent.current) {
155
+ this.resizeObserver.observe(this.consoleHistoryScrollPane.current);
156
+ this.resizeObserver.observe(this.consoleHistoryContent.current);
157
+ }
149
158
  }
150
159
  componentDidUpdate(prevProps, prevState) {
151
160
  var {
@@ -169,6 +178,7 @@ export class Console extends PureComponent {
169
178
  this.pending.cancel();
170
179
  this.processLogMessageQueue.cancel();
171
180
  this.deinitConsoleLogging();
181
+ this.resizeObserver.disconnect();
172
182
  }
173
183
  initConsoleLogging() {
174
184
  var {
@@ -479,11 +489,13 @@ export class Console extends PureComponent {
479
489
  }
480
490
  window.requestAnimationFrame(() => {
481
491
  pane.scrollTo({
482
- top: pane.scrollHeight
492
+ top: pane.scrollHeight,
493
+ behavior: 'instant'
483
494
  });
484
495
  });
485
496
  }
486
- handleScrollPaneScroll() {
497
+ handleScrollPaneScroll(event) {
498
+ log.debug('handleScrollPaneScroll', event);
487
499
  var scrollPane = this.consoleHistoryScrollPane.current;
488
500
  assertNotNull(scrollPane);
489
501
  this.setState({
@@ -491,6 +503,18 @@ export class Console extends PureComponent {
491
503
  isStuckToBottom: this.isAtBottom()
492
504
  });
493
505
  }
506
+ handleHistoryResize(entries) {
507
+ log.debug('handleHistoryResize', entries);
508
+ var entry = entries[0];
509
+ if (entry.contentRect.height > 0 && entry.contentRect.width > 0) {
510
+ var {
511
+ isStuckToBottom
512
+ } = this.state;
513
+ if (isStuckToBottom && !this.isAtBottom()) {
514
+ this.scrollConsoleHistoryToBottom();
515
+ }
516
+ }
517
+ }
494
518
  handleToggleAutoLaunchPanels() {
495
519
  this.setState(state => ({
496
520
  isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled
@@ -858,7 +882,8 @@ export class Console extends PureComponent {
858
882
  language: language,
859
883
  disabled: disabled,
860
884
  supportsType: supportsType,
861
- iconForType: iconForType
885
+ iconForType: iconForType,
886
+ ref: this.consoleHistoryContent
862
887
  }), historyChildren]
863
888
  })]
864
889
  }), !showCsvOverlay && /*#__PURE__*/_jsx(ConsoleInput, {
@@ -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","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","pending","settings","_objectSpread","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","isStuckToBottom","componentDidMount","initConsoleLogging","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","isAtBottom","scrollConsoleHistoryToBottom","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","cancelListener","onLogMessage","undefined","current","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","window","requestAnimationFrame","scrollTo","top","scrollPane","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} 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.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.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 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\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 }\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 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(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();\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 });\n });\n }\n\n handleScrollPaneScroll(): void {\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 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 />\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(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();\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,7 +1,7 @@
1
1
  /**
2
2
  * Console display for use in the Iris environment.
3
3
  */
4
- import { type ReactElement } from 'react';
4
+ import React, { type ReactElement } from 'react';
5
5
  import type { dh } from '@deephaven/jsapi-types';
6
6
  import './ConsoleHistory.scss';
7
7
  import { type ConsoleHistoryActionItem } from './ConsoleHistoryTypes';
@@ -13,6 +13,9 @@ interface ConsoleHistoryProps {
13
13
  supportsType: (type: string) => boolean;
14
14
  iconForType: (type: string) => ReactElement;
15
15
  }
16
- declare function ConsoleHistory(props: ConsoleHistoryProps): ReactElement;
16
+ /**
17
+ * Display the console history.
18
+ */
19
+ declare const ConsoleHistory: React.ForwardRefExoticComponent<ConsoleHistoryProps & React.RefAttributes<HTMLDivElement>>;
17
20
  export default ConsoleHistory;
18
21
  //# sourceMappingURL=ConsoleHistory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleHistory.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistory.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,UAAU,mBAAmB;IAC3B,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;CAC7C;AAQD,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA6BhE;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"ConsoleHistory.d.ts","sourceRoot":"","sources":["../../src/console-history/ConsoleHistory.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,UAAU,mBAAmB;IAC3B,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,CAAC;CAC7C;AAQD;;GAEG;AACH,QAAA,MAAM,cAAc,4FAkClB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,13 +1,18 @@
1
1
  /**
2
2
  * Console display for use in the Iris environment.
3
3
  */
4
+ import React from 'react';
4
5
  import ConsoleHistoryItem from "./ConsoleHistoryItem.js";
5
6
  import "./ConsoleHistory.css";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  function itemKey(i, item) {
8
9
  return "".concat(i, ".").concat(item.command, ".").concat(item.result && item.result.message, ".").concat(item.result && item.result.error);
9
10
  }
10
- function ConsoleHistory(props) {
11
+
12
+ /**
13
+ * Display the console history.
14
+ */
15
+ var ConsoleHistory = /*#__PURE__*/React.forwardRef(function ConsoleHistory(props, ref) {
11
16
  var {
12
17
  disabled = false,
13
18
  items,
@@ -30,9 +35,10 @@ function ConsoleHistory(props) {
30
35
  historyElements.push(historyElement);
31
36
  }
32
37
  return /*#__PURE__*/_jsx("div", {
38
+ ref: ref,
33
39
  className: "container-fluid console-history",
34
40
  children: historyElements
35
41
  });
36
- }
42
+ });
37
43
  export default ConsoleHistory;
38
44
  //# sourceMappingURL=ConsoleHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleHistory.js","names":["ConsoleHistoryItem","jsx","_jsx","itemKey","i","item","concat","command","result","message","error","ConsoleHistory","props","disabled","items","language","openObject","supportsType","iconForType","historyElements","length","historyElement","push","className","children"],"sources":["../../src/console-history/ConsoleHistory.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport { type ReactElement } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport ConsoleHistoryItem from './ConsoleHistoryItem';\n\nimport './ConsoleHistory.scss';\nimport { type ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\ninterface ConsoleHistoryProps {\n items: ConsoleHistoryActionItem[];\n language: string;\n openObject: (object: dh.ide.VariableDefinition) => void;\n disabled?: boolean;\n supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\n}\n\nfunction itemKey(i: number, item: ConsoleHistoryActionItem): string {\n return `${i}.${item.command}.${item.result && item.result.message}.${\n item.result && item.result.error\n }`;\n}\n\nfunction ConsoleHistory(props: ConsoleHistoryProps): ReactElement {\n const {\n disabled = false,\n items,\n language,\n openObject,\n supportsType,\n iconForType,\n } = props;\n const historyElements = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const historyElement = (\n <ConsoleHistoryItem\n key={itemKey(i, item)}\n disabled={disabled}\n item={item}\n openObject={openObject}\n language={language}\n supportsType={supportsType}\n iconForType={iconForType}\n />\n );\n historyElements.push(historyElement);\n }\n\n return (\n <div className=\"container-fluid console-history\">{historyElements}</div>\n );\n}\n\nexport default ConsoleHistory;\n"],"mappings":"AAAA;AACA;AACA;AAFA,OAKOA,kBAAkB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAczB,SAASC,OAAOA,CAACC,CAAS,EAAEC,IAA8B,EAAU;EAClE,UAAAC,MAAA,CAAUF,CAAC,OAAAE,MAAA,CAAID,IAAI,CAACE,OAAO,OAAAD,MAAA,CAAID,IAAI,CAACG,MAAM,IAAIH,IAAI,CAACG,MAAM,CAACC,OAAO,OAAAH,MAAA,CAC/DD,IAAI,CAACG,MAAM,IAAIH,IAAI,CAACG,MAAM,CAACE,KAAK;AAEpC;AAEA,SAASC,cAAcA,CAACC,KAA0B,EAAgB;EAChE,IAAM;IACJC,QAAQ,GAAG,KAAK;IAChBC,KAAK;IACLC,QAAQ;IACRC,UAAU;IACVC,YAAY;IACZC;EACF,CAAC,GAAGN,KAAK;EACT,IAAMO,eAAe,GAAG,EAAE;EAC1B,KAAK,IAAIf,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,KAAK,CAACM,MAAM,EAAEhB,CAAC,IAAI,CAAC,EAAE;IACxC,IAAMC,IAAI,GAAGS,KAAK,CAACV,CAAC,CAAC;IACrB,IAAMiB,cAAc,gBAClBnB,IAAA,CAACF,kBAAkB;MAEjBa,QAAQ,EAAEA,QAAS;MACnBR,IAAI,EAAEA,IAAK;MACXW,UAAU,EAAEA,UAAW;MACvBD,QAAQ,EAAEA,QAAS;MACnBE,YAAY,EAAEA,YAAa;MAC3BC,WAAW,EAAEA;IAAY,GANpBf,OAAO,CAACC,CAAC,EAAEC,IAAI,CAOrB,CACF;IACDc,eAAe,CAACG,IAAI,CAACD,cAAc,CAAC;EACtC;EAEA,oBACEnB,IAAA;IAAKqB,SAAS,EAAC,iCAAiC;IAAAC,QAAA,EAAEL;EAAe,CAAM,CAAC;AAE5E;AAEA,eAAeR,cAAc"}
1
+ {"version":3,"file":"ConsoleHistory.js","names":["React","ConsoleHistoryItem","jsx","_jsx","itemKey","i","item","concat","command","result","message","error","ConsoleHistory","forwardRef","props","ref","disabled","items","language","openObject","supportsType","iconForType","historyElements","length","historyElement","push","className","children"],"sources":["../../src/console-history/ConsoleHistory.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { type ReactElement } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport ConsoleHistoryItem from './ConsoleHistoryItem';\n\nimport './ConsoleHistory.scss';\nimport { type ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\ninterface ConsoleHistoryProps {\n items: ConsoleHistoryActionItem[];\n language: string;\n openObject: (object: dh.ide.VariableDefinition) => void;\n disabled?: boolean;\n supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\n}\n\nfunction itemKey(i: number, item: ConsoleHistoryActionItem): string {\n return `${i}.${item.command}.${item.result && item.result.message}.${\n item.result && item.result.error\n }`;\n}\n\n/**\n * Display the console history.\n */\nconst ConsoleHistory = React.forwardRef(function ConsoleHistory(\n props: ConsoleHistoryProps,\n ref: React.Ref<HTMLDivElement>\n): ReactElement {\n const {\n disabled = false,\n items,\n language,\n openObject,\n supportsType,\n iconForType,\n } = props;\n const historyElements = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const historyElement = (\n <ConsoleHistoryItem\n key={itemKey(i, item)}\n disabled={disabled}\n item={item}\n openObject={openObject}\n language={language}\n supportsType={supportsType}\n iconForType={iconForType}\n />\n );\n historyElements.push(historyElement);\n }\n\n return (\n <div ref={ref} className=\"container-fluid console-history\">\n {historyElements}\n </div>\n );\n});\n\nexport default ConsoleHistory;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,KAAK,MAA6B,OAAO;AAAC,OAE1CC,kBAAkB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAczB,SAASC,OAAOA,CAACC,CAAS,EAAEC,IAA8B,EAAU;EAClE,UAAAC,MAAA,CAAUF,CAAC,OAAAE,MAAA,CAAID,IAAI,CAACE,OAAO,OAAAD,MAAA,CAAID,IAAI,CAACG,MAAM,IAAIH,IAAI,CAACG,MAAM,CAACC,OAAO,OAAAH,MAAA,CAC/DD,IAAI,CAACG,MAAM,IAAIH,IAAI,CAACG,MAAM,CAACE,KAAK;AAEpC;;AAEA;AACA;AACA;AACA,IAAMC,cAAc,gBAAGZ,KAAK,CAACa,UAAU,CAAC,SAASD,cAAcA,CAC7DE,KAA0B,EAC1BC,GAA8B,EAChB;EACd,IAAM;IACJC,QAAQ,GAAG,KAAK;IAChBC,KAAK;IACLC,QAAQ;IACRC,UAAU;IACVC,YAAY;IACZC;EACF,CAAC,GAAGP,KAAK;EACT,IAAMQ,eAAe,GAAG,EAAE;EAC1B,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,KAAK,CAACM,MAAM,EAAElB,CAAC,IAAI,CAAC,EAAE;IACxC,IAAMC,IAAI,GAAGW,KAAK,CAACZ,CAAC,CAAC;IACrB,IAAMmB,cAAc,gBAClBrB,IAAA,CAACF,kBAAkB;MAEjBe,QAAQ,EAAEA,QAAS;MACnBV,IAAI,EAAEA,IAAK;MACXa,UAAU,EAAEA,UAAW;MACvBD,QAAQ,EAAEA,QAAS;MACnBE,YAAY,EAAEA,YAAa;MAC3BC,WAAW,EAAEA;IAAY,GANpBjB,OAAO,CAACC,CAAC,EAAEC,IAAI,CAOrB,CACF;IACDgB,eAAe,CAACG,IAAI,CAACD,cAAc,CAAC;EACtC;EAEA,oBACErB,IAAA;IAAKY,GAAG,EAAEA,GAAI;IAACW,SAAS,EAAC,iCAAiC;IAAAC,QAAA,EACvDL;EAAe,CACb,CAAC;AAEV,CAAC,CAAC;AAEF,eAAeV,cAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.101.1-beta.0+9899c1c8",
3
+ "version": "0.102.1-beta.0+3608b153",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -24,16 +24,16 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@astral-sh/ruff-wasm-web": "0.6.4",
27
- "@deephaven/chart": "^0.101.1-beta.0+9899c1c8",
28
- "@deephaven/components": "^0.101.1-beta.0+9899c1c8",
29
- "@deephaven/icons": "^0.101.1-beta.0+9899c1c8",
30
- "@deephaven/jsapi-bootstrap": "^0.101.1-beta.0+9899c1c8",
27
+ "@deephaven/chart": "^0.102.1-beta.0+3608b153",
28
+ "@deephaven/components": "^0.102.1-beta.0+3608b153",
29
+ "@deephaven/icons": "^0.102.1-beta.0+3608b153",
30
+ "@deephaven/jsapi-bootstrap": "^0.102.1-beta.0+3608b153",
31
31
  "@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
32
- "@deephaven/jsapi-utils": "^0.101.1-beta.0+9899c1c8",
33
- "@deephaven/log": "^0.101.1-beta.0+9899c1c8",
34
- "@deephaven/react-hooks": "^0.101.1-beta.0+9899c1c8",
35
- "@deephaven/storage": "^0.101.1-beta.0+9899c1c8",
36
- "@deephaven/utils": "^0.101.1-beta.0+9899c1c8",
32
+ "@deephaven/jsapi-utils": "^0.102.1-beta.0+3608b153",
33
+ "@deephaven/log": "^0.102.1-beta.0+3608b153",
34
+ "@deephaven/react-hooks": "^0.102.1-beta.0+3608b153",
35
+ "@deephaven/storage": "^0.102.1-beta.0+3608b153",
36
+ "@deephaven/utils": "^0.102.1-beta.0+3608b153",
37
37
  "@fortawesome/react-fontawesome": "^0.2.0",
38
38
  "classnames": "^2.3.1",
39
39
  "linkifyjs": "^4.1.0",
@@ -53,9 +53,9 @@
53
53
  "react-dom": ">=16.8.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@deephaven/jsapi-shim": "^0.101.1-beta.0+9899c1c8",
57
- "@deephaven/mocks": "^0.101.1-beta.0+9899c1c8",
58
- "@deephaven/test-utils": "^0.101.1-beta.0+9899c1c8"
56
+ "@deephaven/jsapi-shim": "^0.102.1-beta.0+3608b153",
57
+ "@deephaven/mocks": "^0.102.1-beta.0+3608b153",
58
+ "@deephaven/test-utils": "^0.102.1-beta.0+3608b153"
59
59
  },
60
60
  "files": [
61
61
  "dist"
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "9899c1c867bbd2386a4c93eeb65bc3f67ef80251"
69
+ "gitHead": "3608b153f256d0f6daf646114229e1c1c13c75fd"
70
70
  }