@deephaven/console 0.9.2-beta.7 → 0.9.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Console.d.ts +4 -0
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -3
- package/dist/Console.js.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.css +19 -7
- package/dist/command-history/CommandHistoryItemTooltip.css.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.js +15 -4
- package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
- package/package.json +10 -10
package/dist/Console.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export class Console extends React.PureComponent<any, any, any> {
|
|
|
69
69
|
closeRemovedItems(changes: any): void;
|
|
70
70
|
updateHistory(result: any, historyItemParam: any): void;
|
|
71
71
|
updateKnownObjects(historyItem: any): void;
|
|
72
|
+
updateObjectMap(): void;
|
|
72
73
|
/**
|
|
73
74
|
* Updates an existing workspace CommandHistoryItem
|
|
74
75
|
* @param {object} result The result to store with the history item. Could be empty object for success
|
|
@@ -110,6 +111,7 @@ export namespace Console {
|
|
|
110
111
|
const actions: PropTypes.Requireable<(PropTypes.InferProps<{}> | null | undefined)[]>;
|
|
111
112
|
const timeZone: PropTypes.Requireable<string>;
|
|
112
113
|
const disconnectedChildren: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
114
|
+
const objectMap: PropTypes.Requireable<Map<unknown, unknown>>;
|
|
113
115
|
}
|
|
114
116
|
namespace defaultProps {
|
|
115
117
|
const statusBarChildren_1: null;
|
|
@@ -126,6 +128,8 @@ export namespace Console {
|
|
|
126
128
|
export { disconnectedChildren_1 as disconnectedChildren };
|
|
127
129
|
const timeZone_1: string;
|
|
128
130
|
export { timeZone_1 as timeZone };
|
|
131
|
+
const objectMap_1: Map<any, any>;
|
|
132
|
+
export { objectMap_1 as objectMap };
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
135
|
export default Console;
|
package/dist/Console.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.jsx"],"names":[],"mappings":"AAgCA;IACE,4BAA0B;IAE1B;;;;OAIG;IACH;;;;;;;;;SAFa,OAAO,CAQnB;IAED;;;;OAIG;IACH;;;;;;;;;SAFa,OAAO,CAMnB;IAED,wBAmEC;
|
|
1
|
+
{"version":3,"file":"Console.d.ts","sourceRoot":"","sources":["../src/Console.jsx"],"names":[],"mappings":"AAgCA;IACE,4BAA0B;IAE1B;;;;OAIG;IACH;;;;;;;;;SAFa,OAAO,CAQnB;IAED;;;;OAIG;IACH;;;;;;;;;SAFa,OAAO,CAMnB;IAED,wBAmEC;IAqID,yFAoBC;IArED,uCA+CC;IA2bD,wCAwBC;IAzgBD,sCAKC;IAoGD,qCAMC;IAED,qCASC;IAgVD,+BAqCC;IAjMD,+BAUC;IAED,qCAIC;IAED,4CAIC;IAED,gCAIC;IA/LD,+BAgBC;IAiLD,wBAMC;IAED,sBAQC;IAED,qCAEC;IAED,iCAEC;IAED,8BAyBC;IAED,8BAQC;IAED,6BAEC;IAED,oCA+BC;IAgBD,oCAEC;IAED,iCAEC;IAED,oDAEC;IAtjBC,oBAA0B;IAC1B,kCAAoC;IACpC,mCAAqC;IACrC,+CAAiD;IACjD,iBAA4B;IAC5B,yBAA2B;IAwE7B,2BAGC;IAED,6BAKC;IAED,mBAmBC;IAgFD,uFAyBC;IAqBD,mDAaC;IAoBD,qCAUC;IAED,sCAUC;IAED,wDAeC;IAED,2CAwDC;IAED,wBAGC;IAED;;;;OAIG;IACH,mCAHW,MAAM,wBACN,QAAQ,MAAM,CAAC,QAyBzB;IAED,oDASC;IAoID,yDAYC;IA+ED,4BAWC;IAED,iDAA2D;IAE3D,sDAUG;IAEH,mEASC;IAED,cAEC;IAED,+EAkBC;IAED,yBASC;CA8GF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0BmB,2CAAQ"}
|
package/dist/Console.js
CHANGED
|
@@ -98,6 +98,7 @@ export class Console extends PureComponent {
|
|
|
98
98
|
this.pending = new Pending();
|
|
99
99
|
this.queuedLogMessages = [];
|
|
100
100
|
var {
|
|
101
|
+
objectMap: _objectMap,
|
|
101
102
|
settings
|
|
102
103
|
} = this.props;
|
|
103
104
|
this.state = _objectSpread(_objectSpread({
|
|
@@ -109,7 +110,7 @@ export class Console extends PureComponent {
|
|
|
109
110
|
// Location of objects in the console history
|
|
110
111
|
objectHistoryMap: new Map(),
|
|
111
112
|
// The object definitions, name/type
|
|
112
|
-
objectMap: new Map(),
|
|
113
|
+
objectMap: new Map(_objectMap),
|
|
113
114
|
showCsvOverlay: false,
|
|
114
115
|
csvFile: null,
|
|
115
116
|
csvPaste: null,
|
|
@@ -137,6 +138,10 @@ export class Console extends PureComponent {
|
|
|
137
138
|
if (props.disconnectedChildren != null && prevProps.disconnectedChildren == null) {
|
|
138
139
|
this.disconnect();
|
|
139
140
|
}
|
|
141
|
+
|
|
142
|
+
if (props.objectMap !== prevProps.objectMap) {
|
|
143
|
+
this.updateObjectMap();
|
|
144
|
+
}
|
|
140
145
|
}
|
|
141
146
|
|
|
142
147
|
componentWillUnmount() {
|
|
@@ -457,6 +462,15 @@ export class Console extends PureComponent {
|
|
|
457
462
|
};
|
|
458
463
|
});
|
|
459
464
|
}
|
|
465
|
+
|
|
466
|
+
updateObjectMap() {
|
|
467
|
+
var {
|
|
468
|
+
objectMap
|
|
469
|
+
} = this.props;
|
|
470
|
+
this.setState({
|
|
471
|
+
objectMap
|
|
472
|
+
});
|
|
473
|
+
}
|
|
460
474
|
/**
|
|
461
475
|
* Updates an existing workspace CommandHistoryItem
|
|
462
476
|
* @param {object} result The result to store with the history item. Could be empty object for success
|
|
@@ -942,7 +956,9 @@ Console.propTypes = {
|
|
|
942
956
|
actions: PropTypes.arrayOf(PropTypes.shape({})),
|
|
943
957
|
timeZone: PropTypes.string,
|
|
944
958
|
// Message shown when the session has disconnected. Setting this value removes the input bar and disables old tables
|
|
945
|
-
disconnectedChildren: PropTypes.node
|
|
959
|
+
disconnectedChildren: PropTypes.node,
|
|
960
|
+
// Known object map
|
|
961
|
+
objectMap: PropTypes.instanceOf(Map)
|
|
946
962
|
};
|
|
947
963
|
Console.defaultProps = {
|
|
948
964
|
statusBarChildren: null,
|
|
@@ -951,7 +967,8 @@ Console.defaultProps = {
|
|
|
951
967
|
scope: null,
|
|
952
968
|
actions: [],
|
|
953
969
|
disconnectedChildren: null,
|
|
954
|
-
timeZone: 'America/New_York'
|
|
970
|
+
timeZone: 'America/New_York',
|
|
971
|
+
objectMap: new Map()
|
|
955
972
|
};
|
|
956
973
|
export default Console;
|
|
957
974
|
//# sourceMappingURL=Console.js.map
|
package/dist/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Console.jsx"],"names":["React","PureComponent","PropTypes","ContextActions","vsCheck","classNames","memoize","throttle","dh","APIPropTypes","Log","Pending","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","ConsoleUtils","CsvOverlay","CsvInputBar","ConsoleStatusBar","StoragePropTypes","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","objectMap","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","processLogMessageQueue","LOG_THROTTLE","handleUploadCsv","handleHideCsv","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","cancelListener","consolePane","createRef","consoleInput","consoleHistoryScrollPane","pending","queuedLogMessages","settings","state","consoleHistory","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","componentDidMount","initConsoleLogging","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","componentDidUpdate","prevProps","prevState","sendSettingsChange","disconnectedChildren","disconnect","componentWillUnmount","removeEventListener","cancel","deinitConsoleLogging","onLogMessage","setState","map","item","result","endTime","Date","now","changes","disabledItems","concat","created","updated","event","preventDefault","stopPropagation","current","clear","code","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","scrollConsoleHistoryToBottom","then","resolved","error","handleCommandError","historyItemParam","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","openUpdatedItems","isCanceled","history","index","lastIndexOf","focusCommandHistory","message","queueLogMessage","push","debug2","length","openObject","filter","object","isOpenableType","type","forEach","removed","closeObject","itemIndex","disableOldObject","isRemoved","name","oldIndex","get","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","force","pane","scrollTop","scrollHeight","offsetHeight","window","requestAnimationFrame","scrollPane","clientHeight","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","isValidDropItem","FILE_TYPE_ERROR","currentTarget","contains","relatedTarget","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","title","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","addCommand","focus","execute","setConsoleText","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","statusBarChildren","timeZone","consoleMenuObjects","getObjects","inputMaxHeight","Math","round","isDisconnected","contextActions","getContextActions","disconnected","handleDragOver","INPUT_CLASS_NAME","propTypes","node","shape","func","isRequired","string","CommandHistoryStorage","arrayOf","defaultProps"],"mappings":"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","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { ContextActions } from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { Pending } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport ConsoleUtils from './common/ConsoleUtils';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport StoragePropTypes from './StoragePropTypes';\n\nconst log = Log.module('Console');\n\nconst DEFAULT_SETTINGS = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n};\n\nexport class Console extends PureComponent {\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param {LogLevel} logLevel The LogLevel being checked\n * @returns {boolean} true if the log level is an error level log\n */\n static isErrorLevel(logLevel) {\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} logLevel The LogLevel being checked\n * @returns {boolean} true if the log level should be output to the console\n */\n static isOutputLevel(logLevel) {\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) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleToggleAutoLaunchPanels = this.handleToggleAutoLaunchPanels.bind(\n this\n );\n this.handleToggleClosePanelsOnDisconnect = this.handleToggleClosePanelsOnDisconnect.bind(\n this\n );\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.processLogMessageQueue = throttle(\n this.processLogMessageQueue.bind(this),\n Console.LOG_THROTTLE\n );\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.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.cancelListener = null;\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n\n const { 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(),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount() {\n this.initConsoleLogging();\n\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (\n props.disconnectedChildren != null &&\n prevProps.disconnectedChildren == null\n ) {\n this.disconnect();\n }\n }\n\n componentWillUnmount() {\n const { session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n }\n\n initConsoleLogging() {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging() {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = null;\n }\n }\n\n disconnect() {\n this.setState(({ consoleHistory }) => ({\n // Reset any pending commands with an empty result, disable all tables/widgets\n consoleHistory: consoleHistory.map(item => {\n if (item.result == null) {\n return { ...item, endTime: Date.now(), result: {} };\n }\n const { result } = item;\n if (result.changes) {\n const disabledItems = []\n .concat(result.changes.created)\n .concat(result.changes.updated);\n return { ...item, disabledItems };\n }\n return item;\n }),\n objectHistoryMap: new Map(),\n objectMap: new Map(),\n }));\n }\n\n handleClearShortcut(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current.clear();\n }\n\n handleCommandStarted(event) {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem = {\n command: code,\n result: null,\n disabledObjects: [],\n startTime: Date.now(),\n endTime: null,\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 endTime: null,\n result: null,\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom(true);\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(result, historyItemParam, workspaceItemPromise) {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = null;\n historyItem.cancelResult = null;\n\n if (!result) {\n return;\n }\n\n historyItem.result = result;\n\n this.updateHistory(result, historyItem);\n this.updateKnownObjects(historyItem);\n this.updateWorkspaceHistoryItem(\n { error: result.error },\n workspaceItemPromise\n );\n\n this.closeRemovedItems(result.changes);\n this.openUpdatedItems(result.changes);\n }\n\n handleCommandError(error, historyItemParam, workspaceItemPromise) {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = null;\n historyItem.cancelResult = null;\n\n if (error && error.isCanceled) {\n log.debug('Called handleCommandError on a cancelled promise result');\n return;\n }\n\n this.updateWorkspaceHistoryItem(\n { error: `${error}` },\n workspaceItemPromise\n );\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const index = history.lastIndexOf(historyItem);\n historyItem.endTime = Date.now();\n historyItem.result = { error };\n history[index] = { ...historyItem };\n return {\n consoleHistory: history,\n };\n });\n }\n\n handleFocusHistory(event) {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message) {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (Console.isOutputLevel(message.logLevel)) {\n this.queueLogMessage(message.message, message.logLevel);\n }\n }\n\n queueLogMessage(message, logLevel) {\n const result = {};\n if (Console.isErrorLevel(logLevel)) {\n result.error = message;\n } else {\n result.message = message;\n }\n\n const historyItem = { command: null, result };\n\n this.queuedLogMessages.push(historyItem);\n\n this.processLogMessageQueue();\n }\n\n processLogMessageQueue() {\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => {\n log.debug2(\n 'processLogMessageQueue',\n this.queuedLogMessages.length,\n ' items'\n );\n\n let { consoleHistory } = state;\n consoleHistory = consoleHistory.concat(this.queuedLogMessages);\n this.queuedLogMessages = [];\n\n return { consoleHistory };\n });\n }\n\n openUpdatedItems(changes) {\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (!changes || !isAutoLaunchPanelsEnabled) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated]\n .filter(object => ConsoleUtils.isOpenableType(object.type))\n .forEach(object => openObject(object));\n }\n\n closeRemovedItems(changes) {\n if (!changes || !changes.removed || changes.removed.length === 0) {\n return;\n }\n\n const { closeObject } = this.props;\n const { removed } = changes;\n removed\n .filter(object => ConsoleUtils.isOpenableType(object.type))\n .forEach(object => closeObject(object));\n }\n\n updateHistory(result, historyItemParam) {\n const historyItem = historyItemParam;\n if (!result || !result.changes || !historyItem) {\n return;\n }\n\n historyItem.endTime = Date.now();\n\n this.scrollConsoleHistoryToBottom();\n\n // Update history to re-render items as necessary\n this.setState(state => {\n const consoleHistory = state.consoleHistory.concat();\n return { consoleHistory };\n });\n }\n\n updateKnownObjects(historyItem) {\n const { changes } = historyItem.result;\n if (\n !changes ||\n ((!changes.created || changes.created.length === 0) &&\n (!changes.updated || changes.updated.length === 0) &&\n (!changes.removed || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const itemIndex = history.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in state.consoleHistory`);\n return null;\n }\n\n const objectHistoryMap = new Map(state.objectHistoryMap);\n const objectMap = new Map(state.objectMap);\n\n const disableOldObject = (object, isRemoved = false) => {\n const { name } = object;\n const oldIndex = objectHistoryMap.get(name);\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 if (oldIndex >= 0) {\n // disable outdated object variable in the old consoleHistory item\n history[oldIndex].disabledObjects = history[\n oldIndex\n ].disabledObjects.concat(name);\n history[oldIndex] = { ...history[oldIndex] };\n }\n objectHistoryMap.set(name, itemIndex);\n if (isRemoved) {\n objectMap.delete(name);\n } else {\n objectMap.set(name, 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 { name } = object;\n objectHistoryMap.set(name, itemIndex);\n objectMap.set(name, object);\n });\n\n return { objectHistoryMap, objectMap, consoleHistory: history };\n });\n }\n\n /**\n * Updates an existing workspace CommandHistoryItem\n * @param {object} result The result to store with the history item. Could be empty object for success\n * @param {Promise<object>} workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(result, workspaceItemPromise) {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(force = false) {\n const pane = this.consoleHistoryScrollPane.current;\n if (!force && pane.scrollTop < pane.scrollHeight - pane.offsetHeight) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTop = pane.scrollHeight;\n });\n }\n\n handleScrollPaneScroll() {\n const scrollPane = this.consoleHistoryScrollPane.current;\n if (\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight\n ) {\n this.setState({ isScrollDecorationShown: true });\n } else {\n this.setState({ isScrollDecorationShown: false });\n }\n }\n\n handleToggleAutoLaunchPanels() {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect() {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout() {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv() {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv() {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileOpened(file) {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value) {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e) {\n if (\n !e.dataTransfer ||\n !e.dataTransfer.items ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e) {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (!e.currentTarget || e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError() {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(name) {\n const { openObject, commandHistoryStorage, language, scope } = this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(name);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n this.scrollConsoleHistoryToBottom(true);\n this.updateKnownObjects(historyItem);\n openObject({ name, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, name, {\n command: name,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n result: null,\n });\n }\n\n addConsoleHistoryMessage(message, error) {\n const { consoleHistory } = this.state;\n const historyItem = {\n command: '',\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message) {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error) {\n this.addConsoleHistoryMessage(null, error);\n }\n\n handleCsvInProgress(csvUploadInProgress) {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions() {\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 : null,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : null,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : null,\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) {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom(true);\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory() {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(objectMap => [...objectMap.values()]);\n\n getContextActions = memoize(actions => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]);\n\n addCommand(command, focus = true, execute = false) {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom(true);\n }\n }\n\n focus() {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(prevState, state, checkIfChanged = true) {\n const keys = Object.keys(DEFAULT_SETTINGS);\n const settings = {};\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() {\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() {\n const {\n actions,\n disconnectedChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\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 isDisconnected = disconnectedChildren != null;\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console h-100 w-100', {\n disconnected: isDisconnected,\n })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n session={session}\n overflowActions={this.handleOverflowActions}\n openObject={openObject}\n objects={consoleMenuObjects}\n >\n {statusBarChildren}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {!isDisconnected && showCsvOverlay && (\n <CsvOverlay\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\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 />\n {isDisconnected && disconnectedChildren}\n </div>\n </div>\n {!isDisconnected && !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 {!isDisconnected && 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}\n paste={csvPaste}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nConsole.propTypes = {\n statusBarChildren: PropTypes.node,\n settings: PropTypes.shape({}),\n focusCommandHistory: PropTypes.func.isRequired,\n openObject: PropTypes.func.isRequired,\n closeObject: PropTypes.func.isRequired,\n session: APIPropTypes.IdeSession.isRequired,\n language: PropTypes.string.isRequired,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n onSettingsChange: PropTypes.func,\n scope: PropTypes.string,\n actions: PropTypes.arrayOf(PropTypes.shape({})),\n timeZone: PropTypes.string,\n\n // Message shown when the session has disconnected. Setting this value removes the input bar and disables old tables\n disconnectedChildren: PropTypes.node,\n};\n\nConsole.defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: () => {},\n scope: null,\n actions: [],\n disconnectedChildren: null,\n timeZone: 'America/New_York',\n};\n\nexport default Console;\n"],"file":"Console.js"}
|
|
1
|
+
{"version":3,"sources":["../src/Console.jsx"],"names":["React","PureComponent","PropTypes","ContextActions","vsCheck","classNames","memoize","throttle","dh","APIPropTypes","Log","Pending","ConsoleHistory","SHORTCUTS","LogLevel","ConsoleInput","ConsoleUtils","CsvOverlay","CsvInputBar","ConsoleStatusBar","StoragePropTypes","log","module","DEFAULT_SETTINGS","isAutoLaunchPanelsEnabled","isPrintStdOutEnabled","isClosePanelsOnDisconnectEnabled","Console","isErrorLevel","logLevel","STDERR","ERROR","FATAL","isOutputLevel","STDOUT","constructor","props","objectMap","values","actions","action","handleClearShortcut","shortcut","CONSOLE","CLEAR","handleFocusHistory","FOCUS_HISTORY","handleCommandResult","bind","handleCommandStarted","handleCommandSubmit","handleLogMessage","handleOverflowActions","handleScrollPaneScroll","handleToggleAutoLaunchPanels","handleToggleClosePanelsOnDisconnect","handleTogglePrintStdout","processLogMessageQueue","LOG_THROTTLE","handleUploadCsv","handleHideCsv","handleCsvFileOpened","handleCsvPaste","handleDragEnter","handleDragLeave","handleClearDragError","handleOpenCsvTable","handleCsvUpdate","handleCsvError","handleCsvInProgress","cancelListener","consolePane","createRef","consoleInput","consoleHistoryScrollPane","pending","queuedLogMessages","settings","state","consoleHistory","consoleHeight","isScrollDecorationShown","objectHistoryMap","Map","showCsvOverlay","csvFile","csvPaste","dragError","csvUploadInProgress","componentDidMount","initConsoleLogging","session","addEventListener","IdeSession","EVENT_COMMANDSTARTED","updateDimensions","componentDidUpdate","prevProps","prevState","sendSettingsChange","disconnectedChildren","disconnect","updateObjectMap","componentWillUnmount","removeEventListener","cancel","deinitConsoleLogging","onLogMessage","setState","map","item","result","endTime","Date","now","changes","disabledItems","concat","created","updated","event","preventDefault","stopPropagation","current","clear","code","detail","wrappedResult","add","historyItem","command","disabledObjects","startTime","cancelResult","commandHistoryStorage","language","scope","workspaceItemPromise","addItem","toJSON","catch","err","debug","scrollConsoleHistoryToBottom","then","resolved","error","handleCommandError","historyItemParam","updateHistory","updateKnownObjects","updateWorkspaceHistoryItem","closeRemovedItems","openUpdatedItems","isCanceled","history","index","lastIndexOf","focusCommandHistory","message","queueLogMessage","push","debug2","length","openObject","filter","object","isOpenableType","type","forEach","removed","closeObject","itemIndex","disableOldObject","isRemoved","name","oldIndex","get","set","delete","promise","workspaceItem","updatedItem","data","updateItem","warn","force","pane","scrollTop","scrollHeight","offsetHeight","window","requestAnimationFrame","scrollPane","clientHeight","file","value","e","dataTransfer","items","kind","MULTIPLE_FILE_ERROR","isValidDropItem","FILE_TYPE_ERROR","currentTarget","contains","relatedTarget","VariableType","TABLE","isExistingObject","has","addConsoleHistoryMessage","title","group","groups","high","icon","order","clearConsoleHistory","runCode","keys","addCommand","focus","execute","setConsoleText","checkIfChanged","Object","hasChanges","i","key","setting","prevSetting","onSettingsChange","render","statusBarChildren","timeZone","consoleMenuObjects","getObjects","inputMaxHeight","Math","round","isDisconnected","contextActions","getContextActions","disconnected","handleDragOver","INPUT_CLASS_NAME","propTypes","node","shape","func","isRequired","string","CommandHistoryStorage","arrayOf","instanceOf","defaultProps"],"mappings":"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","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { ContextActions } from '@deephaven/components';\nimport { vsCheck } from '@deephaven/icons';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { Pending } from '@deephaven/utils';\nimport ConsoleHistory from './console-history/ConsoleHistory';\nimport SHORTCUTS from './ConsoleShortcuts';\nimport LogLevel from './log/LogLevel';\nimport ConsoleInput from './ConsoleInput';\nimport ConsoleUtils from './common/ConsoleUtils';\nimport CsvOverlay from './csv/CsvOverlay';\nimport CsvInputBar from './csv/CsvInputBar';\nimport './Console.scss';\nimport ConsoleStatusBar from './ConsoleStatusBar';\nimport StoragePropTypes from './StoragePropTypes';\n\nconst log = Log.module('Console');\n\nconst DEFAULT_SETTINGS = {\n isAutoLaunchPanelsEnabled: true,\n isPrintStdOutEnabled: true,\n isClosePanelsOnDisconnectEnabled: true,\n};\n\nexport class Console extends PureComponent {\n static LOG_THROTTLE = 500;\n\n /**\n * Check if the provided log level is an error type\n * @param {LogLevel} logLevel The LogLevel being checked\n * @returns {boolean} true if the log level is an error level log\n */\n static isErrorLevel(logLevel) {\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} logLevel The LogLevel being checked\n * @returns {boolean} true if the log level should be output to the console\n */\n static isOutputLevel(logLevel) {\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) {\n super(props);\n\n this.handleCommandResult = this.handleCommandResult.bind(this);\n this.handleCommandStarted = this.handleCommandStarted.bind(this);\n this.handleCommandSubmit = this.handleCommandSubmit.bind(this);\n this.handleClearShortcut = this.handleClearShortcut.bind(this);\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleOverflowActions = this.handleOverflowActions.bind(this);\n this.handleScrollPaneScroll = this.handleScrollPaneScroll.bind(this);\n this.handleToggleAutoLaunchPanels = this.handleToggleAutoLaunchPanels.bind(\n this\n );\n this.handleToggleClosePanelsOnDisconnect = this.handleToggleClosePanelsOnDisconnect.bind(\n this\n );\n this.handleTogglePrintStdout = this.handleTogglePrintStdout.bind(this);\n this.processLogMessageQueue = throttle(\n this.processLogMessageQueue.bind(this),\n Console.LOG_THROTTLE\n );\n this.handleUploadCsv = this.handleUploadCsv.bind(this);\n this.handleHideCsv = this.handleHideCsv.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.cancelListener = null;\n this.consolePane = React.createRef();\n this.consoleInput = React.createRef();\n this.consoleHistoryScrollPane = React.createRef();\n this.pending = new Pending();\n this.queuedLogMessages = [];\n\n const { objectMap, settings } = this.props;\n\n this.state = {\n // Need separate histories as console history has stdout/stderr output\n consoleHistory: [],\n\n // Height of the viewport of the console input and history\n consoleHeight: 0,\n\n isScrollDecorationShown: false,\n\n // Location of objects in the console history\n objectHistoryMap: new Map(),\n\n // The object definitions, name/type\n objectMap: new Map(objectMap),\n\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n\n ...DEFAULT_SETTINGS,\n ...settings,\n };\n }\n\n componentDidMount() {\n this.initConsoleLogging();\n\n const { session } = this.props;\n session.addEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.updateDimensions();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { props, state } = this;\n this.sendSettingsChange(prevState, state);\n\n if (\n props.disconnectedChildren != null &&\n prevProps.disconnectedChildren == null\n ) {\n this.disconnect();\n }\n\n if (props.objectMap !== prevProps.objectMap) {\n this.updateObjectMap();\n }\n }\n\n componentWillUnmount() {\n const { session } = this.props;\n\n session.removeEventListener(\n dh.IdeSession.EVENT_COMMANDSTARTED,\n this.handleCommandStarted\n );\n\n this.pending.cancel();\n this.processLogMessageQueue.cancel();\n\n this.deinitConsoleLogging();\n }\n\n initConsoleLogging() {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n deinitConsoleLogging() {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = null;\n }\n }\n\n disconnect() {\n this.setState(({ consoleHistory }) => ({\n // Reset any pending commands with an empty result, disable all tables/widgets\n consoleHistory: consoleHistory.map(item => {\n if (item.result == null) {\n return { ...item, endTime: Date.now(), result: {} };\n }\n const { result } = item;\n if (result.changes) {\n const disabledItems = []\n .concat(result.changes.created)\n .concat(result.changes.updated);\n return { ...item, disabledItems };\n }\n return item;\n }),\n objectHistoryMap: new Map(),\n objectMap: new Map(),\n }));\n }\n\n handleClearShortcut(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.consoleInput.current.clear();\n }\n\n handleCommandStarted(event) {\n const { code, result } = event.detail;\n const wrappedResult = this.pending.add(result);\n const historyItem = {\n command: code,\n result: null,\n disabledObjects: [],\n startTime: Date.now(),\n endTime: null,\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 endTime: null,\n result: null,\n }\n );\n workspaceItemPromise.catch(err => {\n log.debug('Error adding workspace item', err);\n });\n\n this.setState(\n state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }),\n () => {\n this.scrollConsoleHistoryToBottom(true);\n }\n );\n\n wrappedResult\n .then(resolved => {\n this.handleCommandResult(resolved, historyItem, workspaceItemPromise);\n })\n .catch(error => {\n this.handleCommandError(error, historyItem, workspaceItemPromise);\n });\n }\n\n handleCommandResult(result, historyItemParam, workspaceItemPromise) {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = null;\n historyItem.cancelResult = null;\n\n if (!result) {\n return;\n }\n\n historyItem.result = result;\n\n this.updateHistory(result, historyItem);\n this.updateKnownObjects(historyItem);\n this.updateWorkspaceHistoryItem(\n { error: result.error },\n workspaceItemPromise\n );\n\n this.closeRemovedItems(result.changes);\n this.openUpdatedItems(result.changes);\n }\n\n handleCommandError(error, historyItemParam, workspaceItemPromise) {\n const historyItem = historyItemParam;\n historyItem.wrappedResult = null;\n historyItem.cancelResult = null;\n\n if (error && error.isCanceled) {\n log.debug('Called handleCommandError on a cancelled promise result');\n return;\n }\n\n this.updateWorkspaceHistoryItem(\n { error: `${error}` },\n workspaceItemPromise\n );\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const index = history.lastIndexOf(historyItem);\n historyItem.endTime = Date.now();\n historyItem.result = { error };\n history[index] = { ...historyItem };\n return {\n consoleHistory: history,\n };\n });\n }\n\n handleFocusHistory(event) {\n event.preventDefault();\n event.stopPropagation();\n\n const { focusCommandHistory } = this.props;\n focusCommandHistory();\n }\n\n handleLogMessage(message) {\n const { isPrintStdOutEnabled } = this.state;\n if (!isPrintStdOutEnabled) {\n return;\n }\n\n if (Console.isOutputLevel(message.logLevel)) {\n this.queueLogMessage(message.message, message.logLevel);\n }\n }\n\n queueLogMessage(message, logLevel) {\n const result = {};\n if (Console.isErrorLevel(logLevel)) {\n result.error = message;\n } else {\n result.message = message;\n }\n\n const historyItem = { command: null, result };\n\n this.queuedLogMessages.push(historyItem);\n\n this.processLogMessageQueue();\n }\n\n processLogMessageQueue() {\n this.scrollConsoleHistoryToBottom();\n\n this.setState(state => {\n log.debug2(\n 'processLogMessageQueue',\n this.queuedLogMessages.length,\n ' items'\n );\n\n let { consoleHistory } = state;\n consoleHistory = consoleHistory.concat(this.queuedLogMessages);\n this.queuedLogMessages = [];\n\n return { consoleHistory };\n });\n }\n\n openUpdatedItems(changes) {\n const { isAutoLaunchPanelsEnabled } = this.state;\n if (!changes || !isAutoLaunchPanelsEnabled) {\n return;\n }\n\n const { openObject } = this.props;\n [...changes.created, ...changes.updated]\n .filter(object => ConsoleUtils.isOpenableType(object.type))\n .forEach(object => openObject(object));\n }\n\n closeRemovedItems(changes) {\n if (!changes || !changes.removed || changes.removed.length === 0) {\n return;\n }\n\n const { closeObject } = this.props;\n const { removed } = changes;\n removed\n .filter(object => ConsoleUtils.isOpenableType(object.type))\n .forEach(object => closeObject(object));\n }\n\n updateHistory(result, historyItemParam) {\n const historyItem = historyItemParam;\n if (!result || !result.changes || !historyItem) {\n return;\n }\n\n historyItem.endTime = Date.now();\n\n this.scrollConsoleHistoryToBottom();\n\n // Update history to re-render items as necessary\n this.setState(state => {\n const consoleHistory = state.consoleHistory.concat();\n return { consoleHistory };\n });\n }\n\n updateKnownObjects(historyItem) {\n const { changes } = historyItem.result;\n if (\n !changes ||\n ((!changes.created || changes.created.length === 0) &&\n (!changes.updated || changes.updated.length === 0) &&\n (!changes.removed || changes.removed.length === 0))\n ) {\n log.debug2('updateKnownObjects no changes');\n return;\n }\n\n this.setState(state => {\n const history = state.consoleHistory.concat();\n const itemIndex = history.lastIndexOf(historyItem);\n if (itemIndex < 0) {\n log.error(`historyItem not found in state.consoleHistory`);\n return null;\n }\n\n const objectHistoryMap = new Map(state.objectHistoryMap);\n const objectMap = new Map(state.objectMap);\n\n const disableOldObject = (object, isRemoved = false) => {\n const { name } = object;\n const oldIndex = objectHistoryMap.get(name);\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 if (oldIndex >= 0) {\n // disable outdated object variable in the old consoleHistory item\n history[oldIndex].disabledObjects = history[\n oldIndex\n ].disabledObjects.concat(name);\n history[oldIndex] = { ...history[oldIndex] };\n }\n objectHistoryMap.set(name, itemIndex);\n if (isRemoved) {\n objectMap.delete(name);\n } else {\n objectMap.set(name, 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 { name } = object;\n objectHistoryMap.set(name, itemIndex);\n objectMap.set(name, object);\n });\n\n return { objectHistoryMap, objectMap, consoleHistory: history };\n });\n }\n\n updateObjectMap() {\n const { objectMap } = this.props;\n this.setState({ objectMap });\n }\n\n /**\n * Updates an existing workspace CommandHistoryItem\n * @param {object} result The result to store with the history item. Could be empty object for success\n * @param {Promise<object>} workspaceItemPromise The workspace data row promise for the workspace item to be updated\n */\n updateWorkspaceHistoryItem(result, workspaceItemPromise) {\n const promise = this.pending.add(workspaceItemPromise);\n\n const endTime = new Date().toJSON();\n promise\n .then(workspaceItem => {\n const updatedItem = {\n ...workspaceItem,\n data: {\n ...workspaceItem.data,\n endTime,\n result,\n },\n };\n\n const { commandHistoryStorage, language } = this.props;\n commandHistoryStorage.updateItem(language, updatedItem).catch(err => {\n log.warn('Error updating command history storage', err);\n });\n })\n .catch(err => {\n log.debug('Error updating workspace history item', err);\n });\n }\n\n scrollConsoleHistoryToBottom(force = false) {\n const pane = this.consoleHistoryScrollPane.current;\n if (!force && pane.scrollTop < pane.scrollHeight - pane.offsetHeight) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n pane.scrollTop = pane.scrollHeight;\n });\n }\n\n handleScrollPaneScroll() {\n const scrollPane = this.consoleHistoryScrollPane.current;\n if (\n scrollPane.scrollTop > 0 &&\n scrollPane.scrollHeight > scrollPane.clientHeight\n ) {\n this.setState({ isScrollDecorationShown: true });\n } else {\n this.setState({ isScrollDecorationShown: false });\n }\n }\n\n handleToggleAutoLaunchPanels() {\n this.setState(state => ({\n isAutoLaunchPanelsEnabled: !state.isAutoLaunchPanelsEnabled,\n }));\n }\n\n handleToggleClosePanelsOnDisconnect() {\n this.setState(state => ({\n isClosePanelsOnDisconnectEnabled: !state.isClosePanelsOnDisconnectEnabled,\n }));\n }\n\n handleTogglePrintStdout() {\n this.setState(state => ({\n isPrintStdOutEnabled: !state.isPrintStdOutEnabled,\n }));\n }\n\n handleUploadCsv() {\n this.setState({\n showCsvOverlay: true,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleHideCsv() {\n this.setState({\n showCsvOverlay: false,\n csvFile: null,\n csvPaste: null,\n dragError: null,\n csvUploadInProgress: false,\n });\n }\n\n handleCsvFileOpened(file) {\n this.setState({ csvFile: file, csvPaste: null });\n }\n\n handleCsvPaste(value) {\n this.setState({ csvFile: null, csvPaste: value });\n }\n\n handleDragEnter(e) {\n if (\n !e.dataTransfer ||\n !e.dataTransfer.items ||\n e.dataTransfer.items.length === 0 ||\n e.dataTransfer.items[0].kind === 'string'\n ) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: true });\n\n const { items } = e.dataTransfer;\n if (items.length > 1) {\n this.setState({ dragError: CsvOverlay.MULTIPLE_FILE_ERROR });\n return;\n }\n\n const item = items[0];\n if (CsvOverlay.isValidDropItem(item)) {\n this.setState({ dragError: null });\n } else {\n this.setState({ dragError: CsvOverlay.FILE_TYPE_ERROR });\n }\n }\n\n handleDragLeave(e) {\n // DragLeave gets fired for every child element, so make sure we're actually leaving the drop zone\n if (!e.currentTarget || e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.setState({ showCsvOverlay: false, dragError: null });\n }\n\n handleClearDragError() {\n this.setState({ dragError: null });\n }\n\n handleOpenCsvTable(name) {\n const { openObject, commandHistoryStorage, language, scope } = this.props;\n const { consoleHistory, objectMap } = this.state;\n const object = { name, type: dh.VariableType.TABLE };\n const isExistingObject = objectMap.has(name);\n const historyItem = {\n startTime: Date.now(),\n endTime: Date.now(),\n disabledObjects: [],\n result: {\n changes: {\n created: [],\n updated: [],\n removed: [],\n [isExistingObject ? 'updated' : 'created']: [object],\n },\n },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n this.scrollConsoleHistoryToBottom(true);\n this.updateKnownObjects(historyItem);\n openObject({ name, type: dh.VariableType.TABLE });\n commandHistoryStorage.addItem(language, scope, name, {\n command: name,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON(),\n result: null,\n });\n }\n\n addConsoleHistoryMessage(message, error) {\n const { consoleHistory } = this.state;\n const historyItem = {\n command: '',\n startTime: Date.now(),\n endTime: Date.now(),\n result: { message, error },\n };\n const history = consoleHistory.concat(historyItem);\n this.setState({\n consoleHistory: history,\n });\n }\n\n handleCsvUpdate(message) {\n this.addConsoleHistoryMessage(message);\n }\n\n handleCsvError(error) {\n this.addConsoleHistoryMessage(null, error);\n }\n\n handleCsvInProgress(csvUploadInProgress) {\n this.setState({ csvUploadInProgress });\n }\n\n handleOverflowActions() {\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 : null,\n order: 10,\n },\n {\n title: 'Auto Launch Panels',\n action: this.handleToggleAutoLaunchPanels,\n group: ContextActions.groups.high,\n icon: isAutoLaunchPanelsEnabled ? vsCheck : null,\n order: 20,\n },\n {\n title: 'Close Panels on Disconnect',\n action: this.handleToggleClosePanelsOnDisconnect,\n group: ContextActions.groups.high,\n icon: isClosePanelsOnDisconnectEnabled ? vsCheck : null,\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) {\n if (command === 'clear' || command === 'cls') {\n this.clearConsoleHistory();\n } else if (command.length > 0) {\n // Result is handled in this.handleCommandStarted\n const { session } = this.props;\n session.runCode(command).catch(error => {\n log.error('There was an error initiating the command', error);\n });\n } else {\n // Empty command, just pump a blank line out to history\n const historyItem = {\n command: ' ',\n result: {},\n startTime: Date.now(),\n endTime: Date.now(),\n };\n\n this.scrollConsoleHistoryToBottom(true);\n\n this.setState(state => ({\n consoleHistory: state.consoleHistory.concat(historyItem),\n }));\n }\n }\n\n clearConsoleHistory() {\n this.pending.cancel();\n\n this.setState(state => {\n // Replace all values with -1 to indicate that table references are still active\n // but don't have corresponding command indexes in consoleHistory\n const objectHistoryMap = new Map(\n [...state.objectHistoryMap.keys()].map(name => [name, -1])\n );\n return { consoleHistory: [], objectHistoryMap };\n });\n }\n\n getObjects = memoize(objectMap => [...objectMap.values()]);\n\n getContextActions = memoize(actions => [\n ...actions,\n {\n action: this.handleClearShortcut,\n shortcut: SHORTCUTS.CONSOLE.CLEAR,\n },\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.CONSOLE.FOCUS_HISTORY,\n },\n ]);\n\n addCommand(command, focus = true, execute = false) {\n if (!this.consoleInput.current) {\n return;\n }\n this.consoleInput.current.setConsoleText(command, focus, execute);\n\n if (focus) {\n this.scrollConsoleHistoryToBottom(true);\n }\n }\n\n focus() {\n this.consoleInput.current?.focus();\n }\n\n sendSettingsChange(prevState, state, checkIfChanged = true) {\n const keys = Object.keys(DEFAULT_SETTINGS);\n const settings = {};\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() {\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() {\n const {\n actions,\n disconnectedChildren,\n language,\n statusBarChildren,\n openObject,\n session,\n scope,\n commandHistoryStorage,\n timeZone,\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 isDisconnected = disconnectedChildren != null;\n const contextActions = this.getContextActions(actions);\n\n return (\n <div\n role=\"presentation\"\n className={classNames('iris-console h-100 w-100', {\n disconnected: isDisconnected,\n })}\n >\n <div className=\"console-pane\" ref={this.consolePane}>\n <ConsoleStatusBar\n session={session}\n overflowActions={this.handleOverflowActions}\n openObject={openObject}\n objects={consoleMenuObjects}\n >\n {statusBarChildren}\n </ConsoleStatusBar>\n <div\n className=\"console-csv-container\"\n onDragOver={CsvOverlay.handleDragOver}\n onDragEnter={this.handleDragEnter}\n onDragLeave={this.handleDragLeave}\n >\n {!isDisconnected && showCsvOverlay && (\n <CsvOverlay\n onFileOpened={this.handleCsvFileOpened}\n onPaste={this.handleCsvPaste}\n clearDragError={this.handleClearDragError}\n dragError={dragError}\n onError={this.handleCsvError}\n uploadInProgress={csvUploadInProgress}\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 />\n {isDisconnected && disconnectedChildren}\n </div>\n </div>\n {!isDisconnected && !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 {!isDisconnected && 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}\n paste={csvPaste}\n onInProgress={this.handleCsvInProgress}\n timeZone={timeZone}\n />\n )}\n </div>\n <ContextActions\n actions={contextActions}\n ignoreClassNames={[ConsoleInput.INPUT_CLASS_NAME]}\n />\n </div>\n );\n }\n}\n\nConsole.propTypes = {\n statusBarChildren: PropTypes.node,\n settings: PropTypes.shape({}),\n focusCommandHistory: PropTypes.func.isRequired,\n openObject: PropTypes.func.isRequired,\n closeObject: PropTypes.func.isRequired,\n session: APIPropTypes.IdeSession.isRequired,\n language: PropTypes.string.isRequired,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n onSettingsChange: PropTypes.func,\n scope: PropTypes.string,\n actions: PropTypes.arrayOf(PropTypes.shape({})),\n timeZone: PropTypes.string,\n\n // Message shown when the session has disconnected. Setting this value removes the input bar and disables old tables\n disconnectedChildren: PropTypes.node,\n\n // Known object map\n objectMap: PropTypes.instanceOf(Map),\n};\n\nConsole.defaultProps = {\n statusBarChildren: null,\n settings: {},\n onSettingsChange: () => {},\n scope: null,\n actions: [],\n disconnectedChildren: null,\n timeZone: 'America/New_York',\n objectMap: new Map(),\n};\n\nexport default Console;\n"],"file":"Console.js"}
|
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
.command-history-item-popper {
|
|
2
2
|
padding: 0;
|
|
3
3
|
}
|
|
4
|
+
.command-history-item-popper .popper-content .tooltip-content {
|
|
5
|
+
padding: 0;
|
|
6
|
+
}
|
|
4
7
|
.command-history-item-popper .command-history-item-tooltip {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
5
10
|
max-height: 50vh;
|
|
6
11
|
max-width: 50vw;
|
|
7
|
-
overflow: auto;
|
|
8
12
|
text-align: left;
|
|
9
|
-
|
|
13
|
+
}
|
|
14
|
+
.command-history-item-popper .command-history-item-tooltip .scroll-container {
|
|
15
|
+
padding: 0.5rem;
|
|
16
|
+
overflow: auto;
|
|
10
17
|
}
|
|
11
18
|
.command-history-item-popper .command-history-item-tooltip .result-info {
|
|
12
|
-
|
|
19
|
+
flex-shrink: 0;
|
|
20
|
+
border-top: 1px solid #5b5a5c;
|
|
21
|
+
padding: 0.25rem 0.5rem;
|
|
22
|
+
overflow: auto;
|
|
23
|
+
max-height: 25vh;
|
|
13
24
|
}
|
|
14
|
-
.command-history-item-popper .command-history-item-tooltip .time-
|
|
25
|
+
.command-history-item-popper .command-history-item-tooltip .result-info .time-wrapper {
|
|
26
|
+
text-align: right;
|
|
15
27
|
color: #929192;
|
|
16
28
|
}
|
|
17
|
-
.command-history-item-popper .command-history-item-tooltip
|
|
18
|
-
|
|
29
|
+
.command-history-item-popper .command-history-item-tooltip .result-info .time-wrapper .time-string {
|
|
30
|
+
color: #f0f0ee;
|
|
19
31
|
}
|
|
20
|
-
.command-history-item-popper .command-history-item-tooltip .error-message {
|
|
32
|
+
.command-history-item-popper .command-history-item-tooltip .result-info .error-message {
|
|
21
33
|
color: #f95d84;
|
|
22
34
|
}
|
|
23
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.scss","../../../components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AACA;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.scss","../../../components/scss/new_variables.scss","../../../components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AACA;EACE;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE,SCVK;EDWL;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA,OEHG;;AFIH;EACE,OEbO;;AFgBX;EACE,OE3BF","file":"CommandHistoryItemTooltip.css"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryItemTooltip.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommandHistoryItemTooltip.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.jsx"],"names":[],"mappings":"AAgBA;IACE,kEAYC;IAED,wBAgBC;IAiCD,iBASC;IAyBD,8BAMC;IAVD,8BAEC;IAUD,sBAEC;IArFC,6BAAiB;IACjB,aAAmB;IAmDrB,mBAIC;IAED,kBAKC;IAED,mBAIC;IAkBD,4EAGE;CA+CH;;;;;;;;;;;;;;;;QAUW,mCAAQ"}
|
|
@@ -6,6 +6,8 @@ import debounce from 'lodash.debounce';
|
|
|
6
6
|
import memoize from 'memoizee';
|
|
7
7
|
import { LoadingSpinner } from '@deephaven/components';
|
|
8
8
|
import { TimeUtils } from '@deephaven/utils';
|
|
9
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
10
|
+
import { vsWarning } from '@deephaven/icons';
|
|
9
11
|
import Code from "../common/Code.js";
|
|
10
12
|
import "./CommandHistoryItemTooltip.css";
|
|
11
13
|
import ConsolePropTypes from "../ConsolePropTypes.js";
|
|
@@ -152,14 +154,23 @@ export class CommandHistoryItemTooltip extends Component {
|
|
|
152
154
|
var previewText = this.getPreviewText(name);
|
|
153
155
|
return /*#__PURE__*/React.createElement("div", {
|
|
154
156
|
className: "command-history-item-tooltip"
|
|
157
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
158
|
+
className: "scroll-container"
|
|
155
159
|
}, /*#__PURE__*/React.createElement(Code, {
|
|
156
160
|
language: language
|
|
157
|
-
}, previewText), previewText.length < name.length && /*#__PURE__*/React.createElement("p", null, "Preview Truncated..."), /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
}, previewText), previewText.length < name.length && /*#__PURE__*/React.createElement("p", null, "Preview Truncated...")), /*#__PURE__*/React.createElement("div", {
|
|
158
162
|
className: "result-info"
|
|
159
|
-
},
|
|
163
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
164
|
+
className: "d-flex justify-content-between"
|
|
165
|
+
}, errorMessage && /*#__PURE__*/React.createElement("div", {
|
|
166
|
+
className: "text-danger mr-1"
|
|
167
|
+
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
168
|
+
icon: vsWarning
|
|
169
|
+
}), " Executed with errors"), /*#__PURE__*/React.createElement("div", {
|
|
170
|
+
className: "time-wrapper"
|
|
171
|
+
}, "Elapsed time:", ' ', timeString ? /*#__PURE__*/React.createElement("span", {
|
|
160
172
|
className: "time-string"
|
|
161
|
-
}, timeString)
|
|
162
|
-
key: "error",
|
|
173
|
+
}, timeString) : /*#__PURE__*/React.createElement(LoadingSpinner, null))), errorMessage && /*#__PURE__*/React.createElement("div", {
|
|
163
174
|
className: "error-message"
|
|
164
175
|
}, errorMessage)));
|
|
165
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/command-history/CommandHistoryItemTooltip.jsx"],"names":["React","Component","PropTypes","debounce","memoize","LoadingSpinner","TimeUtils","Code","ConsolePropTypes","StoragePropTypes","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","getTimeString","startTime","endTime","deltaTime","Math","round","Date","formatElapsedTime","constructor","props","name","split","join","max","loadData","bind","handleUpdate","handleError","handleTimeout","timer","cleanup","state","currentTime","now","data","error","componentDidMount","componentDidUpdate","prevProps","prevState","result","startTimer","stopTimer","componentWillUnmount","cancel","commandHistoryStorage","item","language","id","listenItem","setInterval","clearInterval","updateTime","setState","onUpdate","render","errorMessage","message","timeString","previewText","getPreviewText","length","propTypes","CommandHistoryItem","isRequired","string","func","CommandHistoryStorage","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport ConsolePropTypes from '../ConsolePropTypes';\nimport StoragePropTypes from '../StoragePropTypes';\n\nconst LOAD_DATA_DEBOUNCE = 250;\nconst MAX_NUMBER_OF_LINES = 2500;\n\nexport class CommandHistoryItemTooltip extends Component {\n static getTimeString(startTime, endTime) {\n if (!startTime || !endTime) {\n return null;\n }\n\n const deltaTime = Math.round(\n (new Date(endTime) - new Date(startTime)) / 1000\n );\n\n if (deltaTime < 1) return '<1s';\n\n return TimeUtils.formatElapsedTime(deltaTime);\n }\n\n constructor(props) {\n super(props);\n\n this.loadData = debounce(this.loadData.bind(this), LOAD_DATA_DEBOUNCE);\n this.handleUpdate = this.handleUpdate.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n\n this.timer = null;\n this.cleanup = null;\n\n this.state = {\n currentTime: Date.now(),\n data: null,\n error: null,\n };\n }\n\n componentDidMount() {\n this.loadData();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { data } = this.state;\n\n if (\n this.timer == null &&\n !data?.result &&\n data?.startTime &&\n !data?.endTime\n ) {\n this.startTimer();\n } else if (\n (data?.result && !prevState.data?.result) ||\n (data?.endTime && !prevState.data?.endTime)\n ) {\n // Command complete\n this.stopTimer();\n }\n }\n\n componentWillUnmount() {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n loadData() {\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 }\n\n startTimer() {\n this.stopTimer();\n\n this.timer = setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n updateTime() {\n this.setState({\n currentTime: Date.now(),\n });\n }\n\n handleError(error) {\n this.setState({ error: `${error}` });\n }\n\n handleUpdate(item) {\n const { data = null } = item ?? {};\n this.setState({ data });\n\n const { onUpdate } = this.props;\n onUpdate(data);\n }\n\n handleTimeout() {\n this.updateTime();\n }\n\n getPreviewText = memoize(\n name => name.split('\\n', MAX_NUMBER_OF_LINES).join('\\n'),\n { max: 1 }\n );\n\n render() {\n const {\n item: { name },\n language,\n } = this.props;\n const { currentTime, data, error } = this.state;\n const { result, startTime, endTime } = data ?? {};\n const errorMessage = result?.error?.message ?? result?.error ?? error;\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 return (\n <div className=\"command-history-item-tooltip\">\n <Code language={language}>{previewText}</Code>\n {previewText.length < name.length && <p>Preview Truncated...</p>}\n <div className=\"result-info\">\n {!timeString && <LoadingSpinner />}\n {timeString && <div className=\"time-string\">{timeString}</div>}\n </div>\n {errorMessage && (\n <>\n <hr />\n <div key=\"error\" className=\"error-message\">\n {errorMessage}\n </div>\n </>\n )}\n </div>\n );\n }\n}\n\nCommandHistoryItemTooltip.propTypes = {\n item: ConsolePropTypes.CommandHistoryItem.isRequired,\n language: PropTypes.string.isRequired,\n onUpdate: PropTypes.func,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n};\n\nCommandHistoryItemTooltip.defaultProps = {\n onUpdate: () => {},\n};\n\nexport default CommandHistoryItemTooltip;\n"],"file":"CommandHistoryItemTooltip.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistoryItemTooltip.jsx"],"names":["React","Component","PropTypes","debounce","memoize","LoadingSpinner","TimeUtils","FontAwesomeIcon","vsWarning","Code","ConsolePropTypes","StoragePropTypes","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","getTimeString","startTime","endTime","deltaTime","Math","round","Date","formatElapsedTime","constructor","props","name","split","join","max","loadData","bind","handleUpdate","handleError","handleTimeout","timer","cleanup","state","currentTime","now","data","error","componentDidMount","componentDidUpdate","prevProps","prevState","result","startTimer","stopTimer","componentWillUnmount","cancel","commandHistoryStorage","item","language","id","listenItem","setInterval","clearInterval","updateTime","setState","onUpdate","render","errorMessage","message","timeString","previewText","getPreviewText","length","propTypes","CommandHistoryItem","isRequired","string","func","CommandHistoryStorage","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport ConsolePropTypes from '../ConsolePropTypes';\nimport StoragePropTypes from '../StoragePropTypes';\n\nconst LOAD_DATA_DEBOUNCE = 250;\nconst MAX_NUMBER_OF_LINES = 2500;\n\nexport class CommandHistoryItemTooltip extends Component {\n static getTimeString(startTime, endTime) {\n if (!startTime || !endTime) {\n return null;\n }\n\n const deltaTime = Math.round(\n (new Date(endTime) - new Date(startTime)) / 1000\n );\n\n if (deltaTime < 1) return '<1s';\n\n return TimeUtils.formatElapsedTime(deltaTime);\n }\n\n constructor(props) {\n super(props);\n\n this.loadData = debounce(this.loadData.bind(this), LOAD_DATA_DEBOUNCE);\n this.handleUpdate = this.handleUpdate.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n\n this.timer = null;\n this.cleanup = null;\n\n this.state = {\n currentTime: Date.now(),\n data: null,\n error: null,\n };\n }\n\n componentDidMount() {\n this.loadData();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { data } = this.state;\n\n if (\n this.timer == null &&\n !data?.result &&\n data?.startTime &&\n !data?.endTime\n ) {\n this.startTimer();\n } else if (\n (data?.result && !prevState.data?.result) ||\n (data?.endTime && !prevState.data?.endTime)\n ) {\n // Command complete\n this.stopTimer();\n }\n }\n\n componentWillUnmount() {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n loadData() {\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 }\n\n startTimer() {\n this.stopTimer();\n\n this.timer = setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n updateTime() {\n this.setState({\n currentTime: Date.now(),\n });\n }\n\n handleError(error) {\n this.setState({ error: `${error}` });\n }\n\n handleUpdate(item) {\n const { data = null } = item ?? {};\n this.setState({ data });\n\n const { onUpdate } = this.props;\n onUpdate(data);\n }\n\n handleTimeout() {\n this.updateTime();\n }\n\n getPreviewText = memoize(\n name => name.split('\\n', MAX_NUMBER_OF_LINES).join('\\n'),\n { max: 1 }\n );\n\n render() {\n const {\n item: { name },\n language,\n } = this.props;\n const { currentTime, data, error } = this.state;\n const { result, startTime, endTime } = data ?? {};\n const errorMessage = result?.error?.message ?? result?.error ?? error;\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 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 {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 {timeString ? (\n <span className=\"time-string\">{timeString}</span>\n ) : (\n <LoadingSpinner />\n )}\n </div>\n </div>\n {errorMessage && <div className=\"error-message\">{errorMessage}</div>}\n </div>\n </div>\n );\n }\n}\n\nCommandHistoryItemTooltip.propTypes = {\n item: ConsolePropTypes.CommandHistoryItem.isRequired,\n language: PropTypes.string.isRequired,\n onUpdate: PropTypes.func,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n};\n\nCommandHistoryItemTooltip.defaultProps = {\n onUpdate: () => {},\n};\n\nexport default CommandHistoryItemTooltip;\n"],"file":"CommandHistoryItemTooltip.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/console",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4-beta.0+67b529a",
|
|
4
4
|
"description": "Deephaven Console",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@deephaven/icons": "^0.9.
|
|
33
|
-
"@deephaven/jsapi-shim": "^0.9.
|
|
34
|
-
"@deephaven/storage": "^0.9.
|
|
35
|
-
"@deephaven/utils": "^0.9.
|
|
32
|
+
"@deephaven/icons": "^0.9.4-beta.0+67b529a",
|
|
33
|
+
"@deephaven/jsapi-shim": "^0.9.4-beta.0+67b529a",
|
|
34
|
+
"@deephaven/storage": "^0.9.4-beta.0+67b529a",
|
|
35
|
+
"@deephaven/utils": "^0.9.4-beta.0+67b529a",
|
|
36
36
|
"@fortawesome/react-fontawesome": "^0.1.12",
|
|
37
37
|
"classnames": "^2.3.1",
|
|
38
38
|
"jszip": "3.2.2",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@babel/cli": "^7.16.0",
|
|
56
|
-
"@deephaven/components": "^0.9.
|
|
57
|
-
"@deephaven/log": "^0.9.
|
|
58
|
-
"@deephaven/mocks": "^0.9.
|
|
59
|
-
"@deephaven/tsconfig": "^0.9.
|
|
56
|
+
"@deephaven/components": "^0.9.4-beta.0+67b529a",
|
|
57
|
+
"@deephaven/log": "^0.9.4-beta.0+67b529a",
|
|
58
|
+
"@deephaven/mocks": "^0.9.4-beta.0+67b529a",
|
|
59
|
+
"@deephaven/tsconfig": "^0.9.4-beta.0+67b529a",
|
|
60
60
|
"@types/react": "^16.14.8",
|
|
61
61
|
"@types/react-dom": "^16.9.13",
|
|
62
62
|
"cross-env": "^7.0.2",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"publishConfig": {
|
|
77
77
|
"access": "public"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "67b529ab10ff72d85e6f2f9173faa35eb3daaf05"
|
|
80
80
|
}
|