@deephaven/dashboard-core-plugins 0.9.1-js-plugin-big-display.14 → 0.9.2-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/ChartPlugin.d.ts +2 -2
  2. package/dist/ChartPlugin.d.ts.map +1 -1
  3. package/dist/ChartPlugin.js +5 -4
  4. package/dist/ChartPlugin.js.map +1 -1
  5. package/dist/ConsolePlugin.d.ts +2 -1
  6. package/dist/ConsolePlugin.d.ts.map +1 -1
  7. package/dist/ConsolePlugin.js +8 -7
  8. package/dist/ConsolePlugin.js.map +1 -1
  9. package/dist/FilterPlugin.d.ts +2 -1
  10. package/dist/FilterPlugin.d.ts.map +1 -1
  11. package/dist/FilterPlugin.js +10 -9
  12. package/dist/FilterPlugin.js.map +1 -1
  13. package/dist/GridPlugin.d.ts +4 -2
  14. package/dist/GridPlugin.d.ts.map +1 -1
  15. package/dist/GridPlugin.js +9 -6
  16. package/dist/GridPlugin.js.map +1 -1
  17. package/dist/LinkerPlugin.d.ts +2 -1
  18. package/dist/LinkerPlugin.d.ts.map +1 -1
  19. package/dist/LinkerPlugin.js +4 -2
  20. package/dist/LinkerPlugin.js.map +1 -1
  21. package/dist/MarkdownPlugin.d.ts +7 -1
  22. package/dist/MarkdownPlugin.d.ts.map +1 -1
  23. package/dist/MarkdownPlugin.js +6 -5
  24. package/dist/MarkdownPlugin.js.map +1 -1
  25. package/dist/PandasPlugin.d.ts +2 -2
  26. package/dist/PandasPlugin.d.ts.map +1 -1
  27. package/dist/PandasPlugin.js +47 -5
  28. package/dist/PandasPlugin.js.map +1 -1
  29. package/dist/events/index.d.ts +0 -1
  30. package/dist/events/index.js +0 -1
  31. package/dist/events/index.js.map +1 -1
  32. package/dist/index.d.ts +0 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +0 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/panels/ConsolePanel.d.ts +4 -4
  37. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  38. package/dist/panels/ConsolePanel.js +55 -65
  39. package/dist/panels/ConsolePanel.js.map +1 -1
  40. package/dist/panels/FilterSetManager.js +3 -4
  41. package/dist/panels/FilterSetManager.js.map +1 -1
  42. package/dist/panels/FilterSetManagerPanel.d.ts +1 -1
  43. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  44. package/dist/panels/FilterSetManagerPanel.js +3 -20
  45. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  46. package/dist/panels/IrisGridPanel.d.ts +4 -1
  47. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  48. package/dist/panels/IrisGridPanel.js +23 -7
  49. package/dist/panels/IrisGridPanel.js.map +1 -1
  50. package/dist/panels/MarkdownNotebook.css +106 -0
  51. package/dist/panels/MarkdownNotebook.css.map +1 -0
  52. package/dist/panels/MarkdownNotebook.d.ts +41 -0
  53. package/dist/panels/MarkdownNotebook.d.ts.map +1 -0
  54. package/dist/panels/MarkdownNotebook.js +254 -0
  55. package/dist/panels/MarkdownNotebook.js.map +1 -0
  56. package/dist/panels/NotebookPanel.d.ts +14 -0
  57. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  58. package/dist/panels/NotebookPanel.js +124 -32
  59. package/dist/panels/NotebookPanel.js.map +1 -1
  60. package/dist/panels/index.d.ts +0 -1
  61. package/dist/panels/index.js +0 -1
  62. package/dist/panels/index.js.map +1 -1
  63. package/package.json +20 -23
  64. package/dist/MatPlotLibPlugin.d.ts +0 -5
  65. package/dist/MatPlotLibPlugin.d.ts.map +0 -1
  66. package/dist/MatPlotLibPlugin.js +0 -47
  67. package/dist/MatPlotLibPlugin.js.map +0 -1
  68. package/dist/events/MatPlotLibEvent.d.ts +0 -5
  69. package/dist/events/MatPlotLibEvent.d.ts.map +0 -1
  70. package/dist/events/MatPlotLibEvent.js +0 -8
  71. package/dist/events/MatPlotLibEvent.js.map +0 -1
  72. package/dist/panels/MatPlotLibPanel.css +0 -11
  73. package/dist/panels/MatPlotLibPanel.css.map +0 -1
  74. package/dist/panels/MatPlotLibPanel.d.ts +0 -22
  75. package/dist/panels/MatPlotLibPanel.d.ts.map +0 -1
  76. package/dist/panels/MatPlotLibPanel.js +0 -72
  77. package/dist/panels/MatPlotLibPanel.js.map +0 -1
@@ -1,5 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { DashboardPluginComponentProps } from '@deephaven/dashboard';
3
- export declare const MarkdownPlugin: ({ id, layout, panelManager, registerComponent, }: DashboardPluginComponentProps) => JSX.Element;
3
+ export declare type MarkdownPluginProps = Partial<DashboardPluginComponentProps>;
4
+ export declare type MarkdownComponentState = {
5
+ panelState?: {
6
+ content: string;
7
+ } | null;
8
+ };
9
+ export declare const MarkdownPlugin: (props: MarkdownPluginProps) => JSX.Element;
4
10
  export default MarkdownPlugin;
5
11
  //# sourceMappingURL=MarkdownPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownPlugin.d.ts","sourceRoot":"","sources":["../src/MarkdownPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,6BAA6B,EAK9B,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,cAAc,qDAKxB,6BAA6B,KAAG,WAkFlC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"MarkdownPlugin.d.ts","sourceRoot":"","sources":["../src/MarkdownPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAK9B,MAAM,sBAAsB,CAAC;AAK9B,oBAAY,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAEzE,oBAAY,sBAAsB,GAAG;IACnC,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,mBAAmB,KAAG,WAoF3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,25 +1,26 @@
1
1
  import React, { useCallback, useEffect } from 'react';
2
2
  import shortid from 'shortid';
3
- import { dehydrate, hydrate, LayoutUtils, useListener } from '@deephaven/dashboard';
3
+ import { assertIsDashboardPluginProps, dehydrate, hydrate, LayoutUtils, useListener } from '@deephaven/dashboard';
4
4
  import { MarkdownPanel } from "./panels/index.js";
5
5
  import MarkdownUtils from "./controls/markdown/MarkdownUtils.js";
6
6
  import MarkdownEvent from "./events/MarkdownEvent.js";
7
- export var MarkdownPlugin = _ref => {
7
+ export var MarkdownPlugin = props => {
8
+ assertIsDashboardPluginProps(props);
8
9
  var {
9
10
  id,
10
11
  layout,
11
12
  panelManager,
12
13
  registerComponent
13
- } = _ref;
14
+ } = props;
14
15
  var dehydrateMarkdown = useCallback(config => {
15
16
  var {
16
17
  title,
17
18
  componentState,
18
- props
19
+ props: configProps
19
20
  } = config;
20
21
  var {
21
22
  panelState = null
22
- } = props;
23
+ } = configProps;
23
24
 
24
25
  if (componentState) {
25
26
  ({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/MarkdownPlugin.tsx"],"names":["React","useCallback","useEffect","shortid","dehydrate","hydrate","LayoutUtils","useListener","MarkdownPanel","MarkdownUtils","MarkdownEvent","MarkdownPlugin","id","layout","panelManager","registerComponent","dehydrateMarkdown","config","title","componentState","props","panelState","content","length","DEFAULT_CONTENT","handleOpen","metadata","panelId","generate","focusElement","DEFAULT_FOCUS_SELECTOR","createNewStack","dragEvent","openedMarkdowns","getOpenedPanelConfigsOfType","COMPONENT","closedMarkdowns","getClosedPanelConfigsOfType","usedTitles","map","markdown","panelTitle","getNewMarkdownTitle","type","component","localDashboardId","root","openComponent","cleanups","forEach","cleanup","eventHub","OPEN"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport shortid from 'shortid';\nimport {\n DashboardPluginComponentProps,\n dehydrate,\n hydrate,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { MarkdownPanel } from './panels';\nimport MarkdownUtils from './controls/markdown/MarkdownUtils';\nimport MarkdownEvent from './events/MarkdownEvent';\n\ntype MarkdownComponentState = {\n panelState?: { content: string } | null;\n};\n\nexport const MarkdownPlugin = ({\n id,\n layout,\n panelManager,\n registerComponent,\n}: DashboardPluginComponentProps): JSX.Element => {\n const dehydrateMarkdown = useCallback(config => {\n const { title, componentState, props } = config;\n let { panelState = null }: MarkdownComponentState = props;\n if (componentState) {\n ({ panelState = null } = componentState as MarkdownComponentState);\n }\n if (\n !title ||\n !panelState ||\n !panelState.content ||\n panelState.content.length === 0 ||\n panelState.content === MarkdownUtils.DEFAULT_CONTENT\n ) {\n // We don't want to save it if there's no content\n return null;\n }\n return dehydrate(config);\n }, []);\n\n const handleOpen = useCallback(\n ({\n title = '',\n metadata = {},\n id: panelId = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n } = {}) => {\n const openedMarkdowns = panelManager.getOpenedPanelConfigsOfType(\n MarkdownPanel.COMPONENT\n );\n const closedMarkdowns = panelManager.getClosedPanelConfigsOfType(\n MarkdownPanel.COMPONENT\n );\n const usedTitles = openedMarkdowns.map(markdown => markdown.title ?? '');\n const panelTitle = title || MarkdownUtils.getNewMarkdownTitle(usedTitles);\n const content =\n closedMarkdowns.length > 0 ? null : MarkdownUtils.DEFAULT_CONTENT;\n const config = {\n type: 'react-component',\n component: MarkdownPanel.COMPONENT,\n props: {\n id: panelId,\n metadata,\n panelState: { content },\n localDashboardId: id,\n },\n title: panelTitle,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [id, layout, panelManager]\n );\n\n useEffect(() => {\n const cleanups = [\n registerComponent(\n MarkdownPanel.COMPONENT,\n MarkdownPanel,\n hydrate,\n dehydrateMarkdown\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [dehydrateMarkdown, registerComponent]);\n\n useListener(layout.eventHub, MarkdownEvent.OPEN, handleOpen);\n\n return <></>;\n};\n\nexport default MarkdownPlugin;\n"],"file":"MarkdownPlugin.js"}
1
+ {"version":3,"sources":["../src/MarkdownPlugin.tsx"],"names":["React","useCallback","useEffect","shortid","assertIsDashboardPluginProps","dehydrate","hydrate","LayoutUtils","useListener","MarkdownPanel","MarkdownUtils","MarkdownEvent","MarkdownPlugin","props","id","layout","panelManager","registerComponent","dehydrateMarkdown","config","title","componentState","configProps","panelState","content","length","DEFAULT_CONTENT","handleOpen","metadata","panelId","generate","focusElement","DEFAULT_FOCUS_SELECTOR","createNewStack","dragEvent","openedMarkdowns","getOpenedPanelConfigsOfType","COMPONENT","closedMarkdowns","getClosedPanelConfigsOfType","usedTitles","map","markdown","panelTitle","getNewMarkdownTitle","type","component","localDashboardId","root","openComponent","cleanups","forEach","cleanup","eventHub","OPEN"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n dehydrate,\n hydrate,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { MarkdownPanel } from './panels';\nimport MarkdownUtils from './controls/markdown/MarkdownUtils';\nimport MarkdownEvent from './events/MarkdownEvent';\n\nexport type MarkdownPluginProps = Partial<DashboardPluginComponentProps>;\n\nexport type MarkdownComponentState = {\n panelState?: { content: string } | null;\n};\n\nexport const MarkdownPlugin = (props: MarkdownPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id, layout, panelManager, registerComponent } = props;\n const dehydrateMarkdown = useCallback(config => {\n const { title, componentState, props: configProps } = config;\n let { panelState = null }: MarkdownComponentState = configProps;\n if (componentState) {\n ({ panelState = null } = componentState as MarkdownComponentState);\n }\n if (\n !title ||\n !panelState ||\n !panelState.content ||\n panelState.content.length === 0 ||\n panelState.content === MarkdownUtils.DEFAULT_CONTENT\n ) {\n // We don't want to save it if there's no content\n return null;\n }\n return dehydrate(config);\n }, []);\n\n const handleOpen = useCallback(\n ({\n title = '',\n metadata = {},\n id: panelId = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n } = {}) => {\n const openedMarkdowns = panelManager.getOpenedPanelConfigsOfType(\n MarkdownPanel.COMPONENT\n );\n const closedMarkdowns = panelManager.getClosedPanelConfigsOfType(\n MarkdownPanel.COMPONENT\n );\n const usedTitles = openedMarkdowns.map(markdown => markdown.title ?? '');\n const panelTitle = title || MarkdownUtils.getNewMarkdownTitle(usedTitles);\n const content =\n closedMarkdowns.length > 0 ? null : MarkdownUtils.DEFAULT_CONTENT;\n const config = {\n type: 'react-component',\n component: MarkdownPanel.COMPONENT,\n props: {\n id: panelId,\n metadata,\n panelState: { content },\n localDashboardId: id,\n },\n title: panelTitle,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [id, layout, panelManager]\n );\n\n useEffect(() => {\n const cleanups = [\n registerComponent(\n MarkdownPanel.COMPONENT,\n MarkdownPanel,\n hydrate,\n dehydrateMarkdown\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [dehydrateMarkdown, registerComponent]);\n\n useListener(layout.eventHub, MarkdownEvent.OPEN, handleOpen);\n\n return <></>;\n};\n\nexport default MarkdownPlugin;\n"],"file":"MarkdownPlugin.js"}
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { DashboardPluginComponentProps, PanelHydrateFunction } from '@deephaven/dashboard';
3
- export declare type PandasPluginComponentProps = DashboardPluginComponentProps & {
3
+ export declare type PandasPluginProps = Partial<DashboardPluginComponentProps> & {
4
4
  hydrate: PanelHydrateFunction;
5
5
  };
6
- export declare const PandasPlugin: ({ hydrate, registerComponent, }: PandasPluginComponentProps) => JSX.Element;
6
+ export declare const PandasPlugin: (props: PandasPluginProps) => JSX.Element;
7
7
  export default PandasPlugin;
8
8
  //# sourceMappingURL=PandasPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,6BAA6B,EAE7B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAG9B,oBAAY,0BAA0B,GAAG,6BAA6B,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,YAAY,oCAGtB,0BAA0B,KAAG,WAY/B,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,6BAA6B,EAE7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAM9B,oBAAY,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAqDvD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,17 +1,59 @@
1
- import React, { useEffect } from 'react';
2
- import { DashboardUtils } from '@deephaven/dashboard';
1
+ import React, { useCallback, useEffect } from 'react';
2
+ import { assertIsDashboardPluginProps, LayoutUtils, useListener } from '@deephaven/dashboard';
3
+ import shortid from 'shortid';
3
4
  import { PandasPanel } from "./panels/index.js";
4
- export var PandasPlugin = _ref => {
5
+ import { PandasEvent } from "./events/index.js";
6
+ export var PandasPlugin = props => {
7
+ assertIsDashboardPluginProps(props);
5
8
  var {
6
- hydrate = DashboardUtils.hydrate,
9
+ hydrate,
10
+ id,
11
+ layout,
7
12
  registerComponent
8
- } = _ref;
13
+ } = props;
14
+ var handleOpen = useCallback(function (title, makeModel) {
15
+ var metadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
16
+ var panelId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : shortid.generate();
17
+ var dragEvent = arguments.length > 4 ? arguments[4] : undefined;
18
+ var config = {
19
+ type: 'react-component',
20
+ component: PandasPanel.COMPONENT,
21
+ props: {
22
+ localDashboardId: id,
23
+ id: panelId,
24
+ metadata,
25
+ makeModel
26
+ },
27
+ title,
28
+ id: panelId
29
+ };
30
+ var {
31
+ root
32
+ } = layout;
33
+ LayoutUtils.openComponent({
34
+ root,
35
+ config,
36
+ dragEvent
37
+ });
38
+ }, [id, layout]);
39
+ var handleClose = useCallback(panelId => {
40
+ var config = {
41
+ component: PandasPanel.COMPONENT,
42
+ id: panelId
43
+ };
44
+ var {
45
+ root
46
+ } = layout;
47
+ LayoutUtils.closeComponent(root, config);
48
+ }, [layout]);
9
49
  useEffect(() => {
10
50
  var cleanups = [registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate)];
11
51
  return () => {
12
52
  cleanups.forEach(cleanup => cleanup());
13
53
  };
14
54
  }, [hydrate, registerComponent]);
55
+ useListener(layout.eventHub, PandasEvent.OPEN, handleOpen);
56
+ useListener(layout.eventHub, PandasEvent.CLOSE, handleClose);
15
57
  return /*#__PURE__*/React.createElement(React.Fragment, null);
16
58
  };
17
59
  export default PandasPlugin;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/PandasPlugin.tsx"],"names":["React","useEffect","DashboardUtils","PandasPanel","PandasPlugin","hydrate","registerComponent","cleanups","COMPONENT","forEach","cleanup"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAEEC,cAFF,QAIO,sBAJP;SAKSC,W;AAMT,OAAO,IAAMC,YAAY,GAAG,QAGmB;AAAA,MAHlB;AAC3BC,IAAAA,OAAO,GAAGH,cAAc,CAACG,OADE;AAE3BC,IAAAA;AAF2B,GAGkB;AAC7CL,EAAAA,SAAS,CAAC,MAAM;AACd,QAAMM,QAAQ,GAAG,CACfD,iBAAiB,CAACH,WAAW,CAACK,SAAb,EAAwBL,WAAxB,EAAqCE,OAArC,CADF,CAAjB;AAIA,WAAO,MAAM;AACXE,MAAAA,QAAQ,CAACE,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;AACD,KAFD;AAGD,GARQ,EAQN,CAACL,OAAD,EAAUC,iBAAV,CARM,CAAT;AAUA,sBAAO,yCAAP;AACD,CAfM;AAiBP,eAAeF,YAAf","sourcesContent":["import React, { useEffect } from 'react';\nimport {\n DashboardPluginComponentProps,\n DashboardUtils,\n PanelHydrateFunction,\n} from '@deephaven/dashboard';\nimport { PandasPanel } from './panels';\n\nexport type PandasPluginComponentProps = DashboardPluginComponentProps & {\n hydrate: PanelHydrateFunction;\n};\n\nexport const PandasPlugin = ({\n hydrate = DashboardUtils.hydrate,\n registerComponent,\n}: PandasPluginComponentProps): JSX.Element => {\n useEffect(() => {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [hydrate, registerComponent]);\n\n return <></>;\n};\n\nexport default PandasPlugin;\n"],"file":"PandasPlugin.js"}
1
+ {"version":3,"sources":["../src/PandasPlugin.tsx"],"names":["React","useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","useListener","shortid","PandasPanel","PandasEvent","PandasPlugin","props","hydrate","id","layout","registerComponent","handleOpen","title","makeModel","metadata","panelId","generate","dragEvent","config","type","component","COMPONENT","localDashboardId","root","openComponent","handleClose","closeComponent","cleanups","forEach","cleanup","eventHub","OPEN","CLOSE"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,WAA3B,EAAwCC,SAAxC,QAAyD,OAAzD;AACA,SACEC,4BADF,EAGEC,WAHF,EAKEC,WALF,QAMO,sBANP;AAQA,OAAOC,OAAP,MAAoB,SAApB;SACSC,W;SACAC,W;AAMT,OAAO,IAAMC,YAAY,GAAIC,KAAD,IAA2C;AACrEP,EAAAA,4BAA4B,CAACO,KAAD,CAA5B;AACA,MAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,EAAX;AAAeC,IAAAA,MAAf;AAAuBC,IAAAA;AAAvB,MAA6CJ,KAAnD;AACA,MAAMK,UAAU,GAAGd,WAAW,CAC5B,UACEe,KADF,EAEEC,SAFF,EAMK;AAAA,QAHHC,QAGG,uEAHiC,EAGjC;AAAA,QAFHC,OAEG,uEAFOb,OAAO,CAACc,QAAR,EAEP;AAAA,QADHC,SACG;AACH,QAAMC,MAAM,GAAG;AACbC,MAAAA,IAAI,EAAE,iBADO;AAEbC,MAAAA,SAAS,EAAEjB,WAAW,CAACkB,SAFV;AAGbf,MAAAA,KAAK,EAAE;AACLgB,QAAAA,gBAAgB,EAAEd,EADb;AAELA,QAAAA,EAAE,EAAEO,OAFC;AAGLD,QAAAA,QAHK;AAILD,QAAAA;AAJK,OAHM;AASbD,MAAAA,KATa;AAUbJ,MAAAA,EAAE,EAAEO;AAVS,KAAf;AAaA,QAAM;AAAEQ,MAAAA;AAAF,QAAWd,MAAjB;AACAT,IAAAA,WAAW,CAACwB,aAAZ,CAA0B;AAAED,MAAAA,IAAF;AAAQL,MAAAA,MAAR;AAAgBD,MAAAA;AAAhB,KAA1B;AACD,GAvB2B,EAwB5B,CAACT,EAAD,EAAKC,MAAL,CAxB4B,CAA9B;AA2BA,MAAMgB,WAAW,GAAG5B,WAAW,CAC5BkB,OAAD,IAAqB;AACnB,QAAMG,MAAM,GAAG;AAAEE,MAAAA,SAAS,EAAEjB,WAAW,CAACkB,SAAzB;AAAoCb,MAAAA,EAAE,EAAEO;AAAxC,KAAf;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAWd,MAAjB;AACAT,IAAAA,WAAW,CAAC0B,cAAZ,CAA2BH,IAA3B,EAAiCL,MAAjC;AACD,GAL4B,EAM7B,CAACT,MAAD,CAN6B,CAA/B;AASAX,EAAAA,SAAS,CAAC,MAAM;AACd,QAAM6B,QAAQ,GAAG,CACfjB,iBAAiB,CAACP,WAAW,CAACkB,SAAb,EAAwBlB,WAAxB,EAAqCI,OAArC,CADF,CAAjB;AAIA,WAAO,MAAM;AACXoB,MAAAA,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;AACD,KAFD;AAGD,GARQ,EAQN,CAACtB,OAAD,EAAUG,iBAAV,CARM,CAAT;AAUAT,EAAAA,WAAW,CAACQ,MAAM,CAACqB,QAAR,EAAkB1B,WAAW,CAAC2B,IAA9B,EAAoCpB,UAApC,CAAX;AACAV,EAAAA,WAAW,CAACQ,MAAM,CAACqB,QAAR,EAAkB1B,WAAW,CAAC4B,KAA9B,EAAqCP,WAArC,CAAX;AAEA,sBAAO,yCAAP;AACD,CArDM;AAuDP,eAAepB,YAAf","sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModel } from '@deephaven/iris-grid';\nimport shortid from 'shortid';\nimport { PandasPanel } from './panels';\nimport { PandasEvent } from './events';\n\nexport type PandasPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction;\n};\n\nexport const PandasPlugin = (props: PandasPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { hydrate, id, layout, registerComponent } = props;\n const handleOpen = useCallback(\n (\n title: string,\n makeModel: () => IrisGridModel,\n metadata: Record<string, unknown> = {},\n panelId = shortid.generate(),\n dragEvent?: DragEvent\n ) => {\n const config = {\n type: 'react-component',\n component: PandasPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n const handleClose = useCallback(\n (panelId: string) => {\n const config = { component: PandasPanel.COMPONENT, id: panelId };\n const { root } = layout;\n LayoutUtils.closeComponent(root, config);\n },\n [layout]\n );\n\n useEffect(() => {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [hydrate, registerComponent]);\n\n useListener(layout.eventHub, PandasEvent.OPEN, handleOpen);\n useListener(layout.eventHub, PandasEvent.CLOSE, handleClose);\n\n return <></>;\n};\n\nexport default PandasPlugin;\n"],"file":"PandasPlugin.js"}
@@ -3,7 +3,6 @@ export { default as ConsoleEvent } from "./ConsoleEvent";
3
3
  export { default as InputFilterEvent } from "./InputFilterEvent";
4
4
  export { default as IrisGridEvent } from "./IrisGridEvent";
5
5
  export { default as MarkdownEvent } from "./MarkdownEvent";
6
- export { default as MatPlotLibEvent } from "./MatPlotLibEvent";
7
6
  export { default as NotebookEvent } from "./NotebookEvent";
8
7
  export { default as PandasEvent } from "./PandasEvent";
9
8
  export { default as TabEvent } from "./TabEvent";
@@ -3,7 +3,6 @@ export { default as ConsoleEvent } from "./ConsoleEvent.js";
3
3
  export { default as InputFilterEvent } from "./InputFilterEvent.js";
4
4
  export { default as IrisGridEvent } from "./IrisGridEvent.js";
5
5
  export { default as MarkdownEvent } from "./MarkdownEvent.js";
6
- export { default as MatPlotLibEvent } from "./MatPlotLibEvent.js";
7
6
  export { default as NotebookEvent } from "./NotebookEvent.js";
8
7
  export { default as PandasEvent } from "./PandasEvent.js";
9
8
  export { default as TabEvent } from "./TabEvent.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/index.js"],"names":["default","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","MatPlotLibEvent","NotebookEvent","PandasEvent","TabEvent"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,gB;SACXH,OAAO,IAAII,a;SACXJ,OAAO,IAAIK,a;SACXL,OAAO,IAAIM,e;SACXN,OAAO,IAAIO,a;SACXP,OAAO,IAAIQ,W;SACXR,OAAO,IAAIS,Q","sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as MatPlotLibEvent } from './MatPlotLibEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/events/index.js"],"names":["default","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","NotebookEvent","PandasEvent","TabEvent"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,gB;SACXH,OAAO,IAAII,a;SACXJ,OAAO,IAAIK,a;SACXL,OAAO,IAAIM,a;SACXN,OAAO,IAAIO,W;SACXP,OAAO,IAAIQ,Q","sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"file":"index.js"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,6 @@ export { default as FilterPlugin } from './FilterPlugin';
4
4
  export { default as GridPlugin } from './GridPlugin';
5
5
  export { default as LinkerPlugin } from './LinkerPlugin';
6
6
  export { default as MarkdownPlugin } from './MarkdownPlugin';
7
- export { default as MatPlotLibPlugin } from './MatPlotLibPlugin';
8
7
  export { default as PandasPlugin } from './PandasPlugin';
9
8
  export { default as ControlType } from './controls/ControlType';
10
9
  export { default as ToolType } from './linker/ToolType';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ export { default as FilterPlugin } from "./FilterPlugin.js";
4
4
  export { default as GridPlugin } from "./GridPlugin.js";
5
5
  export { default as LinkerPlugin } from "./LinkerPlugin.js";
6
6
  export { default as MarkdownPlugin } from "./MarkdownPlugin.js";
7
- export { default as MatPlotLibPlugin } from "./MatPlotLibPlugin.js";
8
7
  export { default as PandasPlugin } from "./PandasPlugin.js";
9
8
  export { default as ControlType } from "./controls/ControlType.js";
10
9
  export { default as ToolType } from "./linker/ToolType.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["default","ChartPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","MatPlotLibPlugin","PandasPlugin","ControlType","ToolType"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,a;SACXF,OAAO,IAAIG,Y;SACXH,OAAO,IAAII,U;SACXJ,OAAO,IAAIK,Y;SACXL,OAAO,IAAIM,c;SACXN,OAAO,IAAIO,gB;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,W;SACXT,OAAO,IAAIU,Q","sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MatPlotLibPlugin } from './MatPlotLibPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as ToolType } from './linker/ToolType';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["default","ChartPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","PandasPlugin","ControlType","ToolType"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,a;SACXF,OAAO,IAAIG,Y;SACXH,OAAO,IAAII,U;SACXJ,OAAO,IAAIK,Y;SACXL,OAAO,IAAIM,c;SACXN,OAAO,IAAIO,Y;SACXP,OAAO,IAAIQ,W;SACXR,OAAO,IAAIS,Q","sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as ToolType } from './linker/ToolType';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\n"],"file":"index.js"}
@@ -15,13 +15,13 @@ declare class ConsolePanel extends React.PureComponent<any, any, any> {
15
15
  handlePanelMount(panel: any): void;
16
16
  savePanelState(): void;
17
17
  consoleRef: React.RefObject<any>;
18
+ objectSubscriptionCleanup: any;
19
+ subscribeToFieldUpdates(): void;
18
20
  setItemId(name: any, id: any): void;
19
21
  getItemId(name: any, createIfNecessary?: boolean): any;
20
22
  openTable(object: any, session: any): void;
21
23
  openFigure(object: any, session: any): void;
22
24
  openPandas(object: any, session: any): void;
23
- openMatPlotLib(object: any, session: any): void;
24
- openJsonViewer(object: any, session: any): void;
25
25
  addCommand(command: any, focus?: boolean, execute?: boolean): void;
26
26
  /**
27
27
  * Close the disconnected panels from this session
@@ -59,14 +59,14 @@ declare namespace ConsolePanel {
59
59
  itemIds: PropTypes.Requireable<any[]>;
60
60
  }>>;
61
61
  const sessionWrapper: PropTypes.Validator<PropTypes.InferProps<{
62
- session: PropTypes.Requireable<PropTypes.InferProps<{
62
+ session: PropTypes.Validator<PropTypes.InferProps<{
63
63
  addEventListener: PropTypes.Validator<(...args: any[]) => any>;
64
64
  removeEventListener: PropTypes.Validator<(...args: any[]) => any>;
65
65
  onLogMessage: PropTypes.Requireable<(...args: any[]) => any>;
66
66
  getTable: PropTypes.Validator<(...args: any[]) => any>;
67
67
  runCode: PropTypes.Validator<(...args: any[]) => any>;
68
68
  }>>;
69
- config: PropTypes.Requireable<PropTypes.InferProps<{
69
+ config: PropTypes.Validator<PropTypes.InferProps<{
70
70
  type: PropTypes.Requireable<string>;
71
71
  id: PropTypes.Requireable<string>;
72
72
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.jsx"],"names":[],"mappings":";;AAoCA;IACE,yBAAkC;IAElC,qBAAyB;IAEzB,wBAkCC;IAsED,kCAGC;IAUD,oCAkBC;IAED,qCAKC;IAjCD,qBAEC;IAiCD,iDAOC;IAtCD,mBAEC;IArCD,sBAIC;IAED,uBAIC;IAED,mCAYC;IAoJD,uBASC;IAjPC,iCAAmC;IA0CrC,oCAMC;IAED,uDAQC;IA6ED,2CAaC;IAED,4CAWC;IAED,4CAaC;IAED,gDAWC;IAED,gDAeC;IAED,mEAEC;IAED;;;OAGG;IACH,gCAFW,OAAO,QAgBjB;IAaD,yBAEC;CA4DF"}
1
+ {"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.jsx"],"names":[],"mappings":";;AAiCA;IACE,yBAAkC;IAElC,qBAAyB;IAEzB,wBAqCC;IAuGD,kCAGC;IAUD,oCAaC;IAED,qCAKC;IA5BD,qBAEC;IA4BD,iDAOC;IAjCD,mBAEC;IArCD,sBAIC;IAED,uBAIC;IAED,mCAYC;IAiHD,uBASC;IAlPC,iCAAmC;IACnC,+BAAqC;IA8CvC,gCA6BC;IAED,oCAMC;IAED,uDAQC;IAwED,2CAaC;IAED,4CAWC;IAED,4CAaC;IAED,mEAEC;IAED;;;OAGG;IACH,gCAFW,OAAO,QAgBjB;IAaD,yBAEC;CAoDF"}
@@ -7,20 +7,18 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
7
7
  // Wrapper for the Console for use in a golden layout container
8
8
  // Will probably need to handle window popping out from golden layout here.
9
9
  import React, { PureComponent } from 'react';
10
- import { CSSTransition } from 'react-transition-group';
11
10
  import PropTypes from 'prop-types';
12
11
  import shortid from 'shortid';
13
12
  import debounce from 'lodash.debounce';
14
13
  import { connect } from 'react-redux';
15
14
  import { ChartModelFactory } from '@deephaven/chart';
16
- import { ThemeExport } from '@deephaven/components';
17
15
  import { Console, ConsoleConstants, ConsoleUtils } from '@deephaven/console';
18
16
  import { GLPropTypes, PanelEvent } from '@deephaven/dashboard';
19
17
  import { IrisGridModelFactory } from '@deephaven/iris-grid';
20
18
  import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
21
19
  import Log from '@deephaven/log';
22
20
  import { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';
23
- import { ChartEvent, ConsoleEvent, IrisGridEvent, MatPlotLibEvent, PandasEvent } from "../events/index.js";
21
+ import { ChartEvent, ConsoleEvent, IrisGridEvent, PandasEvent } from "../events/index.js";
24
22
  import "./ConsolePanel.css";
25
23
  import Panel from "./Panel.js";
26
24
  import { getDashboardSessionWrapper } from "../redux/index.js";
@@ -45,6 +43,7 @@ class ConsolePanel extends PureComponent {
45
43
  this.handlePanelMount = this.handlePanelMount.bind(this);
46
44
  this.savePanelState = debounce(this.savePanelState.bind(this), DEBOUNCE_PANEL_STATE_UPDATE);
47
45
  this.consoleRef = /*#__PURE__*/React.createRef();
46
+ this.objectSubscriptionCleanup = null;
48
47
  var {
49
48
  panelState: initialPanelState
50
49
  } = props;
@@ -58,6 +57,7 @@ class ConsolePanel extends PureComponent {
58
57
  this.state = {
59
58
  consoleSettings,
60
59
  itemIds: new Map(itemIds),
60
+ objectMap: new Map(),
61
61
  // eslint-disable-next-line react/no-unused-state
62
62
  panelState // Dehydrated panel state that can load this panel
63
63
 
@@ -72,6 +72,7 @@ class ConsolePanel extends PureComponent {
72
72
 
73
73
  this.closeDisconnectedPanels();
74
74
  glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);
75
+ this.subscribeToFieldUpdates();
75
76
  }
76
77
 
77
78
  componentDidUpdate(prevProps, prevState) {
@@ -91,13 +92,52 @@ class ConsolePanel extends PureComponent {
91
92
  } = this.props;
92
93
  this.savePanelState.flush();
93
94
  glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);
95
+ this.objectSubscriptionCleanup();
96
+ }
97
+
98
+ subscribeToFieldUpdates() {
99
+ var {
100
+ sessionWrapper
101
+ } = this.props;
102
+ var {
103
+ session
104
+ } = sessionWrapper;
105
+ this.objectSubscriptionCleanup = session.connection.subscribeToFieldUpdates(updates => {
106
+ log.debug('Got updates', updates);
107
+ this.setState(_ref => {
108
+ var {
109
+ objectMap
110
+ } = _ref;
111
+ var {
112
+ updated,
113
+ created,
114
+ removed
115
+ } = updates; // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.
116
+
117
+ var objectsToRemove = [...updated, ...removed];
118
+ var newObjectMap = new Map(objectMap);
119
+ objectsToRemove.forEach(toRemove => {
120
+ newObjectMap.delete(toRemove.name);
121
+ }); // Now add all the modified and updated widgets back in
122
+
123
+ var objectsToAdd = [...updated, ...created];
124
+ objectsToAdd.forEach(toAdd => {
125
+ if (toAdd.name) {
126
+ newObjectMap.set(toAdd.name, toAdd);
127
+ }
128
+ });
129
+ return {
130
+ objectMap: newObjectMap
131
+ };
132
+ });
133
+ });
94
134
  }
95
135
 
96
136
  setItemId(name, id) {
97
- this.setState(_ref => {
137
+ this.setState(_ref2 => {
98
138
  var {
99
139
  itemIds
100
- } = _ref;
140
+ } = _ref2;
101
141
  var newItemIds = new Map(itemIds);
102
142
  newItemIds.set(name, id);
103
143
  return {
@@ -177,7 +217,7 @@ class ConsolePanel extends PureComponent {
177
217
  } = sessionWrapper;
178
218
  var {
179
219
  type
180
- } = object; // TODO: Make this generic, and just emit an Open event with the type?
220
+ } = object;
181
221
 
182
222
  if (ConsoleUtils.isTableType(type)) {
183
223
  this.openTable(object, session);
@@ -185,10 +225,6 @@ class ConsolePanel extends PureComponent {
185
225
  this.openFigure(object, session);
186
226
  } else if (ConsoleUtils.isPandas(type)) {
187
227
  this.openPandas(object, session);
188
- } else if (ConsoleUtils.isMatPlotLib(type)) {
189
- this.openMatPlotLib(object, session);
190
- } else if (ConsoleUtils.isDeephavenPluginType(type)) {
191
- this.openJsonViewer(object, session);
192
228
  } else {
193
229
  log.error('Unknown object', object);
194
230
  }
@@ -230,7 +266,7 @@ class ConsolePanel extends PureComponent {
230
266
 
231
267
  var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
232
268
 
233
- log.debug('openTable', id);
269
+ log.debug('handleOpenTable', id);
234
270
  glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);
235
271
  }
236
272
 
@@ -265,51 +301,10 @@ class ConsolePanel extends PureComponent {
265
301
 
266
302
  var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
267
303
 
268
- log.debug('openPandas', id);
304
+ log.debug('handleOpenTable', id);
269
305
  glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);
270
306
  }
271
307
 
272
- openMatPlotLib(object, session) {
273
- var {
274
- name
275
- } = object;
276
- var id = this.getItemId(name);
277
- var metadata = {
278
- name
279
- };
280
- var {
281
- glEventHub
282
- } = this.props;
283
-
284
- var makeModel = () => session.getObject(object).then(response => response.getDataAsBase64());
285
-
286
- log.debug('openMatPlotLib', id);
287
- glEventHub.emit(MatPlotLibEvent.OPEN, name, makeModel, metadata, id);
288
- }
289
-
290
- openJsonViewer(object, session) {
291
- var {
292
- name
293
- } = object;
294
- var id = this.getItemId(name);
295
- var metadata = {
296
- name
297
- };
298
- var {
299
- glEventHub
300
- } = this.props;
301
-
302
- var makeModel = () => session.getObject(object);
303
-
304
- log.debug('openJsonViewer', id);
305
- glEventHub.emit('ServerWidgetEvent.OPEN', {
306
- name,
307
- makeModel,
308
- metadata,
309
- id
310
- });
311
- }
312
-
313
308
  addCommand(command) {
314
309
  var _this$consoleRef$curr;
315
310
 
@@ -381,7 +376,8 @@ class ConsolePanel extends PureComponent {
381
376
  } = this.props;
382
377
  var {
383
378
  consoleSettings,
384
- error
379
+ error,
380
+ objectMap
385
381
  } = this.state;
386
382
  var {
387
383
  config,
@@ -399,14 +395,7 @@ class ConsolePanel extends PureComponent {
399
395
  onShow: this.handleShow,
400
396
  onTabFocus: this.handleTabFocus,
401
397
  onTabBlur: this.handleTabBlur,
402
- isLoaded: session != null,
403
398
  errorMessage: error != null ? "".concat(error) : null
404
- }, /*#__PURE__*/React.createElement(CSSTransition, {
405
- in: session != null,
406
- timeout: ThemeExport.transitionMidMs,
407
- classNames: "fade",
408
- mountOnEnter: true,
409
- unmountOnExit: true
410
399
  }, /*#__PURE__*/React.createElement(React.Fragment, null, session && /*#__PURE__*/React.createElement(Console, {
411
400
  ref: this.consoleRef,
412
401
  settings: consoleSettings,
@@ -419,8 +408,9 @@ class ConsolePanel extends PureComponent {
419
408
  language: language,
420
409
  statusBarChildren: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, "\xA0"), /*#__PURE__*/React.createElement("div", null, ConsoleConstants.LANGUAGE_MAP.get(language))),
421
410
  scope: sessionId,
422
- timeZone: timeZone
423
- }))));
411
+ timeZone: timeZone,
412
+ objectMap: objectMap
413
+ })));
424
414
  }
425
415
 
426
416
  }
@@ -439,11 +429,11 @@ ConsolePanel.propTypes = {
439
429
  itemIds: PropTypes.array
440
430
  }),
441
431
  sessionWrapper: PropTypes.shape({
442
- session: APIPropTypes.IdeSession,
432
+ session: APIPropTypes.IdeSession.isRequired,
443
433
  config: PropTypes.shape({
444
434
  type: PropTypes.string,
445
435
  id: PropTypes.string
446
- })
436
+ }).isRequired
447
437
  }).isRequired,
448
438
  timeZone: PropTypes.string.isRequired
449
439
  };