@deephaven/console 1.1.2-grid-render-loop.4 → 1.2.1-3-revert-plotly.1

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 (56) hide show
  1. package/dist/Console.js.map +1 -1
  2. package/dist/ConsoleInput.js.map +1 -1
  3. package/dist/ConsoleObjectsMenu.js.map +1 -1
  4. package/dist/ConsolePropTypes.js.map +1 -1
  5. package/dist/ConsoleShortcuts.js.map +1 -1
  6. package/dist/ConsoleStatusBar.js.map +1 -1
  7. package/dist/HeapUsage.js.map +1 -1
  8. package/dist/StoragePropTypes.js.map +1 -1
  9. package/dist/command-history/CommandHistory.js.map +1 -1
  10. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  11. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  12. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  13. package/dist/command-history/CommandHistoryStorage.js.map +1 -1
  14. package/dist/command-history/CommandHistoryTypes.js.map +1 -1
  15. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  16. package/dist/command-history/index.js.map +1 -1
  17. package/dist/common/Code.js.map +1 -1
  18. package/dist/common/ConsoleConstants.js.map +1 -1
  19. package/dist/common/ConsoleUtils.js.map +1 -1
  20. package/dist/common/ObjectIcon.js.map +1 -1
  21. package/dist/common/index.js.map +1 -1
  22. package/dist/console-history/ConsoleHistory.js.map +1 -1
  23. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  24. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  25. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  26. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  27. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
  28. package/dist/console-history/index.js.map +1 -1
  29. package/dist/csv/CsvFormats.js.map +1 -1
  30. package/dist/csv/CsvInputBar.js.map +1 -1
  31. package/dist/csv/CsvOverlay.js.map +1 -1
  32. package/dist/csv/CsvParser.js.map +1 -1
  33. package/dist/csv/CsvTypeParser.js.map +1 -1
  34. package/dist/csv/ZipStreamHelper.js.map +1 -1
  35. package/dist/declaration.d.js.map +1 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/log/LogLevel.js.map +1 -1
  38. package/dist/log/LogLevelMenuItem.js.map +1 -1
  39. package/dist/log/LogView.js.map +1 -1
  40. package/dist/monaco/MonacoProviders.js.map +1 -1
  41. package/dist/monaco/MonacoThemeProvider.js.map +1 -1
  42. package/dist/monaco/MonacoUtils.js.map +1 -1
  43. package/dist/monaco/RuffDefaultSettings.js.map +1 -1
  44. package/dist/monaco/RuffSettingsModal.js.map +1 -1
  45. package/dist/monaco/index.js.map +1 -1
  46. package/dist/monaco/lang/Language.js.map +1 -1
  47. package/dist/monaco/lang/db.js.map +1 -1
  48. package/dist/monaco/lang/groovy.js.map +1 -1
  49. package/dist/monaco/lang/log.js.map +1 -1
  50. package/dist/monaco/lang/python.js.map +1 -1
  51. package/dist/monaco/lang/scala.js.map +1 -1
  52. package/dist/monaco/ruffSchema.js.map +1 -1
  53. package/dist/notebook/Editor.js.map +1 -1
  54. package/dist/notebook/ScriptEditor.js.map +1 -1
  55. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  56. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","names":["React","Component","classNames","monaco","assertNotNull","MonacoUtils","jsx","_jsx","Editor","constructor","props","_defineProperty","handleResize","bind","container","state","componentDidMount","initEditor","window","addEventListener","componentWillUnmount","removeEventListener","destroyEditor","setLanguage","language","editor","model","getModel","setModelLanguage","updateDimensions","toggleFind","focus","trigger","undefined","_this$editor","layout","onEditorInitialized","settings","_objectSpread","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineNumbersMinChars","minimap","enabled","scrollBeyondLastLine","tabCompletion","value","wordWrap","links","autoClosingBrackets","create","addAction","id","label","keybindings","KeyMod","CtrlCmd","KeyCode","KeyF","precondition","keybindingContext","contextMenuGroupId","contextMenuOrder","run","languages","registerLinkProvider","provideLinks","onEditorWillDestroy","dispose","render","className","ref"],"sources":["../../src/notebook/Editor.tsx"],"sourcesContent":["/**\n * Editor editor for large blocks of code\n */\nimport React, { Component, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport { assertNotNull } from '@deephaven/utils';\nimport MonacoUtils from '../monaco/MonacoUtils';\nimport './Editor.scss';\n\nexport interface EditorProps {\n className: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n settings: monaco.editor.IStandaloneEditorConstructionOptions;\n}\n\nclass Editor extends Component<EditorProps, Record<string, never>> {\n static defaultProps = {\n className: 'fill-parent-absolute',\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n settings: {},\n };\n\n constructor(props: EditorProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.container = null;\n this.state = {};\n }\n\n componentDidMount(): void {\n this.initEditor();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('resize', this.handleResize);\n\n this.destroyEditor();\n }\n\n container: HTMLDivElement | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n setLanguage(language: string): void {\n if (this.editor) {\n const model = this.editor.getModel();\n assertNotNull(model);\n monaco.editor.setModelLanguage(model, language);\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n toggleFind(): void {\n if (this.editor) {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor.focus();\n this.editor.trigger('toggleFind', 'actions.find', undefined);\n }\n }\n\n updateDimensions(): void {\n this.editor?.layout();\n }\n\n initEditor(): void {\n const { onEditorInitialized } = this.props;\n let { settings } = this.props;\n settings = {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: `python`,\n lineNumbersMinChars: 3,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n tabCompletion: 'on',\n value: '',\n wordWrap: 'off',\n links: true,\n autoClosingBrackets: 'beforeWhitespace',\n ...settings,\n };\n assertNotNull(this.container);\n\n this.editor = monaco.editor.create(this.container, settings);\n\n this.editor.addAction({\n id: 'find',\n label: 'Find',\n keybindings: [\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF,\n ],\n precondition: undefined,\n keybindingContext: undefined,\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.0,\n\n run: () => {\n this.toggleFind();\n },\n });\n this.editor.layout();\n\n monaco.languages.registerLinkProvider('plaintext', {\n provideLinks: MonacoUtils.provideLinks,\n });\n\n onEditorInitialized(this.editor);\n }\n\n destroyEditor(): void {\n const { onEditorWillDestroy } = this.props;\n assertNotNull(this.editor);\n onEditorWillDestroy(this.editor);\n this.editor.dispose();\n this.editor = undefined;\n }\n\n render(): ReactElement {\n const { className } = this.props;\n return (\n <div\n className={classNames('editor-container', className)}\n ref={container => {\n this.container = container;\n }}\n />\n );\n }\n}\n\nexport default Editor;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Editor.js","names":["React","Component","classNames","monaco","assertNotNull","MonacoUtils","jsx","_jsx","Editor","constructor","props","_defineProperty","handleResize","bind","container","state","componentDidMount","initEditor","window","addEventListener","componentWillUnmount","removeEventListener","destroyEditor","setLanguage","language","editor","model","getModel","setModelLanguage","updateDimensions","toggleFind","focus","trigger","undefined","_this$editor","layout","onEditorInitialized","settings","_objectSpread","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineNumbersMinChars","minimap","enabled","scrollBeyondLastLine","tabCompletion","value","wordWrap","links","autoClosingBrackets","create","addAction","id","label","keybindings","KeyMod","CtrlCmd","KeyCode","KeyF","precondition","keybindingContext","contextMenuGroupId","contextMenuOrder","run","languages","registerLinkProvider","provideLinks","onEditorWillDestroy","dispose","render","className","ref"],"sources":["../../src/notebook/Editor.tsx"],"sourcesContent":["/**\n * Editor editor for large blocks of code\n */\nimport React, { Component, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport { assertNotNull } from '@deephaven/utils';\nimport MonacoUtils from '../monaco/MonacoUtils';\nimport './Editor.scss';\n\nexport interface EditorProps {\n className: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n settings: monaco.editor.IStandaloneEditorConstructionOptions;\n}\n\nclass Editor extends Component<EditorProps, Record<string, never>> {\n static defaultProps = {\n className: 'fill-parent-absolute',\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n settings: {},\n };\n\n constructor(props: EditorProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.container = null;\n this.state = {};\n }\n\n componentDidMount(): void {\n this.initEditor();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('resize', this.handleResize);\n\n this.destroyEditor();\n }\n\n container: HTMLDivElement | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n setLanguage(language: string): void {\n if (this.editor) {\n const model = this.editor.getModel();\n assertNotNull(model);\n monaco.editor.setModelLanguage(model, language);\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n toggleFind(): void {\n if (this.editor) {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor.focus();\n this.editor.trigger('toggleFind', 'actions.find', undefined);\n }\n }\n\n updateDimensions(): void {\n this.editor?.layout();\n }\n\n initEditor(): void {\n const { onEditorInitialized } = this.props;\n let { settings } = this.props;\n settings = {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: `python`,\n lineNumbersMinChars: 3,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n tabCompletion: 'on',\n value: '',\n wordWrap: 'off',\n links: true,\n autoClosingBrackets: 'beforeWhitespace',\n ...settings,\n };\n assertNotNull(this.container);\n\n this.editor = monaco.editor.create(this.container, settings);\n\n this.editor.addAction({\n id: 'find',\n label: 'Find',\n keybindings: [\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF,\n ],\n precondition: undefined,\n keybindingContext: undefined,\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.0,\n\n run: () => {\n this.toggleFind();\n },\n });\n this.editor.layout();\n\n monaco.languages.registerLinkProvider('plaintext', {\n provideLinks: MonacoUtils.provideLinks,\n });\n\n onEditorInitialized(this.editor);\n }\n\n destroyEditor(): void {\n const { onEditorWillDestroy } = this.props;\n assertNotNull(this.editor);\n onEditorWillDestroy(this.editor);\n this.editor.dispose();\n this.editor = undefined;\n }\n\n render(): ReactElement {\n const { className } = this.props;\n return (\n <div\n className={classNames('editor-container', className)}\n ref={container => {\n this.container = container;\n }}\n />\n );\n }\n}\n\nexport default Editor;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","Editor","MonacoProviders","MonacoUtils","SHORTCUTS","ScriptEditorUtils","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","ScriptEditor","constructor","props","_defineProperty","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","_prevProps$settings","_prevProps$settings2","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","undefined","deInitCodeCompletion","sessionConnected","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","editor","error","getSelectedCommand","_this$editor","_this$editor2","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","outdentCode","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","initContextActions","onDidChangeModelContent","focus","onEditorWillDestroy","deInitContextActions","onRunCommand","command","info","concat","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","arguments","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","_settings$language","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled","children","className","ref"],"sources":["../../src/notebook/ScriptEditor.tsx"],"sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, type ReactElement, type RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoProviders, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport ScriptEditorUtils from './ScriptEditorUtils';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: dh.IdeSession | null;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage !== undefined && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion');\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage !== undefined && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion');\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n\n return ScriptEditorUtils.outdentCode(model.getValueInRange(wholeLineRange));\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n onEditorInitialized,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n // Always initialize context actions when the editor is created to ensure that unwanted default\n // OS shortcuts are overridden by custom shortcuts.\n this.initContextActions();\n\n if (session != null && settings && sessionLanguage === settings.language) {\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand, session, sessionLanguage, settings } = this.props;\n const command = this.getValue();\n\n const language = settings?.language;\n const languageMatch = language === sessionLanguage;\n\n if (session == null || !languageMatch) {\n log.info(\n `Run disabled - ${\n session == null ? 'session disconnected' : 'language mismatch'\n }`\n );\n return;\n }\n\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand, session, sessionLanguage, settings } = this.props;\n const command = this.getSelectedCommand();\n\n const language = settings?.language;\n const languageMatch = language === sessionLanguage;\n\n if (session == null || !languageMatch) {\n log.info(\n `Run selected disabled - ${\n session == null ? 'session disconnected' : 'language mismatch'\n }`\n );\n return;\n }\n\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session != null) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language !== undefined) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const { error, isLoaded, isLoading, session, sessionLanguage, settings } =\n this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language ?? null : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled != null &&\n completionProviderEnabled && (\n <MonacoProviders\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","Editor","MonacoProviders","MonacoUtils","SHORTCUTS","ScriptEditorUtils","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","ScriptEditor","constructor","props","_defineProperty","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","_prevProps$settings","_prevProps$settings2","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","undefined","deInitCodeCompletion","sessionConnected","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","editor","error","getSelectedCommand","_this$editor","_this$editor2","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","outdentCode","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","initContextActions","onDidChangeModelContent","focus","onEditorWillDestroy","deInitContextActions","onRunCommand","command","info","concat","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","arguments","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","_settings$language","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled","children","className","ref"],"sources":["../../src/notebook/ScriptEditor.tsx"],"sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, type ReactElement, type RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoProviders, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport ScriptEditorUtils from './ScriptEditorUtils';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: dh.IdeSession | null;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage !== undefined && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion');\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage !== undefined && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion');\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n\n return ScriptEditorUtils.outdentCode(model.getValueInRange(wholeLineRange));\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n onEditorInitialized,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n // Always initialize context actions when the editor is created to ensure that unwanted default\n // OS shortcuts are overridden by custom shortcuts.\n this.initContextActions();\n\n if (session != null && settings && sessionLanguage === settings.language) {\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand, session, sessionLanguage, settings } = this.props;\n const command = this.getValue();\n\n const language = settings?.language;\n const languageMatch = language === sessionLanguage;\n\n if (session == null || !languageMatch) {\n log.info(\n `Run disabled - ${\n session == null ? 'session disconnected' : 'language mismatch'\n }`\n );\n return;\n }\n\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand, session, sessionLanguage, settings } = this.props;\n const command = this.getSelectedCommand();\n\n const language = settings?.language;\n const languageMatch = language === sessionLanguage;\n\n if (session == null || !languageMatch) {\n log.info(\n `Run selected disabled - ${\n session == null ? 'session disconnected' : 'language mismatch'\n }`\n );\n return;\n }\n\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session != null) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language !== undefined) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const { error, isLoaded, isLoading, session, sessionLanguage, settings } =\n this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language ?? null : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled != null &&\n completionProviderEnabled && (\n <MonacoProviders\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel","concat","outdentCode","code","lines","split","minIndent","reduce","min","line","indentLength","length","trimStart","Number","MAX_SAFE_INTEGER","map","slice","join"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n\n /**\n * Outdent (opposite of indent) a string so the lowest indent level is 0\n * Assumes each line is indented with the same characters (i.e. no mixed tabs/spaces)\n * @param code The code to outdent\n * @returns A code block where the minimum indent level of a line is 0\n */\n static outdentCode(code: string): string {\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const indentLength = line.length - line.trimStart().length;\n if (indentLength === line.length) {\n return min;\n }\n return indentLength < min ? indentLength : min;\n }, Number.MAX_SAFE_INTEGER);\n return lines.map(line => line.slice(minIndent)).join('\\n');\n }\n}\n\nexport default ScriptEditorUtils;\n"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE;AACT,CAAU;AAEV,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,uBAAuBA,CAACC,QAAgC,EAAU;IACvE,OAAON,SAAS,CAACM,QAAQ,CAAC,IAAI,IAAI;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,qBAAqBA,CAC1BC,kBAA2B,EAC3BC,kBAA2B,EAC3BC,mBAA2B,EAC3BC,WAAmB,EACJ;IACf,IAAI,CAACH,kBAAkB,EAAE;MACvB,+CAAAI,MAAA,CAA0CD,WAAW;IACvD;IACA,IAAI,CAACF,kBAAkB,EAAE;MACvB,UAAAG,MAAA,CAAUF,mBAAmB,iDAAAE,MAAA,CAAyCD,WAAW;IACnF;IACA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOE,WAAWA,CAACC,IAAY,EAAU;IACvC,IAAMC,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,IAAI,CAAC;IAC9B,IAAMC,SAAS,GAAGF,KAAK,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MAC5C,IAAMC,YAAY,GAAGD,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACG,SAAS,CAAC,CAAC,CAACD,MAAM;MAC1D,IAAID,YAAY,KAAKD,IAAI,CAACE,MAAM,EAAE;QAChC,OAAOH,GAAG;MACZ;MACA,OAAOE,YAAY,GAAGF,GAAG,GAAGE,YAAY,GAAGF,GAAG;IAChD,CAAC,EAAEK,MAAM,CAACC,gBAAgB,CAAC;IAC3B,OAAOV,KAAK,CAACW,GAAG,CAACN,IAAI,IAAIA,IAAI,CAACO,KAAK,CAACV,SAAS,CAAC,CAAC,CAACW,IAAI,CAAC,IAAI,CAAC;EAC5D;AACF;AAEA,eAAexB,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel","concat","outdentCode","code","lines","split","minIndent","reduce","min","line","indentLength","length","trimStart","Number","MAX_SAFE_INTEGER","map","slice","join"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n\n /**\n * Outdent (opposite of indent) a string so the lowest indent level is 0\n * Assumes each line is indented with the same characters (i.e. no mixed tabs/spaces)\n * @param code The code to outdent\n * @returns A code block where the minimum indent level of a line is 0\n */\n static outdentCode(code: string): string {\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const indentLength = line.length - line.trimStart().length;\n if (indentLength === line.length) {\n return min;\n }\n return indentLength < min ? indentLength : min;\n }, Number.MAX_SAFE_INTEGER);\n return lines.map(line => line.slice(minIndent)).join('\\n');\n }\n}\n\nexport default ScriptEditorUtils;\n"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE;AACT,CAAU;AAEV,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,uBAAuBA,CAACC,QAAgC,EAAU;IACvE,OAAON,SAAS,CAACM,QAAQ,CAAC,IAAI,IAAI;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,qBAAqBA,CAC1BC,kBAA2B,EAC3BC,kBAA2B,EAC3BC,mBAA2B,EAC3BC,WAAmB,EACJ;IACf,IAAI,CAACH,kBAAkB,EAAE;MACvB,+CAAAI,MAAA,CAA0CD,WAAW;IACvD;IACA,IAAI,CAACF,kBAAkB,EAAE;MACvB,UAAAG,MAAA,CAAUF,mBAAmB,iDAAAE,MAAA,CAAyCD,WAAW;IACnF;IACA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOE,WAAWA,CAACC,IAAY,EAAU;IACvC,IAAMC,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,IAAI,CAAC;IAC9B,IAAMC,SAAS,GAAGF,KAAK,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;MAC5C,IAAMC,YAAY,GAAGD,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACG,SAAS,CAAC,CAAC,CAACD,MAAM;MAC1D,IAAID,YAAY,KAAKD,IAAI,CAACE,MAAM,EAAE;QAChC,OAAOH,GAAG;MACZ;MACA,OAAOE,YAAY,GAAGF,GAAG,GAAGE,YAAY,GAAGF,GAAG;IAChD,CAAC,EAAEK,MAAM,CAACC,gBAAgB,CAAC;IAC3B,OAAOV,KAAK,CAACW,GAAG,CAACN,IAAI,IAAIA,IAAI,CAACO,KAAK,CAACV,SAAS,CAAC,CAAC,CAACW,IAAI,CAAC,IAAI,CAAC;EAC5D;AACF;AAEA,eAAexB,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "1.1.2-grid-render-loop.4+5b8da558",
3
+ "version": "1.2.1-3-revert-plotly.1+323399ae",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -24,16 +24,16 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@astral-sh/ruff-wasm-web": "0.6.4",
27
- "@deephaven/chart": "^1.1.2-grid-render-loop.4+5b8da558",
28
- "@deephaven/components": "^1.1.2-grid-render-loop.4+5b8da558",
29
- "@deephaven/icons": "^1.1.2-grid-render-loop.4+5b8da558",
30
- "@deephaven/jsapi-bootstrap": "^1.1.2-grid-render-loop.4+5b8da558",
27
+ "@deephaven/chart": "^1.2.1-3-revert-plotly.1+323399ae",
28
+ "@deephaven/components": "^1.2.1-3-revert-plotly.1+323399ae",
29
+ "@deephaven/icons": "^1.2.1-3-revert-plotly.1+323399ae",
30
+ "@deephaven/jsapi-bootstrap": "^1.2.1-3-revert-plotly.1+323399ae",
31
31
  "@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
32
- "@deephaven/jsapi-utils": "^1.1.2-grid-render-loop.4+5b8da558",
33
- "@deephaven/log": "^1.1.2-grid-render-loop.4+5b8da558",
34
- "@deephaven/react-hooks": "^1.1.2-grid-render-loop.4+5b8da558",
35
- "@deephaven/storage": "^1.1.2-grid-render-loop.4+5b8da558",
36
- "@deephaven/utils": "^1.1.2-grid-render-loop.4+5b8da558",
32
+ "@deephaven/jsapi-utils": "^1.2.1-3-revert-plotly.1+323399ae",
33
+ "@deephaven/log": "^1.2.1-3-revert-plotly.1+323399ae",
34
+ "@deephaven/react-hooks": "^1.2.1-3-revert-plotly.1+323399ae",
35
+ "@deephaven/storage": "^1.2.1-3-revert-plotly.1+323399ae",
36
+ "@deephaven/utils": "^1.2.1-3-revert-plotly.1+323399ae",
37
37
  "@fortawesome/react-fontawesome": "^0.2.0",
38
38
  "classnames": "^2.3.1",
39
39
  "linkifyjs": "^4.1.0",
@@ -53,9 +53,9 @@
53
53
  "react-dom": ">=16.8.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@deephaven/jsapi-shim": "^1.1.2-grid-render-loop.4+5b8da558",
57
- "@deephaven/mocks": "^1.1.2-grid-render-loop.4+5b8da558",
58
- "@deephaven/test-utils": "^1.1.2-grid-render-loop.4+5b8da558"
56
+ "@deephaven/jsapi-shim": "^1.2.1-3-revert-plotly.1+323399ae",
57
+ "@deephaven/mocks": "^1.2.1-3-revert-plotly.1+323399ae",
58
+ "@deephaven/test-utils": "^1.2.1-3-revert-plotly.1+323399ae"
59
59
  },
60
60
  "files": [
61
61
  "dist"
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "5b8da55880bdbb7956e72bd9f35f2c6d2f737e64"
69
+ "gitHead": "323399ae3e863f97dea95bc0f2b8234a088fd2da"
70
70
  }