@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.
- package/dist/ChartBuilderPlugin.d.ts.map +1 -1
- package/dist/ChartBuilderPlugin.js +3 -1
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/ChartPlugin.d.ts.map +1 -1
- package/dist/ChartPlugin.js +6 -2
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/GridPlugin.d.ts.map +1 -1
- package/dist/GridPlugin.js +3 -1
- package/dist/GridPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts.map +1 -1
- package/dist/PandasPlugin.js +1 -1
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +4 -2
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +29 -6
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +5 -2
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +49 -30
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/package.json +23 -21
|
@@ -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,
|
|
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
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/ChartPlugin.js
CHANGED
|
@@ -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
|
|
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 () => {
|
package/dist/ChartPlugin.js.map
CHANGED
|
@@ -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","
|
|
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"}
|
package/dist/GridPlugin.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/GridPlugin.js
CHANGED
|
@@ -34,7 +34,8 @@ export function GridPlugin(props) {
|
|
|
34
34
|
table: name,
|
|
35
35
|
type: widget.type
|
|
36
36
|
};
|
|
37
|
-
var
|
|
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
|
},
|
package/dist/GridPlugin.js.map
CHANGED
|
@@ -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)
|
|
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,
|
|
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"}
|
package/dist/PandasPlugin.js
CHANGED
|
@@ -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,
|
package/dist/PandasPlugin.js.map
CHANGED
|
@@ -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-
|
|
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-
|
|
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":"AAAA,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMlE,OAAO,EACL,KAAK,EACL,UAAU,EACV,kBAAkB,EAElB,SAAS,EAEV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,WAAW,EACX,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,
|
|
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(
|
|
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
|
}
|