@deephaven/dashboard-core-plugins 0.38.1-beta.3 → 0.38.1-beta.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilderPlugin.d.ts","sourceRoot":"","sources":["../src/ChartBuilderPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAM9B,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,GAAG,CAAC,OAAO,GAAG,IAAI,CAmDpB;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ChartBuilderPlugin.d.ts","sourceRoot":"","sources":["../src/ChartBuilderPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAM9B,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,GAAG,CAAC,OAAO,GAAG,IAAI,CAqDpB;AAED,eAAe,kBAAkB,CAAC"}
@@ -23,7 +23,8 @@ export function ChartBuilderPlugin(props) {
23
23
  var {
24
24
  settings
25
25
  } = metadata;
26
- var makeModel = () => ChartModelFactory.makeModelFromSettings(settings, table);
26
+ var makeApi = () => Promise.resolve(dh);
27
+ var makeModel = () => ChartModelFactory.makeModelFromSettings(dh, settings, table);
27
28
  var title = ChartUtils.titleFromSettings(settings);
28
29
  var config = {
29
30
  type: 'react-component',
@@ -32,6 +33,7 @@ export function ChartBuilderPlugin(props) {
32
33
  localDashboardId: id,
33
34
  id: panelId,
34
35
  metadata,
36
+ makeApi,
35
37
  makeModel
36
38
  },
37
39
  title,
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilderPlugin.js","names":["useCallback","ChartModelFactory","ChartUtils","assertIsDashboardPluginProps","LayoutUtils","useListener","shortid","IrisGridEvent","ChartPanel","ChartBuilderPlugin","props","id","layout","handleCreateChart","metadata","panelId","generate","table","settings","makeModel","makeModelFromSettings","title","titleFromSettings","config","type","component","COMPONENT","localDashboardId","root","openComponent","eventHub","CREATE_CHART"],"sources":["../src/ChartBuilderPlugin.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { SeriesPlotStyle, Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridEvent } from './events';\nimport { ChartPanel } from './panels';\n\nexport type ChartBuilderPluginProps = Partial<DashboardPluginComponentProps>;\n\n/**\n * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided\n * Requires the GridPlugin and ChartPlugin plugins to be loaded as well\n */\nexport function ChartBuilderPlugin(\n props: ChartBuilderPluginProps\n): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout } = props;\n const handleCreateChart = useCallback(\n ({\n metadata,\n panelId = shortid.generate(),\n table,\n }: {\n metadata: {\n settings: {\n type: keyof SeriesPlotStyle;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n hiddenSeries?: string[];\n };\n sourcePanelId: string;\n table: string;\n tableSettings: Record<string, unknown>;\n };\n panelId?: string;\n table: Table;\n }) => {\n const { settings } = metadata;\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(settings, table);\n const title = ChartUtils.titleFromSettings(settings);\n\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.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 });\n },\n [id, layout]\n );\n\n useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);\n\n return null;\n}\n\nexport default ChartBuilderPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,kBAAkB;AAChE,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,WAAW,QACN,sBAAsB;AAE7B,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,aAAa;AAAA,SACbC,UAAU;AAInB;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkB,CAChCC,KAA8B,EACV;EACpBP,4BAA4B,CAACO,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC;EAAO,CAAC,GAAGF,KAAK;EAC5B,IAAMG,iBAAiB,GAAGb,WAAW,CACnC,QAmBM;IAAA,IAnBL;MACCc,QAAQ;MACRC,OAAO,GAAGT,OAAO,CAACU,QAAQ,EAAE;MAC5BC;IAgBF,CAAC;IACC,IAAM;MAAEC;IAAS,CAAC,GAAGJ,QAAQ;IAC7B,IAAMK,SAAS,GAAG,MAChBlB,iBAAiB,CAACmB,qBAAqB,CAACF,QAAQ,EAAED,KAAK,CAAC;IAC1D,IAAMI,KAAK,GAAGnB,UAAU,CAACoB,iBAAiB,CAACJ,QAAQ,CAAC;IAEpD,IAAMK,MAAM,GAAG;MACbC,IAAI,EAAE,iBAA0B;MAChCC,SAAS,EAAEjB,UAAU,CAACkB,SAAS;MAC/BhB,KAAK,EAAE;QACLiB,gBAAgB,EAAEhB,EAAE;QACpBA,EAAE,EAAEI,OAAO;QACXD,QAAQ;QACRK;MACF,CAAC;MACDE,KAAK;MACLV,EAAE,EAAEI;IACN,CAAC;IAED,IAAM;MAAEa;IAAK,CAAC,GAAGhB,MAAM;IACvBR,WAAW,CAACyB,aAAa,CAAC;MAAED,IAAI;MAAEL;IAAO,CAAC,CAAC;EAC7C,CAAC,EACD,CAACZ,EAAE,EAAEC,MAAM,CAAC,CACb;EAEDP,WAAW,CAACO,MAAM,CAACkB,QAAQ,EAAEvB,aAAa,CAACwB,YAAY,EAAElB,iBAAiB,CAAC;EAE3E,OAAO,IAAI;AACb;AAEA,eAAeJ,kBAAkB"}
1
+ {"version":3,"file":"ChartBuilderPlugin.js","names":["useCallback","ChartModelFactory","ChartUtils","assertIsDashboardPluginProps","LayoutUtils","useListener","shortid","IrisGridEvent","ChartPanel","ChartBuilderPlugin","props","id","layout","handleCreateChart","metadata","panelId","generate","table","settings","makeApi","Promise","resolve","dh","makeModel","makeModelFromSettings","title","titleFromSettings","config","type","component","COMPONENT","localDashboardId","root","openComponent","eventHub","CREATE_CHART"],"sources":["../src/ChartBuilderPlugin.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { SeriesPlotStyle, Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridEvent } from './events';\nimport { ChartPanel } from './panels';\n\nexport type ChartBuilderPluginProps = Partial<DashboardPluginComponentProps>;\n\n/**\n * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided\n * Requires the GridPlugin and ChartPlugin plugins to be loaded as well\n */\nexport function ChartBuilderPlugin(\n props: ChartBuilderPluginProps\n): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout } = props;\n const handleCreateChart = useCallback(\n ({\n metadata,\n panelId = shortid.generate(),\n table,\n }: {\n metadata: {\n settings: {\n type: keyof SeriesPlotStyle;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n hiddenSeries?: string[];\n };\n sourcePanelId: string;\n table: string;\n tableSettings: Record<string, unknown>;\n };\n panelId?: string;\n table: Table;\n }) => {\n const { settings } = metadata;\n const makeApi = () => Promise.resolve(dh);\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(dh, settings, table);\n const title = ChartUtils.titleFromSettings(settings);\n\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeApi,\n makeModel,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config });\n },\n [id, layout]\n );\n\n useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);\n\n return null;\n}\n\nexport default ChartBuilderPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,iBAAiB,EAAEC,UAAU,QAAQ,kBAAkB;AAChE,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,WAAW,QACN,sBAAsB;AAE7B,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,aAAa;AAAA,SACbC,UAAU;AAInB;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkB,CAChCC,KAA8B,EACV;EACpBP,4BAA4B,CAACO,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC;EAAO,CAAC,GAAGF,KAAK;EAC5B,IAAMG,iBAAiB,GAAGb,WAAW,CACnC,QAmBM;IAAA,IAnBL;MACCc,QAAQ;MACRC,OAAO,GAAGT,OAAO,CAACU,QAAQ,EAAE;MAC5BC;IAgBF,CAAC;IACC,IAAM;MAAEC;IAAS,CAAC,GAAGJ,QAAQ;IAC7B,IAAMK,OAAO,GAAG,MAAMC,OAAO,CAACC,OAAO,CAACC,EAAE,CAAC;IACzC,IAAMC,SAAS,GAAG,MAChBtB,iBAAiB,CAACuB,qBAAqB,CAACF,EAAE,EAAEJ,QAAQ,EAAED,KAAK,CAAC;IAC9D,IAAMQ,KAAK,GAAGvB,UAAU,CAACwB,iBAAiB,CAACR,QAAQ,CAAC;IAEpD,IAAMS,MAAM,GAAG;MACbC,IAAI,EAAE,iBAA0B;MAChCC,SAAS,EAAErB,UAAU,CAACsB,SAAS;MAC/BpB,KAAK,EAAE;QACLqB,gBAAgB,EAAEpB,EAAE;QACpBA,EAAE,EAAEI,OAAO;QACXD,QAAQ;QACRK,OAAO;QACPI;MACF,CAAC;MACDE,KAAK;MACLd,EAAE,EAAEI;IACN,CAAC;IAED,IAAM;MAAEiB;IAAK,CAAC,GAAGpB,MAAM;IACvBR,WAAW,CAAC6B,aAAa,CAAC;MAAED,IAAI;MAAEL;IAAO,CAAC,CAAC;EAC7C,CAAC,EACD,CAAChB,EAAE,EAAEC,MAAM,CAAC,CACb;EAEDP,WAAW,CAACO,MAAM,CAACsB,QAAQ,EAAE3B,aAAa,CAAC4B,YAAY,EAAEtB,iBAAiB,CAAC;EAE3E,OAAO,IAAI;AACb;AAEA,eAAeJ,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAc,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACtE,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA+DvE;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAc,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACtE,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAoEvE;AAED,eAAe,WAAW,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { useCallback, useEffect } from 'react';
2
2
  import { ChartModelFactory } from '@deephaven/chart';
3
3
  import { assertIsDashboardPluginProps, LayoutUtils, PanelEvent, useListener } from '@deephaven/dashboard';
4
+ import { useApi } from '@deephaven/jsapi-bootstrap';
4
5
  import shortid from 'shortid';
5
6
  import { ChartPanel } from "./panels/index.js";
6
7
  export function ChartPlugin(props) {
@@ -11,6 +12,7 @@ export function ChartPlugin(props) {
11
12
  registerComponent,
12
13
  hydrate
13
14
  } = props;
15
+ var dh = useApi();
14
16
  var handlePanelOpen = useCallback(_ref => {
15
17
  var {
16
18
  dragEvent,
@@ -29,7 +31,8 @@ export function ChartPlugin(props) {
29
31
  name,
30
32
  figure: name
31
33
  };
32
- var makeModel = () => fetch().then(figure => ChartModelFactory.makeModel(undefined, figure));
34
+ var makeApi = () => Promise.resolve(dh);
35
+ var makeModel = () => fetch().then(figure => ChartModelFactory.makeModel(dh, undefined, figure));
33
36
  var config = {
34
37
  type: 'react-component',
35
38
  component: ChartPanel.COMPONENT,
@@ -37,6 +40,7 @@ export function ChartPlugin(props) {
37
40
  localDashboardId: id,
38
41
  id: panelId,
39
42
  metadata,
43
+ makeApi,
40
44
  makeModel
41
45
  },
42
46
  title: name,
@@ -50,7 +54,7 @@ export function ChartPlugin(props) {
50
54
  config,
51
55
  dragEvent
52
56
  });
53
- }, [id, layout]);
57
+ }, [dh, id, layout]);
54
58
  useEffect(function registerComponentsAndReturnCleanup() {
55
59
  var cleanups = [registerComponent(ChartPanel.COMPONENT, ChartPanel, hydrate)];
56
60
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPlugin.js","names":["useCallback","useEffect","ChartModelFactory","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","shortid","ChartPanel","ChartPlugin","props","id","layout","registerComponent","hydrate","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","FIGURE","metadata","figure","makeModel","then","undefined","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect, DragEvent } from 'react';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { Figure, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { ChartPanel, ChartPanelProps } from './panels';\n\nexport type ChartPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<ChartPanelProps>;\n};\n\nexport function ChartPlugin(props: ChartPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent, hydrate } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Figure>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.FIGURE) {\n return;\n }\n\n const metadata = { name, figure: name };\n const makeModel = () =>\n fetch().then((figure: Figure) =>\n ChartModelFactory.makeModel(undefined, figure)\n );\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n ChartPanel.COMPONENT,\n ChartPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default ChartPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAmB,OAAO;AACzD,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAE7B,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,UAAU;AAMnB,OAAO,SAASC,WAAW,CAACC,KAAuB,EAAsB;EACvEP,4BAA4B,CAACO,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC,MAAM;IAAEC,iBAAiB;IAAEC;EAAQ,CAAC,GAAGJ,KAAK;EACxD,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAUM;IAAA,IAVL;MACCgB,SAAS;MACTC,KAAK;MACLC,OAAO,GAAGX,OAAO,CAACY,QAAQ,EAAE;MAC5BC;IAMF,CAAC;IACC,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAY,CAACC,MAAM,EAAE;MACnC;IACF;IAEA,IAAMC,QAAQ,GAAG;MAAEL,IAAI;MAAEM,MAAM,EAAEN;IAAK,CAAC;IACvC,IAAMO,SAAS,GAAG,MAChBX,KAAK,EAAE,CAACY,IAAI,CAAEF,MAAc,IAC1BzB,iBAAiB,CAAC0B,SAAS,CAACE,SAAS,EAAEH,MAAM,CAAC,CAC/C;IACH,IAAMI,MAAM,GAAG;MACbT,IAAI,EAAE,iBAA0B;MAChCU,SAAS,EAAExB,UAAU,CAACyB,SAAS;MAC/BvB,KAAK,EAAE;QACLwB,gBAAgB,EAAEvB,EAAE;QACpBA,EAAE,EAAEO,OAAO;QACXQ,QAAQ;QACRE;MACF,CAAC;MACDO,KAAK,EAAEd,IAAI;MACXV,EAAE,EAAEO;IACN,CAAC;IAED,IAAM;MAAEkB;IAAK,CAAC,GAAGxB,MAAM;IACvBR,WAAW,CAACiC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEf;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACL,EAAE,EAAEC,MAAM,CAAC,CACb;EAEDX,SAAS,CACP,SAASqC,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACf1B,iBAAiB,CACfL,UAAU,CAACyB,SAAS,EACpBzB,UAAU,EACVM,OAAO,CACR,CACF;IACD,OAAO,MAAM;MACXyB,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC3B,OAAO,EAAED,iBAAiB,CAAC,CAC7B;EAEDP,WAAW,CAACM,MAAM,CAAC8B,QAAQ,EAAErC,UAAU,CAACsC,IAAI,EAAE5B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeN,WAAW"}
1
+ {"version":3,"file":"ChartPlugin.js","names":["useCallback","useEffect","ChartModelFactory","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","useApi","shortid","ChartPanel","ChartPlugin","props","id","layout","registerComponent","hydrate","dh","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","VariableType","FIGURE","metadata","figure","makeApi","Promise","resolve","makeModel","then","undefined","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect, DragEvent } from 'react';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport type { Figure, VariableDefinition } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport shortid from 'shortid';\nimport { ChartPanel, ChartPanelProps } from './panels';\n\nexport type ChartPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<ChartPanelProps>;\n};\n\nexport function ChartPlugin(props: ChartPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent, hydrate } = props;\n\n const dh = useApi();\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Figure>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.FIGURE) {\n return;\n }\n\n const metadata = { name, figure: name };\n const makeApi = () => Promise.resolve(dh);\n const makeModel = () =>\n fetch().then((figure: Figure) =>\n ChartModelFactory.makeModel(dh, undefined, figure)\n );\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeApi,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [dh, id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n ChartPanel.COMPONENT,\n ChartPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default ChartPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAmB,OAAO;AACzD,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAE7B,SAASC,MAAM,QAAQ,4BAA4B;AACnD,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,UAAU;AAMnB,OAAO,SAASC,WAAW,CAACC,KAAuB,EAAsB;EACvER,4BAA4B,CAACQ,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC,MAAM;IAAEC,iBAAiB;IAAEC;EAAQ,CAAC,GAAGJ,KAAK;EAExD,IAAMK,EAAE,GAAGT,MAAM,EAAE;EAEnB,IAAMU,eAAe,GAAGjB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCkB,SAAS;MACTC,KAAK;MACLC,OAAO,GAAGZ,OAAO,CAACa,QAAQ,EAAE;MAC5BC;IAMF,CAAC;IACC,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAIE,IAAI,KAAKR,EAAE,CAACS,YAAY,CAACC,MAAM,EAAE;MACnC;IACF;IAEA,IAAMC,QAAQ,GAAG;MAAEJ,IAAI;MAAEK,MAAM,EAAEL;IAAK,CAAC;IACvC,IAAMM,OAAO,GAAG,MAAMC,OAAO,CAACC,OAAO,CAACf,EAAE,CAAC;IACzC,IAAMgB,SAAS,GAAG,MAChBb,KAAK,EAAE,CAACc,IAAI,CAAEL,MAAc,IAC1B1B,iBAAiB,CAAC8B,SAAS,CAAChB,EAAE,EAAEkB,SAAS,EAAEN,MAAM,CAAC,CACnD;IACH,IAAMO,MAAM,GAAG;MACbX,IAAI,EAAE,iBAA0B;MAChCY,SAAS,EAAE3B,UAAU,CAAC4B,SAAS;MAC/B1B,KAAK,EAAE;QACL2B,gBAAgB,EAAE1B,EAAE;QACpBA,EAAE,EAAEQ,OAAO;QACXO,QAAQ;QACRE,OAAO;QACPG;MACF,CAAC;MACDO,KAAK,EAAEhB,IAAI;MACXX,EAAE,EAAEQ;IACN,CAAC;IAED,IAAM;MAAEoB;IAAK,CAAC,GAAG3B,MAAM;IACvBT,WAAW,CAACqC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEjB;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACF,EAAE,EAAEJ,EAAE,EAAEC,MAAM,CAAC,CACjB;EAEDZ,SAAS,CACP,SAASyC,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACf7B,iBAAiB,CACfL,UAAU,CAAC4B,SAAS,EACpB5B,UAAU,EACVM,OAAO,CACR,CACF;IACD,OAAO,MAAM;MACX4B,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC9B,OAAO,EAAED,iBAAiB,CAAC,CAC7B;EAEDR,WAAW,CAACO,MAAM,CAACiC,QAAQ,EAAEzC,UAAU,CAAC0C,IAAI,EAAE9B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeP,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQ7D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,6BAA6B,CAAC,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,kBAAkB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAwErE;AAED,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,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQ7D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,6BAA6B,CAAC,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,kBAAkB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CA4ErE;AAED,eAAe,UAAU,CAAC"}
@@ -34,7 +34,8 @@ export function GridPlugin(props) {
34
34
  table: name,
35
35
  type: widget.type
36
36
  };
37
- var makeModel = () => fetch().then(table => IrisGridModelFactory.makeModel(table));
37
+ var makeApi = () => Promise.resolve(dh);
38
+ var makeModel = () => fetch().then(table => IrisGridModelFactory.makeModel(dh, table));
38
39
  var config = {
39
40
  type: 'react-component',
40
41
  component: IrisGridPanel.COMPONENT,
@@ -44,6 +45,7 @@ export function GridPlugin(props) {
44
45
  localDashboardId: id,
45
46
  id: panelId,
46
47
  metadata,
48
+ makeApi,
47
49
  makeModel,
48
50
  theme
49
51
  },
@@ -1 +1 @@
1
- {"version":3,"file":"GridPlugin.js","names":["useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","IrisGridPanel","SUPPORTED_TYPES","dh","VariableType","TABLE","TREETABLE","HIERARCHICALTABLE","GridPlugin","props","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","theme","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","includes","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/GridPlugin.tsx"],"sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory, IrisGridThemeType } from '@deephaven/iris-grid';\nimport { Table, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridPanel, IrisGridPanelProps } from './panels';\n\nconst SUPPORTED_TYPES: string[] = [\n dh.VariableType.TABLE,\n dh.VariableType.TREETABLE,\n dh.VariableType.HIERARCHICALTABLE,\n];\n\nexport type GridPluginProps = Partial<DashboardPluginComponentProps> & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction<IrisGridPanelProps>;\n theme?: Partial<IrisGridThemeType>;\n};\n\nexport function GridPlugin(props: GridPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const {\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate,\n theme,\n } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Table>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (!SUPPORTED_TYPES.includes(type)) {\n return;\n }\n\n const metadata = { name, table: name, type: widget.type };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component' as const,\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: name,\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 useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n IrisGridPanel.COMPONENT,\n IrisGridPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default GridPlugin;\n"],"mappings":"AAAA,SAA2BA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAChE,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAC7B,SAASC,oBAAoB,QAA2B,sBAAsB;AAE9E,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,aAAa;AAEtB,IAAMC,eAAyB,GAAG,CAChCC,EAAE,CAACC,YAAY,CAACC,KAAK,EACrBF,EAAE,CAACC,YAAY,CAACE,SAAS,EACzBH,EAAE,CAACC,YAAY,CAACG,iBAAiB,CAClC;AASD,OAAO,SAASC,UAAU,CAACC,KAAsB,EAAsB;EACrEd,4BAA4B,CAACc,KAAK,CAAC;EACnC,IAAM;IACJC,iBAAiB;IACjBC,UAAU;IACVC,EAAE;IACFC,MAAM;IACNC,iBAAiB;IACjBC,OAAO;IACPC;EACF,CAAC,GAAGP,KAAK;EACT,IAAMQ,eAAe,GAAGxB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCyB,SAAS;MACTC,KAAK;MACLC,OAAO,GAAGpB,OAAO,CAACqB,QAAQ,EAAE;MAC5BC;IAMF,CAAC;IACC,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAI,CAACpB,eAAe,CAACuB,QAAQ,CAACD,IAAI,CAAC,EAAE;MACnC;IACF;IAEA,IAAME,QAAQ,GAAG;MAAEH,IAAI;MAAEI,KAAK,EAAEJ,IAAI;MAAEC,IAAI,EAAEF,MAAM,CAACE;IAAK,CAAC;IACzD,IAAMI,SAAS,GAAG,MAChBT,KAAK,EAAE,CAACU,IAAI,CAAEF,KAAY,IAAK5B,oBAAoB,CAAC6B,SAAS,CAACD,KAAK,CAAC,CAAC;IACvE,IAAMG,MAAM,GAAG;MACbN,IAAI,EAAE,iBAA0B;MAChCO,SAAS,EAAE9B,aAAa,CAAC+B,SAAS;MAClCvB,KAAK,EAAE;QACLC,iBAAiB;QACjBC,UAAU;QACVsB,gBAAgB,EAAErB,EAAE;QACpBA,EAAE,EAAEQ,OAAO;QACXM,QAAQ;QACRE,SAAS;QACTZ;MACF,CAAC;MACDkB,KAAK,EAAEX,IAAI;MACXX,EAAE,EAAEQ;IACN,CAAC;IAED,IAAM;MAAEe;IAAK,CAAC,GAAGtB,MAAM;IACvBjB,WAAW,CAACwC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEZ;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACR,iBAAiB,EAAEE,EAAE,EAAEC,MAAM,EAAEF,UAAU,EAAEK,KAAK,CAAC,CACnD;EAEDtB,SAAS,CACP,SAAS2C,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CACfb,aAAa,CAAC+B,SAAS,EACvB/B,aAAa,EACbc,OAAO,CACR,CACF;IACD,OAAO,MAAM;MACXuB,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAACzB,OAAO,EAAED,iBAAiB,CAAC,CAC7B;EAEDhB,WAAW,CAACe,MAAM,CAAC4B,QAAQ,EAAE5C,UAAU,CAAC6C,IAAI,EAAEzB,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeT,UAAU"}
1
+ {"version":3,"file":"GridPlugin.js","names":["useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","IrisGridPanel","SUPPORTED_TYPES","dh","VariableType","TABLE","TREETABLE","HIERARCHICALTABLE","GridPlugin","props","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","theme","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","includes","metadata","table","makeApi","Promise","resolve","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/GridPlugin.tsx"],"sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory, IrisGridThemeType } from '@deephaven/iris-grid';\nimport { Table, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridPanel, IrisGridPanelProps } from './panels';\n\nconst SUPPORTED_TYPES: string[] = [\n dh.VariableType.TABLE,\n dh.VariableType.TREETABLE,\n dh.VariableType.HIERARCHICALTABLE,\n];\n\nexport type GridPluginProps = Partial<DashboardPluginComponentProps> & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction<IrisGridPanelProps>;\n theme?: Partial<IrisGridThemeType>;\n};\n\nexport function GridPlugin(props: GridPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const {\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate,\n theme,\n } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Table>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (!SUPPORTED_TYPES.includes(type)) {\n return;\n }\n\n const metadata = { name, table: name, type: widget.type };\n const makeApi = () => Promise.resolve(dh);\n const makeModel = () =>\n fetch().then((table: Table) =>\n IrisGridModelFactory.makeModel(dh, table)\n );\n const config = {\n type: 'react-component' as const,\n component: IrisGridPanel.COMPONENT,\n props: {\n getDownloadWorker,\n loadPlugin,\n localDashboardId: id,\n id: panelId,\n metadata,\n makeApi,\n makeModel,\n theme,\n },\n title: name,\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 useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n IrisGridPanel.COMPONENT,\n IrisGridPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default GridPlugin;\n"],"mappings":"AAAA,SAA2BA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAChE,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAC7B,SAASC,oBAAoB,QAA2B,sBAAsB;AAE9E,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,aAAa;AAEtB,IAAMC,eAAyB,GAAG,CAChCC,EAAE,CAACC,YAAY,CAACC,KAAK,EACrBF,EAAE,CAACC,YAAY,CAACE,SAAS,EACzBH,EAAE,CAACC,YAAY,CAACG,iBAAiB,CAClC;AASD,OAAO,SAASC,UAAU,CAACC,KAAsB,EAAsB;EACrEd,4BAA4B,CAACc,KAAK,CAAC;EACnC,IAAM;IACJC,iBAAiB;IACjBC,UAAU;IACVC,EAAE;IACFC,MAAM;IACNC,iBAAiB;IACjBC,OAAO;IACPC;EACF,CAAC,GAAGP,KAAK;EACT,IAAMQ,eAAe,GAAGxB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCyB,SAAS;MACTC,KAAK;MACLC,OAAO,GAAGpB,OAAO,CAACqB,QAAQ,EAAE;MAC5BC;IAMF,CAAC;IACC,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAI,CAACpB,eAAe,CAACuB,QAAQ,CAACD,IAAI,CAAC,EAAE;MACnC;IACF;IAEA,IAAME,QAAQ,GAAG;MAAEH,IAAI;MAAEI,KAAK,EAAEJ,IAAI;MAAEC,IAAI,EAAEF,MAAM,CAACE;IAAK,CAAC;IACzD,IAAMI,OAAO,GAAG,MAAMC,OAAO,CAACC,OAAO,CAAC3B,EAAE,CAAC;IACzC,IAAM4B,SAAS,GAAG,MAChBZ,KAAK,EAAE,CAACa,IAAI,CAAEL,KAAY,IACxB5B,oBAAoB,CAACgC,SAAS,CAAC5B,EAAE,EAAEwB,KAAK,CAAC,CAC1C;IACH,IAAMM,MAAM,GAAG;MACbT,IAAI,EAAE,iBAA0B;MAChCU,SAAS,EAAEjC,aAAa,CAACkC,SAAS;MAClC1B,KAAK,EAAE;QACLC,iBAAiB;QACjBC,UAAU;QACVyB,gBAAgB,EAAExB,EAAE;QACpBA,EAAE,EAAEQ,OAAO;QACXM,QAAQ;QACRE,OAAO;QACPG,SAAS;QACTf;MACF,CAAC;MACDqB,KAAK,EAAEd,IAAI;MACXX,EAAE,EAAEQ;IACN,CAAC;IAED,IAAM;MAAEkB;IAAK,CAAC,GAAGzB,MAAM;IACvBjB,WAAW,CAAC2C,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEf;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACR,iBAAiB,EAAEE,EAAE,EAAEC,MAAM,EAAEF,UAAU,EAAEK,KAAK,CAAC,CACnD;EAEDtB,SAAS,CACP,SAAS8C,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACf3B,iBAAiB,CACfb,aAAa,CAACkC,SAAS,EACvBlC,aAAa,EACbc,OAAO,CACR,CACF;IACD,OAAO,MAAM;MACX0B,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC5B,OAAO,EAAED,iBAAiB,CAAC,CAC7B;EAEDhB,WAAW,CAACe,MAAM,CAAC+B,QAAQ,EAAE/C,UAAU,CAACgD,IAAI,EAAE5B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeT,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAe,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAiDzE;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAe,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAmDzE;AAED,eAAe,YAAY,CAAC"}
@@ -29,7 +29,7 @@ export function PandasPlugin(props) {
29
29
  name,
30
30
  table: name
31
31
  };
32
- var makeModel = () => fetch().then(table => IrisGridModelFactory.makeModel(table));
32
+ var makeModel = () => fetch().then(table => IrisGridModelFactory.makeModel(dh, table));
33
33
  var config = {
34
34
  type: 'react-component',
35
35
  component: PandasPanel.COMPONENT,
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPlugin.js","names":["useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","PandasPanel","PandasPlugin","props","hydrate","id","layout","registerComponent","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","PANDAS","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/PandasPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { PandasPanel, PandasPanelProps } from './panels';\n\nexport type PandasPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<PandasPanelProps>;\n};\n\nexport function PandasPlugin(props: PandasPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { hydrate, id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({ dragEvent, fetch, panelId = shortid.generate(), widget }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.PANDAS) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component' as const,\n component: PandasPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default PandasPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAC9C,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,sBAAsB;AAE3D,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,WAAW;AAMpB,OAAO,SAASC,YAAY,CAACC,KAAwB,EAAsB;EACzER,4BAA4B,CAACQ,KAAK,CAAC;EACnC,IAAM;IAAEC,OAAO;IAAEC,EAAE;IAAEC,MAAM;IAAEC;EAAkB,CAAC,GAAGJ,KAAK;EAExD,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAAgE;IAAA,IAA/D;MAAEgB,SAAS;MAAEC,KAAK;MAAEC,OAAO,GAAGX,OAAO,CAACY,QAAQ,EAAE;MAAEC;IAAO,CAAC;IACzD,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAY,CAACC,MAAM,EAAE;MACnC;IACF;IAEA,IAAMC,QAAQ,GAAG;MAAEL,IAAI;MAAEM,KAAK,EAAEN;IAAK,CAAC;IACtC,IAAMO,SAAS,GAAG,MAChBX,KAAK,EAAE,CAACY,IAAI,CAAEF,KAAY,IAAKrB,oBAAoB,CAACsB,SAAS,CAACD,KAAK,CAAC,CAAC;IACvE,IAAMG,MAAM,GAAG;MACbR,IAAI,EAAE,iBAA0B;MAChCS,SAAS,EAAEvB,WAAW,CAACwB,SAAS;MAChCtB,KAAK,EAAE;QACLuB,gBAAgB,EAAErB,EAAE;QACpBA,EAAE,EAAEM,OAAO;QACXQ,QAAQ;QACRE;MACF,CAAC;MACDM,KAAK,EAAEb,IAAI;MACXT,EAAE,EAAEM;IACN,CAAC;IAED,IAAM;MAAEiB;IAAK,CAAC,GAAGtB,MAAM;IACvBV,WAAW,CAACiC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEd;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACJ,EAAE,EAAEC,MAAM,CAAC,CACb;EAEDZ,SAAS,CACP,SAASoC,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CAACN,WAAW,CAACwB,SAAS,EAAExB,WAAW,EAAEG,OAAO,CAAC,CAC/D;IAED,OAAO,MAAM;MACX2B,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC7B,OAAO,EAAEG,iBAAiB,CAAC,CAC7B;EAEDT,WAAW,CAACQ,MAAM,CAAC4B,QAAQ,EAAErC,UAAU,CAACsC,IAAI,EAAE3B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeN,YAAY"}
1
+ {"version":3,"file":"PandasPlugin.js","names":["useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","PandasPanel","PandasPlugin","props","hydrate","id","layout","registerComponent","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","PANDAS","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/PandasPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport type { Table } from '@deephaven/jsapi-types';\nimport shortid from 'shortid';\nimport { PandasPanel, PandasPanelProps } from './panels';\n\nexport type PandasPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<PandasPanelProps>;\n};\n\nexport function PandasPlugin(props: PandasPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { hydrate, id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({ dragEvent, fetch, panelId = shortid.generate(), widget }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.PANDAS) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) =>\n IrisGridModelFactory.makeModel(dh, table)\n );\n const config = {\n type: 'react-component' as const,\n component: PandasPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default PandasPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAC9C,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,sBAAsB;AAE3D,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,WAAW;AAMpB,OAAO,SAASC,YAAY,CAACC,KAAwB,EAAsB;EACzER,4BAA4B,CAACQ,KAAK,CAAC;EACnC,IAAM;IAAEC,OAAO;IAAEC,EAAE;IAAEC,MAAM;IAAEC;EAAkB,CAAC,GAAGJ,KAAK;EAExD,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAAgE;IAAA,IAA/D;MAAEgB,SAAS;MAAEC,KAAK;MAAEC,OAAO,GAAGX,OAAO,CAACY,QAAQ,EAAE;MAAEC;IAAO,CAAC;IACzD,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAY,CAACC,MAAM,EAAE;MACnC;IACF;IAEA,IAAMC,QAAQ,GAAG;MAAEL,IAAI;MAAEM,KAAK,EAAEN;IAAK,CAAC;IACtC,IAAMO,SAAS,GAAG,MAChBX,KAAK,EAAE,CAACY,IAAI,CAAEF,KAAY,IACxBrB,oBAAoB,CAACsB,SAAS,CAACL,EAAE,EAAEI,KAAK,CAAC,CAC1C;IACH,IAAMG,MAAM,GAAG;MACbR,IAAI,EAAE,iBAA0B;MAChCS,SAAS,EAAEvB,WAAW,CAACwB,SAAS;MAChCtB,KAAK,EAAE;QACLuB,gBAAgB,EAAErB,EAAE;QACpBA,EAAE,EAAEM,OAAO;QACXQ,QAAQ;QACRE;MACF,CAAC;MACDM,KAAK,EAAEb,IAAI;MACXT,EAAE,EAAEM;IACN,CAAC;IAED,IAAM;MAAEiB;IAAK,CAAC,GAAGtB,MAAM;IACvBV,WAAW,CAACiC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEd;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACJ,EAAE,EAAEC,MAAM,CAAC,CACb;EAEDZ,SAAS,CACP,SAASoC,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CAACN,WAAW,CAACwB,SAAS,EAAExB,WAAW,EAAEG,OAAO,CAAC,CAC/D;IAED,OAAO,MAAM;MACX2B,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC7B,OAAO,EAAEG,iBAAiB,CAAC,CAC7B;EAEDT,WAAW,CAACQ,MAAM,CAAC4B,QAAQ,EAAErC,UAAU,CAACsC,IAAI,EAAE3B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeN,YAAY"}
@@ -2,7 +2,7 @@ import { Component, ReactElement, RefObject } from 'react';
2
2
  import { Chart, ChartModel, ChartModelSettings, FilterMap } from '@deephaven/chart';
3
3
  import { PanelComponent } from '@deephaven/dashboard';
4
4
  import { InputFilter, ColumnName, DehydratedSort, DehydratedAdvancedFilter, DehydratedQuickFilter, LegacyDehydratedSort } from '@deephaven/iris-grid';
5
- import { SeriesPlotStyle, TableTemplate } from '@deephaven/jsapi-shim';
5
+ import type { dh as DhType, SeriesPlotStyle, TableTemplate } from '@deephaven/jsapi-types';
6
6
  import { WorkspaceSettings } from '@deephaven/redux';
7
7
  import { Pending } from '@deephaven/utils';
8
8
  import type { Container, EventEmitter } from '@deephaven/golden-layout';
@@ -58,6 +58,7 @@ export interface GLChartPanelState {
58
58
  figure?: string;
59
59
  }
60
60
  export interface ChartPanelProps {
61
+ makeApi: () => Promise<DhType>;
61
62
  glContainer: Container;
62
63
  glEventHub: EventEmitter;
63
64
  metadata: ChartPanelMetadata;
@@ -76,6 +77,7 @@ export interface ChartPanelProps {
76
77
  settings: Partial<WorkspaceSettings>;
77
78
  }
78
79
  interface ChartPanelState {
80
+ dh: DhType | undefined;
79
81
  settings: Partial<ChartModelSettings>;
80
82
  error?: unknown;
81
83
  isActive: boolean;
@@ -177,7 +179,7 @@ export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelSta
177
179
  updateChart(): void;
178
180
  render(): ReactElement;
179
181
  }
180
- declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<ChartPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId"> & Partial<Pick<ChartPanelProps, "source" | "panelState" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "sourcePanel">> & Partial<Pick<{
182
+ declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<ChartPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeApi" | "makeModel" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId"> & Partial<Pick<ChartPanelProps, "source" | "panelState" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "sourcePanel">> & Partial<Pick<{
181
183
  columnSelectionValidator: null;
182
184
  isLinkerActive: boolean;
183
185
  source: null;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@ import debounce from 'lodash.debounce';
12
12
  import { Chart, ChartUtils, isFigureChartModel } from '@deephaven/chart';
13
13
  import { getOpenedPanelMapForDashboard, LayoutUtils } from '@deephaven/dashboard';
14
14
  import { IrisGridUtils } from '@deephaven/iris-grid';
15
- import dh from '@deephaven/jsapi-shim';
16
15
  import { ThemeExport } from '@deephaven/components';
17
16
  import Log from '@deephaven/log';
18
17
  import { getActiveTool, getSettings, setActiveTool as setActiveToolAction } from '@deephaven/redux';
@@ -139,6 +138,7 @@ export class ChartPanel extends Component {
139
138
  settings = {}
140
139
  } = panelState !== null && panelState !== void 0 ? panelState : {};
141
140
  this.state = {
141
+ dh: undefined,
142
142
  settings,
143
143
  error: undefined,
144
144
  isActive: false,
@@ -218,10 +218,13 @@ export class ChartPanel extends Component {
218
218
  }
219
219
  componentWillUnmount() {
220
220
  this.pending.cancel();
221
+ var {
222
+ dh
223
+ } = this.state;
221
224
  var {
222
225
  source
223
226
  } = this.props;
224
- if (source) {
227
+ if (dh != null && source) {
225
228
  this.stopListeningToSource(source);
226
229
  }
227
230
  }
@@ -232,20 +235,39 @@ export class ChartPanel extends Component {
232
235
  error: undefined
233
236
  });
234
237
  var {
238
+ makeApi,
235
239
  makeModel
236
240
  } = this.props;
237
- this.pending.add(makeModel(), resolved => {
241
+ this.pending.add(makeApi()).then(dh => {
242
+ this.setState({
243
+ dh
244
+ });
245
+ }).then(() => this.pending.add(makeModel(), resolved => {
238
246
  resolved.close();
239
- }).then(this.handleLoadSuccess, this.handleLoadError);
247
+ })).then(this.handleLoadSuccess, this.handleLoadError);
240
248
  }
241
249
  startListeningToSource(table) {
242
250
  log.debug('startListeningToSource', table);
251
+ var {
252
+ dh
253
+ } = this.state;
254
+ if (dh == null) {
255
+ log.error('API is not defined');
256
+ return;
257
+ }
243
258
  table.addEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
244
259
  table.addEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
245
260
  table.addEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
246
261
  }
247
262
  stopListeningToSource(table) {
248
263
  log.debug('stopListeningToSource', table);
264
+ var {
265
+ dh
266
+ } = this.state;
267
+ if (dh == null) {
268
+ log.error('API is not defined');
269
+ return;
270
+ }
249
271
  table.removeEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
250
272
  table.removeEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
251
273
  table.removeEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
@@ -386,10 +408,11 @@ export class ChartPanel extends Component {
386
408
  source
387
409
  } = this.props;
388
410
  var {
411
+ dh,
389
412
  isLinked,
390
413
  model
391
414
  } = this.state;
392
- if (!isLinked || !model || !source) {
415
+ if (!dh || !isLinked || !model || !source) {
393
416
  log.debug2('updateModelFromSource ignoring', isLinked, model, source);
394
417
  return;
395
418
  }
@@ -400,7 +423,7 @@ export class ChartPanel extends Component {
400
423
  var {
401
424
  settings
402
425
  } = metadata;
403
- this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(figure => {
426
+ this.pending.add(dh.plot.Figure.create(new ChartUtils(dh).makeFigureSettings(settings, source))).then(figure => {
404
427
  if (isFigureChartModel(model)) {
405
428
  model.setFigure(figure);
406
429
  }