@deephaven/console 0.88.1-beta.0 → 0.88.1-beta.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 CHANGED
@@ -19,7 +19,10 @@ interface Settings {
19
19
  }
20
20
  interface ConsoleProps {
21
21
  dh: typeof DhType;
22
+ /** Additional children to show in the status bar */
22
23
  statusBarChildren: ReactNode;
24
+ /** Show the objects menu in the status bar. Defaults to true. */
25
+ showObjectsMenu?: boolean;
23
26
  settings: Partial<Settings>;
24
27
  focusCommandHistory: () => void;
25
28
  /**
@@ -79,6 +82,7 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
79
82
  unzip: null;
80
83
  supportsType: typeof defaultSupportsType;
81
84
  iconForType: typeof defaultIconForType;
85
+ showObjectsMenu: boolean;
82
86
  };
83
87
  static LOG_THROTTLE: number;
84
88
  /**
@@ -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
@@ -22,6 +22,7 @@ import CsvOverlay from "./csv/CsvOverlay.js";
22
22
  import CsvInputBar from "./csv/CsvInputBar.js";
23
23
  import "./Console.css";
24
24
  import ConsoleStatusBar from "./ConsoleStatusBar.js";
25
+ import ConsoleObjectsMenu from "./ConsoleObjectsMenu.js";
25
26
  import { Fragment as _Fragment } from "react/jsx-runtime";
26
27
  import { jsx as _jsx } from "react/jsx-runtime";
27
28
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -79,7 +80,7 @@ export class Console extends PureComponent {
79
80
  };
80
81
  });
81
82
  }, Console.LOG_THROTTLE));
82
- _defineProperty(this, "getObjects", memoize(objectMap => [...objectMap.values()]));
83
+ _defineProperty(this, "getObjects", memoize(objectMap => Array.from(objectMap.values())));
83
84
  _defineProperty(this, "getContextActions", memoize(actions => [...actions, {
84
85
  action: this.handleClearShortcut,
85
86
  shortcut: SHORTCUTS.CONSOLE.CLEAR
@@ -796,7 +797,8 @@ export class Console extends PureComponent {
796
797
  disabled,
797
798
  unzip,
798
799
  supportsType,
799
- iconForType
800
+ iconForType,
801
+ showObjectsMenu
800
802
  } = this.props;
801
803
  var {
802
804
  consoleHeight,
@@ -820,13 +822,14 @@ export class Console extends PureComponent {
820
822
  children: [/*#__PURE__*/_jsxs("div", {
821
823
  className: "console-pane",
822
824
  ref: this.consolePane,
823
- children: [/*#__PURE__*/_jsx(ConsoleStatusBar, {
825
+ children: [/*#__PURE__*/_jsxs(ConsoleStatusBar, {
824
826
  dh: dh,
825
827
  session: session,
826
828
  overflowActions: this.handleOverflowActions,
827
- openObject: openObject,
828
- objects: consoleMenuObjects,
829
- children: statusBarChildren
829
+ children: [statusBarChildren, showObjectsMenu === true && /*#__PURE__*/_jsx(ConsoleObjectsMenu, {
830
+ openObject: openObject,
831
+ objects: consoleMenuObjects
832
+ })]
830
833
  }), /*#__PURE__*/_jsxs("div", {
831
834
  className: "console-csv-container",
832
835
  onDragOver: CsvOverlay.handleDragOver,
@@ -896,7 +899,8 @@ _defineProperty(Console, "defaultProps", {
896
899
  disabled: false,
897
900
  unzip: null,
898
901
  supportsType: defaultSupportsType,
899
- iconForType: defaultIconForType
902
+ iconForType: defaultIconForType,
903
+ showObjectsMenu: true
900
904
  });
901
905
  _defineProperty(Console, "LOG_THROTTLE", 500);
902
906
  export default Console;
@@ -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","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","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","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 DragEvent,\n PureComponent,\n ReactElement,\n ReactNode,\n RefObject,\n} from 'react';\nimport {\n ContextActions,\n DropdownAction,\n 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 { ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n} from './command-history';\n\nconst log = Log.module('Console');\n\ninterface Settings {\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nconst DEFAULT_SETTINGS: Settings = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n} as const;\n\ninterface ConsoleProps {\n dh: typeof DhType;\n statusBarChildren: ReactNode;\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 };\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.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 ...objectMap.values(),\n ]\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 } = 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 openObject={openObject}\n objects={consoleMenuObjects}\n >\n {statusBarChildren}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {showCsvOverlay && (\n <CsvOverlay\n onCancel={this.handleCsvFileCanceled}\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\n allowZip={unzip != null}\n />\n )}\n <div\n role=\"presentation\"\n className={classNames('scroll-pane no-scroll-x', {\n 'scroll-decoration': isScrollDecorationShown,\n })}\n onScroll={this.handleScrollPaneScroll}\n ref={this.consoleHistoryScrollPane}\n >\n <ConsoleHistory\n items={consoleHistory}\n openObject={openObject}\n language={language}\n disabled={disabled}\n 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","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 DragEvent,\n PureComponent,\n ReactElement,\n ReactNode,\n RefObject,\n} from 'react';\nimport {\n ContextActions,\n DropdownAction,\n 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 { ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n} from './command-history';\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.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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"}
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import type { dh as DhType } from '@deephaven/jsapi-types';
3
+ interface ConsoleObjectsMenuProps {
4
+ openObject: (object: DhType.ide.VariableDefinition) => void;
5
+ objects: readonly DhType.ide.VariableDefinition[];
6
+ }
7
+ declare function ConsoleObjectsMenu({ openObject, objects, }: ConsoleObjectsMenuProps): ReactElement;
8
+ export default ConsoleObjectsMenu;
9
+ //# sourceMappingURL=ConsoleObjectsMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleObjectsMenu.d.ts","sourceRoot":"","sources":["../src/ConsoleObjectsMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,YAAY,EAKb,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAK3D,UAAU,uBAAuB;IAC/B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,SAAS,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;CACnD;AAID,iBAAS,kBAAkB,CAAC,EAC1B,UAAU,EACV,OAAO,GACR,EAAE,uBAAuB,GAAG,YAAY,CA8ExC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,93 @@
1
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
2
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3
+ import { Button, DropdownMenu, SearchInput } from '@deephaven/components';
4
+ import { vsGraph, vsTriangleDown } from '@deephaven/icons';
5
+ import { useDebouncedCallback } from '@deephaven/react-hooks';
6
+ import { EMPTY_FUNCTION } from '@deephaven/utils';
7
+ import { ObjectIcon } from "./common/index.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs } from "react/jsx-runtime";
10
+ var RESET_FILTER_DELAY = 5000;
11
+ function ConsoleObjectsMenu(_ref) {
12
+ var {
13
+ openObject,
14
+ objects
15
+ } = _ref;
16
+ var [filterText, setFilterText] = useState('');
17
+ var searchRef = useRef(null);
18
+ var resetFilter = useDebouncedCallback(() => {
19
+ setFilterText('');
20
+ }, RESET_FILTER_DELAY);
21
+ var handleMenuOpen = useCallback(() => {
22
+ var _searchRef$current;
23
+ resetFilter.cancel();
24
+ (_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 ? void 0 : _searchRef$current.select();
25
+ }, [resetFilter]);
26
+ var handleMenuClose = useCallback(() => {
27
+ resetFilter();
28
+ }, [resetFilter]);
29
+ var actions = useMemo(() => {
30
+ if (objects.length === 0) {
31
+ return [];
32
+ }
33
+ var searchActions = {
34
+ menuElement: /*#__PURE__*/_jsx(SearchInput, {
35
+ value: filterText,
36
+ onChange: e => {
37
+ setFilterText(e.target.value);
38
+ },
39
+ className: "console-menu",
40
+ ref: searchRef
41
+ })
42
+ };
43
+ var filteredObjects = filterText ? objects.filter(_ref2 => {
44
+ var {
45
+ title
46
+ } = _ref2;
47
+ return title != null && title.toLowerCase().includes(filterText.toLowerCase());
48
+ }) : objects;
49
+ var objectActions = filteredObjects.map(object => ({
50
+ title: object.title,
51
+ action: () => {
52
+ openObject(object);
53
+ },
54
+ icon: /*#__PURE__*/_jsx(ObjectIcon, {
55
+ type: object.type
56
+ })
57
+ }));
58
+ return [searchActions, ...objectActions];
59
+ }, [objects, filterText, openObject]);
60
+ return /*#__PURE__*/_jsx(Button, {
61
+ "aria-label": "Objects",
62
+ kind: "ghost",
63
+ disabled: objects.length === 0
64
+ // no-op: click is handled in `DropdownMenu`
65
+ ,
66
+ onClick: EMPTY_FUNCTION,
67
+ tooltip: objects.length === 0 ? 'No objects available' : 'Objects',
68
+ icon: /*#__PURE__*/_jsxs("div", {
69
+ className: "fa-md fa-layers",
70
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
71
+ mask: vsGraph,
72
+ icon: vsTriangleDown,
73
+ transform: "right-5 down-5"
74
+ }), /*#__PURE__*/_jsx(FontAwesomeIcon, {
75
+ icon: vsTriangleDown,
76
+ transform: "right-8 down-6"
77
+ })]
78
+ }),
79
+ children: /*#__PURE__*/_jsx(DropdownMenu, {
80
+ actions: actions,
81
+ onMenuOpened: handleMenuOpen,
82
+ onMenuClosed: handleMenuClose,
83
+ options: {
84
+ initialKeyboardIndex: 1
85
+ },
86
+ popperOptions: {
87
+ placement: 'bottom-end'
88
+ }
89
+ })
90
+ });
91
+ }
92
+ export default ConsoleObjectsMenu;
93
+ //# sourceMappingURL=ConsoleObjectsMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleObjectsMenu.js","names":["React","useCallback","useMemo","useRef","useState","FontAwesomeIcon","Button","DropdownMenu","SearchInput","vsGraph","vsTriangleDown","useDebouncedCallback","EMPTY_FUNCTION","ObjectIcon","jsx","_jsx","jsxs","_jsxs","RESET_FILTER_DELAY","ConsoleObjectsMenu","_ref","openObject","objects","filterText","setFilterText","searchRef","resetFilter","handleMenuOpen","_searchRef$current","cancel","current","select","handleMenuClose","actions","length","searchActions","menuElement","value","onChange","e","target","className","ref","filteredObjects","filter","_ref2","title","toLowerCase","includes","objectActions","map","object","action","icon","type","kind","disabled","onClick","tooltip","children","mask","transform","onMenuOpened","onMenuClosed","options","initialKeyboardIndex","popperOptions","placement"],"sources":["../src/ConsoleObjectsMenu.tsx"],"sourcesContent":["import React, {\n ReactElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n DropdownActions,\n DropdownMenu,\n SearchInput,\n} from '@deephaven/components';\nimport { vsGraph, vsTriangleDown } from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { useDebouncedCallback } from '@deephaven/react-hooks';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { ObjectIcon } from './common';\n\ninterface ConsoleObjectsMenuProps {\n openObject: (object: DhType.ide.VariableDefinition) => void;\n objects: readonly DhType.ide.VariableDefinition[];\n}\n\nconst RESET_FILTER_DELAY = 5000;\n\nfunction ConsoleObjectsMenu({\n openObject,\n objects,\n}: ConsoleObjectsMenuProps): ReactElement {\n const [filterText, setFilterText] = useState('');\n const searchRef = useRef<SearchInput>(null);\n\n const resetFilter = useDebouncedCallback(() => {\n setFilterText('');\n }, RESET_FILTER_DELAY);\n\n const handleMenuOpen = useCallback(() => {\n resetFilter.cancel();\n searchRef.current?.select();\n }, [resetFilter]);\n\n const handleMenuClose = useCallback(() => {\n resetFilter();\n }, [resetFilter]);\n\n const actions: DropdownActions = useMemo(() => {\n if (objects.length === 0) {\n return [];\n }\n const searchActions = {\n menuElement: (\n <SearchInput\n value={filterText}\n onChange={e => {\n setFilterText(e.target.value);\n }}\n className=\"console-menu\"\n ref={searchRef}\n />\n ),\n };\n const filteredObjects = filterText\n ? objects.filter(\n ({ title }) =>\n title != null &&\n title.toLowerCase().includes(filterText.toLowerCase())\n )\n : objects;\n const objectActions = filteredObjects.map(object => ({\n title: object.title,\n action: () => {\n openObject(object);\n },\n icon: <ObjectIcon type={object.type} />,\n }));\n return [searchActions, ...objectActions];\n }, [objects, filterText, openObject]);\n\n return (\n <Button\n aria-label=\"Objects\"\n kind=\"ghost\"\n disabled={objects.length === 0}\n // no-op: click is handled in `DropdownMenu`\n onClick={EMPTY_FUNCTION}\n tooltip={objects.length === 0 ? 'No objects available' : 'Objects'}\n icon={\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={vsGraph}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon icon={vsTriangleDown} transform=\"right-8 down-6\" />\n </div>\n }\n >\n <DropdownMenu\n actions={actions}\n onMenuOpened={handleMenuOpen}\n onMenuClosed={handleMenuClose}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={{ placement: 'bottom-end' }}\n />\n </Button>\n );\n}\n\nexport default ConsoleObjectsMenu;\n"],"mappings":"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"}
@@ -1,34 +1,13 @@
1
- import { PureComponent, ReactElement, ReactNode } from 'react';
1
+ import { ReactElement, ReactNode } from 'react';
2
2
  import type { dh as DhType } from '@deephaven/jsapi-types';
3
- import { DropdownAction } from '@deephaven/components';
4
- import { Pending } from '@deephaven/utils';
3
+ import { DropdownActions } from '@deephaven/components';
5
4
  import './ConsoleStatusBar.scss';
6
5
  interface ConsoleStatusBarProps {
7
- children: ReactNode;
6
+ children?: ReactNode;
8
7
  dh: typeof DhType;
9
8
  session: DhType.IdeSession;
10
- openObject: (object: DhType.ide.VariableDefinition) => void;
11
- objects: DhType.ide.VariableDefinition[];
12
- overflowActions: () => DropdownAction[];
13
- }
14
- interface ConsoleStatusBarState {
15
- isDisconnected: boolean;
16
- isCommandRunning: boolean;
17
- }
18
- export declare class ConsoleStatusBar extends PureComponent<ConsoleStatusBarProps, ConsoleStatusBarState> {
19
- static defaultProps: {
20
- children: null;
21
- };
22
- constructor(props: ConsoleStatusBarProps);
23
- componentDidMount(): void;
24
- componentWillUnmount(): void;
25
- pending: Pending;
26
- startListening(): void;
27
- stopListening(): void;
28
- cancelPendingPromises(): void;
29
- handleCommandStarted(event: CustomEvent): void;
30
- handleCommandCompleted(error: unknown): void;
31
- render(): ReactElement;
9
+ overflowActions?: DropdownActions;
32
10
  }
11
+ declare function ConsoleStatusBar({ children, dh, session, overflowActions, }: ConsoleStatusBarProps): ReactElement;
33
12
  export default ConsoleStatusBar;
34
13
  //# sourceMappingURL=ConsoleStatusBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleStatusBar.d.ts","sourceRoot":"","sources":["../src/ConsoleStatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAW,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAwB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,yBAAyB,CAAC;AAEjC,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACzC,eAAe,EAAE,MAAM,cAAc,EAAE,CAAC;CACzC;AAED,UAAU,qBAAqB;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CACjD,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;gBAEU,KAAK,EAAE,qBAAqB;IAcxC,iBAAiB,IAAI,IAAI;IAIzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,EAAE,OAAO,CAAC;IAEjB,cAAc,IAAI,IAAI;IAQtB,aAAa,IAAI,IAAI;IAQrB,qBAAqB,IAAI,IAAI;IAI7B,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAa9C,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAS5C,MAAM,IAAI,YAAY;CAoCvB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ConsoleStatusBar.d.ts","sourceRoot":"","sources":["../src/ConsoleStatusBar.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAEL,eAAe,EAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,yBAAyB,CAAC;AAKjC,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,EAAE,EACF,OAAO,EACP,eAAe,GAChB,EAAE,qBAAqB,GAAG,YAAY,CAkEtC;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,112 +1,78 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import React, { PureComponent } from 'react';
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
3
+ import React, { useCallback, useEffect, useState } from 'react';
5
4
  import classNames from 'classnames';
6
- import { Tooltip } from '@deephaven/components';
7
- import { CanceledPromiseError, Pending } from '@deephaven/utils';
8
- import ConsoleMenu from "./ConsoleMenu.js";
5
+ import { vsKebabVertical } from '@deephaven/icons';
6
+ import { Button, DropdownMenu, Tooltip } from '@deephaven/components';
9
7
  import "./ConsoleStatusBar.css";
8
+ import { EMPTY_FUNCTION } from '@deephaven/utils';
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
11
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
- export class ConsoleStatusBar extends PureComponent {
13
- constructor(props) {
14
- super(props);
15
- _defineProperty(this, "pending", void 0);
16
- this.handleCommandStarted = this.handleCommandStarted.bind(this);
17
- this.handleCommandCompleted = this.handleCommandCompleted.bind(this);
18
- this.pending = new Pending();
19
- this.state = {
20
- isDisconnected: false,
21
- isCommandRunning: false
22
- };
23
- }
24
- componentDidMount() {
25
- this.startListening();
26
- }
27
- componentWillUnmount() {
28
- this.stopListening();
29
- this.cancelPendingPromises();
30
- }
31
- startListening() {
32
- var {
33
- dh,
34
- session
35
- } = this.props;
36
- session.addEventListener(dh.IdeSession.EVENT_COMMANDSTARTED, this.handleCommandStarted);
37
- }
38
- stopListening() {
39
- var {
40
- dh,
41
- session
42
- } = this.props;
43
- session.removeEventListener(dh.IdeSession.EVENT_COMMANDSTARTED, this.handleCommandStarted);
44
- }
45
- cancelPendingPromises() {
46
- this.pending.cancel();
47
- }
48
- handleCommandStarted(event) {
49
- var {
50
- result
51
- } = event.detail;
52
- this.pending.add(result).then(() => this.handleCommandCompleted(null)).catch(error => this.handleCommandCompleted(error));
53
- this.setState({
54
- isCommandRunning: true
11
+ var POPPER_OPTIONS = {
12
+ placement: 'bottom-end'
13
+ };
14
+ function ConsoleStatusBar(_ref) {
15
+ var {
16
+ children,
17
+ dh,
18
+ session,
19
+ overflowActions
20
+ } = _ref;
21
+ var [pendingCommandCount, setPendingCommandCount] = useState(0);
22
+ var handleCommandStarted = useCallback( /*#__PURE__*/function () {
23
+ var _ref2 = _asyncToGenerator(function* (event) {
24
+ setPendingCommandCount(count => count + 1);
25
+ try {
26
+ var {
27
+ result
28
+ } = event.detail;
29
+ yield result;
30
+ } catch (error) {
31
+ // No-op, fall through
32
+ }
33
+ setPendingCommandCount(count => count - 1);
55
34
  });
35
+ return function (_x) {
36
+ return _ref2.apply(this, arguments);
37
+ };
38
+ }(), []);
39
+ useEffect(function startListening() {
40
+ return session.addEventListener(dh.IdeSession.EVENT_COMMANDSTARTED, handleCommandStarted);
41
+ }, [dh, handleCommandStarted, session]);
42
+ var statusIconClass = null;
43
+ var tooltipText = null;
44
+ if (pendingCommandCount > 0) {
45
+ // Connected, Pending
46
+ statusIconClass = 'console-status-icon-pending';
47
+ tooltipText = 'Worker is busy';
48
+ } else {
49
+ // Connected, Idle
50
+ statusIconClass = 'console-status-icon-idle';
51
+ tooltipText = 'Worker is idle';
56
52
  }
57
- handleCommandCompleted(error) {
58
- // Don't update state if the promise was canceled
59
- if (!(error instanceof CanceledPromiseError)) {
60
- this.setState({
61
- isCommandRunning: this.pending.pending.length > 0
62
- });
63
- }
64
- }
65
- render() {
66
- var {
67
- children,
68
- dh,
69
- openObject,
70
- overflowActions,
71
- objects
72
- } = this.props;
73
- var {
74
- isDisconnected,
75
- isCommandRunning
76
- } = this.state;
77
- var statusIconClass = null;
78
- var tooltipText = null;
79
- if (isDisconnected) {
80
- statusIconClass = 'console-status-icon-disconnected';
81
- tooltipText = 'Worker is disconnected';
82
- } else if (isCommandRunning) {
83
- // Connected, Pending
84
- statusIconClass = 'console-status-icon-pending';
85
- tooltipText = 'Worker is busy';
86
- } else {
87
- // Connected, Idle
88
- statusIconClass = 'console-status-icon-idle';
89
- tooltipText = 'Worker is idle';
90
- }
91
- return /*#__PURE__*/_jsxs("div", {
92
- className: "console-pane-status-bar",
93
- children: [/*#__PURE__*/_jsxs("div", {
94
- children: [/*#__PURE__*/_jsx("div", {
95
- className: classNames('console-status-icon', statusIconClass)
96
- }), /*#__PURE__*/_jsx(Tooltip, {
97
- children: tooltipText
98
- })]
99
- }), children, /*#__PURE__*/_jsx(ConsoleMenu, {
100
- dh: dh,
101
- overflowActions: overflowActions,
102
- openObject: openObject,
103
- objects: objects
53
+ var hasActions = overflowActions != null && (!Array.isArray(overflowActions) || overflowActions.length > 0);
54
+ return /*#__PURE__*/_jsxs("div", {
55
+ className: "console-pane-status-bar",
56
+ children: [/*#__PURE__*/_jsxs("div", {
57
+ children: [/*#__PURE__*/_jsx("div", {
58
+ className: classNames('console-status-icon', statusIconClass)
59
+ }), /*#__PURE__*/_jsx(Tooltip, {
60
+ children: tooltipText
104
61
  })]
105
- });
106
- }
62
+ }), children, hasActions && /*#__PURE__*/_jsx(Button, {
63
+ kind: "ghost",
64
+ icon: vsKebabVertical,
65
+ tooltip: "More Actions...",
66
+ "aria-label": "More Actions..."
67
+ // no-op: click is handled in `DropdownMenu`
68
+ ,
69
+ onClick: EMPTY_FUNCTION,
70
+ children: /*#__PURE__*/_jsx(DropdownMenu, {
71
+ actions: overflowActions,
72
+ popperOptions: POPPER_OPTIONS
73
+ })
74
+ })]
75
+ });
107
76
  }
108
- _defineProperty(ConsoleStatusBar, "defaultProps", {
109
- children: null
110
- });
111
77
  export default ConsoleStatusBar;
112
78
  //# sourceMappingURL=ConsoleStatusBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleStatusBar.js","names":["React","PureComponent","classNames","Tooltip","CanceledPromiseError","Pending","ConsoleMenu","jsx","_jsx","jsxs","_jsxs","ConsoleStatusBar","constructor","props","_defineProperty","handleCommandStarted","bind","handleCommandCompleted","pending","state","isDisconnected","isCommandRunning","componentDidMount","startListening","componentWillUnmount","stopListening","cancelPendingPromises","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","removeEventListener","cancel","event","result","detail","add","then","catch","error","setState","length","render","children","openObject","overflowActions","objects","statusIconClass","tooltipText","className"],"sources":["../src/ConsoleStatusBar.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { DropdownAction, Tooltip } from '@deephaven/components';\nimport { CanceledPromiseError, Pending } from '@deephaven/utils';\nimport ConsoleMenu from './ConsoleMenu';\nimport './ConsoleStatusBar.scss';\n\ninterface ConsoleStatusBarProps {\n children: ReactNode;\n dh: typeof DhType;\n session: DhType.IdeSession;\n openObject: (object: DhType.ide.VariableDefinition) => void;\n objects: DhType.ide.VariableDefinition[];\n overflowActions: () => DropdownAction[];\n}\n\ninterface ConsoleStatusBarState {\n isDisconnected: boolean;\n isCommandRunning: boolean;\n}\n\nexport class ConsoleStatusBar extends PureComponent<\n ConsoleStatusBarProps,\n ConsoleStatusBarState\n> {\n static defaultProps = {\n children: null,\n };\n\n constructor(props: ConsoleStatusBarProps) {\n super(props);\n\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandCompleted = this.handleCommandCompleted.bind(this);\n\n this.pending = new Pending();\n\n this.state = {\n isDisconnected: false,\n isCommandRunning: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.cancelPendingPromises();\n }\n\n pending: Pending;\n\n startListening(): void {\n const { dh, session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n stopListening(): void {\n const { dh, session } = this.props;\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n }\n\n cancelPendingPromises(): void {\n this.pending.cancel();\n }\n\n handleCommandStarted(event: CustomEvent): void {\n const { result } = event.detail;\n\n this.pending\n .add(result)\n .then(() => this.handleCommandCompleted(null))\n .catch(error => this.handleCommandCompleted(error));\n\n this.setState({\n isCommandRunning: true,\n });\n }\n\n handleCommandCompleted(error: unknown): void {\n // Don't update state if the promise was canceled\n if (!(error instanceof CanceledPromiseError)) {\n this.setState({\n isCommandRunning: this.pending.pending.length > 0,\n });\n }\n }\n\n render(): ReactElement {\n const { children, dh, openObject, overflowActions, objects } = this.props;\n const { isDisconnected, isCommandRunning } = this.state;\n\n let statusIconClass = null;\n let tooltipText = null;\n\n if (isDisconnected) {\n statusIconClass = 'console-status-icon-disconnected';\n tooltipText = 'Worker is disconnected';\n } else if (isCommandRunning) {\n // Connected, Pending\n statusIconClass = 'console-status-icon-pending';\n tooltipText = 'Worker is busy';\n } else {\n // Connected, Idle\n statusIconClass = 'console-status-icon-idle';\n tooltipText = 'Worker is idle';\n }\n\n return (\n <div className=\"console-pane-status-bar\">\n <div>\n <div className={classNames('console-status-icon', statusIconClass)} />\n <Tooltip>{tooltipText}</Tooltip>\n </div>\n {children}\n <ConsoleMenu\n dh={dh}\n overflowActions={overflowActions}\n openObject={openObject}\n objects={objects}\n />\n </div>\n );\n }\n}\n\nexport default ConsoleStatusBar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleStatusBar.js","names":["React","useCallback","useEffect","useState","classNames","vsKebabVertical","Button","DropdownMenu","Tooltip","EMPTY_FUNCTION","jsx","_jsx","jsxs","_jsxs","POPPER_OPTIONS","placement","ConsoleStatusBar","_ref","children","dh","session","overflowActions","pendingCommandCount","setPendingCommandCount","handleCommandStarted","_ref2","_asyncToGenerator","event","count","result","detail","error","_x","apply","arguments","startListening","addEventListener","IdeSession","EVENT_COMMANDSTARTED","statusIconClass","tooltipText","hasActions","Array","isArray","length","className","kind","icon","tooltip","onClick","actions","popperOptions"],"sources":["../src/ConsoleStatusBar.tsx"],"sourcesContent":["import React, {\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { vsKebabVertical } from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n Button,\n DropdownActions,\n DropdownMenu,\n PopperOptions,\n Tooltip,\n} from '@deephaven/components';\nimport './ConsoleStatusBar.scss';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\n\nconst POPPER_OPTIONS: PopperOptions = { placement: 'bottom-end' };\n\ninterface ConsoleStatusBarProps {\n children?: ReactNode;\n dh: typeof DhType;\n session: DhType.IdeSession;\n overflowActions?: DropdownActions;\n}\n\nfunction ConsoleStatusBar({\n children,\n dh,\n session,\n overflowActions,\n}: ConsoleStatusBarProps): ReactElement {\n const [pendingCommandCount, setPendingCommandCount] = useState(0);\n\n const handleCommandStarted = useCallback(async (event: CustomEvent) => {\n setPendingCommandCount(count => count + 1);\n\n try {\n const { result } = event.detail;\n await result;\n } catch (error) {\n // No-op, fall through\n }\n\n setPendingCommandCount(count => count - 1);\n }, []);\n\n useEffect(\n function startListening() {\n return session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n handleCommandStarted\n );\n },\n [dh, handleCommandStarted, session]\n );\n\n let statusIconClass = null;\n let tooltipText = null;\n if (pendingCommandCount > 0) {\n // Connected, Pending\n statusIconClass = 'console-status-icon-pending';\n tooltipText = 'Worker is busy';\n } else {\n // Connected, Idle\n statusIconClass = 'console-status-icon-idle';\n tooltipText = 'Worker is idle';\n }\n\n const hasActions =\n overflowActions != null &&\n (!Array.isArray(overflowActions) || overflowActions.length > 0);\n\n return (\n <div className=\"console-pane-status-bar\">\n <div>\n <div className={classNames('console-status-icon', statusIconClass)} />\n <Tooltip>{tooltipText}</Tooltip>\n </div>\n {children}\n {hasActions && (\n <Button\n kind=\"ghost\"\n icon={vsKebabVertical}\n tooltip=\"More Actions...\"\n aria-label=\"More Actions...\"\n // no-op: click is handled in `DropdownMenu`\n onClick={EMPTY_FUNCTION}\n >\n <DropdownMenu\n actions={overflowActions}\n popperOptions={POPPER_OPTIONS}\n />\n </Button>\n )}\n </div>\n );\n}\n\nexport default ConsoleStatusBar;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAGVC,WAAW,EACXC,SAAS,EACTC,QAAQ,QACH,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,kBAAkB;AAElD,SACEC,MAAM,EAENC,YAAY,EAEZC,OAAO,QACF,uBAAuB;AAAC;AAE/B,SAASC,cAAc,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAElD,IAAMC,cAA6B,GAAG;EAAEC,SAAS,EAAE;AAAa,CAAC;AASjE,SAASC,gBAAgBA,CAAAC,IAAA,EAKe;EAAA,IALd;IACxBC,QAAQ;IACRC,EAAE;IACFC,OAAO;IACPC;EACqB,CAAC,GAAAJ,IAAA;EACtB,IAAM,CAACK,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGpB,QAAQ,CAAC,CAAC,CAAC;EAEjE,IAAMqB,oBAAoB,GAAGvB,WAAW;IAAA,IAAAwB,KAAA,GAAAC,iBAAA,CAAC,WAAOC,KAAkB,EAAK;MACrEJ,sBAAsB,CAACK,KAAK,IAAIA,KAAK,GAAG,CAAC,CAAC;MAE1C,IAAI;QACF,IAAM;UAAEC;QAAO,CAAC,GAAGF,KAAK,CAACG,MAAM;QAC/B,MAAMD,MAAM;MACd,CAAC,CAAC,OAAOE,KAAK,EAAE;QACd;MAAA;MAGFR,sBAAsB,CAACK,KAAK,IAAIA,KAAK,GAAG,CAAC,CAAC;IAC5C,CAAC;IAAA,iBAAAI,EAAA;MAAA,OAAAP,KAAA,CAAAQ,KAAA,OAAAC,SAAA;IAAA;EAAA,KAAE,EAAE,CAAC;EAENhC,SAAS,CACP,SAASiC,cAAcA,CAAA,EAAG;IACxB,OAAOf,OAAO,CAACgB,gBAAgB,CAC7BjB,EAAE,CAACkB,UAAU,CAACC,oBAAoB,EAClCd,oBACF,CAAC;EACH,CAAC,EACD,CAACL,EAAE,EAAEK,oBAAoB,EAAEJ,OAAO,CACpC,CAAC;EAED,IAAImB,eAAe,GAAG,IAAI;EAC1B,IAAIC,WAAW,GAAG,IAAI;EACtB,IAAIlB,mBAAmB,GAAG,CAAC,EAAE;IAC3B;IACAiB,eAAe,GAAG,6BAA6B;IAC/CC,WAAW,GAAG,gBAAgB;EAChC,CAAC,MAAM;IACL;IACAD,eAAe,GAAG,0BAA0B;IAC5CC,WAAW,GAAG,gBAAgB;EAChC;EAEA,IAAMC,UAAU,GACdpB,eAAe,IAAI,IAAI,KACtB,CAACqB,KAAK,CAACC,OAAO,CAACtB,eAAe,CAAC,IAAIA,eAAe,CAACuB,MAAM,GAAG,CAAC,CAAC;EAEjE,oBACE/B,KAAA;IAAKgC,SAAS,EAAC,yBAAyB;IAAA3B,QAAA,gBACtCL,KAAA;MAAAK,QAAA,gBACEP,IAAA;QAAKkC,SAAS,EAAEzC,UAAU,CAAC,qBAAqB,EAAEmC,eAAe;MAAE,CAAE,CAAC,eACtE5B,IAAA,CAACH,OAAO;QAAAU,QAAA,EAAEsB;MAAW,CAAU,CAAC;IAAA,CAC7B,CAAC,EACLtB,QAAQ,EACRuB,UAAU,iBACT9B,IAAA,CAACL,MAAM;MACLwC,IAAI,EAAC,OAAO;MACZC,IAAI,EAAE1C,eAAgB;MACtB2C,OAAO,EAAC,iBAAiB;MACzB,cAAW;MACX;MAAA;MACAC,OAAO,EAAExC,cAAe;MAAAS,QAAA,eAExBP,IAAA,CAACJ,YAAY;QACX2C,OAAO,EAAE7B,eAAgB;QACzB8B,aAAa,EAAErC;MAAe,CAC/B;IAAC,CACI,CACT;EAAA,CACE,CAAC;AAEV;AAEA,eAAeE,gBAAgB"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,6 @@ import Console from './Console';
2
2
  export default Console;
3
3
  export { Console };
4
4
  export { default as ConsoleInput } from './ConsoleInput';
5
- export { default as ConsoleMenu } from './ConsoleMenu';
6
5
  export { default as SHORTCUTS } from './ConsoleShortcuts';
7
6
  export { default as ConsoleStatusBar } from './ConsoleStatusBar';
8
7
  export * from './monaco/MonacoThemeProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@ import Console from "./Console.js";
2
2
  export default Console;
3
3
  export { Console };
4
4
  export { default as ConsoleInput } from "./ConsoleInput.js";
5
- export { default as ConsoleMenu } from "./ConsoleMenu.js";
6
5
  export { default as SHORTCUTS } from "./ConsoleShortcuts.js";
7
6
  export { default as ConsoleStatusBar } from "./ConsoleStatusBar.js";
8
7
  export * from "./monaco/MonacoThemeProvider.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Console","default","ConsoleInput","ConsoleMenu","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage","NewTableColumnTypes"],"sources":["../src/index.ts"],"sourcesContent":["import Console from './Console';\n\nexport default Console;\nexport { Console };\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as ConsoleMenu } from './ConsoleMenu';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport * from './monaco/MonacoThemeProvider';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\n"],"mappings":"OAAOA,OAAO;AAEd,eAAeA,OAAO;AACtB,SAASA,OAAO;AAAG,SACVC,OAAO,IAAIC,YAAY;AAAA,SACvBD,OAAO,IAAIE,WAAW;AAAA,SACtBF,OAAO,IAAIG,SAAS;AAAA,SACpBH,OAAO,IAAII,gBAAgB;AAAA;AAAA,SAE3BJ,OAAO,IAAIK,WAAW;AAAA,SACtBL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,iBAAiB;AAAA;AAAA;AAAA;AAAA,SAI5BR,OAAO,IAAIS,OAAO;AAAA,SAClBT,OAAO,IAAIU,SAAS;AAAA,SACpBV,OAAO,IAAIW,mBAAmB"}
1
+ {"version":3,"file":"index.js","names":["Console","default","ConsoleInput","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage","NewTableColumnTypes"],"sources":["../src/index.ts"],"sourcesContent":["import Console from './Console';\n\nexport default Console;\nexport { Console };\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport * from './monaco/MonacoThemeProvider';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\n"],"mappings":"OAAOA,OAAO;AAEd,eAAeA,OAAO;AACtB,SAASA,OAAO;AAAG,SACVC,OAAO,IAAIC,YAAY;AAAA,SACvBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,gBAAgB;AAAA;AAAA,SAE3BH,OAAO,IAAII,WAAW;AAAA,SACtBJ,OAAO,IAAIK,MAAM;AAAA,SACjBL,OAAO,IAAIM,YAAY;AAAA,SACvBN,OAAO,IAAIO,iBAAiB;AAAA;AAAA;AAAA;AAAA,SAI5BP,OAAO,IAAIQ,OAAO;AAAA,SAClBR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,mBAAmB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.88.1-beta.0+a257296f",
3
+ "version": "0.88.1-beta.3+2e59b92b",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,15 +23,15 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/chart": "^0.88.1-beta.0+a257296f",
27
- "@deephaven/components": "^0.88.1-beta.0+a257296f",
28
- "@deephaven/icons": "^0.88.1-beta.0+a257296f",
29
- "@deephaven/jsapi-bootstrap": "^0.88.1-beta.0+a257296f",
26
+ "@deephaven/chart": "^0.88.1-beta.3+2e59b92b",
27
+ "@deephaven/components": "^0.88.1-beta.3+2e59b92b",
28
+ "@deephaven/icons": "^0.88.1-beta.3+2e59b92b",
29
+ "@deephaven/jsapi-bootstrap": "^0.88.1-beta.3+2e59b92b",
30
30
  "@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
31
- "@deephaven/log": "^0.88.1-beta.0+a257296f",
32
- "@deephaven/react-hooks": "^0.88.1-beta.0+a257296f",
33
- "@deephaven/storage": "^0.88.1-beta.0+a257296f",
34
- "@deephaven/utils": "^0.88.1-beta.0+a257296f",
31
+ "@deephaven/log": "^0.88.1-beta.3+2e59b92b",
32
+ "@deephaven/react-hooks": "^0.88.1-beta.3+2e59b92b",
33
+ "@deephaven/storage": "^0.88.1-beta.3+2e59b92b",
34
+ "@deephaven/utils": "^0.88.1-beta.3+2e59b92b",
35
35
  "@fortawesome/react-fontawesome": "^0.2.0",
36
36
  "classnames": "^2.3.1",
37
37
  "linkifyjs": "^4.1.0",
@@ -51,8 +51,8 @@
51
51
  "react-dom": ">=16.8.0"
52
52
  },
53
53
  "devDependencies": {
54
- "@deephaven/jsapi-shim": "^0.88.1-beta.0+a257296f",
55
- "@deephaven/mocks": "^0.88.1-beta.0+a257296f"
54
+ "@deephaven/jsapi-shim": "^0.88.1-beta.3+2e59b92b",
55
+ "@deephaven/mocks": "^0.88.1-beta.3+2e59b92b"
56
56
  },
57
57
  "files": [
58
58
  "dist"
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "a257296f1433d158439e6ea1b341c81551a38c11"
66
+ "gitHead": "2e59b92b8ceac211c1d27931513e57136a9fa42c"
67
67
  }
@@ -1,30 +0,0 @@
1
- import { ChangeEvent, ChangeEventHandler, PureComponent, ReactElement } from 'react';
2
- import { DropdownAction, SearchInput } from '@deephaven/components';
3
- import type { dh as DhType } from '@deephaven/jsapi-types';
4
- interface ConsoleMenuProps {
5
- dh: typeof DhType;
6
- openObject: (object: DhType.ide.VariableDefinition) => void;
7
- objects: DhType.ide.VariableDefinition[];
8
- overflowActions: () => DropdownAction[];
9
- }
10
- interface ConsoleMenuState {
11
- tableFilterText: string;
12
- widgetFilterText: string;
13
- }
14
- declare class ConsoleMenu extends PureComponent<ConsoleMenuProps, ConsoleMenuState> {
15
- static makeItemActions(objects: DhType.ide.VariableDefinition[], filterText: string, refCallback: (ref: SearchInput) => void, changeCallback: ChangeEventHandler<HTMLInputElement>, openCallback: (object: DhType.ide.VariableDefinition) => void): DropdownAction[];
16
- constructor(props: ConsoleMenuProps);
17
- tableSearchField?: SearchInput;
18
- widgetSearchField?: SearchInput;
19
- makeTableActions: (objects: DhType.ide.VariableDefinition[], filterText: string, openObject: (object: DhType.ide.VariableDefinition) => void) => DropdownAction[];
20
- makeWidgetActions: (objects: DhType.ide.VariableDefinition[], filterText: string, openObject: (object: DhType.ide.VariableDefinition) => void) => DropdownAction[];
21
- handleTableFilterChange(e: ChangeEvent<HTMLInputElement>): void;
22
- handleTableMenuClosed(): void;
23
- handleTableMenuOpened(): void;
24
- handleWidgetFilterChange(e: ChangeEvent<HTMLInputElement>): void;
25
- handleWidgetMenuClosed(): void;
26
- handleWidgetMenuOpened(): void;
27
- render(): ReactElement;
28
- }
29
- export default ConsoleMenu;
30
- //# sourceMappingURL=ConsoleMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsoleMenu.d.ts","sourceRoot":"","sources":["../src/ConsoleMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACb,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,cAAc,EAGd,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAM3D,UAAU,gBAAgB;IACxB,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACzC,eAAe,EAAE,MAAM,cAAc,EAAE,CAAC;CACzC;AAED,UAAU,gBAAgB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,cAAM,WAAY,SAAQ,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzE,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,EACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,EACvC,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACpD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,GAC5D,cAAc,EAAE;gBAiCP,KAAK,EAAE,gBAAgB;IAgBnC,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,gBAAgB,YAEH,OAAO,GAAG,CAAC,kBAAkB,EAAE,cAC5B,MAAM,uBACG,OAAO,GAAG,CAAC,kBAAkB,KAAK,IAAI,KAC1D,cAAc,EAAE,CAenB;IAEF,iBAAiB,YAEJ,OAAO,GAAG,CAAC,kBAAkB,EAAE,cAC5B,MAAM,uBACG,OAAO,GAAG,CAAC,kBAAkB,KAAK,IAAI,KAC1D,cAAc,EAAE,CAenB;IAEF,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAK/D,qBAAqB,IAAI,IAAI;IAI7B,qBAAqB,IAAI,IAAI;IAI7B,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAKhE,sBAAsB,IAAI,IAAI;IAI9B,sBAAsB,IAAI,IAAI;IAI9B,MAAM,IAAI,YAAY;CAmGvB;AAED,eAAe,WAAW,CAAC"}
@@ -1,199 +0,0 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import React, { PureComponent } from 'react';
5
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
6
- import { Button, DropdownMenu, SearchInput } from '@deephaven/components';
7
- import { dhTable, vsGraph, vsKebabVertical, vsTriangleDown } from '@deephaven/icons';
8
- import Log from '@deephaven/log';
9
- import memoize from 'memoize-one';
10
- import ConsoleUtils from "./common/ConsoleUtils.js";
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Fragment as _Fragment } from "react/jsx-runtime";
14
- var log = Log.module('ConsoleMenu');
15
- class ConsoleMenu extends PureComponent {
16
- static makeItemActions(objects, filterText, refCallback, changeCallback, openCallback) {
17
- if (objects.length === 0) {
18
- return [];
19
- }
20
- var searchAction = {
21
- menuElement: /*#__PURE__*/_jsx(SearchInput, {
22
- value: filterText,
23
- onChange: changeCallback,
24
- className: "console-menu",
25
- ref: refCallback
26
- })
27
- };
28
- var filteredItems = objects;
29
- if (filterText) {
30
- filteredItems = filteredItems.filter(_ref => {
31
- var {
32
- title
33
- } = _ref;
34
- return title != null && title.toLowerCase().indexOf(filterText.toLowerCase()) >= 0;
35
- });
36
- }
37
- var openActions = filteredItems.map(object => ({
38
- title: object.title,
39
- action: () => {
40
- openCallback(object);
41
- }
42
- }));
43
- return [searchAction, ...openActions];
44
- }
45
- constructor(props) {
46
- super(props);
47
- _defineProperty(this, "tableSearchField", void 0);
48
- _defineProperty(this, "widgetSearchField", void 0);
49
- _defineProperty(this, "makeTableActions", memoize((objects, filterText, openObject) => {
50
- var {
51
- dh
52
- } = this.props;
53
- var tables = objects.filter(object => ConsoleUtils.isTableType(dh, object.type));
54
- return ConsoleMenu.makeItemActions(tables, filterText, searchField => {
55
- this.tableSearchField = searchField;
56
- }, this.handleTableFilterChange, openObject);
57
- }));
58
- _defineProperty(this, "makeWidgetActions", memoize((objects, filterText, openObject) => {
59
- var {
60
- dh
61
- } = this.props;
62
- var widgets = objects.filter(object => ConsoleUtils.isWidgetType(dh, object.type));
63
- return ConsoleMenu.makeItemActions(widgets, filterText, searchField => {
64
- this.widgetSearchField = searchField;
65
- }, this.handleWidgetFilterChange, openObject);
66
- }));
67
- this.handleTableFilterChange = this.handleTableFilterChange.bind(this);
68
- this.handleTableMenuClosed = this.handleTableMenuClosed.bind(this);
69
- this.handleTableMenuOpened = this.handleTableMenuOpened.bind(this);
70
- this.handleWidgetFilterChange = this.handleWidgetFilterChange.bind(this);
71
- this.handleWidgetMenuClosed = this.handleWidgetMenuClosed.bind(this);
72
- this.handleWidgetMenuOpened = this.handleWidgetMenuOpened.bind(this);
73
- this.state = {
74
- tableFilterText: '',
75
- widgetFilterText: ''
76
- };
77
- }
78
- handleTableFilterChange(e) {
79
- log.debug('filtering tables...');
80
- this.setState({
81
- tableFilterText: e.target.value
82
- });
83
- }
84
- handleTableMenuClosed() {
85
- this.setState({
86
- tableFilterText: ''
87
- });
88
- }
89
- handleTableMenuOpened() {
90
- var _this$tableSearchFiel;
91
- (_this$tableSearchFiel = this.tableSearchField) === null || _this$tableSearchFiel === void 0 ? void 0 : _this$tableSearchFiel.focus();
92
- }
93
- handleWidgetFilterChange(e) {
94
- log.debug('filtering widgets...');
95
- this.setState({
96
- widgetFilterText: e.target.value
97
- });
98
- }
99
- handleWidgetMenuClosed() {
100
- this.setState({
101
- widgetFilterText: ''
102
- });
103
- }
104
- handleWidgetMenuOpened() {
105
- var _this$widgetSearchFie;
106
- (_this$widgetSearchFie = this.widgetSearchField) === null || _this$widgetSearchFie === void 0 ? void 0 : _this$widgetSearchFie.focus();
107
- }
108
- render() {
109
- var {
110
- overflowActions,
111
- objects,
112
- openObject
113
- } = this.props;
114
- var {
115
- tableFilterText,
116
- widgetFilterText
117
- } = this.state;
118
- var tableActions = this.makeTableActions(objects, tableFilterText, openObject);
119
- var widgetActions = this.makeWidgetActions(objects, widgetFilterText, openObject);
120
- var popperOptions = {
121
- placement: 'bottom-end'
122
- };
123
- var disableTableActions = tableActions.length === 0;
124
- var disableWidgetActions = widgetActions.length === 0;
125
- return /*#__PURE__*/_jsxs(_Fragment, {
126
- children: [/*#__PURE__*/_jsx(Button, {
127
- "aria-label": "Tables",
128
- kind: "ghost",
129
- disabled: disableTableActions,
130
- onClick: () => {
131
- // no-op: click is handled in `DropdownMenu`
132
- },
133
- icon: /*#__PURE__*/_jsxs("div", {
134
- className: "fa-md fa-layers",
135
- children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
136
- mask: dhTable,
137
- icon: vsTriangleDown,
138
- transform: "right-5 down-5"
139
- }), /*#__PURE__*/_jsx(FontAwesomeIcon, {
140
- icon: vsTriangleDown,
141
- transform: "right-8 down-6"
142
- })]
143
- }),
144
- tooltip: disableTableActions ? 'No tables available' : 'Tables',
145
- children: /*#__PURE__*/_jsx(DropdownMenu, {
146
- actions: tableActions,
147
- onMenuOpened: this.handleTableMenuOpened,
148
- onMenuClosed: this.handleTableMenuClosed,
149
- options: {
150
- initialKeyboardIndex: 1
151
- },
152
- popperOptions: popperOptions
153
- }, "table-actions ")
154
- }), /*#__PURE__*/_jsx(Button, {
155
- "aria-label": "Widgets",
156
- kind: "ghost",
157
- disabled: widgetActions.length === 0,
158
- onClick: () => {
159
- // no-op: click is handled in `DropdownMenu'
160
- },
161
- icon: /*#__PURE__*/_jsxs("div", {
162
- className: "fa-md fa-layers",
163
- children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
164
- mask: vsGraph,
165
- icon: vsTriangleDown,
166
- transform: "right-5 down-5"
167
- }), /*#__PURE__*/_jsx(FontAwesomeIcon, {
168
- icon: vsTriangleDown,
169
- transform: "right-8 down-6"
170
- })]
171
- }),
172
- tooltip: disableWidgetActions ? 'No widgets available' : 'Widgets',
173
- children: /*#__PURE__*/_jsx(DropdownMenu, {
174
- actions: widgetActions,
175
- onMenuOpened: this.handleWidgetMenuOpened,
176
- onMenuClosed: this.handleWidgetMenuClosed,
177
- options: {
178
- initialKeyboardIndex: 1
179
- },
180
- popperOptions: popperOptions
181
- }, "table-actions")
182
- }), /*#__PURE__*/_jsx(Button, {
183
- kind: "ghost",
184
- icon: vsKebabVertical,
185
- tooltip: "More Actions...",
186
- "aria-label": "More Actions...",
187
- onClick: () => {
188
- // no-op: click is handled in `DropdownMenu`
189
- },
190
- children: /*#__PURE__*/_jsx(DropdownMenu, {
191
- actions: overflowActions,
192
- popperOptions: popperOptions
193
- })
194
- })]
195
- });
196
- }
197
- }
198
- export default ConsoleMenu;
199
- //# sourceMappingURL=ConsoleMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConsoleMenu.js","names":["React","PureComponent","FontAwesomeIcon","Button","DropdownMenu","SearchInput","dhTable","vsGraph","vsKebabVertical","vsTriangleDown","Log","memoize","ConsoleUtils","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","ConsoleMenu","makeItemActions","objects","filterText","refCallback","changeCallback","openCallback","length","searchAction","menuElement","value","onChange","className","ref","filteredItems","filter","_ref","title","toLowerCase","indexOf","openActions","map","object","action","constructor","props","_defineProperty","openObject","dh","tables","isTableType","type","searchField","tableSearchField","handleTableFilterChange","widgets","isWidgetType","widgetSearchField","handleWidgetFilterChange","bind","handleTableMenuClosed","handleTableMenuOpened","handleWidgetMenuClosed","handleWidgetMenuOpened","state","tableFilterText","widgetFilterText","e","debug","setState","target","_this$tableSearchFiel","focus","_this$widgetSearchFie","render","overflowActions","tableActions","makeTableActions","widgetActions","makeWidgetActions","popperOptions","placement","disableTableActions","disableWidgetActions","children","kind","disabled","onClick","icon","mask","transform","tooltip","actions","onMenuOpened","onMenuClosed","options","initialKeyboardIndex"],"sources":["../src/ConsoleMenu.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ChangeEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n DropdownAction,\n DropdownMenu,\n PopperOptions,\n SearchInput,\n} from '@deephaven/components';\nimport {\n dhTable,\n vsGraph,\n vsKebabVertical,\n vsTriangleDown,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport memoize from 'memoize-one';\nimport ConsoleUtils from './common/ConsoleUtils';\n\nconst log = Log.module('ConsoleMenu');\n\ninterface ConsoleMenuProps {\n dh: typeof DhType;\n openObject: (object: DhType.ide.VariableDefinition) => void;\n objects: DhType.ide.VariableDefinition[];\n overflowActions: () => DropdownAction[];\n}\n\ninterface ConsoleMenuState {\n tableFilterText: string;\n widgetFilterText: string;\n}\n\nclass ConsoleMenu extends PureComponent<ConsoleMenuProps, ConsoleMenuState> {\n static makeItemActions(\n objects: DhType.ide.VariableDefinition[],\n filterText: string,\n refCallback: (ref: SearchInput) => void,\n changeCallback: ChangeEventHandler<HTMLInputElement>,\n openCallback: (object: DhType.ide.VariableDefinition) => void\n ): DropdownAction[] {\n if (objects.length === 0) {\n return [];\n }\n\n const searchAction = {\n menuElement: (\n <SearchInput\n value={filterText}\n onChange={changeCallback}\n className=\"console-menu\"\n ref={refCallback}\n />\n ),\n };\n let filteredItems = objects;\n if (filterText) {\n filteredItems = filteredItems.filter(\n ({ title }: { title?: string }) =>\n title != null &&\n title.toLowerCase().indexOf(filterText.toLowerCase()) >= 0\n );\n }\n const openActions = filteredItems.map(object => ({\n title: object.title,\n action: () => {\n openCallback(object);\n },\n }));\n\n return [searchAction, ...openActions];\n }\n\n constructor(props: ConsoleMenuProps) {\n super(props);\n\n this.handleTableFilterChange = this.handleTableFilterChange.bind(this);\n this.handleTableMenuClosed = this.handleTableMenuClosed.bind(this);\n this.handleTableMenuOpened = this.handleTableMenuOpened.bind(this);\n this.handleWidgetFilterChange = this.handleWidgetFilterChange.bind(this);\n this.handleWidgetMenuClosed = this.handleWidgetMenuClosed.bind(this);\n this.handleWidgetMenuOpened = this.handleWidgetMenuOpened.bind(this);\n\n this.state = {\n tableFilterText: '',\n widgetFilterText: '',\n };\n }\n\n tableSearchField?: SearchInput;\n\n widgetSearchField?: SearchInput;\n\n makeTableActions = memoize(\n (\n objects: DhType.ide.VariableDefinition[],\n filterText: string,\n openObject: (object: DhType.ide.VariableDefinition) => void\n ): DropdownAction[] => {\n const { dh } = this.props;\n const tables = objects.filter(object =>\n ConsoleUtils.isTableType(dh, object.type)\n );\n return ConsoleMenu.makeItemActions(\n tables,\n filterText,\n searchField => {\n this.tableSearchField = searchField;\n },\n this.handleTableFilterChange,\n openObject\n );\n }\n );\n\n makeWidgetActions = memoize(\n (\n objects: DhType.ide.VariableDefinition[],\n filterText: string,\n openObject: (object: DhType.ide.VariableDefinition) => void\n ): DropdownAction[] => {\n const { dh } = this.props;\n const widgets = objects.filter(object =>\n ConsoleUtils.isWidgetType(dh, object.type)\n );\n return ConsoleMenu.makeItemActions(\n widgets,\n filterText,\n searchField => {\n this.widgetSearchField = searchField;\n },\n this.handleWidgetFilterChange,\n openObject\n );\n }\n );\n\n handleTableFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering tables...');\n this.setState({ tableFilterText: e.target.value });\n }\n\n handleTableMenuClosed(): void {\n this.setState({ tableFilterText: '' });\n }\n\n handleTableMenuOpened(): void {\n this.tableSearchField?.focus();\n }\n\n handleWidgetFilterChange(e: ChangeEvent<HTMLInputElement>): void {\n log.debug('filtering widgets...');\n this.setState({ widgetFilterText: e.target.value });\n }\n\n handleWidgetMenuClosed(): void {\n this.setState({ widgetFilterText: '' });\n }\n\n handleWidgetMenuOpened(): void {\n this.widgetSearchField?.focus();\n }\n\n render(): ReactElement {\n const { overflowActions, objects, openObject } = this.props;\n const { tableFilterText, widgetFilterText } = this.state;\n const tableActions = this.makeTableActions(\n objects,\n tableFilterText,\n openObject\n );\n const widgetActions = this.makeWidgetActions(\n objects,\n widgetFilterText,\n openObject\n );\n const popperOptions: PopperOptions = { placement: 'bottom-end' };\n\n const disableTableActions = tableActions.length === 0;\n const disableWidgetActions = widgetActions.length === 0;\n\n return (\n <>\n <Button\n aria-label=\"Tables\"\n kind=\"ghost\"\n disabled={disableTableActions}\n onClick={() => {\n // no-op: click is handled in `DropdownMenu`\n }}\n icon={\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={dhTable}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon\n icon={vsTriangleDown}\n transform=\"right-8 down-6\"\n />\n </div>\n }\n tooltip={disableTableActions ? 'No tables available' : 'Tables'}\n >\n <DropdownMenu\n key=\"table-actions \"\n actions={tableActions}\n onMenuOpened={this.handleTableMenuOpened}\n onMenuClosed={this.handleTableMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </Button>\n <Button\n aria-label=\"Widgets\"\n kind=\"ghost\"\n disabled={widgetActions.length === 0}\n onClick={() => {\n // no-op: click is handled in `DropdownMenu'\n }}\n icon={\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n mask={vsGraph}\n icon={vsTriangleDown}\n transform=\"right-5 down-5\"\n />\n <FontAwesomeIcon\n icon={vsTriangleDown}\n transform=\"right-8 down-6\"\n />\n </div>\n }\n tooltip={disableWidgetActions ? 'No widgets available' : 'Widgets'}\n >\n <DropdownMenu\n key=\"table-actions\"\n actions={widgetActions}\n onMenuOpened={this.handleWidgetMenuOpened}\n onMenuClosed={this.handleWidgetMenuClosed}\n options={{ initialKeyboardIndex: 1 }}\n popperOptions={popperOptions}\n />\n </Button>\n <Button\n kind=\"ghost\"\n icon={vsKebabVertical}\n tooltip=\"More Actions...\"\n aria-label=\"More Actions...\"\n onClick={() => {\n // no-op: click is handled in `DropdownMenu`\n }}\n >\n <DropdownMenu\n actions={overflowActions}\n popperOptions={popperOptions}\n />\n </Button>\n </>\n );\n }\n}\n\nexport default ConsoleMenu;\n"],"mappings":"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"}