@deephaven/dashboard-core-plugins 1.19.1-console-types-fixes.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.
package/dist/index.d.ts CHANGED
@@ -27,7 +27,6 @@ export * from './useDashboardColumnFilters';
27
27
  export * from './useGridLinker';
28
28
  export * from './useLoadTablePlugin';
29
29
  export * from './useTablePlugin';
30
- export * from './ConsoleEvents';
31
30
  export * from './events';
32
31
  export * from './panels';
33
32
  export * from './redux';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -26,7 +26,6 @@ export * from "./useDashboardColumnFilters.js";
26
26
  export * from "./useGridLinker.js";
27
27
  export * from "./useLoadTablePlugin.js";
28
28
  export * from "./useTablePlugin.js";
29
- export * from "./ConsoleEvents.js";
30
29
  export * from "./events/index.js";
31
30
  export * from "./panels/index.js";
32
31
  export * from "./redux/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","ChartPanelPlugin","ChartWidgetPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPanelPlugin","GridWidgetPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPanelPlugin","PandasWidgetPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPanelPlugin } from './ChartPanelPlugin';\nexport { default as ChartWidgetPlugin } from './ChartWidgetPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPanelPlugin } from './GridPanelPlugin';\nexport { default as GridWidgetPlugin } from './GridWidgetPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPanelPlugin } from './PandasPanelPlugin';\nexport { default as PandasWidgetPlugin } from './PandasWidgetPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\nexport * from './useConfigureRuff';\nexport * from './useDashboardColumnFilters';\nexport * from './useGridLinker';\nexport * from './useLoadTablePlugin';\nexport * from './useTablePlugin';\n\nexport * from './ConsoleEvents';\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,gBAAgB;AAAA,SAC3BD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,iBAAiB;AAAA,SAC5BH,OAAO,IAAII,kBAAkB;AAAA,SAC7BJ,OAAO,IAAIK,wBAAwB;AAAA,SACnCL,OAAO,IAAIM,aAAa;AAAA,SACxBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,kBAAkB;AAAA,SAC7BR,OAAO,IAAIS,eAAe;AAAA,SAC1BT,OAAO,IAAIU,gBAAgB;AAAA,SAC3BV,OAAO,IAAIW,gBAAgB;AAAA,SAC3BX,OAAO,IAAIY,YAAY;AAAA,SACvBZ,OAAO,IAAIa,kBAAkB;AAAA,SAC7Bb,OAAO,IAAIc,cAAc;AAAA,SACzBd,OAAO,IAAIe,oBAAoB;AAAA,SAC/Bf,OAAO,IAAIgB,iBAAiB;AAAA,SAC5BhB,OAAO,IAAIiB,kBAAkB;AAAA,SAC7BjB,OAAO,IAAIkB,kBAAkB;AAAA,SAC7BlB,OAAO,IAAImB,kBAAkB;AAAA,SAC7BnB,OAAO,IAAIoB,wBAAwB;AAAA,SACnCpB,OAAO,IAAIqB,WAAW;AAAA,SACtBrB,OAAO,IAAIsB,WAAW;AAAA,SAEtBtB,OAAO,IAAIuB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","ChartPanelPlugin","ChartWidgetPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPanelPlugin","GridWidgetPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPanelPlugin","PandasWidgetPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPanelPlugin } from './ChartPanelPlugin';\nexport { default as ChartWidgetPlugin } from './ChartWidgetPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPanelPlugin } from './GridPanelPlugin';\nexport { default as GridWidgetPlugin } from './GridWidgetPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPanelPlugin } from './PandasPanelPlugin';\nexport { default as PandasWidgetPlugin } from './PandasWidgetPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\nexport * from './useConfigureRuff';\nexport * from './useDashboardColumnFilters';\nexport * from './useGridLinker';\nexport * from './useLoadTablePlugin';\nexport * from './useTablePlugin';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,gBAAgB;AAAA,SAC3BD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,iBAAiB;AAAA,SAC5BH,OAAO,IAAII,kBAAkB;AAAA,SAC7BJ,OAAO,IAAIK,wBAAwB;AAAA,SACnCL,OAAO,IAAIM,aAAa;AAAA,SACxBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,kBAAkB;AAAA,SAC7BR,OAAO,IAAIS,eAAe;AAAA,SAC1BT,OAAO,IAAIU,gBAAgB;AAAA,SAC3BV,OAAO,IAAIW,gBAAgB;AAAA,SAC3BX,OAAO,IAAIY,YAAY;AAAA,SACvBZ,OAAO,IAAIa,kBAAkB;AAAA,SAC7Bb,OAAO,IAAIc,cAAc;AAAA,SACzBd,OAAO,IAAIe,oBAAoB;AAAA,SAC/Bf,OAAO,IAAIgB,iBAAiB;AAAA,SAC5BhB,OAAO,IAAIiB,kBAAkB;AAAA,SAC7BjB,OAAO,IAAIkB,kBAAkB;AAAA,SAC7BlB,OAAO,IAAImB,kBAAkB;AAAA,SAC7BnB,OAAO,IAAIoB,wBAAwB;AAAA,SACnCpB,OAAO,IAAIqB,WAAW;AAAA,SACtBrB,OAAO,IAAIsB,WAAW;AAAA,SAEtBtB,OAAO,IAAIuB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","ignoreList":[]}
@@ -4,7 +4,6 @@ import { CommandHistory, type CommandHistoryStorage, type CommandHistorySettings
4
4
  import { type DashboardPanelProps } from '@deephaven/dashboard';
5
5
  import { Pending } from '@deephaven/utils';
6
6
  import type { dh } from '@deephaven/jsapi-types';
7
- import { type CoreConsoleSession } from '../ConsoleEvents';
8
7
  import './CommandHistoryPanel.scss';
9
8
  interface CommandHistoryPanelProps extends DashboardPanelProps {
10
9
  panelState?: Record<string, never>;
@@ -32,14 +31,17 @@ declare class CommandHistoryPanel extends Component<CommandHistoryPanelProps, Co
32
31
  pending: Pending;
33
32
  handleFocusHistory(): void;
34
33
  handleShow(): void;
35
- handleSessionOpened({ session, language, sessionId, }: CoreConsoleSession): void;
34
+ handleSessionOpened(session: dh.IdeSession, { language, sessionId }: {
35
+ language: string;
36
+ sessionId: string;
37
+ }): void;
36
38
  handleSessionClosed(): void;
37
39
  handleSendToNotebook(settings: CommandHistorySettings, forceNewNotebook?: boolean): void;
38
40
  handleSendToConsole(command: string, focus?: boolean, execute?: boolean): void;
39
41
  loadTable(): void;
40
42
  render(): JSX.Element;
41
43
  }
42
- declare const ConnectedCommandHistoryPanel: import("react-redux").ConnectedComponent<typeof CommandHistoryPanel, import("react-redux").Omit<React.ClassAttributes<CommandHistoryPanel> & CommandHistoryPanelProps, "language" | "session" | "sessionId" | "commandHistoryStorage"> & {
44
+ declare const ConnectedCommandHistoryPanel: import("react-redux").ConnectedComponent<typeof CommandHistoryPanel, import("react-redux").Omit<React.ClassAttributes<CommandHistoryPanel> & CommandHistoryPanelProps, "language" | "sessionId" | "session" | "commandHistoryStorage"> & {
43
45
  localDashboardId: string;
44
46
  }>;
45
47
  export default ConnectedCommandHistoryPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CommandHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAiB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,4BAA4B,CAAC;AAMpC,UAAU,wBAAyB,SAAQ,mBAAmB;IAE5D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,SAAS,SAAyB;IAEzC,MAAM,CAAC,KAAK,SAAqB;IAEjC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAI5B,KAAK,EAAE,wBAAwB;IA8B3C,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,CAAC;IAEjB,kBAAkB,IAAI,IAAI;IAM1B,UAAU,IAAI,IAAI;IAKlB,mBAAmB,CAAC,EAClB,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,kBAAkB,GAAG,IAAI;IAa5B,mBAAmB,IAAI,IAAI;IAS3B,oBAAoB,CAClB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,UAAQ,GACvB,IAAI;IAkBP,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IAMzE,SAAS,IAAI,IAAI;IAgBjB,MAAM,IAAI,GAAG,CAAC,OAAO;CAkCtB;AA2BD,QAAA,MAAM,4BAA4B;sBAvBF,MAAM;EAyBf,CAAC;AAExB,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"CommandHistoryPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CommandHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAiB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,4BAA4B,CAAC;AAMpC,UAAU,wBAAyB,SAAQ,mBAAmB;IAE5D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,SAAS,SAAyB;IAEzC,MAAM,CAAC,KAAK,SAAqB;IAEjC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAI5B,KAAK,EAAE,wBAAwB;IA8B3C,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,CAAC;IAEjB,kBAAkB,IAAI,IAAI;IAM1B,UAAU,IAAI,IAAI;IAKlB,mBAAmB,CACjB,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC/D,IAAI;IAaP,mBAAmB,IAAI,IAAI;IAS3B,oBAAoB,CAClB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,UAAQ,GACvB,IAAI;IAkBP,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IAMzE,SAAS,IAAI,IAAI;IAgBjB,MAAM,IAAI,GAAG,CAAC,OAAO;CAkCtB;AA2BD,QAAA,MAAM,4BAA4B;sBAvBF,MAAM;EAyBf,CAAC;AAExB,eAAe,4BAA4B,CAAC"}
@@ -74,9 +74,8 @@ class CommandHistoryPanel extends Component {
74
74
  // virtual list requires a forced reset to scroll position when picked up and dropped in same place
75
75
  (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 || _this$container$curre.restoreScrollPosition();
76
76
  }
77
- handleSessionOpened(_ref) {
77
+ handleSessionOpened(session, _ref) {
78
78
  var {
79
- session,
80
79
  language,
81
80
  sessionId
82
81
  } = _ref;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryPanel.js","names":["React","Component","connect","ContextActions","CommandHistory","SHORTCUTS","Log","getCommandHistoryStorage","assertNotNull","Pending","ConsoleEvent","NotebookEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","CommandHistoryPanel","handleError","error","constructor","props","_defineProperty","handleFocusHistory","bind","handleSessionOpened","handleSessionClosed","handleShow","handleSendToConsole","handleSendToNotebook","container","createRef","pending","session","sessionId","language","state","panelState","contextActions","action","shortcut","COMMAND_HISTORY","FOCUS_HISTORY","componentDidMount","glEventHub","on","loadTable","componentWillUnmount","off","cancel","current","focus","_this$container$curre","restoreScrollPosition","_ref","setState","undefined","table","settings","forceNewNotebook","arguments","length","debug","emit","CREATE_NOTEBOOK","SEND_TO_NOTEBOOK","command","execute","SEND_COMMAND","commandHistoryStorage","add","getTable","Date","now","resolved","close","then","catch","render","glContainer","className","componentPanel","onSessionOpen","onSessionClose","onShow","children","ref","sendToNotebook","sendToConsole","actions","mapStateToProps","ownProps","sessionWrapper","localDashboardId","config","sessionConfig","type","id","ConnectedCommandHistoryPanel","forwardRef"],"sources":["../../src/panels/CommandHistoryPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport { type ContextAction, ContextActions } from '@deephaven/components';\nimport {\n CommandHistory,\n type CommandHistoryStorage,\n SHORTCUTS,\n type CommandHistorySettings,\n type CommandHistoryTable,\n} from '@deephaven/console';\nimport { type DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, type RootState } from '@deephaven/redux';\nimport { assertNotNull, Pending } from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent, NotebookEvent } from '../events';\nimport { type CoreConsoleSession } from '../ConsoleEvents';\nimport './CommandHistoryPanel.scss';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('CommandHistoryPanel');\n\ninterface CommandHistoryPanelProps extends DashboardPanelProps {\n // eslint-disable-next-line react/no-unused-prop-types\n panelState?: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryPanelState {\n panelState: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n contextActions: ContextAction[];\n table?: CommandHistoryTable;\n}\n\nclass CommandHistoryPanel extends Component<\n CommandHistoryPanelProps,\n CommandHistoryPanelState\n> {\n static COMPONENT = 'CommandHistoryPanel';\n\n static TITLE = 'Command History';\n\n static handleError(error: unknown): void {\n log.error(error);\n }\n\n constructor(props: CommandHistoryPanelProps) {\n super(props);\n\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSendToConsole = this.handleSendToConsole.bind(this);\n this.handleSendToNotebook = this.handleSendToNotebook.bind(this);\n\n this.container = React.createRef();\n this.pending = new Pending();\n\n const { session, sessionId, language } = props;\n\n this.state = {\n // eslint-disable-next-line react/no-unused-state\n panelState: {},\n session,\n sessionId,\n language,\n contextActions: [\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.COMMAND_HISTORY.FOCUS_HISTORY,\n },\n ],\n };\n }\n\n componentDidMount(): void {\n const { glEventHub, session } = this.props;\n glEventHub.on(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n if (session != null) {\n this.loadTable();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n glEventHub.off(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n\n this.pending.cancel();\n }\n\n container: RefObject<CommandHistory>;\n\n pending: Pending;\n\n handleFocusHistory(): void {\n if (this.container.current) {\n this.container.current.focus();\n }\n }\n\n handleShow(): void {\n // virtual list requires a forced reset to scroll position when picked up and dropped in same place\n this.container.current?.restoreScrollPosition();\n }\n\n handleSessionOpened({\n session,\n language,\n sessionId,\n }: CoreConsoleSession): void {\n this.setState(\n {\n session,\n sessionId,\n language,\n },\n () => {\n this.loadTable();\n }\n );\n }\n\n handleSessionClosed(): void {\n this.pending.cancel();\n this.setState({\n session: undefined,\n language: undefined,\n table: undefined,\n });\n }\n\n handleSendToNotebook(\n settings: CommandHistorySettings,\n forceNewNotebook = false\n ): void {\n const { session, language } = this.state;\n log.debug('handleSendToNotebook', session, settings);\n if (!session) {\n log.error('Session is not connected.');\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n forceNewNotebook\n ? NotebookEvent.CREATE_NOTEBOOK\n : NotebookEvent.SEND_TO_NOTEBOOK,\n session,\n language,\n settings\n );\n }\n\n handleSendToConsole(command: string, focus = true, execute = false): void {\n log.debug('handleSendToConsole', command);\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, focus, execute);\n }\n\n loadTable(): void {\n const { commandHistoryStorage } = this.props;\n const { language, sessionId } = this.state;\n assertNotNull(language);\n assertNotNull(sessionId);\n this.pending\n .add(\n commandHistoryStorage.getTable(language, sessionId, Date.now()),\n resolved => resolved.close()\n )\n .then(table => {\n this.setState({ table });\n })\n .catch(CommandHistoryPanel.handleError);\n }\n\n render(): JSX.Element {\n const { glContainer, glEventHub, commandHistoryStorage } = this.props;\n const { language, contextActions, table } = this.state;\n return (\n <Panel\n className=\"command-history-pane\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n {!table && (\n <div className=\"command-history-disconnected-message\">\n Waiting for console connection\n </div>\n )}\n {table && language != null && (\n <>\n <CommandHistory\n ref={this.container}\n language={language}\n sendToNotebook={this.handleSendToNotebook}\n sendToConsole={this.handleSendToConsole}\n table={table}\n commandHistoryStorage={commandHistoryStorage}\n />\n <ContextActions actions={contextActions} />\n </>\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n CommandHistoryPanelProps,\n 'commandHistoryStorage' | 'language' | 'session' | 'sessionId'\n> => {\n const commandHistoryStorage = getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage;\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const { type: language, id: sessionId } = sessionConfig ?? {};\n\n return {\n commandHistoryStorage,\n language,\n session,\n sessionId,\n };\n};\n\nconst ConnectedCommandHistoryPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(CommandHistoryPanel);\n\nexport default ConnectedCommandHistoryPanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CommandHistoryPanel.js","names":["React","Component","connect","ContextActions","CommandHistory","SHORTCUTS","Log","getCommandHistoryStorage","assertNotNull","Pending","ConsoleEvent","NotebookEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","CommandHistoryPanel","handleError","error","constructor","props","_defineProperty","handleFocusHistory","bind","handleSessionOpened","handleSessionClosed","handleShow","handleSendToConsole","handleSendToNotebook","container","createRef","pending","session","sessionId","language","state","panelState","contextActions","action","shortcut","COMMAND_HISTORY","FOCUS_HISTORY","componentDidMount","glEventHub","on","loadTable","componentWillUnmount","off","cancel","current","focus","_this$container$curre","restoreScrollPosition","_ref","setState","undefined","table","settings","forceNewNotebook","arguments","length","debug","emit","CREATE_NOTEBOOK","SEND_TO_NOTEBOOK","command","execute","SEND_COMMAND","commandHistoryStorage","add","getTable","Date","now","resolved","close","then","catch","render","glContainer","className","componentPanel","onSessionOpen","onSessionClose","onShow","children","ref","sendToNotebook","sendToConsole","actions","mapStateToProps","ownProps","sessionWrapper","localDashboardId","config","sessionConfig","type","id","ConnectedCommandHistoryPanel","forwardRef"],"sources":["../../src/panels/CommandHistoryPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport { type ContextAction, ContextActions } from '@deephaven/components';\nimport {\n CommandHistory,\n type CommandHistoryStorage,\n SHORTCUTS,\n type CommandHistorySettings,\n type CommandHistoryTable,\n} from '@deephaven/console';\nimport { type DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, type RootState } from '@deephaven/redux';\nimport { assertNotNull, Pending } from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent, NotebookEvent } from '../events';\nimport './CommandHistoryPanel.scss';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('CommandHistoryPanel');\n\ninterface CommandHistoryPanelProps extends DashboardPanelProps {\n // eslint-disable-next-line react/no-unused-prop-types\n panelState?: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryPanelState {\n panelState: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n contextActions: ContextAction[];\n table?: CommandHistoryTable;\n}\n\nclass CommandHistoryPanel extends Component<\n CommandHistoryPanelProps,\n CommandHistoryPanelState\n> {\n static COMPONENT = 'CommandHistoryPanel';\n\n static TITLE = 'Command History';\n\n static handleError(error: unknown): void {\n log.error(error);\n }\n\n constructor(props: CommandHistoryPanelProps) {\n super(props);\n\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSendToConsole = this.handleSendToConsole.bind(this);\n this.handleSendToNotebook = this.handleSendToNotebook.bind(this);\n\n this.container = React.createRef();\n this.pending = new Pending();\n\n const { session, sessionId, language } = props;\n\n this.state = {\n // eslint-disable-next-line react/no-unused-state\n panelState: {},\n session,\n sessionId,\n language,\n contextActions: [\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.COMMAND_HISTORY.FOCUS_HISTORY,\n },\n ],\n };\n }\n\n componentDidMount(): void {\n const { glEventHub, session } = this.props;\n glEventHub.on(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n if (session != null) {\n this.loadTable();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n glEventHub.off(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n\n this.pending.cancel();\n }\n\n container: RefObject<CommandHistory>;\n\n pending: Pending;\n\n handleFocusHistory(): void {\n if (this.container.current) {\n this.container.current.focus();\n }\n }\n\n handleShow(): void {\n // virtual list requires a forced reset to scroll position when picked up and dropped in same place\n this.container.current?.restoreScrollPosition();\n }\n\n handleSessionOpened(\n session: dh.IdeSession,\n { language, sessionId }: { language: string; sessionId: string }\n ): void {\n this.setState(\n {\n session,\n sessionId,\n language,\n },\n () => {\n this.loadTable();\n }\n );\n }\n\n handleSessionClosed(): void {\n this.pending.cancel();\n this.setState({\n session: undefined,\n language: undefined,\n table: undefined,\n });\n }\n\n handleSendToNotebook(\n settings: CommandHistorySettings,\n forceNewNotebook = false\n ): void {\n const { session, language } = this.state;\n log.debug('handleSendToNotebook', session, settings);\n if (!session) {\n log.error('Session is not connected.');\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n forceNewNotebook\n ? NotebookEvent.CREATE_NOTEBOOK\n : NotebookEvent.SEND_TO_NOTEBOOK,\n session,\n language,\n settings\n );\n }\n\n handleSendToConsole(command: string, focus = true, execute = false): void {\n log.debug('handleSendToConsole', command);\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, focus, execute);\n }\n\n loadTable(): void {\n const { commandHistoryStorage } = this.props;\n const { language, sessionId } = this.state;\n assertNotNull(language);\n assertNotNull(sessionId);\n this.pending\n .add(\n commandHistoryStorage.getTable(language, sessionId, Date.now()),\n resolved => resolved.close()\n )\n .then(table => {\n this.setState({ table });\n })\n .catch(CommandHistoryPanel.handleError);\n }\n\n render(): JSX.Element {\n const { glContainer, glEventHub, commandHistoryStorage } = this.props;\n const { language, contextActions, table } = this.state;\n return (\n <Panel\n className=\"command-history-pane\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n {!table && (\n <div className=\"command-history-disconnected-message\">\n Waiting for console connection\n </div>\n )}\n {table && language != null && (\n <>\n <CommandHistory\n ref={this.container}\n language={language}\n sendToNotebook={this.handleSendToNotebook}\n sendToConsole={this.handleSendToConsole}\n table={table}\n commandHistoryStorage={commandHistoryStorage}\n />\n <ContextActions actions={contextActions} />\n </>\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n CommandHistoryPanelProps,\n 'commandHistoryStorage' | 'language' | 'session' | 'sessionId'\n> => {\n const commandHistoryStorage = getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage;\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const { type: language, id: sessionId } = sessionConfig ?? {};\n\n return {\n commandHistoryStorage,\n language,\n session,\n sessionId,\n };\n};\n\nconst ConnectedCommandHistoryPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(CommandHistoryPanel);\n\nexport default ConnectedCommandHistoryPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -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":"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"}
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.emit(PanelEvent.CLOSE, id);
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 panelId = this.getItemId(title);
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('openWidget', openOptions);
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.emit(PanelEvent.CLOSE, panelId);
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":[]}
@@ -1,10 +1,12 @@
1
1
  import { type BasePanelProps } from '@deephaven/dashboard';
2
2
  import type { dh } from '@deephaven/jsapi-types';
3
- import { type CoreConsoleSession } from '../ConsoleEvents';
4
3
  export type CorePanelProps = BasePanelProps & {
5
4
  onClearAllFilters?: (...args: unknown[]) => void;
6
5
  onSessionClose?: (session: dh.IdeSession) => void;
7
- onSessionOpen?: (session: CoreConsoleSession) => void;
6
+ onSessionOpen?: (session: dh.IdeSession, { language, sessionId }: {
7
+ language: string;
8
+ sessionId: string;
9
+ }) => void;
8
10
  };
9
11
  declare const XCorePanel: import("@deephaven/components").XComponentType<CorePanelProps>;
10
12
  export default XCorePanel;
@@ -1 +1 @@
1
- {"version":3,"file":"CorePanel.d.ts","sourceRoot":"","sources":["../../src/panels/CorePanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACvD,CAAC;AAqEF,QAAA,MAAM,UAAU,gEAA8B,CAAC;AAE/C,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CorePanel.d.ts","sourceRoot":"","sources":["../../src/panels/CorePanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAC7D,IAAI,CAAC;CACX,CAAC;AA8DF,QAAA,MAAM,UAAU,gEAA8B,CAAC;AAE/C,eAAe,UAAU,CAAC"}