@deephaven/console 0.15.5-vite.12 → 0.15.5
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.js.map +1 -1
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/ConsoleMenu.js.map +1 -1
- package/dist/ConsolePropTypes.js.map +1 -1
- package/dist/ConsoleShortcuts.js.map +1 -1
- package/dist/ConsoleStatusBar.js.map +1 -1
- package/dist/StoragePropTypes.js.map +1 -1
- package/dist/command-history/CommandHistory.d.ts +2 -2
- package/dist/command-history/CommandHistory.d.ts.map +1 -1
- package/dist/command-history/CommandHistory.js +3 -1
- package/dist/command-history/CommandHistory.js.map +1 -1
- package/dist/command-history/CommandHistoryActions.js.map +1 -1
- package/dist/command-history/CommandHistoryItem.js.map +1 -1
- package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
- package/dist/command-history/CommandHistoryStorage.js.map +1 -1
- package/dist/command-history/CommandHistoryTypes.js.map +1 -1
- package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
- package/dist/command-history/index.d.ts +1 -0
- package/dist/command-history/index.d.ts.map +1 -1
- package/dist/command-history/index.js +1 -0
- package/dist/command-history/index.js.map +1 -1
- package/dist/common/Code.js.map +1 -1
- package/dist/common/ConsoleConstants.js.map +1 -1
- package/dist/common/ConsoleUtils.js.map +1 -1
- package/dist/common/ObjectIcon.js.map +1 -1
- package/dist/common/index.d.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/console-history/ConsoleHistory.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
- package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
- package/dist/console-history/index.js.map +1 -1
- package/dist/csv/CsvFormats.js.map +1 -1
- package/dist/csv/CsvInputBar.js.map +1 -1
- package/dist/csv/CsvOverlay.js.map +1 -1
- package/dist/csv/CsvParser.js.map +1 -1
- package/dist/csv/CsvTypeParser.js.map +1 -1
- package/dist/csv/NewTableColumnTypes.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/log/LogLevel.js.map +1 -1
- package/dist/log/LogLevelMenuItem.js.map +1 -1
- package/dist/log/LogView.js.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.js +1 -1
- package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +1 -6
- package/dist/monaco/MonacoUtils.d.ts.map +1 -1
- package/dist/monaco/MonacoUtils.js +1 -14
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/monaco/index.js.map +1 -1
- package/dist/monaco/lang/Language.js.map +1 -1
- package/dist/monaco/lang/db.js.map +1 -1
- package/dist/monaco/lang/groovy.js.map +1 -1
- package/dist/monaco/lang/log.js.map +1 -1
- package/dist/monaco/lang/python.js.map +1 -1
- package/dist/monaco/lang/scala.js.map +1 -1
- package/dist/notebook/Editor.js.map +1 -1
- package/dist/notebook/ScriptEditor.d.ts +1 -1
- package/dist/notebook/ScriptEditor.d.ts.map +1 -1
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/dist/notebook/ScriptEditorUtils.js.map +1 -1
- package/package.json +10 -11
|
@@ -5,14 +5,14 @@ import { Pending, Range } from '@deephaven/utils';
|
|
|
5
5
|
import './CommandHistory.scss';
|
|
6
6
|
import CommandHistoryStorage, { CommandHistoryStorageItem, CommandHistoryTable } from './CommandHistoryStorage';
|
|
7
7
|
import { ItemAction, HistoryAction } from './CommandHistoryTypes';
|
|
8
|
-
declare type
|
|
8
|
+
export declare type CommandHistorySettings = {
|
|
9
9
|
value: string;
|
|
10
10
|
language: string;
|
|
11
11
|
};
|
|
12
12
|
interface CommandHistoryProps {
|
|
13
13
|
language: string;
|
|
14
14
|
sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;
|
|
15
|
-
sendToNotebook: (settings:
|
|
15
|
+
sendToNotebook: (settings: CommandHistorySettings, forceNewNotebook?: boolean) => void;
|
|
16
16
|
table: CommandHistoryTable;
|
|
17
17
|
commandHistoryStorage: CommandHistoryStorage;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistory.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistory.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAIL,WAAW,EAEX,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,uBAAuB,CAAC;AAG/B,OAAO,qBAAqB,EAAE,EAC5B,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIlE,
|
|
1
|
+
{"version":3,"file":"CommandHistory.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistory.tsx"],"names":[],"mappings":"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"}
|
|
@@ -331,6 +331,8 @@ class CommandHistory extends Component {
|
|
|
331
331
|
}
|
|
332
332
|
|
|
333
333
|
render() {
|
|
334
|
+
var _ConsoleConstants$LAN;
|
|
335
|
+
|
|
334
336
|
var {
|
|
335
337
|
language,
|
|
336
338
|
table
|
|
@@ -346,7 +348,7 @@ class CommandHistory extends Component {
|
|
|
346
348
|
offset,
|
|
347
349
|
selectedRanges
|
|
348
350
|
} = this.state;
|
|
349
|
-
var languageDisplayString = ConsoleConstants.LANGUAGE_MAP.get(language);
|
|
351
|
+
var languageDisplayString = (_ConsoleConstants$LAN = ConsoleConstants.LANGUAGE_MAP.get(language)) !== null && _ConsoleConstants$LAN !== void 0 ? _ConsoleConstants$LAN : '';
|
|
350
352
|
return /*#__PURE__*/React.createElement("div", {
|
|
351
353
|
className: "command-history"
|
|
352
354
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistory.js","names":["React","Component","ContextActions","ContextActionUtils","ItemList","SearchInput","GLOBAL_SHORTCUTS","vsFileCode","vsFiles","vsNewFile","vsPlay","vsTerminal","Pending","Log","CommandHistoryItem","CommandHistoryActions","ConsoleConstants","CommandHistoryViewportUpdater","SHORTCUTS","log","module","CommandHistory","getCommandsFromViewport","items","offset","sortedRanges","commands","i","length","range","j","name","push","getCommandsFromSnapshot","table","getSnapshot","values","map","item","constructor","props","copySelectedCommands","bind","createNotebook","sendToConsole","renderItem","runInConsole","sendToNotebook","handleSelect","handleSelectionChange","handleSearchChange","handleViewportChange","handleViewportUpdate","itemActions","title","description","icon","shortcut","COPY","action","group","groups","edit","COMMAND_HISTORY","SEND_TO_CONSOLE","menuGroups","send","order","RUN","SEND_TO_NOTEBOOK","historyActions","selectionRequired","pending","searchInputRef","createRef","state","actions","top","bottom","itemCount","size","selectedRanges","searchText","componentWillUnmount","cancel","getSelectedCommands","ranges","slice","sort","a","b","add","getSelectedCommandText","then","join","updateActions","setState","selectedRowCount","reduce","count","MAX_SELECTION_COUNT","debug","copyToClipboard","catch","error","commandText","language","value","index","e","target","itemIndex","isSelected","commandHistoryStorage","focus","current","render","languageDisplayString","LANGUAGE_MAP","get","ITEM_HEIGHT","medium"],"sources":["../../src/command-history/CommandHistory.tsx"],"sourcesContent":["import React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport {\n ContextActions,\n ContextActionUtils,\n ItemList,\n SearchInput,\n GLOBAL_SHORTCUTS,\n RenderItemProps,\n} from '@deephaven/components';\nimport { ViewportData } from '@deephaven/storage';\nimport {\n vsFileCode,\n vsFiles,\n vsNewFile,\n vsPlay,\n vsTerminal,\n} from '@deephaven/icons';\nimport { Pending, Range } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport CommandHistoryItem from './CommandHistoryItem';\nimport CommandHistoryActions from './CommandHistoryActions';\nimport ConsoleConstants from '../common/ConsoleConstants';\n\nimport './CommandHistory.scss';\nimport CommandHistoryViewportUpdater from './CommandHistoryViewportUpdater';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport CommandHistoryStorage, {\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './CommandHistoryStorage';\nimport { ItemAction, HistoryAction } from './CommandHistoryTypes';\n\nconst log = Log.module('CommandHistory');\n\ntype Settings = {\n value: string;\n language: string;\n};\ninterface CommandHistoryProps {\n language: string;\n sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;\n sendToNotebook: (settings: Settings, forceNewNotebook?: boolean) => void;\n table: CommandHistoryTable;\n commandHistoryStorage: CommandHistoryStorage;\n}\ninterface CommandHistoryState {\n actions: ItemAction[];\n historyActions: HistoryAction[];\n top: number;\n bottom: number;\n itemCount: number;\n items: CommandHistoryStorageItem[];\n offset: number;\n selectedRanges: Range[];\n searchText: string;\n}\n\nclass CommandHistory extends Component<\n CommandHistoryProps,\n CommandHistoryState\n> {\n static ITEM_HEIGHT = 29;\n\n static MAX_SELECTION_COUNT = 10000;\n\n static menuGroups = {\n send: ContextActions.groups.medium + 100,\n };\n\n static getCommandsFromViewport(\n items: CommandHistoryStorageItem[],\n offset: number,\n sortedRanges: Range[]\n ): string[] {\n const commands = [];\n for (let i = 0; i < sortedRanges.length; i += 1) {\n const range = sortedRanges[i];\n for (let j = range[0]; j <= range[1]; j += 1) {\n if (j >= offset && j < offset + items.length) {\n const { name } = items[j - offset];\n commands.push(name);\n }\n }\n }\n return commands;\n }\n\n static async getCommandsFromSnapshot(\n table: CommandHistoryTable,\n sortedRanges: Range[]\n ): Promise<string[]> {\n const items = await table.getSnapshot(sortedRanges);\n return [...items.values()].map(item => item.name);\n }\n\n constructor(props: CommandHistoryProps) {\n super(props);\n\n this.copySelectedCommands = this.copySelectedCommands.bind(this);\n this.createNotebook = this.createNotebook.bind(this);\n this.sendToConsole = this.sendToConsole.bind(this);\n this.renderItem = this.renderItem.bind(this);\n this.runInConsole = this.runInConsole.bind(this);\n this.sendToNotebook = this.sendToNotebook.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleViewportUpdate = this.handleViewportUpdate.bind(this);\n\n this.itemActions = [\n {\n title: 'Copy Selection',\n description: 'Copy selected commands to clipboard',\n icon: vsFiles,\n shortcut: GLOBAL_SHORTCUTS.COPY,\n action: this.copySelectedCommands,\n group: ContextActions.groups.edit,\n },\n {\n title: 'Send to Console',\n description: 'Open selected commands in the console',\n icon: vsTerminal,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_CONSOLE,\n action: this.sendToConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Run in Console',\n description: 'Run selected commands in the console',\n icon: vsPlay,\n shortcut: SHORTCUTS.COMMAND_HISTORY.RUN,\n action: this.runInConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Send to Active Notebook',\n description: 'Open selected commands in a notebook',\n icon: vsFileCode,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_NOTEBOOK,\n action: this.sendToNotebook,\n group: CommandHistory.menuGroups.send,\n order: 20,\n },\n {\n title: 'Send to New Notebook',\n description: 'Open selected commands in a new notebook',\n icon: vsNewFile,\n action: this.createNotebook,\n group: CommandHistory.menuGroups.send,\n order: 30,\n },\n ];\n\n this.historyActions = [\n {\n title: 'Send to Console',\n icon: vsTerminal,\n selectionRequired: true,\n description: 'Open selected commands in the console',\n action: this.sendToConsole,\n },\n {\n title: 'Send to Notebook',\n icon: vsFileCode,\n selectionRequired: true,\n description: 'Open selected commands in a notebook',\n action: this.sendToNotebook,\n },\n ];\n\n this.pending = new Pending();\n this.searchInputRef = React.createRef();\n\n const { table } = props;\n\n this.state = {\n actions: [],\n historyActions: this.historyActions,\n top: 0,\n bottom: 0,\n itemCount: table.size,\n items: [],\n offset: 0,\n selectedRanges: [],\n searchText: '',\n };\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n }\n\n itemActions: ItemAction[];\n\n historyActions: HistoryAction[];\n\n pending: Pending;\n\n searchInputRef: RefObject<SearchInput>;\n\n /**\n * Retrieves the selected commands as an array.\n * If they're not within the current viewport, will fetch them from the table\n * @returns Array of selected commands\n */\n async getSelectedCommands(): Promise<string[]> {\n const { items, offset, selectedRanges } = this.state;\n const ranges = selectedRanges.slice().sort((a, b) => a[0] - b[0]);\n\n if (ranges.length === 0) {\n return [];\n }\n if (\n ranges[0][0] >= offset &&\n ranges[ranges.length - 1][1] < offset + items.length\n ) {\n // All ranges are in the current viewport, just copy the data we've already got\n return CommandHistory.getCommandsFromViewport(items, offset, ranges);\n }\n const { table } = this.props;\n return this.pending.add(\n CommandHistory.getCommandsFromSnapshot(table, ranges)\n );\n }\n\n /**\n * Retrieves the text of all the currently selected commands, joined by a new line char\n * @returns The commands joined by \\n char\n */\n getSelectedCommandText(): Promise<string> {\n return this.getSelectedCommands().then(commands => commands.join('\\n'));\n }\n\n updateActions(): void {\n this.setState(state => {\n const { selectedRanges } = state;\n const selectedRowCount = selectedRanges.reduce(\n (count, range) => count + range[1] - range[0] + 1,\n 0\n );\n if (\n selectedRowCount > 0 &&\n selectedRowCount < CommandHistory.MAX_SELECTION_COUNT\n ) {\n log.debug('Updating actions', this.itemActions);\n return { actions: this.itemActions };\n }\n log.debug('Disabling actions', selectedRowCount);\n return { actions: [] };\n });\n }\n\n copySelectedCommands(): void {\n this.getSelectedCommandText()\n .then(ContextActionUtils.copyToClipboard)\n .catch(log.error);\n }\n\n createNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language }, true);\n })\n .catch(log.error);\n }\n\n sendToNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language });\n })\n .catch(log.error);\n }\n\n sendToConsole(): void {\n const { sendToConsole } = this.props;\n this.getSelectedCommandText().then(sendToConsole).catch(log.error);\n }\n\n runInConsole(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { sendToConsole } = this.props;\n sendToConsole(commandText, true, true);\n })\n .catch(log.error);\n }\n\n handleSelect(index: number): void {\n const { sendToConsole } = this.props;\n const { items, offset } = this.state;\n if (index < offset || index >= offset + items.length) {\n log.error('Invalid index!', index);\n return;\n }\n\n const { name } = items[index - offset];\n sendToConsole(name);\n }\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedRanges });\n this.updateActions();\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.setState({ top, bottom });\n }\n\n handleSearchChange(e: ChangeEvent<HTMLInputElement>): void {\n // clear selected range, as old selection could be filtered from list\n this.setState({ searchText: e.target.value, selectedRanges: [] });\n }\n\n handleViewportUpdate({\n items,\n offset,\n }: ViewportData<CommandHistoryStorageItem>): void {\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ items, itemCount, offset });\n }\n\n renderItem({\n item,\n itemIndex,\n isSelected,\n }: RenderItemProps<CommandHistoryStorageItem>): ReactElement {\n const { language, commandHistoryStorage } = this.props;\n return (\n <CommandHistoryItem\n isSelected={isSelected}\n item={item}\n language={language}\n commandHistoryStorage={commandHistoryStorage}\n />\n );\n }\n\n focus(): void {\n if (this.searchInputRef.current) {\n this.searchInputRef.current.focus();\n }\n }\n\n render(): ReactElement {\n const { language, table } = this.props;\n const {\n actions,\n historyActions,\n searchText,\n top,\n bottom,\n items,\n itemCount,\n offset,\n selectedRanges,\n } = this.state;\n const languageDisplayString = ConsoleConstants.LANGUAGE_MAP.get(language);\n return (\n <div className=\"command-history\">\n <div className=\"command-history-search-bar\">\n <SearchInput\n ref={this.searchInputRef}\n value={searchText}\n placeholder={`${languageDisplayString} Command History`}\n onChange={this.handleSearchChange}\n />\n <CommandHistoryActions\n actions={historyActions}\n hasSelection={selectedRanges.length > 0}\n />\n </div>\n <div className=\"command-history-list\">\n <ItemList\n itemCount={itemCount}\n items={items}\n offset={offset}\n selectedRanges={selectedRanges}\n onSelect={this.handleSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={this.handleViewportChange}\n renderItem={this.renderItem}\n rowHeight={CommandHistory.ITEM_HEIGHT}\n isDoubleClickSelect\n isMultiSelect\n isStickyBottom\n />\n <CommandHistoryViewportUpdater\n table={table}\n top={top}\n bottom={bottom}\n search={searchText}\n onUpdate={this.handleViewportUpdate}\n />\n <ContextActions actions={actions} />\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistory;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistory.tsx"],"names":["React","Component","ContextActions","ContextActionUtils","ItemList","SearchInput","GLOBAL_SHORTCUTS","vsFileCode","vsFiles","vsNewFile","vsPlay","vsTerminal","Pending","Log","CommandHistoryItem","CommandHistoryActions","ConsoleConstants","CommandHistoryViewportUpdater","SHORTCUTS","log","module","CommandHistory","getCommandsFromViewport","items","offset","sortedRanges","commands","i","length","range","j","name","push","getCommandsFromSnapshot","table","getSnapshot","values","map","item","constructor","props","copySelectedCommands","bind","createNotebook","sendToConsole","renderItem","runInConsole","sendToNotebook","handleSelect","handleSelectionChange","handleSearchChange","handleViewportChange","handleViewportUpdate","itemActions","title","description","icon","shortcut","COPY","action","group","groups","edit","COMMAND_HISTORY","SEND_TO_CONSOLE","menuGroups","send","order","RUN","SEND_TO_NOTEBOOK","historyActions","selectionRequired","pending","searchInputRef","createRef","state","actions","top","bottom","itemCount","size","selectedRanges","searchText","componentWillUnmount","cancel","getSelectedCommands","ranges","slice","sort","a","b","add","getSelectedCommandText","then","join","updateActions","setState","selectedRowCount","reduce","count","MAX_SELECTION_COUNT","debug","copyToClipboard","catch","error","commandText","language","value","index","e","target","itemIndex","isSelected","commandHistoryStorage","focus","current","render","languageDisplayString","LANGUAGE_MAP","get","ITEM_HEIGHT","medium"],"mappings":"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","sourcesContent":["import React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport {\n ContextActions,\n ContextActionUtils,\n ItemList,\n SearchInput,\n GLOBAL_SHORTCUTS,\n RenderItemProps,\n} from '@deephaven/components';\nimport { ViewportData } from '@deephaven/storage';\nimport {\n vsFileCode,\n vsFiles,\n vsNewFile,\n vsPlay,\n vsTerminal,\n} from '@deephaven/icons';\nimport { Pending, Range } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport CommandHistoryItem from './CommandHistoryItem';\nimport CommandHistoryActions from './CommandHistoryActions';\nimport ConsoleConstants from '../common/ConsoleConstants';\n\nimport './CommandHistory.scss';\nimport CommandHistoryViewportUpdater from './CommandHistoryViewportUpdater';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport CommandHistoryStorage, {\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './CommandHistoryStorage';\nimport { ItemAction, HistoryAction } from './CommandHistoryTypes';\n\nconst log = Log.module('CommandHistory');\n\nexport type CommandHistorySettings = {\n value: string;\n language: string;\n};\ninterface CommandHistoryProps {\n language: string;\n sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;\n sendToNotebook: (\n settings: CommandHistorySettings,\n forceNewNotebook?: boolean\n ) => void;\n table: CommandHistoryTable;\n commandHistoryStorage: CommandHistoryStorage;\n}\ninterface CommandHistoryState {\n actions: ItemAction[];\n historyActions: HistoryAction[];\n top: number;\n bottom: number;\n itemCount: number;\n items: CommandHistoryStorageItem[];\n offset: number;\n selectedRanges: Range[];\n searchText: string;\n}\n\nclass CommandHistory extends Component<\n CommandHistoryProps,\n CommandHistoryState\n> {\n static ITEM_HEIGHT = 29;\n\n static MAX_SELECTION_COUNT = 10000;\n\n static menuGroups = {\n send: ContextActions.groups.medium + 100,\n };\n\n static getCommandsFromViewport(\n items: CommandHistoryStorageItem[],\n offset: number,\n sortedRanges: Range[]\n ): string[] {\n const commands = [];\n for (let i = 0; i < sortedRanges.length; i += 1) {\n const range = sortedRanges[i];\n for (let j = range[0]; j <= range[1]; j += 1) {\n if (j >= offset && j < offset + items.length) {\n const { name } = items[j - offset];\n commands.push(name);\n }\n }\n }\n return commands;\n }\n\n static async getCommandsFromSnapshot(\n table: CommandHistoryTable,\n sortedRanges: Range[]\n ): Promise<string[]> {\n const items = await table.getSnapshot(sortedRanges);\n return [...items.values()].map(item => item.name);\n }\n\n constructor(props: CommandHistoryProps) {\n super(props);\n\n this.copySelectedCommands = this.copySelectedCommands.bind(this);\n this.createNotebook = this.createNotebook.bind(this);\n this.sendToConsole = this.sendToConsole.bind(this);\n this.renderItem = this.renderItem.bind(this);\n this.runInConsole = this.runInConsole.bind(this);\n this.sendToNotebook = this.sendToNotebook.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleViewportUpdate = this.handleViewportUpdate.bind(this);\n\n this.itemActions = [\n {\n title: 'Copy Selection',\n description: 'Copy selected commands to clipboard',\n icon: vsFiles,\n shortcut: GLOBAL_SHORTCUTS.COPY,\n action: this.copySelectedCommands,\n group: ContextActions.groups.edit,\n },\n {\n title: 'Send to Console',\n description: 'Open selected commands in the console',\n icon: vsTerminal,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_CONSOLE,\n action: this.sendToConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Run in Console',\n description: 'Run selected commands in the console',\n icon: vsPlay,\n shortcut: SHORTCUTS.COMMAND_HISTORY.RUN,\n action: this.runInConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Send to Active Notebook',\n description: 'Open selected commands in a notebook',\n icon: vsFileCode,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_NOTEBOOK,\n action: this.sendToNotebook,\n group: CommandHistory.menuGroups.send,\n order: 20,\n },\n {\n title: 'Send to New Notebook',\n description: 'Open selected commands in a new notebook',\n icon: vsNewFile,\n action: this.createNotebook,\n group: CommandHistory.menuGroups.send,\n order: 30,\n },\n ];\n\n this.historyActions = [\n {\n title: 'Send to Console',\n icon: vsTerminal,\n selectionRequired: true,\n description: 'Open selected commands in the console',\n action: this.sendToConsole,\n },\n {\n title: 'Send to Notebook',\n icon: vsFileCode,\n selectionRequired: true,\n description: 'Open selected commands in a notebook',\n action: this.sendToNotebook,\n },\n ];\n\n this.pending = new Pending();\n this.searchInputRef = React.createRef();\n\n const { table } = props;\n\n this.state = {\n actions: [],\n historyActions: this.historyActions,\n top: 0,\n bottom: 0,\n itemCount: table.size,\n items: [],\n offset: 0,\n selectedRanges: [],\n searchText: '',\n };\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n }\n\n itemActions: ItemAction[];\n\n historyActions: HistoryAction[];\n\n pending: Pending;\n\n searchInputRef: RefObject<SearchInput>;\n\n /**\n * Retrieves the selected commands as an array.\n * If they're not within the current viewport, will fetch them from the table\n * @returns Array of selected commands\n */\n async getSelectedCommands(): Promise<string[]> {\n const { items, offset, selectedRanges } = this.state;\n const ranges = selectedRanges.slice().sort((a, b) => a[0] - b[0]);\n\n if (ranges.length === 0) {\n return [];\n }\n if (\n ranges[0][0] >= offset &&\n ranges[ranges.length - 1][1] < offset + items.length\n ) {\n // All ranges are in the current viewport, just copy the data we've already got\n return CommandHistory.getCommandsFromViewport(items, offset, ranges);\n }\n const { table } = this.props;\n return this.pending.add(\n CommandHistory.getCommandsFromSnapshot(table, ranges)\n );\n }\n\n /**\n * Retrieves the text of all the currently selected commands, joined by a new line char\n * @returns The commands joined by \\n char\n */\n getSelectedCommandText(): Promise<string> {\n return this.getSelectedCommands().then(commands => commands.join('\\n'));\n }\n\n updateActions(): void {\n this.setState(state => {\n const { selectedRanges } = state;\n const selectedRowCount = selectedRanges.reduce(\n (count, range) => count + range[1] - range[0] + 1,\n 0\n );\n if (\n selectedRowCount > 0 &&\n selectedRowCount < CommandHistory.MAX_SELECTION_COUNT\n ) {\n log.debug('Updating actions', this.itemActions);\n return { actions: this.itemActions };\n }\n log.debug('Disabling actions', selectedRowCount);\n return { actions: [] };\n });\n }\n\n copySelectedCommands(): void {\n this.getSelectedCommandText()\n .then(ContextActionUtils.copyToClipboard)\n .catch(log.error);\n }\n\n createNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language }, true);\n })\n .catch(log.error);\n }\n\n sendToNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language });\n })\n .catch(log.error);\n }\n\n sendToConsole(): void {\n const { sendToConsole } = this.props;\n this.getSelectedCommandText().then(sendToConsole).catch(log.error);\n }\n\n runInConsole(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { sendToConsole } = this.props;\n sendToConsole(commandText, true, true);\n })\n .catch(log.error);\n }\n\n handleSelect(index: number): void {\n const { sendToConsole } = this.props;\n const { items, offset } = this.state;\n if (index < offset || index >= offset + items.length) {\n log.error('Invalid index!', index);\n return;\n }\n\n const { name } = items[index - offset];\n sendToConsole(name);\n }\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedRanges });\n this.updateActions();\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.setState({ top, bottom });\n }\n\n handleSearchChange(e: ChangeEvent<HTMLInputElement>): void {\n // clear selected range, as old selection could be filtered from list\n this.setState({ searchText: e.target.value, selectedRanges: [] });\n }\n\n handleViewportUpdate({\n items,\n offset,\n }: ViewportData<CommandHistoryStorageItem>): void {\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ items, itemCount, offset });\n }\n\n renderItem({\n item,\n itemIndex,\n isSelected,\n }: RenderItemProps<CommandHistoryStorageItem>): ReactElement {\n const { language, commandHistoryStorage } = this.props;\n return (\n <CommandHistoryItem\n isSelected={isSelected}\n item={item}\n language={language}\n commandHistoryStorage={commandHistoryStorage}\n />\n );\n }\n\n focus(): void {\n if (this.searchInputRef.current) {\n this.searchInputRef.current.focus();\n }\n }\n\n render(): ReactElement {\n const { language, table } = this.props;\n const {\n actions,\n historyActions,\n searchText,\n top,\n bottom,\n items,\n itemCount,\n offset,\n selectedRanges,\n } = this.state;\n const languageDisplayString =\n ConsoleConstants.LANGUAGE_MAP.get(language) ?? '';\n return (\n <div className=\"command-history\">\n <div className=\"command-history-search-bar\">\n <SearchInput\n ref={this.searchInputRef}\n value={searchText}\n placeholder={`${languageDisplayString} Command History`}\n onChange={this.handleSearchChange}\n />\n <CommandHistoryActions\n actions={historyActions}\n hasSelection={selectedRanges.length > 0}\n />\n </div>\n <div className=\"command-history-list\">\n <ItemList\n itemCount={itemCount}\n items={items}\n offset={offset}\n selectedRanges={selectedRanges}\n onSelect={this.handleSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={this.handleViewportChange}\n renderItem={this.renderItem}\n rowHeight={CommandHistory.ITEM_HEIGHT}\n isDoubleClickSelect\n isMultiSelect\n isStickyBottom\n />\n <CommandHistoryViewportUpdater\n table={table}\n top={top}\n bottom={bottom}\n search={searchText}\n onUpdate={this.handleViewportUpdate}\n />\n <ContextActions actions={actions} />\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistory;\n"],"file":"CommandHistory.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistoryActions.tsx"],"names":["React","Component","classNames","FontAwesomeIcon","Button","vsArrowLeft","vsCircleLargeFilled","CommandHistoryActions","itemKey","i","item","title","renderContent","selectionRequired","icon","render","actions","hasSelection","props","map","index","className","action","description"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAA+C,OAA/C;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,mBAAtB,QAAiD,kBAAjD;;;AASA,MAAMC,qBAAN,SAAoCN,SAApC,CAGE;AACc,SAAPO,OAAO,CAACC,CAAD,EAAaC,IAAb,EAA0C;AACtD,qBAAUA,IAAI,CAACC,KAAf;AACD;;AAEmB,SAAbC,aAAa,CAACF,IAAD,EAAmC;AACrD,QAAIA,IAAI,CAACG,iBAAT,EAA4B;AAC1B,0BACE;AAAK,QAAA,SAAS,EAAC;AAAf,sBACE,oBAAC,eAAD;AACE,QAAA,IAAI,EAAEP,mBADR;AAEE,QAAA,IAAI,EAAEI,IAAI,CAACI,IAFb;AAGE,QAAA,SAAS,EAAC;AAHZ,QADF,eAME,oBAAC,eAAD;AACE,QAAA,IAAI,EAAET,WADR;AAEE,QAAA,SAAS,EAAC;AAFZ,QANF,CADF;AAaD;;AACD,wBAAO,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEK,IAAI,CAACI;AAA5B,MAAP;AACD;;AAEDC,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAA4B,KAAKC,KAAvC;AAEA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACGF,OAAO,CAACG,GAAR,CAAY,CAACT,IAAD,EAAOU,KAAP,kBACX,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAElB,UAAU,CAACQ,IAAI,CAACW,SAAN,CAFvB;AAGE,MAAA,GAAG,EAAEd,qBAAqB,CAACC,OAAtB,CAA8BY,KAA9B,EAAqCV,IAArC,CAHP;AAIE,MAAA,OAAO,EAAEA,IAAI,CAACY,MAJhB;AAKE,MAAA,OAAO,EAAEZ,IAAI,CAACa,WALhB;AAME,MAAA,QAAQ,EAAEb,IAAI,CAACG,iBAAL,IAA0B,CAACI,YANvC;AAOE,MAAA,IAAI,EAAEV,qBAAqB,CAACK,aAAtB,CAAoCF,IAApC;AAPR,MADD,CADH,CADF;AAeD;;AA1CD;;AA6CF,eAAeH,qBAAf","sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button } from '@deephaven/components';\nimport { vsArrowLeft, vsCircleLargeFilled } from '@deephaven/icons';\nimport './CommandHistoryActions.scss';\nimport { HistoryAction } from './CommandHistoryTypes';\n\ninterface CommandHistoryActionsProps {\n actions: HistoryAction[];\n hasSelection: boolean;\n}\n\nclass CommandHistoryActions extends Component<\n CommandHistoryActionsProps,\n Record<string, never>\n> {\n static itemKey(i: unknown, item: HistoryAction): string {\n return `${item.title}`;\n }\n\n static renderContent(item: HistoryAction): JSX.Element {\n if (item.selectionRequired) {\n return (\n <div className=\"fa-md fa-layers\">\n <FontAwesomeIcon\n icon={vsCircleLargeFilled}\n mask={item.icon}\n transform=\"right-5 down-5 shrink-4\"\n />\n <FontAwesomeIcon\n icon={vsArrowLeft}\n transform=\"shrink-3 right-7 down-6\"\n />\n </div>\n );\n }\n return <FontAwesomeIcon icon={item.icon} />;\n }\n\n render(): ReactElement {\n const { actions, hasSelection } = this.props;\n\n return (\n <div className=\"command-history-actions\">\n {actions.map((item, index) => (\n <Button\n kind=\"inline\"\n className={classNames(item.className)}\n key={CommandHistoryActions.itemKey(index, item)}\n onClick={item.action}\n tooltip={item.description}\n disabled={item.selectionRequired && !hasSelection}\n icon={CommandHistoryActions.renderContent(item)}\n />\n ))}\n </div>\n );\n }\n}\n\nexport default CommandHistoryActions;\n"],"file":"CommandHistoryActions.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistoryItem.tsx"],"names":["React","useRef","useCallback","classNames","Tooltip","CommandHistoryItemTooltip","MAX_TRUNCATE_LENGTH","CommandHistoryItem","props","item","language","isSelected","commandHistoryStorage","previewText","name","substring","tooltip","handleUpdate","current","update","selected","placement","modifiers","preventOverflow","enabled","boundariesElement","order","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,MAAhB,EAAwBC,WAAxB,QAAyD,OAAzD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,OAAT,QAAwB,uBAAxB;;OAGOC,yB;AAYP,IAAMC,mBAAmB,GAAG,GAA5B;;AAEA,IAAMC,kBAAkB,GAAIC,KAAD,IAAkD;AAC3E,MAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA,UAAlB;AAA8BC,IAAAA;AAA9B,MAAwDJ,KAA9D;AACA,MAAMK,WAAW,GAAGJ,IAAI,CAACK,IAAL,CAAUC,SAAV,CAAoB,CAApB,EAAuBT,mBAAvB,CAApB;AACA,MAAMU,OAAO,GAAGf,MAAM,CAAU,IAAV,CAAtB;AACA,MAAMgB,YAAY,GAAGf,WAAW,CAAC,MAAM;AAAA;;AACrC,wBAAAc,OAAO,CAACE,OAAR,sEAAiBC,MAAjB;AACD,GAF+B,EAE7B,CAACH,OAAD,CAF6B,CAAhC;AAIA,sBACE;AACE,IAAA,SAAS,EAAEb,UAAU,CAAC,sBAAD,EAAyB;AAC5CiB,MAAAA,QAAQ,EAAET;AADkC,KAAzB;AADvB,KAKGE,WALH,eAME,oBAAC,OAAD;AACE,IAAA,GAAG,EAAEG,OADP;AAEE,IAAA,WAAW,MAFb;AAGE,IAAA,OAAO,EAAE;AACPK,MAAAA,SAAS,EAAE,MADJ;AAEPC,MAAAA,SAAS,EAAE;AACTC,QAAAA,eAAe,EAAE;AACfC,UAAAA,OAAO,EAAE,IADM;AAEfC,UAAAA,iBAAiB,EAAE,UAFJ;AAGfC,UAAAA,KAAK,EAAE,GAHQ,CAGH;;AAHG;AADR;AAFJ,KAHX;AAaE,IAAA,eAAe,EAAC;AAblB,kBAeE,oBAAC,yBAAD;AACE,IAAA,IAAI,EAAEjB,IADR;AAEE,IAAA,QAAQ,EAAEC,QAFZ;AAGE,IAAA,QAAQ,EAAEO,YAHZ;AAIE,IAAA,qBAAqB,EAAEL;AAJzB,IAfF,CANF,CADF;AA+BD,CAvCD;;AAyCAL,kBAAkB,CAACoB,YAAnB,GAAkC;AAChChB,EAAAA,UAAU,EAAE;AADoB,CAAlC;AAIA,eAAeJ,kBAAf","sourcesContent":["import React, { useRef, useCallback, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { Tooltip } from '@deephaven/components';\n\nimport './CommandHistoryItem.scss';\nimport CommandHistoryItemTooltip from './CommandHistoryItemTooltip';\nimport CommandHistoryStorage, {\n CommandHistoryStorageItem,\n} from './CommandHistoryStorage';\n\ninterface CommandHistoryItemProps {\n item: CommandHistoryStorageItem;\n language: string;\n isSelected?: boolean;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\nconst MAX_TRUNCATE_LENGTH = 512;\n\nconst CommandHistoryItem = (props: CommandHistoryItemProps): ReactElement => {\n const { item, language, isSelected, commandHistoryStorage } = props;\n const previewText = item.name.substring(0, MAX_TRUNCATE_LENGTH);\n const tooltip = useRef<Tooltip>(null);\n const handleUpdate = useCallback(() => {\n tooltip.current?.update();\n }, [tooltip]);\n\n return (\n <div\n className={classNames('command-history-item', {\n selected: isSelected,\n })}\n >\n {previewText}\n <Tooltip\n ref={tooltip}\n interactive\n options={{\n placement: 'left',\n modifiers: {\n preventOverflow: {\n enabled: true,\n boundariesElement: 'viewport',\n order: 825, // modify order so boundary is enforced at end of popper calcs\n },\n },\n }}\n popperClassName=\"command-history-item-popper\"\n >\n <CommandHistoryItemTooltip\n item={item}\n language={language}\n onUpdate={handleUpdate}\n commandHistoryStorage={commandHistoryStorage}\n />\n </Tooltip>\n </div>\n );\n};\n\nCommandHistoryItem.defaultProps = {\n isSelected: false,\n};\n\nexport default CommandHistoryItem;\n"],"file":"CommandHistoryItem.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistoryItemTooltip.js","names":["React","Component","debounce","memoize","LoadingSpinner","TimeUtils","FontAwesomeIcon","vsWarning","Code","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","getTimeString","startTime","endTime","deltaTime","Math","round","Date","valueOf","formatElapsedTime","constructor","props","commandHistoryStorage","item","language","id","cleanup","listenItem","handleUpdate","handleError","name","split","join","max","bind","handleTimeout","state","currentTime","now","componentDidMount","loadData","componentDidUpdate","prevProps","prevState","data","timer","result","startTimer","stopTimer","componentWillUnmount","cancel","setInterval","clearInterval","undefined","updateTime","setState","error","onUpdate","render","errorMessage","timeString","previewText","getPreviewText","length"],"sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport { StorageListenerRemover } from '@deephaven/storage';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport CommandHistoryStorage, {\n CommandHistoryStorageData,\n CommandHistoryStorageItem,\n} 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 || !endTime) {\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 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(): void {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n timer?: NodeJS.Timer;\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 = setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer(): void {\n if (this.timer) {\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 => 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 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\nexport default CommandHistoryItemTooltip;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"names":["React","Component","debounce","memoize","LoadingSpinner","TimeUtils","FontAwesomeIcon","vsWarning","Code","LOAD_DATA_DEBOUNCE","MAX_NUMBER_OF_LINES","CommandHistoryItemTooltip","getTimeString","startTime","endTime","deltaTime","Math","round","Date","valueOf","formatElapsedTime","constructor","props","commandHistoryStorage","item","language","id","cleanup","listenItem","handleUpdate","handleError","name","split","join","max","bind","handleTimeout","state","currentTime","now","componentDidMount","loadData","componentDidUpdate","prevProps","prevState","data","timer","result","startTimer","stopTimer","componentWillUnmount","cancel","setInterval","clearInterval","undefined","updateTime","setState","error","onUpdate","render","errorMessage","timeString","previewText","getPreviewText","length"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAA+C,OAA/C;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,OAAP,MAAoB,UAApB;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AAEA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,SAAT,QAA0B,kBAA1B;OACOC,I;;AAoBP,IAAMC,kBAAkB,GAAG,GAA3B;AACA,IAAMC,mBAAmB,GAAG,IAA5B;AAEA,OAAO,MAAMC,yBAAN,SAAwCV,SAAxC,CAGL;AAKoB,SAAbW,aAAa,CAClBC,SADkB,EAElBC,OAFkB,EAGH;AACf,QAAI,CAACD,SAAD,IAAc,CAACC,OAAnB,EAA4B;AAC1B,aAAO,IAAP;AACD;;AAED,QAAMC,SAAS,GAAGC,IAAI,CAACC,KAAL,CAChB,CAAC,IAAIC,IAAJ,CAASJ,OAAT,EAAkBK,OAAlB,KAA8B,IAAID,IAAJ,CAASL,SAAT,EAAoBM,OAApB,EAA/B,IAAgE,IADhD,CAAlB;AAIA,QAAIJ,SAAS,GAAG,CAAhB,EAAmB,OAAO,KAAP;AAEnB,WAAOV,SAAS,CAACe,iBAAV,CAA4BL,SAA5B,CAAP;AACD;;AAEDM,EAAAA,WAAW,CAACC,KAAD,EAAwC;AACjD,UAAMA,KAAN;;AADiD;;AAAA;;AAAA,sCAkDxCpB,QAAQ,CAAC,MAAY;AAC9B,UAAM;AAAEqB,QAAAA,qBAAF;AAAyBC,QAAAA,IAAzB;AAA+BC,QAAAA;AAA/B,UAA4C,KAAKH,KAAvD;AACA,UAAM;AAAEI,QAAAA;AAAF,UAASF,IAAf;AACA,WAAKG,OAAL,GAAeJ,qBAAqB,CAACK,UAAtB,CACbH,QADa,EAEbC,EAFa,EAGb,KAAKG,YAHQ,EAIb,KAAKC,WAJQ,CAAf;AAMD,KATkB,EAShBrB,kBATgB,CAlDgC;;AAAA,4CAgGlCN,OAAO,CACtB4B,IAAI,IAAIA,IAAI,CAACC,KAAL,CAAW,IAAX,EAAiBtB,mBAAjB,EAAsCuB,IAAtC,CAA2C,IAA3C,CADc,EAEtB;AAAEC,MAAAA,GAAG,EAAE;AAAP,KAFsB,CAhG2B;;AAGjD,SAAKL,YAAL,GAAoB,KAAKA,YAAL,CAAkBM,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKL,WAAL,GAAmB,KAAKA,WAAL,CAAiBK,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBD,IAAnB,CAAwB,IAAxB,CAArB;AAEA,SAAKE,KAAL,GAAa;AACXC,MAAAA,WAAW,EAAEpB,IAAI,CAACqB,GAAL;AADF,KAAb;AAGD;;AAEDC,EAAAA,iBAAiB,GAAS;AACxB,SAAKC,QAAL;AACD;;AAEDC,EAAAA,kBAAkB,CAChBC,SADgB,EAEhBC,SAFgB,EAGV;AAAA;;AACN,QAAM;AAAEC,MAAAA;AAAF,QAAW,KAAKR,KAAtB;;AAEA,QACE,KAAKS,KAAL,IAAc,IAAd,IACA,EAACD,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEE,MAAP,CADA,IAEAF,IAFA,aAEAA,IAFA,eAEAA,IAAI,CAAEhC,SAFN,IAGA,EAACgC,IAAD,aAACA,IAAD,eAACA,IAAI,CAAE/B,OAAP,CAJF,EAKE;AACA,WAAKkC,UAAL;AACD,KAPD,MAOO,IACJH,IAAI,SAAJ,IAAAA,IAAI,WAAJ,IAAAA,IAAI,CAAEE,MAAN,IAAgB,qBAACH,SAAS,CAACC,IAAX,4CAAC,gBAAgBE,MAAjB,CAAjB,IACCF,IAAI,SAAJ,IAAAA,IAAI,WAAJ,IAAAA,IAAI,CAAE/B,OAAN,IAAiB,sBAAC8B,SAAS,CAACC,IAAX,6CAAC,iBAAgB/B,OAAjB,CAFb,EAGL;AACA;AACA,WAAKmC,SAAL;AACD;AACF;;AAEDC,EAAAA,oBAAoB,GAAS;AAC3B,SAAKT,QAAL,CAAcU,MAAd;;AACA,QAAI,KAAKxB,OAAL,IAAgB,IAApB,EAA0B;AACxB,WAAKA,OAAL;AACD;;AACD,SAAKsB,SAAL;AACD;;AAiBDD,EAAAA,UAAU,GAAS;AACjB,SAAKC,SAAL;AAEA,SAAKH,KAAL,GAAaM,WAAW,CAAC,KAAKhB,aAAN,EAAqB,IAArB,CAAxB;AACD;;AAEDa,EAAAA,SAAS,GAAS;AAChB,QAAI,KAAKH,KAAT,EAAgB;AACdO,MAAAA,aAAa,CAAC,KAAKP,KAAN,CAAb;AACA,WAAKA,KAAL,GAAaQ,SAAb;AACD;AACF;;AAEDC,EAAAA,UAAU,GAAS;AACjB,SAAKC,QAAL,CAAc;AACZlB,MAAAA,WAAW,EAAEpB,IAAI,CAACqB,GAAL;AADD,KAAd;AAGD;;AAEDT,EAAAA,WAAW,CAAC2B,KAAD,EAAsB;AAC/B,SAAKD,QAAL,CAAc;AAAEC,MAAAA,KAAK,YAAKA,KAAL;AAAP,KAAd;AACD;;AAED5B,EAAAA,YAAY,CAACL,IAAD,EAAwC;AAClD,QAAM;AAAEqB,MAAAA;AAAF,QAAWrB,IAAX,aAAWA,IAAX,cAAWA,IAAX,GAAmB,EAAzB;AACA,SAAKgC,QAAL,CAAc;AAAEX,MAAAA;AAAF,KAAd;AAEA,QAAM;AAAEa,MAAAA;AAAF,QAAe,KAAKpC,KAA1B;AACAoC,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGb,IAAH,CAAR;AACD;;AAEDT,EAAAA,aAAa,GAAS;AACpB,SAAKmB,UAAL;AACD;;AAODI,EAAAA,MAAM,GAAiB;AAAA;;AACrB,QAAM;AACJnC,MAAAA,IAAI,EAAE;AAAEO,QAAAA;AAAF,OADF;AAEJN,MAAAA;AAFI,QAGF,KAAKH,KAHT;AAIA,QAAM;AAAEgB,MAAAA,WAAF;AAAeO,MAAAA,IAAf;AAAqBY,MAAAA;AAArB,QAA+B,KAAKpB,KAA1C;AACA,QAAM;AAAEU,MAAAA,MAAF;AAAUlC,MAAAA,SAAV;AAAqBC,MAAAA;AAArB,QAAiC+B,IAAjC,aAAiCA,IAAjC,cAAiCA,IAAjC,GAAyC,EAA/C;AAEA,QAAMe,YAAY,oBAAGb,MAAH,aAAGA,MAAH,uBAAGA,MAAM,CAAEU,KAAX,yDAAoBA,KAAtC;AAEA,QAAMI,UAAU,GAAGlD,yBAAyB,CAACC,aAA1B,CACjBC,SADiB,EAEjBC,OAAO,IAAIwB,WAFM,CAAnB,CAVqB,CAerB;AACA;AACA;;AACA,QAAMwB,WAAW,GAAG,KAAKC,cAAL,CAAoBhC,IAApB,CAApB;AAEA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,IAAD;AAAM,MAAA,QAAQ,EAAEN;AAAhB,OAA2BqC,WAA3B,CADF,EAEGA,WAAW,CAACE,MAAZ,GAAqBjC,IAAI,CAACiC,MAA1B,iBAAoC,sDAFvC,CADF,eAKE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACGJ,YAAY,iBACX;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAErD;AAAvB,MADF,0BAFJ,eAME;AAAK,MAAA,SAAS,EAAC;AAAf,wBACgB,GADhB,EAEGsD,UAAU,gBACT;AAAM,MAAA,SAAS,EAAC;AAAhB,OAA+BA,UAA/B,CADS,gBAGT,oBAAC,cAAD,OALJ,CANF,CADF,EAgBGD,YAAY,iBAAI;AAAK,MAAA,SAAS,EAAC;AAAf,OAAgCA,YAAhC,CAhBnB,CALF,CADF;AA0BD;;AAzKD;;gBAHWjD,yB,kBAIW;AACpB+C,EAAAA,QAAQ,EAAE,MAAYJ;AADF,C;;AA2KxB,eAAe3C,yBAAf","sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport debounce from 'lodash.debounce';\nimport memoize from 'memoizee';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { TimeUtils } from '@deephaven/utils';\nimport { StorageListenerRemover } from '@deephaven/storage';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport Code from '../common/Code';\nimport './CommandHistoryItemTooltip.scss';\nimport CommandHistoryStorage, {\n CommandHistoryStorageData,\n CommandHistoryStorageItem,\n} 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 || !endTime) {\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 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(): void {\n this.loadData.cancel();\n if (this.cleanup != null) {\n this.cleanup();\n }\n this.stopTimer();\n }\n\n timer?: NodeJS.Timer;\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 = setInterval(this.handleTimeout, 1000);\n }\n\n stopTimer(): void {\n if (this.timer) {\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 => 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 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\nexport default CommandHistoryItemTooltip;\n"],"file":"CommandHistoryItemTooltip.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"CommandHistoryStorage.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"CommandHistoryTypes.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistoryViewportUpdater.tsx"],"names":["useEffect","useMemo","throttle","Log","UPDATE_DELAY","ROW_BUFFER_PAGES","log","module","CommandHistoryViewportUpdater","table","columns","top","bottom","search","isReversed","onUpdate","throttledUpdateViewport","viewport","viewHeight","bufferedTop","Math","max","bufferedBottom","setViewport","updateTableAndReturnCleanup","cleanup","viewportData","items","offset","debug","setSearchText","setSearch","updateViewport","debug2","cancel"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,OAApB,QAAmC,OAAnC;AACA,OAAOC,QAAP,MAAqB,iBAArB;AAMA,OAAOC,GAAP,MAAgB,gBAAhB;AAgBA,IAAMC,YAAY,GAAG,GAArB;AAEA,IAAMC,gBAAgB,GAAG,CAAzB;AAEA,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAJ,CAAW,+BAAX,CAAZ;;AAEA,SAASC,6BAAT,OAQ6C;AAAA,MARN;AACrCC,IAAAA,KADqC;AAErCC,IAAAA,OAFqC;AAGrCC,IAAAA,GAAG,GAAG,CAH+B;AAIrCC,IAAAA,MAAM,GAAG,CAJ4B;AAKrCC,IAAAA,MALqC;AAMrCC,IAAAA,UAAU,GAAG,KANwB;AAOrCC,IAAAA;AAPqC,GAQM;AAC3C,MAAMC,uBAAuB,GAAGf,OAAO,CACrC,MACEC,QAAQ,CAAEe,QAAD,IAAoC;AAC3C,QAAMC,UAAU,GAAGD,QAAQ,CAACL,MAAT,GAAkBK,QAAQ,CAACN,GAA9C;AACA,QAAMQ,WAAW,GAAGC,IAAI,CAACC,GAAL,CAClB,CADkB,EAElBJ,QAAQ,CAACN,GAAT,GAAeO,UAAU,GAAGb,gBAFV,CAApB;AAIA,QAAMiB,cAAc,GAAGL,QAAQ,CAACL,MAAT,GAAkBM,UAAU,GAAGb,gBAAtD;AAEAI,IAAAA,KAAK,CAACc,WAAN,CAAkB;AAChBZ,MAAAA,GAAG,EAAEQ,WADW;AAEhBP,MAAAA,MAAM,EAAEU,cAFQ;AAGhBZ,MAAAA,OAAO,EAAEO,QAAQ,CAACP;AAHF,KAAlB;AAKD,GAbO,EAaLN,YAbK,CAF2B,EAgBrC,CAACK,KAAD,CAhBqC,CAAvC;AAmBAT,EAAAA,SAAS,CACP,SAASwB,2BAAT,GAAuC;AACrC,QAAMC,OAAO,GAAGhB,KAAK,CAACM,QAAN,CACbW,YAAD,IAA2D;AAAA;;AACzDX,MAAAA,QAAQ,CAAC;AACPY,QAAAA,KAAK,yBAAED,YAAY,CAACC,KAAf,qEAAwB,EADtB;AAEPC,QAAAA,MAAM,0BAAEF,YAAY,CAACE,MAAf,uEAAyB;AAFxB,OAAD,CAAR;AAID,KANa,CAAhB;AASA,WAAO,MAAM;AACXtB,MAAAA,GAAG,CAACuB,KAAJ,CAAU,kBAAV;AACAJ,MAAAA,OAAO;AACR,KAHD;AAID,GAfM,EAgBP,CAAChB,KAAD,EAAQM,QAAR,CAhBO,CAAT;AAmBAf,EAAAA,SAAS,CACP,SAAS8B,aAAT,GAAyB;AACvBrB,IAAAA,KAAK,CAACsB,SAAN,CAAgBlB,MAAhB,aAAgBA,MAAhB,cAAgBA,MAAhB,GAA0B,EAA1B;AACD,GAHM,EAIP,CAACJ,KAAD,EAAQI,MAAR,CAJO,CAAT;AAMAb,EAAAA,SAAS,CACP,SAASgC,cAAT,GAA0B;AACxBhB,IAAAA,uBAAuB,CAAC;AACtBL,MAAAA,GADsB;AAEtBC,MAAAA,MAFsB;AAGtBF,MAAAA;AAHsB,KAAD,CAAvB;AAKD,GAPM,EAQP,CAACM,uBAAD,EAA0BL,GAA1B,EAA+BC,MAA/B,EAAuCF,OAAvC,EAAgDG,MAAhD,EAAwDC,UAAxD,CARO,CAAT;AAUAd,EAAAA,SAAS,CACP,MAAM,MAAM;AACVM,IAAAA,GAAG,CAAC2B,MAAJ,CAAW,gCAAX;AACAjB,IAAAA,uBAAuB,CAACkB,MAAxB;AACD,GAJM,EAKP,CAAClB,uBAAD,CALO,CAAT;AAQA,SAAO,IAAP;AACD;;AAED,eAAeR,6BAAf","sourcesContent":["import { useEffect, useMemo } from 'react';\nimport throttle from 'lodash.throttle';\nimport {\n StorageTableViewport,\n ViewportData,\n ViewportUpdateCallback,\n} from '@deephaven/storage';\nimport Log from '@deephaven/log';\nimport {\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './CommandHistoryStorage';\n\nexport type CommandHistoryViewportUpdaterProps = {\n table: CommandHistoryTable;\n columns?: string[];\n top?: number;\n bottom?: number;\n search?: string;\n isReversed?: boolean;\n onUpdate: ViewportUpdateCallback<CommandHistoryStorageItem>;\n};\n\nconst UPDATE_DELAY = 150;\n\nconst ROW_BUFFER_PAGES = 3;\n\nconst log = Log.module('CommandHistoryViewportUpdater');\n\nfunction CommandHistoryViewportUpdater({\n table,\n columns,\n top = 0,\n bottom = 0,\n search,\n isReversed = false,\n onUpdate,\n}: CommandHistoryViewportUpdaterProps): null {\n const throttledUpdateViewport = useMemo(\n () =>\n throttle((viewport: StorageTableViewport) => {\n const viewHeight = viewport.bottom - viewport.top;\n const bufferedTop = Math.max(\n 0,\n viewport.top - viewHeight * ROW_BUFFER_PAGES\n );\n const bufferedBottom = viewport.bottom + viewHeight * ROW_BUFFER_PAGES;\n\n table.setViewport({\n top: bufferedTop,\n bottom: bufferedBottom,\n columns: viewport.columns,\n });\n }, UPDATE_DELAY),\n [table]\n );\n\n useEffect(\n function updateTableAndReturnCleanup() {\n const cleanup = table.onUpdate(\n (viewportData: ViewportData<CommandHistoryStorageItem>) => {\n onUpdate({\n items: viewportData.items ?? [],\n offset: viewportData.offset ?? 0,\n });\n }\n );\n\n return () => {\n log.debug('onUpdate cleanup');\n cleanup();\n };\n },\n [table, onUpdate]\n );\n\n useEffect(\n function setSearchText() {\n table.setSearch(search ?? '');\n },\n [table, search]\n );\n useEffect(\n function updateViewport() {\n throttledUpdateViewport({\n top,\n bottom,\n columns,\n });\n },\n [throttledUpdateViewport, top, bottom, columns, search, isReversed]\n );\n useEffect(\n () => () => {\n log.debug2('Cancel throttledUpdateViewport');\n throttledUpdateViewport.cancel();\n },\n [throttledUpdateViewport]\n );\n\n return null;\n}\n\nexport default CommandHistoryViewportUpdater;\n"],"file":"CommandHistoryViewportUpdater.js"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as CommandHistory } from './CommandHistory';
|
|
2
|
+
export * from './CommandHistory';
|
|
2
3
|
export { default as CommandHistoryActions } from './CommandHistoryActions';
|
|
3
4
|
export { default as CommandHistoryItem } from './CommandHistoryItem';
|
|
4
5
|
export { default as CommandHistoryItemTooltip } from './CommandHistoryItemTooltip';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-history/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-history/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as CommandHistory } from "./CommandHistory.js";
|
|
2
|
+
export * from "./CommandHistory.js";
|
|
2
3
|
export { default as CommandHistoryActions } from "./CommandHistoryActions.js";
|
|
3
4
|
export { default as CommandHistoryItem } from "./CommandHistoryItem.js";
|
|
4
5
|
export { default as CommandHistoryItemTooltip } from "./CommandHistoryItemTooltip.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/index.tsx"],"names":["default","CommandHistory","CommandHistoryActions","CommandHistoryItem","CommandHistoryItemTooltip"],"mappings":"SAASA,OAAO,IAAIC,c;;SAEXD,OAAO,IAAIE,qB;SACXF,OAAO,IAAIG,kB;SACXH,OAAO,IAAII,yB","sourcesContent":["export { default as CommandHistory } from './CommandHistory';\nexport * from './CommandHistory';\nexport { default as CommandHistoryActions } from './CommandHistoryActions';\nexport { default as CommandHistoryItem } from './CommandHistoryItem';\nexport { default as CommandHistoryItemTooltip } from './CommandHistoryItemTooltip';\nexport * from './CommandHistoryStorage';\n"],"file":"index.js"}
|
package/dist/common/Code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/Code.tsx"],"names":["React","Component","monaco","Code","constructor","props","container","componentDidMount","colorize","children","editor","colorizeElement","theme","render","language","pointerEvents"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAA0D,OAA1D;AACA,OAAO,KAAKC,MAAZ,MAAwB,2CAAxB;;AAOA,MAAMC,IAAN,SAAmBF,SAAnB,CAA+D;AAC7DG,EAAAA,WAAW,CAACC,KAAD,EAAmB;AAC5B,UAAMA,KAAN;;AAD4B;;AAG5B,SAAKC,SAAL,GAAiB,IAAjB;AACD;;AAEDC,EAAAA,iBAAiB,GAAS;AACxB,SAAKC,QAAL;AACD;;AAIDA,EAAAA,QAAQ,GAAS;AACf,QAAM;AAAEC,MAAAA;AAAF,QAAe,KAAKJ,KAA1B;;AACA,QAAI,KAAKC,SAAL,IAAkBG,QAAtB,EAAgC;AAC9BP,MAAAA,MAAM,CAACQ,MAAP,CAAcC,eAAd,CAA8B,KAAKL,SAAnC,EAA8C;AAC5CM,QAAAA,KAAK,EAAE;AADqC,OAA9C;AAGD;AACF;;AAEDC,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEJ,MAAAA,QAAF;AAAYK,MAAAA;AAAZ,QAAyB,KAAKT,KAApC;AACA,wBACE,8CACE;AACE,mBAAWS,QADb;AAEE,MAAA,GAAG,EAAER,SAAS,IAAI;AAChB,aAAKA,SAAL,GAAiBA,SAAjB;AACD,OAJH,CAKE;AACA;AANF;AAOE,MAAA,KAAK,EAAE;AAAES,QAAAA,aAAa,EAAE;AAAjB;AAPT,OASGN,QATH,CADF,CADF;AAeD;;AAvC4D;;AA0C/D,eAAeN,IAAf","sourcesContent":["import React, { Component, ReactElement, ReactNode } from 'react';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\n\ninterface CodeProps {\n children: ReactNode;\n language: string;\n}\n\nclass Code extends Component<CodeProps, Record<string, never>> {\n constructor(props: CodeProps) {\n super(props);\n\n this.container = null;\n }\n\n componentDidMount(): void {\n this.colorize();\n }\n\n container: HTMLDivElement | null;\n\n colorize(): void {\n const { children } = this.props;\n if (this.container && children) {\n monaco.editor.colorizeElement(this.container, {\n theme: 'dh-dark',\n });\n }\n }\n\n render(): ReactElement {\n const { children, language } = this.props;\n return (\n <div>\n <div\n data-lang={language}\n ref={container => {\n this.container = container;\n }}\n // Add pointerEvents: 'none' has huge benefits on performance with Hit Test testing on large colorized elements.\n // You can still select the text event with this set\n style={{ pointerEvents: 'none' }}\n >\n {children}\n </div>\n </div>\n );\n }\n}\n\nexport default Code;\n"],"file":"Code.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/ConsoleConstants.ts"],"names":["ConsoleConstants","LANGUAGE_MAP","Map"],"mappings":"AAAA,MAAMA,gBAAN,CAAuB;AACrB;AACF;AACA;AACyB,aAAZC,YAAY,GAAwB;AAC7C,WAAO,IAAIC,GAAJ,CAAQ,CACb,CAAC,QAAD,EAAW,QAAX,CADa,EAEb,CAAC,QAAD,EAAW,QAAX,CAFa,EAGb,CAAC,OAAD,EAAU,OAAV,CAHa,CAAR,CAAP;AAKD;;AAVoB;;AAavB,eAAeF,gBAAf","sourcesContent":["class ConsoleConstants {\n /**\n * Map of language keys to their display names\n */\n static get LANGUAGE_MAP(): Map<string, string> {\n return new Map([\n ['python', 'Python'],\n ['groovy', 'Groovy'],\n ['scala', 'Scala'],\n ]);\n }\n}\n\nexport default ConsoleConstants;\n"],"file":"ConsoleConstants.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/ConsoleUtils.ts"],"names":["ShellQuote","dh","ConsoleUtils","hasComment","arg","comment","undefined","hasPattern","pattern","hasOp","op","parseArguments","str","String","parse","filter","map","formatTimestamp","date","Date","hours","getHours","padStart","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","isTableType","type","VariableType","TABLE","TREETABLE","isWidgetType","FIGURE","OTHERWIDGET","PANDAS","isOpenableType","isFigureType","isPandas"],"mappings":"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","sourcesContent":["import ShellQuote, { ParseEntry, ControlOperator } from 'shell-quote';\nimport dh, { VariableTypeUnion } from '@deephaven/jsapi-shim';\n\nclass ConsoleUtils {\n static hasComment(arg: ParseEntry): arg is { comment: string } {\n return (arg as { comment: string }).comment !== undefined;\n }\n\n static hasPattern(arg: ParseEntry): arg is { op: 'glob'; pattern: string } {\n return (arg as { pattern: string }).pattern !== undefined;\n }\n\n static hasOp(arg: ParseEntry): arg is { op: ControlOperator } {\n return (arg as { op: ControlOperator }).op !== undefined;\n }\n\n /**\n * Given the provided text, parse out arguments using shell quoting rules.\n * @param str The text to parse.\n * @return string[] of the arguments. Empty if no arguments found.\n */\n static parseArguments(str: unknown): string[] {\n if (!str || !(typeof str === 'string' || str instanceof String)) {\n return [];\n }\n\n // Parse can return an object, not just a string. See the `ParseEntry` type def for all types\n // We must map them all to strings. Filter out comments that will not be needed as well.\n return ShellQuote.parse(str as string)\n .filter(arg => !this.hasComment(arg))\n .map(arg => {\n if (this.hasPattern(arg)) {\n return arg.pattern;\n }\n if (this.hasOp(arg)) {\n return arg.op;\n }\n return `${arg}`;\n });\n }\n\n static formatTimestamp(date: Date): string | null {\n if (!date || !(date instanceof Date)) {\n return null;\n }\n\n const hours = `${date.getHours()}`.padStart(2, '0');\n const minutes = `${date.getMinutes()}`.padStart(2, '0');\n const seconds = `${date.getSeconds()}`.padStart(2, '0');\n const milliseconds = `${date.getMilliseconds()}`.padStart(3, '0');\n\n return `${hours}:${minutes}:${seconds}.${milliseconds}`;\n }\n\n static isTableType(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.TABLE || type === dh.VariableType.TREETABLE;\n }\n\n static isWidgetType(type: VariableTypeUnion): boolean {\n return (\n type === dh.VariableType.FIGURE ||\n type === dh.VariableType.OTHERWIDGET ||\n type === dh.VariableType.PANDAS\n );\n }\n\n static isOpenableType(type: VariableTypeUnion): boolean {\n return ConsoleUtils.isTableType(type) || ConsoleUtils.isWidgetType(type);\n }\n\n static isFigureType(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.FIGURE;\n }\n\n static isPandas(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.PANDAS;\n }\n}\n\nexport default ConsoleUtils;\n"],"file":"ConsoleUtils.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/ObjectIcon.tsx"],"names":["React","FontAwesomeIcon","dhPandas","dhTable","vsGraph","vsPreview","dh","ObjectIcon","type","VariableType","TABLE","TABLEMAP","TREETABLE","FIGURE","PANDAS"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,QAAT,EAAmBC,OAAnB,EAA4BC,OAA5B,EAAqCC,SAArC,QAAsD,kBAAtD;AACA,OAAOC,EAAP,MAAe,uBAAf;;AAMA,IAAMC,UAAU,GAAG,QAA4C;AAAA,MAA3C;AAAEC,IAAAA;AAAF,GAA2C;;AAC7D,UAAQA,IAAR;AACE,SAAKF,EAAE,CAACG,YAAH,CAAgBC,KAArB;AACA,SAAKJ,EAAE,CAACG,YAAH,CAAgBE,QAArB;AACA,SAAKL,EAAE,CAACG,YAAH,CAAgBG,SAArB;AACE,0BAAO,oBAAC,eAAD;AAAiB,QAAA,IAAI,EAAET;AAAvB,QAAP;;AACF,SAAKG,EAAE,CAACG,YAAH,CAAgBI,MAArB;AACE,0BAAO,oBAAC,eAAD;AAAiB,QAAA,IAAI,EAAET;AAAvB,QAAP;;AACF,SAAKE,EAAE,CAACG,YAAH,CAAgBK,MAArB;AACE,0BAAO,oBAAC,eAAD;AAAiB,QAAA,IAAI,EAAEZ;AAAvB,QAAP;;AACF;AACE,0BAAO,oBAAC,eAAD;AAAiB,QAAA,IAAI,EAAEG;AAAvB,QAAP;AAVJ;AAYD,CAbD;;AAeA,eAAeE,UAAf","sourcesContent":["import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhPandas, dhTable, vsGraph, vsPreview } from '@deephaven/icons';\nimport dh from '@deephaven/jsapi-shim';\n\nexport type ObjectIconProps = {\n type: string;\n};\n\nconst ObjectIcon = ({ type }: ObjectIconProps): JSX.Element => {\n switch (type) {\n case dh.VariableType.TABLE:\n case dh.VariableType.TABLEMAP:\n case dh.VariableType.TREETABLE:\n return <FontAwesomeIcon icon={dhTable} />;\n case dh.VariableType.FIGURE:\n return <FontAwesomeIcon icon={vsGraph} />;\n case dh.VariableType.PANDAS:\n return <FontAwesomeIcon icon={dhPandas} />;\n default:\n return <FontAwesomeIcon icon={vsPreview} />;\n }\n};\n\nexport default ObjectIcon;\n"],"file":"ObjectIcon.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/index.d.ts"],"names":["React","Code","PureComponent"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAOA,eAAe,MAAMC,IAAN,SAAmBD,KAAK,CAACE,aAAzB,CAAkD","sourcesContent":["import React from 'react';\n\ninterface CodeProps {\n children: React.ReactNode;\n language: string;\n}\n\nexport default class Code extends React.PureComponent<CodeProps> {}\n"],"file":"index.d.js"}
|
package/dist/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/common/index.ts"],"names":["default","ObjectIcon","Code","ConsoleConstants","ConsoleUtils"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,I;SACXF,OAAO,IAAIG,gB;SACXH,OAAO,IAAII,Y","sourcesContent":["export { default as ObjectIcon } from './ObjectIcon';\nexport { default as Code } from './Code';\nexport { default as ConsoleConstants } from './ConsoleConstants';\nexport { default as ConsoleUtils } from './ConsoleUtils';\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/console-history/ConsoleHistory.tsx"],"names":["React","Component","ConsoleHistoryItem","ConsoleHistory","itemKey","i","item","command","result","message","error","render","disabled","items","language","openObject","props","historyElements","length","historyElement","push"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,KAAP,IAAgBC,SAAhB,QAA+C,OAA/C;OAEOC,kB;;;AAYP,MAAMC,cAAN,SAA6BF,SAA7B,CAGE;AAKc,SAAPG,OAAO,CAACC,CAAD,EAAYC,IAAZ,EAAoD;AAChE,qBAAUD,CAAV,cAAeC,IAAI,CAACC,OAApB,cAA+BD,IAAI,CAACE,MAAL,IAAeF,IAAI,CAACE,MAAL,CAAYC,OAA1D,cACEH,IAAI,CAACE,MAAL,IAAeF,IAAI,CAACE,MAAL,CAAYE,KAD7B;AAGD;;AAEDC,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,QAAF;AAAYC,MAAAA,KAAZ;AAAmBC,MAAAA,QAAnB;AAA6BC,MAAAA;AAA7B,QAA4C,KAAKC,KAAvD;AACA,QAAMC,eAAe,GAAG,EAAxB;;AACA,SAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGQ,KAAK,CAACK,MAA1B,EAAkCb,CAAC,IAAI,CAAvC,EAA0C;AACxC,UAAMC,IAAI,GAAGO,KAAK,CAACR,CAAD,CAAlB;AACA,UAAMc,cAAc,gBAClB,oBAAC,kBAAD;AACE,QAAA,GAAG,EAAEhB,cAAc,CAACC,OAAf,CAAuBC,CAAvB,EAA0BC,IAA1B,CADP;AAEE,QAAA,QAAQ,EAAEM,QAFZ;AAGE,QAAA,IAAI,EAAEN,IAHR;AAIE,QAAA,UAAU,EAAES,UAJd;AAKE,QAAA,QAAQ,EAAED;AALZ,QADF;AASAG,MAAAA,eAAe,CAACG,IAAhB,CAAqBD,cAArB;AACD;;AAED,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,OAAkDF,eAAlD,CADF;AAGD;;AA/BD;;gBAHId,c,kBAIkB;AACpBS,EAAAA,QAAQ,EAAE;AADU,C;;AAiCxB,eAAeT,cAAf","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { Component, ReactElement } from 'react';\nimport { VariableDefinition } from '@deephaven/jsapi-shim';\nimport ConsoleHistoryItem from './ConsoleHistoryItem';\n\nimport './ConsoleHistory.scss';\nimport { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\ninterface ConsoleHistoryProps {\n items: ConsoleHistoryActionItem[];\n language: string;\n openObject: (object: VariableDefinition) => void;\n disabled?: boolean;\n}\n\nclass ConsoleHistory extends Component<\n ConsoleHistoryProps,\n Record<string, never>\n> {\n static defaultProps = {\n disabled: false,\n };\n\n static itemKey(i: number, item: ConsoleHistoryActionItem): string {\n return `${i}.${item.command}.${item.result && item.result.message}.${\n item.result && item.result.error\n }`;\n }\n\n render(): ReactElement {\n const { disabled, items, language, openObject } = this.props;\n const historyElements = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const historyElement = (\n <ConsoleHistoryItem\n key={ConsoleHistory.itemKey(i, item)}\n disabled={disabled}\n item={item}\n openObject={openObject}\n language={language}\n />\n );\n historyElements.push(historyElement);\n }\n\n return (\n <div className=\"container-fluid console-history\">{historyElements}</div>\n );\n }\n}\n\nexport default ConsoleHistory;\n"],"file":"ConsoleHistory.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/console-history/ConsoleHistoryItem.tsx"],"names":["React","PureComponent","ButtonOld","Log","Code","ObjectIcon","ConsoleHistoryItemResult","ConsoleHistoryResultInProgress","ConsoleHistoryResultErrorMessage","log","module","ConsoleHistoryItem","constructor","props","handleCancelClick","bind","handleObjectClick","object","debug","openObject","item","cancelResult","command","render","disabled","language","disabledObjects","result","commandElement","resultElements","error","message","changes","created","updated","forEach","title","key","btnDisabled","indexOf","element","type","push","errorMessage","resultElement","length"],"mappings":"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","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { PureComponent, ReactElement } from 'react';\nimport { ButtonOld } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { VariableDefinition } from '@deephaven/jsapi-shim';\nimport { Code, ObjectIcon } from '../common';\nimport ConsoleHistoryItemResult from './ConsoleHistoryItemResult';\nimport ConsoleHistoryResultInProgress from './ConsoleHistoryResultInProgress';\nimport ConsoleHistoryResultErrorMessage from './ConsoleHistoryResultErrorMessage';\nimport './ConsoleHistoryItem.scss';\nimport { ConsoleHistoryActionItem } from './ConsoleHistoryTypes';\n\nconst log = Log.module('ConsoleHistoryItem');\n\ninterface ConsoleHistoryItemProps {\n item: ConsoleHistoryActionItem;\n language: string;\n openObject: (object: VariableDefinition) => void;\n disabled?: boolean;\n}\n\nclass ConsoleHistoryItem extends PureComponent<\n ConsoleHistoryItemProps,\n Record<string, never>\n> {\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props: ConsoleHistoryItemProps) {\n super(props);\n\n this.handleCancelClick = this.handleCancelClick.bind(this);\n this.handleObjectClick = this.handleObjectClick.bind(this);\n }\n\n handleObjectClick(object: VariableDefinition): void {\n log.debug('handleObjectClick', object);\n\n const { openObject } = this.props;\n openObject(object);\n }\n\n handleCancelClick(): void {\n const { item } = this.props;\n if (item && item.cancelResult) {\n log.debug(`Cancelling command: ${item.command}`);\n item.cancelResult();\n }\n }\n\n render(): ReactElement {\n const { disabled, item, language } = this.props;\n const { disabledObjects, result } = item;\n\n let commandElement = null;\n if (item.command) {\n commandElement = (\n <div className=\"console-history-item-command\">\n <div className=\"console-history-gutter\">></div>\n <div className=\"console-history-content\">\n <Code language={language}>{item.command}</Code>\n </div>\n </div>\n );\n }\n\n const resultElements = [];\n\n if (result) {\n const { error, message, changes } = result;\n\n if (changes) {\n const { created, updated } = changes;\n [...created, ...updated].forEach(object => {\n const { title } = object;\n const key = `${title}`;\n const btnDisabled =\n disabled || (disabledObjects ?? []).indexOf(key) >= 0;\n const element = (\n <ButtonOld\n key={key}\n onClick={() => this.handleObjectClick(object)}\n className=\"btn-primary btn-console btn-console-object\"\n disabled={btnDisabled}\n >\n <ObjectIcon type={object.type} /> {title}\n </ButtonOld>\n );\n resultElements.push(element);\n });\n }\n\n // If the error has an associated command, we'll actually get a separate ERROR item printed out, so only print an error if there isn't an associated command\n if (error && !item.command) {\n let errorMessage = `${(error as { message: string }).message ?? error}`;\n if (!errorMessage) {\n errorMessage = error as string;\n }\n const element = (\n <ConsoleHistoryResultErrorMessage\n key=\"result-error\"\n message={errorMessage}\n />\n );\n resultElements.push(element);\n }\n\n if (message) {\n const element = (\n <div key=\"log-message\" className=\"log-message\">\n {message}\n </div>\n );\n resultElements.push(element);\n }\n } else {\n const element = (\n <ConsoleHistoryResultInProgress\n key=\"in_progress\"\n onCancelClick={this.handleCancelClick}\n disabled={disabled}\n />\n );\n resultElements.push(element);\n }\n\n let resultElement = null;\n if (resultElements.length > 0) {\n resultElement = (\n <ConsoleHistoryItemResult>{resultElements}</ConsoleHistoryItemResult>\n );\n }\n\n return (\n <div className=\"container-fluid\">\n {commandElement}\n {resultElement}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryItem;\n"],"file":"ConsoleHistoryItem.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/console-history/ConsoleHistoryItemResult.tsx"],"names":["React","PropTypes","ConsoleHistoryItemResult","children","propTypes","node","isRequired"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,KAAP,MAA+C,OAA/C;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,IAAMC,wBAAwB,GAAG;AAAA,MAAC;AAChCC,IAAAA;AADgC,GAAD;AAAA,sBAK/B;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,SADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA0CA,QAA1C,CAFF,CAL+B;AAAA,CAAjC;;AAWAD,wBAAwB,CAACE,SAAzB,GAAqC;AACnCD,EAAAA,QAAQ,EAAEF,SAAS,CAACI,IAAV,CAAeC;AADU,CAArC;AAIA,eAAeJ,wBAAf","sourcesContent":["/**\n * Console display for use in the Iris environment.\n */\nimport React, { ReactElement, ReactNode } from 'react';\nimport PropTypes from 'prop-types';\n\nconst ConsoleHistoryItemResult = ({\n children,\n}: {\n children: ReactNode;\n}): ReactElement => (\n <div className=\"console-history-item-result\">\n <div className=\"console-history-gutter\">-</div>\n <div className=\"console-history-content\">{children}</div>\n </div>\n);\n\nConsoleHistoryItemResult.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ConsoleHistoryItemResult;\n"],"file":"ConsoleHistoryItemResult.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleHistoryResultErrorMessage.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsTriangleRight","vsTriangleDown","assertNotNull","ConsoleHistoryResultErrorMessage","constructor","props","handleKeyPress","bind","handleMouseDown","handleMouseMove","handleMouseUp","handleToggleError","handleMouseEnter","handleMouseLeave","mouseX","mouseY","isClicking","state","isExpanded","isTriggerHovered","event","key","stopPropagation","preventDefault","clientX","clientY","Math","abs","mouseDragThreshold","shiftKey","metaKey","altKey","setState","render","message","messageProp","lineBreakIndex","indexOf","isMultiline","topLineOfMessage","slice","remainderOfMessage","arrowBtnClasses","expanded"],"sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"sourcesContent":["/**\n * Error message that can be expanded\n */\nimport React, {\n KeyboardEvent,\n MouseEvent,\n PureComponent,\n ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTriangleRight, vsTriangleDown } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\n\ninterface ConsoleHistoryResultErrorMessageProps {\n message?: string;\n}\n\ninterface ConsoleHistoryResultErrorMessageState {\n isExpanded: boolean;\n isTriggerHovered: boolean;\n}\n\nclass ConsoleHistoryResultErrorMessage extends PureComponent<\n ConsoleHistoryResultErrorMessageProps,\n ConsoleHistoryResultErrorMessageState\n> {\n static defaultProps = {\n message: '',\n };\n\n static mouseDragThreshold = 5;\n\n constructor(props: ConsoleHistoryResultErrorMessageProps) {\n super(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleToggleError = this.handleToggleError.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n\n this.state = {\n isExpanded: false,\n isTriggerHovered: false,\n };\n }\n\n mouseX: number | null;\n\n mouseY: number | null;\n\n isClicking: boolean;\n\n handleKeyPress(event: KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Toggle the error open/closed\n this.handleToggleError();\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n handleMouseDown(event: MouseEvent<HTMLDivElement>): void {\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n this.isClicking = true;\n }\n\n handleMouseMove(event: MouseEvent<HTMLDivElement>): void {\n if (this.mouseX != null && this.mouseY != null) {\n if (\n Math.abs(event.clientX - this.mouseX) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold ||\n Math.abs(event.clientY - this.mouseY) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold\n ) {\n this.isClicking = false;\n }\n } else if (this.isClicking) {\n // Rare case - could happen if you mouse down, switch window focus, release the mouse, then come back, mouse down outside of the error, drag into the error, then release the mouse\n this.isClicking = false;\n }\n }\n\n handleMouseUp(event: MouseEvent<HTMLDivElement>): void {\n // We don't want to expand/collapse the error if user is holding shift or an alt key\n // They may be trying to adjust their selection\n if (this.isClicking && !event.shiftKey && !event.metaKey && !event.altKey) {\n this.handleToggleError();\n }\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n }\n\n handleToggleError(): void {\n this.setState(state => ({ isExpanded: !state.isExpanded }));\n }\n\n handleMouseEnter(): void {\n this.setState({ isTriggerHovered: true });\n }\n\n handleMouseLeave(): void {\n this.setState({ isTriggerHovered: false });\n }\n\n render(): ReactElement {\n const { isExpanded, isTriggerHovered } = this.state;\n const { message: messageProp } = this.props;\n assertNotNull(messageProp);\n const lineBreakIndex = messageProp.indexOf('\\n');\n const isMultiline = lineBreakIndex > -1;\n let topLineOfMessage = messageProp;\n if (isMultiline) {\n topLineOfMessage = messageProp.slice(0, lineBreakIndex);\n }\n const remainderOfMessage = messageProp.slice(lineBreakIndex);\n const arrowBtnClasses = isTriggerHovered\n ? 'error-btn-link error-btn-link--active'\n : 'error-btn-link';\n\n return (\n <div\n key=\"error\"\n className={classNames('error-message', {\n expanded: isExpanded,\n })}\n >\n {isMultiline && (\n <>\n <div className=\"error-gutter\">\n <button\n type=\"button\"\n onClick={this.handleToggleError}\n className={arrowBtnClasses}\n tabIndex={-1}\n >\n <FontAwesomeIcon\n icon={isExpanded ? vsTriangleDown : vsTriangleRight}\n transform=\"left-3\"\n />\n </button>\n </div>\n <div className=\"error-content\">\n <div\n className=\"console-error-text-trigger\"\n role=\"button\"\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseUp={this.handleMouseUp}\n >\n {topLineOfMessage}\n </div>\n {isExpanded ? remainderOfMessage : ''}\n </div>\n </>\n )}\n {!isMultiline && (\n <div className=\"error-content\">\n <div className=\"console-error-text\">{topLineOfMessage}</div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryResultErrorMessage;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/console-history/ConsoleHistoryResultErrorMessage.tsx"],"names":["React","PureComponent","classNames","FontAwesomeIcon","vsTriangleRight","vsTriangleDown","assertNotNull","ConsoleHistoryResultErrorMessage","constructor","props","handleKeyPress","bind","handleMouseDown","handleMouseMove","handleMouseUp","handleToggleError","handleMouseEnter","handleMouseLeave","mouseX","mouseY","isClicking","state","isExpanded","isTriggerHovered","event","key","stopPropagation","preventDefault","clientX","clientY","Math","abs","mouseDragThreshold","shiftKey","metaKey","altKey","setState","render","message","messageProp","lineBreakIndex","indexOf","isMultiline","topLineOfMessage","slice","remainderOfMessage","arrowBtnClasses","expanded"],"mappings":"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","sourcesContent":["/**\n * Error message that can be expanded\n */\nimport React, {\n KeyboardEvent,\n MouseEvent,\n PureComponent,\n ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTriangleRight, vsTriangleDown } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\n\ninterface ConsoleHistoryResultErrorMessageProps {\n message?: string;\n}\n\ninterface ConsoleHistoryResultErrorMessageState {\n isExpanded: boolean;\n isTriggerHovered: boolean;\n}\n\nclass ConsoleHistoryResultErrorMessage extends PureComponent<\n ConsoleHistoryResultErrorMessageProps,\n ConsoleHistoryResultErrorMessageState\n> {\n static defaultProps = {\n message: '',\n };\n\n static mouseDragThreshold = 5;\n\n constructor(props: ConsoleHistoryResultErrorMessageProps) {\n super(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n this.handleToggleError = this.handleToggleError.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n\n this.state = {\n isExpanded: false,\n isTriggerHovered: false,\n };\n }\n\n mouseX: number | null;\n\n mouseY: number | null;\n\n isClicking: boolean;\n\n handleKeyPress(event: KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Toggle the error open/closed\n this.handleToggleError();\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n\n handleMouseDown(event: MouseEvent<HTMLDivElement>): void {\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n this.isClicking = true;\n }\n\n handleMouseMove(event: MouseEvent<HTMLDivElement>): void {\n if (this.mouseX != null && this.mouseY != null) {\n if (\n Math.abs(event.clientX - this.mouseX) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold ||\n Math.abs(event.clientY - this.mouseY) >=\n ConsoleHistoryResultErrorMessage.mouseDragThreshold\n ) {\n this.isClicking = false;\n }\n } else if (this.isClicking) {\n // Rare case - could happen if you mouse down, switch window focus, release the mouse, then come back, mouse down outside of the error, drag into the error, then release the mouse\n this.isClicking = false;\n }\n }\n\n handleMouseUp(event: MouseEvent<HTMLDivElement>): void {\n // We don't want to expand/collapse the error if user is holding shift or an alt key\n // They may be trying to adjust their selection\n if (this.isClicking && !event.shiftKey && !event.metaKey && !event.altKey) {\n this.handleToggleError();\n }\n this.mouseX = null;\n this.mouseY = null;\n this.isClicking = false;\n }\n\n handleToggleError(): void {\n this.setState(state => ({ isExpanded: !state.isExpanded }));\n }\n\n handleMouseEnter(): void {\n this.setState({ isTriggerHovered: true });\n }\n\n handleMouseLeave(): void {\n this.setState({ isTriggerHovered: false });\n }\n\n render(): ReactElement {\n const { isExpanded, isTriggerHovered } = this.state;\n const { message: messageProp } = this.props;\n assertNotNull(messageProp);\n const lineBreakIndex = messageProp.indexOf('\\n');\n const isMultiline = lineBreakIndex > -1;\n let topLineOfMessage = messageProp;\n if (isMultiline) {\n topLineOfMessage = messageProp.slice(0, lineBreakIndex);\n }\n const remainderOfMessage = messageProp.slice(lineBreakIndex);\n const arrowBtnClasses = isTriggerHovered\n ? 'error-btn-link error-btn-link--active'\n : 'error-btn-link';\n\n return (\n <div\n key=\"error\"\n className={classNames('error-message', {\n expanded: isExpanded,\n })}\n >\n {isMultiline && (\n <>\n <div className=\"error-gutter\">\n <button\n type=\"button\"\n onClick={this.handleToggleError}\n className={arrowBtnClasses}\n tabIndex={-1}\n >\n <FontAwesomeIcon\n icon={isExpanded ? vsTriangleDown : vsTriangleRight}\n transform=\"left-3\"\n />\n </button>\n </div>\n <div className=\"error-content\">\n <div\n className=\"console-error-text-trigger\"\n role=\"button\"\n tabIndex={0}\n onKeyPress={this.handleKeyPress}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n onMouseUp={this.handleMouseUp}\n >\n {topLineOfMessage}\n </div>\n {isExpanded ? remainderOfMessage : ''}\n </div>\n </>\n )}\n {!isMultiline && (\n <div className=\"error-content\">\n <div className=\"console-error-text\">{topLineOfMessage}</div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ConsoleHistoryResultErrorMessage;\n"],"file":"ConsoleHistoryResultErrorMessage.js"}
|