@deephaven/dashboard-core-plugins 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -43,6 +43,11 @@ export declare class ConsolePanel extends PureComponent<ConsolePanelProps, Conso
|
|
|
43
43
|
subscribeToFieldUpdates(): void;
|
|
44
44
|
setItemId(name: string, id: string): void;
|
|
45
45
|
getItemId(name: string, createIfNecessary?: boolean): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Removes the item ID mapping from state by its ID value.
|
|
48
|
+
* @param id The item ID to delete from the itemIds map.
|
|
49
|
+
*/
|
|
50
|
+
private deleteItemId;
|
|
46
51
|
handleTabFocus(): void;
|
|
47
52
|
handlePanelMount(panel: {
|
|
48
53
|
props: {
|
|
@@ -52,6 +57,13 @@ export declare class ConsolePanel extends PureComponent<ConsolePanelProps, Conso
|
|
|
52
57
|
};
|
|
53
58
|
};
|
|
54
59
|
}): void;
|
|
60
|
+
/**
|
|
61
|
+
* Handles a panel closed event. Removes the panel's item ID mapping unless
|
|
62
|
+
* the panel was replaced (i.e. a panel with the same ID still exists in the layout),
|
|
63
|
+
* in which case the mapping is retained for the replacement panel.
|
|
64
|
+
* @param panelId The ID of the panel that was closed.
|
|
65
|
+
*/
|
|
66
|
+
handlePanelClosed(panelId: string): void;
|
|
55
67
|
handleFocusCommandHistory(): void;
|
|
56
68
|
handleResize(): void;
|
|
57
69
|
handleShow(): void;
|
|
@@ -66,6 +78,11 @@ export declare class ConsolePanel extends PureComponent<ConsolePanelProps, Conso
|
|
|
66
78
|
openWidget(widget: dh.ide.VariableDescriptor & {
|
|
67
79
|
title?: string;
|
|
68
80
|
}): void;
|
|
81
|
+
/**
|
|
82
|
+
* Open the given widget in a new panel. This is used for all widget types except "widget dashboard" types, which are widgets that should be opened in a new dashboard instead of a panel.
|
|
83
|
+
* @param widget The widget to open
|
|
84
|
+
*/
|
|
85
|
+
private openPanelWidget;
|
|
69
86
|
addCommand(command: string, focus?: boolean, execute?: boolean): void;
|
|
70
87
|
/**
|
|
71
88
|
* Close the disconnected panels from this session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKhF,OAAO,EACL,KAAK,qBAAqB,EAC1B,OAAO,EAIR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,12 @@ import debounce from 'lodash.debounce';
|
|
|
11
11
|
import { connect } from 'react-redux';
|
|
12
12
|
import { LoadingOverlay } from '@deephaven/components';
|
|
13
13
|
import { Console, ConsoleConstants, HeapUsage, ObjectIcon } from '@deephaven/console';
|
|
14
|
-
import { emitCloseDashboard, emitPanelOpen, LayoutManagerContext, LayoutUtils, PanelEvent } from '@deephaven/dashboard';
|
|
14
|
+
import { emitCloseDashboard, emitCreateDashboard, emitPanelOpen, emitPanelClose, LayoutManagerContext, LayoutUtils, PanelEvent } from '@deephaven/dashboard';
|
|
15
15
|
import { getVariableDescriptor } from '@deephaven/jsapi-bootstrap';
|
|
16
16
|
import Log from '@deephaven/log';
|
|
17
17
|
import { getCommandHistoryStorage, getPlugins, getTimeZone } from '@deephaven/redux';
|
|
18
18
|
import { assertNotNull } from '@deephaven/utils';
|
|
19
|
-
import { getIconForPlugin, pluginSupportsType } from '@deephaven/plugin';
|
|
19
|
+
import { getIconForPlugin, getWidgetDashboardPlugin, pluginSupportsType } from '@deephaven/plugin';
|
|
20
20
|
import { ConsoleEvent } from "../events/index.js";
|
|
21
21
|
import Panel from "./CorePanel.js";
|
|
22
22
|
import { getDashboardSessionWrapper } from "../redux/index.js";
|
|
@@ -176,6 +176,28 @@ export class ConsolePanel extends PureComponent {
|
|
|
176
176
|
}
|
|
177
177
|
return id;
|
|
178
178
|
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Removes the item ID mapping from state by its ID value.
|
|
182
|
+
* @param id The item ID to delete from the itemIds map.
|
|
183
|
+
*/
|
|
184
|
+
deleteItemId(id) {
|
|
185
|
+
this.setState(_ref3 => {
|
|
186
|
+
var {
|
|
187
|
+
itemIds
|
|
188
|
+
} = _ref3;
|
|
189
|
+
log.debug('Delete item', id, itemIds);
|
|
190
|
+
var key = [...itemIds.keys()].find(k => itemIds.get(k) === id);
|
|
191
|
+
if (key === undefined) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
var newItemIds = new Map(itemIds);
|
|
195
|
+
newItemIds.delete(key);
|
|
196
|
+
return {
|
|
197
|
+
itemIds: newItemIds
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
}
|
|
179
201
|
handleTabFocus() {
|
|
180
202
|
var _this$consoleRef$curr;
|
|
181
203
|
(_this$consoleRef$curr = this.consoleRef.current) === null || _this$consoleRef$curr === void 0 || _this$consoleRef$curr.focus();
|
|
@@ -196,6 +218,31 @@ export class ConsolePanel extends PureComponent {
|
|
|
196
218
|
}
|
|
197
219
|
}
|
|
198
220
|
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Handles a panel closed event. Removes the panel's item ID mapping unless
|
|
224
|
+
* the panel was replaced (i.e. a panel with the same ID still exists in the layout),
|
|
225
|
+
* in which case the mapping is retained for the replacement panel.
|
|
226
|
+
* @param panelId The ID of the panel that was closed.
|
|
227
|
+
*/
|
|
228
|
+
handlePanelClosed(panelId) {
|
|
229
|
+
// When replacing a panel, LayoutUtils.openComponent adds the new panel before removing the old
|
|
230
|
+
// one, so the old panel's CLOSED event fires with the same panelId as the new panel.
|
|
231
|
+
// If a panel with panelId still exists, it was replaced and we should not delete the itemId.
|
|
232
|
+
var {
|
|
233
|
+
glContainer
|
|
234
|
+
} = this.props;
|
|
235
|
+
var root = LayoutUtils.getRootFromContainer(glContainer);
|
|
236
|
+
var stack = LayoutUtils.getStackForConfig(root, {
|
|
237
|
+
id: panelId
|
|
238
|
+
});
|
|
239
|
+
if (stack !== null && LayoutUtils.getContentItemInStack(stack, {
|
|
240
|
+
id: panelId
|
|
241
|
+
}) !== null) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
this.deleteItemId(panelId);
|
|
245
|
+
}
|
|
199
246
|
handleFocusCommandHistory() {
|
|
200
247
|
var {
|
|
201
248
|
glEventHub
|
|
@@ -231,7 +278,7 @@ export class ConsolePanel extends PureComponent {
|
|
|
231
278
|
var {
|
|
232
279
|
glEventHub
|
|
233
280
|
} = this.props;
|
|
234
|
-
glEventHub
|
|
281
|
+
emitPanelClose(glEventHub, id);
|
|
235
282
|
// Just emit for all panels since there shouldn't be dashboard and panel name conflicts
|
|
236
283
|
emitCloseDashboard(glEventHub, title);
|
|
237
284
|
}
|
|
@@ -252,6 +299,29 @@ export class ConsolePanel extends PureComponent {
|
|
|
252
299
|
* @param widget The widget to open
|
|
253
300
|
*/
|
|
254
301
|
openWidget(widget) {
|
|
302
|
+
var {
|
|
303
|
+
glEventHub,
|
|
304
|
+
plugins
|
|
305
|
+
} = this.props;
|
|
306
|
+
var {
|
|
307
|
+
type
|
|
308
|
+
} = widget;
|
|
309
|
+
var widgetDashboardPlugin = getWidgetDashboardPlugin(plugins, type);
|
|
310
|
+
if (widgetDashboardPlugin != null) {
|
|
311
|
+
// If it can be opened as a dashboard, open it as a dashboard. Otherwise, open it as a panel.
|
|
312
|
+
var dashboardPayload = widgetDashboardPlugin.createDashboardPayload(widget);
|
|
313
|
+
log.debug('openDashboardWidget', dashboardPayload);
|
|
314
|
+
emitCreateDashboard(glEventHub, dashboardPayload);
|
|
315
|
+
} else {
|
|
316
|
+
this.openPanelWidget(widget);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Open the given widget in a new panel. This is used for all widget types except "widget dashboard" types, which are widgets that should be opened in a new dashboard instead of a panel.
|
|
322
|
+
* @param widget The widget to open
|
|
323
|
+
*/
|
|
324
|
+
openPanelWidget(widget) {
|
|
255
325
|
var {
|
|
256
326
|
glEventHub,
|
|
257
327
|
sessionWrapper
|
|
@@ -265,15 +335,16 @@ export class ConsolePanel extends PureComponent {
|
|
|
265
335
|
title = widget.name
|
|
266
336
|
} = widget;
|
|
267
337
|
assertNotNull(title);
|
|
268
|
-
var
|
|
338
|
+
var itemId = this.getItemId(title);
|
|
339
|
+
assertNotNull(itemId);
|
|
269
340
|
var openOptions = {
|
|
270
341
|
fetch: () => session.getObject(widget),
|
|
271
|
-
panelId,
|
|
342
|
+
panelId: itemId,
|
|
272
343
|
widget: _objectSpread(_objectSpread({}, getVariableDescriptor(widget)), {}, {
|
|
273
344
|
sessionId: config.id
|
|
274
345
|
})
|
|
275
346
|
};
|
|
276
|
-
log.debug('
|
|
347
|
+
log.debug('openPanelWidget', openOptions);
|
|
277
348
|
emitPanelOpen(glEventHub, openOptions);
|
|
278
349
|
}
|
|
279
350
|
addCommand(command) {
|
|
@@ -304,7 +375,7 @@ export class ConsolePanel extends PureComponent {
|
|
|
304
375
|
glEventHub
|
|
305
376
|
} = this.props;
|
|
306
377
|
panelIdsToClose.forEach(panelId => {
|
|
307
|
-
glEventHub
|
|
378
|
+
emitPanelClose(glEventHub, panelId);
|
|
308
379
|
});
|
|
309
380
|
this.setState({
|
|
310
381
|
itemIds: new Map()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","nanoid","debounce","connect","LoadingOverlay","Console","ConsoleConstants","HeapUsage","ObjectIcon","emitCloseDashboard","emitPanelOpen","LayoutManagerContext","LayoutUtils","PanelEvent","getVariableDescriptor","Log","getCommandHistoryStorage","getPlugins","getTimeZone","assertNotNull","getIconForPlugin","pluginSupportsType","ConsoleEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","_defineProperty","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","supportsType","iconForType","consoleRef","createRef","initialPanelState","_objectSpread","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","_this$objectSubscript","flush","off","objectSubscriptionCleanup","call","sessionWrapper","session","updates","_ref","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","_ref2","newItemIds","getItemId","createIfNecessary","arguments","length","get","handleTabFocus","_this$consoleRef$curr","current","focus","panel","_panel$props","_panel$props2","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","forceOpen","context","root","oldPanelId","getStackForRoot","openWidget","CLOSE","SETTINGS_CHANGED","widget","config","openOptions","fetch","getObject","sessionId","addCommand","command","_this$consoleRef$curr2","execute","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","_this$consoleRef$curr3","type","plugins","some","plugin","find","p","render","commandHistoryStorage","glContainer","timeZone","unzip","isLoading","errorMessage","connection","details","dh","workerName","processInfoId","language","className","componentPanel","onResize","onShow","onTabFocus","concat","children","ref","settings","focusCommandHistory","openObject","closeObject","onSettingsChange","statusBarChildren","LANGUAGE_MAP","defaultUpdateInterval","hoverUpdateInterval","monitorDuration","showObjectsMenu","scope","mapStateToProps","ownProps","localDashboardId","ConnectedConsolePanel","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent, type ReactElement, type RefObject } from 'react';\nimport { nanoid } from 'nanoid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport {\n type CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n ObjectIcon,\n} from '@deephaven/console';\nimport {\n type DashboardPanelProps,\n emitCloseDashboard,\n emitPanelOpen,\n LayoutManagerContext,\n LayoutUtils,\n PanelEvent,\n} from '@deephaven/dashboard';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { getVariableDescriptor } from '@deephaven/jsapi-bootstrap';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getPlugins,\n getTimeZone,\n type RootState,\n} from '@deephaven/redux';\nimport { assertNotNull } from '@deephaven/utils';\nimport {\n getIconForPlugin,\n pluginSupportsType,\n type PluginModuleMap,\n} from '@deephaven/plugin';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\nimport './ConsolePanel.scss';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps extends DashboardPanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n\n panelState?: PanelState;\n\n sessionWrapper?: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n plugins: PluginModuleMap;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, dh.ide.VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n static contextType = LayoutManagerContext;\n\n // eslint-disable-next-line react/static-property-placement, react/sort-comp\n declare context: React.ContextType<typeof LayoutManagerContext>;\n\n constructor(props: ConsolePanelProps) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n this.supportsType = this.supportsType.bind(this);\n this.iconForType = this.iconForType.bind(this);\n\n this.consoleRef = React.createRef();\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n if (sessionWrapper == null) {\n return;\n }\n\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name: string, createIfNecessary = true): string | undefined {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = nanoid();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(\n object: dh.ide.VariableDescriptor & { title?: string },\n forceOpen = true\n ): void {\n assertNotNull(this.context);\n const { root } = this.context;\n const oldPanelId =\n object.title != null ? this.getItemId(object.title, false) : null;\n if (\n forceOpen ||\n (oldPanelId != null &&\n LayoutUtils.getStackForRoot(\n root,\n { id: oldPanelId },\n false,\n false,\n false\n ) != null)\n ) {\n this.openWidget(object);\n }\n }\n\n handleCloseObject(object: dh.ide.VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n if (id != null) {\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n // Just emit for all panels since there shouldn't be dashboard and panel name conflicts\n emitCloseDashboard(glEventHub, title);\n }\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param widget The widget to open\n */\n openWidget(widget: dh.ide.VariableDescriptor & { title?: string }): void {\n const { glEventHub, sessionWrapper } = this.props;\n assertNotNull(sessionWrapper);\n\n const { config, session } = sessionWrapper;\n const { title = widget.name } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget: {\n ...getVariableDescriptor(widget),\n sessionId: config.id,\n },\n };\n\n log.debug('openWidget', openOptions);\n\n emitPanelOpen(glEventHub, openOptions);\n }\n\n addCommand(command: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState = debounce((): void => {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n supportsType(type: string): boolean {\n const { plugins } = this.props;\n return [...plugins.values()].some(plugin =>\n pluginSupportsType(plugin, type)\n );\n }\n\n iconForType(type: string): JSX.Element {\n const { plugins } = this.props;\n const plugin = [...plugins.values()].find(p => pluginSupportsType(p, type));\n if (plugin != null) {\n return getIconForPlugin(plugin);\n }\n // TODO: #1573 Remove this default and always return getIconForPlugin\n return <ObjectIcon type={type} />;\n }\n\n render(): ReactElement | null {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n\n if (sessionWrapper == null) {\n return (\n <LoadingOverlay\n isLoading={false}\n errorMessage=\"Console is disabled.\"\n data-testid=\"console-panel-loading-error\"\n />\n );\n }\n\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session, connection, details = {}, dh } = sessionWrapper;\n const { workerName, processInfoId } = details;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n className=\"iris-panel-console\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\n <Console\n dh={dh}\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n {workerName != null && (\n <>\n <div>•</div>\n {workerName}\n </>\n )}\n {processInfoId != null && (\n <>\n <div>•</div>\n {processInfoId}\n <div>•</div>\n </>\n )}\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </>\n }\n showObjectsMenu={false}\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n supportsType={this.supportsType}\n iconForType={this.iconForType}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n ConsolePanelProps,\n 'commandHistoryStorage' | 'sessionWrapper' | 'timeZone' | 'plugins'\n> => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n plugins: getPlugins(state),\n});\n\nconst ConnectedConsolePanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConsolePanel);\n\nexport default ConnectedConsolePanel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","nanoid","debounce","connect","LoadingOverlay","Console","ConsoleConstants","HeapUsage","ObjectIcon","emitCloseDashboard","emitCreateDashboard","emitPanelOpen","emitPanelClose","LayoutManagerContext","LayoutUtils","PanelEvent","getVariableDescriptor","Log","getCommandHistoryStorage","getPlugins","getTimeZone","assertNotNull","getIconForPlugin","getWidgetDashboardPlugin","pluginSupportsType","ConsoleEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","_defineProperty","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","supportsType","iconForType","consoleRef","createRef","initialPanelState","_objectSpread","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","_this$objectSubscript","flush","off","objectSubscriptionCleanup","call","sessionWrapper","session","updates","_ref","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","_ref2","newItemIds","getItemId","createIfNecessary","arguments","length","get","deleteItemId","_ref3","key","keys","find","k","handleTabFocus","_this$consoleRef$curr","current","focus","panel","_panel$props","_panel$props2","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","handlePanelClosed","glContainer","root","getRootFromContainer","stack","getStackForConfig","getContentItemInStack","emit","FOCUS_HISTORY","updateDimensions","object","forceOpen","context","oldPanelId","getStackForRoot","openWidget","SETTINGS_CHANGED","widget","plugins","type","widgetDashboardPlugin","dashboardPayload","createDashboardPayload","openPanelWidget","config","itemId","openOptions","fetch","getObject","sessionId","addCommand","command","_this$consoleRef$curr2","execute","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","_this$consoleRef$curr3","some","plugin","p","render","commandHistoryStorage","timeZone","unzip","isLoading","errorMessage","connection","details","dh","workerName","processInfoId","language","className","componentPanel","onResize","onShow","onTabFocus","concat","children","ref","settings","focusCommandHistory","openObject","closeObject","onSettingsChange","statusBarChildren","LANGUAGE_MAP","defaultUpdateInterval","hoverUpdateInterval","monitorDuration","showObjectsMenu","scope","mapStateToProps","ownProps","localDashboardId","ConnectedConsolePanel","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent, type ReactElement, type RefObject } from 'react';\nimport { nanoid } from 'nanoid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport {\n type CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n ObjectIcon,\n} from '@deephaven/console';\nimport {\n type DashboardPanelProps,\n emitCloseDashboard,\n emitCreateDashboard,\n emitPanelOpen,\n emitPanelClose,\n LayoutManagerContext,\n LayoutUtils,\n PanelEvent,\n} from '@deephaven/dashboard';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { getVariableDescriptor } from '@deephaven/jsapi-bootstrap';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getPlugins,\n getTimeZone,\n type RootState,\n} from '@deephaven/redux';\nimport { assertNotNull } from '@deephaven/utils';\nimport {\n getIconForPlugin,\n getWidgetDashboardPlugin,\n pluginSupportsType,\n type PluginModuleMap,\n} from '@deephaven/plugin';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\nimport './ConsolePanel.scss';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps extends DashboardPanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n\n panelState?: PanelState;\n\n sessionWrapper?: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n plugins: PluginModuleMap;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, dh.ide.VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n static contextType = LayoutManagerContext;\n\n // eslint-disable-next-line react/static-property-placement, react/sort-comp\n declare context: React.ContextType<typeof LayoutManagerContext>;\n\n constructor(props: ConsolePanelProps) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n this.supportsType = this.supportsType.bind(this);\n this.iconForType = this.iconForType.bind(this);\n\n this.consoleRef = React.createRef();\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n if (sessionWrapper == null) {\n return;\n }\n\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name: string, createIfNecessary = true): string | undefined {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = nanoid();\n this.setItemId(name, id);\n }\n return id;\n }\n\n /**\n * Removes the item ID mapping from state by its ID value.\n * @param id The item ID to delete from the itemIds map.\n */\n private deleteItemId(id: string): void {\n this.setState(({ itemIds }) => {\n log.debug('Delete item', id, itemIds);\n const key = [...itemIds.keys()].find(k => itemIds.get(k) === id);\n if (key === undefined) {\n return null;\n }\n const newItemIds = new Map(itemIds);\n newItemIds.delete(key);\n return { itemIds: newItemIds };\n });\n }\n\n handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n /**\n * Handles a panel closed event. Removes the panel's item ID mapping unless\n * the panel was replaced (i.e. a panel with the same ID still exists in the layout),\n * in which case the mapping is retained for the replacement panel.\n * @param panelId The ID of the panel that was closed.\n */\n handlePanelClosed(panelId: string): void {\n // When replacing a panel, LayoutUtils.openComponent adds the new panel before removing the old\n // one, so the old panel's CLOSED event fires with the same panelId as the new panel.\n // If a panel with panelId still exists, it was replaced and we should not delete the itemId.\n const { glContainer } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const stack = LayoutUtils.getStackForConfig(root, { id: panelId });\n if (\n stack !== null &&\n LayoutUtils.getContentItemInStack(stack, { id: panelId }) !== null\n ) {\n return;\n }\n this.deleteItemId(panelId);\n }\n\n handleFocusCommandHistory(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(\n object: dh.ide.VariableDescriptor & { title?: string },\n forceOpen = true\n ): void {\n assertNotNull(this.context);\n const { root } = this.context;\n const oldPanelId =\n object.title != null ? this.getItemId(object.title, false) : null;\n if (\n forceOpen ||\n (oldPanelId != null &&\n LayoutUtils.getStackForRoot(\n root,\n { id: oldPanelId },\n false,\n false,\n false\n ) != null)\n ) {\n this.openWidget(object);\n }\n }\n\n handleCloseObject(object: dh.ide.VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n if (id != null) {\n const { glEventHub } = this.props;\n emitPanelClose(glEventHub, id);\n // Just emit for all panels since there shouldn't be dashboard and panel name conflicts\n emitCloseDashboard(glEventHub, title);\n }\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param widget The widget to open\n */\n openWidget(widget: dh.ide.VariableDescriptor & { title?: string }): void {\n const { glEventHub, plugins } = this.props;\n const { type } = widget;\n const widgetDashboardPlugin = getWidgetDashboardPlugin(plugins, type);\n if (widgetDashboardPlugin != null) {\n // If it can be opened as a dashboard, open it as a dashboard. Otherwise, open it as a panel.\n const dashboardPayload =\n widgetDashboardPlugin.createDashboardPayload(widget);\n log.debug('openDashboardWidget', dashboardPayload);\n emitCreateDashboard(glEventHub, dashboardPayload);\n } else {\n this.openPanelWidget(widget);\n }\n }\n\n /**\n * Open the given widget in a new panel. This is used for all widget types except \"widget dashboard\" types, which are widgets that should be opened in a new dashboard instead of a panel.\n * @param widget The widget to open\n */\n private openPanelWidget(\n widget: dh.ide.VariableDescriptor & { title?: string }\n ): void {\n const { glEventHub, sessionWrapper } = this.props;\n assertNotNull(sessionWrapper);\n\n const { config, session } = sessionWrapper;\n const { title = widget.name } = widget;\n assertNotNull(title);\n const itemId = this.getItemId(title);\n assertNotNull(itemId);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId: itemId,\n widget: {\n ...getVariableDescriptor(widget),\n sessionId: config.id,\n },\n };\n\n log.debug('openPanelWidget', openOptions);\n\n emitPanelOpen(glEventHub, openOptions);\n }\n\n addCommand(command: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n emitPanelClose(glEventHub, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState = debounce((): void => {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n supportsType(type: string): boolean {\n const { plugins } = this.props;\n return [...plugins.values()].some(plugin =>\n pluginSupportsType(plugin, type)\n );\n }\n\n iconForType(type: string): JSX.Element {\n const { plugins } = this.props;\n const plugin = [...plugins.values()].find(p => pluginSupportsType(p, type));\n if (plugin != null) {\n return getIconForPlugin(plugin);\n }\n // TODO: #1573 Remove this default and always return getIconForPlugin\n return <ObjectIcon type={type} />;\n }\n\n render(): ReactElement | null {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n\n if (sessionWrapper == null) {\n return (\n <LoadingOverlay\n isLoading={false}\n errorMessage=\"Console is disabled.\"\n data-testid=\"console-panel-loading-error\"\n />\n );\n }\n\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session, connection, details = {}, dh } = sessionWrapper;\n const { workerName, processInfoId } = details;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n className=\"iris-panel-console\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\n <Console\n dh={dh}\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n {workerName != null && (\n <>\n <div>•</div>\n {workerName}\n </>\n )}\n {processInfoId != null && (\n <>\n <div>•</div>\n {processInfoId}\n <div>•</div>\n </>\n )}\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </>\n }\n showObjectsMenu={false}\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n supportsType={this.supportsType}\n iconForType={this.iconForType}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n ConsolePanelProps,\n 'commandHistoryStorage' | 'sessionWrapper' | 'timeZone' | 'plugins'\n> => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n plugins: getPlugins(state),\n});\n\nconst ConnectedConsolePanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConsolePanel);\n\nexport default ConnectedConsolePanel;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,22 +22,22 @@
|
|
|
22
22
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@deephaven/chart": "^1.
|
|
26
|
-
"@deephaven/components": "^1.
|
|
27
|
-
"@deephaven/console": "^1.
|
|
28
|
-
"@deephaven/dashboard": "^1.
|
|
29
|
-
"@deephaven/file-explorer": "^1.
|
|
25
|
+
"@deephaven/chart": "^1.20.0",
|
|
26
|
+
"@deephaven/components": "^1.20.0",
|
|
27
|
+
"@deephaven/console": "^1.20.0",
|
|
28
|
+
"@deephaven/dashboard": "^1.20.0",
|
|
29
|
+
"@deephaven/file-explorer": "^1.20.0",
|
|
30
30
|
"@deephaven/filters": "^1.1.0",
|
|
31
|
-
"@deephaven/golden-layout": "^1.
|
|
31
|
+
"@deephaven/golden-layout": "^1.20.0",
|
|
32
32
|
"@deephaven/grid": "^1.18.2",
|
|
33
33
|
"@deephaven/icons": "^1.2.0",
|
|
34
|
-
"@deephaven/iris-grid": "^1.
|
|
35
|
-
"@deephaven/jsapi-bootstrap": "^1.
|
|
36
|
-
"@deephaven/jsapi-components": "^1.
|
|
34
|
+
"@deephaven/iris-grid": "^1.20.0",
|
|
35
|
+
"@deephaven/jsapi-bootstrap": "^1.20.0",
|
|
36
|
+
"@deephaven/jsapi-components": "^1.20.0",
|
|
37
37
|
"@deephaven/jsapi-types": "^1.0.0-dev0.40.4",
|
|
38
38
|
"@deephaven/jsapi-utils": "^1.16.0",
|
|
39
39
|
"@deephaven/log": "^1.8.0",
|
|
40
|
-
"@deephaven/plugin": "^1.
|
|
40
|
+
"@deephaven/plugin": "^1.20.0",
|
|
41
41
|
"@deephaven/react-hooks": "^1.14.0",
|
|
42
42
|
"@deephaven/redux": "^1.19.0",
|
|
43
43
|
"@deephaven/storage": "^1.8.0",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"publishConfig": {
|
|
80
80
|
"access": "public"
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "8450735e2c855217cb5a6fa4ea0b1b3fda57221c"
|
|
83
83
|
}
|