@deephaven/console 0.15.1-beta.2 → 0.15.2-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.
Files changed (166) hide show
  1. package/dist/Console.d.ts +129 -121
  2. package/dist/Console.d.ts.map +1 -1
  3. package/dist/Console.js +98 -99
  4. package/dist/Console.js.map +1 -1
  5. package/dist/ConsoleInput.d.ts +47 -43
  6. package/dist/ConsoleInput.d.ts.map +1 -1
  7. package/dist/ConsoleInput.js +111 -73
  8. package/dist/ConsoleInput.js.map +1 -1
  9. package/dist/ConsoleMenu.d.ts +24 -22
  10. package/dist/ConsoleMenu.d.ts.map +1 -1
  11. package/dist/ConsoleMenu.js +7 -12
  12. package/dist/ConsoleMenu.js.map +1 -1
  13. package/dist/ConsolePropTypes.d.ts +2 -2
  14. package/dist/ConsolePropTypes.d.ts.map +1 -1
  15. package/dist/ConsolePropTypes.js.map +1 -1
  16. package/dist/ConsoleStatusBar.d.ts +26 -29
  17. package/dist/ConsoleStatusBar.d.ts.map +1 -1
  18. package/dist/ConsoleStatusBar.js +11 -12
  19. package/dist/ConsoleStatusBar.js.map +1 -1
  20. package/dist/StoragePropTypes.d.ts +2 -2
  21. package/dist/StoragePropTypes.d.ts.map +1 -1
  22. package/dist/StoragePropTypes.js.map +1 -1
  23. package/dist/command-history/CommandHistory.d.ts +52 -77
  24. package/dist/command-history/CommandHistory.d.ts.map +1 -1
  25. package/dist/command-history/CommandHistory.js +12 -14
  26. package/dist/command-history/CommandHistory.js.map +1 -1
  27. package/dist/command-history/CommandHistoryActions.d.ts +11 -19
  28. package/dist/command-history/CommandHistoryActions.d.ts.map +1 -1
  29. package/dist/command-history/CommandHistoryActions.js +4 -19
  30. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  31. package/dist/command-history/CommandHistoryItem.d.ts +15 -21
  32. package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
  33. package/dist/command-history/CommandHistoryItem.js +1 -10
  34. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  35. package/dist/command-history/CommandHistoryItemTooltip.d.ts +34 -31
  36. package/dist/command-history/CommandHistoryItemTooltip.d.ts.map +1 -1
  37. package/dist/command-history/CommandHistoryItemTooltip.js +28 -36
  38. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  39. package/dist/command-history/CommandHistoryTypes.d.ts +19 -0
  40. package/dist/command-history/CommandHistoryTypes.d.ts.map +1 -0
  41. package/dist/command-history/CommandHistoryTypes.js +2 -0
  42. package/dist/command-history/CommandHistoryTypes.js.map +1 -0
  43. package/dist/command-history/index.d.ts +5 -5
  44. package/dist/command-history/index.d.ts.map +1 -1
  45. package/dist/command-history/index.js.map +1 -1
  46. package/dist/common/Code.d.ts +10 -11
  47. package/dist/common/Code.d.ts.map +1 -1
  48. package/dist/common/Code.js +5 -5
  49. package/dist/common/Code.js.map +1 -1
  50. package/dist/common/ConsoleUtils.d.ts +20 -8
  51. package/dist/common/ConsoleUtils.d.ts.map +1 -1
  52. package/dist/common/ConsoleUtils.js +34 -10
  53. package/dist/common/ConsoleUtils.js.map +1 -1
  54. package/dist/console-history/ConsoleHistory.d.ts +19 -18
  55. package/dist/console-history/ConsoleHistory.d.ts.map +1 -1
  56. package/dist/console-history/ConsoleHistory.js +5 -9
  57. package/dist/console-history/ConsoleHistory.js.map +1 -1
  58. package/dist/console-history/ConsoleHistoryItem.d.ts +21 -44
  59. package/dist/console-history/ConsoleHistoryItem.d.ts.map +1 -1
  60. package/dist/console-history/ConsoleHistoryItem.js +12 -28
  61. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  62. package/dist/console-history/ConsoleHistoryItemResult.d.ts +13 -9
  63. package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
  64. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  65. package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts +25 -21
  66. package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts.map +1 -1
  67. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +15 -9
  68. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  69. package/dist/console-history/ConsoleHistoryResultInProgress.d.ts +21 -17
  70. package/dist/console-history/ConsoleHistoryResultInProgress.d.ts.map +1 -1
  71. package/dist/console-history/ConsoleHistoryResultInProgress.js +12 -10
  72. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  73. package/dist/console-history/ConsoleHistoryTypes.d.ts +19 -0
  74. package/dist/console-history/ConsoleHistoryTypes.d.ts.map +1 -0
  75. package/dist/console-history/ConsoleHistoryTypes.js +2 -0
  76. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -0
  77. package/dist/console-history/index.d.ts +5 -5
  78. package/dist/console-history/index.d.ts.map +1 -1
  79. package/dist/console-history/index.js.map +1 -1
  80. package/dist/csv/CsvFormats.d.ts +13 -12
  81. package/dist/csv/CsvFormats.d.ts.map +1 -1
  82. package/dist/csv/CsvFormats.js +8 -8
  83. package/dist/csv/CsvFormats.js.map +1 -1
  84. package/dist/csv/CsvInputBar.d.ts +46 -38
  85. package/dist/csv/CsvInputBar.d.ts.map +1 -1
  86. package/dist/csv/CsvInputBar.js +15 -23
  87. package/dist/csv/CsvInputBar.js.map +1 -1
  88. package/dist/csv/CsvOverlay.d.ts +40 -40
  89. package/dist/csv/CsvOverlay.d.ts.map +1 -1
  90. package/dist/csv/CsvOverlay.js +38 -29
  91. package/dist/csv/CsvOverlay.js.map +1 -1
  92. package/dist/csv/CsvParser.d.ts +44 -46
  93. package/dist/csv/CsvParser.d.ts.map +1 -1
  94. package/dist/csv/CsvParser.js +53 -8
  95. package/dist/csv/CsvParser.js.map +1 -1
  96. package/dist/csv/CsvTypeParser.d.ts +32 -27
  97. package/dist/csv/CsvTypeParser.d.ts.map +1 -1
  98. package/dist/csv/CsvTypeParser.js +42 -8
  99. package/dist/csv/CsvTypeParser.js.map +1 -1
  100. package/dist/csv/NewTableColumnTypes.d.ts +1 -1
  101. package/dist/csv/NewTableColumnTypes.d.ts.map +1 -1
  102. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  103. package/dist/declaration.d.js +2 -0
  104. package/dist/declaration.d.js.map +1 -0
  105. package/dist/index.d.ts +14 -13
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/log/LogLevel.d.ts +1 -1
  109. package/dist/log/LogLevel.d.ts.map +1 -1
  110. package/dist/log/LogLevel.js.map +1 -1
  111. package/dist/log/LogLevelMenuItem.d.ts +11 -12
  112. package/dist/log/LogLevelMenuItem.d.ts.map +1 -1
  113. package/dist/log/LogLevelMenuItem.js +0 -6
  114. package/dist/log/LogLevelMenuItem.js.map +1 -1
  115. package/dist/log/LogView.d.ts +40 -47
  116. package/dist/log/LogView.d.ts.map +1 -1
  117. package/dist/log/LogView.js +65 -29
  118. package/dist/log/LogView.js.map +1 -1
  119. package/dist/monaco/MonacoCompletionProvider.d.ts +19 -19
  120. package/dist/monaco/MonacoCompletionProvider.d.ts.map +1 -1
  121. package/dist/monaco/MonacoCompletionProvider.js +11 -15
  122. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  123. package/dist/monaco/MonacoUtils.d.ts +77 -20
  124. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  125. package/dist/monaco/MonacoUtils.js +32 -24
  126. package/dist/monaco/MonacoUtils.js.map +1 -1
  127. package/dist/monaco/index.d.ts +3 -2
  128. package/dist/monaco/index.d.ts.map +1 -1
  129. package/dist/monaco/index.js.map +1 -1
  130. package/dist/monaco/lang/Language.d.ts +7 -0
  131. package/dist/monaco/lang/Language.d.ts.map +1 -0
  132. package/dist/monaco/lang/Language.js +2 -0
  133. package/dist/monaco/lang/Language.js.map +1 -0
  134. package/dist/monaco/lang/db.d.ts +3 -93
  135. package/dist/monaco/lang/db.d.ts.map +1 -1
  136. package/dist/monaco/lang/db.js +18 -3
  137. package/dist/monaco/lang/db.js.map +1 -1
  138. package/dist/monaco/lang/groovy.d.ts +3 -146
  139. package/dist/monaco/lang/groovy.d.ts.map +1 -1
  140. package/dist/monaco/lang/groovy.js +15 -2
  141. package/dist/monaco/lang/groovy.js.map +1 -1
  142. package/dist/monaco/lang/log.d.ts +3 -40
  143. package/dist/monaco/lang/log.d.ts.map +1 -1
  144. package/dist/monaco/lang/log.js +2 -1
  145. package/dist/monaco/lang/log.js.map +1 -1
  146. package/dist/monaco/lang/python.d.ts +3 -154
  147. package/dist/monaco/lang/python.d.ts.map +1 -1
  148. package/dist/monaco/lang/python.js +15 -2
  149. package/dist/monaco/lang/python.js.map +1 -1
  150. package/dist/monaco/lang/scala.d.ts +3 -140
  151. package/dist/monaco/lang/scala.d.ts.map +1 -1
  152. package/dist/monaco/lang/scala.js +10 -3
  153. package/dist/monaco/lang/scala.js.map +1 -1
  154. package/dist/notebook/Editor.d.ts +26 -27
  155. package/dist/notebook/Editor.d.ts.map +1 -1
  156. package/dist/notebook/Editor.js +23 -19
  157. package/dist/notebook/Editor.js.map +1 -1
  158. package/dist/notebook/ScriptEditor.d.ts +54 -51
  159. package/dist/notebook/ScriptEditor.d.ts.map +1 -1
  160. package/dist/notebook/ScriptEditor.js +45 -48
  161. package/dist/notebook/ScriptEditor.js.map +1 -1
  162. package/dist/notebook/ScriptEditorUtils.d.ts +15 -10
  163. package/dist/notebook/ScriptEditorUtils.d.ts.map +1 -1
  164. package/dist/notebook/ScriptEditorUtils.js +7 -7
  165. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  166. package/package.json +12 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/command-history/CommandHistory.jsx"],"names":["React","Component","PropTypes","ContextActions","ContextActionUtils","ItemList","SearchInput","GLOBAL_SHORTCUTS","vsFileCode","vsFiles","vsNewFile","vsPlay","vsTerminal","Pending","Log","CommandHistoryItem","CommandHistoryActions","ConsoleConstants","StoragePropTypes","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","propTypes","string","isRequired","func","CommandHistoryTable","CommandHistoryStorage"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ContextActions,\n ContextActionUtils,\n ItemList,\n SearchInput,\n GLOBAL_SHORTCUTS,\n} from '@deephaven/components';\nimport {\n vsFileCode,\n vsFiles,\n vsNewFile,\n vsPlay,\n vsTerminal,\n} from '@deephaven/icons';\nimport { Pending } 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 StoragePropTypes from '../StoragePropTypes';\nimport CommandHistoryViewportUpdater from './CommandHistoryViewportUpdater';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('CommandHistory');\n\nclass CommandHistory extends Component {\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(items, offset, sortedRanges) {\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(table, sortedRanges) {\n const items = await table.getSnapshot(sortedRanges);\n return [...items.values()].map(item => item.name);\n }\n\n constructor(props) {\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() {\n this.pending.cancel();\n }\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 {Promise<string[]>} Array of selected commands\n */\n async getSelectedCommands() {\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 {Promise<string>} The commands joined by \\n char\n */\n getSelectedCommandText() {\n return this.getSelectedCommands().then(commands => commands.join('\\n'));\n }\n\n updateActions() {\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() {\n this.getSelectedCommandText()\n .then(ContextActionUtils.copyToClipboard)\n .catch(log.error);\n }\n\n createNotebook() {\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() {\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() {\n const { sendToConsole } = this.props;\n this.getSelectedCommandText().then(sendToConsole).catch(log.error);\n }\n\n runInConsole() {\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) {\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) {\n this.setState({ selectedRanges });\n this.updateActions();\n }\n\n handleViewportChange(top, bottom) {\n this.setState({ top, bottom });\n }\n\n handleSearchChange(e) {\n // clear selected range, as old selection could be filtered from list\n this.setState({ searchText: e.target.value, selectedRanges: [] });\n }\n\n handleViewportUpdate({ items, offset }) {\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ items, itemCount, offset });\n }\n\n renderItem({ item, itemIndex, isSelected }) {\n const { language, commandHistoryStorage } = this.props;\n return (\n <CommandHistoryItem\n itemIndex={itemIndex}\n isSelected={isSelected}\n item={item}\n language={language}\n commandHistoryStorage={commandHistoryStorage}\n />\n );\n }\n\n focus() {\n if (this.searchInputRef.current) {\n this.searchInputRef.current.focus();\n }\n }\n\n render() {\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\nCommandHistory.propTypes = {\n language: PropTypes.string.isRequired,\n sendToConsole: PropTypes.func.isRequired,\n sendToNotebook: PropTypes.func.isRequired,\n table: StoragePropTypes.CommandHistoryTable.isRequired,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n};\n\nexport default CommandHistory;\n"],"file":"CommandHistory.js"}
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\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"],"file":"CommandHistory.js"}
@@ -1,22 +1,14 @@
1
- export default CommandHistoryActions;
2
- declare class CommandHistoryActions extends React.Component<any, any, any> {
3
- static itemKey(i: any, item: any): string;
4
- static renderContent(item: any): any;
5
- constructor(props: any);
6
- constructor(props: any, context: any);
1
+ import { Component, ReactElement } from 'react';
2
+ import './CommandHistoryActions.scss';
3
+ import { HistoryAction } from './CommandHistoryTypes';
4
+ interface CommandHistoryActionsProps {
5
+ actions: HistoryAction[];
6
+ hasSelection: boolean;
7
7
  }
8
- declare namespace CommandHistoryActions {
9
- namespace propTypes {
10
- const actions: PropTypes.Validator<(PropTypes.InferProps<{
11
- action: PropTypes.Validator<(...args: any[]) => any>;
12
- title: PropTypes.Validator<string>;
13
- description: PropTypes.Requireable<string>;
14
- icon: any;
15
- selectionRequired: PropTypes.Requireable<boolean>;
16
- }> | null | undefined)[]>;
17
- const hasSelection: PropTypes.Validator<boolean>;
18
- }
8
+ declare class CommandHistoryActions extends Component<CommandHistoryActionsProps, Record<string, never>> {
9
+ static itemKey(i: unknown, item: HistoryAction): string;
10
+ static renderContent(item: HistoryAction): JSX.Element;
11
+ render(): ReactElement;
19
12
  }
20
- import React from "react";
21
- import PropTypes from "prop-types";
13
+ export default CommandHistoryActions;
22
14
  //# sourceMappingURL=CommandHistoryActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryActions.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryActions.jsx"],"names":[],"mappings":";AAQA;IACE,0CAEC;IAED,qCAsBC;IAqCw1jB,wBAA8C;IAAA,sCAAyJ;CAhBjikB"}
1
+ {"version":3,"file":"CommandHistoryActions.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryActions.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAKvD,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,UAAU,0BAA0B;IAClC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,cAAM,qBAAsB,SAAQ,SAAS,CAC3C,0BAA0B,EAC1B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM;IAIvD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO;IAmBtD,MAAM,IAAI,YAAY;CAmBvB;AAED,eAAe,qBAAqB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import React, { Component } from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import classNames from 'classnames';
4
3
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
4
  import { Button } from '@deephaven/components';
@@ -12,7 +11,7 @@ class CommandHistoryActions extends Component {
12
11
  }
13
12
 
14
13
  static renderContent(item) {
15
- if (item.selectionRequired && item.icon) {
14
+ if (item.selectionRequired) {
16
15
  return /*#__PURE__*/React.createElement("div", {
17
16
  className: "fa-md fa-layers"
18
17
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
@@ -25,13 +24,9 @@ class CommandHistoryActions extends Component {
25
24
  }));
26
25
  }
27
26
 
28
- if (!item.selectionRequired && item.icon) {
29
- return /*#__PURE__*/React.createElement(FontAwesomeIcon, {
30
- icon: item.icon
31
- });
32
- }
33
-
34
- return item.title;
27
+ return /*#__PURE__*/React.createElement(FontAwesomeIcon, {
28
+ icon: item.icon
29
+ });
35
30
  }
36
31
 
37
32
  render() {
@@ -54,15 +49,5 @@ class CommandHistoryActions extends Component {
54
49
 
55
50
  }
56
51
 
57
- CommandHistoryActions.propTypes = {
58
- actions: PropTypes.arrayOf(PropTypes.shape({
59
- action: PropTypes.func.isRequired,
60
- title: PropTypes.string.isRequired,
61
- description: PropTypes.string,
62
- icon: PropTypes.FontAwesomeIcon,
63
- selectionRequired: PropTypes.bool
64
- })).isRequired,
65
- hasSelection: PropTypes.bool.isRequired
66
- };
67
52
  export default CommandHistoryActions;
68
53
  //# sourceMappingURL=CommandHistoryActions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/command-history/CommandHistoryActions.jsx"],"names":["React","Component","PropTypes","classNames","FontAwesomeIcon","Button","vsArrowLeft","vsCircleLargeFilled","CommandHistoryActions","itemKey","i","item","title","renderContent","selectionRequired","icon","render","actions","hasSelection","props","map","index","className","action","description","propTypes","arrayOf","shape","func","isRequired","string","bool"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,mBAAtB,QAAiD,kBAAjD;;;AAGA,MAAMC,qBAAN,SAAoCP,SAApC,CAA8C;AAC9B,SAAPQ,OAAO,CAACC,CAAD,EAAIC,IAAJ,EAAU;AACtB,qBAAUA,IAAI,CAACC,KAAf;AACD;;AAEmB,SAAbC,aAAa,CAACF,IAAD,EAAO;AACzB,QAAIA,IAAI,CAACG,iBAAL,IAA0BH,IAAI,CAACI,IAAnC,EAAyC;AACvC,0BACE;AAAK,QAAA,SAAS,EAAC;AAAf,sBACE,oBAAC,eAAD;AACE,QAAA,IAAI,EAAER,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;;AAED,QAAI,CAACK,IAAI,CAACG,iBAAN,IAA2BH,IAAI,CAACI,IAApC,EAA0C;AACxC,0BAAO,oBAAC,eAAD;AAAiB,QAAA,IAAI,EAAEJ,IAAI,CAACI;AAA5B,QAAP;AACD;;AAED,WAAOJ,IAAI,CAACC,KAAZ;AACD;;AAEDI,EAAAA,MAAM,GAAG;AACP,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;;AA/C2C;;AAkD9CH,qBAAqB,CAACiB,SAAtB,GAAkC;AAChCR,EAAAA,OAAO,EAAEf,SAAS,CAACwB,OAAV,CACPxB,SAAS,CAACyB,KAAV,CAAgB;AACdJ,IAAAA,MAAM,EAAErB,SAAS,CAAC0B,IAAV,CAAeC,UADT;AAEdjB,IAAAA,KAAK,EAAEV,SAAS,CAAC4B,MAAV,CAAiBD,UAFV;AAGdL,IAAAA,WAAW,EAAEtB,SAAS,CAAC4B,MAHT;AAIdf,IAAAA,IAAI,EAAEb,SAAS,CAACE,eAJF;AAKdU,IAAAA,iBAAiB,EAAEZ,SAAS,CAAC6B;AALf,GAAhB,CADO,EAQPF,UAT8B;AAUhCX,EAAAA,YAAY,EAAEhB,SAAS,CAAC6B,IAAV,CAAeF;AAVG,CAAlC;AAaA,eAAerB,qBAAf","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button } from '@deephaven/components';\nimport { vsArrowLeft, vsCircleLargeFilled } from '@deephaven/icons';\nimport './CommandHistoryActions.scss';\n\nclass CommandHistoryActions extends Component {\n static itemKey(i, item) {\n return `${item.title}`;\n }\n\n static renderContent(item) {\n if (item.selectionRequired && item.icon) {\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\n if (!item.selectionRequired && item.icon) {\n return <FontAwesomeIcon icon={item.icon} />;\n }\n\n return item.title;\n }\n\n render() {\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\nCommandHistoryActions.propTypes = {\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n action: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string,\n icon: PropTypes.FontAwesomeIcon,\n selectionRequired: PropTypes.bool,\n })\n ).isRequired,\n hasSelection: PropTypes.bool.isRequired,\n};\n\nexport default CommandHistoryActions;\n"],"file":"CommandHistoryActions.js"}
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,23 +1,17 @@
1
- export default CommandHistoryItem;
2
- declare function CommandHistoryItem(props: any): JSX.Element;
3
- declare namespace CommandHistoryItem {
4
- namespace propTypes {
5
- const item: PropTypes.Validator<PropTypes.InferProps<{
6
- id: PropTypes.Validator<string>;
7
- name: PropTypes.Validator<string>;
8
- }>>;
9
- const language: PropTypes.Validator<string>;
10
- const isSelected: PropTypes.Requireable<boolean>;
11
- const commandHistoryStorage: PropTypes.Validator<PropTypes.InferProps<{
12
- addItem: PropTypes.Validator<(...args: any[]) => any>;
13
- updateItem: PropTypes.Validator<(...args: any[]) => any>;
14
- getTable: PropTypes.Validator<(...args: any[]) => any>;
15
- }>>;
16
- }
17
- namespace defaultProps {
18
- const isSelected_1: boolean;
19
- export { isSelected_1 as isSelected };
20
- }
1
+ import { ReactElement } from 'react';
2
+ import './CommandHistoryItem.scss';
3
+ import CommandHistoryStorage, { CommandHistoryStorageItem } from './CommandHistoryStorage';
4
+ interface CommandHistoryItemProps {
5
+ item: CommandHistoryStorageItem;
6
+ language: string;
7
+ isSelected?: boolean;
8
+ commandHistoryStorage: CommandHistoryStorage;
21
9
  }
22
- import PropTypes from "prop-types";
10
+ declare const CommandHistoryItem: {
11
+ (props: CommandHistoryItemProps): ReactElement;
12
+ defaultProps: {
13
+ isSelected: boolean;
14
+ };
15
+ };
16
+ export default CommandHistoryItem;
23
17
  //# sourceMappingURL=CommandHistoryItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryItem.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItem.jsx"],"names":[],"mappings":";AAYA,6DAuCC"}
1
+ {"version":3,"file":"CommandHistoryItem.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItem.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,YAAY,EAAE,MAAM,OAAO,CAAC;AAIjE,OAAO,2BAA2B,CAAC;AAEnC,OAAO,qBAAqB,EAAE,EAC5B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,UAAU,uBAAuB;IAC/B,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAID,QAAA,MAAM,kBAAkB;YAAW,uBAAuB,GAAG,YAAY;;;;CAuCxE,CAAC;AAMF,eAAe,kBAAkB,CAAC"}
@@ -1,11 +1,8 @@
1
1
  import React, { useRef, useCallback } from 'react';
2
2
  import classNames from 'classnames';
3
- import PropTypes from 'prop-types';
4
3
  import { Tooltip } from '@deephaven/components';
5
4
  import "./CommandHistoryItem.css";
6
5
  import CommandHistoryItemTooltip from "./CommandHistoryItemTooltip.js";
7
- import ConsolePropTypes from "../ConsolePropTypes.js";
8
- import StoragePropTypes from "../StoragePropTypes.js";
9
6
  var MAX_TRUNCATE_LENGTH = 512;
10
7
 
11
8
  var CommandHistoryItem = props => {
@@ -16,7 +13,7 @@ var CommandHistoryItem = props => {
16
13
  commandHistoryStorage
17
14
  } = props;
18
15
  var previewText = item.name.substring(0, MAX_TRUNCATE_LENGTH);
19
- var tooltip = useRef();
16
+ var tooltip = useRef(null);
20
17
  var handleUpdate = useCallback(() => {
21
18
  var _tooltip$current;
22
19
 
@@ -49,12 +46,6 @@ var CommandHistoryItem = props => {
49
46
  })));
50
47
  };
51
48
 
52
- CommandHistoryItem.propTypes = {
53
- item: ConsolePropTypes.CommandHistoryItem.isRequired,
54
- language: PropTypes.string.isRequired,
55
- isSelected: PropTypes.bool,
56
- commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired
57
- };
58
49
  CommandHistoryItem.defaultProps = {
59
50
  isSelected: false
60
51
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/command-history/CommandHistoryItem.jsx"],"names":["React","useRef","useCallback","classNames","PropTypes","Tooltip","CommandHistoryItemTooltip","ConsolePropTypes","StoragePropTypes","MAX_TRUNCATE_LENGTH","CommandHistoryItem","props","item","language","isSelected","commandHistoryStorage","previewText","name","substring","tooltip","handleUpdate","current","update","selected","placement","modifiers","preventOverflow","enabled","boundariesElement","order","propTypes","isRequired","string","bool","CommandHistoryStorage","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,MAAhB,EAAwBC,WAAxB,QAA2C,OAA3C;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,OAAT,QAAwB,uBAAxB;;OAGOC,yB;OACAC,gB;OACAC,gB;AAEP,IAAMC,mBAAmB,GAAG,GAA5B;;AAEA,IAAMC,kBAAkB,GAAGC,KAAK,IAAI;AAClC,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,GAAGlB,MAAM,EAAtB;AACA,MAAMmB,YAAY,GAAGlB,WAAW,CAAC,MAAM;AAAA;;AACrC,wBAAAiB,OAAO,CAACE,OAAR,sEAAiBC,MAAjB;AACD,GAF+B,EAE7B,CAACH,OAAD,CAF6B,CAAhC;AAIA,sBACE;AACE,IAAA,SAAS,EAAEhB,UAAU,CAAC,sBAAD,EAAyB;AAC5CoB,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,SAAnB,GAA+B;AAC7BlB,EAAAA,IAAI,EAAEL,gBAAgB,CAACG,kBAAjB,CAAoCqB,UADb;AAE7BlB,EAAAA,QAAQ,EAAET,SAAS,CAAC4B,MAAV,CAAiBD,UAFE;AAG7BjB,EAAAA,UAAU,EAAEV,SAAS,CAAC6B,IAHO;AAI7BlB,EAAAA,qBAAqB,EAAEP,gBAAgB,CAAC0B,qBAAjB,CAAuCH;AAJjC,CAA/B;AAOArB,kBAAkB,CAACyB,YAAnB,GAAkC;AAChCrB,EAAAA,UAAU,EAAE;AADoB,CAAlC;AAIA,eAAeJ,kBAAf","sourcesContent":["import React, { useRef, useCallback } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { Tooltip } from '@deephaven/components';\n\nimport './CommandHistoryItem.scss';\nimport CommandHistoryItemTooltip from './CommandHistoryItemTooltip';\nimport ConsolePropTypes from '../ConsolePropTypes';\nimport StoragePropTypes from '../StoragePropTypes';\n\nconst MAX_TRUNCATE_LENGTH = 512;\n\nconst CommandHistoryItem = props => {\n const { item, language, isSelected, commandHistoryStorage } = props;\n const previewText = item.name.substring(0, MAX_TRUNCATE_LENGTH);\n const tooltip = useRef();\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.propTypes = {\n item: ConsolePropTypes.CommandHistoryItem.isRequired,\n language: PropTypes.string.isRequired,\n isSelected: PropTypes.bool,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n};\n\nCommandHistoryItem.defaultProps = {\n isSelected: false,\n};\n\nexport default CommandHistoryItem;\n"],"file":"CommandHistoryItem.js"}
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,38 +1,41 @@
1
- export class CommandHistoryItemTooltip extends React.Component<any, any, any> {
2
- static getTimeString(startTime: any, endTime: any): string | null;
3
- constructor(props: any);
4
- loadData(): void;
5
- handleUpdate(item: any): void;
6
- handleError(error: any): void;
7
- handleTimeout(): void;
8
- timer: NodeJS.Timer | null;
9
- cleanup: any;
1
+ /// <reference types="node" />
2
+ /// <reference types="lodash" />
3
+ import { Component, ReactElement } from 'react';
4
+ import memoize from 'memoizee';
5
+ import { StorageListenerRemover } from '@deephaven/storage';
6
+ import './CommandHistoryItemTooltip.scss';
7
+ import CommandHistoryStorage, { CommandHistoryStorageData, CommandHistoryStorageItem } from './CommandHistoryStorage';
8
+ interface CommandHistoryItemTooltipProps {
9
+ item: CommandHistoryStorageItem;
10
+ language: string;
11
+ onUpdate?: (data: CommandHistoryStorageData | null) => void;
12
+ commandHistoryStorage: CommandHistoryStorage;
13
+ }
14
+ interface CommandHistoryItemTooltipState {
15
+ currentTime: number;
16
+ data?: CommandHistoryStorageData;
17
+ error?: string;
18
+ }
19
+ export declare class CommandHistoryItemTooltip extends Component<CommandHistoryItemTooltipProps, CommandHistoryItemTooltipState> {
20
+ static defaultProps: {
21
+ onUpdate: () => void;
22
+ };
23
+ static getTimeString(startTime: string | undefined, endTime: string | number): string | null;
24
+ constructor(props: CommandHistoryItemTooltipProps);
25
+ componentDidMount(): void;
26
+ componentDidUpdate(prevProps: CommandHistoryItemTooltipProps, prevState: CommandHistoryItemTooltipState): void;
27
+ componentWillUnmount(): void;
28
+ timer?: NodeJS.Timer;
29
+ cleanup?: StorageListenerRemover;
30
+ loadData: import("lodash").DebouncedFunc<() => void>;
10
31
  startTimer(): void;
11
32
  stopTimer(): void;
12
33
  updateTime(): void;
34
+ handleError(error: string): void;
35
+ handleUpdate(item: CommandHistoryStorageItem): void;
36
+ handleTimeout(): void;
13
37
  getPreviewText: ((name: any) => any) & memoize.Memoized<(name: any) => any>;
14
- }
15
- export namespace CommandHistoryItemTooltip {
16
- namespace propTypes {
17
- const item: PropTypes.Validator<PropTypes.InferProps<{
18
- id: PropTypes.Validator<string>;
19
- name: PropTypes.Validator<string>;
20
- }>>;
21
- const language: PropTypes.Validator<string>;
22
- const onUpdate: PropTypes.Requireable<(...args: any[]) => any>;
23
- const commandHistoryStorage: PropTypes.Validator<PropTypes.InferProps<{
24
- addItem: PropTypes.Validator<(...args: any[]) => any>;
25
- updateItem: PropTypes.Validator<(...args: any[]) => any>;
26
- getTable: PropTypes.Validator<(...args: any[]) => any>;
27
- }>>;
28
- }
29
- namespace defaultProps {
30
- export function onUpdate_1(): void;
31
- export { onUpdate_1 as onUpdate };
32
- }
38
+ render(): ReactElement;
33
39
  }
34
40
  export default CommandHistoryItemTooltip;
35
- import React from "react";
36
- import memoize from "memoizee";
37
- import PropTypes from "prop-types";
38
41
  //# sourceMappingURL=CommandHistoryItemTooltip.d.ts.map
@@ -1 +1 @@
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,2BAAiB;IACjB,aAAmB;IAmDrB,mBAIC;IAED,kBAKC;IAED,mBAIC;IAkBD,4EAGE;CA+CH;;;;;;;;;;;;;;;;QAUW,mCAAQ"}
1
+ {"version":3,"file":"CommandHistoryItemTooltip.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistoryItemTooltip.tsx"],"names":[],"mappings":";;AAAA,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qBAAqB,EAAE,EAC5B,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,UAAU,8BAA8B;IACtC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,8BAA8B;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,yBAA0B,SAAQ,SAAS,CACtD,8BAA8B,EAC9B,8BAA8B,CAC/B;IACC,MAAM,CAAC,YAAY;wBACH,IAAI;MAClB;IAEF,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,MAAM,GAAG,IAAI;gBAcJ,KAAK,EAAE,8BAA8B;IAYjD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,8BAA8B,EACzC,SAAS,EAAE,8BAA8B,GACxC,IAAI;IAmBP,oBAAoB,IAAI,IAAI;IAQ5B,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;IAErB,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,QAAQ,uCAAgB,IAAI,EASL;IAEvB,UAAU,IAAI,IAAI;IAMlB,SAAS,IAAI,IAAI;IAOjB,UAAU,IAAI,IAAI;IAMlB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,IAAI,EAAE,yBAAyB,GAAG,IAAI;IAQnD,aAAa,IAAI,IAAI;IAIrB,cAAc,8DAGZ;IAEF,MAAM,IAAI,YAAY;CA+CvB;AAED,eAAe,yBAAyB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import React, { Component } from 'react';
4
- import PropTypes from 'prop-types';
5
4
  import debounce from 'lodash.debounce';
6
5
  import memoize from 'memoizee';
7
6
  import { LoadingSpinner } from '@deephaven/components';
@@ -10,8 +9,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
10
9
  import { vsWarning } from '@deephaven/icons';
11
10
  import Code from "../common/Code.js";
12
11
  import "./CommandHistoryItemTooltip.css";
13
- import ConsolePropTypes from "../ConsolePropTypes.js";
14
- import StoragePropTypes from "../StoragePropTypes.js";
15
12
  var LOAD_DATA_DEBOUNCE = 250;
16
13
  var MAX_NUMBER_OF_LINES = 2500;
17
14
  export class CommandHistoryItemTooltip extends Component {
@@ -20,7 +17,7 @@ export class CommandHistoryItemTooltip extends Component {
20
17
  return null;
21
18
  }
22
19
 
23
- var deltaTime = Math.round((new Date(endTime) - new Date(startTime)) / 1000);
20
+ var deltaTime = Math.round((new Date(endTime).valueOf() - new Date(startTime).valueOf()) / 1000);
24
21
  if (deltaTime < 1) return '<1s';
25
22
  return TimeUtils.formatElapsedTime(deltaTime);
26
23
  }
@@ -28,20 +25,31 @@ export class CommandHistoryItemTooltip extends Component {
28
25
  constructor(props) {
29
26
  super(props);
30
27
 
28
+ _defineProperty(this, "timer", void 0);
29
+
30
+ _defineProperty(this, "cleanup", void 0);
31
+
32
+ _defineProperty(this, "loadData", debounce(() => {
33
+ var {
34
+ commandHistoryStorage,
35
+ item,
36
+ language
37
+ } = this.props;
38
+ var {
39
+ id
40
+ } = item;
41
+ this.cleanup = commandHistoryStorage.listenItem(language, id, this.handleUpdate, this.handleError);
42
+ }, LOAD_DATA_DEBOUNCE));
43
+
31
44
  _defineProperty(this, "getPreviewText", memoize(name => name.split('\n', MAX_NUMBER_OF_LINES).join('\n'), {
32
45
  max: 1
33
46
  }));
34
47
 
35
- this.loadData = debounce(this.loadData.bind(this), LOAD_DATA_DEBOUNCE);
36
48
  this.handleUpdate = this.handleUpdate.bind(this);
37
49
  this.handleError = this.handleError.bind(this);
38
50
  this.handleTimeout = this.handleTimeout.bind(this);
39
- this.timer = null;
40
- this.cleanup = null;
41
51
  this.state = {
42
- currentTime: Date.now(),
43
- data: null,
44
- error: null
52
+ currentTime: Date.now()
45
53
  };
46
54
  }
47
55
 
@@ -74,18 +82,6 @@ export class CommandHistoryItemTooltip extends Component {
74
82
  this.stopTimer();
75
83
  }
76
84
 
77
- loadData() {
78
- var {
79
- commandHistoryStorage,
80
- item,
81
- language
82
- } = this.props;
83
- var {
84
- id
85
- } = item;
86
- this.cleanup = commandHistoryStorage.listenItem(language, id, this.handleUpdate, this.handleError);
87
- }
88
-
89
85
  startTimer() {
90
86
  this.stopTimer();
91
87
  this.timer = setInterval(this.handleTimeout, 1000);
@@ -94,7 +90,7 @@ export class CommandHistoryItemTooltip extends Component {
94
90
  stopTimer() {
95
91
  if (this.timer) {
96
92
  clearInterval(this.timer);
97
- this.timer = null;
93
+ this.timer = undefined;
98
94
  }
99
95
  }
100
96
 
@@ -112,7 +108,7 @@ export class CommandHistoryItemTooltip extends Component {
112
108
 
113
109
  handleUpdate(item) {
114
110
  var {
115
- data = null
111
+ data
116
112
  } = item !== null && item !== void 0 ? item : {};
117
113
  this.setState({
118
114
  data
@@ -120,7 +116,7 @@ export class CommandHistoryItemTooltip extends Component {
120
116
  var {
121
117
  onUpdate
122
118
  } = this.props;
123
- onUpdate(data);
119
+ onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(data);
124
120
  }
125
121
 
126
122
  handleTimeout() {
@@ -128,7 +124,7 @@ export class CommandHistoryItemTooltip extends Component {
128
124
  }
129
125
 
130
126
  render() {
131
- var _ref, _result$error$message, _result$error;
127
+ var _result$error;
132
128
 
133
129
  var {
134
130
  item: {
@@ -146,7 +142,7 @@ export class CommandHistoryItemTooltip extends Component {
146
142
  startTime,
147
143
  endTime
148
144
  } = data !== null && data !== void 0 ? data : {};
149
- var errorMessage = (_ref = (_result$error$message = result === null || result === void 0 ? void 0 : (_result$error = result.error) === null || _result$error === void 0 ? void 0 : _result$error.message) !== null && _result$error$message !== void 0 ? _result$error$message : result === null || result === void 0 ? void 0 : result.error) !== null && _ref !== void 0 ? _ref : error;
145
+ var errorMessage = (_result$error = result === null || result === void 0 ? void 0 : result.error) !== null && _result$error !== void 0 ? _result$error : error;
150
146
  var timeString = CommandHistoryItemTooltip.getTimeString(startTime, endTime || currentTime); // colorizing in monaco is mostly a function of the number of lines,
151
147
  // it gets real slow after a few thousand lines. Truncate the tooltip
152
148
  // to avoid UI locks. The full command is still inserted.
@@ -176,14 +172,10 @@ export class CommandHistoryItemTooltip extends Component {
176
172
  }
177
173
 
178
174
  }
179
- CommandHistoryItemTooltip.propTypes = {
180
- item: ConsolePropTypes.CommandHistoryItem.isRequired,
181
- language: PropTypes.string.isRequired,
182
- onUpdate: PropTypes.func,
183
- commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired
184
- };
185
- CommandHistoryItemTooltip.defaultProps = {
186
- onUpdate: () => {}
187
- };
175
+
176
+ _defineProperty(CommandHistoryItemTooltip, "defaultProps", {
177
+ onUpdate: () => undefined
178
+ });
179
+
188
180
  export default CommandHistoryItemTooltip;
189
181
  //# sourceMappingURL=CommandHistoryItemTooltip.js.map
@@ -1 +1 @@
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":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,OAAP,MAAoB,UAApB;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,SAAT,QAA0B,kBAA1B;OACOC,I;;OAEAC,gB;OACAC,gB;AAEP,IAAMC,kBAAkB,GAAG,GAA3B;AACA,IAAMC,mBAAmB,GAAG,IAA5B;AAEA,OAAO,MAAMC,yBAAN,SAAwCb,SAAxC,CAAkD;AACnC,SAAbc,aAAa,CAACC,SAAD,EAAYC,OAAZ,EAAqB;AACvC,QAAI,CAACD,SAAD,IAAc,CAACC,OAAnB,EAA4B;AAC1B,aAAO,IAAP;AACD;;AAED,QAAMC,SAAS,GAAGC,IAAI,CAACC,KAAL,CAChB,CAAC,IAAIC,IAAJ,CAASJ,OAAT,IAAoB,IAAII,IAAJ,CAASL,SAAT,CAArB,IAA4C,IAD5B,CAAlB;AAIA,QAAIE,SAAS,GAAG,CAAhB,EAAmB,OAAO,KAAP;AAEnB,WAAOZ,SAAS,CAACgB,iBAAV,CAA4BJ,SAA5B,CAAP;AACD;;AAEDK,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;;AADiB,4CA+FFpB,OAAO,CACtBqB,IAAI,IAAIA,IAAI,CAACC,KAAL,CAAW,IAAX,EAAiBb,mBAAjB,EAAsCc,IAAtC,CAA2C,IAA3C,CADc,EAEtB;AAAEC,MAAAA,GAAG,EAAE;AAAP,KAFsB,CA/FL;;AAGjB,SAAKC,QAAL,GAAgB1B,QAAQ,CAAC,KAAK0B,QAAL,CAAcC,IAAd,CAAmB,IAAnB,CAAD,EAA2BlB,kBAA3B,CAAxB;AACA,SAAKmB,YAAL,GAAoB,KAAKA,YAAL,CAAkBD,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKE,WAAL,GAAmB,KAAKA,WAAL,CAAiBF,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKG,aAAL,GAAqB,KAAKA,aAAL,CAAmBH,IAAnB,CAAwB,IAAxB,CAArB;AAEA,SAAKI,KAAL,GAAa,IAAb;AACA,SAAKC,OAAL,GAAe,IAAf;AAEA,SAAKC,KAAL,GAAa;AACXC,MAAAA,WAAW,EAAEhB,IAAI,CAACiB,GAAL,EADF;AAEXC,MAAAA,IAAI,EAAE,IAFK;AAGXC,MAAAA,KAAK,EAAE;AAHI,KAAb;AAKD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKZ,QAAL;AACD;;AAEDa,EAAAA,kBAAkB,CAACC,SAAD,EAAYC,SAAZ,EAAuB;AAAA;;AACvC,QAAM;AAAEL,MAAAA;AAAF,QAAW,KAAKH,KAAtB;;AAEA,QACE,KAAKF,KAAL,IAAc,IAAd,IACA,EAACK,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEM,MAAP,CADA,IAEAN,IAFA,aAEAA,IAFA,eAEAA,IAAI,CAAEvB,SAFN,IAGA,EAACuB,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEtB,OAAP,CAJF,EAKE;AACA,WAAK6B,UAAL;AACD,KAPD,MAOO,IACJP,IAAI,SAAJ,IAAAA,IAAI,WAAJ,IAAAA,IAAI,CAAEM,MAAN,IAAgB,qBAACD,SAAS,CAACL,IAAX,4CAAC,gBAAgBM,MAAjB,CAAjB,IACCN,IAAI,SAAJ,IAAAA,IAAI,WAAJ,IAAAA,IAAI,CAAEtB,OAAN,IAAiB,sBAAC2B,SAAS,CAACL,IAAX,6CAAC,iBAAgBtB,OAAjB,CAFb,EAGL;AACA;AACA,WAAK8B,SAAL;AACD;AACF;;AAEDC,EAAAA,oBAAoB,GAAG;AACrB,SAAKnB,QAAL,CAAcoB,MAAd;;AACA,QAAI,KAAKd,OAAL,IAAgB,IAApB,EAA0B;AACxB,WAAKA,OAAL;AACD;;AACD,SAAKY,SAAL;AACD;;AAEDlB,EAAAA,QAAQ,GAAG;AACT,QAAM;AAAEqB,MAAAA,qBAAF;AAAyBC,MAAAA,IAAzB;AAA+BC,MAAAA;AAA/B,QAA4C,KAAK5B,KAAvD;AACA,QAAM;AAAE6B,MAAAA;AAAF,QAASF,IAAf;AACA,SAAKhB,OAAL,GAAee,qBAAqB,CAACI,UAAtB,CACbF,QADa,EAEbC,EAFa,EAGb,KAAKtB,YAHQ,EAIb,KAAKC,WAJQ,CAAf;AAMD;;AAEDc,EAAAA,UAAU,GAAG;AACX,SAAKC,SAAL;AAEA,SAAKb,KAAL,GAAaqB,WAAW,CAAC,KAAKtB,aAAN,EAAqB,IAArB,CAAxB;AACD;;AAEDc,EAAAA,SAAS,GAAG;AACV,QAAI,KAAKb,KAAT,EAAgB;AACdsB,MAAAA,aAAa,CAAC,KAAKtB,KAAN,CAAb;AACA,WAAKA,KAAL,GAAa,IAAb;AACD;AACF;;AAEDuB,EAAAA,UAAU,GAAG;AACX,SAAKC,QAAL,CAAc;AACZrB,MAAAA,WAAW,EAAEhB,IAAI,CAACiB,GAAL;AADD,KAAd;AAGD;;AAEDN,EAAAA,WAAW,CAACQ,KAAD,EAAQ;AACjB,SAAKkB,QAAL,CAAc;AAAElB,MAAAA,KAAK,YAAKA,KAAL;AAAP,KAAd;AACD;;AAEDT,EAAAA,YAAY,CAACoB,IAAD,EAAO;AACjB,QAAM;AAAEZ,MAAAA,IAAI,GAAG;AAAT,QAAkBY,IAAlB,aAAkBA,IAAlB,cAAkBA,IAAlB,GAA0B,EAAhC;AACA,SAAKO,QAAL,CAAc;AAAEnB,MAAAA;AAAF,KAAd;AAEA,QAAM;AAAEoB,MAAAA;AAAF,QAAe,KAAKnC,KAA1B;AACAmC,IAAAA,QAAQ,CAACpB,IAAD,CAAR;AACD;;AAEDN,EAAAA,aAAa,GAAG;AACd,SAAKwB,UAAL;AACD;;AAODG,EAAAA,MAAM,GAAG;AAAA;;AACP,QAAM;AACJT,MAAAA,IAAI,EAAE;AAAE1B,QAAAA;AAAF,OADF;AAEJ2B,MAAAA;AAFI,QAGF,KAAK5B,KAHT;AAIA,QAAM;AAAEa,MAAAA,WAAF;AAAeE,MAAAA,IAAf;AAAqBC,MAAAA;AAArB,QAA+B,KAAKJ,KAA1C;AACA,QAAM;AAAES,MAAAA,MAAF;AAAU7B,MAAAA,SAAV;AAAqBC,MAAAA;AAArB,QAAiCsB,IAAjC,aAAiCA,IAAjC,cAAiCA,IAAjC,GAAyC,EAA/C;AACA,QAAMsB,YAAY,oCAAGhB,MAAH,aAAGA,MAAH,wCAAGA,MAAM,CAAEL,KAAX,kDAAG,cAAesB,OAAlB,yEAA6BjB,MAA7B,aAA6BA,MAA7B,uBAA6BA,MAAM,CAAEL,KAArC,uCAA8CA,KAAhE;AACA,QAAMuB,UAAU,GAAGjD,yBAAyB,CAACC,aAA1B,CACjBC,SADiB,EAEjBC,OAAO,IAAIoB,WAFM,CAAnB,CARO,CAaP;AACA;AACA;;AACA,QAAM2B,WAAW,GAAG,KAAKC,cAAL,CAAoBxC,IAApB,CAApB;AAEA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,IAAD;AAAM,MAAA,QAAQ,EAAE2B;AAAhB,OAA2BY,WAA3B,CADF,EAEGA,WAAW,CAACE,MAAZ,GAAqBzC,IAAI,CAACyC,MAA1B,iBAAoC,sDAFvC,CADF,eAKE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACGL,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,EAEGuD,UAAU,gBACT;AAAM,MAAA,SAAS,EAAC;AAAhB,OAA+BA,UAA/B,CADS,gBAGT,oBAAC,cAAD,OALJ,CANF,CADF,EAgBGF,YAAY,iBAAI;AAAK,MAAA,SAAS,EAAC;AAAf,OAAgCA,YAAhC,CAhBnB,CALF,CADF;AA0BD;;AA/JsD;AAkKzD/C,yBAAyB,CAACqD,SAA1B,GAAsC;AACpChB,EAAAA,IAAI,EAAEzC,gBAAgB,CAAC0D,kBAAjB,CAAoCC,UADN;AAEpCjB,EAAAA,QAAQ,EAAElD,SAAS,CAACoE,MAAV,CAAiBD,UAFS;AAGpCV,EAAAA,QAAQ,EAAEzD,SAAS,CAACqE,IAHgB;AAIpCrB,EAAAA,qBAAqB,EAAEvC,gBAAgB,CAAC6D,qBAAjB,CAAuCH;AAJ1B,CAAtC;AAOAvD,yBAAyB,CAAC2D,YAA1B,GAAyC;AACvCd,EAAAA,QAAQ,EAAE,MAAM,CAAE;AADqB,CAAzC;AAIA,eAAe7C,yBAAf","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"}
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":"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","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"}