@deephaven/dashboard-core-plugins 0.52.1-beta.0 → 0.52.1-deephaven-ui.3
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/ChartPlugin.d.ts +3 -2
- package/dist/ChartPlugin.d.ts.map +1 -1
- package/dist/ChartPlugin.js +18 -19
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/ChartPluginConfig.d.ts +2 -2
- package/dist/ChartPluginConfig.d.ts.map +1 -1
- package/dist/ChartPluginConfig.js +8 -3
- package/dist/ChartPluginConfig.js.map +1 -1
- package/dist/GridPlugin.d.ts +3 -2
- package/dist/GridPlugin.d.ts.map +1 -1
- package/dist/GridPlugin.js +20 -17
- package/dist/GridPlugin.js.map +1 -1
- package/dist/GridPluginConfig.d.ts +2 -2
- package/dist/GridPluginConfig.d.ts.map +1 -1
- package/dist/GridPluginConfig.js +8 -3
- package/dist/GridPluginConfig.js.map +1 -1
- package/dist/PandasPluginConfig.js +1 -1
- package/dist/PandasPluginConfig.js.map +1 -1
- package/dist/WidgetLoaderPlugin.d.ts.map +1 -1
- package/dist/WidgetLoaderPlugin.js +6 -18
- package/dist/WidgetLoaderPlugin.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +16 -15
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +2 -1
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +1 -1
- package/dist/panels/IrisGridPanel.d.ts +7 -9
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/PandasPanel.d.ts +2 -2
- package/dist/panels/PandasPanel.d.ts.map +1 -1
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +10 -3
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +17 -19
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +3 -2
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/useHydrateGrid.d.ts +1 -1
- package/dist/useHydrateGrid.d.ts.map +1 -1
- package/dist/useHydrateGrid.js.map +1 -1
- package/package.json +24 -24
package/dist/ChartPlugin.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { type WidgetComponentProps } from '@deephaven/plugin';
|
|
3
|
+
import { type ChartPanel } from './panels/ChartPanel';
|
|
4
|
+
export declare const ChartPlugin: import("react").ForwardRefExoticComponent<WidgetComponentProps & import("react").RefAttributes<ChartPanel>>;
|
|
4
5
|
export default ChartPlugin;
|
|
5
6
|
//# sourceMappingURL=ChartPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAO9D,OAA4B,EAC1B,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AAqE7B,eAAO,MAAM,WAAW,6GAiCvB,CAAC;AAIF,eAAe,WAAW,CAAC"}
|
package/dist/ChartPlugin.js
CHANGED
|
@@ -5,14 +5,15 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
6
|
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); } }
|
|
7
7
|
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); }); }; }
|
|
8
|
-
import {
|
|
9
|
-
import { assertIsDashboardPluginProps, useDashboardPanel } from '@deephaven/dashboard';
|
|
8
|
+
import { forwardRef, useMemo } from 'react';
|
|
10
9
|
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
11
10
|
import { useConnection } from '@deephaven/jsapi-components';
|
|
12
11
|
import { ChartModelFactory } from '@deephaven/chart';
|
|
13
12
|
import { IrisGridUtils } from '@deephaven/iris-grid';
|
|
14
13
|
import { getTimeZone, store } from '@deephaven/redux';
|
|
15
|
-
import {
|
|
14
|
+
import { isChartPanelDehydratedProps, isChartPanelTableMetadata } from "./panels/index.js";
|
|
15
|
+
import ConnectedChartPanel from "./panels/ChartPanel.js";
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
function createChartModel(_x, _x2, _x3, _x4) {
|
|
17
18
|
return _createChartModel.apply(this, arguments);
|
|
18
19
|
}
|
|
@@ -70,31 +71,29 @@ function _createChartModel() {
|
|
|
70
71
|
});
|
|
71
72
|
return _createChartModel.apply(this, arguments);
|
|
72
73
|
}
|
|
73
|
-
export
|
|
74
|
-
assertIsDashboardPluginProps(props);
|
|
74
|
+
export var ChartPlugin = /*#__PURE__*/forwardRef((props, ref) => {
|
|
75
75
|
var dh = useApi();
|
|
76
76
|
var connection = useConnection();
|
|
77
|
-
var
|
|
78
|
-
|
|
77
|
+
var hydratedProps = useMemo(() => _objectSpread(_objectSpread({}, props), {}, {
|
|
78
|
+
metadata: props.metadata,
|
|
79
|
+
localDashboardId: props.localDashboardId,
|
|
79
80
|
makeModel: () => {
|
|
80
81
|
var {
|
|
81
82
|
metadata
|
|
82
|
-
} =
|
|
83
|
-
var panelState = isChartPanelDehydratedProps(
|
|
83
|
+
} = props;
|
|
84
|
+
var panelState = isChartPanelDehydratedProps(props) ? props.panelState : undefined;
|
|
84
85
|
if (metadata == null) {
|
|
85
86
|
throw new Error('Metadata is required for chart panel');
|
|
86
87
|
}
|
|
87
88
|
return createChartModel(dh, connection, metadata, panelState);
|
|
88
89
|
}
|
|
89
|
-
}), [dh, connection]);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
90
|
+
}), [dh, connection, props]);
|
|
91
|
+
|
|
92
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
93
|
+
return /*#__PURE__*/_jsx(ConnectedChartPanel, _objectSpread({
|
|
94
|
+
ref: ref
|
|
95
|
+
}, hydratedProps));
|
|
96
|
+
});
|
|
97
|
+
ChartPlugin.displayName = 'ChartPlugin';
|
|
99
98
|
export default ChartPlugin;
|
|
100
99
|
//# sourceMappingURL=ChartPlugin.js.map
|
package/dist/ChartPlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartPlugin.js","names":["
|
|
1
|
+
{"version":3,"file":"ChartPlugin.js","names":["forwardRef","useMemo","useApi","useConnection","ChartModelFactory","IrisGridUtils","getTimeZone","store","isChartPanelDehydratedProps","isChartPanelTableMetadata","ConnectedChartPanel","jsx","_jsx","createChartModel","_x","_x2","_x3","_x4","_createChartModel","apply","arguments","_asyncToGenerator","dh","connection","metadata","panelState","settings","tableName","figureName","tableSettings","table","undefined","_metadata$name","name","figure","_objectSpread","definition","title","type","VariableType","FIGURE","getObject","makeModel","TABLE","applyTableSettings","getState","makeModelFromSettings","ChartPlugin","props","ref","hydratedProps","localDashboardId","Error","displayName"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { useConnection } from '@deephaven/jsapi-components';\nimport { ChartModel, ChartModelFactory } from '@deephaven/chart';\nimport type { dh as DhType, IdeConnection } from '@deephaven/jsapi-types';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport { getTimeZone, store } from '@deephaven/redux';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\nimport {\n ChartPanelMetadata,\n GLChartPanelState,\n isChartPanelDehydratedProps,\n isChartPanelTableMetadata,\n} from './panels';\nimport ConnectedChartPanel, {\n type ChartPanel,\n type ChartPanelProps,\n} from './panels/ChartPanel';\n\nasync function createChartModel(\n dh: DhType,\n connection: IdeConnection,\n metadata: ChartPanelMetadata,\n panelState?: GLChartPanelState\n): Promise<ChartModel> {\n let settings;\n let tableName;\n let figureName;\n let tableSettings;\n\n if (isChartPanelTableMetadata(metadata)) {\n settings = metadata.settings;\n tableName = metadata.table;\n figureName = undefined;\n tableSettings = metadata.tableSettings;\n } else {\n settings = {};\n tableName = '';\n figureName = metadata.name ?? metadata.figure;\n tableSettings = {};\n }\n if (panelState != null) {\n if (panelState.tableSettings != null) {\n tableSettings = panelState.tableSettings;\n }\n if (panelState.table != null) {\n tableName = panelState.table;\n }\n if (panelState.figure != null) {\n figureName = panelState.figure;\n }\n if (panelState.settings != null) {\n settings = {\n ...settings,\n ...panelState.settings,\n };\n }\n }\n\n if (figureName != null) {\n const definition = {\n title: figureName,\n name: figureName,\n type: dh.VariableType.FIGURE,\n };\n const figure = await connection.getObject(definition);\n\n return ChartModelFactory.makeModel(dh, settings, figure);\n }\n\n const definition = {\n title: figureName,\n name: tableName,\n type: dh.VariableType.TABLE,\n };\n const table = await connection.getObject(definition);\n new IrisGridUtils(dh).applyTableSettings(\n table,\n tableSettings,\n getTimeZone(store.getState())\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ChartModelFactory.makeModelFromSettings(dh, settings as any, table);\n}\n\nexport const ChartPlugin = forwardRef(\n (props: WidgetComponentProps, ref: React.Ref<ChartPanel>) => {\n const dh = useApi();\n const connection = useConnection();\n\n const hydratedProps = useMemo(\n () => ({\n ...(props as unknown as ChartPanelProps),\n metadata: props.metadata as ChartPanelMetadata,\n localDashboardId: props.localDashboardId,\n makeModel: () => {\n const { metadata } = props;\n const panelState = isChartPanelDehydratedProps(props)\n ? (props as unknown as ChartPanelProps).panelState\n : undefined;\n if (metadata == null) {\n throw new Error('Metadata is required for chart panel');\n }\n\n return createChartModel(\n dh,\n connection,\n metadata as ChartPanelMetadata,\n panelState\n );\n },\n }),\n [dh, connection, props]\n );\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedChartPanel ref={ref} {...hydratedProps} />;\n }\n);\n\nChartPlugin.displayName = 'ChartPlugin';\n\nexport default ChartPlugin;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const ChartPluginConfig:
|
|
1
|
+
import { type WidgetPlugin } from '@deephaven/plugin';
|
|
2
|
+
declare const ChartPluginConfig: WidgetPlugin;
|
|
3
3
|
export default ChartPluginConfig;
|
|
4
4
|
//# sourceMappingURL=ChartPluginConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartPluginConfig.d.ts","sourceRoot":"","sources":["../src/ChartPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,
|
|
1
|
+
{"version":3,"file":"ChartPluginConfig.d.ts","sourceRoot":"","sources":["../src/ChartPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIlE,QAAA,MAAM,iBAAiB,EAAE,YAQxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { PluginType } from '@deephaven/plugin';
|
|
2
|
+
import { vsGraph } from '@deephaven/icons';
|
|
2
3
|
import ChartPlugin from "./ChartPlugin.js";
|
|
3
4
|
var ChartPluginConfig = {
|
|
4
|
-
name: '
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
name: 'ChartPanel',
|
|
6
|
+
title: 'Chart',
|
|
7
|
+
type: PluginType.WIDGET_PLUGIN,
|
|
8
|
+
component: ChartPlugin,
|
|
9
|
+
panelComponent: ChartPlugin,
|
|
10
|
+
supportedTypes: 'Figure',
|
|
11
|
+
icon: vsGraph
|
|
7
12
|
};
|
|
8
13
|
export default ChartPluginConfig;
|
|
9
14
|
//# sourceMappingURL=ChartPluginConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartPluginConfig.js","names":["PluginType","ChartPlugin","ChartPluginConfig","name","type","
|
|
1
|
+
{"version":3,"file":"ChartPluginConfig.js","names":["PluginType","vsGraph","ChartPlugin","ChartPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/ChartPluginConfig.ts"],"sourcesContent":["import { PluginType, type WidgetPlugin } from '@deephaven/plugin';\nimport { vsGraph } from '@deephaven/icons';\nimport ChartPlugin from './ChartPlugin';\n\nconst ChartPluginConfig: WidgetPlugin = {\n name: 'ChartPanel',\n title: 'Chart',\n type: PluginType.WIDGET_PLUGIN,\n component: ChartPlugin,\n panelComponent: ChartPlugin,\n supportedTypes: 'Figure',\n icon: vsGraph,\n};\n\nexport default ChartPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAA2B,mBAAmB;AACjE,SAASC,OAAO,QAAQ,kBAAkB;AAAC,OACpCC,WAAW;AAElB,IAAMC,iBAA+B,GAAG;EACtCC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAEN,UAAU,CAACO,aAAa;EAC9BC,SAAS,EAAEN,WAAW;EACtBO,cAAc,EAAEP,WAAW;EAC3BQ,cAAc,EAAE,QAAQ;EACxBC,IAAI,EAAEV;AACR,CAAC;AAED,eAAeE,iBAAiB"}
|
package/dist/GridPlugin.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { type WidgetComponentProps } from '@deephaven/plugin';
|
|
3
|
+
import { type IrisGridPanel } from './panels/IrisGridPanel';
|
|
4
|
+
export declare const GridPlugin: import("react").ForwardRefExoticComponent<WidgetComponentProps & import("react").RefAttributes<IrisGridPanel>>;
|
|
4
5
|
export default GridPlugin;
|
|
5
6
|
//# sourceMappingURL=GridPlugin.d.ts.map
|
package/dist/GridPlugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAA+B,EAE7B,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,UAAU,gHAmBtB,CAAC;AAIF,eAAe,UAAU,CAAC"}
|
package/dist/GridPlugin.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
+
import { forwardRef, useMemo } from 'react';
|
|
5
7
|
import useHydrateGrid from "./useHydrateGrid.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
import ConnectedIrisGridPanel from "./panels/IrisGridPanel.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
export var GridPlugin = /*#__PURE__*/forwardRef((props, ref) => {
|
|
9
11
|
var hydrate = useHydrateGrid();
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
12
|
+
var {
|
|
13
|
+
localDashboardId
|
|
14
|
+
} = props;
|
|
15
|
+
var hydratedProps = useMemo(() => hydrate(props, localDashboardId), [hydrate, props, localDashboardId]);
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
18
|
+
return /*#__PURE__*/_jsx(ConnectedIrisGridPanel, _objectSpread({
|
|
19
|
+
ref: ref
|
|
20
|
+
}, hydratedProps));
|
|
21
|
+
});
|
|
22
|
+
GridPlugin.displayName = 'GridPlugin';
|
|
20
23
|
export default GridPlugin;
|
|
21
24
|
//# sourceMappingURL=GridPlugin.js.map
|
package/dist/GridPlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridPlugin.js","names":["
|
|
1
|
+
{"version":3,"file":"GridPlugin.js","names":["forwardRef","useMemo","useHydrateGrid","ConnectedIrisGridPanel","jsx","_jsx","GridPlugin","props","ref","hydrate","localDashboardId","hydratedProps","_objectSpread","displayName"],"sources":["../src/GridPlugin.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\nimport { type DashboardPanelProps } from '@deephaven/dashboard';\nimport useHydrateGrid from './useHydrateGrid';\nimport ConnectedIrisGridPanel, {\n IrisGridPanelProps,\n type IrisGridPanel,\n} from './panels/IrisGridPanel';\n\nexport const GridPlugin = forwardRef(\n (props: WidgetComponentProps, ref: React.Ref<IrisGridPanel>) => {\n const hydrate = useHydrateGrid<\n DashboardPanelProps & Pick<IrisGridPanelProps, 'panelState'>\n >();\n const { localDashboardId } = props;\n const hydratedProps = useMemo(\n () =>\n hydrate(\n props as WidgetComponentProps &\n Pick<IrisGridPanelProps, 'panelState'>,\n localDashboardId\n ),\n [hydrate, props, localDashboardId]\n );\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedIrisGridPanel ref={ref} {...hydratedProps} />;\n }\n);\n\nGridPlugin.displayName = 'GridPlugin';\n\nexport default GridPlugin;\n"],"mappings":";;;;;AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAAC,OAGrCC,cAAc;AAAA,OACdC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAK7B,OAAO,IAAMC,UAAU,gBAAGN,UAAU,CAClC,CAACO,KAA2B,EAAEC,GAA6B,KAAK;EAC9D,IAAMC,OAAO,GAAGP,cAAc,CAE5B,CAAC;EACH,IAAM;IAAEQ;EAAiB,CAAC,GAAGH,KAAK;EAClC,IAAMI,aAAa,GAAGV,OAAO,CAC3B,MACEQ,OAAO,CACLF,KAAK,EAELG,gBACF,CAAC,EACH,CAACD,OAAO,EAAEF,KAAK,EAAEG,gBAAgB,CACnC,CAAC;;EAED;EACA,oBAAOL,IAAA,CAACF,sBAAsB,EAAAS,aAAA;IAACJ,GAAG,EAAEA;EAAI,GAAKG,aAAa,CAAG,CAAC;AAChE,CACF,CAAC;AAEDL,UAAU,CAACO,WAAW,GAAG,YAAY;AAErC,eAAeP,UAAU"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const GridPluginConfig:
|
|
1
|
+
import { type WidgetPlugin } from '@deephaven/plugin';
|
|
2
|
+
declare const GridPluginConfig: WidgetPlugin;
|
|
3
3
|
export default GridPluginConfig;
|
|
4
4
|
//# sourceMappingURL=GridPluginConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridPluginConfig.d.ts","sourceRoot":"","sources":["../src/GridPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,
|
|
1
|
+
{"version":3,"file":"GridPluginConfig.d.ts","sourceRoot":"","sources":["../src/GridPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIlE,QAAA,MAAM,gBAAgB,EAAE,YAQvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/dist/GridPluginConfig.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { PluginType } from '@deephaven/plugin';
|
|
2
|
+
import { dhTable } from '@deephaven/icons';
|
|
2
3
|
import GridPlugin from "./GridPlugin.js";
|
|
3
4
|
var GridPluginConfig = {
|
|
4
|
-
name: '
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
name: 'IrisGridPanel',
|
|
6
|
+
title: 'Table',
|
|
7
|
+
type: PluginType.WIDGET_PLUGIN,
|
|
8
|
+
component: GridPlugin,
|
|
9
|
+
panelComponent: GridPlugin,
|
|
10
|
+
supportedTypes: ['Table', 'TreeTable', 'HierarchicalTable'],
|
|
11
|
+
icon: dhTable
|
|
7
12
|
};
|
|
8
13
|
export default GridPluginConfig;
|
|
9
14
|
//# sourceMappingURL=GridPluginConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridPluginConfig.js","names":["PluginType","GridPlugin","GridPluginConfig","name","type","
|
|
1
|
+
{"version":3,"file":"GridPluginConfig.js","names":["PluginType","dhTable","GridPlugin","GridPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/GridPluginConfig.ts"],"sourcesContent":["import { PluginType, type WidgetPlugin } from '@deephaven/plugin';\nimport { dhTable } from '@deephaven/icons';\nimport GridPlugin from './GridPlugin';\n\nconst GridPluginConfig: WidgetPlugin = {\n name: 'IrisGridPanel',\n title: 'Table',\n type: PluginType.WIDGET_PLUGIN,\n component: GridPlugin,\n panelComponent: GridPlugin,\n supportedTypes: ['Table', 'TreeTable', 'HierarchicalTable'],\n icon: dhTable,\n};\n\nexport default GridPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAA2B,mBAAmB;AACjE,SAASC,OAAO,QAAQ,kBAAkB;AAAC,OACpCC,UAAU;AAEjB,IAAMC,gBAA8B,GAAG;EACrCC,IAAI,EAAE,eAAe;EACrBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAEN,UAAU,CAACO,aAAa;EAC9BC,SAAS,EAAEN,UAAU;EACrBO,cAAc,EAAEP,UAAU;EAC1BQ,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC;EAC3DC,IAAI,EAAEV;AACR,CAAC;AAED,eAAeE,gBAAgB"}
|
|
@@ -2,7 +2,7 @@ import { PluginType } from '@deephaven/plugin';
|
|
|
2
2
|
import { dhPandas } from '@deephaven/icons';
|
|
3
3
|
import PandasPlugin from "./PandasPlugin.js";
|
|
4
4
|
var PandasPluginConfig = {
|
|
5
|
-
name: '
|
|
5
|
+
name: 'PandasPanel',
|
|
6
6
|
title: 'Pandas',
|
|
7
7
|
type: PluginType.WIDGET_PLUGIN,
|
|
8
8
|
// TODO: #1573 Replace with actual base component and not just the panel plugin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PandasPluginConfig.js","names":["PluginType","dhPandas","PandasPlugin","PandasPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/PandasPluginConfig.ts"],"sourcesContent":["import { PluginType, WidgetPlugin } from '@deephaven/plugin';\nimport { dhPandas } from '@deephaven/icons';\nimport PandasPlugin from './PandasPlugin';\n\nconst PandasPluginConfig: WidgetPlugin = {\n name: '
|
|
1
|
+
{"version":3,"file":"PandasPluginConfig.js","names":["PluginType","dhPandas","PandasPlugin","PandasPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/PandasPluginConfig.ts"],"sourcesContent":["import { PluginType, WidgetPlugin } from '@deephaven/plugin';\nimport { dhPandas } from '@deephaven/icons';\nimport PandasPlugin from './PandasPlugin';\n\nconst PandasPluginConfig: WidgetPlugin = {\n name: 'PandasPanel',\n title: 'Pandas',\n type: PluginType.WIDGET_PLUGIN,\n // TODO: #1573 Replace with actual base component and not just the panel plugin\n component: PandasPlugin,\n panelComponent: PandasPlugin,\n supportedTypes: 'pandas.DataFrame',\n icon: dhPandas,\n};\n\nexport default PandasPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAAsB,mBAAmB;AAC5D,SAASC,QAAQ,QAAQ,kBAAkB;AAAC,OACrCC,YAAY;AAEnB,IAAMC,kBAAgC,GAAG;EACvCC,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,QAAQ;EACfC,IAAI,EAAEN,UAAU,CAACO,aAAa;EAC9B;EACAC,SAAS,EAAEN,YAAY;EACvBO,cAAc,EAAEP,YAAY;EAC5BQ,cAAc,EAAE,kBAAkB;EAClCC,IAAI,EAAEV;AACR,CAAC;AAED,eAAeE,kBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLoaderPlugin.d.ts","sourceRoot":"","sources":["../src/WidgetLoaderPlugin.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"WidgetLoaderPlugin.d.ts","sourceRoot":"","sources":["../src/WidgetLoaderPlugin.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,6BAA6B,EAM7B,UAAU,EAEX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAM3B,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GACnB,KAAK,CAAC,yBAAyB,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAoC5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC5C,GAAG,CAAC,OAAO,GAAG,IAAI,CAqFpB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -3,14 +3,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
3
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
-
import { useMemo, useCallback, useEffect, forwardRef
|
|
6
|
+
import { useMemo, useCallback, useEffect, forwardRef } from 'react';
|
|
7
7
|
import shortid from 'shortid';
|
|
8
8
|
import { assertIsDashboardPluginProps, PanelEvent, LayoutUtils, useListener, canHaveRef } from '@deephaven/dashboard';
|
|
9
9
|
import { isWidgetPlugin, usePlugins } from '@deephaven/plugin';
|
|
10
10
|
import Log from '@deephaven/log';
|
|
11
11
|
import { WidgetPanel } from "./panels/index.js";
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
13
|
var log = Log.module('WidgetLoaderPlugin');
|
|
15
14
|
export function WrapWidgetPlugin(plugin) {
|
|
16
15
|
var _plugin$component$dis;
|
|
@@ -20,30 +19,19 @@ export function WrapWidgetPlugin(plugin) {
|
|
|
20
19
|
var {
|
|
21
20
|
metadata
|
|
22
21
|
} = props;
|
|
23
|
-
var [componentPanel, setComponentPanel] = useState();
|
|
24
|
-
var refCallback = useCallback(e => {
|
|
25
|
-
setComponentPanel(e);
|
|
26
|
-
if (typeof ref === 'function') {
|
|
27
|
-
ref(e);
|
|
28
|
-
} else if (ref != null) {
|
|
29
|
-
// eslint-disable-next-line no-param-reassign
|
|
30
|
-
ref.current = e;
|
|
31
|
-
}
|
|
32
|
-
}, [ref]);
|
|
33
22
|
var hasRef = canHaveRef(C);
|
|
34
|
-
return /*#__PURE__*/
|
|
23
|
+
return /*#__PURE__*/_jsx(WidgetPanel, _objectSpread(_objectSpread({
|
|
35
24
|
widgetName: metadata === null || metadata === void 0 ? void 0 : metadata.name,
|
|
36
|
-
widgetType: plugin.title
|
|
37
|
-
componentPanel: componentPanel
|
|
25
|
+
widgetType: plugin.title
|
|
38
26
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
39
27
|
}, props), {}, {
|
|
40
|
-
children:
|
|
28
|
+
children: hasRef ? /*#__PURE__*/_jsx(C
|
|
41
29
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
42
30
|
, _objectSpread(_objectSpread({}, props), {}, {
|
|
43
|
-
ref:
|
|
31
|
+
ref: ref
|
|
44
32
|
})) : /*#__PURE__*/_jsx(C
|
|
45
33
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
46
|
-
, _objectSpread({}, props))
|
|
34
|
+
, _objectSpread({}, props))
|
|
47
35
|
}));
|
|
48
36
|
}
|
|
49
37
|
Wrapper.displayName = "WidgetLoaderPlugin(".concat((_plugin$component$dis = plugin.component.displayName) !== null && _plugin$component$dis !== void 0 ? _plugin$component$dis : plugin.name, ")");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","useState","shortid","assertIsDashboardPluginProps","PanelEvent","LayoutUtils","useListener","canHaveRef","isWidgetPlugin","usePlugins","Log","WidgetPanel","jsx","_jsx","jsxs","_jsxs","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","C","component","metadata","componentPanel","setComponentPanel","refCallback","e","current","hasRef","_objectSpread","widgetName","name","widgetType","title","children","displayName","concat","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","flat","supportedType","has","_typeMap$get","warn","get","set","id","layout","registerComponent","handlePanelOpen","_ref","_widget$title","dragEvent","fetch","panelId","generate","widget","widgetId","type","panelProps","localDashboardId","config","root","openComponent","deregisterFns","Set","values","map","panelComponent","deregister","eventHub","OPEN"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import {\n useMemo,\n useCallback,\n type ComponentType,\n useEffect,\n forwardRef,\n useState,\n} from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n DehydratedDashboardPanelProps,\n PanelEvent,\n PanelOpenEventDetail,\n LayoutUtils,\n useListener,\n PanelProps,\n canHaveRef,\n} from '@deephaven/dashboard';\nimport {\n isWidgetPlugin,\n usePlugins,\n type WidgetPlugin,\n} from '@deephaven/plugin';\nimport Log from '@deephaven/log';\nimport { WidgetPanel } from './panels';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n const [componentPanel, setComponentPanel] = useState<ComponentType>();\n const refCallback = useCallback(\n (e: ComponentType) => {\n setComponentPanel(e);\n if (typeof ref === 'function') {\n ref(e);\n } else if (ref != null) {\n // eslint-disable-next-line no-param-reassign\n ref.current = e;\n }\n },\n [ref]\n );\n\n const hasRef = canHaveRef(C);\n\n return (\n <WidgetPanel\n widgetName={metadata?.name}\n widgetType={plugin.title}\n componentPanel={componentPanel}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={refCallback}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n )\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetPlugin>();\n plugins.forEach(plugin => {\n if (!isWidgetPlugin(plugin)) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType != null && supportedType !== '') {\n if (typeMap.has(supportedType)) {\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. Replacing ${typeMap.get(\n supportedType\n )?.name} with ${plugin.name} to handle ${supportedType}`\n );\n }\n typeMap.set(supportedType, plugin);\n }\n });\n });\n\n return typeMap;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: PanelOpenEventDetail) => {\n const { id: widgetId, type } = widget;\n const name = widget.title ?? widget.name;\n const plugin = supportedTypes.get(type);\n if (plugin == null) {\n return;\n }\n const metadata = { id: widgetId, name, type };\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: typeof fetch;\n } = {\n localDashboardId: id,\n metadata,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: plugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n const deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {\n const { panelComponent } = plugin;\n if (panelComponent == null) {\n return registerComponent(plugin.name, WrapWidgetPlugin(plugin));\n }\n return registerComponent(plugin.name, panelComponent);\n });\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n });\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","shortid","assertIsDashboardPluginProps","PanelEvent","LayoutUtils","useListener","canHaveRef","isWidgetPlugin","usePlugins","Log","WidgetPanel","jsx","_jsx","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","C","component","metadata","hasRef","_objectSpread","widgetName","name","widgetType","title","children","displayName","concat","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","flat","supportedType","has","_typeMap$get","warn","get","set","id","layout","registerComponent","handlePanelOpen","_ref","_widget$title","dragEvent","fetch","panelId","generate","widget","widgetId","type","panelProps","localDashboardId","config","root","openComponent","deregisterFns","Set","values","map","panelComponent","deregister","eventHub","OPEN"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import { useMemo, useCallback, useEffect, forwardRef } from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n DehydratedDashboardPanelProps,\n PanelEvent,\n PanelOpenEventDetail,\n LayoutUtils,\n useListener,\n PanelProps,\n canHaveRef,\n} from '@deephaven/dashboard';\nimport {\n isWidgetPlugin,\n usePlugins,\n type WidgetPlugin,\n} from '@deephaven/plugin';\nimport Log from '@deephaven/log';\nimport { WidgetPanel } from './panels';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n\n const hasRef = canHaveRef(C);\n\n return (\n <WidgetPanel\n widgetName={metadata?.name}\n widgetType={plugin.title}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={ref}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetPlugin>();\n plugins.forEach(plugin => {\n if (!isWidgetPlugin(plugin)) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType != null && supportedType !== '') {\n if (typeMap.has(supportedType)) {\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. Replacing ${typeMap.get(\n supportedType\n )?.name} with ${plugin.name} to handle ${supportedType}`\n );\n }\n typeMap.set(supportedType, plugin);\n }\n });\n });\n\n return typeMap;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: PanelOpenEventDetail) => {\n const { id: widgetId, type } = widget;\n const name = widget.title ?? widget.name;\n const plugin = supportedTypes.get(type);\n if (plugin == null) {\n return;\n }\n const metadata = { id: widgetId, name, type };\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: typeof fetch;\n } = {\n localDashboardId: id,\n metadata,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: plugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n const deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {\n const { panelComponent } = plugin;\n if (panelComponent == null) {\n return registerComponent(plugin.name, WrapWidgetPlugin(plugin));\n }\n return registerComponent(plugin.name, panelComponent);\n });\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n });\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ReactElement, RefObject } from 'react';
|
|
1
|
+
import React, { Component, ReactElement, RefObject } from 'react';
|
|
2
2
|
import { Chart, ChartModel, ChartModelSettings, FilterMap } from '@deephaven/chart';
|
|
3
3
|
import type PlotlyType from 'plotly.js';
|
|
4
4
|
import { DashboardPanelProps, PanelComponent, PanelMetadata } from '@deephaven/dashboard';
|
|
@@ -22,6 +22,7 @@ export interface ChartPanelFigureMetadata extends PanelMetadata {
|
|
|
22
22
|
* @deprecated use `name` instead
|
|
23
23
|
*/
|
|
24
24
|
figure?: string;
|
|
25
|
+
sourcePanelId: never;
|
|
25
26
|
}
|
|
26
27
|
export interface ChartPanelTableMetadata extends PanelMetadata {
|
|
27
28
|
table: string;
|
|
@@ -53,24 +54,28 @@ export interface GLChartPanelState {
|
|
|
53
54
|
table?: string;
|
|
54
55
|
figure?: string;
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
+
interface OwnProps extends DashboardPanelProps {
|
|
57
58
|
metadata: ChartPanelMetadata;
|
|
58
59
|
/** Function to build the ChartModel used by this ChartPanel. Can return a promise. */
|
|
59
60
|
makeModel: () => Promise<ChartModel>;
|
|
61
|
+
localDashboardId: string;
|
|
62
|
+
Plotly?: typeof PlotlyType;
|
|
63
|
+
/** The panel container div */
|
|
64
|
+
containerRef?: RefObject<HTMLDivElement>;
|
|
65
|
+
panelState: GLChartPanelState;
|
|
66
|
+
}
|
|
67
|
+
interface StateProps {
|
|
60
68
|
inputFilters: InputFilter[];
|
|
61
69
|
links: Link[];
|
|
62
|
-
localDashboardId: string;
|
|
63
70
|
isLinkerActive: boolean;
|
|
64
71
|
source?: TableTemplate;
|
|
65
72
|
sourcePanel?: PanelComponent;
|
|
66
73
|
columnSelectionValidator?: ColumnSelectionValidator;
|
|
74
|
+
settings: Partial<WorkspaceSettings>;
|
|
75
|
+
}
|
|
76
|
+
interface DispatchProps {
|
|
67
77
|
setActiveTool: (tool: string) => void;
|
|
68
78
|
setDashboardIsolatedLinkerPanelId: (id: string, secondParam: undefined) => void;
|
|
69
|
-
Plotly?: typeof PlotlyType;
|
|
70
|
-
/** The panel container div */
|
|
71
|
-
containerRef?: RefObject<HTMLDivElement>;
|
|
72
|
-
panelState: GLChartPanelState;
|
|
73
|
-
settings: Partial<WorkspaceSettings>;
|
|
74
79
|
}
|
|
75
80
|
interface ChartPanelState {
|
|
76
81
|
settings: Partial<ChartModelSettings>;
|
|
@@ -86,6 +91,7 @@ interface ChartPanelState {
|
|
|
86
91
|
columnMap: ColumnMap;
|
|
87
92
|
panelState: GLChartPanelState;
|
|
88
93
|
}
|
|
94
|
+
export type ChartPanelProps = OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>;
|
|
89
95
|
export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelState> {
|
|
90
96
|
static defaultProps: {
|
|
91
97
|
columnSelectionValidator: null;
|
|
@@ -175,7 +181,7 @@ export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelSta
|
|
|
175
181
|
updateChart(): void;
|
|
176
182
|
render(): ReactElement;
|
|
177
183
|
}
|
|
178
|
-
declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<
|
|
184
|
+
declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "Plotly" | keyof DispatchProps | keyof React.RefAttributes<ChartPanel>> & Partial<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "source" | "columnSelectionValidator" | "settings" | "panelState" | "isLinkerActive" | "sourcePanel" | "containerRef">> & Partial<Pick<{
|
|
179
185
|
columnSelectionValidator: null;
|
|
180
186
|
isLinkerActive: boolean;
|
|
181
187
|
source: null;
|
|
@@ -183,11 +189,6 @@ declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<type
|
|
|
183
189
|
panelState: null;
|
|
184
190
|
settings: {};
|
|
185
191
|
containerRef: null;
|
|
186
|
-
}, never>>, "source" | "
|
|
187
|
-
localDashboardId: string;
|
|
188
|
-
metadata: {
|
|
189
|
-
sourcePanelId?: string;
|
|
190
|
-
};
|
|
191
|
-
}>;
|
|
192
|
+
}, never>>, "source" | "inputFilters" | "links" | "columnSelectionValidator" | "settings" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId" | "isLinkerActive" | "sourcePanel"> & OwnProps>;
|
|
192
193
|
export default ConnectedChartPanel;
|
|
193
194
|
//# sourceMappingURL=ChartPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -861,7 +861,8 @@ export class ChartPanel extends Component {
|
|
|
861
861
|
if (isChartPanelTableMetadata(metadata)) {
|
|
862
862
|
name = metadata.table;
|
|
863
863
|
} else {
|
|
864
|
-
name
|
|
864
|
+
var _metadata$name;
|
|
865
|
+
name = (_metadata$name = metadata.name) !== null && _metadata$name !== void 0 ? _metadata$name : metadata.figure;
|
|
865
866
|
}
|
|
866
867
|
var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
|
|
867
868
|
var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
|