@deephaven/console 1.9.1-beta.2 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Console.d.ts +8 -1
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +13 -4
- package/dist/Console.js.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.d.ts +0 -1
- package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.js +1 -9
- package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
- package/dist/command-history/CommandHistoryStorage.d.ts +2 -0
- package/dist/command-history/CommandHistoryStorage.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryStorage.js.map +1 -1
- package/dist/console-history/ConsoleHistory.css +8 -0
- package/dist/console-history/ConsoleHistory.css.map +1 -1
- package/dist/console-history/ConsoleHistory.d.ts +1 -0
- package/dist/console-history/ConsoleHistory.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistory.js +4 -2
- package/dist/console-history/ConsoleHistory.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.css +57 -0
- package/dist/console-history/ConsoleHistoryItem.css.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.d.ts +5 -1
- package/dist/console-history/ConsoleHistoryItem.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js +21 -5
- package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItemActions.d.ts +14 -0
- package/dist/console-history/ConsoleHistoryItemActions.d.ts.map +1 -0
- package/dist/console-history/ConsoleHistoryItemActions.js +60 -0
- package/dist/console-history/ConsoleHistoryItemActions.js.map +1 -0
- package/dist/console-history/ConsoleHistoryItemTooltip.d.ts +8 -0
- package/dist/console-history/ConsoleHistoryItemTooltip.d.ts.map +1 -0
- package/dist/console-history/ConsoleHistoryItemTooltip.js +51 -0
- package/dist/console-history/ConsoleHistoryItemTooltip.js.map +1 -0
- package/dist/console-history/ConsoleHistoryTypes.d.ts +4 -0
- package/dist/console-history/ConsoleHistoryTypes.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
- package/package.json +14 -14
package/dist/Console.d.ts
CHANGED
|
@@ -119,12 +119,16 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
|
|
|
119
119
|
error?: string;
|
|
120
120
|
changes: DhType.ide.VariableChanges;
|
|
121
121
|
cancel: () => unknown;
|
|
122
|
+
startTimestamp?: DhType.LongWrapper;
|
|
123
|
+
endTimestamp?: DhType.LongWrapper;
|
|
122
124
|
};
|
|
123
125
|
}>): void;
|
|
124
126
|
handleCommandResult(result: {
|
|
125
127
|
message: string;
|
|
126
128
|
error?: string;
|
|
127
129
|
changes: DhType.ide.VariableChanges;
|
|
130
|
+
startTimestamp?: DhType.LongWrapper;
|
|
131
|
+
endTimestamp?: DhType.LongWrapper;
|
|
128
132
|
} | undefined, historyItem: ConsoleHistoryActionItem, workspaceItemPromise: Promise<CommandHistoryStorageItem>): void;
|
|
129
133
|
handleCommandError(error: unknown, historyItem: ConsoleHistoryActionItem, workspaceItemPromise: Promise<CommandHistoryStorageItem>): void;
|
|
130
134
|
handleFocusHistory(event: Event): void;
|
|
@@ -140,11 +144,14 @@ export declare class Console extends PureComponent<ConsoleProps, ConsoleState> {
|
|
|
140
144
|
updateObjectMap(): void;
|
|
141
145
|
/**
|
|
142
146
|
* Updates an existing workspace CommandHistoryItem
|
|
143
|
-
* @param result The result to store with the history item.
|
|
147
|
+
* @param result The result to store with the history item.
|
|
148
|
+
* Possibly contains an error message if there was a failure, server start time, and server end time.
|
|
144
149
|
* @param workspaceItemPromise The workspace data row promise for the workspace item to be updated
|
|
145
150
|
*/
|
|
146
151
|
updateWorkspaceHistoryItem(result: {
|
|
147
152
|
error?: string;
|
|
153
|
+
serverStartTime?: number;
|
|
154
|
+
serverEndTime?: number;
|
|
148
155
|
}, workspaceItemPromise: Promise<CommandHistoryStorageItem>): void;
|
|
149
156
|
scrollConsoleHistoryToBottom(): void;
|
|
150
157
|
handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void;
|
package/dist/Console.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.tsx"],"names":[],"mappings":"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"}
|
package/dist/Console.js
CHANGED
|
@@ -246,10 +246,15 @@ export class Console extends PureComponent {
|
|
|
246
246
|
});
|
|
247
247
|
}
|
|
248
248
|
handleCommandResult(result, historyItem, workspaceItemPromise) {
|
|
249
|
+
var _result$startTimestam, _result$endTimestamp;
|
|
250
|
+
var serverStartTime = result === null || result === void 0 || (_result$startTimestam = result.startTimestamp) === null || _result$startTimestam === void 0 ? void 0 : _result$startTimestam.asNumber();
|
|
251
|
+
var serverEndTime = result === null || result === void 0 || (_result$endTimestamp = result.endTimestamp) === null || _result$endTimestamp === void 0 ? void 0 : _result$endTimestamp.asNumber();
|
|
249
252
|
var newHistoryItem = _objectSpread(_objectSpread({}, historyItem), {}, {
|
|
250
253
|
wrappedResult: undefined,
|
|
251
254
|
cancelResult: undefined,
|
|
252
|
-
result: result !== null && result !== void 0 ? result : historyItem.result
|
|
255
|
+
result: result !== null && result !== void 0 ? result : historyItem.result,
|
|
256
|
+
serverStartTime,
|
|
257
|
+
serverEndTime
|
|
253
258
|
});
|
|
254
259
|
this.setState(_ref => {
|
|
255
260
|
var {
|
|
@@ -273,7 +278,9 @@ export class Console extends PureComponent {
|
|
|
273
278
|
this.updateHistory(result, newHistoryItem);
|
|
274
279
|
this.updateKnownObjects(newHistoryItem);
|
|
275
280
|
this.updateWorkspaceHistoryItem({
|
|
276
|
-
error: result.error
|
|
281
|
+
error: result.error,
|
|
282
|
+
serverStartTime,
|
|
283
|
+
serverEndTime
|
|
277
284
|
}, workspaceItemPromise);
|
|
278
285
|
this.closeRemovedItems(result.changes);
|
|
279
286
|
this.openUpdatedItems(result.changes);
|
|
@@ -456,7 +463,8 @@ export class Console extends PureComponent {
|
|
|
456
463
|
|
|
457
464
|
/**
|
|
458
465
|
* Updates an existing workspace CommandHistoryItem
|
|
459
|
-
* @param result The result to store with the history item.
|
|
466
|
+
* @param result The result to store with the history item.
|
|
467
|
+
* Possibly contains an error message if there was a failure, server start time, and server end time.
|
|
460
468
|
* @param workspaceItemPromise The workspace data row promise for the workspace item to be updated
|
|
461
469
|
*/
|
|
462
470
|
updateWorkspaceHistoryItem(result, workspaceItemPromise) {
|
|
@@ -881,7 +889,8 @@ export class Console extends PureComponent {
|
|
|
881
889
|
disabled: disabled,
|
|
882
890
|
supportsType: supportsType,
|
|
883
891
|
iconForType: iconForType,
|
|
884
|
-
ref: this.consoleHistoryContent
|
|
892
|
+
ref: this.consoleHistoryContent,
|
|
893
|
+
onCommandSubmit: this.handleCommandSubmit
|
|
885
894
|
}), historyChildren]
|
|
886
895
|
})]
|
|
887
896
|
}), !showCsvOverlay && /*#__PURE__*/_jsx(ConsoleInput, {
|
package/dist/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","ConsoleObjectsMenu","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","defaultSupportsType","defaultIconForType","type","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","_defineProperty","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","Array","from","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleHistoryResize","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","consoleHistoryContent","pending","resizeObserver","window","ResizeObserver","settings","_objectSpread","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","isStuckToBottom","componentDidMount","initConsoleLogging","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","current","observe","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","isAtBottom","scrollConsoleHistoryToBottom","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","disconnect","cancelListener","onLogMessage","undefined","scrollHeight","clientHeight","scrollTop","Math","abs","event","_this$consoleInput$cu","preventDefault","stopPropagation","clear","code","result","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","Date","now","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","then","resolved","error","handleCommandError","newHistoryItem","_ref","itemIndex","lastIndexOf","newHistory","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","title","startsWith","removed","closeObject","historyItemParam","_changes","_changes2","_changes3","disableOldObject","isRemoved","arguments","oldIndex","get","_consoleHistory$oldIn","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","pane","requestAnimationFrame","scrollTo","top","behavior","scrollPane","entries","entry","contentRect","height","width","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","_this$consoleInput$cu2","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","supportsType","iconForType","showObjectsMenu","consoleMenuObjects","getObjects","inputMaxHeight","round","contextActions","getContextActions","role","className","children","ref","overflowActions","objects","onDragOver","handleDragOver","onDragEnter","onDragLeave","onCancel","onFileOpened","onPaste","clearDragError","onError","uploadInProgress","allowZip","onScroll","onSubmit","maxHeight","onOpenTable","onClose","onUpdate","paste","onInProgress","ignoreClassNames","INPUT_CLASS_NAME"],"sources":["../src/Console.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n type DragEvent,\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n type UIEvent,\n} from 'react';\nimport {\n ContextActions,\n type DropdownAction,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport type { JSZipObject } from 'jszip';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { type ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n} from './command-history';\nimport ConsoleObjectsMenu from './ConsoleObjectsMenu';\n\nconst log = Log.module('Console');\n\ninterface Settings {\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nconst DEFAULT_SETTINGS: Settings = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n} as const;\n\ninterface ConsoleProps {\n dh: typeof DhType;\n\n /** Additional children to show in the status bar */\n statusBarChildren: ReactNode;\n\n /** Show the objects menu in the status bar. Defaults to true. */\n showObjectsMenu?: boolean;\n\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n\n /**\n * @param object The object to open\n * @param forceOpen If true, always open the object. If false, only update existing panels\n */\n openObject: (\n object: DhType.ide.VariableDescriptor,\n forceOpen?: boolean\n ) => void;\n\n /** Closes all panels containing the object */\n closeObject: (object: DhType.ide.VariableDefinition) => void;\n session: DhType.IdeSession;\n language: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSettingsChange: (settings: Record<string, unknown>) => void;\n scope: string;\n actions: DropdownAction[];\n timeZone: string;\n\n // Children shown at the bottom of the console history\n historyChildren: ReactNode;\n\n // Known object map\n objectMap: Map<string, DhType.ide.VariableDefinition>;\n\n disabled: boolean;\n\n /**\n * Function to unzip a zip file. If not provided, zip files will not be accepted\n * (file:File) => Promise<File[]>\n */\n unzip: (file: File) => Promise<JSZipObject[]>;\n supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\n}\n\ninterface ConsoleState {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: ConsoleHistoryActionItem[];\n\n // Height of the viewport of the console input and history\n consoleHeight: number;\n\n // Scroll decoration is a drop shadow across the top border of the console\n isScrollDecorationShown: boolean;\n\n // Location of objects in the console history\n objectHistoryMap: Map<string, number>;\n\n // The object definitions, name/type\n objectMap: Map<string, DhType.ide.VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isStuckToBottom: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nfunction defaultSupportsType(): boolean {\n return true;\n}\n\nfunction defaultIconForType(type: string): ReactElement {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n}\n\nexport class Console extends PureComponent<ConsoleProps, ConsoleState> {\n static defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: (): void => undefined,\n scope: null,\n actions: [],\n historyChildren: null,\n timeZone: 'America/New_York',\n objectMap: new Map(),\n disabled: false,\n unzip: null,\n supportsType: defaultSupportsType,\n iconForType: defaultIconForType,\n showObjectsMenu: true,\n };\n\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param logLevel The LogLevel being checked\n * @returns true if the log level is an error level log\n */\n static isErrorLevel(logLevel: string): boolean {\n return (\n logLevel === LogLevel.STDERR ||\n logLevel === LogLevel.ERROR ||\n logLevel === LogLevel.FATAL\n );\n }\n\n /**\n * Check if the provided log level is output level\n * @param logLevel The LogLevel being checked\n * @returns true if the log level should be output to the console\n */\n static isOutputLevel(\n logLevel: (typeof LogLevel)[keyof typeof LogLevel]\n ): boolean {\n // We want all errors to be output, in addition to STDOUT.\n // That way the user is more likely to see them.\n return logLevel === LogLevel.STDOUT || Console.isErrorLevel(logLevel);\n }\n\n constructor(props: ConsoleProps) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleHistoryResize = this.handleHistoryResize.bind(this);\n this.handleToggleAutoLaunchPanels =\n this.handleToggleAutoLaunchPanels.bind(this);\n this.handleToggleClosePanelsOnDisconnect =\n this.handleToggleClosePanelsOnDisconnect.bind(this);\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.bind(this);\n this.handleCsvFileCanceled = this.handleCsvFileCanceled.bind(this);\n this.handleCsvFileOpened = this.handleCsvFileOpened.bind(this);\n this.handleCsvPaste = this.handleCsvPaste.bind(this);\n this.handleDragEnter = this.handleDragEnter.bind(this);\n this.handleDragLeave = this.handleDragLeave.bind(this);\n this.handleClearDragError = this.handleClearDragError.bind(this);\n this.handleOpenCsvTable = this.handleOpenCsvTable.bind(this);\n this.handleCsvUpdate = this.handleCsvUpdate.bind(this);\n this.handleCsvError = this.handleCsvError.bind(this);\n this.handleCsvInProgress = this.handleCsvInProgress.bind(this);\n\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.consoleHistoryContent = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n this.resizeObserver = new window.ResizeObserver(this.handleHistoryResize);\n\n const { objectMap, settings } = this.props;\n\n this.state = {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: [],\n\n // Height of the viewport of the console input and history\n consoleHeight: 0,\n\n isScrollDecorationShown: false,\n\n // Location of objects in the console history\n objectHistoryMap: new Map(),\n\n // The object definitions, name/type\n objectMap: new Map(objectMap),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n isStuckToBottom: true,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { dh, session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n\n if (\n this.consoleHistoryScrollPane.current &&\n this.consoleHistoryContent.current\n ) {\n this.resizeObserver.observe(this.consoleHistoryScrollPane.current);\n this.resizeObserver.observe(this.consoleHistoryContent.current);\n }\n }\n\n componentDidUpdate(prevProps: ConsoleProps, prevState: ConsoleState): void {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (props.objectMap !== prevProps.objectMap) {\n this.updateObjectMap();\n }\n\n if (state.isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n componentWillUnmount(): void {\n const { dh, session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n this.resizeObserver.disconnect();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n consoleHistoryContent: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n resizeObserver: ResizeObserver;\n\n initConsoleLogging(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n isAtBottom(): boolean {\n if (this.consoleHistoryScrollPane.current == null) {\n return false;\n }\n const { scrollHeight, clientHeight, scrollTop } =\n this.consoleHistoryScrollPane.current;\n return Math.abs(scrollHeight - clientHeight - scrollTop) <= 1;\n }\n\n handleClearShortcut(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(\n event: DhType.Event<{\n code: string;\n result: {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n cancel: () => unknown;\n };\n }>\n ): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem: ConsoleHistoryActionItem = {\n command: code,\n disabledObjects: [],\n startTime: Date.now(),\n cancelResult: () => {\n result.cancel();\n },\n wrappedResult,\n };\n\n const { commandHistoryStorage, language, scope } = this.props;\n const workspaceItemPromise = commandHistoryStorage.addItem(\n language,\n scope,\n code,\n {\n command: code,\n startTime: new Date().toJSON(),\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom();\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(\n result:\n | {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n }\n | undefined,\n historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const newHistoryItem = {\n ...historyItem,\n wrappedResult: undefined,\n cancelResult: undefined,\n result: result ?? historyItem.result,\n };\n\n this.setState(({ consoleHistory }) => {\n const itemIndex = consoleHistory.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in consoleHistory`);\n return null;\n }\n const newHistory = consoleHistory.concat();\n newHistory[itemIndex] = newHistoryItem;\n\n return { consoleHistory: newHistory };\n });\n\n if (!result) {\n return;\n }\n\n this.scrollConsoleHistoryToBottom();\n this.updateHistory(result, newHistoryItem);\n this.updateKnownObjects(newHistoryItem);\n this.updateWorkspaceHistoryItem(\n { error: result.error },\n workspaceItemPromise\n );\n\n this.closeRemovedItems(result.changes);\n this.openUpdatedItems(result.changes);\n }\n\n handleCommandError(\n error: unknown,\n historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n if (PromiseUtils.isCanceled(error)) {\n log.debug('Called handleCommandError on a cancelled promise result');\n return;\n }\n\n this.updateWorkspaceHistoryItem(\n { error: `${error}` },\n workspaceItemPromise\n );\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const index = history.lastIndexOf(historyItem);\n const newHistoryItem = { ...historyItem };\n newHistoryItem.wrappedResult = undefined;\n newHistoryItem.cancelResult = undefined;\n newHistoryItem.endTime = Date.now();\n newHistoryItem.result = { error };\n history[index] = newHistoryItem;\n return { consoleHistory: history };\n });\n }\n\n handleFocusHistory(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message: DhType.ide.LogItem): void {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (\n Console.isOutputLevel(\n message.logLevel as (typeof LogLevel)[keyof typeof LogLevel]\n )\n ) {\n this.queueLogMessage(message.message, message.logLevel);\n }\n }\n\n queueLogMessage(message: string, logLevel: string): void {\n const result: Record<string, string> = {};\n if (\n Console.isErrorLevel(logLevel as (typeof LogLevel)[keyof typeof LogLevel])\n ) {\n result.error = message;\n } else {\n result.message = message;\n }\n\n const historyItem = { command: undefined, result };\n\n this.queuedLogMessages.push(historyItem);\n\n this.processLogMessageQueue();\n }\n\n processLogMessageQueue = throttle(() => {\n this.setState(state => {\n log.debug2(\n 'processLogMessageQueue',\n this.queuedLogMessages.length,\n ' items'\n );\n\n let { consoleHistory } = state;\n consoleHistory = consoleHistory.concat(this.queuedLogMessages);\n this.queuedLogMessages = [];\n\n return { consoleHistory };\n });\n }, Console.LOG_THROTTLE);\n\n openUpdatedItems(changes: DhType.ide.VariableChanges): void {\n log.debug('openUpdatedItems', changes);\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (changes == null) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated].forEach(object =>\n openObject(\n object,\n isAutoLaunchPanelsEnabled &&\n (object.title === undefined || !object.title.startsWith('_'))\n )\n );\n }\n\n closeRemovedItems(changes: DhType.ide.VariableChanges): void {\n if (\n changes == null ||\n changes.removed == null ||\n changes.removed.length === 0\n ) {\n return;\n }\n\n const { closeObject } = this.props;\n const { removed } = changes;\n removed.forEach(object => closeObject(object));\n }\n\n updateHistory(\n result: { changes: unknown },\n historyItemParam: ConsoleHistoryActionItem\n ): void {\n const historyItem = historyItemParam;\n if (result == null || result.changes == null || historyItem == null) {\n return;\n }\n\n historyItem.endTime = Date.now();\n\n // Update history to re-render items as necessary\n this.setState(state => {\n const consoleHistory = state.consoleHistory.concat();\n return { consoleHistory };\n });\n }\n\n updateKnownObjects(historyItem: ConsoleHistoryActionItem): void {\n let changes: undefined | DhType.ide.VariableChanges;\n if (historyItem.result) {\n changes = historyItem.result.changes;\n }\n if (\n !changes ||\n ((changes.created == null || changes.created.length === 0) &&\n (changes.updated == null || changes.updated.length === 0) &&\n (changes.removed == null || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n let { consoleHistory } = state;\n const itemIndex = consoleHistory.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in state.consoleHistory`);\n return null;\n }\n\n const objectHistoryMap = new Map(state.objectHistoryMap);\n const objectMap = new Map(state.objectMap);\n\n const disableOldObject = (\n object: DhType.ide.VariableDefinition,\n isRemoved = false\n ): void => {\n const { title } = object;\n assertNotNull(title);\n const oldIndex = objectHistoryMap.get(title);\n // oldIndex can be -1 if a object is active but doesn't have a command in consoleHistory\n // this can happen after clearing the console using 'clear' or 'cls' command\n\n if (oldIndex != null && oldIndex >= 0) {\n // disable outdated object variable in the old consoleHistory item\n if (consoleHistory === state.consoleHistory) {\n // First item in the history being updated,\n consoleHistory = consoleHistory.concat();\n }\n const newHistoryItem = {\n ...consoleHistory[oldIndex],\n disabledObjects: [\n ...(consoleHistory[oldIndex].disabledObjects ?? []),\n title,\n ],\n };\n consoleHistory[oldIndex] = newHistoryItem;\n }\n objectHistoryMap.set(title, itemIndex);\n if (isRemoved) {\n objectMap.delete(title);\n } else {\n objectMap.set(title, object);\n }\n };\n\n changes?.updated.forEach(object => disableOldObject(object));\n changes?.removed.forEach(object => disableOldObject(object, true));\n\n // Created objects have to be processed after removed\n // in case the same object name is present in both removed and created\n changes?.created.forEach(object => {\n const { title } = object;\n assertNotNull(title);\n objectHistoryMap.set(title, itemIndex);\n objectMap.set(title, object);\n });\n\n return { objectHistoryMap, objectMap, consoleHistory };\n });\n }\n\n updateObjectMap(): void {\n const { objectMap } = this.props;\n this.setState({ objectMap });\n }\n\n /**\n * Updates an existing workspace CommandHistoryItem\n * @param result The result to store with the history item. Could be empty object for success\n * @param workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(\n result: { error?: string },\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(): void {\n const pane = this.consoleHistoryScrollPane.current;\n if (pane == null) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTo({ top: pane.scrollHeight, behavior: 'instant' });\n });\n }\n\n handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void {\n log.debug('handleScrollPaneScroll', event);\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n this.setState({\n isScrollDecorationShown:\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight,\n isStuckToBottom: this.isAtBottom(),\n });\n }\n\n handleHistoryResize(entries: ResizeObserverEntry[]): void {\n log.debug('handleHistoryResize', entries);\n const entry = entries[0];\n if (entry.contentRect.height > 0 && entry.contentRect.width > 0) {\n const { isStuckToBottom } = this.state;\n if (isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n }\n\n handleToggleAutoLaunchPanels(): void {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect(): void {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout(): void {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv(): void {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv(): void {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileCanceled(): void {\n this.setState({ csvFile: null, csvPaste: null });\n }\n\n handleCsvFileOpened(file: File): void {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value: string): void {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e: DragEvent<HTMLDivElement>): void {\n if (\n e.dataTransfer == null ||\n e.dataTransfer.items == null ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e: DragEvent<HTMLDivElement>): void {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (\n e.currentTarget == null ||\n (e.currentTarget instanceof Element &&\n e.relatedTarget instanceof Element &&\n e.currentTarget.contains(e.relatedTarget))\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError(): void {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(title: string): void {\n const { dh, openObject, commandHistoryStorage, language, scope } =\n this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name: title, title, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(title);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n\n const history = consoleHistory.concat(historyItem);\n this.setState({ consoleHistory: history });\n this.scrollConsoleHistoryToBottom();\n this.updateKnownObjects(historyItem);\n openObject({ name: title, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, title, {\n command: title,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n });\n }\n\n addConsoleHistoryMessage(message?: string, error?: string): void {\n const { consoleHistory } = this.state;\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message: string): void {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error: unknown): void {\n this.addConsoleHistoryMessage(\n undefined,\n error != null ? `${error}` : undefined\n );\n }\n\n handleCsvInProgress(csvUploadInProgress: boolean): void {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions(): DropdownAction[] {\n const {\n isAutoLaunchPanelsEnabled,\n isClosePanelsOnDisconnectEnabled,\n isPrintStdOutEnabled,\n } = this.state;\n const { actions } = this.props;\n return [\n ...actions,\n {\n title: 'Print Stdout',\n action: this.handleTogglePrintStdout,\n group: ContextActions.groups.high,\n icon: isPrintStdOutEnabled ? vsCheck : undefined,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : undefined,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : undefined,\n order: 30,\n },\n {\n title: 'Upload Table from File',\n action: this.handleUploadCsv,\n group: ContextActions.groups.high + 10,\n order: 40,\n },\n ];\n }\n\n handleCommandSubmit(command: string): void {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory(): void {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(\n (objectMap: Map<string, DhType.ide.VariableDefinition>) =>\n Array.from(objectMap.values())\n );\n\n getContextActions = memoize(\n (actions: DropdownAction[]): ResolvableContextAction[] => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]\n );\n\n addCommand(command: string, focus = true, execute = false): void {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n focus(): void {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(\n prevState: ConsoleState,\n state: ConsoleState,\n checkIfChanged = true\n ): void {\n const keys = Object.keys(DEFAULT_SETTINGS) as Array<keyof Settings>;\n const settings: Record<string, unknown> = {};\n let hasChanges = false;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const { [key]: setting } = state;\n const { [key]: prevSetting } = prevState;\n if (setting !== prevSetting) {\n hasChanges = true;\n }\n settings[key] = setting;\n }\n if (checkIfChanged && !hasChanges) {\n return;\n }\n const { onSettingsChange } = this.props;\n onSettingsChange(settings);\n }\n\n updateDimensions(): void {\n if (this.consolePane.current) {\n this.setState({\n consoleHeight: this.consolePane.current.clientHeight,\n });\n }\n if (this.consoleInput.current) {\n this.consoleInput.current.updateDimensions();\n }\n }\n\n render(): ReactElement {\n const {\n actions,\n dh,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n supportsType,\n iconForType,\n showObjectsMenu,\n } = this.props;\n const {\n consoleHeight,\n consoleHistory,\n isScrollDecorationShown,\n objectMap,\n showCsvOverlay,\n csvFile,\n csvPaste,\n dragError,\n csvUploadInProgress,\n } = this.state;\n const consoleMenuObjects = this.getObjects(objectMap);\n const inputMaxHeight = Math.round(consoleHeight * 0.7);\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console', 'h-100', 'w-100', { disabled })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n dh={dh}\n session={session}\n overflowActions={this.handleOverflowActions}\n >\n {statusBarChildren}\n {showObjectsMenu === true && (\n <ConsoleObjectsMenu\n openObject={openObject}\n objects={consoleMenuObjects}\n />\n )}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {showCsvOverlay && (\n <CsvOverlay\n onCancel={this.handleCsvFileCanceled}\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\n allowZip={unzip != null}\n />\n )}\n <div\n role=\"presentation\"\n className={classNames('scroll-pane no-scroll-x', {\n 'scroll-decoration': isScrollDecorationShown,\n })}\n onScroll={this.handleScrollPaneScroll}\n ref={this.consoleHistoryScrollPane}\n >\n <ConsoleHistory\n items={consoleHistory}\n openObject={openObject}\n language={language}\n disabled={disabled}\n supportsType={supportsType}\n iconForType={iconForType}\n ref={this.consoleHistoryContent}\n />\n {historyChildren}\n </div>\n </div>\n {!showCsvOverlay && (\n <ConsoleInput\n ref={this.consoleInput}\n session={session}\n language={language}\n scope={scope}\n onSubmit={this.handleCommandSubmit}\n maxHeight={inputMaxHeight}\n commandHistoryStorage={commandHistoryStorage}\n />\n )}\n {showCsvOverlay && (\n <CsvInputBar\n session={session}\n onOpenTable={this.handleOpenCsvTable}\n onClose={this.handleHideCsv}\n onUpdate={this.handleCsvUpdate}\n onError={this.handleCsvError}\n file={csvFile ?? undefined}\n paste={csvPaste ?? undefined}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n unzip={unzip}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nexport default Console;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Console.js","names":["React","PureComponent","ContextActions","vsCheck","classNames","memoize","throttle","Log","assertNotNull","Pending","PromiseUtils","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","CsvOverlay","CsvInputBar","ConsoleStatusBar","ConsoleObjectsMenu","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","defaultSupportsType","defaultIconForType","type","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","_defineProperty","setState","state","debug2","queuedLogMessages","length","consoleHistory","concat","LOG_THROTTLE","objectMap","Array","from","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleHistoryResize","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","handleUploadCsv","handleHideCsv","handleCsvFileCanceled","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","consolePane","createRef","consoleInput","consoleHistoryScrollPane","consoleHistoryContent","pending","resizeObserver","window","ResizeObserver","settings","_objectSpread","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","isStuckToBottom","componentDidMount","initConsoleLogging","dh","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","current","observe","componentDidUpdate","prevProps","prevState","sendSettingsChange","updateObjectMap","isAtBottom","scrollConsoleHistoryToBottom","componentWillUnmount","removeEventListener","cancel","processLogMessageQueue","deinitConsoleLogging","disconnect","cancelListener","onLogMessage","undefined","scrollHeight","clientHeight","scrollTop","Math","abs","event","_this$consoleInput$cu","preventDefault","stopPropagation","clear","code","result","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","Date","now","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","then","resolved","error","handleCommandError","_result$startTimestam","_result$endTimestamp","serverStartTime","startTimestamp","asNumber","serverEndTime","endTimestamp","newHistoryItem","_ref","itemIndex","lastIndexOf","newHistory","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","changes","openUpdatedItems","isCanceled","history","index","endTime","focusCommandHistory","message","queueLogMessage","push","openObject","created","updated","forEach","object","title","startsWith","removed","closeObject","historyItemParam","_changes","_changes2","_changes3","disableOldObject","isRemoved","arguments","oldIndex","get","_consoleHistory$oldIn","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","pane","requestAnimationFrame","scrollTo","top","behavior","scrollPane","entries","entry","contentRect","height","width","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","item","isValidDropItem","FILE_TYPE_ERROR","currentTarget","Element","relatedTarget","contains","name","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","map","addCommand","focus","execute","setConsoleText","_this$consoleInput$cu2","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","historyChildren","statusBarChildren","timeZone","disabled","unzip","supportsType","iconForType","showObjectsMenu","consoleMenuObjects","getObjects","inputMaxHeight","round","contextActions","getContextActions","role","className","children","ref","overflowActions","objects","onDragOver","handleDragOver","onDragEnter","onDragLeave","onCancel","onFileOpened","onPaste","clearDragError","onError","uploadInProgress","allowZip","onScroll","onCommandSubmit","onSubmit","maxHeight","onOpenTable","onClose","onUpdate","paste","onInProgress","ignoreClassNames","INPUT_CLASS_NAME"],"sources":["../src/Console.tsx"],"sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, {\n type DragEvent,\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n type UIEvent,\n} from 'react';\nimport {\n ContextActions,\n type DropdownAction,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport type { JSZipObject } from 'jszip';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { assertNotNull, Pending, PromiseUtils } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport { type ConsoleHistoryActionItem } from './console-history/ConsoleHistoryTypes';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport {\n type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n} from './command-history';\nimport ConsoleObjectsMenu from './ConsoleObjectsMenu';\n\nconst log = Log.module('Console');\n\ninterface Settings {\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nconst DEFAULT_SETTINGS: Settings = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n} as const;\n\ninterface ConsoleProps {\n dh: typeof DhType;\n\n /** Additional children to show in the status bar */\n statusBarChildren: ReactNode;\n\n /** Show the objects menu in the status bar. Defaults to true. */\n showObjectsMenu?: boolean;\n\n settings: Partial<Settings>;\n focusCommandHistory: () => void;\n\n /**\n * @param object The object to open\n * @param forceOpen If true, always open the object. If false, only update existing panels\n */\n openObject: (\n object: DhType.ide.VariableDescriptor,\n forceOpen?: boolean\n ) => void;\n\n /** Closes all panels containing the object */\n closeObject: (object: DhType.ide.VariableDefinition) => void;\n session: DhType.IdeSession;\n language: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSettingsChange: (settings: Record<string, unknown>) => void;\n scope: string;\n actions: DropdownAction[];\n timeZone: string;\n\n // Children shown at the bottom of the console history\n historyChildren: ReactNode;\n\n // Known object map\n objectMap: Map<string, DhType.ide.VariableDefinition>;\n\n disabled: boolean;\n\n /**\n * Function to unzip a zip file. If not provided, zip files will not be accepted\n * (file:File) => Promise<File[]>\n */\n unzip: (file: File) => Promise<JSZipObject[]>;\n supportsType: (type: string) => boolean;\n iconForType: (type: string) => ReactElement;\n}\n\ninterface ConsoleState {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: ConsoleHistoryActionItem[];\n\n // Height of the viewport of the console input and history\n consoleHeight: number;\n\n // Scroll decoration is a drop shadow across the top border of the console\n isScrollDecorationShown: boolean;\n\n // Location of objects in the console history\n objectHistoryMap: Map<string, number>;\n\n // The object definitions, name/type\n objectMap: Map<string, DhType.ide.VariableDefinition>;\n\n showCsvOverlay: boolean;\n csvFile: File | null;\n csvPaste: string | null;\n dragError: string | null;\n csvUploadInProgress: boolean;\n isStuckToBottom: boolean;\n isAutoLaunchPanelsEnabled: boolean;\n isPrintStdOutEnabled: boolean;\n isClosePanelsOnDisconnectEnabled: boolean;\n}\n\nfunction defaultSupportsType(): boolean {\n return true;\n}\n\nfunction defaultIconForType(type: string): ReactElement {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n}\n\nexport class Console extends PureComponent<ConsoleProps, ConsoleState> {\n static defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: (): void => undefined,\n scope: null,\n actions: [],\n historyChildren: null,\n timeZone: 'America/New_York',\n objectMap: new Map(),\n disabled: false,\n unzip: null,\n supportsType: defaultSupportsType,\n iconForType: defaultIconForType,\n showObjectsMenu: true,\n };\n\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param logLevel The LogLevel being checked\n * @returns true if the log level is an error level log\n */\n static isErrorLevel(logLevel: string): boolean {\n return (\n logLevel === LogLevel.STDERR ||\n logLevel === LogLevel.ERROR ||\n logLevel === LogLevel.FATAL\n );\n }\n\n /**\n * Check if the provided log level is output level\n * @param logLevel The LogLevel being checked\n * @returns true if the log level should be output to the console\n */\n static isOutputLevel(\n logLevel: (typeof LogLevel)[keyof typeof LogLevel]\n ): boolean {\n // We want all errors to be output, in addition to STDOUT.\n // That way the user is more likely to see them.\n return logLevel === LogLevel.STDOUT || Console.isErrorLevel(logLevel);\n }\n\n constructor(props: ConsoleProps) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleHistoryResize = this.handleHistoryResize.bind(this);\n this.handleToggleAutoLaunchPanels =\n this.handleToggleAutoLaunchPanels.bind(this);\n this.handleToggleClosePanelsOnDisconnect =\n this.handleToggleClosePanelsOnDisconnect.bind(this);\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.bind(this);\n this.handleCsvFileCanceled = this.handleCsvFileCanceled.bind(this);\n this.handleCsvFileOpened = this.handleCsvFileOpened.bind(this);\n this.handleCsvPaste = this.handleCsvPaste.bind(this);\n this.handleDragEnter = this.handleDragEnter.bind(this);\n this.handleDragLeave = this.handleDragLeave.bind(this);\n this.handleClearDragError = this.handleClearDragError.bind(this);\n this.handleOpenCsvTable = this.handleOpenCsvTable.bind(this);\n this.handleCsvUpdate = this.handleCsvUpdate.bind(this);\n this.handleCsvError = this.handleCsvError.bind(this);\n this.handleCsvInProgress = this.handleCsvInProgress.bind(this);\n\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.consoleHistoryContent = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n this.resizeObserver = new window.ResizeObserver(this.handleHistoryResize);\n\n const { objectMap, settings } = this.props;\n\n this.state = {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: [],\n\n // Height of the viewport of the console input and history\n consoleHeight: 0,\n\n isScrollDecorationShown: false,\n\n // Location of objects in the console history\n objectHistoryMap: new Map(),\n\n // The object definitions, name/type\n objectMap: new Map(objectMap),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n isStuckToBottom: true,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount(): void {\n this.initConsoleLogging();\n\n const { dh, session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n\n if (\n this.consoleHistoryScrollPane.current &&\n this.consoleHistoryContent.current\n ) {\n this.resizeObserver.observe(this.consoleHistoryScrollPane.current);\n this.resizeObserver.observe(this.consoleHistoryContent.current);\n }\n }\n\n componentDidUpdate(prevProps: ConsoleProps, prevState: ConsoleState): void {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (props.objectMap !== prevProps.objectMap) {\n this.updateObjectMap();\n }\n\n if (state.isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n componentWillUnmount(): void {\n const { dh, session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n this.resizeObserver.disconnect();\n }\n\n cancelListener?: () => void;\n\n consolePane: RefObject<HTMLDivElement>;\n\n consoleInput: RefObject<ConsoleInput>;\n\n consoleHistoryScrollPane: RefObject<HTMLDivElement>;\n\n consoleHistoryContent: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n queuedLogMessages: ConsoleHistoryActionItem[];\n\n resizeObserver: ResizeObserver;\n\n initConsoleLogging(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n isAtBottom(): boolean {\n if (this.consoleHistoryScrollPane.current == null) {\n return false;\n }\n const { scrollHeight, clientHeight, scrollTop } =\n this.consoleHistoryScrollPane.current;\n return Math.abs(scrollHeight - clientHeight - scrollTop) <= 1;\n }\n\n handleClearShortcut(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current?.clear();\n }\n\n handleCommandStarted(\n event: DhType.Event<{\n code: string;\n result: {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n cancel: () => unknown;\n startTimestamp?: DhType.LongWrapper;\n endTimestamp?: DhType.LongWrapper;\n };\n }>\n ): void {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem: ConsoleHistoryActionItem = {\n command: code,\n disabledObjects: [],\n startTime: Date.now(),\n cancelResult: () => {\n result.cancel();\n },\n wrappedResult,\n };\n\n const { commandHistoryStorage, language, scope } = this.props;\n const workspaceItemPromise = commandHistoryStorage.addItem(\n language,\n scope,\n code,\n {\n command: code,\n startTime: new Date().toJSON(),\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom();\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(\n result:\n | {\n message: string;\n error?: string;\n changes: DhType.ide.VariableChanges;\n startTimestamp?: DhType.LongWrapper;\n endTimestamp?: DhType.LongWrapper;\n }\n | undefined,\n historyItem: ConsoleHistoryActionItem,\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const serverStartTime = result?.startTimestamp?.asNumber();\n const serverEndTime = result?.endTimestamp?.asNumber();\n const newHistoryItem = {\n ...historyItem,\n wrappedResult: undefined,\n cancelResult: undefined,\n result: result ?? historyItem.result,\n serverStartTime,\n serverEndTime,\n };\n\n this.setState(({ consoleHistory }) => {\n const itemIndex = consoleHistory.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in consoleHistory`);\n return null;\n }\n const newHistory = consoleHistory.concat();\n newHistory[itemIndex] = newHistoryItem;\n\n return { consoleHistory: newHistory };\n });\n\n if (!result) {\n return;\n }\n\n this.scrollConsoleHistoryToBottom();\n this.updateHistory(result, newHistoryItem);\n this.updateKnownObjects(newHistoryItem);\n this.updateWorkspaceHistoryItem(\n {\n error: result.error,\n serverStartTime,\n serverEndTime,\n },\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.\n * Possibly contains an error message if there was a failure, server start time, and server end time.\n * @param workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(\n result: {\n error?: string;\n serverStartTime?: number;\n serverEndTime?: number;\n },\n workspaceItemPromise: Promise<CommandHistoryStorageItem>\n ): void {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(): void {\n const pane = this.consoleHistoryScrollPane.current;\n if (pane == null) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTo({ top: pane.scrollHeight, behavior: 'instant' });\n });\n }\n\n handleScrollPaneScroll(event: UIEvent<HTMLDivElement>): void {\n log.debug('handleScrollPaneScroll', event);\n const scrollPane = this.consoleHistoryScrollPane.current;\n assertNotNull(scrollPane);\n this.setState({\n isScrollDecorationShown:\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight,\n isStuckToBottom: this.isAtBottom(),\n });\n }\n\n handleHistoryResize(entries: ResizeObserverEntry[]): void {\n log.debug('handleHistoryResize', entries);\n const entry = entries[0];\n if (entry.contentRect.height > 0 && entry.contentRect.width > 0) {\n const { isStuckToBottom } = this.state;\n if (isStuckToBottom && !this.isAtBottom()) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n }\n\n handleToggleAutoLaunchPanels(): void {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect(): void {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout(): void {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv(): void {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv(): void {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileCanceled(): void {\n this.setState({ csvFile: null, csvPaste: null });\n }\n\n handleCsvFileOpened(file: File): void {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value: string): void {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e: DragEvent<HTMLDivElement>): void {\n if (\n e.dataTransfer == null ||\n e.dataTransfer.items == null ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e: DragEvent<HTMLDivElement>): void {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (\n e.currentTarget == null ||\n (e.currentTarget instanceof Element &&\n e.relatedTarget instanceof Element &&\n e.currentTarget.contains(e.relatedTarget))\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError(): void {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(title: string): void {\n const { dh, openObject, commandHistoryStorage, language, scope } =\n this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name: title, title, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(title);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n\n const history = consoleHistory.concat(historyItem);\n this.setState({ consoleHistory: history });\n this.scrollConsoleHistoryToBottom();\n this.updateKnownObjects(historyItem);\n openObject({ name: title, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, title, {\n command: title,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n });\n }\n\n addConsoleHistoryMessage(message?: string, error?: string): void {\n const { consoleHistory } = this.state;\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message: string): void {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error: unknown): void {\n this.addConsoleHistoryMessage(\n undefined,\n error != null ? `${error}` : undefined\n );\n }\n\n handleCsvInProgress(csvUploadInProgress: boolean): void {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions(): DropdownAction[] {\n const {\n isAutoLaunchPanelsEnabled,\n isClosePanelsOnDisconnectEnabled,\n isPrintStdOutEnabled,\n } = this.state;\n const { actions } = this.props;\n return [\n ...actions,\n {\n title: 'Print Stdout',\n action: this.handleTogglePrintStdout,\n group: ContextActions.groups.high,\n icon: isPrintStdOutEnabled ? vsCheck : undefined,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : undefined,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : undefined,\n order: 30,\n },\n {\n title: 'Upload Table from File',\n action: this.handleUploadCsv,\n group: ContextActions.groups.high + 10,\n order: 40,\n },\n ];\n }\n\n handleCommandSubmit(command: string): void {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory(): void {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(\n (objectMap: Map<string, DhType.ide.VariableDefinition>) =>\n Array.from(objectMap.values())\n );\n\n getContextActions = memoize(\n (actions: DropdownAction[]): ResolvableContextAction[] => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]\n );\n\n addCommand(command: string, focus = true, execute = false): void {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom();\n }\n }\n\n focus(): void {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(\n prevState: ConsoleState,\n state: ConsoleState,\n checkIfChanged = true\n ): void {\n const keys = Object.keys(DEFAULT_SETTINGS) as Array<keyof Settings>;\n const settings: Record<string, unknown> = {};\n let hasChanges = false;\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const { [key]: setting } = state;\n const { [key]: prevSetting } = prevState;\n if (setting !== prevSetting) {\n hasChanges = true;\n }\n settings[key] = setting;\n }\n if (checkIfChanged && !hasChanges) {\n return;\n }\n const { onSettingsChange } = this.props;\n onSettingsChange(settings);\n }\n\n updateDimensions(): void {\n if (this.consolePane.current) {\n this.setState({\n consoleHeight: this.consolePane.current.clientHeight,\n });\n }\n if (this.consoleInput.current) {\n this.consoleInput.current.updateDimensions();\n }\n }\n\n render(): ReactElement {\n const {\n actions,\n dh,\n historyChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\n disabled,\n unzip,\n supportsType,\n iconForType,\n showObjectsMenu,\n } = this.props;\n const {\n consoleHeight,\n consoleHistory,\n isScrollDecorationShown,\n objectMap,\n showCsvOverlay,\n csvFile,\n csvPaste,\n dragError,\n csvUploadInProgress,\n } = this.state;\n const consoleMenuObjects = this.getObjects(objectMap);\n const inputMaxHeight = Math.round(consoleHeight * 0.7);\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console', 'h-100', 'w-100', { disabled })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n dh={dh}\n session={session}\n overflowActions={this.handleOverflowActions}\n >\n {statusBarChildren}\n {showObjectsMenu === true && (\n <ConsoleObjectsMenu\n openObject={openObject}\n objects={consoleMenuObjects}\n />\n )}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {showCsvOverlay && (\n <CsvOverlay\n onCancel={this.handleCsvFileCanceled}\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\n allowZip={unzip != null}\n />\n )}\n <div\n role=\"presentation\"\n className={classNames('scroll-pane no-scroll-x', {\n 'scroll-decoration': isScrollDecorationShown,\n })}\n onScroll={this.handleScrollPaneScroll}\n ref={this.consoleHistoryScrollPane}\n >\n <ConsoleHistory\n items={consoleHistory}\n openObject={openObject}\n language={language}\n disabled={disabled}\n supportsType={supportsType}\n iconForType={iconForType}\n ref={this.consoleHistoryContent}\n onCommandSubmit={this.handleCommandSubmit}\n />\n {historyChildren}\n </div>\n </div>\n {!showCsvOverlay && (\n <ConsoleInput\n ref={this.consoleInput}\n session={session}\n language={language}\n scope={scope}\n onSubmit={this.handleCommandSubmit}\n maxHeight={inputMaxHeight}\n commandHistoryStorage={commandHistoryStorage}\n />\n )}\n {showCsvOverlay && (\n <CsvInputBar\n session={session}\n onOpenTable={this.handleOpenCsvTable}\n onClose={this.handleHideCsv}\n onUpdate={this.handleCsvUpdate}\n onError={this.handleCsvError}\n file={csvFile ?? undefined}\n paste={csvPaste ?? undefined}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n unzip={unzip}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nexport default Console;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,6 @@ export declare class CommandHistoryItemTooltip extends Component<CommandHistoryI
|
|
|
19
19
|
static defaultProps: {
|
|
20
20
|
onUpdate: () => void;
|
|
21
21
|
};
|
|
22
|
-
static getTimeString(startTime: string | undefined, endTime: string | number): string | null;
|
|
23
22
|
constructor(props: CommandHistoryItemTooltipProps);
|
|
24
23
|
componentDidMount(): void;
|
|
25
24
|
componentDidUpdate(prevProps: CommandHistoryItemTooltipProps, prevState: CommandHistoryItemTooltipState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryItemTooltip.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AAEjE,UAAU,8BAA8B;IACtC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,8BAA8B;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,yBAA0B,SAAQ,SAAS,CACtD,8BAA8B,EAC9B,8BAA8B,CAC/B;IACC,MAAM,CAAC,YAAY;wBACH,IAAI;MAClB;
|
|
1
|
+
{"version":3,"file":"CommandHistoryItemTooltip.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAIjE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC;AAEjE,UAAU,8BAA8B;IACtC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,8BAA8B;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,yBAA0B,SAAQ,SAAS,CACtD,8BAA8B,EAC9B,8BAA8B,CAC/B;IACC,MAAM,CAAC,YAAY;wBACH,IAAI;MAClB;gBAEU,KAAK,EAAE,8BAA8B;IAYjD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,8BAA8B,EACzC,SAAS,EAAE,8BAA8B,GACxC,IAAI;IAoBP,oBAAoB,IAAI,IAAI;IAQ5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,QAAQ,uCAAgB,IAAI,EASL;IAEvB,UAAU,IAAI,IAAI;IAMlB,SAAS,IAAI,IAAI;IAOjB,UAAU,IAAI,IAAI;IAMlB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI;IAQnD,aAAa,IAAI,IAAI;IAIrB,cAAc,UACL,MAAM,uCAAN,MAAM,aAEb;IAEF,MAAM,IAAI,YAAY;CAkDvB;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -14,14 +14,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
14
14
|
var LOAD_DATA_DEBOUNCE = 250;
|
|
15
15
|
var MAX_NUMBER_OF_LINES = 2500;
|
|
16
16
|
export class CommandHistoryItemTooltip extends Component {
|
|
17
|
-
static getTimeString(startTime, endTime) {
|
|
18
|
-
if (startTime == null || endTime === '' || endTime === 0) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
var deltaTime = Math.round((new Date(endTime).valueOf() - new Date(startTime).valueOf()) / 1000);
|
|
22
|
-
if (deltaTime < 1) return '<1s';
|
|
23
|
-
return TimeUtils.formatElapsedTime(deltaTime);
|
|
24
|
-
}
|
|
25
17
|
constructor(props) {
|
|
26
18
|
super(props);
|
|
27
19
|
_defineProperty(this, "timer", void 0);
|
|
@@ -123,7 +115,7 @@ export class CommandHistoryItemTooltip extends Component {
|
|
|
123
115
|
endTime
|
|
124
116
|
} = data !== null && data !== void 0 ? data : {};
|
|
125
117
|
var errorMessage = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : error;
|
|
126
|
-
var timeString =
|
|
118
|
+
var timeString = TimeUtils.formatConvertedDuration(startTime, endTime !== null && endTime !== void 0 ? endTime : currentTime);
|
|
127
119
|
|
|
128
120
|
// colorizing in monaco is mostly a function of the number of lines,
|
|
129
121
|
// it gets real slow after a few thousand lines. Truncate the tooltip
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryItemTooltip.js","names":["React","Component","debounce","memoize","LoadingSpinner","TimeUtils","FontAwesomeIcon","vsWarning","Code","jsx","_jsx","jsxs","_jsxs","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","getTimeString","startTime","endTime","deltaTime","Math","round","Date","valueOf","formatElapsedTime","constructor","props","_defineProperty","commandHistoryStorage","item","language","id","cleanup","listenItem","handleUpdate","handleError","name","split","join","max","bind","handleTimeout","state","currentTime","now","componentDidMount","loadData","componentDidUpdate","prevProps","prevState","_prevState$data","data","timer","result","Boolean","undefined","startTimer","stopTimer","componentWillUnmount","cancel","window","setInterval","clearInterval","updateTime","setState","error","concat","onUpdate","render","_result$error","errorMessage","timeString","previewText","getPreviewText","hasTimeString","className","children","length","icon"],"sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"sourcesContent":["import React, { Component, type ReactElement } from 'react';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport { type StorageListenerRemover } from '@deephaven/storage';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport {\n type CommandHistoryStorageData,\n type CommandHistoryStorageItem,\n} from './CommandHistoryStorage';\nimport type CommandHistoryStorage from './CommandHistoryStorage';\n\ninterface CommandHistoryItemTooltipProps {\n item: CommandHistoryStorageItem;\n language: string;\n onUpdate?: (data: CommandHistoryStorageData | null) => void;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryItemTooltipState {\n currentTime: number;\n data?: CommandHistoryStorageData;\n error?: string;\n}\n\nconst LOAD_DATA_DEBOUNCE = 250;\nconst MAX_NUMBER_OF_LINES = 2500;\n\nexport class CommandHistoryItemTooltip extends Component<\n CommandHistoryItemTooltipProps,\n CommandHistoryItemTooltipState\n> {\n static defaultProps = {\n onUpdate: (): void => undefined,\n };\n\n static getTimeString(\n startTime: string | undefined,\n endTime: string | number\n ): string | null {\n if (startTime == null || endTime === '' || endTime === 0) {\n return null;\n }\n\n const deltaTime = Math.round(\n (new Date(endTime).valueOf() - new Date(startTime).valueOf()) / 1000\n );\n\n if (deltaTime < 1) return '<1s';\n\n return TimeUtils.formatElapsedTime(deltaTime);\n }\n\n constructor(props: CommandHistoryItemTooltipProps) {\n super(props);\n\n this.handleUpdate = this.handleUpdate.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n\n this.state = {\n currentTime: Date.now(),\n };\n }\n\n componentDidMount(): void {\n this.loadData();\n }\n\n componentDidUpdate(\n prevProps: CommandHistoryItemTooltipProps,\n prevState: CommandHistoryItemTooltipState\n ): void {\n const { data } = this.state;\n\n if (\n this.timer == null &&\n !data?.result &&\n Boolean(data?.startTime) &&\n !(data == null || data.endTime === undefined)\n ) {\n this.startTimer();\n } else if (\n (data?.result && !prevState.data?.result) ||\n (Boolean(data?.endTime) &&\n !(prevState.data == null || prevState.data.endTime === undefined))\n ) {\n // Command complete\n this.stopTimer();\n }\n }\n\n componentWillUnmount(): void {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n timer?: number;\n\n cleanup?: StorageListenerRemover;\n\n loadData = debounce((): void => {\n const { commandHistoryStorage, item, language } = this.props;\n const { id } = item;\n this.cleanup = commandHistoryStorage.listenItem(\n language,\n id,\n this.handleUpdate,\n this.handleError\n );\n }, LOAD_DATA_DEBOUNCE);\n\n startTimer(): void {\n this.stopTimer();\n\n this.timer = window.setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n updateTime(): void {\n this.setState({\n currentTime: Date.now(),\n });\n }\n\n handleError(error: string): void {\n this.setState({ error: `${error}` });\n }\n\n handleUpdate(item: CommandHistoryStorageItem): void {\n const { data } = item ?? {};\n this.setState({ data });\n\n const { onUpdate } = this.props;\n onUpdate?.(data);\n }\n\n handleTimeout(): void {\n this.updateTime();\n }\n\n getPreviewText = memoize(\n (name: string) => name.split('\\n', MAX_NUMBER_OF_LINES).join('\\n'),\n { max: 1 }\n );\n\n render(): ReactElement {\n const {\n item: { name },\n language,\n } = this.props;\n const { currentTime, data, error } = this.state;\n const { result, startTime, endTime } = data ?? {};\n\n const errorMessage = result?.error ?? error;\n\n const timeString = CommandHistoryItemTooltip.getTimeString(\n startTime,\n endTime ?? currentTime\n );\n\n // colorizing in monaco is mostly a function of the number of lines,\n // it gets real slow after a few thousand lines. Truncate the tooltip\n // to avoid UI locks. The full command is still inserted.\n const previewText = this.getPreviewText(name);\n\n const hasTimeString = Boolean(timeString);\n return (\n <div className=\"command-history-item-tooltip\">\n <div className=\"scroll-container\">\n <Code language={language}>{previewText}</Code>\n {previewText.length < name.length && <p>Preview Truncated...</p>}\n </div>\n <div className=\"result-info\">\n <div className=\"d-flex justify-content-between\">\n {Boolean(errorMessage) && (\n <div className=\"text-danger mr-1\">\n <FontAwesomeIcon icon={vsWarning} /> Executed with errors\n </div>\n )}\n <div className=\"time-wrapper\">\n Elapsed time:{' '}\n {hasTimeString ? (\n <span className=\"time-string\">{timeString}</span>\n ) : (\n <LoadingSpinner className=\"loading-spinner-vertical-align\" />\n )}\n </div>\n </div>\n {Boolean(errorMessage) && (\n <div className=\"error-message\">{errorMessage}</div>\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistoryItemTooltip;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAA2B,OAAO;AAC3D,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,OAAO,MAAM,UAAU;AAC9B,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,SAAS,QAAQ,kBAAkB;AAAC,OACtCC,IAAI;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAqBX,IAAMC,kBAAkB,GAAG,GAAG;AAC9B,IAAMC,mBAAmB,GAAG,IAAI;AAEhC,OAAO,MAAMC,yBAAyB,SAASd,SAAS,CAGtD;EAKA,OAAOe,aAAaA,CAClBC,SAA6B,EAC7BC,OAAwB,EACT;IACf,IAAID,SAAS,IAAI,IAAI,IAAIC,OAAO,KAAK,EAAE,IAAIA,OAAO,KAAK,CAAC,EAAE;MACxD,OAAO,IAAI;IACb;IAEA,IAAMC,SAAS,GAAGC,IAAI,CAACC,KAAK,CAC1B,CAAC,IAAIC,IAAI,CAACJ,OAAO,CAAC,CAACK,OAAO,CAAC,CAAC,GAAG,IAAID,IAAI,CAACL,SAAS,CAAC,CAACM,OAAO,CAAC,CAAC,IAAI,IAClE,CAAC;IAED,IAAIJ,SAAS,GAAG,CAAC,EAAE,OAAO,KAAK;IAE/B,OAAOd,SAAS,CAACmB,iBAAiB,CAACL,SAAS,CAAC;EAC/C;EAEAM,WAAWA,CAACC,KAAqC,EAAE;IACjD,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA,mBAkDJzB,QAAQ,CAAC,MAAY;MAC9B,IAAM;QAAE0B,qBAAqB;QAAEC,IAAI;QAAEC;MAAS,CAAC,GAAG,IAAI,CAACJ,KAAK;MAC5D,IAAM;QAAEK;MAAG,CAAC,GAAGF,IAAI;MACnB,IAAI,CAACG,OAAO,GAAGJ,qBAAqB,CAACK,UAAU,CAC7CH,QAAQ,EACRC,EAAE,EACF,IAAI,CAACG,YAAY,EACjB,IAAI,CAACC,WACP,CAAC;IACH,CAAC,EAAEtB,kBAAkB,CAAC;IAAAc,eAAA,yBAqCLxB,OAAO,CACrBiC,IAAY,IAAKA,IAAI,CAACC,KAAK,CAAC,IAAI,EAAEvB,mBAAmB,CAAC,CAACwB,IAAI,CAAC,IAAI,CAAC,EAClE;MAAEC,GAAG,EAAE;IAAE,CACX,CAAC;IAjGC,IAAI,CAACL,YAAY,GAAG,IAAI,CAACA,YAAY,CAACM,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACL,WAAW,GAAG,IAAI,CAACA,WAAW,CAACK,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;IAElD,IAAI,CAACE,KAAK,GAAG;MACXC,WAAW,EAAErB,IAAI,CAACsB,GAAG,CAAC;IACxB,CAAC;EACH;EAEAC,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACC,QAAQ,CAAC,CAAC;EACjB;EAEAC,kBAAkBA,CAChBC,SAAyC,EACzCC,SAAyC,EACnC;IAAA,IAAAC,eAAA;IACN,IAAM;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACT,KAAK;IAE3B,IACE,IAAI,CAACU,KAAK,IAAI,IAAI,IAClB,EAACD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEE,MAAM,KACbC,OAAO,CAACH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAElC,SAAS,CAAC,IACxB,EAAEkC,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACjC,OAAO,KAAKqC,SAAS,CAAC,EAC7C;MACA,IAAI,CAACC,UAAU,CAAC,CAAC;IACnB,CAAC,MAAM,IACJL,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEE,MAAM,IAAI,GAAAH,eAAA,GAACD,SAAS,CAACE,IAAI,cAAAD,eAAA,eAAdA,eAAA,CAAgBG,MAAM,KACvCC,OAAO,CAACH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEjC,OAAO,CAAC,IACrB,EAAE+B,SAAS,CAACE,IAAI,IAAI,IAAI,IAAIF,SAAS,CAACE,IAAI,CAACjC,OAAO,KAAKqC,SAAS,CAAE,EACpE;MACA;MACA,IAAI,CAACE,SAAS,CAAC,CAAC;IAClB;EACF;EAEAC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACZ,QAAQ,CAACa,MAAM,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC3B,OAAO,IAAI,IAAI,EAAE;MACxB,IAAI,CAACA,OAAO,CAAC,CAAC;IAChB;IACA,IAAI,CAACyB,SAAS,CAAC,CAAC;EAClB;EAiBAD,UAAUA,CAAA,EAAS;IACjB,IAAI,CAACC,SAAS,CAAC,CAAC;IAEhB,IAAI,CAACL,KAAK,GAAGQ,MAAM,CAACC,WAAW,CAAC,IAAI,CAACpB,aAAa,EAAE,IAAI,CAAC;EAC3D;EAEAgB,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAACL,KAAK,IAAI,IAAI,EAAE;MACtBU,aAAa,CAAC,IAAI,CAACV,KAAK,CAAC;MACzB,IAAI,CAACA,KAAK,GAAGG,SAAS;IACxB;EACF;EAEAQ,UAAUA,CAAA,EAAS;IACjB,IAAI,CAACC,QAAQ,CAAC;MACZrB,WAAW,EAAErB,IAAI,CAACsB,GAAG,CAAC;IACxB,CAAC,CAAC;EACJ;EAEAT,WAAWA,CAAC8B,KAAa,EAAQ;IAC/B,IAAI,CAACD,QAAQ,CAAC;MAAEC,KAAK,KAAAC,MAAA,CAAKD,KAAK;IAAG,CAAC,CAAC;EACtC;EAEA/B,YAAYA,CAACL,IAA+B,EAAQ;IAClD,IAAM;MAAEsB;IAAK,CAAC,GAAGtB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,CAAC,CAAC;IAC3B,IAAI,CAACmC,QAAQ,CAAC;MAAEb;IAAK,CAAC,CAAC;IAEvB,IAAM;MAAEgB;IAAS,CAAC,GAAG,IAAI,CAACzC,KAAK;IAC/ByC,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGhB,IAAI,CAAC;EAClB;EAEAV,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACsB,UAAU,CAAC,CAAC;EACnB;EAOAK,MAAMA,CAAA,EAAiB;IAAA,IAAAC,aAAA;IACrB,IAAM;MACJxC,IAAI,EAAE;QAAEO;MAAK,CAAC;MACdN;IACF,CAAC,GAAG,IAAI,CAACJ,KAAK;IACd,IAAM;MAAEiB,WAAW;MAAEQ,IAAI;MAAEc;IAAM,CAAC,GAAG,IAAI,CAACvB,KAAK;IAC/C,IAAM;MAAEW,MAAM;MAAEpC,SAAS;MAAEC;IAAQ,CAAC,GAAGiC,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,CAAC,CAAC;IAEjD,IAAMmB,YAAY,IAAAD,aAAA,GAAGhB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,KAAK,cAAAI,aAAA,cAAAA,aAAA,GAAIJ,KAAK;IAE3C,IAAMM,UAAU,GAAGxD,yBAAyB,CAACC,aAAa,CACxDC,SAAS,EACTC,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIyB,WACb,CAAC;;IAED;IACA;IACA;IACA,IAAM6B,WAAW,GAAG,IAAI,CAACC,cAAc,CAACrC,IAAI,CAAC;IAE7C,IAAMsC,aAAa,GAAGpB,OAAO,CAACiB,UAAU,CAAC;IACzC,oBACE3D,KAAA;MAAK+D,SAAS,EAAC,8BAA8B;MAAAC,QAAA,gBAC3ChE,KAAA;QAAK+D,SAAS,EAAC,kBAAkB;QAAAC,QAAA,gBAC/BlE,IAAA,CAACF,IAAI;UAACsB,QAAQ,EAAEA,QAAS;UAAA8C,QAAA,EAAEJ;QAAW,CAAO,CAAC,EAC7CA,WAAW,CAACK,MAAM,GAAGzC,IAAI,CAACyC,MAAM,iBAAInE,IAAA;UAAAkE,QAAA,EAAG;QAAoB,CAAG,CAAC;MAAA,CAC7D,CAAC,eACNhE,KAAA;QAAK+D,SAAS,EAAC,aAAa;QAAAC,QAAA,gBAC1BhE,KAAA;UAAK+D,SAAS,EAAC,gCAAgC;UAAAC,QAAA,GAC5CtB,OAAO,CAACgB,YAAY,CAAC,iBACpB1D,KAAA;YAAK+D,SAAS,EAAC,kBAAkB;YAAAC,QAAA,gBAC/BlE,IAAA,CAACJ,eAAe;cAACwE,IAAI,EAAEvE;YAAU,CAAE,CAAC,yBACtC;UAAA,CAAK,CACN,eACDK,KAAA;YAAK+D,SAAS,EAAC,cAAc;YAAAC,QAAA,GAAC,eACf,EAAC,GAAG,EAChBF,aAAa,gBACZhE,IAAA;cAAMiE,SAAS,EAAC,aAAa;cAAAC,QAAA,EAAEL;YAAU,CAAO,CAAC,gBAEjD7D,IAAA,CAACN,cAAc;cAACuE,SAAS,EAAC;YAAgC,CAAE,CAC7D;UAAA,CACE,CAAC;QAAA,CACH,CAAC,EACLrB,OAAO,CAACgB,YAAY,CAAC,iBACpB5D,IAAA;UAAKiE,SAAS,EAAC,eAAe;UAAAC,QAAA,EAAEN;QAAY,CAAM,CACnD;MAAA,CACE,CAAC;IAAA,CACH,CAAC;EAEV;AACF;AAAC3C,eAAA,CAjLYZ,yBAAyB,kBAId;EACpBoD,QAAQ,EAAEA,CAAA,KAAYZ;AACxB,CAAC;AA6KH,eAAexC,yBAAyB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CommandHistoryItemTooltip.js","names":["React","Component","debounce","memoize","LoadingSpinner","TimeUtils","FontAwesomeIcon","vsWarning","Code","jsx","_jsx","jsxs","_jsxs","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","constructor","props","_defineProperty","commandHistoryStorage","item","language","id","cleanup","listenItem","handleUpdate","handleError","name","split","join","max","bind","handleTimeout","state","currentTime","Date","now","componentDidMount","loadData","componentDidUpdate","prevProps","prevState","_prevState$data","data","timer","result","Boolean","startTime","endTime","undefined","startTimer","stopTimer","componentWillUnmount","cancel","window","setInterval","clearInterval","updateTime","setState","error","concat","onUpdate","render","_result$error","errorMessage","timeString","formatConvertedDuration","previewText","getPreviewText","hasTimeString","className","children","length","icon"],"sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"sourcesContent":["import React, { Component, type ReactElement } from 'react';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport { type StorageListenerRemover } from '@deephaven/storage';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport {\n type CommandHistoryStorageData,\n type CommandHistoryStorageItem,\n} from './CommandHistoryStorage';\nimport type CommandHistoryStorage from './CommandHistoryStorage';\n\ninterface CommandHistoryItemTooltipProps {\n item: CommandHistoryStorageItem;\n language: string;\n onUpdate?: (data: CommandHistoryStorageData | null) => void;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryItemTooltipState {\n currentTime: number;\n data?: CommandHistoryStorageData;\n error?: string;\n}\n\nconst LOAD_DATA_DEBOUNCE = 250;\nconst MAX_NUMBER_OF_LINES = 2500;\n\nexport class CommandHistoryItemTooltip extends Component<\n CommandHistoryItemTooltipProps,\n CommandHistoryItemTooltipState\n> {\n static defaultProps = {\n onUpdate: (): void => undefined,\n };\n\n constructor(props: CommandHistoryItemTooltipProps) {\n super(props);\n\n this.handleUpdate = this.handleUpdate.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n\n this.state = {\n currentTime: Date.now(),\n };\n }\n\n componentDidMount(): void {\n this.loadData();\n }\n\n componentDidUpdate(\n prevProps: CommandHistoryItemTooltipProps,\n prevState: CommandHistoryItemTooltipState\n ): void {\n const { data } = this.state;\n\n if (\n this.timer == null &&\n !data?.result &&\n Boolean(data?.startTime) &&\n !(data == null || data.endTime === undefined)\n ) {\n this.startTimer();\n } else if (\n (data?.result && !prevState.data?.result) ||\n (Boolean(data?.endTime) &&\n !(prevState.data == null || prevState.data.endTime === undefined))\n ) {\n // Command complete\n this.stopTimer();\n }\n }\n\n componentWillUnmount(): void {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n timer?: number;\n\n cleanup?: StorageListenerRemover;\n\n loadData = debounce((): void => {\n const { commandHistoryStorage, item, language } = this.props;\n const { id } = item;\n this.cleanup = commandHistoryStorage.listenItem(\n language,\n id,\n this.handleUpdate,\n this.handleError\n );\n }, LOAD_DATA_DEBOUNCE);\n\n startTimer(): void {\n this.stopTimer();\n\n this.timer = window.setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n updateTime(): void {\n this.setState({\n currentTime: Date.now(),\n });\n }\n\n handleError(error: string): void {\n this.setState({ error: `${error}` });\n }\n\n handleUpdate(item: CommandHistoryStorageItem): void {\n const { data } = item ?? {};\n this.setState({ data });\n\n const { onUpdate } = this.props;\n onUpdate?.(data);\n }\n\n handleTimeout(): void {\n this.updateTime();\n }\n\n getPreviewText = memoize(\n (name: string) => name.split('\\n', MAX_NUMBER_OF_LINES).join('\\n'),\n { max: 1 }\n );\n\n render(): ReactElement {\n const {\n item: { name },\n language,\n } = this.props;\n const { currentTime, data, error } = this.state;\n const { result, startTime, endTime } = data ?? {};\n\n const errorMessage = result?.error ?? error;\n\n const timeString = TimeUtils.formatConvertedDuration(\n startTime,\n endTime ?? currentTime\n );\n\n // colorizing in monaco is mostly a function of the number of lines,\n // it gets real slow after a few thousand lines. Truncate the tooltip\n // to avoid UI locks. The full command is still inserted.\n const previewText = this.getPreviewText(name);\n\n const hasTimeString = Boolean(timeString);\n return (\n <div className=\"command-history-item-tooltip\">\n <div className=\"scroll-container\">\n <Code language={language}>{previewText}</Code>\n {previewText.length < name.length && <p>Preview Truncated...</p>}\n </div>\n <div className=\"result-info\">\n <div className=\"d-flex justify-content-between\">\n {Boolean(errorMessage) && (\n <div className=\"text-danger mr-1\">\n <FontAwesomeIcon icon={vsWarning} /> Executed with errors\n </div>\n )}\n <div className=\"time-wrapper\">\n Elapsed time:{' '}\n {hasTimeString ? (\n <span className=\"time-string\">{timeString}</span>\n ) : (\n <LoadingSpinner className=\"loading-spinner-vertical-align\" />\n )}\n </div>\n </div>\n {Boolean(errorMessage) && (\n <div className=\"error-message\">{errorMessage}</div>\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistoryItemTooltip;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryStorage.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandHistoryStorage.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED,MAAM,WAAW,mBACf,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC;;;;;;OAMG;IACH,OAAO,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,KAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,yBAAyB,KAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAExC;;;;;;OAMG;IACH,UAAU,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,EACxD,OAAO,CAAC,EAAE,oBAAoB,KAC3B,sBAAsB,CAAC;CAC7B;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryStorage.js","names":[],"sources":["../../src/command-history/CommandHistoryStorage.ts"],"sourcesContent":["import {\n type StorageTable,\n type StorageItem,\n type StorageItemListener,\n type StorageListenerRemover,\n type StorageErrorListener,\n} from '@deephaven/storage';\n\nexport interface CommandHistoryStorageData {\n command: string;\n startTime: string;\n endTime?: string;\n result?: { error?: string };\n}\n\nexport interface CommandHistoryStorageItem extends StorageItem {\n name: string;\n data: CommandHistoryStorageData;\n}\n\nexport interface CommandHistoryTable\n extends StorageTable<CommandHistoryStorageItem> {\n setSearch: (search: string) => void;\n}\n\nexport interface CommandHistoryStorage {\n /**\n * Retrieve a table filtered to the command history for the language and scope specified.\n * To achieve a separate history per scope (ie. dashboard), we add the scope as suffix to the data type.\n * When fetching the history, we then filter based on the timestamp\n * @param language The language to get the command history for\n * @param scope The scope of this command history, to keep different command histories separate\n * @param timestamp The time this command history scope was started\n */\n getTable: (\n language: string,\n scope: string,\n timestamp: number\n ) => Promise<CommandHistoryTable>;\n\n /**\n * Add a command to the command history\n * @param language The language to add the command history item for\n * @param scope The scope to add the command history for\n * @param command The command to add to the history\n * @param data The data to save with the command\n */\n addItem: (\n language: string,\n scope: string,\n command: string,\n data: CommandHistoryStorageData\n ) => Promise<CommandHistoryStorageItem>;\n\n /**\n * Save a modified CommandHistoryStorageItem\n * @param language The language of the item to save\n * @param item The modified item to save\n */\n updateItem: (\n language: string,\n item: CommandHistoryStorageItem\n ) => Promise<CommandHistoryStorageItem>;\n\n /**\n * Listen to an item with a specific id\n *\n * @param language The language of the item\n * @param id The id of the item to listen to\n * @param listener Called whenever there is an update on the item\n */\n listenItem: (\n language: string,\n id: string,\n listener: StorageItemListener<CommandHistoryStorageItem>,\n onError?: StorageErrorListener\n ) => StorageListenerRemover;\n}\n\nexport default CommandHistoryStorage;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CommandHistoryStorage.js","names":[],"sources":["../../src/command-history/CommandHistoryStorage.ts"],"sourcesContent":["import {\n type StorageTable,\n type StorageItem,\n type StorageItemListener,\n type StorageListenerRemover,\n type StorageErrorListener,\n} from '@deephaven/storage';\n\nexport interface CommandHistoryStorageData {\n command: string;\n startTime: string;\n endTime?: string;\n result?: { error?: string; serverStartTime?: number; serverEndTime?: number };\n}\n\nexport interface CommandHistoryStorageItem extends StorageItem {\n name: string;\n data: CommandHistoryStorageData;\n}\n\nexport interface CommandHistoryTable\n extends StorageTable<CommandHistoryStorageItem> {\n setSearch: (search: string) => void;\n}\n\nexport interface CommandHistoryStorage {\n /**\n * Retrieve a table filtered to the command history for the language and scope specified.\n * To achieve a separate history per scope (ie. dashboard), we add the scope as suffix to the data type.\n * When fetching the history, we then filter based on the timestamp\n * @param language The language to get the command history for\n * @param scope The scope of this command history, to keep different command histories separate\n * @param timestamp The time this command history scope was started\n */\n getTable: (\n language: string,\n scope: string,\n timestamp: number\n ) => Promise<CommandHistoryTable>;\n\n /**\n * Add a command to the command history\n * @param language The language to add the command history item for\n * @param scope The scope to add the command history for\n * @param command The command to add to the history\n * @param data The data to save with the command\n */\n addItem: (\n language: string,\n scope: string,\n command: string,\n data: CommandHistoryStorageData\n ) => Promise<CommandHistoryStorageItem>;\n\n /**\n * Save a modified CommandHistoryStorageItem\n * @param language The language of the item to save\n * @param item The modified item to save\n */\n updateItem: (\n language: string,\n item: CommandHistoryStorageItem\n ) => Promise<CommandHistoryStorageItem>;\n\n /**\n * Listen to an item with a specific id\n *\n * @param language The language of the item\n * @param id The id of the item to listen to\n * @param listener Called whenever there is an update on the item\n */\n listenItem: (\n language: string,\n id: string,\n listener: StorageItemListener<CommandHistoryStorageItem>,\n onError?: StorageErrorListener\n ) => StorageListenerRemover;\n}\n\nexport default CommandHistoryStorage;\n"],"mappings":"","ignoreList":[]}
|