@deephaven/console 0.70.1-alpha-picker-table.35 → 0.70.1-beta.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,qBAAqB,CAAC;AAU7B,UAAU,iBAAiB;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAC7C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,MAAM,CAAC,YAAY;;;;MAIjB;IAEF,MAAM,CAAC,gBAAgB,SAAmB;gBAE9B,KAAK,EAAE,iBAAiB;IAqBpC,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAU5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,cAAc,EAAE,cAAc,CAAC;IAE/B,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAEpD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EACX,iBAAiB,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,GAC1D,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAE3C,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IA0BjE,iBAAiB,IAAI,IAAI;IAmIzB,oBAAoB,IAAI,IAAI;IAS5B,YAAY,IAAI,IAAI;IAIpB,sBAAsB,IAAI,OAAO;IAcjC,yBAAyB,IAAI,OAAO;IAQpC,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,IAAI;IAWlB,QAAQ,IAAI,IAAI;IAYhB,KAAK,IAAI,IAAI;IAMb,YAAY,IAAI,IAAI;IAMpB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiBjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDtC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBrC,gBAAgB,IAAI,IAAI;IA6BxB,MAAM,IAAI,YAAY;CA0BvB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,iBAAiB,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,qBAAqB,CAAC;AAU7B,UAAU,iBAAiB;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAC7C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,MAAM,CAAC,YAAY;;;;MAIjB;IAEF,MAAM,CAAC,gBAAgB,SAAmB;gBAE9B,KAAK,EAAE,iBAAiB;IAqBpC,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAU5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,cAAc,EAAE,cAAc,CAAC;IAE/B,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAEpD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EACX,iBAAiB,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,GAC1D,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAE3C,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IA0BjE,iBAAiB,IAAI,IAAI;IAoIzB,oBAAoB,IAAI,IAAI;IAS5B,YAAY,IAAI,IAAI;IAIpB,sBAAsB,IAAI,OAAO;IAcjC,yBAAyB,IAAI,OAAO;IAQpC,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,IAAI;IAWlB,QAAQ,IAAI,IAAI;IAYhB,KAAK,IAAI,IAAI;IAMb,YAAY,IAAI,IAAI;IAMpB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiBjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDtC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBrC,gBAAgB,IAAI,IAAI;IA6BxB,MAAM,IAAI,YAAY;CA0BvB;AAED,eAAe,YAAY,CAAC"}
@@ -130,7 +130,8 @@ export class ConsoleInput extends PureComponent {
130
130
  bottom: BOTTOM_PADDING
131
131
  },
132
132
  value: '',
133
- wordWrap: 'on'
133
+ wordWrap: 'on',
134
+ autoClosingBrackets: 'beforeWhitespace'
134
135
  };
135
136
  var element = this.commandContainer.current;
136
137
  assertNotNull(element);
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleInput.js","names":["React","PureComponent","classNames","monaco","Log","assertNotNull","PromiseUtils","MonacoProviders","MonacoTheme","MonacoUtils","jsx","_jsx","jsxs","_jsxs","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","_defineProperty","handleResize","bind","commandContainer","createRef","commandHistoryIndex","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","resizeObserver","window","ResizeObserver","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","disconnect","loadingPromise","cancel","destroyCommandEditor","setConsoleText","text","focus","arguments","length","undefined","execute","debug","_this$commandEditor","commandEditor","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","value","wordWrap","element","current","editor","create","setEOL","openDocument","onDidChangeModelContent","_this$commandEditor2","getValue","set","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","position","getPosition","lineNumber","getModel","code","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","getLineCount","altKey","shiftKey","metaKey","keyCode","KeyCode","Enter","_this$commandEditor3","command","trim","_this$commandEditor4","disableKeyBindings","KeyMod","CtrlCmd","KeyF","registerPasteHandler","observe","closeDocument","dispose","isSuggestionMenuActive","_ref","commandSuggestionContainer","_this$commandEditor5","_this$commandEditor5$","getDomNode","querySelector","classList","contains","_this$commandSuggesti","_this$commandSuggesti2","_this$commandSuggesti3","childElementCount","_this$commandEditor6","_this$commandEditor7","_this$commandEditor8","_this$commandEditor9","_this$commandEditor10","_this$commandEditor11","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","_this$commandEditor12","_this$commandEditor13","_this$commandEditor14","_this$commandEditor15","_this$commandEditor16","lastLine","lastCharTop","clear","_this$commandEditor17","_this$commandEditor18","_this$commandEditor19","layout","index","_this$commandEditor20","_this$commandEditor21","modifiedValue","get","historyValue","_this","_asyncToGenerator","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","filter","_ref2","pos","arr","name","map","_ref3","reverse","err","isCanceled","debug2","error","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","overviewRulerLanes","_this$commandEditor22","_this$commandEditor23","updateOptions","render","disabled","className","children","INPUT_CLASS_NAME","ref","style","height"],"sources":["../src/ConsoleInput.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { ViewportData } from '@deephaven/storage';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './command-history';\nimport { MonacoProviders, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\ninterface ConsoleInputProps {\n session: dh.IdeSession;\n language: string;\n scope?: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSubmit: (command: string) => void;\n maxHeight?: number;\n disabled?: boolean;\n}\n\ninterface ConsoleInputState {\n commandEditorHeight: number;\n isFocused: boolean;\n model: monaco.editor.ITextModel | null;\n}\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent<\n ConsoleInputProps,\n ConsoleInputState\n> {\n static defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n };\n\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props: ConsoleInputProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.commandContainer = React.createRef();\n this.commandHistoryIndex = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount(): void {\n this.initCommandEditor();\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate(): void {\n this.layoutEditor();\n }\n\n componentWillUnmount(): void {\n this.resizeObserver.disconnect();\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n cancelListener?: () => void;\n\n resizeObserver: ResizeObserver;\n\n commandContainer: RefObject<HTMLDivElement>;\n\n commandEditor?: monaco.editor.IStandaloneCodeEditor;\n\n commandHistoryIndex: number | null;\n\n commandSuggestionContainer?: Element | null;\n\n loadingPromise?:\n | CancelablePromise<ViewportData<CommandHistoryStorageItem>>\n | CancelablePromise<CommandHistoryTable>;\n\n timestamp: number;\n\n bufferIndex: number | null;\n\n history: string[];\n\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n modifiedCommands: Map<number | null, string | null>;\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param text The text to set in the input\n * @param focus If the input should be focused\n * @param execute If the input should be executed\n * @returns void\n */\n setConsoleText(text: string, focus = true, execute = false): void {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Only set the console text if we're not running this command\n if (!execute) {\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor?.setValue(text);\n }\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand(text);\n }\n }\n\n initCommandEditor(): void {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: false,\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n value: '',\n wordWrap: 'on',\n } as const;\n\n const element = this.commandContainer.current;\n assertNotNull(element);\n\n this.commandEditor = monaco.editor.create(element, commandSettings);\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n const value = this.commandEditor?.getValue();\n this.modifiedCommands.set(this.commandHistoryIndex, value ?? null);\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n const { commandEditor, commandHistoryIndex } = this;\n const position = commandEditor?.getPosition();\n assertNotNull(position);\n const { lineNumber } = position;\n const model = commandEditor?.getModel();\n if (\n keyEvent.code === 'ArrowUp' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.code === 'ArrowDown' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model?.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (\n keyEvent.keyCode === monaco.KeyCode.Enter &&\n !this.isSuggestionMenuPopulated()\n ) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n const command = this.commandEditor?.getValue().trim();\n if (command !== undefined) {\n this.processCommand(command);\n this.commandEditor?.setValue('');\n }\n }\n }\n });\n\n // Disable the Ctrl+F functionality so that the find window doesn't appear\n MonacoUtils.disableKeyBindings(this.commandEditor, [\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF, // eslint-disable-line no-bitwise\n ]);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.resizeObserver.observe(element);\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor(): void {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = undefined;\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive(): boolean {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n ?.getDomNode()\n ?.querySelector('.suggest-widget');\n }\n\n return (\n (this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')) ??\n false\n );\n }\n\n isSuggestionMenuPopulated(): boolean {\n return (\n this.isSuggestionMenuActive() &&\n (this.commandSuggestionContainer?.querySelector('.monaco-list-rows')\n ?.childElementCount ?? 0) > 0\n );\n }\n\n focus(): void {\n this.commandEditor?.focus();\n }\n\n focusStart(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor?.getTopForPosition(1, column);\n assertNotNull(firstCharTop);\n this.commandEditor?.setPosition({ lineNumber: 1, column });\n this.commandEditor?.setScrollTop(firstCharTop);\n this.commandEditor?.focus();\n }\n\n focusEnd(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor?.getTopForPosition(lastLine, column);\n assertNotNull(lastCharTop);\n this.commandEditor?.setPosition({ lineNumber: lastLine, column });\n this.commandEditor?.setScrollTop(lastCharTop);\n this.commandEditor?.focus();\n }\n\n clear(): void {\n this.commandEditor?.focus();\n this.commandEditor?.getModel()?.setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor(): void {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index: number | null): void {\n if (index !== null && index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor?.getModel()?.setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory(): Promise<void> {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope ?? '', this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData.items\n .filter(\n ({ name }, pos, arr) => pos === 0 || name !== arr[pos - 1].name\n )\n .map(({ name }) => name)\n .reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = undefined;\n\n table.close();\n } catch (err) {\n this.loadingPromise = undefined;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand(command: string): void {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n assertNotNull(command);\n if (\n command !== '' &&\n (this.history.length === 0 ||\n command !== this.history[this.history.length - 1])\n ) {\n this.history.push(command);\n }\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions(): void {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n assertNotNull(maxHeight);\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n\n const options = { overviewRulerLanes: shouldScroll ? undefined : 0 };\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor?.updateOptions(options);\n this.commandEditor?.layout();\n }\n );\n }\n\n render(): ReactElement {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoProviders\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleInput.js","names":["React","PureComponent","classNames","monaco","Log","assertNotNull","PromiseUtils","MonacoProviders","MonacoTheme","MonacoUtils","jsx","_jsx","jsxs","_jsxs","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","_defineProperty","handleResize","bind","commandContainer","createRef","commandHistoryIndex","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","resizeObserver","window","ResizeObserver","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","disconnect","loadingPromise","cancel","destroyCommandEditor","setConsoleText","text","focus","arguments","length","undefined","execute","debug","_this$commandEditor","commandEditor","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","value","wordWrap","autoClosingBrackets","element","current","editor","create","setEOL","openDocument","onDidChangeModelContent","_this$commandEditor2","getValue","set","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","position","getPosition","lineNumber","getModel","code","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","getLineCount","altKey","shiftKey","metaKey","keyCode","KeyCode","Enter","_this$commandEditor3","command","trim","_this$commandEditor4","disableKeyBindings","KeyMod","CtrlCmd","KeyF","registerPasteHandler","observe","closeDocument","dispose","isSuggestionMenuActive","_ref","commandSuggestionContainer","_this$commandEditor5","_this$commandEditor5$","getDomNode","querySelector","classList","contains","_this$commandSuggesti","_this$commandSuggesti2","_this$commandSuggesti3","childElementCount","_this$commandEditor6","_this$commandEditor7","_this$commandEditor8","_this$commandEditor9","_this$commandEditor10","_this$commandEditor11","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","_this$commandEditor12","_this$commandEditor13","_this$commandEditor14","_this$commandEditor15","_this$commandEditor16","lastLine","lastCharTop","clear","_this$commandEditor17","_this$commandEditor18","_this$commandEditor19","layout","index","_this$commandEditor20","_this$commandEditor21","modifiedValue","get","historyValue","_this","_asyncToGenerator","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","filter","_ref2","pos","arr","name","map","_ref3","reverse","err","isCanceled","debug2","error","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","overviewRulerLanes","_this$commandEditor22","_this$commandEditor23","updateOptions","render","disabled","className","children","INPUT_CLASS_NAME","ref","style","height"],"sources":["../src/ConsoleInput.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { ViewportData } from '@deephaven/storage';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n CommandHistoryStorage,\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './command-history';\nimport { MonacoProviders, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\ninterface ConsoleInputProps {\n session: dh.IdeSession;\n language: string;\n scope?: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSubmit: (command: string) => void;\n maxHeight?: number;\n disabled?: boolean;\n}\n\ninterface ConsoleInputState {\n commandEditorHeight: number;\n isFocused: boolean;\n model: monaco.editor.ITextModel | null;\n}\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent<\n ConsoleInputProps,\n ConsoleInputState\n> {\n static defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n };\n\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props: ConsoleInputProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.commandContainer = React.createRef();\n this.commandHistoryIndex = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount(): void {\n this.initCommandEditor();\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate(): void {\n this.layoutEditor();\n }\n\n componentWillUnmount(): void {\n this.resizeObserver.disconnect();\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n cancelListener?: () => void;\n\n resizeObserver: ResizeObserver;\n\n commandContainer: RefObject<HTMLDivElement>;\n\n commandEditor?: monaco.editor.IStandaloneCodeEditor;\n\n commandHistoryIndex: number | null;\n\n commandSuggestionContainer?: Element | null;\n\n loadingPromise?:\n | CancelablePromise<ViewportData<CommandHistoryStorageItem>>\n | CancelablePromise<CommandHistoryTable>;\n\n timestamp: number;\n\n bufferIndex: number | null;\n\n history: string[];\n\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n modifiedCommands: Map<number | null, string | null>;\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param text The text to set in the input\n * @param focus If the input should be focused\n * @param execute If the input should be executed\n * @returns void\n */\n setConsoleText(text: string, focus = true, execute = false): void {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Only set the console text if we're not running this command\n if (!execute) {\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor?.setValue(text);\n }\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand(text);\n }\n }\n\n initCommandEditor(): void {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: false,\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n value: '',\n wordWrap: 'on',\n autoClosingBrackets: 'beforeWhitespace',\n } as const;\n\n const element = this.commandContainer.current;\n assertNotNull(element);\n\n this.commandEditor = monaco.editor.create(element, commandSettings);\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n const value = this.commandEditor?.getValue();\n this.modifiedCommands.set(this.commandHistoryIndex, value ?? null);\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n const { commandEditor, commandHistoryIndex } = this;\n const position = commandEditor?.getPosition();\n assertNotNull(position);\n const { lineNumber } = position;\n const model = commandEditor?.getModel();\n if (\n keyEvent.code === 'ArrowUp' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.code === 'ArrowDown' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model?.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (\n keyEvent.keyCode === monaco.KeyCode.Enter &&\n !this.isSuggestionMenuPopulated()\n ) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n const command = this.commandEditor?.getValue().trim();\n if (command !== undefined) {\n this.processCommand(command);\n this.commandEditor?.setValue('');\n }\n }\n }\n });\n\n // Disable the Ctrl+F functionality so that the find window doesn't appear\n MonacoUtils.disableKeyBindings(this.commandEditor, [\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF, // eslint-disable-line no-bitwise\n ]);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.resizeObserver.observe(element);\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor(): void {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = undefined;\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive(): boolean {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n ?.getDomNode()\n ?.querySelector('.suggest-widget');\n }\n\n return (\n (this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')) ??\n false\n );\n }\n\n isSuggestionMenuPopulated(): boolean {\n return (\n this.isSuggestionMenuActive() &&\n (this.commandSuggestionContainer?.querySelector('.monaco-list-rows')\n ?.childElementCount ?? 0) > 0\n );\n }\n\n focus(): void {\n this.commandEditor?.focus();\n }\n\n focusStart(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor?.getTopForPosition(1, column);\n assertNotNull(firstCharTop);\n this.commandEditor?.setPosition({ lineNumber: 1, column });\n this.commandEditor?.setScrollTop(firstCharTop);\n this.commandEditor?.focus();\n }\n\n focusEnd(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor?.getTopForPosition(lastLine, column);\n assertNotNull(lastCharTop);\n this.commandEditor?.setPosition({ lineNumber: lastLine, column });\n this.commandEditor?.setScrollTop(lastCharTop);\n this.commandEditor?.focus();\n }\n\n clear(): void {\n this.commandEditor?.focus();\n this.commandEditor?.getModel()?.setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor(): void {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index: number | null): void {\n if (index !== null && index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor?.getModel()?.setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory(): Promise<void> {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope ?? '', this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData.items\n .filter(\n ({ name }, pos, arr) => pos === 0 || name !== arr[pos - 1].name\n )\n .map(({ name }) => name)\n .reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = undefined;\n\n table.close();\n } catch (err) {\n this.loadingPromise = undefined;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand(command: string): void {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n assertNotNull(command);\n if (\n command !== '' &&\n (this.history.length === 0 ||\n command !== this.history[this.history.length - 1])\n ) {\n this.history.push(command);\n }\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions(): void {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n assertNotNull(maxHeight);\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n\n const options = { overviewRulerLanes: shouldScroll ? undefined : 0 };\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor?.updateOptions(options);\n this.commandEditor?.layout();\n }\n );\n }\n\n render(): ReactElement {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoProviders\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/notebook/Editor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,eAAe,CAAC;AAEvB,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;IAC3E,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;IAC3E,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC;CAC9D;AAED,cAAM,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY;;mCAEQ,IAAI;mCACJ,IAAI;;MAE7B;gBAEU,KAAK,EAAE,WAAW;IAS9B,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAE7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,IAAI;IAUlB,gBAAgB,IAAI,IAAI;IAIxB,UAAU,IAAI,IAAI;IAgDlB,aAAa,IAAI,IAAI;IAQrB,MAAM,IAAI,YAAY;CAWvB;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/notebook/Editor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,eAAe,CAAC;AAEvB,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;IAC3E,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;IAC3E,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,oCAAoC,CAAC;CAC9D;AAED,cAAM,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY;;mCAEQ,IAAI;mCACJ,IAAI;;MAE7B;gBAEU,KAAK,EAAE,WAAW;IAS9B,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAE7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,IAAI;IAUlB,gBAAgB,IAAI,IAAI;IAIxB,UAAU,IAAI,IAAI;IAiDlB,aAAa,IAAI,IAAI;IAQrB,MAAM,IAAI,YAAY;CAWvB;AAED,eAAe,MAAM,CAAC"}
@@ -75,7 +75,8 @@ class Editor extends Component {
75
75
  tabCompletion: 'on',
76
76
  value: '',
77
77
  wordWrap: 'off',
78
- links: true
78
+ links: true,
79
+ autoClosingBrackets: 'beforeWhitespace'
79
80
  }, settings);
80
81
  assertNotNull(this.container);
81
82
  this.editor = monaco.editor.create(this.container, settings);
@@ -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","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, 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\ninterface 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 ...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
+ {"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, 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\ninterface 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/console",
3
- "version": "0.70.1-alpha-picker-table.35+79b80350",
3
+ "version": "0.70.1-beta.6+bfbf7b12",
4
4
  "description": "Deephaven Console",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,15 +23,15 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/chart": "^0.70.1-alpha-picker-table.35+79b80350",
27
- "@deephaven/components": "^0.70.1-alpha-picker-table.35+79b80350",
28
- "@deephaven/icons": "^0.70.1-alpha-picker-table.35+79b80350",
29
- "@deephaven/jsapi-bootstrap": "^0.70.1-alpha-picker-table.35+79b80350",
26
+ "@deephaven/chart": "^0.70.1-beta.6+bfbf7b12",
27
+ "@deephaven/components": "^0.70.1-beta.6+bfbf7b12",
28
+ "@deephaven/icons": "^0.70.1-beta.6+bfbf7b12",
29
+ "@deephaven/jsapi-bootstrap": "^0.70.1-beta.6+bfbf7b12",
30
30
  "@deephaven/jsapi-types": "1.0.0-dev0.33.1",
31
- "@deephaven/log": "^0.70.1-alpha-picker-table.35+79b80350",
32
- "@deephaven/react-hooks": "^0.70.1-alpha-picker-table.35+79b80350",
33
- "@deephaven/storage": "^0.70.1-alpha-picker-table.35+79b80350",
34
- "@deephaven/utils": "^0.70.1-alpha-picker-table.35+79b80350",
31
+ "@deephaven/log": "^0.70.1-beta.6+bfbf7b12",
32
+ "@deephaven/react-hooks": "^0.70.1-beta.6+bfbf7b12",
33
+ "@deephaven/storage": "^0.70.1-beta.6+bfbf7b12",
34
+ "@deephaven/utils": "^0.70.1-beta.6+bfbf7b12",
35
35
  "@fortawesome/react-fontawesome": "^0.2.0",
36
36
  "classnames": "^2.3.1",
37
37
  "linkifyjs": "^4.1.0",
@@ -51,8 +51,8 @@
51
51
  "react-dom": ">=16.8.0"
52
52
  },
53
53
  "devDependencies": {
54
- "@deephaven/jsapi-shim": "^0.70.1-alpha-picker-table.35+79b80350",
55
- "@deephaven/mocks": "^0.70.1-alpha-picker-table.35+79b80350"
54
+ "@deephaven/jsapi-shim": "^0.70.1-beta.6+bfbf7b12",
55
+ "@deephaven/mocks": "^0.70.1-beta.6+bfbf7b12"
56
56
  },
57
57
  "files": [
58
58
  "dist"
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "79b8035064f6733a37186a6b11d91bb9bfaa7e3c"
66
+ "gitHead": "bfbf7b128f0be0a82c7dd33e9023ff7df3f480fc"
67
67
  }