@deephaven/dashboard-core-plugins 0.33.0 → 0.33.1-auth-plugins.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConsolePlugin.d.ts.map +1 -1
- package/dist/ConsolePlugin.js +38 -40
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/events/NotebookEvent.d.ts +1 -0
- package/dist/events/NotebookEvent.d.ts.map +1 -1
- package/dist/events/NotebookEvent.js +1 -0
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/linker/Linker.d.ts +1 -1
- package/dist/linker/Linker.d.ts.map +1 -1
- package/dist/linker/Linker.js +39 -11
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerLink.d.ts +2 -0
- package/dist/linker/LinkerLink.d.ts.map +1 -1
- package/dist/linker/LinkerLink.js +6 -3
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/linker/LinkerOverlayContent.d.ts +2 -1
- package/dist/linker/LinkerOverlayContent.d.ts.map +1 -1
- package/dist/linker/LinkerOverlayContent.js +7 -3
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/linker/LinkerUtils.d.ts +1 -1
- package/dist/linker/LinkerUtils.d.ts.map +1 -1
- package/dist/linker/LinkerUtils.js +1 -0
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +6 -10
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +8 -1
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.css +13 -0
- package/dist/panels/ConsolePanel.css.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +1 -1
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +9 -3
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +11 -4
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +33 -18
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +2 -2
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +2 -2
- package/dist/panels/Panel.js.map +1 -1
- package/dist/redux/actions.d.ts +2 -10
- package/dist/redux/actions.d.ts.map +1 -1
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/selectors.d.ts +1 -1
- package/dist/redux/selectors.d.ts.map +1 -1
- package/dist/redux/selectors.js.map +1 -1
- package/package.json +24 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsolePlugin.d.ts","sourceRoot":"","sources":["../src/ConsolePlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAGL,6BAA6B,EAI7B,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AA8B9B,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,GAAG;IAC/D,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAQF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,GAAG,CAAC,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ConsolePlugin.d.ts","sourceRoot":"","sources":["../src/ConsolePlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAGL,6BAA6B,EAI7B,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AA8B9B,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,GAAG;IAC/D,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAQF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,GAAG,CAAC,OAAO,GAAG,IAAI,CAihBpB;AAED,eAAe,aAAa,CAAC"}
|
package/dist/ConsolePlugin.js
CHANGED
|
@@ -5,6 +5,7 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
6
|
import { assertIsDashboardPluginProps, DashboardUtils, LayoutUtils, useListener } from '@deephaven/dashboard';
|
|
7
7
|
import { FileUtils } from '@deephaven/file-explorer';
|
|
8
|
+
import { isComponent } from '@deephaven/golden-layout';
|
|
8
9
|
import Log from '@deephaven/log';
|
|
9
10
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
10
11
|
import { useDispatch } from 'react-redux';
|
|
@@ -101,7 +102,7 @@ export function ConsolePlugin(props) {
|
|
|
101
102
|
if (createIfNecessary) {
|
|
102
103
|
return shortid.generate();
|
|
103
104
|
}
|
|
104
|
-
return
|
|
105
|
+
return undefined;
|
|
105
106
|
}, [openFileMap, previewFileMap]);
|
|
106
107
|
var renamePanel = useCallback((panelId, newTitle) => {
|
|
107
108
|
LayoutUtils.renameComponent(layout.root, {
|
|
@@ -180,11 +181,6 @@ export function ConsolePlugin(props) {
|
|
|
180
181
|
}
|
|
181
182
|
}, [openFileMap, previewFileMap, renameFilePanel, addOpenFileMapEntry, addPreviewFileMapEntry, deletePreviewFileMapEntry]);
|
|
182
183
|
var unregisterFilePanel = useCallback((fileMetadata, isPreview) => {
|
|
183
|
-
// Note: unregister event is triggered AFTER new register when switching from preview to edit mode
|
|
184
|
-
// due to the LayoutUtils implementation (new tab added before deleting the old one)
|
|
185
|
-
// This doesn't cause any issues because previews and editable files are stored in different maps,
|
|
186
|
-
// but this situation could be completely avoided by sending an event to the tab
|
|
187
|
-
// to make it switch from preview to edit mode without re-mounting and re-registering
|
|
188
184
|
log.debug('unregisterFileTab', fileMetadata, isPreview);
|
|
189
185
|
if (fileMetadata == null || fileMetadata.id == null) {
|
|
190
186
|
log.debug('Ignore empty file id', fileMetadata);
|
|
@@ -314,51 +310,53 @@ export function ConsolePlugin(props) {
|
|
|
314
310
|
log.debug('selectNotebook', fileMetadata, shouldFocus);
|
|
315
311
|
var isFileOpen = fileIsOpen(fileMetadata);
|
|
316
312
|
var isFileOpenAsPreview = fileIsOpenAsPreview(fileMetadata);
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
var _panelId = getPanelIdForFileMetadata(fileMetadata);
|
|
323
|
-
focusPanelById(_panelId);
|
|
324
|
-
}
|
|
325
|
-
return;
|
|
313
|
+
var [previewId] = [...previewFileMap.values()];
|
|
314
|
+
var isPreview = !shouldFocus;
|
|
315
|
+
var panelId = isPreview && previewId ? previewId : getPanelIdForFileMetadata(fileMetadata);
|
|
316
|
+
if (panelId == null || panelId === '') {
|
|
317
|
+
throw new Error('Unable to retrieve or create panelId for metadata', fileMetadata);
|
|
326
318
|
}
|
|
327
319
|
|
|
328
|
-
// If the file is already open
|
|
329
|
-
|
|
330
|
-
if (isFileOpenAsPreview && !shouldFocus) {
|
|
320
|
+
// If the file is already open, show it
|
|
321
|
+
if (isFileOpen || isFileOpenAsPreview) {
|
|
331
322
|
showFilePanel(fileMetadata);
|
|
332
|
-
|
|
323
|
+
} else {
|
|
324
|
+
var stack = LayoutUtils.getStackForComponentTypes(layout.root, [NotebookPanel.COMPONENT]);
|
|
325
|
+
var config = makeConfig({
|
|
326
|
+
id: panelId,
|
|
327
|
+
settings,
|
|
328
|
+
fileMetadata,
|
|
329
|
+
session,
|
|
330
|
+
sessionLanguage,
|
|
331
|
+
isPreview
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
// This will replace the existing preview by panelId if needed
|
|
335
|
+
LayoutUtils.openComponentInStack(stack, config);
|
|
333
336
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
stack = LayoutUtils.getStackForConfig(layout.root, {
|
|
337
|
+
|
|
338
|
+
// If the file is open as a preview and focused, promote to non-preview
|
|
339
|
+
if (isFileOpenAsPreview && shouldFocus) {
|
|
340
|
+
var fileId = fileMetadata.id;
|
|
341
|
+
var _stack = LayoutUtils.getStackForConfig(layout.root, {
|
|
340
342
|
component: NotebookPanel.COMPONENT,
|
|
341
343
|
id: panelId
|
|
342
344
|
});
|
|
345
|
+
var item = LayoutUtils.getContentItemInStack(_stack, {
|
|
346
|
+
component: NotebookPanel.COMPONENT,
|
|
347
|
+
id: panelId
|
|
348
|
+
});
|
|
349
|
+
if (item && isComponent(item)) {
|
|
350
|
+
item.container.emit(NotebookEvent.PROMOTE_FROM_PREVIEW);
|
|
351
|
+
deletePreviewFileMapEntry(fileId);
|
|
352
|
+
addOpenFileMapEntry(fileId, panelId);
|
|
353
|
+
}
|
|
343
354
|
}
|
|
344
|
-
if (stack == null) {
|
|
345
|
-
panelId = getPanelIdForFileMetadata(fileMetadata);
|
|
346
|
-
stack = LayoutUtils.getStackForComponentTypes(layout.root, [NotebookPanel.COMPONENT]);
|
|
347
|
-
}
|
|
348
|
-
var config = makeConfig({
|
|
349
|
-
id: panelId,
|
|
350
|
-
settings,
|
|
351
|
-
fileMetadata,
|
|
352
|
-
session,
|
|
353
|
-
sessionLanguage,
|
|
354
|
-
isPreview: !shouldFocus
|
|
355
|
-
});
|
|
356
|
-
LayoutUtils.openComponentInStack(stack, config);
|
|
357
355
|
if (shouldFocus) {
|
|
358
|
-
// Focus the tab
|
|
356
|
+
// Focus the tab if we're supposed to
|
|
359
357
|
focusPanelById(panelId);
|
|
360
358
|
}
|
|
361
|
-
}, [showFilePanel, fileIsOpen, fileIsOpenAsPreview, focusPanelById, getPanelIdForFileMetadata, layout.root, makeConfig, previewFileMap]);
|
|
359
|
+
}, [showFilePanel, fileIsOpen, fileIsOpenAsPreview, focusPanelById, getPanelIdForFileMetadata, layout.root, makeConfig, previewFileMap, deletePreviewFileMapEntry, addOpenFileMapEntry]);
|
|
362
360
|
|
|
363
361
|
/** Attempts to send the text to a notebook matching the passed in settings */
|
|
364
362
|
var sendToNotebook = useCallback(function (session, sessionLanguage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsolePlugin.js","names":["assertIsDashboardPluginProps","DashboardUtils","LayoutUtils","useListener","FileUtils","Log","useCallback","useEffect","useRef","useState","useDispatch","shortid","ConsoleEvent","NotebookEvent","ConsolePanel","CommandHistoryPanel","FileExplorerPanel","LogPanel","NotebookPanel","setDashboardConsoleSettings","log","module","isNotebookPanel","panel","notebook","undefined","assertIsConsolePluginProps","props","ConsolePlugin","id","hydrateConsole","layout","panelManager","registerComponent","notebooksUrl","notebookIndex","openFileMap","setOpenFileMap","Map","previewFileMap","setPreviewFileMap","dispatch","getConsolePanel","getLastUsedPanelOfType","addOpenFileMapEntry","key","value","map","set","deleteOpenFileMapEntry","delete","addPreviewFileMapEntry","deletePreviewFileMapEntry","handleSendCommand","command","focus","execute","trimmedCommand","trim","info","consolePanel","WrappedComponent","error","debug","addCommand","handleSettingsChanged","consoleSettings","getNotebookFileName","language","extension","title","current","getPanelIdForFileMetadata","fileMetadata","createIfNecessary","fileId","has","get","generate","renamePanel","panelId","newTitle","renameComponent","root","renameFilePanel","oldName","newName","debug2","getBaseName","showFilePanel","activateTab","registerFilePanel","isPreview","existingPanelId","itemName","unregisterFilePanel","closeFilePanel","options","closeComponent","getNotebookTitle","fileIsOpen","fileIsOpenAsPreview","focusPanelById","getOpenedPanelById","makeConfig","settings","session","sessionLanguage","panelState","type","component","COMPONENT","isFocusOnShow","localDashboardId","metadata","createNotebook","stack","getStackForComponentTypes","config","openComponentInStack","selectNotebook","shouldFocus","isFileOpen","isFileOpenAsPreview","previewTabId","Array","from","values","getStackForConfig","sendToNotebook","notebookPanel","append","hydrateNotebook","panelProps","panelDashboardId","hydrate","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","SEND_COMMAND","SETTINGS_CHANGED","CLOSE_FILE","CREATE_NOTEBOOK","SELECT_NOTEBOOK","RENAME","RENAME_FILE","SEND_TO_NOTEBOOK","REGISTER_FILE","UNREGISTER_FILE"],"sources":["../src/ConsolePlugin.tsx"],"sourcesContent":["import { ScriptEditor } from '@deephaven/console';\nimport {\n assertIsDashboardPluginProps,\n DashboardPanelProps,\n DashboardPluginComponentProps,\n DashboardUtils,\n LayoutUtils,\n PanelComponent,\n PanelHydrateFunction,\n PanelProps,\n useListener,\n} from '@deephaven/dashboard';\nimport { FileUtils } from '@deephaven/file-explorer';\nimport { CloseOptions } from '@deephaven/golden-layout';\nimport Log from '@deephaven/log';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport shortid from 'shortid';\nimport { ConsoleEvent, NotebookEvent } from './events';\nimport {\n ConsolePanel,\n CommandHistoryPanel,\n FileExplorerPanel,\n LogPanel,\n NotebookPanel,\n} from './panels';\nimport { setDashboardConsoleSettings } from './redux';\n\nconst log = Log.module('ConsolePlugin');\n\ntype NotebookPanelComponent = PanelComponent & {\n notebook: ScriptEditor;\n focus: () => void;\n};\n\nfunction isNotebookPanel(\n panel: PanelComponent\n): panel is NotebookPanelComponent {\n return (panel as NotebookPanelComponent).notebook !== undefined;\n}\n\nexport type ConsolePluginProps = DashboardPluginComponentProps & {\n hydrateConsole?: PanelHydrateFunction;\n notebooksUrl: string;\n};\n\nfunction assertIsConsolePluginProps(\n props: Partial<ConsolePluginProps>\n): asserts props is ConsolePluginProps {\n assertIsDashboardPluginProps(props);\n}\n\nexport interface FileMetadata {\n id: string | null;\n itemName: string;\n}\n\nexport function ConsolePlugin(\n props: Partial<ConsolePluginProps>\n): JSX.Element | null {\n assertIsConsolePluginProps(props);\n const {\n id,\n hydrateConsole,\n layout,\n panelManager,\n registerComponent,\n notebooksUrl,\n } = props;\n const notebookIndex = useRef(0);\n // Map from file ID to panel ID\n const [openFileMap, setOpenFileMap] = useState(new Map<string, string>());\n const [previewFileMap, setPreviewFileMap] = useState(\n new Map<string, string>()\n );\n\n const dispatch = useDispatch();\n\n const getConsolePanel = useCallback(\n () => panelManager.getLastUsedPanelOfType(ConsolePanel),\n [panelManager]\n );\n\n const addOpenFileMapEntry = useCallback(\n (key: string, value: string) => {\n setOpenFileMap(map => new Map(map.set(key, value)));\n },\n [setOpenFileMap]\n );\n\n const deleteOpenFileMapEntry = useCallback(\n (key: string) => {\n setOpenFileMap(map => {\n map.delete(key);\n return new Map(map);\n });\n },\n [setOpenFileMap]\n );\n\n const addPreviewFileMapEntry = useCallback(\n (key: string, value: string) => {\n setPreviewFileMap(map => new Map(map.set(key, value)));\n },\n [setPreviewFileMap]\n );\n\n const deletePreviewFileMapEntry = useCallback(\n (key: string) => {\n setPreviewFileMap(map => {\n map.delete(key);\n return new Map(map);\n });\n },\n [setPreviewFileMap]\n );\n\n const handleSendCommand = useCallback(\n (command: string, focus = true, execute = true) => {\n const trimmedCommand = command && command.trim();\n if (!trimmedCommand) {\n log.info('Ignoring empty code');\n } else {\n const consolePanel = getConsolePanel();\n if (\n !consolePanel ||\n !(consolePanel instanceof ConsolePanel.WrappedComponent)\n ) {\n log.error('Console panel not found');\n return;\n }\n log.debug('Send command: ', command, focus, execute);\n consolePanel.addCommand(command, focus, execute);\n }\n },\n [getConsolePanel]\n );\n\n const handleSettingsChanged = useCallback(\n consoleSettings => {\n dispatch(setDashboardConsoleSettings(id, consoleSettings));\n },\n [dispatch, id]\n );\n\n const getNotebookFileName = useCallback(({ language }) => {\n const extension = language === 'python' ? 'py' : language;\n let title = null;\n if (extension == null) {\n log.debug('No extension for language', language);\n title = `Untitled-${notebookIndex.current}`;\n } else {\n title = `Untitled-${notebookIndex.current}.${extension}`;\n }\n notebookIndex.current += 1;\n return title;\n }, []);\n\n const getPanelIdForFileMetadata = useCallback(\n (fileMetadata: FileMetadata, createIfNecessary = true) => {\n const { id: fileId } = fileMetadata;\n if (fileId != null && openFileMap.has(fileId)) {\n return openFileMap.get(fileId);\n }\n if (fileId != null && previewFileMap.has(fileId)) {\n return previewFileMap.get(fileId);\n }\n if (createIfNecessary as boolean) {\n return shortid.generate();\n }\n return null;\n },\n [openFileMap, previewFileMap]\n );\n\n const renamePanel = useCallback(\n (panelId, newTitle) => {\n LayoutUtils.renameComponent(layout.root, { id: panelId }, newTitle);\n },\n [layout.root]\n );\n\n const renameFilePanel = useCallback(\n (oldName, newName) => {\n log.debug('Rename file panel', oldName, newName);\n let panelId;\n if (openFileMap.has(oldName)) {\n panelId = openFileMap.get(oldName);\n deleteOpenFileMapEntry(oldName);\n if (panelId != null) {\n addOpenFileMapEntry(newName, panelId);\n }\n }\n if (previewFileMap.has(oldName)) {\n panelId = previewFileMap.get(oldName);\n deletePreviewFileMapEntry(oldName);\n if (panelId != null) {\n addPreviewFileMapEntry(newName, panelId);\n }\n }\n\n if (panelId === undefined) {\n log.debug2(`File ${oldName} isn't open, no need to rename the tab`);\n return;\n }\n\n renamePanel(panelId, FileUtils.getBaseName(newName));\n },\n [\n openFileMap,\n previewFileMap,\n renamePanel,\n addOpenFileMapEntry,\n addPreviewFileMapEntry,\n deleteOpenFileMapEntry,\n deletePreviewFileMapEntry,\n ]\n );\n\n /**\n * Show the panel for the given file metadata.\n * If the panel is not already open, then it just logs an error and does nothing.\n */\n const showFilePanel = useCallback(\n fileMetadata => {\n const panelId = getPanelIdForFileMetadata(fileMetadata, false);\n if (panelId == null) {\n log.error('Could not find panel id for file metadata', fileMetadata);\n return;\n }\n LayoutUtils.activateTab(layout.root, { id: panelId });\n },\n [getPanelIdForFileMetadata, layout.root]\n );\n\n const registerFilePanel = useCallback(\n (panelId, fileMetadata: FileMetadata, isPreview: boolean) => {\n log.debug('registerFilePanel', panelId, fileMetadata, isPreview);\n if (fileMetadata == null || fileMetadata.id == null) {\n log.debug('Ignore empty file id', fileMetadata);\n return;\n }\n const { id: fileId } = fileMetadata;\n if (isPreview) {\n addPreviewFileMapEntry(fileId, panelId);\n return;\n }\n if (openFileMap.has(fileId)) {\n const existingPanelId = openFileMap.get(fileId);\n if (panelId === existingPanelId) {\n log.debug(`Update tab title for file ${fileId}`);\n const { itemName } = fileMetadata;\n renameFilePanel(fileId, itemName);\n } else {\n log.error(\n `File ${fileId} already associated with a different tab ${existingPanelId}`\n );\n }\n return;\n }\n\n addOpenFileMapEntry(fileId, panelId);\n\n // De-register preview tab\n if (previewFileMap.has(fileId)) {\n deletePreviewFileMapEntry(fileId);\n }\n },\n [\n openFileMap,\n previewFileMap,\n renameFilePanel,\n addOpenFileMapEntry,\n addPreviewFileMapEntry,\n deletePreviewFileMapEntry,\n ]\n );\n\n const unregisterFilePanel = useCallback(\n (fileMetadata: FileMetadata, isPreview: boolean) => {\n // Note: unregister event is triggered AFTER new register when switching from preview to edit mode\n // due to the LayoutUtils implementation (new tab added before deleting the old one)\n // This doesn't cause any issues because previews and editable files are stored in different maps,\n // but this situation could be completely avoided by sending an event to the tab\n // to make it switch from preview to edit mode without re-mounting and re-registering\n log.debug('unregisterFileTab', fileMetadata, isPreview);\n if (fileMetadata == null || fileMetadata.id == null) {\n log.debug('Ignore empty file id', fileMetadata);\n return;\n }\n const { id: fileId } = fileMetadata;\n if (isPreview) {\n deletePreviewFileMapEntry(fileId);\n return;\n }\n deleteOpenFileMapEntry(fileId);\n },\n [deleteOpenFileMapEntry, deletePreviewFileMapEntry]\n );\n\n const closeFilePanel = useCallback(\n (fileMetadata, options?: CloseOptions) => {\n log.debug('closeFilePanel', fileMetadata);\n const { id: fileId } = fileMetadata;\n let panelId = null;\n let isPreview = false;\n if (openFileMap.has(fileId)) {\n panelId = openFileMap.get(fileId);\n } else if (previewFileMap.has(fileId)) {\n panelId = previewFileMap.get(fileId);\n isPreview = true;\n } else {\n log.debug(`File ${fileId} isn't open, ignore close event`);\n return;\n }\n unregisterFilePanel(fileMetadata, isPreview);\n LayoutUtils.closeComponent(layout.root, { id: panelId }, options);\n },\n [layout.root, openFileMap, previewFileMap, unregisterFilePanel]\n );\n\n const getNotebookTitle = useCallback(fileMetadata => {\n const { itemName } = fileMetadata;\n return FileUtils.getBaseName(itemName);\n }, []);\n\n const fileIsOpen = useCallback(\n (fileMetadata: FileMetadata) => {\n const { id: fileId } = fileMetadata;\n log.debug('fileIsOpen', fileMetadata, fileId, openFileMap);\n return fileId != null && openFileMap.has(fileId);\n },\n [openFileMap]\n );\n\n const fileIsOpenAsPreview = useCallback(\n fileMetadata => {\n const { id: fileId } = fileMetadata;\n log.debug('fileIsOpenAsPreview', fileMetadata, fileId, previewFileMap);\n return fileId != null && previewFileMap.has(fileId);\n },\n [previewFileMap]\n );\n\n /*\n * Attempts to focus the panel with the provided panelId\n */\n const focusPanelById = useCallback(\n panelId => {\n if (panelId == null) {\n return;\n }\n\n const panel = panelManager.getOpenedPanelById(panelId);\n if (panel && isNotebookPanel(panel)) {\n panel.focus();\n }\n },\n [panelManager]\n );\n\n const makeConfig = useCallback(\n ({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n isPreview = false,\n }) => {\n const panelState = {\n settings,\n fileMetadata,\n };\n const title = getNotebookTitle(fileMetadata);\n return {\n type: 'react-component' as const,\n component: NotebookPanel.COMPONENT,\n isFocusOnShow: false,\n props: {\n localDashboardId: id,\n metadata: { id: panelId },\n session,\n sessionLanguage,\n panelState,\n isPreview,\n notebooksUrl,\n },\n title,\n id: panelId,\n };\n },\n [getNotebookTitle, id, notebooksUrl]\n );\n\n const createNotebook = useCallback(\n (\n session,\n sessionLanguage,\n settings,\n fileMetadata = { id: null, itemName: getNotebookFileName(settings) }\n ) => {\n const panelId = getPanelIdForFileMetadata(fileMetadata);\n if (fileIsOpen(fileMetadata) && panelId != null) {\n log.debug('File is already open, focus panel');\n showFilePanel(fileMetadata);\n focusPanelById(panelId);\n return;\n }\n const stack = LayoutUtils.getStackForComponentTypes(layout.root, [\n NotebookPanel.COMPONENT,\n ]);\n const config = makeConfig({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n });\n log.debug('createNotebook', config, openFileMap);\n LayoutUtils.openComponentInStack(stack, config);\n },\n [\n fileIsOpen,\n focusPanelById,\n getNotebookFileName,\n getPanelIdForFileMetadata,\n layout.root,\n makeConfig,\n openFileMap,\n showFilePanel,\n ]\n );\n\n const selectNotebook = useCallback(\n (\n session,\n sessionLanguage,\n settings,\n fileMetadata,\n // linter recognizes shouldFocus as any if I don't specify boolean here\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n shouldFocus: boolean = false\n ) => {\n log.debug('selectNotebook', fileMetadata, shouldFocus);\n const isFileOpen = fileIsOpen(fileMetadata);\n const isFileOpenAsPreview = fileIsOpenAsPreview(fileMetadata);\n\n // If the file is already open, just show and focus it if necessary\n if (isFileOpen) {\n showFilePanel(fileMetadata);\n if (shouldFocus) {\n const panelId = getPanelIdForFileMetadata(fileMetadata);\n focusPanelById(panelId);\n }\n return;\n }\n\n // If the file is already open as a preview and we're not focusing it, just show it\n // If we're focusing it, that means we need to replace the panel anyway with a non-preview panel, so just fall into the logic below\n if (isFileOpenAsPreview && !shouldFocus) {\n showFilePanel(fileMetadata);\n return;\n }\n\n const [previewTabId] = Array.from(previewFileMap.values());\n let panelId = null;\n let stack = null;\n if (previewTabId != null) {\n panelId = previewTabId;\n stack = LayoutUtils.getStackForConfig(layout.root, {\n component: NotebookPanel.COMPONENT,\n id: panelId,\n });\n }\n if (stack == null) {\n panelId = getPanelIdForFileMetadata(fileMetadata);\n stack = LayoutUtils.getStackForComponentTypes(layout.root, [\n NotebookPanel.COMPONENT,\n ]);\n }\n const config = makeConfig({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n isPreview: !shouldFocus,\n });\n LayoutUtils.openComponentInStack(stack, config);\n if (shouldFocus) {\n // Focus the tab we just opened if we're supposed to\n focusPanelById(panelId);\n }\n },\n [\n showFilePanel,\n fileIsOpen,\n fileIsOpenAsPreview,\n focusPanelById,\n getPanelIdForFileMetadata,\n layout.root,\n makeConfig,\n previewFileMap,\n ]\n );\n\n /** Attempts to send the text to a notebook matching the passed in settings */\n const sendToNotebook = useCallback(\n (session, sessionLanguage, settings = {}, createIfNecessary = true) => {\n const notebookPanel = panelManager.getLastUsedPanelOfType(NotebookPanel);\n if (notebookPanel && isNotebookPanel(notebookPanel)) {\n if (\n settings != null &&\n settings.value != null &&\n notebookPanel.notebook != null\n ) {\n notebookPanel.notebook.append(settings.value);\n }\n } else if (createIfNecessary as boolean) {\n createNotebook(session, sessionLanguage, settings);\n }\n },\n [createNotebook, panelManager]\n );\n\n const hydrateNotebook = useCallback(\n (panelProps: PanelProps, panelDashboardId: string): DashboardPanelProps =>\n DashboardUtils.hydrate(\n {\n ...panelProps,\n notebooksUrl,\n },\n panelDashboardId\n ),\n [notebooksUrl]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(ConsolePanel.COMPONENT, ConsolePanel, hydrateConsole),\n registerComponent(CommandHistoryPanel.COMPONENT, CommandHistoryPanel),\n registerComponent(FileExplorerPanel.COMPONENT, FileExplorerPanel),\n registerComponent(LogPanel.COMPONENT, LogPanel),\n registerComponent(\n NotebookPanel.COMPONENT,\n NotebookPanel,\n hydrateNotebook\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [registerComponent, hydrateConsole, hydrateNotebook]\n );\n\n useListener(layout.eventHub, ConsoleEvent.SEND_COMMAND, handleSendCommand);\n useListener(\n layout.eventHub,\n ConsoleEvent.SETTINGS_CHANGED,\n handleSettingsChanged\n );\n useListener(layout.eventHub, NotebookEvent.CLOSE_FILE, closeFilePanel);\n useListener(layout.eventHub, NotebookEvent.CREATE_NOTEBOOK, createNotebook);\n useListener(layout.eventHub, NotebookEvent.SELECT_NOTEBOOK, selectNotebook);\n useListener(layout.eventHub, NotebookEvent.RENAME, renamePanel);\n useListener(layout.eventHub, NotebookEvent.RENAME_FILE, renameFilePanel);\n useListener(layout.eventHub, NotebookEvent.SEND_TO_NOTEBOOK, sendToNotebook);\n useListener(layout.eventHub, NotebookEvent.REGISTER_FILE, registerFilePanel);\n useListener(\n layout.eventHub,\n NotebookEvent.UNREGISTER_FILE,\n unregisterFilePanel\n );\n\n return null;\n}\n\nexport default ConsolePlugin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConsolePlugin.js","names":["assertIsDashboardPluginProps","DashboardUtils","LayoutUtils","useListener","FileUtils","isComponent","Log","useCallback","useEffect","useRef","useState","useDispatch","shortid","ConsoleEvent","NotebookEvent","ConsolePanel","CommandHistoryPanel","FileExplorerPanel","LogPanel","NotebookPanel","setDashboardConsoleSettings","log","module","isNotebookPanel","panel","notebook","undefined","assertIsConsolePluginProps","props","ConsolePlugin","id","hydrateConsole","layout","panelManager","registerComponent","notebooksUrl","notebookIndex","openFileMap","setOpenFileMap","Map","previewFileMap","setPreviewFileMap","dispatch","getConsolePanel","getLastUsedPanelOfType","addOpenFileMapEntry","key","value","map","set","deleteOpenFileMapEntry","delete","addPreviewFileMapEntry","deletePreviewFileMapEntry","handleSendCommand","command","focus","execute","trimmedCommand","trim","info","consolePanel","WrappedComponent","error","debug","addCommand","handleSettingsChanged","consoleSettings","getNotebookFileName","language","extension","title","current","getPanelIdForFileMetadata","fileMetadata","createIfNecessary","fileId","has","get","generate","renamePanel","panelId","newTitle","renameComponent","root","renameFilePanel","oldName","newName","debug2","getBaseName","showFilePanel","activateTab","registerFilePanel","isPreview","existingPanelId","itemName","unregisterFilePanel","closeFilePanel","options","closeComponent","getNotebookTitle","fileIsOpen","fileIsOpenAsPreview","focusPanelById","getOpenedPanelById","makeConfig","settings","session","sessionLanguage","panelState","type","component","COMPONENT","isFocusOnShow","localDashboardId","metadata","createNotebook","stack","getStackForComponentTypes","config","openComponentInStack","selectNotebook","shouldFocus","isFileOpen","isFileOpenAsPreview","previewId","values","Error","getStackForConfig","item","getContentItemInStack","container","emit","PROMOTE_FROM_PREVIEW","sendToNotebook","notebookPanel","append","hydrateNotebook","panelProps","panelDashboardId","hydrate","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","SEND_COMMAND","SETTINGS_CHANGED","CLOSE_FILE","CREATE_NOTEBOOK","SELECT_NOTEBOOK","RENAME","RENAME_FILE","SEND_TO_NOTEBOOK","REGISTER_FILE","UNREGISTER_FILE"],"sources":["../src/ConsolePlugin.tsx"],"sourcesContent":["import { ScriptEditor } from '@deephaven/console';\nimport {\n assertIsDashboardPluginProps,\n DashboardPanelProps,\n DashboardPluginComponentProps,\n DashboardUtils,\n LayoutUtils,\n PanelComponent,\n PanelHydrateFunction,\n PanelProps,\n useListener,\n} from '@deephaven/dashboard';\nimport { FileUtils } from '@deephaven/file-explorer';\nimport { CloseOptions, isComponent } from '@deephaven/golden-layout';\nimport Log from '@deephaven/log';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport shortid from 'shortid';\nimport { ConsoleEvent, NotebookEvent } from './events';\nimport {\n ConsolePanel,\n CommandHistoryPanel,\n FileExplorerPanel,\n LogPanel,\n NotebookPanel,\n} from './panels';\nimport { setDashboardConsoleSettings } from './redux';\n\nconst log = Log.module('ConsolePlugin');\n\ntype NotebookPanelComponent = PanelComponent & {\n notebook: ScriptEditor;\n focus: () => void;\n};\n\nfunction isNotebookPanel(\n panel: PanelComponent\n): panel is NotebookPanelComponent {\n return (panel as NotebookPanelComponent).notebook !== undefined;\n}\n\nexport type ConsolePluginProps = DashboardPluginComponentProps & {\n hydrateConsole?: PanelHydrateFunction;\n notebooksUrl: string;\n};\n\nfunction assertIsConsolePluginProps(\n props: Partial<ConsolePluginProps>\n): asserts props is ConsolePluginProps {\n assertIsDashboardPluginProps(props);\n}\n\nexport interface FileMetadata {\n id: string | null;\n itemName: string;\n}\n\nexport function ConsolePlugin(\n props: Partial<ConsolePluginProps>\n): JSX.Element | null {\n assertIsConsolePluginProps(props);\n const {\n id,\n hydrateConsole,\n layout,\n panelManager,\n registerComponent,\n notebooksUrl,\n } = props;\n const notebookIndex = useRef(0);\n // Map from file ID to panel ID\n const [openFileMap, setOpenFileMap] = useState(new Map<string, string>());\n const [previewFileMap, setPreviewFileMap] = useState(\n new Map<string, string>()\n );\n\n const dispatch = useDispatch();\n\n const getConsolePanel = useCallback(\n () => panelManager.getLastUsedPanelOfType(ConsolePanel),\n [panelManager]\n );\n\n const addOpenFileMapEntry = useCallback(\n (key: string, value: string) => {\n setOpenFileMap(map => new Map(map.set(key, value)));\n },\n [setOpenFileMap]\n );\n\n const deleteOpenFileMapEntry = useCallback(\n (key: string) => {\n setOpenFileMap(map => {\n map.delete(key);\n return new Map(map);\n });\n },\n [setOpenFileMap]\n );\n\n const addPreviewFileMapEntry = useCallback(\n (key: string, value: string) => {\n setPreviewFileMap(map => new Map(map.set(key, value)));\n },\n [setPreviewFileMap]\n );\n\n const deletePreviewFileMapEntry = useCallback(\n (key: string) => {\n setPreviewFileMap(map => {\n map.delete(key);\n return new Map(map);\n });\n },\n [setPreviewFileMap]\n );\n\n const handleSendCommand = useCallback(\n (command: string, focus = true, execute = true) => {\n const trimmedCommand = command && command.trim();\n if (!trimmedCommand) {\n log.info('Ignoring empty code');\n } else {\n const consolePanel = getConsolePanel();\n if (\n !consolePanel ||\n !(consolePanel instanceof ConsolePanel.WrappedComponent)\n ) {\n log.error('Console panel not found');\n return;\n }\n log.debug('Send command: ', command, focus, execute);\n consolePanel.addCommand(command, focus, execute);\n }\n },\n [getConsolePanel]\n );\n\n const handleSettingsChanged = useCallback(\n consoleSettings => {\n dispatch(setDashboardConsoleSettings(id, consoleSettings));\n },\n [dispatch, id]\n );\n\n const getNotebookFileName = useCallback(({ language }) => {\n const extension = language === 'python' ? 'py' : language;\n let title = null;\n if (extension == null) {\n log.debug('No extension for language', language);\n title = `Untitled-${notebookIndex.current}`;\n } else {\n title = `Untitled-${notebookIndex.current}.${extension}`;\n }\n notebookIndex.current += 1;\n return title;\n }, []);\n\n const getPanelIdForFileMetadata = useCallback(\n (fileMetadata: FileMetadata, createIfNecessary = true) => {\n const { id: fileId } = fileMetadata;\n if (fileId != null && openFileMap.has(fileId)) {\n return openFileMap.get(fileId);\n }\n if (fileId != null && previewFileMap.has(fileId)) {\n return previewFileMap.get(fileId);\n }\n if (createIfNecessary as boolean) {\n return shortid.generate();\n }\n return undefined;\n },\n [openFileMap, previewFileMap]\n );\n\n const renamePanel = useCallback(\n (panelId, newTitle) => {\n LayoutUtils.renameComponent(layout.root, { id: panelId }, newTitle);\n },\n [layout.root]\n );\n\n const renameFilePanel = useCallback(\n (oldName, newName) => {\n log.debug('Rename file panel', oldName, newName);\n let panelId;\n if (openFileMap.has(oldName)) {\n panelId = openFileMap.get(oldName);\n deleteOpenFileMapEntry(oldName);\n if (panelId != null) {\n addOpenFileMapEntry(newName, panelId);\n }\n }\n if (previewFileMap.has(oldName)) {\n panelId = previewFileMap.get(oldName);\n deletePreviewFileMapEntry(oldName);\n if (panelId != null) {\n addPreviewFileMapEntry(newName, panelId);\n }\n }\n\n if (panelId === undefined) {\n log.debug2(`File ${oldName} isn't open, no need to rename the tab`);\n return;\n }\n\n renamePanel(panelId, FileUtils.getBaseName(newName));\n },\n [\n openFileMap,\n previewFileMap,\n renamePanel,\n addOpenFileMapEntry,\n addPreviewFileMapEntry,\n deleteOpenFileMapEntry,\n deletePreviewFileMapEntry,\n ]\n );\n\n /**\n * Show the panel for the given file metadata.\n * If the panel is not already open, then it just logs an error and does nothing.\n */\n const showFilePanel = useCallback(\n fileMetadata => {\n const panelId = getPanelIdForFileMetadata(fileMetadata, false);\n if (panelId == null) {\n log.error('Could not find panel id for file metadata', fileMetadata);\n return;\n }\n LayoutUtils.activateTab(layout.root, { id: panelId });\n },\n [getPanelIdForFileMetadata, layout.root]\n );\n\n const registerFilePanel = useCallback(\n (panelId, fileMetadata: FileMetadata, isPreview: boolean) => {\n log.debug('registerFilePanel', panelId, fileMetadata, isPreview);\n if (fileMetadata == null || fileMetadata.id == null) {\n log.debug('Ignore empty file id', fileMetadata);\n return;\n }\n const { id: fileId } = fileMetadata;\n if (isPreview) {\n addPreviewFileMapEntry(fileId, panelId);\n return;\n }\n if (openFileMap.has(fileId)) {\n const existingPanelId = openFileMap.get(fileId);\n if (panelId === existingPanelId) {\n log.debug(`Update tab title for file ${fileId}`);\n const { itemName } = fileMetadata;\n renameFilePanel(fileId, itemName);\n } else {\n log.error(\n `File ${fileId} already associated with a different tab ${existingPanelId}`\n );\n }\n return;\n }\n\n addOpenFileMapEntry(fileId, panelId);\n\n // De-register preview tab\n if (previewFileMap.has(fileId)) {\n deletePreviewFileMapEntry(fileId);\n }\n },\n [\n openFileMap,\n previewFileMap,\n renameFilePanel,\n addOpenFileMapEntry,\n addPreviewFileMapEntry,\n deletePreviewFileMapEntry,\n ]\n );\n\n const unregisterFilePanel = useCallback(\n (fileMetadata: FileMetadata, isPreview: boolean) => {\n log.debug('unregisterFileTab', fileMetadata, isPreview);\n if (fileMetadata == null || fileMetadata.id == null) {\n log.debug('Ignore empty file id', fileMetadata);\n return;\n }\n const { id: fileId } = fileMetadata;\n if (isPreview) {\n deletePreviewFileMapEntry(fileId);\n return;\n }\n deleteOpenFileMapEntry(fileId);\n },\n [deleteOpenFileMapEntry, deletePreviewFileMapEntry]\n );\n\n const closeFilePanel = useCallback(\n (fileMetadata, options?: CloseOptions) => {\n log.debug('closeFilePanel', fileMetadata);\n const { id: fileId } = fileMetadata;\n let panelId = null;\n let isPreview = false;\n if (openFileMap.has(fileId)) {\n panelId = openFileMap.get(fileId);\n } else if (previewFileMap.has(fileId)) {\n panelId = previewFileMap.get(fileId);\n isPreview = true;\n } else {\n log.debug(`File ${fileId} isn't open, ignore close event`);\n return;\n }\n unregisterFilePanel(fileMetadata, isPreview);\n LayoutUtils.closeComponent(layout.root, { id: panelId }, options);\n },\n [layout.root, openFileMap, previewFileMap, unregisterFilePanel]\n );\n\n const getNotebookTitle = useCallback(fileMetadata => {\n const { itemName } = fileMetadata;\n return FileUtils.getBaseName(itemName);\n }, []);\n\n const fileIsOpen = useCallback(\n (fileMetadata: FileMetadata) => {\n const { id: fileId } = fileMetadata;\n log.debug('fileIsOpen', fileMetadata, fileId, openFileMap);\n return fileId != null && openFileMap.has(fileId);\n },\n [openFileMap]\n );\n\n const fileIsOpenAsPreview = useCallback(\n fileMetadata => {\n const { id: fileId } = fileMetadata;\n log.debug('fileIsOpenAsPreview', fileMetadata, fileId, previewFileMap);\n return fileId != null && previewFileMap.has(fileId);\n },\n [previewFileMap]\n );\n\n /*\n * Attempts to focus the panel with the provided panelId\n */\n const focusPanelById = useCallback(\n panelId => {\n if (panelId == null) {\n return;\n }\n\n const panel = panelManager.getOpenedPanelById(panelId);\n if (panel && isNotebookPanel(panel)) {\n panel.focus();\n }\n },\n [panelManager]\n );\n\n const makeConfig = useCallback(\n ({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n isPreview = false,\n }) => {\n const panelState = {\n settings,\n fileMetadata,\n };\n const title = getNotebookTitle(fileMetadata);\n return {\n type: 'react-component' as const,\n component: NotebookPanel.COMPONENT,\n isFocusOnShow: false,\n props: {\n localDashboardId: id,\n metadata: { id: panelId },\n session,\n sessionLanguage,\n panelState,\n isPreview,\n notebooksUrl,\n },\n title,\n id: panelId,\n };\n },\n [getNotebookTitle, id, notebooksUrl]\n );\n\n const createNotebook = useCallback(\n (\n session,\n sessionLanguage,\n settings,\n fileMetadata = { id: null, itemName: getNotebookFileName(settings) }\n ) => {\n const panelId = getPanelIdForFileMetadata(fileMetadata);\n if (fileIsOpen(fileMetadata) && panelId != null) {\n log.debug('File is already open, focus panel');\n showFilePanel(fileMetadata);\n focusPanelById(panelId);\n return;\n }\n const stack = LayoutUtils.getStackForComponentTypes(layout.root, [\n NotebookPanel.COMPONENT,\n ]);\n const config = makeConfig({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n });\n log.debug('createNotebook', config, openFileMap);\n LayoutUtils.openComponentInStack(stack, config);\n },\n [\n fileIsOpen,\n focusPanelById,\n getNotebookFileName,\n getPanelIdForFileMetadata,\n layout.root,\n makeConfig,\n openFileMap,\n showFilePanel,\n ]\n );\n\n const selectNotebook = useCallback(\n (\n session,\n sessionLanguage,\n settings,\n fileMetadata,\n // linter recognizes shouldFocus as any if I don't specify boolean here\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n shouldFocus: boolean = false\n ) => {\n log.debug('selectNotebook', fileMetadata, shouldFocus);\n const isFileOpen = fileIsOpen(fileMetadata);\n const isFileOpenAsPreview = fileIsOpenAsPreview(fileMetadata);\n\n const [previewId] = [...previewFileMap.values()];\n const isPreview = !shouldFocus;\n const panelId =\n isPreview && previewId\n ? previewId\n : getPanelIdForFileMetadata(fileMetadata);\n\n if (panelId == null || panelId === '') {\n throw new Error(\n 'Unable to retrieve or create panelId for metadata',\n fileMetadata\n );\n }\n\n // If the file is already open, show it\n if (isFileOpen || isFileOpenAsPreview) {\n showFilePanel(fileMetadata);\n } else {\n const stack = LayoutUtils.getStackForComponentTypes(layout.root, [\n NotebookPanel.COMPONENT,\n ]);\n\n const config = makeConfig({\n id: panelId,\n settings,\n fileMetadata,\n session,\n sessionLanguage,\n isPreview,\n });\n\n // This will replace the existing preview by panelId if needed\n LayoutUtils.openComponentInStack(stack, config);\n }\n\n // If the file is open as a preview and focused, promote to non-preview\n if (isFileOpenAsPreview && shouldFocus) {\n const fileId = fileMetadata.id;\n const stack = LayoutUtils.getStackForConfig(layout.root, {\n component: NotebookPanel.COMPONENT,\n id: panelId,\n });\n\n const item = LayoutUtils.getContentItemInStack(stack, {\n component: NotebookPanel.COMPONENT,\n id: panelId,\n });\n if (item && isComponent(item)) {\n item.container.emit(NotebookEvent.PROMOTE_FROM_PREVIEW);\n deletePreviewFileMapEntry(fileId);\n addOpenFileMapEntry(fileId, panelId);\n }\n }\n\n if (shouldFocus) {\n // Focus the tab if we're supposed to\n focusPanelById(panelId);\n }\n },\n [\n showFilePanel,\n fileIsOpen,\n fileIsOpenAsPreview,\n focusPanelById,\n getPanelIdForFileMetadata,\n layout.root,\n makeConfig,\n previewFileMap,\n deletePreviewFileMapEntry,\n addOpenFileMapEntry,\n ]\n );\n\n /** Attempts to send the text to a notebook matching the passed in settings */\n const sendToNotebook = useCallback(\n (session, sessionLanguage, settings = {}, createIfNecessary = true) => {\n const notebookPanel = panelManager.getLastUsedPanelOfType(NotebookPanel);\n if (notebookPanel && isNotebookPanel(notebookPanel)) {\n if (\n settings != null &&\n settings.value != null &&\n notebookPanel.notebook != null\n ) {\n notebookPanel.notebook.append(settings.value);\n }\n } else if (createIfNecessary as boolean) {\n createNotebook(session, sessionLanguage, settings);\n }\n },\n [createNotebook, panelManager]\n );\n\n const hydrateNotebook = useCallback(\n (panelProps: PanelProps, panelDashboardId: string): DashboardPanelProps =>\n DashboardUtils.hydrate(\n {\n ...panelProps,\n notebooksUrl,\n },\n panelDashboardId\n ),\n [notebooksUrl]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(ConsolePanel.COMPONENT, ConsolePanel, hydrateConsole),\n registerComponent(CommandHistoryPanel.COMPONENT, CommandHistoryPanel),\n registerComponent(FileExplorerPanel.COMPONENT, FileExplorerPanel),\n registerComponent(LogPanel.COMPONENT, LogPanel),\n registerComponent(\n NotebookPanel.COMPONENT,\n NotebookPanel,\n hydrateNotebook\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [registerComponent, hydrateConsole, hydrateNotebook]\n );\n\n useListener(layout.eventHub, ConsoleEvent.SEND_COMMAND, handleSendCommand);\n useListener(\n layout.eventHub,\n ConsoleEvent.SETTINGS_CHANGED,\n handleSettingsChanged\n );\n useListener(layout.eventHub, NotebookEvent.CLOSE_FILE, closeFilePanel);\n useListener(layout.eventHub, NotebookEvent.CREATE_NOTEBOOK, createNotebook);\n useListener(layout.eventHub, NotebookEvent.SELECT_NOTEBOOK, selectNotebook);\n useListener(layout.eventHub, NotebookEvent.RENAME, renamePanel);\n useListener(layout.eventHub, NotebookEvent.RENAME_FILE, renameFilePanel);\n useListener(layout.eventHub, NotebookEvent.SEND_TO_NOTEBOOK, sendToNotebook);\n useListener(layout.eventHub, NotebookEvent.REGISTER_FILE, registerFilePanel);\n useListener(\n layout.eventHub,\n NotebookEvent.UNREGISTER_FILE,\n unregisterFilePanel\n );\n\n return null;\n}\n\nexport default ConsolePlugin;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookEvent.d.ts","sourceRoot":"","sources":["../../src/events/NotebookEvent.ts"],"names":[],"mappings":"AAAA,cAAM,aAAa;IACjB,MAAM,CAAC,eAAe,SAAkC;IAExD,MAAM,CAAC,eAAe,SAAkC;IAExD,MAAM,CAAC,UAAU,SAA6B;IAE9C,MAAM,CAAC,MAAM,SAA0B;IAEvC,MAAM,CAAC,WAAW,SAA8B;IAEhD,MAAM,CAAC,aAAa,SAAgC;IAEpD,MAAM,CAAC,gBAAgB,SAAkC;IAEzD,MAAM,CAAC,eAAe,SAAkC;
|
|
1
|
+
{"version":3,"file":"NotebookEvent.d.ts","sourceRoot":"","sources":["../../src/events/NotebookEvent.ts"],"names":[],"mappings":"AAAA,cAAM,aAAa;IACjB,MAAM,CAAC,eAAe,SAAkC;IAExD,MAAM,CAAC,eAAe,SAAkC;IAExD,MAAM,CAAC,UAAU,SAA6B;IAE9C,MAAM,CAAC,MAAM,SAA0B;IAEvC,MAAM,CAAC,WAAW,SAA8B;IAEhD,MAAM,CAAC,aAAa,SAAgC;IAEpD,MAAM,CAAC,gBAAgB,SAAkC;IAEzD,MAAM,CAAC,eAAe,SAAkC;IAExD,MAAM,CAAC,oBAAoB,SAAsC;CAClE;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -10,5 +10,6 @@ _defineProperty(NotebookEvent, "RENAME_FILE", 'NotebookEvent.renameFile');
|
|
|
10
10
|
_defineProperty(NotebookEvent, "REGISTER_FILE", 'NotebookEvent.registerFile');
|
|
11
11
|
_defineProperty(NotebookEvent, "SEND_TO_NOTEBOOK", 'NotebookEvent.sendToNotebook');
|
|
12
12
|
_defineProperty(NotebookEvent, "UNREGISTER_FILE", 'NotebookEvent.unregisterFile');
|
|
13
|
+
_defineProperty(NotebookEvent, "PROMOTE_FROM_PREVIEW", 'NotebookEvent.promoteFromPreview');
|
|
13
14
|
export default NotebookEvent;
|
|
14
15
|
//# sourceMappingURL=NotebookEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookEvent.js","names":["NotebookEvent"],"sources":["../../src/events/NotebookEvent.ts"],"sourcesContent":["class NotebookEvent {\n static CREATE_NOTEBOOK = 'NotebookEvent.createNotebook';\n\n static SELECT_NOTEBOOK = 'NotebookEvent.selectNotebook';\n\n static CLOSE_FILE = 'NotebookEvent.closeFile';\n\n static RENAME = 'NotebookEvent.rename';\n\n static RENAME_FILE = 'NotebookEvent.renameFile';\n\n static REGISTER_FILE = 'NotebookEvent.registerFile';\n\n static SEND_TO_NOTEBOOK = 'NotebookEvent.sendToNotebook';\n\n static UNREGISTER_FILE = 'NotebookEvent.unregisterFile';\n}\n\nexport default NotebookEvent;\n"],"mappings":";;;AAAA,MAAMA,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"NotebookEvent.js","names":["NotebookEvent"],"sources":["../../src/events/NotebookEvent.ts"],"sourcesContent":["class NotebookEvent {\n static CREATE_NOTEBOOK = 'NotebookEvent.createNotebook';\n\n static SELECT_NOTEBOOK = 'NotebookEvent.selectNotebook';\n\n static CLOSE_FILE = 'NotebookEvent.closeFile';\n\n static RENAME = 'NotebookEvent.rename';\n\n static RENAME_FILE = 'NotebookEvent.renameFile';\n\n static REGISTER_FILE = 'NotebookEvent.registerFile';\n\n static SEND_TO_NOTEBOOK = 'NotebookEvent.sendToNotebook';\n\n static UNREGISTER_FILE = 'NotebookEvent.unregisterFile';\n\n static PROMOTE_FROM_PREVIEW = 'NotebookEvent.promoteFromPreview';\n}\n\nexport default NotebookEvent;\n"],"mappings":";;;AAAA,MAAMA,aAAa,CAAC;AAkBnB,gBAlBKA,aAAa,qBACQ,8BAA8B;AAAA,gBADnDA,aAAa,qBAGQ,8BAA8B;AAAA,gBAHnDA,aAAa,gBAKG,yBAAyB;AAAA,gBALzCA,aAAa,YAOD,sBAAsB;AAAA,gBAPlCA,aAAa,iBASI,0BAA0B;AAAA,gBAT3CA,aAAa,mBAWM,4BAA4B;AAAA,gBAX/CA,aAAa,sBAaS,8BAA8B;AAAA,gBAbpDA,aAAa,qBAeQ,8BAA8B;AAAA,gBAfnDA,aAAa,0BAiBa,kCAAkC;AAGlE,eAAeA,aAAa"}
|
package/dist/linker/Linker.d.ts
CHANGED
|
@@ -83,7 +83,7 @@ export declare class Linker extends Component<LinkerProps, LinkerState> {
|
|
|
83
83
|
getCachedLinks: (links: Link[], linkInProgress: Link | undefined, isolateForPanelId: string | undefined) => Link[];
|
|
84
84
|
isOverlayShown(): boolean;
|
|
85
85
|
updateSelectionValidators(): void;
|
|
86
|
-
updateLinkInProgressType(
|
|
86
|
+
updateLinkInProgressType(type?: LinkType): void;
|
|
87
87
|
isColumnSelectionValid(panel: PanelComponent, tableColumn?: LinkColumn): boolean;
|
|
88
88
|
render(): JSX.Element | null;
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAW,cAAc,EAAE,MAAM,aAAa,CAAC;AAKtD,OAAO,EAEL,cAAc,EAEd,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAGL,UAAU,EAEX,MAAM,wBAAwB,CAAC;AAqBhC,OAAoB,EAElB,IAAI,EACJ,UAAU,EACV,aAAa,EACb,QAAQ,EAET,MAAM,eAAe,CAAC;AAIvB,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,QAAQ;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAYD,QAAA,MAAM,SAAS;;;;;;;YAOb,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAChC,UAAU,GACV,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAO,SAAQ,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBACjD,KAAK,EAAE,WAAW;IA8B9B,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAchD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAItD,oBAAoB,IAAI,IAAI;IAK5B,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAoB1C,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAoBzC,KAAK,IAAI,IAAI;IAOb,YAAY,IAAI,IAAI;IASpB,UAAU,IAAI,IAAI;IAKlB,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAIxE,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAiCzE,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IAoBxE,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQvE;;;;;;OAMG;IACH,cAAc,CACZ,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,UAAU,EAClB,gBAAgB,UAAQ,EACxB,6BAA6B,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAChD,IAAI;
|
|
1
|
+
{"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"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"}
|
package/dist/linker/Linker.js
CHANGED
|
@@ -310,6 +310,26 @@ export class Linker extends Component {
|
|
|
310
310
|
this.deleteLinks(linksToDelete);
|
|
311
311
|
break;
|
|
312
312
|
}
|
|
313
|
+
case 'chartLink':
|
|
314
|
+
{
|
|
315
|
+
var existingLinkEnd = isReversed === true ? start : end;
|
|
316
|
+
var existingLinkStart = isReversed === true ? end : start;
|
|
317
|
+
log.debug('creating chartlink', {
|
|
318
|
+
existingLinkEnd,
|
|
319
|
+
start,
|
|
320
|
+
end
|
|
321
|
+
});
|
|
322
|
+
// Don't allow linking more than one column per source to each chart column
|
|
323
|
+
var _linksToDelete = links.filter(_ref3 => {
|
|
324
|
+
var {
|
|
325
|
+
end: panelLinkEnd,
|
|
326
|
+
start: panelLinkStart
|
|
327
|
+
} = _ref3;
|
|
328
|
+
return (panelLinkStart === null || panelLinkStart === void 0 ? void 0 : panelLinkStart.panelId) === existingLinkStart.panelId && (panelLinkEnd === null || panelLinkEnd === void 0 ? void 0 : panelLinkEnd.panelId) === existingLinkEnd.panelId && (panelLinkEnd === null || panelLinkEnd === void 0 ? void 0 : panelLinkEnd.columnName) === existingLinkEnd.columnName && (panelLinkEnd === null || panelLinkEnd === void 0 ? void 0 : panelLinkEnd.columnType) === existingLinkEnd.columnType;
|
|
329
|
+
});
|
|
330
|
+
this.deleteLinks(_linksToDelete);
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
313
333
|
case 'tableLink':
|
|
314
334
|
// No-op
|
|
315
335
|
break;
|
|
@@ -400,10 +420,10 @@ export class Linker extends Component {
|
|
|
400
420
|
var {
|
|
401
421
|
deleteDashboardLinks
|
|
402
422
|
} = this.props;
|
|
403
|
-
deleteDashboardLinks(localDashboardId, links.map(
|
|
423
|
+
deleteDashboardLinks(localDashboardId, links.map(_ref4 => {
|
|
404
424
|
var {
|
|
405
425
|
id
|
|
406
|
-
} =
|
|
426
|
+
} = _ref4;
|
|
407
427
|
return id;
|
|
408
428
|
}));
|
|
409
429
|
}
|
|
@@ -611,12 +631,20 @@ export class Linker extends Component {
|
|
|
611
631
|
break;
|
|
612
632
|
}
|
|
613
633
|
}
|
|
614
|
-
updateLinkInProgressType(
|
|
615
|
-
var type = arguments.length >
|
|
616
|
-
this.setState({
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
}
|
|
634
|
+
updateLinkInProgressType() {
|
|
635
|
+
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'invalid';
|
|
636
|
+
this.setState(_ref5 => {
|
|
637
|
+
var {
|
|
638
|
+
linkInProgress
|
|
639
|
+
} = _ref5;
|
|
640
|
+
if (linkInProgress !== undefined) {
|
|
641
|
+
return {
|
|
642
|
+
linkInProgress: _objectSpread(_objectSpread({}, linkInProgress), {}, {
|
|
643
|
+
type
|
|
644
|
+
})
|
|
645
|
+
};
|
|
646
|
+
}
|
|
647
|
+
return null;
|
|
620
648
|
});
|
|
621
649
|
}
|
|
622
650
|
isColumnSelectionValid(panel, tableColumn) {
|
|
@@ -629,7 +657,7 @@ export class Linker extends Component {
|
|
|
629
657
|
if (tableColumn == null) {
|
|
630
658
|
if ((linkInProgress === null || linkInProgress === void 0 ? void 0 : linkInProgress.start) != null) {
|
|
631
659
|
// Link started, end point is not a valid target
|
|
632
|
-
this.updateLinkInProgressType(
|
|
660
|
+
this.updateLinkInProgressType();
|
|
633
661
|
}
|
|
634
662
|
return false;
|
|
635
663
|
}
|
|
@@ -638,7 +666,7 @@ export class Linker extends Component {
|
|
|
638
666
|
if (!isLinkableColumn(tableColumn)) {
|
|
639
667
|
log.debug2('Column is not filterable', tableColumn.description);
|
|
640
668
|
if ((linkInProgress === null || linkInProgress === void 0 ? void 0 : linkInProgress.start) != null) {
|
|
641
|
-
this.updateLinkInProgressType(
|
|
669
|
+
this.updateLinkInProgressType('invalid');
|
|
642
670
|
}
|
|
643
671
|
return false;
|
|
644
672
|
}
|
|
@@ -662,7 +690,7 @@ export class Linker extends Component {
|
|
|
662
690
|
columnType: tableColumn.type
|
|
663
691
|
};
|
|
664
692
|
var type = isReversed !== undefined && isReversed ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId) : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);
|
|
665
|
-
this.updateLinkInProgressType(
|
|
693
|
+
this.updateLinkInProgressType(type);
|
|
666
694
|
return type !== 'invalid';
|
|
667
695
|
}
|
|
668
696
|
render() {
|