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

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 (37) hide show
  1. package/dist/GridPlugin.d.ts +1 -3
  2. package/dist/GridPlugin.d.ts.map +1 -1
  3. package/dist/GridPlugin.js +3 -5
  4. package/dist/GridPlugin.js.map +1 -1
  5. package/dist/MatPlotLibPlugin.d.ts +5 -0
  6. package/dist/MatPlotLibPlugin.d.ts.map +1 -0
  7. package/dist/MatPlotLibPlugin.js +47 -0
  8. package/dist/MatPlotLibPlugin.js.map +1 -0
  9. package/dist/events/MatPlotLibEvent.d.ts +5 -0
  10. package/dist/events/MatPlotLibEvent.d.ts.map +1 -0
  11. package/dist/events/MatPlotLibEvent.js +8 -0
  12. package/dist/events/MatPlotLibEvent.js.map +1 -0
  13. package/dist/events/index.d.ts +1 -0
  14. package/dist/events/index.js +1 -0
  15. package/dist/events/index.js.map +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/panels/ConsolePanel.d.ts +2 -0
  21. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  22. package/dist/panels/ConsolePanel.js +49 -4
  23. package/dist/panels/ConsolePanel.js.map +1 -1
  24. package/dist/panels/IrisGridPanel.d.ts +0 -3
  25. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  26. package/dist/panels/IrisGridPanel.js +4 -8
  27. package/dist/panels/IrisGridPanel.js.map +1 -1
  28. package/dist/panels/MatPlotLibPanel.css +11 -0
  29. package/dist/panels/MatPlotLibPanel.css.map +1 -0
  30. package/dist/panels/MatPlotLibPanel.d.ts +22 -0
  31. package/dist/panels/MatPlotLibPanel.d.ts.map +1 -0
  32. package/dist/panels/MatPlotLibPanel.js +72 -0
  33. package/dist/panels/MatPlotLibPanel.js.map +1 -0
  34. package/dist/panels/index.d.ts +1 -0
  35. package/dist/panels/index.js +1 -0
  36. package/dist/panels/index.js.map +1 -1
  37. package/package.json +16 -17
@@ -1,12 +1,10 @@
1
1
  import React from 'react';
2
2
  import { DashboardPluginComponentProps, PanelHydrateFunction } from '@deephaven/dashboard';
3
- import { IrisGridThemeType } from '@deephaven/iris-grid';
4
3
  export declare type GridPluginComponentProps = DashboardPluginComponentProps & {
5
4
  getDownloadWorker?: () => Promise<ServiceWorker>;
6
5
  loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;
7
6
  hydrate: PanelHydrateFunction;
8
- theme?: Partial<IrisGridThemeType>;
9
7
  };
10
- export declare const GridPlugin: ({ getDownloadWorker, loadPlugin, id, layout, registerComponent, hydrate, theme, }: GridPluginComponentProps) => JSX.Element;
8
+ export declare const GridPlugin: ({ getDownloadWorker, loadPlugin, id, layout, registerComponent, hydrate, }: GridPluginComponentProps) => JSX.Element;
11
9
  export default GridPlugin;
12
10
  //# sourceMappingURL=GridPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EACL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAiB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,oBAAY,wBAAwB,GAAG,6BAA6B,GAAG;IACrE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,UAAU,sFAQpB,wBAAwB,KAAG,WAqD7B,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EACL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAM9B,oBAAY,wBAAwB,GAAG,6BAA6B,GAAG;IACrE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,UAAU,+EAOpB,wBAAwB,KAAG,WAoD7B,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -10,8 +10,7 @@ export var GridPlugin = _ref => {
10
10
  id,
11
11
  layout,
12
12
  registerComponent,
13
- hydrate = DashboardUtils.hydrate,
14
- theme
13
+ hydrate = DashboardUtils.hydrate
15
14
  } = _ref;
16
15
  var handleOpen = useCallback(function (title, makeModel) {
17
16
  var metadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -26,8 +25,7 @@ export var GridPlugin = _ref => {
26
25
  localDashboardId: id,
27
26
  id: panelId,
28
27
  metadata,
29
- makeModel,
30
- theme
28
+ makeModel
31
29
  },
32
30
  title,
33
31
  id: panelId
@@ -40,7 +38,7 @@ export var GridPlugin = _ref => {
40
38
  config,
41
39
  dragEvent
42
40
  });
43
- }, [getDownloadWorker, id, layout, loadPlugin, theme]);
41
+ }, [getDownloadWorker, id, layout, loadPlugin]);
44
42
  var handleClose = useCallback(panelId => {
45
43
  var config = {
46
44
  component: IrisGridPanel.COMPONENT,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/GridPlugin.tsx"],"names":["React","useCallback","useEffect","DashboardUtils","LayoutUtils","useListener","shortid","IrisGridPanel","IrisGridEvent","GridPlugin","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","theme","handleOpen","title","makeModel","metadata","panelId","generate","dragEvent","config","type","component","COMPONENT","props","localDashboardId","root","openComponent","handleClose","closeComponent","cleanups","forEach","cleanup","eventHub","OPEN_GRID","CLOSE_GRID"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,WAA3B,EAAwCC,SAAxC,QAAyD,OAAzD;AACA,SAEEC,cAFF,EAGEC,WAHF,EAKEC,WALF,QAMO,sBANP;AAQA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;SACAC,a;AAST,OAAO,IAAMC,UAAU,GAAG,QAQmB;AAAA,MARlB;AACzBC,IAAAA,iBADyB;AAEzBC,IAAAA,UAFyB;AAGzBC,IAAAA,EAHyB;AAIzBC,IAAAA,MAJyB;AAKzBC,IAAAA,iBALyB;AAMzBC,IAAAA,OAAO,GAAGZ,cAAc,CAACY,OANA;AAOzBC,IAAAA;AAPyB,GAQkB;AAC3C,MAAMC,UAAU,GAAGhB,WAAW,CAC5B,UACEiB,KADF,EAEEC,SAFF,EAMK;AAAA,QAHHC,QAGG,uEAHiC,EAGjC;AAAA,QAFHC,OAEG,uEAFOf,OAAO,CAACgB,QAAR,EAEP;AAAA,QADHC,SACG;AACH,QAAMC,MAAM,GAAG;AACbC,MAAAA,IAAI,EAAE,iBADO;AAEbC,MAAAA,SAAS,EAAEnB,aAAa,CAACoB,SAFZ;AAGbC,MAAAA,KAAK,EAAE;AACLlB,QAAAA,iBADK;AAELC,QAAAA,UAFK;AAGLkB,QAAAA,gBAAgB,EAAEjB,EAHb;AAILA,QAAAA,EAAE,EAAES,OAJC;AAKLD,QAAAA,QALK;AAMLD,QAAAA,SANK;AAOLH,QAAAA;AAPK,OAHM;AAYbE,MAAAA,KAZa;AAabN,MAAAA,EAAE,EAAES;AAbS,KAAf;AAgBA,QAAM;AAAES,MAAAA;AAAF,QAAWjB,MAAjB;AACAT,IAAAA,WAAW,CAAC2B,aAAZ,CAA0B;AAAED,MAAAA,IAAF;AAAQN,MAAAA,MAAR;AAAgBD,MAAAA;AAAhB,KAA1B;AACD,GA1B2B,EA2B5B,CAACb,iBAAD,EAAoBE,EAApB,EAAwBC,MAAxB,EAAgCF,UAAhC,EAA4CK,KAA5C,CA3B4B,CAA9B;AA8BA,MAAMgB,WAAW,GAAG/B,WAAW,CAC5BoB,OAAD,IAAqB;AACnB,QAAMG,MAAM,GAAG;AAAEE,MAAAA,SAAS,EAAEnB,aAAa,CAACoB,SAA3B;AAAsCf,MAAAA,EAAE,EAAES;AAA1C,KAAf;AACA,QAAM;AAAES,MAAAA;AAAF,QAAWjB,MAAjB;AACAT,IAAAA,WAAW,CAAC6B,cAAZ,CAA2BH,IAA3B,EAAiCN,MAAjC;AACD,GAL4B,EAM7B,CAACX,MAAD,CAN6B,CAA/B;AASAX,EAAAA,SAAS,CAAC,MAAM;AACd,QAAMgC,QAAQ,GAAG,CACfpB,iBAAiB,CAACP,aAAa,CAACoB,SAAf,EAA0BpB,aAA1B,EAAyCQ,OAAzC,CADF,CAAjB;AAGA,WAAO,MAAM;AACXmB,MAAAA,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;AACD,KAFD;AAGD,GAPQ,EAON,CAACrB,OAAD,EAAUD,iBAAV,CAPM,CAAT;AASAT,EAAAA,WAAW,CAACQ,MAAM,CAACwB,QAAR,EAAkB7B,aAAa,CAAC8B,SAAhC,EAA2CrB,UAA3C,CAAX;AACAZ,EAAAA,WAAW,CAACQ,MAAM,CAACwB,QAAR,EAAkB7B,aAAa,CAAC+B,UAAhC,EAA4CP,WAA5C,CAAX;AAEA,sBAAO,yCAAP;AACD,CA7DM;AA+DP,eAAevB,UAAf","sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n DashboardPluginComponentProps,\n DashboardUtils,\n LayoutUtils,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModel, IrisGridThemeType } from '@deephaven/iris-grid';\nimport shortid from 'shortid';\nimport { IrisGridPanel } from './panels';\nimport { IrisGridEvent } from './events';\n\nexport type GridPluginComponentProps = DashboardPluginComponentProps & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction;\n theme?: Partial<IrisGridThemeType>;\n};\n\nexport const GridPlugin = ({\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate = DashboardUtils.hydrate,\n theme,\n}: GridPluginComponentProps): JSX.Element => {\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: IrisGridPanel.COMPONENT,\n props: {\n getDownloadWorker,\n loadPlugin,\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n theme,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [getDownloadWorker, id, layout, loadPlugin, theme]\n );\n\n const handleClose = useCallback(\n (panelId: string) => {\n const config = { component: IrisGridPanel.COMPONENT, id: panelId };\n const { root } = layout;\n LayoutUtils.closeComponent(root, config);\n },\n [layout]\n );\n\n useEffect(() => {\n const cleanups = [\n registerComponent(IrisGridPanel.COMPONENT, IrisGridPanel, hydrate),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [hydrate, registerComponent]);\n\n useListener(layout.eventHub, IrisGridEvent.OPEN_GRID, handleOpen);\n useListener(layout.eventHub, IrisGridEvent.CLOSE_GRID, handleClose);\n\n return <></>;\n};\n\nexport default GridPlugin;\n"],"file":"GridPlugin.js"}
1
+ {"version":3,"sources":["../src/GridPlugin.tsx"],"names":["React","useCallback","useEffect","DashboardUtils","LayoutUtils","useListener","shortid","IrisGridPanel","IrisGridEvent","GridPlugin","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","handleOpen","title","makeModel","metadata","panelId","generate","dragEvent","config","type","component","COMPONENT","props","localDashboardId","root","openComponent","handleClose","closeComponent","cleanups","forEach","cleanup","eventHub","OPEN_GRID","CLOSE_GRID"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,WAA3B,EAAwCC,SAAxC,QAAyD,OAAzD;AACA,SAEEC,cAFF,EAGEC,WAHF,EAKEC,WALF,QAMO,sBANP;AAQA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;SACAC,a;AAQT,OAAO,IAAMC,UAAU,GAAG,QAOmB;AAAA,MAPlB;AACzBC,IAAAA,iBADyB;AAEzBC,IAAAA,UAFyB;AAGzBC,IAAAA,EAHyB;AAIzBC,IAAAA,MAJyB;AAKzBC,IAAAA,iBALyB;AAMzBC,IAAAA,OAAO,GAAGZ,cAAc,CAACY;AANA,GAOkB;AAC3C,MAAMC,UAAU,GAAGf,WAAW,CAC5B,UACEgB,KADF,EAEEC,SAFF,EAMK;AAAA,QAHHC,QAGG,uEAHiC,EAGjC;AAAA,QAFHC,OAEG,uEAFOd,OAAO,CAACe,QAAR,EAEP;AAAA,QADHC,SACG;AACH,QAAMC,MAAM,GAAG;AACbC,MAAAA,IAAI,EAAE,iBADO;AAEbC,MAAAA,SAAS,EAAElB,aAAa,CAACmB,SAFZ;AAGbC,MAAAA,KAAK,EAAE;AACLjB,QAAAA,iBADK;AAELC,QAAAA,UAFK;AAGLiB,QAAAA,gBAAgB,EAAEhB,EAHb;AAILA,QAAAA,EAAE,EAAEQ,OAJC;AAKLD,QAAAA,QALK;AAMLD,QAAAA;AANK,OAHM;AAWbD,MAAAA,KAXa;AAYbL,MAAAA,EAAE,EAAEQ;AAZS,KAAf;AAeA,QAAM;AAAES,MAAAA;AAAF,QAAWhB,MAAjB;AACAT,IAAAA,WAAW,CAAC0B,aAAZ,CAA0B;AAAED,MAAAA,IAAF;AAAQN,MAAAA,MAAR;AAAgBD,MAAAA;AAAhB,KAA1B;AACD,GAzB2B,EA0B5B,CAACZ,iBAAD,EAAoBE,EAApB,EAAwBC,MAAxB,EAAgCF,UAAhC,CA1B4B,CAA9B;AA6BA,MAAMoB,WAAW,GAAG9B,WAAW,CAC5BmB,OAAD,IAAqB;AACnB,QAAMG,MAAM,GAAG;AAAEE,MAAAA,SAAS,EAAElB,aAAa,CAACmB,SAA3B;AAAsCd,MAAAA,EAAE,EAAEQ;AAA1C,KAAf;AACA,QAAM;AAAES,MAAAA;AAAF,QAAWhB,MAAjB;AACAT,IAAAA,WAAW,CAAC4B,cAAZ,CAA2BH,IAA3B,EAAiCN,MAAjC;AACD,GAL4B,EAM7B,CAACV,MAAD,CAN6B,CAA/B;AASAX,EAAAA,SAAS,CAAC,MAAM;AACd,QAAM+B,QAAQ,GAAG,CACfnB,iBAAiB,CAACP,aAAa,CAACmB,SAAf,EAA0BnB,aAA1B,EAAyCQ,OAAzC,CADF,CAAjB;AAGA,WAAO,MAAM;AACXkB,MAAAA,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;AACD,KAFD;AAGD,GAPQ,EAON,CAACpB,OAAD,EAAUD,iBAAV,CAPM,CAAT;AASAT,EAAAA,WAAW,CAACQ,MAAM,CAACuB,QAAR,EAAkB5B,aAAa,CAAC6B,SAAhC,EAA2CrB,UAA3C,CAAX;AACAX,EAAAA,WAAW,CAACQ,MAAM,CAACuB,QAAR,EAAkB5B,aAAa,CAAC8B,UAAhC,EAA4CP,WAA5C,CAAX;AAEA,sBAAO,yCAAP;AACD,CA3DM;AA6DP,eAAetB,UAAf","sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n DashboardPluginComponentProps,\n DashboardUtils,\n LayoutUtils,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModel } from '@deephaven/iris-grid';\nimport shortid from 'shortid';\nimport { IrisGridPanel } from './panels';\nimport { IrisGridEvent } from './events';\n\nexport type GridPluginComponentProps = DashboardPluginComponentProps & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction;\n};\n\nexport const GridPlugin = ({\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate = DashboardUtils.hydrate,\n}: GridPluginComponentProps): JSX.Element => {\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: IrisGridPanel.COMPONENT,\n props: {\n getDownloadWorker,\n loadPlugin,\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 [getDownloadWorker, id, layout, loadPlugin]\n );\n\n const handleClose = useCallback(\n (panelId: string) => {\n const config = { component: IrisGridPanel.COMPONENT, id: panelId };\n const { root } = layout;\n LayoutUtils.closeComponent(root, config);\n },\n [layout]\n );\n\n useEffect(() => {\n const cleanups = [\n registerComponent(IrisGridPanel.COMPONENT, IrisGridPanel, hydrate),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [hydrate, registerComponent]);\n\n useListener(layout.eventHub, IrisGridEvent.OPEN_GRID, handleOpen);\n useListener(layout.eventHub, IrisGridEvent.CLOSE_GRID, handleClose);\n\n return <></>;\n};\n\nexport default GridPlugin;\n"],"file":"GridPlugin.js"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { DashboardPluginComponentProps } from '@deephaven/dashboard';
3
+ export declare const MatPlotLibPlugin: ({ id, layout, registerComponent, }: DashboardPluginComponentProps) => JSX.Element;
4
+ export default MatPlotLibPlugin;
5
+ //# sourceMappingURL=MatPlotLibPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatPlotLibPlugin.d.ts","sourceRoot":"","sources":["../src/MatPlotLibPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,gBAAgB,uCAI1B,6BAA6B,KAAG,WAyClC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import React, { useCallback, useEffect } from 'react';
2
+ import shortid from 'shortid';
3
+ import { LayoutUtils, useListener } from '@deephaven/dashboard';
4
+ import { MatPlotLibPanel } from "./panels/index.js";
5
+ import { MatPlotLibEvent } from "./events/index.js";
6
+ export var MatPlotLibPlugin = _ref => {
7
+ var {
8
+ id,
9
+ layout,
10
+ registerComponent
11
+ } = _ref;
12
+ var handleOpen = useCallback(function (title, makeModel) {
13
+ var metadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
14
+ var panelId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : shortid.generate();
15
+ var dragEvent = arguments.length > 4 ? arguments[4] : undefined;
16
+ var config = {
17
+ type: 'react-component',
18
+ component: MatPlotLibPanel.COMPONENT,
19
+ props: {
20
+ localDashboardId: id,
21
+ id: panelId,
22
+ metadata,
23
+ makeModel
24
+ },
25
+ title,
26
+ id: panelId
27
+ };
28
+ var {
29
+ root
30
+ } = layout;
31
+ LayoutUtils.openComponent({
32
+ root,
33
+ config,
34
+ dragEvent
35
+ });
36
+ }, [id, layout]);
37
+ useEffect(() => {
38
+ var cleanups = [registerComponent(MatPlotLibPanel.COMPONENT, MatPlotLibPanel)];
39
+ return () => {
40
+ cleanups.forEach(cleanup => cleanup());
41
+ };
42
+ }, [registerComponent]);
43
+ useListener(layout.eventHub, MatPlotLibEvent.OPEN, handleOpen);
44
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
45
+ };
46
+ export default MatPlotLibPlugin;
47
+ //# sourceMappingURL=MatPlotLibPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/MatPlotLibPlugin.tsx"],"names":["React","useCallback","useEffect","shortid","LayoutUtils","useListener","MatPlotLibPanel","MatPlotLibEvent","MatPlotLibPlugin","id","layout","registerComponent","handleOpen","title","makeModel","metadata","panelId","generate","dragEvent","config","type","component","COMPONENT","props","localDashboardId","root","openComponent","cleanups","forEach","cleanup","eventHub","OPEN"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,QAA8C,OAA9C;AACA,OAAOC,OAAP,MAAoB,SAApB;AACA,SAEEC,WAFF,EAGEC,WAHF,QAIO,sBAJP;SAKSC,e;SACAC,e;AAET,OAAO,IAAMC,gBAAgB,GAAG,QAIkB;AAAA,MAJjB;AAC/BC,IAAAA,EAD+B;AAE/BC,IAAAA,MAF+B;AAG/BC,IAAAA;AAH+B,GAIiB;AAChD,MAAMC,UAAU,GAAGX,WAAW,CAC5B,UACEY,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,EAAEf,eAAe,CAACgB,SAFd;AAGbC,MAAAA,KAAK,EAAE;AACLC,QAAAA,gBAAgB,EAAEf,EADb;AAELA,QAAAA,EAAE,EAAEO,OAFC;AAGLD,QAAAA,QAHK;AAILD,QAAAA;AAJK,OAHM;AASbD,MAAAA,KATa;AAUbJ,MAAAA,EAAE,EAAEO;AAVS,KAAf;AAaA,QAAM;AAAES,MAAAA;AAAF,QAAWf,MAAjB;AACAN,IAAAA,WAAW,CAACsB,aAAZ,CAA0B;AAAED,MAAAA,IAAF;AAAQN,MAAAA,MAAR;AAAgBD,MAAAA;AAAhB,KAA1B;AACD,GAvB2B,EAwB5B,CAACT,EAAD,EAAKC,MAAL,CAxB4B,CAA9B;AA2BAR,EAAAA,SAAS,CAAC,MAAM;AACd,QAAMyB,QAAQ,GAAG,CACfhB,iBAAiB,CAACL,eAAe,CAACgB,SAAjB,EAA4BhB,eAA5B,CADF,CAAjB;AAIA,WAAO,MAAM;AACXqB,MAAAA,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;AACD,KAFD;AAGD,GARQ,EAQN,CAAClB,iBAAD,CARM,CAAT;AAUAN,EAAAA,WAAW,CAACK,MAAM,CAACoB,QAAR,EAAkBvB,eAAe,CAACwB,IAAlC,EAAwCnB,UAAxC,CAAX;AAEA,sBAAO,yCAAP;AACD,CA7CM;AA+CP,eAAeJ,gBAAf","sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport shortid from 'shortid';\nimport {\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { MatPlotLibPanel } from './panels';\nimport { MatPlotLibEvent } from './events';\n\nexport const MatPlotLibPlugin = ({\n id,\n layout,\n registerComponent,\n}: DashboardPluginComponentProps): JSX.Element => {\n const handleOpen = useCallback(\n (\n title: string,\n makeModel: () => Promise<string>,\n metadata: Record<string, unknown> = {},\n panelId = shortid.generate(),\n dragEvent?: DragEvent\n ) => {\n const config = {\n type: 'react-component',\n component: MatPlotLibPanel.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 useEffect(() => {\n const cleanups = [\n registerComponent(MatPlotLibPanel.COMPONENT, MatPlotLibPanel),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n }, [registerComponent]);\n\n useListener(layout.eventHub, MatPlotLibEvent.OPEN, handleOpen);\n\n return <></>;\n};\n\nexport default MatPlotLibPlugin;\n"],"file":"MatPlotLibPlugin.js"}
@@ -0,0 +1,5 @@
1
+ export default MatPlotLibEvent;
2
+ declare class MatPlotLibEvent {
3
+ static OPEN: string;
4
+ }
5
+ //# sourceMappingURL=MatPlotLibEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatPlotLibEvent.d.ts","sourceRoot":"","sources":["../../src/events/MatPlotLibEvent.js"],"names":[],"mappings":";AAAA;IACE,oBAAgC;CACjC"}
@@ -0,0 +1,8 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ class MatPlotLibEvent {}
4
+
5
+ _defineProperty(MatPlotLibEvent, "OPEN", 'MatPlotLib.OPEN');
6
+
7
+ export default MatPlotLibEvent;
8
+ //# sourceMappingURL=MatPlotLibEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/events/MatPlotLibEvent.js"],"names":["MatPlotLibEvent"],"mappings":";;AAAA,MAAMA,eAAN,CAAsB;;gBAAhBA,e,UACU,iB;;AAGhB,eAAeA,eAAf","sourcesContent":["class MatPlotLibEvent {\n static OPEN = 'MatPlotLib.OPEN';\n}\n\nexport default MatPlotLibEvent;\n"],"file":"MatPlotLibEvent.js"}
@@ -3,6 +3,7 @@ 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";
6
7
  export { default as NotebookEvent } from "./NotebookEvent";
7
8
  export { default as PandasEvent } from "./PandasEvent";
8
9
  export { default as TabEvent } from "./TabEvent";
@@ -3,6 +3,7 @@ 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";
6
7
  export { default as NotebookEvent } from "./NotebookEvent.js";
7
8
  export { default as PandasEvent } from "./PandasEvent.js";
8
9
  export { default as TabEvent } from "./TabEvent.js";
@@ -1 +1 @@
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"}
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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ 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';
7
8
  export { default as PandasPlugin } from './PandasPlugin';
8
9
  export { default as ControlType } from './controls/ControlType';
9
10
  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,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,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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ 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";
7
8
  export { default as PandasPlugin } from "./PandasPlugin.js";
8
9
  export { default as ControlType } from "./controls/ControlType.js";
9
10
  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","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"}
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"}
@@ -20,6 +20,8 @@ declare class ConsolePanel extends React.PureComponent<any, any, any> {
20
20
  openTable(object: any, session: any): void;
21
21
  openFigure(object: any, session: any): void;
22
22
  openPandas(object: any, session: any): void;
23
+ openMatPlotLib(object: any, session: any): void;
24
+ openJsonViewer(object: any, session: any): void;
23
25
  addCommand(command: any, focus?: boolean, execute?: boolean): void;
24
26
  /**
25
27
  * Close the disconnected panels from this session
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.jsx"],"names":[],"mappings":";;AAmCA;IACE,yBAAkC;IAElC,qBAAyB;IAEzB,wBAkCC;IAsED,kCAGC;IAUD,oCAaC;IAED,qCAKC;IA5BD,qBAEC;IA4BD,iDAOC;IAjCD,mBAEC;IArCD,sBAIC;IAED,uBAIC;IAED,mCAYC;IAiHD,uBASC;IA9MC,iCAAmC;IA0CrC,oCAMC;IAED,uDAQC;IAwED,2CAaC;IAED,4CAWC;IAED,4CAaC;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":";;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"}
@@ -20,7 +20,7 @@ import { IrisGridModelFactory } from '@deephaven/iris-grid';
20
20
  import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
21
21
  import Log from '@deephaven/log';
22
22
  import { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';
23
- import { ChartEvent, ConsoleEvent, IrisGridEvent, PandasEvent } from "../events/index.js";
23
+ import { ChartEvent, ConsoleEvent, IrisGridEvent, MatPlotLibEvent, PandasEvent } from "../events/index.js";
24
24
  import "./ConsolePanel.css";
25
25
  import Panel from "./Panel.js";
26
26
  import { getDashboardSessionWrapper } from "../redux/index.js";
@@ -177,7 +177,7 @@ class ConsolePanel extends PureComponent {
177
177
  } = sessionWrapper;
178
178
  var {
179
179
  type
180
- } = object;
180
+ } = object; // TODO: Make this generic, and just emit an Open event with the type?
181
181
 
182
182
  if (ConsoleUtils.isTableType(type)) {
183
183
  this.openTable(object, session);
@@ -185,6 +185,10 @@ class ConsolePanel extends PureComponent {
185
185
  this.openFigure(object, session);
186
186
  } else if (ConsoleUtils.isPandas(type)) {
187
187
  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);
188
192
  } else {
189
193
  log.error('Unknown object', object);
190
194
  }
@@ -226,7 +230,7 @@ class ConsolePanel extends PureComponent {
226
230
 
227
231
  var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
228
232
 
229
- log.debug('handleOpenTable', id);
233
+ log.debug('openTable', id);
230
234
  glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);
231
235
  }
232
236
 
@@ -261,10 +265,51 @@ class ConsolePanel extends PureComponent {
261
265
 
262
266
  var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
263
267
 
264
- log.debug('handleOpenTable', id);
268
+ log.debug('openPandas', id);
265
269
  glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);
266
270
  }
267
271
 
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
+
268
313
  addCommand(command) {
269
314
  var _this$consoleRef$curr;
270
315
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/ConsolePanel.jsx"],"names":["React","PureComponent","CSSTransition","PropTypes","shortid","debounce","connect","ChartModelFactory","ThemeExport","Console","ConsoleConstants","ConsoleUtils","GLPropTypes","PanelEvent","IrisGridModelFactory","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ChartEvent","ConsoleEvent","IrisGridEvent","PandasEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","panelState","initialPanelState","state","Map","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","setItemId","name","id","setState","newItemIds","set","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","sessionWrapper","session","type","isTableType","openTable","isFigureType","openFigure","isPandas","openPandas","error","CLOSE","debug","SETTINGS_CHANGED","table","makeModel","getObject","then","OPEN_GRID","figure","result","undefined","OPEN","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","forEach","render","commandHistoryStorage","glContainer","timeZone","config","sessionId","language","transitionMidMs","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","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 } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport { ThemeExport } from '@deephaven/components';\nimport { Console, ConsoleConstants, ConsoleUtils } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport {\n ChartEvent,\n ConsoleEvent,\n IrisGridEvent,\n PandasEvent,\n} from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\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\nclass ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\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.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\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 // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\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 }\n\n componentDidUpdate(prevProps, prevState) {\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() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n }\n\n setItemId(name, id) {\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, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\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() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n const { type } = object;\n if (ConsoleUtils.isTableType(type)) {\n this.openTable(object, session);\n } else if (ConsoleUtils.isFigureType(type)) {\n this.openFigure(object, session);\n } else if (ConsoleUtils.isPandas(type)) {\n this.openPandas(object, session);\n } else {\n log.error('Unknown object', object);\n }\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\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 openTable(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('handleOpenTable', id);\n\n glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);\n }\n\n openFigure(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { figure: name };\n const makeModel = () =>\n session\n .getObject(object)\n .then(result => ChartModelFactory.makeModel(undefined, result));\n\n const { glEventHub } = this.props;\n glEventHub.emit(ChartEvent.OPEN, name, makeModel, metadata, id);\n }\n\n openPandas(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('handleOpenTable', id);\n\n glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\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() {\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 }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n } = this.props;\n const { consoleSettings, error } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n isLoaded={session != null}\n errorMessage={error != null ? `${error}` : null}\n >\n <CSSTransition\n in={session != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <>\n {session && (\n <Console\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>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n />\n )}\n </>\n </CSSTransition>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string }),\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"file":"ConsolePanel.js"}
1
+ {"version":3,"sources":["../../src/panels/ConsolePanel.jsx"],"names":["React","PureComponent","CSSTransition","PropTypes","shortid","debounce","connect","ChartModelFactory","ThemeExport","Console","ConsoleConstants","ConsoleUtils","GLPropTypes","PanelEvent","IrisGridModelFactory","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ChartEvent","ConsoleEvent","IrisGridEvent","MatPlotLibEvent","PandasEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","panelState","initialPanelState","state","Map","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","setItemId","name","id","setState","newItemIds","set","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","sessionWrapper","session","type","isTableType","openTable","isFigureType","openFigure","isPandas","openPandas","isMatPlotLib","openMatPlotLib","isDeephavenPluginType","openJsonViewer","error","CLOSE","debug","SETTINGS_CHANGED","table","makeModel","getObject","then","OPEN_GRID","figure","result","undefined","OPEN","response","getDataAsBase64","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","forEach","render","commandHistoryStorage","glContainer","timeZone","config","sessionId","language","transitionMidMs","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","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 } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport { ThemeExport } from '@deephaven/components';\nimport { Console, ConsoleConstants, ConsoleUtils } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport {\n ChartEvent,\n ConsoleEvent,\n IrisGridEvent,\n MatPlotLibEvent,\n PandasEvent,\n} from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\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\nclass ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\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.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\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 // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\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 }\n\n componentDidUpdate(prevProps, prevState) {\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() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n }\n\n setItemId(name, id) {\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, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\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() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n const { type } = object;\n // TODO: Make this generic, and just emit an Open event with the type?\n if (ConsoleUtils.isTableType(type)) {\n this.openTable(object, session);\n } else if (ConsoleUtils.isFigureType(type)) {\n this.openFigure(object, session);\n } else if (ConsoleUtils.isPandas(type)) {\n this.openPandas(object, session);\n } else if (ConsoleUtils.isMatPlotLib(type)) {\n this.openMatPlotLib(object, session);\n } else if (ConsoleUtils.isDeephavenPluginType(type)) {\n this.openJsonViewer(object, session);\n } else {\n log.error('Unknown object', object);\n }\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\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 openTable(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('openTable', id);\n\n glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);\n }\n\n openFigure(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { figure: name };\n const makeModel = () =>\n session\n .getObject(object)\n .then(result => ChartModelFactory.makeModel(undefined, result));\n\n const { glEventHub } = this.props;\n glEventHub.emit(ChartEvent.OPEN, name, makeModel, metadata, id);\n }\n\n openPandas(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('openPandas', id);\n\n glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);\n }\n\n openMatPlotLib(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session.getObject(object).then(response => response.getDataAsBase64());\n\n log.debug('openMatPlotLib', id);\n\n glEventHub.emit(MatPlotLibEvent.OPEN, name, makeModel, metadata, id);\n }\n\n openJsonViewer(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { name };\n const { glEventHub } = this.props;\n const makeModel = () => session.getObject(object);\n\n log.debug('openJsonViewer', id);\n\n glEventHub.emit('ServerWidgetEvent.OPEN', {\n name,\n makeModel,\n metadata,\n id,\n });\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\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() {\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 }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n } = this.props;\n const { consoleSettings, error } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n isLoaded={session != null}\n errorMessage={error != null ? `${error}` : null}\n >\n <CSSTransition\n in={session != null}\n timeout={ThemeExport.transitionMidMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <>\n {session && (\n <Console\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>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n />\n )}\n </>\n </CSSTransition>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string }),\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"file":"ConsolePanel.js"}
@@ -165,7 +165,6 @@ export namespace IrisGridPanel {
165
165
  }>>;
166
166
  const getDownloadWorker: PropTypes.Requireable<(...args: any[]) => any>;
167
167
  const loadPlugin: PropTypes.Requireable<(...args: any[]) => any>;
168
- const theme: PropTypes.Requireable<PropTypes.InferProps<{}>>;
169
168
  }
170
169
  namespace defaultProps {
171
170
  const children_1: null;
@@ -182,8 +181,6 @@ export namespace IrisGridPanel {
182
181
  export { getDownloadWorker_1 as getDownloadWorker };
183
182
  const loadPlugin_1: undefined;
184
183
  export { loadPlugin_1 as loadPlugin };
185
- const theme_1: undefined;
186
- export { theme_1 as theme };
187
184
  }
188
185
  const displayName: string;
189
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.jsx"],"names":[],"mappings":"AA0CA;IACE,yBAAmC;IAEnC,wBAoFC;IAimBD,uBAwEC;IAlcD,yDAOC;IAqDD,uCAOC;IAED,qCAKC;IAyCD,wCAGC;IAED,iDAGC;IAUD,8BAGC;IApGD,gEAYC;IAED,gDAQC;IAkBD,qDAMC;IAED,mDA6BC;IAYD,qBAEC;IAED,mBAEC;IAOD,yBAMC;IAED,wBAEC;IAhND,yCA6CC;IAqKD,kCAMC;IAhID,8CAMC;IAVD,kCAEC;IAjBD,uCASC;IAED,wDAEC;IA6JD,8BAMC;IApdC,+BAAiC;IACjC,gCAAkC;IAClC,uEAAwB;IAKxB,mBAAyB;IACzB,eAAqB;IACrB,iBAAuB;IA6EzB,oBAGC;IAED,2EAWE;IAEF,0FAWG;IAEH,0HAqBG;IAEH,oIAOE;IAEF;;;;;;;;;;;;;;;;;;;;MA8CE;IAEF,6FAEE;IAEF;;;;;MAOE;IAEF,kBAWC;IAiDD,uDAWC;IAgKD,mCAmBC;IAUD,sCAIC;IAED,sCAcC;IAED,qCAiBC;IAED,sDAsCC;IAED,mCAKC;IAED,2CAKC;IAED;;;aAmBC;IAGD,yBAEC;IAED,iCAoEC;IA4ED,mBAMC;CAkJF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkDgB,wCAAQ;;QACH,6CAAQ"}
1
+ {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.jsx"],"names":[],"mappings":"AA0CA;IACE,yBAAmC;IAEnC,wBAoFC;IAimBD,uBAwEC;IAlcD,yDAOC;IAqDD,uCAOC;IAED,qCAKC;IAyCD,wCAGC;IAED,iDAGC;IAUD,8BAGC;IApGD,gEAYC;IAED,gDAQC;IAkBD,qDAMC;IAED,mDA6BC;IAYD,qBAEC;IAED,mBAEC;IAOD,yBAMC;IAED,wBAEC;IAhND,yCA6CC;IAqKD,kCAMC;IAhID,8CAMC;IAVD,kCAEC;IAjBD,uCASC;IAED,wDAEC;IA6JD,8BAMC;IApdC,+BAAiC;IACjC,gCAAkC;IAClC,uEAAwB;IAKxB,mBAAyB;IACzB,eAAqB;IACrB,iBAAuB;IA6EzB,oBAGC;IAED,2EAWE;IAEF,0FAWG;IAEH,0HAqBG;IAEH,oIAOE;IAEF;;;;;;;;;;;;;;;;;;;;MA8CE;IAEF,6FAEE;IAEF;;;;;MAOE;IAEF,kBAWC;IAiDD,uDAWC;IAgKD,mCAmBC;IAUD,sCAIC;IAED,sCAcC;IAED,qCAiBC;IAED,sDAsCC;IAED,mCAKC;IAED,2CAKC;IAED;;;aAmBC;IAGD,yBAEC;IAED,iCAoEC;IA4ED,mBAMC;CAgJF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgDgB,wCAAQ;;QACH,6CAAQ"}
@@ -830,8 +830,7 @@ export class IrisGridPanel extends PureComponent {
830
830
  panelState,
831
831
  user,
832
832
  workspace,
833
- settings,
834
- theme
833
+ settings
835
834
  } = this.props;
836
835
  var {
837
836
  advancedFilters,
@@ -949,8 +948,7 @@ export class IrisGridPanel extends PureComponent {
949
948
  canDownloadCsv: canDownloadCsv,
950
949
  ref: this.irisGrid,
951
950
  getDownloadWorker: getDownloadWorker,
952
- frozenColumns: frozenColumns,
953
- theme: theme
951
+ frozenColumns: frozenColumns
954
952
  }, childrenContent), !isModelReady && /*#__PURE__*/React.createElement(React.Fragment, null));
955
953
  }
956
954
 
@@ -996,8 +994,7 @@ IrisGridPanel.propTypes = {
996
994
  // Retrieve a download worker for optimizing exporting tables
997
995
  getDownloadWorker: PropTypes.func,
998
996
  // Load a plugin defined by the table
999
- loadPlugin: PropTypes.func,
1000
- theme: PropTypes.shape({})
997
+ loadPlugin: PropTypes.func
1001
998
  };
1002
999
  IrisGridPanel.defaultProps = {
1003
1000
  children: null,
@@ -1006,8 +1003,7 @@ IrisGridPanel.defaultProps = {
1006
1003
  onStateChange: () => {},
1007
1004
  onPanelStateUpdate: () => {},
1008
1005
  getDownloadWorker: undefined,
1009
- loadPlugin: undefined,
1010
- theme: undefined
1006
+ loadPlugin: undefined
1011
1007
  };
1012
1008
  IrisGridPanel.displayName = 'IrisGridPanel';
1013
1009
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/IrisGridPanel.jsx"],"names":["React","PureComponent","memoize","PropTypes","connect","debounce","ChartModelFactory","ChartUtils","GLPropTypes","LayoutUtils","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","TableUtils","AdvancedSettings","Log","getSettings","getUser","getWorkspace","PromiseUtils","ContextMenuRoot","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","UIPropTypes","WidgetPanel","log","module","DEBOUNCE_PANEL_STATE_UPDATE","PLUGIN_COMPONENTS","IrisGridPanel","constructor","props","columns","inputFilters","getInputFiltersForColumns","filter","value","excludePanelIds","includes","getIdFromPanel","dashboardLinks","pluginFetchColumns","id","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","table","user","workspace","pluginState","pluginRef","handlePluginFilter","handlePluginFetchColumns","handlePluginStateChange","model","isSelectingPartition","partition","partitionColumn","dehydrateIrisGridPanelState","sorts","advancedFilters","customColumnFormatMap","isFilterBarShown","quickFilters","customColumns","reverseType","rollupConfig","showSearchBar","searchValue","selectDistinctColumns","selectedSearchColumns","invertSearchColumns","userColumnWidths","userRowHeights","aggregationSettings","advancedSettings","pendingDataMap","frozenColumns","dehydrateIrisGridState","metrics","movedColumns","movedRows","dehydrateGridState","irisGridPanelState","irisGridState","gridState","savePanelState","bind","handleAdvancedSettingsChange","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","irisGrid","createRef","modelPromise","panelState","metadata","queryName","query","state","error","isDisconnected","isLoaded","isLoading","isModelReady","Map","aggregations","showOnTop","DEFAULTS","REVERSE_TYPE","NONE","pluginFilters","modelQueue","componentDidMount","initModel","componentDidUpdate","_","prevState","stopModelListening","close","startModelListening","componentWillUnmount","cancel","getTableName","setState","makeModel","makeCancelable","resolved","then","catch","modelParam","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","debug","key","get","set","filters","formatter","getFiltersFromInputFilters","timeZone","data","current","getMenu","tableColumn","columnSelectionValidator","glEventHub","onStateChange","emit","STATE_CHANGED","event","sendColumnsChange","detail","TABLE_CHANGED","column","name","tableName","command","SEND_COMMAND","settings","flush","makeModelFromSettings","querySerial","tableSettings","extractTableSettings","title","titleFromSettings","OPEN","dehydrateSettings","sourcePanelId","COLUMN_SELECTED","row","dataMap","DATA_SELECTED","updateGrid","Error","isCanceled","loadPlugin","loadPanelState","pluginName","clearAllFilters","debug2","COLUMNS_CHANGED","addEventListener","EVENT","DISCONNECT","RECONNECT","removeEventListener","getCoordinateForColumn","gridWrapper","rect","getBoundingClientRect","width","height","columnHeaderHeight","visibleColumnXs","visibleColumnWidths","right","visibleIndex","getVisibleColumn","getColumnIndexByName","columnX","columnWidth","x","Math","max","left","min","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","hydrateQuickFilters","hydrateAdvancedFilters","unsetFilterValue","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","onPanelStateUpdate","oldPanelState","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","grid","render","children","glContainer","getDownloadWorker","links","theme","errorMessage","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","getAlwaysFetchColumns","getGridInputFilters","propTypes","node","Container","isRequired","EventHub","shape","string","arrayOf","array","func","InputFilter","Links","User","defaultProps","undefined","displayName","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the IrisGrid for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport {\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n TableUtils,\n} from '@deephaven/iris-grid';\nimport AdvancedSettings from '@deephaven/iris-grid/dist/sidebar/AdvancedSettings';\nimport Log from '@deephaven/log';\nimport { getSettings, getUser, getWorkspace } from '@deephaven/redux';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { ContextMenuRoot } from '@deephaven/components';\nimport {\n ChartEvent,\n ConsoleEvent,\n InputFilterEvent,\n IrisGridEvent,\n} from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport { UIPropTypes } from '../prop-types';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst PLUGIN_COMPONENTS = { IrisGrid, IrisGridTableModel, ContextMenuRoot };\n\nexport class IrisGridPanel extends PureComponent {\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props) {\n super(props);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(\n this\n );\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handlePartitionAppend = this.handlePartitionAppend.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n this.modelPromise = null;\n\n const { panelState, metadata } = props;\n const queryName = metadata.query;\n\n this.irisGridState = null;\n this.gridState = null;\n this.pluginState = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: null,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userRowHeights: new Map(),\n reverseType: TableUtils.REVERSE_TYPE.NONE,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partition: null,\n partitionColumn: null,\n queryName,\n rollupConfig: null,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: null,\n invertSearchColumns: true,\n Plugin: null,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: null,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n this.initModel();\n }\n\n componentDidUpdate(_, prevState) {\n const { model } = this.state;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n }\n\n componentWillUnmount() {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = null;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n getTableName() {\n const { metadata } = this.props;\n return metadata.table;\n }\n\n getGridInputFilters = memoize((columns, inputFilters) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n !excludePanelIds.includes(LayoutUtils.getIdFromPanel(this)))\n )\n )\n );\n\n getAlwaysFetchColumns = memoize((dashboardLinks, pluginFetchColumns) => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n });\n\n getPluginContent = memoize((Plugin, table, user, workspace, pluginState) => {\n if (Plugin == null || table == null) {\n return null;\n }\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n onFilter={this.handlePluginFilter}\n onFetchColumns={this.handlePluginFetchColumns}\n table={table}\n user={user}\n panel={this}\n workspace={workspace}\n components={PLUGIN_COMPONENTS}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n />\n </div>\n );\n });\n\n getDehydratedIrisGridPanelState = memoize(\n (model, isSelectingPartition, partition, partitionColumn) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partition,\n partitionColumn,\n })\n );\n\n getDehydratedIrisGridState = memoize(\n (\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ) =>\n IrisGridUtils.dehydrateIrisGridState(model, {\n advancedFilters,\n advancedSettings,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n metrics: {\n userColumnWidths,\n userRowHeights,\n },\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n })\n );\n\n getDehydratedGridState = memoize((model, movedColumns, movedRows) =>\n IrisGridUtils.dehydrateGridState(model, { movedColumns, movedRows })\n );\n\n getCachedPanelState = memoize(\n (irisGridPanelState, irisGridState, gridState, pluginState) => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n initModel() {\n this.setState({ isModelReady: false, isLoading: true, error: null });\n const { makeModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n this.modelPromise = PromiseUtils.makeCancelable(\n makeModel(),\n resolved => resolved.close\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam) {\n const model = modelParam;\n const { panelState } = this.props;\n const modelQueue = [];\n\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = irisGridState;\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam, modelQueue) {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n modelChange(model);\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(key, value) {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters) {\n const { model } = this.state;\n const { columns, formatter } = model;\n const pluginFilters = IrisGridUtils.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n );\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns) {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data) {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn) {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(this, tableColumn);\n }\n return false;\n }\n\n handleGridStateChange(irisGridState, gridState) {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState) {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event) {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange(event.detail);\n } else {\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event) {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event;\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n handlePartitionAppend(column, value) {\n const { glEventHub } = this.props;\n const { name } = column;\n const tableName = this.getTableName();\n const command = `${tableName} = ${tableName}.where(\"${name}=\\`${value}\\`\")`;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);\n }\n\n handleCreateChart(settings, table) {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(settings, table);\n\n const { glEventHub, inputFilters, metadata } = this.props;\n const { querySerial, table: tableName } = metadata;\n const { panelState } = this.state;\n const id = LayoutUtils.getIdFromPanel(this);\n\n const tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n const title = ChartUtils.titleFromSettings(settings);\n glEventHub.emit(ChartEvent.OPEN, title, makeModel, {\n querySerial,\n settings: ChartUtils.dehydrateSettings(settings),\n sourcePanelId: id,\n table: tableName,\n tableSettings,\n });\n }\n );\n }\n\n handleColumnSelected(column) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);\n }\n\n handleDataSelected(row, dataMap) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);\n }\n\n handleResize() {\n this.updateGrid();\n }\n\n handleShow() {\n this.updateGrid();\n }\n\n handleError(error) {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error) {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model) {\n const { glEventHub, loadPlugin } = this.props;\n\n this.modelPromise = null;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n const { table } = model;\n const { pluginName } = table;\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters() {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n sendColumnsChange(columns) {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);\n }\n\n startModelListening(model) {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model) {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName) {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n\n const { metrics } = irisGrid.state;\n const {\n columnHeaderHeight,\n visibleColumnXs,\n visibleColumnWidths,\n right,\n } = metrics;\n const visibleIndex = irisGrid.getVisibleColumn(\n model.getColumnIndexByName(columnName)\n );\n const columnX = visibleColumnXs.get(visibleIndex) || 0;\n const columnWidth = visibleColumnWidths.get(visibleIndex) || 0;\n\n const x = Math.max(\n rect.left,\n Math.min(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.right\n )\n );\n const y = rect.top + columnHeaderHeight;\n\n return [x, y];\n }\n\n setFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({ quickFilters, advancedFilters }) {\n const irisGrid = this.irisGrid.current;\n const { model, isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n const { columns, formatter } = model;\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: IrisGridUtils.hydrateQuickFilters(\n columns,\n quickFilters,\n formatter.timeZone\n ),\n advancedFilters: IrisGridUtils.hydrateAdvancedFilters(\n columns,\n advancedFilters,\n formatter.timeZone\n ),\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue() {\n // IrisGridPanel retains the set value after the link is broken\n }\n\n loadPanelState(model) {\n const { panelState } = this.props;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const {\n isSelectingPartition,\n partition,\n partitionColumn,\n } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n const {\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n } = IrisGridUtils.hydrateIrisGridState(model, irisGridState);\n const { movedColumns, movedRows } = IrisGridUtils.hydrateGridState(\n model,\n gridState,\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState() {\n const { irisGridState, gridState, pluginState } = this;\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partition,\n partitionColumn,\n advancedSettings,\n } = this.state;\n const {\n advancedFilters,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n metrics,\n pendingDataMap,\n frozenColumns,\n } = irisGridState;\n const { userColumnWidths, userRowHeights } = metrics;\n const { movedColumns, movedRows } = gridState;\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partition,\n partitionColumn\n ),\n this.getDehydratedIrisGridState(\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ),\n this.getDehydratedGridState(model, movedColumns, movedRows),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate(panelState);\n }\n }\n\n updateGrid() {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render() {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n workspace,\n settings,\n theme,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n queryName,\n quickFilters,\n reverseType,\n rollupConfig,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n } = this.state;\n const errorMessage = error ? `Unable to open table. ${error}` : null;\n const { table: name, querySerial } = metadata;\n const description = model?.description ?? null;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ??\n this.getPluginContent(Plugin, model?.table, user, workspace, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n queryName={queryName}\n querySerial={querySerial}\n widgetName={name}\n widgetType=\"Table\"\n description={description}\n componentPanel={this}\n >\n {isModelReady && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"not-allowed\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partition={partition}\n partitionColumn={partitionColumn}\n quickFilters={quickFilters}\n reverseType={reverseType}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userRowHeights={userRowHeights}\n model={model}\n tableName={name}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onPartitionAppend={this.handlePartitionAppend}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n theme={theme}\n >\n {childrenContent}\n </IrisGrid>\n )}\n\n {!isModelReady && <></>}\n </WidgetPanel>\n );\n }\n}\n\nIrisGridPanel.propTypes = {\n children: PropTypes.node,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n metadata: PropTypes.shape({\n table: PropTypes.string.isRequired,\n query: PropTypes.string,\n querySerial: PropTypes.string,\n }).isRequired,\n panelState: PropTypes.shape({\n gridState: PropTypes.shape({}),\n irisGridState: PropTypes.shape({\n aggregationSettings: PropTypes.shape({}),\n customColumns: PropTypes.arrayOf(PropTypes.string),\n selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),\n rollupConfig: PropTypes.shape({\n columns: PropTypes.arrayOf(PropTypes.string).isRequired,\n }),\n pendingDataMap: PropTypes.arrayOf(PropTypes.array),\n frozenColumns: PropTypes.arrayOf(PropTypes.string),\n }),\n irisGridPanelState: PropTypes.shape({}),\n pluginState: PropTypes.shape({}),\n }),\n makeModel: PropTypes.func.isRequired,\n inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,\n links: UIPropTypes.Links.isRequired,\n columnSelectionValidator: PropTypes.func,\n onStateChange: PropTypes.func,\n onPanelStateUpdate: PropTypes.func,\n user: UIPropTypes.User.isRequired,\n workspace: PropTypes.shape({}).isRequired,\n settings: PropTypes.shape({ timeZone: PropTypes.string.isRequired })\n .isRequired,\n\n // Retrieve a download worker for optimizing exporting tables\n getDownloadWorker: PropTypes.func,\n\n // Load a plugin defined by the table\n loadPlugin: PropTypes.func,\n\n theme: PropTypes.shape({}),\n};\n\nIrisGridPanel.defaultProps = {\n children: null,\n panelState: null,\n columnSelectionValidator: null,\n onStateChange: () => {},\n onPanelStateUpdate: () => {},\n getDownloadWorker: undefined,\n loadPlugin: undefined,\n theme: undefined,\n};\n\nIrisGridPanel.displayName = 'IrisGridPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n workspace: getWorkspace(state),\n settings: getSettings(state),\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n IrisGridPanel\n);\n"],"file":"IrisGridPanel.js"}
1
+ {"version":3,"sources":["../../src/panels/IrisGridPanel.jsx"],"names":["React","PureComponent","memoize","PropTypes","connect","debounce","ChartModelFactory","ChartUtils","GLPropTypes","LayoutUtils","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","TableUtils","AdvancedSettings","Log","getSettings","getUser","getWorkspace","PromiseUtils","ContextMenuRoot","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","UIPropTypes","WidgetPanel","log","module","DEBOUNCE_PANEL_STATE_UPDATE","PLUGIN_COMPONENTS","IrisGridPanel","constructor","props","columns","inputFilters","getInputFiltersForColumns","filter","value","excludePanelIds","includes","getIdFromPanel","dashboardLinks","pluginFetchColumns","id","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","table","user","workspace","pluginState","pluginRef","handlePluginFilter","handlePluginFetchColumns","handlePluginStateChange","model","isSelectingPartition","partition","partitionColumn","dehydrateIrisGridPanelState","sorts","advancedFilters","customColumnFormatMap","isFilterBarShown","quickFilters","customColumns","reverseType","rollupConfig","showSearchBar","searchValue","selectDistinctColumns","selectedSearchColumns","invertSearchColumns","userColumnWidths","userRowHeights","aggregationSettings","advancedSettings","pendingDataMap","frozenColumns","dehydrateIrisGridState","metrics","movedColumns","movedRows","dehydrateGridState","irisGridPanelState","irisGridState","gridState","savePanelState","bind","handleAdvancedSettingsChange","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","irisGrid","createRef","modelPromise","panelState","metadata","queryName","query","state","error","isDisconnected","isLoaded","isLoading","isModelReady","Map","aggregations","showOnTop","DEFAULTS","REVERSE_TYPE","NONE","pluginFilters","modelQueue","componentDidMount","initModel","componentDidUpdate","_","prevState","stopModelListening","close","startModelListening","componentWillUnmount","cancel","getTableName","setState","makeModel","makeCancelable","resolved","then","catch","modelParam","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","debug","key","get","set","filters","formatter","getFiltersFromInputFilters","timeZone","data","current","getMenu","tableColumn","columnSelectionValidator","glEventHub","onStateChange","emit","STATE_CHANGED","event","sendColumnsChange","detail","TABLE_CHANGED","column","name","tableName","command","SEND_COMMAND","settings","flush","makeModelFromSettings","querySerial","tableSettings","extractTableSettings","title","titleFromSettings","OPEN","dehydrateSettings","sourcePanelId","COLUMN_SELECTED","row","dataMap","DATA_SELECTED","updateGrid","Error","isCanceled","loadPlugin","loadPanelState","pluginName","clearAllFilters","debug2","COLUMNS_CHANGED","addEventListener","EVENT","DISCONNECT","RECONNECT","removeEventListener","getCoordinateForColumn","gridWrapper","rect","getBoundingClientRect","width","height","columnHeaderHeight","visibleColumnXs","visibleColumnWidths","right","visibleIndex","getVisibleColumn","getColumnIndexByName","columnX","columnWidth","x","Math","max","left","min","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","hydrateQuickFilters","hydrateAdvancedFilters","unsetFilterValue","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","onPanelStateUpdate","oldPanelState","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","grid","render","children","glContainer","getDownloadWorker","links","errorMessage","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","getAlwaysFetchColumns","getGridInputFilters","propTypes","node","Container","isRequired","EventHub","shape","string","arrayOf","array","func","InputFilter","Links","User","defaultProps","undefined","displayName","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the IrisGrid for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport {\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n TableUtils,\n} from '@deephaven/iris-grid';\nimport AdvancedSettings from '@deephaven/iris-grid/dist/sidebar/AdvancedSettings';\nimport Log from '@deephaven/log';\nimport { getSettings, getUser, getWorkspace } from '@deephaven/redux';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { ContextMenuRoot } from '@deephaven/components';\nimport {\n ChartEvent,\n ConsoleEvent,\n InputFilterEvent,\n IrisGridEvent,\n} from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport { UIPropTypes } from '../prop-types';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst PLUGIN_COMPONENTS = { IrisGrid, IrisGridTableModel, ContextMenuRoot };\n\nexport class IrisGridPanel extends PureComponent {\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props) {\n super(props);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(\n this\n );\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handlePartitionAppend = this.handlePartitionAppend.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n this.modelPromise = null;\n\n const { panelState, metadata } = props;\n const queryName = metadata.query;\n\n this.irisGridState = null;\n this.gridState = null;\n this.pluginState = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: null,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userRowHeights: new Map(),\n reverseType: TableUtils.REVERSE_TYPE.NONE,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partition: null,\n partitionColumn: null,\n queryName,\n rollupConfig: null,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: null,\n invertSearchColumns: true,\n Plugin: null,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: null,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n this.initModel();\n }\n\n componentDidUpdate(_, prevState) {\n const { model } = this.state;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n }\n\n componentWillUnmount() {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = null;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n getTableName() {\n const { metadata } = this.props;\n return metadata.table;\n }\n\n getGridInputFilters = memoize((columns, inputFilters) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n !excludePanelIds.includes(LayoutUtils.getIdFromPanel(this)))\n )\n )\n );\n\n getAlwaysFetchColumns = memoize((dashboardLinks, pluginFetchColumns) => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n });\n\n getPluginContent = memoize((Plugin, table, user, workspace, pluginState) => {\n if (Plugin == null || table == null) {\n return null;\n }\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n onFilter={this.handlePluginFilter}\n onFetchColumns={this.handlePluginFetchColumns}\n table={table}\n user={user}\n panel={this}\n workspace={workspace}\n components={PLUGIN_COMPONENTS}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n />\n </div>\n );\n });\n\n getDehydratedIrisGridPanelState = memoize(\n (model, isSelectingPartition, partition, partitionColumn) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partition,\n partitionColumn,\n })\n );\n\n getDehydratedIrisGridState = memoize(\n (\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ) =>\n IrisGridUtils.dehydrateIrisGridState(model, {\n advancedFilters,\n advancedSettings,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n metrics: {\n userColumnWidths,\n userRowHeights,\n },\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n })\n );\n\n getDehydratedGridState = memoize((model, movedColumns, movedRows) =>\n IrisGridUtils.dehydrateGridState(model, { movedColumns, movedRows })\n );\n\n getCachedPanelState = memoize(\n (irisGridPanelState, irisGridState, gridState, pluginState) => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n initModel() {\n this.setState({ isModelReady: false, isLoading: true, error: null });\n const { makeModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n this.modelPromise = PromiseUtils.makeCancelable(\n makeModel(),\n resolved => resolved.close\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam) {\n const model = modelParam;\n const { panelState } = this.props;\n const modelQueue = [];\n\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = irisGridState;\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam, modelQueue) {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n modelChange(model);\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(key, value) {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters) {\n const { model } = this.state;\n const { columns, formatter } = model;\n const pluginFilters = IrisGridUtils.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n );\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns) {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data) {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn) {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(this, tableColumn);\n }\n return false;\n }\n\n handleGridStateChange(irisGridState, gridState) {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState) {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event) {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange(event.detail);\n } else {\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event) {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event;\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n handlePartitionAppend(column, value) {\n const { glEventHub } = this.props;\n const { name } = column;\n const tableName = this.getTableName();\n const command = `${tableName} = ${tableName}.where(\"${name}=\\`${value}\\`\")`;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);\n }\n\n handleCreateChart(settings, table) {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(settings, table);\n\n const { glEventHub, inputFilters, metadata } = this.props;\n const { querySerial, table: tableName } = metadata;\n const { panelState } = this.state;\n const id = LayoutUtils.getIdFromPanel(this);\n\n const tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n const title = ChartUtils.titleFromSettings(settings);\n glEventHub.emit(ChartEvent.OPEN, title, makeModel, {\n querySerial,\n settings: ChartUtils.dehydrateSettings(settings),\n sourcePanelId: id,\n table: tableName,\n tableSettings,\n });\n }\n );\n }\n\n handleColumnSelected(column) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);\n }\n\n handleDataSelected(row, dataMap) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);\n }\n\n handleResize() {\n this.updateGrid();\n }\n\n handleShow() {\n this.updateGrid();\n }\n\n handleError(error) {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error) {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model) {\n const { glEventHub, loadPlugin } = this.props;\n\n this.modelPromise = null;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n const { table } = model;\n const { pluginName } = table;\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters() {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n sendColumnsChange(columns) {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);\n }\n\n startModelListening(model) {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model) {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName) {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n\n const { metrics } = irisGrid.state;\n const {\n columnHeaderHeight,\n visibleColumnXs,\n visibleColumnWidths,\n right,\n } = metrics;\n const visibleIndex = irisGrid.getVisibleColumn(\n model.getColumnIndexByName(columnName)\n );\n const columnX = visibleColumnXs.get(visibleIndex) || 0;\n const columnWidth = visibleColumnWidths.get(visibleIndex) || 0;\n\n const x = Math.max(\n rect.left,\n Math.min(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.right\n )\n );\n const y = rect.top + columnHeaderHeight;\n\n return [x, y];\n }\n\n setFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({ quickFilters, advancedFilters }) {\n const irisGrid = this.irisGrid.current;\n const { model, isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n const { columns, formatter } = model;\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: IrisGridUtils.hydrateQuickFilters(\n columns,\n quickFilters,\n formatter.timeZone\n ),\n advancedFilters: IrisGridUtils.hydrateAdvancedFilters(\n columns,\n advancedFilters,\n formatter.timeZone\n ),\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue() {\n // IrisGridPanel retains the set value after the link is broken\n }\n\n loadPanelState(model) {\n const { panelState } = this.props;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const {\n isSelectingPartition,\n partition,\n partitionColumn,\n } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n const {\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n } = IrisGridUtils.hydrateIrisGridState(model, irisGridState);\n const { movedColumns, movedRows } = IrisGridUtils.hydrateGridState(\n model,\n gridState,\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState() {\n const { irisGridState, gridState, pluginState } = this;\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partition,\n partitionColumn,\n advancedSettings,\n } = this.state;\n const {\n advancedFilters,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n metrics,\n pendingDataMap,\n frozenColumns,\n } = irisGridState;\n const { userColumnWidths, userRowHeights } = metrics;\n const { movedColumns, movedRows } = gridState;\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partition,\n partitionColumn\n ),\n this.getDehydratedIrisGridState(\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ),\n this.getDehydratedGridState(model, movedColumns, movedRows),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate(panelState);\n }\n }\n\n updateGrid() {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render() {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n workspace,\n settings,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n queryName,\n quickFilters,\n reverseType,\n rollupConfig,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n } = this.state;\n const errorMessage = error ? `Unable to open table. ${error}` : null;\n const { table: name, querySerial } = metadata;\n const description = model?.description ?? null;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ??\n this.getPluginContent(Plugin, model?.table, user, workspace, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n queryName={queryName}\n querySerial={querySerial}\n widgetName={name}\n widgetType=\"Table\"\n description={description}\n componentPanel={this}\n >\n {isModelReady && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"not-allowed\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partition={partition}\n partitionColumn={partitionColumn}\n quickFilters={quickFilters}\n reverseType={reverseType}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userRowHeights={userRowHeights}\n model={model}\n tableName={name}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onPartitionAppend={this.handlePartitionAppend}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n >\n {childrenContent}\n </IrisGrid>\n )}\n\n {!isModelReady && <></>}\n </WidgetPanel>\n );\n }\n}\n\nIrisGridPanel.propTypes = {\n children: PropTypes.node,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n metadata: PropTypes.shape({\n table: PropTypes.string.isRequired,\n query: PropTypes.string,\n querySerial: PropTypes.string,\n }).isRequired,\n panelState: PropTypes.shape({\n gridState: PropTypes.shape({}),\n irisGridState: PropTypes.shape({\n aggregationSettings: PropTypes.shape({}),\n customColumns: PropTypes.arrayOf(PropTypes.string),\n selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),\n rollupConfig: PropTypes.shape({\n columns: PropTypes.arrayOf(PropTypes.string).isRequired,\n }),\n pendingDataMap: PropTypes.arrayOf(PropTypes.array),\n frozenColumns: PropTypes.arrayOf(PropTypes.string),\n }),\n irisGridPanelState: PropTypes.shape({}),\n pluginState: PropTypes.shape({}),\n }),\n makeModel: PropTypes.func.isRequired,\n inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,\n links: UIPropTypes.Links.isRequired,\n columnSelectionValidator: PropTypes.func,\n onStateChange: PropTypes.func,\n onPanelStateUpdate: PropTypes.func,\n user: UIPropTypes.User.isRequired,\n workspace: PropTypes.shape({}).isRequired,\n settings: PropTypes.shape({ timeZone: PropTypes.string.isRequired })\n .isRequired,\n\n // Retrieve a download worker for optimizing exporting tables\n getDownloadWorker: PropTypes.func,\n\n // Load a plugin defined by the table\n loadPlugin: PropTypes.func,\n};\n\nIrisGridPanel.defaultProps = {\n children: null,\n panelState: null,\n columnSelectionValidator: null,\n onStateChange: () => {},\n onPanelStateUpdate: () => {},\n getDownloadWorker: undefined,\n loadPlugin: undefined,\n};\n\nIrisGridPanel.displayName = 'IrisGridPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n workspace: getWorkspace(state),\n settings: getSettings(state),\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n IrisGridPanel\n);\n"],"file":"IrisGridPanel.js"}
@@ -0,0 +1,11 @@
1
+ .mat-plot-lib-panel {
2
+ height: 100%;
3
+ width: 100%;
4
+ }
5
+ .mat-plot-lib-panel img {
6
+ height: 100%;
7
+ width: 100%;
8
+ object-fit: contain;
9
+ }
10
+
11
+ /*# sourceMappingURL=MatPlotLibPanel.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/panels/MatPlotLibPanel.scss"],"names":[],"mappings":"AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA","file":"MatPlotLibPanel.css"}
@@ -0,0 +1,22 @@
1
+ export default MatPlotLibPanel;
2
+ /**
3
+ * Wraps and IrisGridPanel to add a refresh button for Pandas.
4
+ */
5
+ declare class MatPlotLibPanel extends React.Component<any, any, any> {
6
+ static COMPONENT: string;
7
+ constructor(props: any);
8
+ initImage(): Promise<void>;
9
+ }
10
+ declare namespace MatPlotLibPanel {
11
+ namespace propTypes {
12
+ const makeModel: PropTypes.Validator<(...args: any[]) => any>;
13
+ const panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
14
+ }
15
+ namespace defaultProps {
16
+ const panelState_1: null;
17
+ export { panelState_1 as panelState };
18
+ }
19
+ }
20
+ import React from "react";
21
+ import PropTypes from "prop-types";
22
+ //# sourceMappingURL=MatPlotLibPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatPlotLibPanel.d.ts","sourceRoot":"","sources":["../../src/panels/MatPlotLibPanel.jsx"],"names":[],"mappings":";AAMA;;GAEG;AACH;IACE,yBAAqC;IAErC,wBAMC;IAMD,2BAIC;CAYF"}
@@ -0,0 +1,72 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
+
3
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ /* eslint-disable react/jsx-props-no-spreading */
8
+
9
+ /* eslint-disable react/no-unused-state */
10
+ import React, { Component } from 'react';
11
+ import PropTypes from 'prop-types';
12
+ import "./MatPlotLibPanel.css";
13
+ /**
14
+ * Wraps and IrisGridPanel to add a refresh button for Pandas.
15
+ */
16
+
17
+ class MatPlotLibPanel extends Component {
18
+ constructor(props) {
19
+ super(props);
20
+ this.state = {
21
+ imageData: null
22
+ };
23
+ }
24
+
25
+ componentDidMount() {
26
+ this.initImage();
27
+ }
28
+
29
+ initImage() {
30
+ var _this = this;
31
+
32
+ return _asyncToGenerator(function* () {
33
+ var {
34
+ makeModel
35
+ } = _this.props;
36
+ var imageData = yield makeModel();
37
+
38
+ _this.setState({
39
+ imageData
40
+ });
41
+ })();
42
+ }
43
+
44
+ render() {
45
+ var {
46
+ imageData
47
+ } = this.state;
48
+ var src = "data:image/png;base64,".concat(imageData);
49
+ return (
50
+ /*#__PURE__*/
51
+ // eslint-disable-next-line jsx-a11y/alt-text
52
+ React.createElement("div", {
53
+ className: "mat-plot-lib-panel"
54
+ }, imageData && /*#__PURE__*/React.createElement("img", {
55
+ src: src
56
+ }))
57
+ );
58
+ }
59
+
60
+ }
61
+
62
+ _defineProperty(MatPlotLibPanel, "COMPONENT", 'MatPlotLibPanel');
63
+
64
+ MatPlotLibPanel.propTypes = {
65
+ makeModel: PropTypes.func.isRequired,
66
+ panelState: PropTypes.shape({})
67
+ };
68
+ MatPlotLibPanel.defaultProps = {
69
+ panelState: null
70
+ };
71
+ export default MatPlotLibPanel;
72
+ //# sourceMappingURL=MatPlotLibPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/panels/MatPlotLibPanel.jsx"],"names":["React","Component","PropTypes","MatPlotLibPanel","constructor","props","state","imageData","componentDidMount","initImage","makeModel","setState","render","src","propTypes","func","isRequired","panelState","shape","defaultProps"],"mappings":";;;;;;AAAA;;AACA;AACA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAGA;AACA;AACA;;AACA,MAAMC,eAAN,SAA8BF,SAA9B,CAAwC;AAGtCG,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,KAAL,GAAa;AACXC,MAAAA,SAAS,EAAE;AADA,KAAb;AAGD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKC,SAAL;AACD;;AAEKA,EAAAA,SAAS,GAAG;AAAA;;AAAA;AAChB,UAAM;AAAEC,QAAAA;AAAF,UAAgB,KAAI,CAACL,KAA3B;AACA,UAAME,SAAS,SAASG,SAAS,EAAjC;;AACA,MAAA,KAAI,CAACC,QAAL,CAAc;AAAEJ,QAAAA;AAAF,OAAd;AAHgB;AAIjB;;AAEDK,EAAAA,MAAM,GAAG;AACP,QAAM;AAAEL,MAAAA;AAAF,QAAgB,KAAKD,KAA3B;AAEA,QAAMO,GAAG,mCAA4BN,SAA5B,CAAT;AAEA;AAAA;AACE;AACA;AAAK,QAAA,SAAS,EAAC;AAAf,SAAqCA,SAAS,iBAAI;AAAK,QAAA,GAAG,EAAEM;AAAV,QAAlD;AAFF;AAID;;AA9BqC;;gBAAlCV,e,eACe,iB;;AAgCrBA,eAAe,CAACW,SAAhB,GAA4B;AAC1BJ,EAAAA,SAAS,EAAER,SAAS,CAACa,IAAV,CAAeC,UADA;AAE1BC,EAAAA,UAAU,EAAEf,SAAS,CAACgB,KAAV,CAAgB,EAAhB;AAFc,CAA5B;AAKAf,eAAe,CAACgB,YAAhB,GAA+B;AAC7BF,EAAAA,UAAU,EAAE;AADiB,CAA/B;AAIA,eAAed,eAAf","sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable react/no-unused-state */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './MatPlotLibPanel.scss';\n\n/**\n * Wraps and IrisGridPanel to add a refresh button for Pandas.\n */\nclass MatPlotLibPanel extends Component {\n static COMPONENT = 'MatPlotLibPanel';\n\n constructor(props) {\n super(props);\n\n this.state = {\n imageData: null,\n };\n }\n\n componentDidMount() {\n this.initImage();\n }\n\n async initImage() {\n const { makeModel } = this.props;\n const imageData = await makeModel();\n this.setState({ imageData });\n }\n\n render() {\n const { imageData } = this.state;\n\n const src = `data:image/png;base64,${imageData}`;\n\n return (\n // eslint-disable-next-line jsx-a11y/alt-text\n <div className=\"mat-plot-lib-panel\">{imageData && <img src={src} />}</div>\n );\n }\n}\n\nMatPlotLibPanel.propTypes = {\n makeModel: PropTypes.func.isRequired,\n panelState: PropTypes.shape({}),\n};\n\nMatPlotLibPanel.defaultProps = {\n panelState: null,\n};\n\nexport default MatPlotLibPanel;\n"],"file":"MatPlotLibPanel.js"}
@@ -8,6 +8,7 @@ export { default as InputFilterPanel } from "./InputFilterPanel";
8
8
  export { default as IrisGridPanel } from "./IrisGridPanel";
9
9
  export { default as LogPanel } from "./LogPanel";
10
10
  export { default as MarkdownPanel } from "./MarkdownPanel";
11
+ export { default as MatPlotLibPanel } from "./MatPlotLibPanel";
11
12
  export { default as NotebookPanel } from "./NotebookPanel";
12
13
  export { default as PandasPanel } from "./PandasPanel";
13
14
  export { default as Panel } from "./Panel";
@@ -8,6 +8,7 @@ export { default as InputFilterPanel } from "./InputFilterPanel.js";
8
8
  export { default as IrisGridPanel } from "./IrisGridPanel.js";
9
9
  export { default as LogPanel } from "./LogPanel.js";
10
10
  export { default as MarkdownPanel } from "./MarkdownPanel.js";
11
+ export { default as MatPlotLibPanel } from "./MatPlotLibPanel.js";
11
12
  export { default as NotebookPanel } from "./NotebookPanel.js";
12
13
  export { default as PandasPanel } from "./PandasPanel.js";
13
14
  export { default as Panel } from "./Panel.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/index.js"],"names":["default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","NotebookPanel","PandasPanel","Panel","WidgetPanel","WidgetPanelTooltip"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,mB;SACXF,OAAO,IAAIG,Y;SACXH,OAAO,IAAII,mB;SACXJ,OAAO,IAAIK,iB;SACXL,OAAO,IAAIM,qB;SACXN,OAAO,IAAIO,gB;SACXP,OAAO,IAAIQ,a;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,a;SACXV,OAAO,IAAIW,a;SACXX,OAAO,IAAIY,W;SACXZ,OAAO,IAAIa,K;SACXb,OAAO,IAAIc,W;SACXd,OAAO,IAAIe,kB","sourcesContent":["export { default as ChartPanel } from './ChartPanel';\nexport { default as CommandHistoryPanel } from './CommandHistoryPanel';\nexport { default as ConsolePanel } from './ConsolePanel';\nexport { default as DropdownFilterPanel } from './DropdownFilterPanel';\nexport { default as FileExplorerPanel } from './FileExplorerPanel';\nexport { default as FilterSetManagerPanel } from './FilterSetManagerPanel';\nexport { default as InputFilterPanel } from './InputFilterPanel';\nexport { default as IrisGridPanel } from './IrisGridPanel';\nexport { default as LogPanel } from './LogPanel';\nexport { default as MarkdownPanel } from './MarkdownPanel';\nexport { default as NotebookPanel } from './NotebookPanel';\nexport { default as PandasPanel } from './PandasPanel';\nexport { default as Panel } from './Panel';\nexport { default as WidgetPanel } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/panels/index.js"],"names":["default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","MatPlotLibPanel","NotebookPanel","PandasPanel","Panel","WidgetPanel","WidgetPanelTooltip"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,mB;SACXF,OAAO,IAAIG,Y;SACXH,OAAO,IAAII,mB;SACXJ,OAAO,IAAIK,iB;SACXL,OAAO,IAAIM,qB;SACXN,OAAO,IAAIO,gB;SACXP,OAAO,IAAIQ,a;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,a;SACXV,OAAO,IAAIW,e;SACXX,OAAO,IAAIY,a;SACXZ,OAAO,IAAIa,W;SACXb,OAAO,IAAIc,K;SACXd,OAAO,IAAIe,W;SACXf,OAAO,IAAIgB,kB","sourcesContent":["export { default as ChartPanel } from './ChartPanel';\nexport { default as CommandHistoryPanel } from './CommandHistoryPanel';\nexport { default as ConsolePanel } from './ConsolePanel';\nexport { default as DropdownFilterPanel } from './DropdownFilterPanel';\nexport { default as FileExplorerPanel } from './FileExplorerPanel';\nexport { default as FilterSetManagerPanel } from './FilterSetManagerPanel';\nexport { default as InputFilterPanel } from './InputFilterPanel';\nexport { default as IrisGridPanel } from './IrisGridPanel';\nexport { default as LogPanel } from './LogPanel';\nexport { default as MarkdownPanel } from './MarkdownPanel';\nexport { default as MatPlotLibPanel } from './MatPlotLibPanel';\nexport { default as NotebookPanel } from './NotebookPanel';\nexport { default as PandasPanel } from './PandasPanel';\nexport { default as Panel } from './Panel';\nexport { default as WidgetPanel } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.9.1-beta.8+4816848",
3
+ "version": "0.9.1-js-plugin-big-display.14+1900da8",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -34,15 +34,15 @@
34
34
  "start": "cross-env NODE_ENV=development npm run watch"
35
35
  },
36
36
  "dependencies": {
37
- "@deephaven/chart": "^0.9.1-beta.8+4816848",
38
- "@deephaven/console": "^0.9.1-beta.8+4816848",
39
- "@deephaven/dashboard": "^0.9.1-beta.8+4816848",
40
- "@deephaven/file-explorer": "^0.9.1-beta.8+4816848",
41
- "@deephaven/golden-layout": "^0.9.1-beta.8+4816848",
42
- "@deephaven/icons": "^0.9.1-beta.8+4816848",
43
- "@deephaven/iris-grid": "^0.9.1-beta.8+4816848",
44
- "@deephaven/jsapi-shim": "^0.9.1-beta.8+4816848",
45
- "@deephaven/utils": "^0.9.1-beta.8+4816848",
37
+ "@deephaven/chart": "^0.9.1-js-plugin-big-display.14+1900da8",
38
+ "@deephaven/console": "^0.9.1-js-plugin-big-display.14+1900da8",
39
+ "@deephaven/dashboard": "^0.9.1-js-plugin-big-display.14+1900da8",
40
+ "@deephaven/file-explorer": "^0.9.1-js-plugin-big-display.14+1900da8",
41
+ "@deephaven/golden-layout": "^0.9.1-js-plugin-big-display.14+1900da8",
42
+ "@deephaven/icons": "^0.9.1-js-plugin-big-display.14+1900da8",
43
+ "@deephaven/iris-grid": "^0.9.1-js-plugin-big-display.14+1900da8",
44
+ "@deephaven/jsapi-shim": "^0.9.1-js-plugin-big-display.14+1900da8",
45
+ "@deephaven/utils": "^0.9.1-js-plugin-big-display.14+1900da8",
46
46
  "@fortawesome/react-fontawesome": "^0.1.12",
47
47
  "classnames": "^2.3.1",
48
48
  "deep-equal": "^2.0.4",
@@ -66,18 +66,17 @@
66
66
  },
67
67
  "devDependencies": {
68
68
  "@babel/cli": "^7.16.0",
69
- "@deephaven/components": "^0.9.1-beta.8+4816848",
70
- "@deephaven/log": "^0.9.1-beta.8+4816848",
71
- "@deephaven/mocks": "^0.9.1-beta.8+4816848",
72
- "@deephaven/redux": "^0.9.1-beta.8+4816848",
73
- "@deephaven/tsconfig": "^0.9.1-beta.8+4816848",
69
+ "@deephaven/components": "^0.9.1-js-plugin-big-display.14+1900da8",
70
+ "@deephaven/log": "^0.9.1-js-plugin-big-display.14+1900da8",
71
+ "@deephaven/mocks": "^0.9.1-js-plugin-big-display.14+1900da8",
72
+ "@deephaven/redux": "^0.9.1-js-plugin-big-display.14+1900da8",
73
+ "@deephaven/tsconfig": "^0.9.1-js-plugin-big-display.14+1900da8",
74
74
  "@storybook/addon-actions": "^6.2.3",
75
75
  "@storybook/addon-essentials": "^6.2.3",
76
76
  "@storybook/addon-links": "^6.2.3",
77
77
  "@storybook/react": "^6.2.3",
78
78
  "@types/react": "^16.14.8",
79
79
  "cross-env": "^7.0.2",
80
- "follow-redirects": ">=1.14.7",
81
80
  "identity-obj-proxy": "^3.0.0",
82
81
  "npm-run-all": "^4.1.5",
83
82
  "react": "^16.14.0",
@@ -92,5 +91,5 @@
92
91
  "publishConfig": {
93
92
  "access": "public"
94
93
  },
95
- "gitHead": "481684819a21a2839b424d0dfce542b09bd8fd58"
94
+ "gitHead": "1900da8811268420832c254d0afc721c5a57125e"
96
95
  }