@deephaven/js-plugin-plotly-express 0.3.2-deephaven-ui.216 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/PlotlyExpressChart.d.ts +5 -0
  2. package/dist/PlotlyExpressChart.d.ts.map +1 -0
  3. package/dist/PlotlyExpressChart.js +36 -0
  4. package/dist/PlotlyExpressChart.js.map +1 -0
  5. package/dist/PlotlyExpressChartModel.d.ts +49 -13
  6. package/dist/PlotlyExpressChartModel.d.ts.map +1 -1
  7. package/dist/PlotlyExpressChartModel.js +193 -63
  8. package/dist/PlotlyExpressChartModel.js.map +1 -1
  9. package/dist/PlotlyExpressChartPanel.d.ts +2 -9
  10. package/dist/PlotlyExpressChartPanel.d.ts.map +1 -1
  11. package/dist/PlotlyExpressChartPanel.js +9 -45
  12. package/dist/PlotlyExpressChartPanel.js.map +1 -1
  13. package/dist/PlotlyExpressChartUtils.d.ts +17 -18
  14. package/dist/PlotlyExpressChartUtils.d.ts.map +1 -1
  15. package/dist/PlotlyExpressChartUtils.js +7 -10
  16. package/dist/PlotlyExpressChartUtils.js.map +1 -1
  17. package/dist/PlotlyExpressPlugin.d.ts +4 -0
  18. package/dist/PlotlyExpressPlugin.d.ts.map +1 -0
  19. package/dist/PlotlyExpressPlugin.js +14 -0
  20. package/dist/PlotlyExpressPlugin.js.map +1 -0
  21. package/dist/bundle/index.js +81785 -80929
  22. package/dist/bundle/style.css +639 -1063
  23. package/dist/index.d.ts +2 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/useHandleSceneTicks.d.ts +4 -0
  28. package/dist/useHandleSceneTicks.d.ts.map +1 -0
  29. package/dist/useHandleSceneTicks.js +36 -0
  30. package/dist/useHandleSceneTicks.js.map +1 -0
  31. package/package.json +13 -11
  32. package/dist/DashboardPlugin.d.ts +0 -5
  33. package/dist/DashboardPlugin.d.ts.map +0 -1
  34. package/dist/DashboardPlugin.js +0 -39
  35. package/dist/DashboardPlugin.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { type WidgetComponentProps } from '@deephaven/plugin';
3
+ export declare function PlotlyExpressChart(props: WidgetComponentProps): JSX.Element | null;
4
+ export default PlotlyExpressChart;
5
+ //# sourceMappingURL=PlotlyExpressChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlotlyExpressChart.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChart.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,CAiCpB;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import Plotly from 'plotly.js-dist-min';
4
+ import { Chart } from '@deephaven/chart';
5
+ import { useApi } from '@deephaven/jsapi-bootstrap';
6
+ import PlotlyExpressChartModel from './PlotlyExpressChartModel.js';
7
+ import { useHandleSceneTicks } from './useHandleSceneTicks.js';
8
+ export function PlotlyExpressChart(props) {
9
+ const dh = useApi();
10
+ const { fetch } = props;
11
+ const containerRef = useRef(null);
12
+ const [model, setModel] = useState();
13
+ useEffect(() => {
14
+ let cancelled = false;
15
+ async function init() {
16
+ const widgetData = await fetch();
17
+ if (!cancelled) {
18
+ setModel(new PlotlyExpressChartModel(dh, widgetData, fetch));
19
+ }
20
+ }
21
+ init();
22
+ return () => {
23
+ cancelled = true;
24
+ };
25
+ }, [dh, fetch]);
26
+ useHandleSceneTicks(model, containerRef.current);
27
+ return model ? (_jsx(Chart
28
+ // eslint-disable-next-line react/jsx-props-no-spreading, @typescript-eslint/ban-ts-comment
29
+ // @ts-ignore
30
+ , {
31
+ // eslint-disable-next-line react/jsx-props-no-spreading, @typescript-eslint/ban-ts-comment
32
+ // @ts-ignore
33
+ containerRef: containerRef, model: model, Plotly: Plotly })) : null;
34
+ }
35
+ export default PlotlyExpressChart;
36
+ //# sourceMappingURL=PlotlyExpressChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlotlyExpressChart.js","sourceRoot":"","sources":["../src/PlotlyExpressChart.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,kBAAkB,CAChC,KAA2B;IAE3B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAA2B,CAAC;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,UAAU,IAAI;YACjB,MAAM,UAAU,GAAG,MAAM,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,EAAE;gBACd,QAAQ,CAAC,IAAI,uBAAuB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;aAC9D;QACH,CAAC;QAED,IAAI,EAAE,CAAC;QAEP,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,KAAC,KAAK;IACJ,2FAA2F;IAC3F,aAAa;;QADb,2FAA2F;QAC3F,aAAa;QACb,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACd,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,30 +1,66 @@
1
1
  import type { Layout, Data } from 'plotly.js';
2
- import type { dh as DhType, ChartData, Table, TableSubscription } from '@deephaven/jsapi-types';
2
+ import type { dh as DhType, ChartData, Widget, Table, TableSubscription, TableData } from '@deephaven/jsapi-types';
3
3
  import { ChartModel, ChartUtils, ChartTheme } from '@deephaven/chart';
4
+ import { PlotlyChartWidgetData } from './PlotlyExpressChartUtils.js';
4
5
  export declare class PlotlyExpressChartModel extends ChartModel {
5
- constructor(dh: DhType, tableColumnReplacementMap: ReadonlyMap<Table, Map<string, string[]>>, data: Data[], plotlyLayout: Partial<Layout>, isDefaultTemplate?: boolean, theme?: typeof ChartTheme);
6
+ constructor(dh: DhType, widget: Widget, refetch: () => Promise<Widget>, theme?: ChartTheme);
7
+ isSubscribed: boolean;
6
8
  chartUtils: ChartUtils;
7
- tableSubscriptionMap: Map<Table, TableSubscription>;
8
- tableSubscriptionCleanups: (() => void)[];
9
- tableColumnReplacementMap: Map<Table, Map<string, string[]>>;
10
- chartDataMap: Map<Table, ChartData>;
11
- theme: typeof ChartTheme;
12
- data: Data[];
9
+ refetch: () => Promise<Widget>;
10
+ widget?: Widget;
11
+ widgetUnsubscribe?: () => void;
12
+ /**
13
+ * Map of table index to Table object.
14
+ */
15
+ tableReferenceMap: Map<number, Table>;
16
+ /**
17
+ * Map of table index to TableSubscription object.
18
+ */
19
+ tableSubscriptionMap: Map<number, TableSubscription>;
20
+ /**
21
+ * Map of table index to cleanup function for the subscription.
22
+ */
23
+ subscriptionCleanupMap: Map<number, () => void>;
24
+ /**
25
+ * Map of table index to map of column names to array of paths where the data should be replaced.
26
+ */
27
+ tableColumnReplacementMap: Map<number, Map<string, string[]>>;
28
+ /**
29
+ * Map of table index to ChartData object. Used to handle data delta updates.
30
+ */
31
+ chartDataMap: Map<number, ChartData>;
32
+ /**
33
+ * Map of table index to object where the keys are column names and the values are arrays of data.
34
+ * This data is the full array of data for the column since ChartData doesn't have a clean way to get it at any time.
35
+ */
36
+ tableDataMap: Map<number, {
37
+ [key: string]: unknown[];
38
+ }>;
39
+ theme: ChartTheme;
40
+ plotlyData: Data[];
13
41
  layout: Partial<Layout>;
14
42
  plotlyLayout: Partial<Layout>;
15
43
  isPaused: boolean;
16
44
  hasPendingUpdate: boolean;
17
45
  getData(): Partial<Data>[];
18
46
  getLayout(): Partial<Layout>;
19
- subscribe(callback: (event: CustomEvent) => void): void;
47
+ close(): void;
48
+ subscribe(callback: (event: CustomEvent) => void): Promise<void>;
20
49
  unsubscribe(callback: (event: CustomEvent) => void): void;
21
- handleFigureUpdated(event: CustomEvent, chartData: ChartData | undefined, columnReplacements: Map<string, string[]> | undefined): void;
22
- startListening(): void;
23
- stopListening(): void;
50
+ updateLayout(data: PlotlyChartWidgetData): void;
51
+ handleWidgetUpdated(data: PlotlyChartWidgetData, references: Widget['exportedObjects']): void;
52
+ handleFigureUpdated(event: CustomEvent<TableData>, tableId: number): void;
53
+ addTable(id: number, table: Table): void;
54
+ subscribeTable(id: number): void;
55
+ removeTable(id: number): void;
24
56
  fireUpdate(data: unknown): void;
25
57
  pauseUpdates(): void;
26
58
  resumeUpdates(): void;
27
- has3D(): boolean;
59
+ shouldPauseOnUserInteraction(): boolean;
60
+ hasScene(): boolean;
61
+ hasGeo(): boolean;
62
+ hasMapbox(): boolean;
63
+ hasPolar(): boolean;
28
64
  getPlotWidth(): number;
29
65
  getPlotHeight(): number;
30
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlyExpressChartModel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,EAAE,IAAI,MAAM,EACZ,SAAS,EACT,KAAK,EACL,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMtE,qBAAa,uBAAwB,SAAQ,UAAU;gBAEnD,EAAE,EAAE,MAAM,EACV,yBAAyB,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EACpE,IAAI,EAAE,IAAI,EAAE,EACZ,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,EAC7B,iBAAiB,UAAO,EACxB,KAAK,GAAE,OAAO,UAAuB;IAqCvC,UAAU,EAAE,UAAU,CAAC;IAEvB,oBAAoB,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAEpD,yBAAyB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAE/C,yBAAyB,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAE7D,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpC,KAAK,EAAE,OAAO,UAAU,CAAC;IAEzB,IAAI,EAAE,IAAI,EAAE,CAAC;IAEb,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAExB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,QAAQ,UAAS;IAEjB,gBAAgB,UAAS;IAEhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;IAInC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAkBvD,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IASzD,mBAAmB,CACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,GACpD,IAAI;IA2CP,cAAc,IAAI,IAAI;IActB,aAAa,IAAI,IAAI;IAIZ,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKxC,YAAY,IAAI,IAAI;IAIpB,aAAa,IAAI,IAAI;IAOrB,KAAK,IAAI,OAAO;IAIhB,YAAY,IAAI,MAAM;IAatB,aAAa,IAAI,MAAM;CAYxB;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"PlotlyExpressChartModel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EACV,EAAE,IAAI,MAAM,EACZ,SAAS,EACT,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,SAAS,EACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,qBAAqB,EAItB,MAAM,8BAA8B,CAAC;AAItC,qBAAa,uBAAwB,SAAQ,UAAU;gBAEnD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC9B,KAAK,GAAE,UAAgC;IAoBzC,YAAY,UAAS;IAErB,UAAU,EAAE,UAAU,CAAC;IAEvB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAa;IAElD;;OAEG;IACH,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IAEjE;;OAEG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAa;IAE5D;;OAEG;IACH,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAa;IAE1E;;OAEG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAEjD;;;OAGG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;KAAE,CAAC,CAAa;IAEpE,KAAK,EAAE,UAAU,CAAC;IAElB,UAAU,EAAE,IAAI,EAAE,CAAM;IAExB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAM;IAE7B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAM;IAEnC,QAAQ,UAAS;IAEjB,gBAAgB,UAAS;IAEhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;IAkC1B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,KAAK;IAMC,SAAS,CACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GACrC,OAAO,CAAC,IAAI,CAAC;IAgCP,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAclE,YAAY,CAAC,IAAI,EAAE,qBAAqB;IAqBxC,mBAAmB,CACjB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,CAAC,iBAAiB,CAAC,GACpC,IAAI;IA2BP,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAiCzE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAYjC,cAAc,CAAC,EAAE,EAAE,MAAM;IAyBzB,WAAW,CAAC,EAAE,EAAE,MAAM;IAYb,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAKxC,YAAY,IAAI,IAAI;IAIpB,aAAa,IAAI,IAAI;IAOrB,4BAA4B,IAAI,OAAO;IAMvC,QAAQ,IAAI,OAAO;IAInB,MAAM,IAAI,OAAO;IAIjB,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,OAAO;IAInB,YAAY,IAAI,MAAM;IAatB,aAAa,IAAI,MAAM;CAYxB;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,95 +1,213 @@
1
- import { ChartModel, ChartUtils, ChartTheme } from '@deephaven/chart';
1
+ import { ChartModel, ChartUtils, defaultChartTheme, } from '@deephaven/chart';
2
2
  import Log from '@deephaven/log';
3
- import { applyColorwayToData } from './PlotlyExpressChartUtils.js';
3
+ import { applyColorwayToData, getDataMappings, getWidgetData, } from './PlotlyExpressChartUtils.js';
4
4
  const log = Log.module('@deephaven/js-plugin-plotly-express.ChartModel');
5
5
  export class PlotlyExpressChartModel extends ChartModel {
6
- constructor(dh, tableColumnReplacementMap, data, plotlyLayout, isDefaultTemplate = true, theme = ChartTheme) {
7
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
6
+ constructor(dh, widget, refetch, theme = defaultChartTheme()) {
8
7
  super(dh);
9
- this.tableSubscriptionCleanups = [];
8
+ this.isSubscribed = false;
9
+ /**
10
+ * Map of table index to Table object.
11
+ */
12
+ this.tableReferenceMap = new Map();
13
+ /**
14
+ * Map of table index to TableSubscription object.
15
+ */
16
+ this.tableSubscriptionMap = new Map();
17
+ /**
18
+ * Map of table index to cleanup function for the subscription.
19
+ */
20
+ this.subscriptionCleanupMap = new Map();
21
+ /**
22
+ * Map of table index to map of column names to array of paths where the data should be replaced.
23
+ */
24
+ this.tableColumnReplacementMap = new Map();
25
+ /**
26
+ * Map of table index to ChartData object. Used to handle data delta updates.
27
+ */
28
+ this.chartDataMap = new Map();
29
+ /**
30
+ * Map of table index to object where the keys are column names and the values are arrays of data.
31
+ * This data is the full array of data for the column since ChartData doesn't have a clean way to get it at any time.
32
+ */
33
+ this.tableDataMap = new Map();
34
+ this.plotlyData = [];
35
+ this.layout = {};
36
+ this.plotlyLayout = {};
10
37
  this.isPaused = false;
11
38
  this.hasPendingUpdate = false;
12
- this.handleFigureUpdated = this.handleFigureUpdated.bind(this);
39
+ this.widget = widget;
40
+ this.refetch = refetch;
13
41
  this.chartUtils = new ChartUtils(dh);
14
- this.tableColumnReplacementMap = new Map(tableColumnReplacementMap);
15
- this.chartDataMap = new Map();
16
- this.tableSubscriptionMap = new Map();
17
42
  this.theme = theme;
18
- this.data = data;
19
- const template = { layout: this.chartUtils.makeDefaultLayout(theme) };
20
- // For now we will only use the plotly theme colorway since most plotly themes are light mode
21
- if (!isDefaultTemplate) {
22
- template.layout.colorway =
23
- (_c = (_b = (_a = plotlyLayout.template) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.colorway) !== null && _c !== void 0 ? _c : template.layout.colorway;
24
- }
25
- this.plotlyLayout = plotlyLayout;
26
- this.layout = Object.assign(Object.assign({}, plotlyLayout), { template });
27
- applyColorwayToData((_g = (_f = (_e = (_d = this.layout) === null || _d === void 0 ? void 0 : _d.template) === null || _e === void 0 ? void 0 : _e.layout) === null || _f === void 0 ? void 0 : _f.colorway) !== null && _g !== void 0 ? _g : [], (_l = (_k = (_j = (_h = this.plotlyLayout) === null || _h === void 0 ? void 0 : _h.template) === null || _j === void 0 ? void 0 : _j.layout) === null || _k === void 0 ? void 0 : _k.colorway) !== null && _l !== void 0 ? _l : [], this.data);
43
+ this.handleFigureUpdated = this.handleFigureUpdated.bind(this);
44
+ this.handleWidgetUpdated = this.handleWidgetUpdated.bind(this);
45
+ // This is mostly used for setting the initial layout.
46
+ // Chart only fetches the model layout once on init, so it needs to be set
47
+ // before the widget is subscribed to.
48
+ this.handleWidgetUpdated(getWidgetData(widget), widget.exportedObjects);
28
49
  this.setTitle(this.getDefaultTitle());
29
50
  }
30
51
  getData() {
31
- return this.data;
52
+ const hydratedData = [...this.plotlyData];
53
+ this.tableColumnReplacementMap.forEach((columnReplacements, tableId) => {
54
+ const tableData = this.tableDataMap.get(tableId);
55
+ if (tableData == null) {
56
+ throw new Error(`No tableData for table ID ${tableId}`);
57
+ }
58
+ // Replace placeholder arrays with actual data
59
+ columnReplacements.forEach((paths, columnName) => {
60
+ paths.forEach(destination => {
61
+ var _a;
62
+ // The JSON pointer starts w/ /plotly/data and we don't need that part
63
+ const parts = destination
64
+ .split('/')
65
+ .filter(part => part !== '' && part !== 'plotly' && part !== 'data');
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ let selector = hydratedData;
68
+ for (let i = 0; i < parts.length; i += 1) {
69
+ if (i !== parts.length - 1) {
70
+ selector = selector[parts[i]];
71
+ }
72
+ else {
73
+ selector[parts[i]] = (_a = tableData[columnName]) !== null && _a !== void 0 ? _a : [];
74
+ }
75
+ }
76
+ });
77
+ });
78
+ });
79
+ return hydratedData;
32
80
  }
33
81
  getLayout() {
34
82
  return this.layout;
35
83
  }
36
- subscribe(callback) {
84
+ close() {
85
+ var _a;
86
+ super.close();
87
+ (_a = this.widget) === null || _a === void 0 ? void 0 : _a.close();
88
+ this.widget = undefined;
89
+ }
90
+ async subscribe(callback) {
91
+ if (this.isSubscribed) {
92
+ return;
93
+ }
37
94
  super.subscribe(callback);
38
- const { dh } = this;
39
- this.tableColumnReplacementMap.forEach((_, table) => this.chartDataMap.set(table, new dh.plot.ChartData(table)));
40
- this.tableColumnReplacementMap.forEach((columnReplacements, table) => {
41
- const columnNames = new Set(columnReplacements.keys());
42
- const columns = table.columns.filter(({ name }) => columnNames.has(name));
43
- this.tableSubscriptionMap.set(table, table.subscribe(columns));
95
+ if (this.widget == null) {
96
+ this.widget = await this.refetch();
97
+ const widgetData = getWidgetData(this.widget);
98
+ this.handleWidgetUpdated(widgetData, this.widget.exportedObjects);
99
+ }
100
+ this.isSubscribed = true;
101
+ this.widgetUnsubscribe = this.widget.addEventListener(this.dh.Widget.EVENT_MESSAGE, ({ detail }) => {
102
+ this.handleWidgetUpdated(JSON.parse(detail.getDataAsString()), detail.exportedObjects);
44
103
  });
45
- this.startListening();
104
+ this.tableReferenceMap.forEach((_, id) => this.subscribeTable(id));
105
+ // If there are no tables to fetch data from, the chart is ready to render
106
+ // Normally this event only fires once at least 1 table has fetched data
107
+ // Without this, the chart shows an infinite loader if there are no tables
108
+ if (this.tableColumnReplacementMap.size === 0) {
109
+ this.fireUpdate(this.getData());
110
+ }
46
111
  }
47
112
  unsubscribe(callback) {
113
+ var _a, _b;
114
+ if (!this.isSubscribed) {
115
+ return;
116
+ }
48
117
  super.unsubscribe(callback);
49
- this.stopListening();
50
- this.tableSubscriptionMap.forEach(sub => sub.close());
51
- this.chartDataMap.clear();
118
+ (_a = this.widgetUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(this);
119
+ this.isSubscribed = false;
120
+ this.tableReferenceMap.forEach((_, id) => this.removeTable(id));
121
+ (_b = this.widget) === null || _b === void 0 ? void 0 : _b.close();
122
+ this.widget = undefined;
123
+ }
124
+ updateLayout(data) {
125
+ var _a, _b, _c;
126
+ const { figure } = data;
127
+ const { plotly, deephaven } = figure;
128
+ const { layout: plotlyLayout = {} } = plotly;
129
+ const template = { layout: this.chartUtils.makeDefaultLayout(this.theme) };
130
+ // For now we will only use the plotly theme colorway since most plotly themes are light mode
131
+ if (deephaven.is_user_set_template) {
132
+ template.layout.colorway =
133
+ (_c = (_b = (_a = plotlyLayout.template) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.colorway) !== null && _c !== void 0 ? _c : template.layout.colorway;
134
+ }
135
+ this.plotlyLayout = plotlyLayout;
136
+ this.layout = Object.assign(Object.assign({}, plotlyLayout), { template });
52
137
  }
53
- handleFigureUpdated(event, chartData, columnReplacements) {
54
- if (chartData == null || columnReplacements == null) {
55
- log.warn('Unknown chartData or columnReplacements for this event. Skipping update');
138
+ handleWidgetUpdated(data, references) {
139
+ var _a, _b, _c, _d, _e, _f, _g, _h;
140
+ const { figure, new_references: newReferences, removed_references: removedReferences, } = data;
141
+ const { plotly } = figure;
142
+ this.tableColumnReplacementMap = getDataMappings(data);
143
+ this.plotlyData = plotly.data;
144
+ this.updateLayout(data);
145
+ applyColorwayToData((_d = (_c = (_b = (_a = this.layout) === null || _a === void 0 ? void 0 : _a.template) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.colorway) !== null && _d !== void 0 ? _d : [], (_h = (_g = (_f = (_e = this.plotlyLayout) === null || _e === void 0 ? void 0 : _e.template) === null || _f === void 0 ? void 0 : _f.layout) === null || _g === void 0 ? void 0 : _g.colorway) !== null && _h !== void 0 ? _h : [], this.plotlyData);
146
+ newReferences.forEach(async (id, i) => {
147
+ this.tableDataMap.set(id, {}); // Plot may render while tables are being fetched. Set this to avoid a render error
148
+ const table = (await references[i].fetch());
149
+ this.addTable(id, table);
150
+ });
151
+ removedReferences.forEach(id => this.removeTable(id));
152
+ }
153
+ handleFigureUpdated(event, tableId) {
154
+ const chartData = this.chartDataMap.get(tableId);
155
+ const tableData = this.tableDataMap.get(tableId);
156
+ if (chartData == null) {
157
+ log.warn('Unknown chartData for this event. Skipping update');
158
+ return;
159
+ }
160
+ if (tableData == null) {
161
+ log.warn('No tableData for this event. Skipping update');
56
162
  return;
57
163
  }
58
164
  const { detail: figureUpdateEvent } = event;
59
165
  chartData.update(figureUpdateEvent);
60
- columnReplacements.forEach((destinations, column) => {
61
- const columnData = chartData.getColumn(column, val => this.chartUtils.unwrapValue(val), figureUpdateEvent);
62
- destinations.forEach(destination => {
63
- // The JSON pointer starts w/ /plotly and we don't need that part
64
- const parts = destination
65
- .split('/')
66
- .filter(part => part !== '' && part !== 'plotly');
67
- // eslint-disable-next-line @typescript-eslint/no-this-alias, @typescript-eslint/no-explicit-any
68
- let selector = this;
69
- for (let i = 0; i < parts.length; i += 1) {
70
- if (i !== parts.length - 1) {
71
- selector = selector[parts[i]];
72
- }
73
- else {
74
- selector[parts[i]] = columnData;
75
- }
76
- }
77
- });
166
+ figureUpdateEvent.columns.forEach(column => {
167
+ const columnData = chartData.getColumn(column.name, val => this.chartUtils.unwrapValue(val), figureUpdateEvent);
168
+ tableData[column.name] = columnData;
78
169
  });
79
- const { data } = this;
80
170
  if (this.isPaused) {
81
171
  this.hasPendingUpdate = true;
82
172
  return;
83
173
  }
84
- this.fireUpdate(data);
174
+ this.fireUpdate(this.getData());
85
175
  }
86
- startListening() {
87
- this.tableSubscriptionMap.forEach((sub, table) => {
88
- this.tableSubscriptionCleanups.push(sub.addEventListener(this.dh.Table.EVENT_UPDATED, e => this.handleFigureUpdated(e, this.chartDataMap.get(table), this.tableColumnReplacementMap.get(table))));
89
- });
176
+ addTable(id, table) {
177
+ if (this.tableReferenceMap.has(id)) {
178
+ return;
179
+ }
180
+ this.tableReferenceMap.set(id, table);
181
+ this.tableDataMap.set(id, {});
182
+ if (this.isSubscribed) {
183
+ this.subscribeTable(id);
184
+ }
185
+ }
186
+ subscribeTable(id) {
187
+ const table = this.tableReferenceMap.get(id);
188
+ const columnReplacements = this.tableColumnReplacementMap.get(id);
189
+ if (table != null &&
190
+ columnReplacements != null &&
191
+ columnReplacements.size > 0 &&
192
+ !this.tableSubscriptionMap.has(id)) {
193
+ this.chartDataMap.set(id, new this.dh.plot.ChartData(table));
194
+ const columnNames = new Set(columnReplacements.keys());
195
+ const columns = table.columns.filter(({ name }) => columnNames.has(name));
196
+ const subscription = table.subscribe(columns);
197
+ this.tableSubscriptionMap.set(id, subscription);
198
+ this.subscriptionCleanupMap.set(id, subscription.addEventListener(this.dh.Table.EVENT_UPDATED, e => this.handleFigureUpdated(e, id)));
199
+ }
90
200
  }
91
- stopListening() {
92
- this.tableSubscriptionCleanups.forEach(cleanup => cleanup());
201
+ removeTable(id) {
202
+ var _a, _b;
203
+ (_a = this.subscriptionCleanupMap.get(id)) === null || _a === void 0 ? void 0 : _a();
204
+ (_b = this.tableSubscriptionMap.get(id)) === null || _b === void 0 ? void 0 : _b.close();
205
+ this.tableReferenceMap.delete(id);
206
+ this.subscriptionCleanupMap.delete(id);
207
+ this.tableSubscriptionMap.delete(id);
208
+ this.chartDataMap.delete(id);
209
+ this.tableDataMap.delete(id);
210
+ this.tableColumnReplacementMap.delete(id);
93
211
  }
94
212
  fireUpdate(data) {
95
213
  super.fireUpdate(data);
@@ -101,11 +219,23 @@ export class PlotlyExpressChartModel extends ChartModel {
101
219
  resumeUpdates() {
102
220
  this.isPaused = false;
103
221
  if (this.hasPendingUpdate) {
104
- this.fireUpdate(this.data);
222
+ this.fireUpdate(this.getData());
105
223
  }
106
224
  }
107
- has3D() {
108
- return this.data.some(({ type }) => type != null && type.includes('3d'));
225
+ shouldPauseOnUserInteraction() {
226
+ return (this.hasScene() || this.hasGeo() || this.hasMapbox() || this.hasPolar());
227
+ }
228
+ hasScene() {
229
+ return this.plotlyData.some(d => 'scene' in d && d.scene != null);
230
+ }
231
+ hasGeo() {
232
+ return this.plotlyData.some(d => 'geo' in d && d.geo != null);
233
+ }
234
+ hasMapbox() {
235
+ return this.plotlyData.some(({ type }) => type === null || type === void 0 ? void 0 : type.includes('mapbox'));
236
+ }
237
+ hasPolar() {
238
+ return this.plotlyData.some(({ type }) => type === null || type === void 0 ? void 0 : type.includes('polar'));
109
239
  }
110
240
  getPlotWidth() {
111
241
  var _a, _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlyExpressChartModel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlotlyExpressChartModel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { type ChartPanelProps } from '@deephaven/dashboard-core-plugins';
3
- import { type PlotlyChartWidget } from './PlotlyExpressChartUtils.js';
4
- export interface PlotlyExpressChartPanelProps extends ChartPanelProps {
5
- fetch(): Promise<PlotlyChartWidget>;
6
- }
7
- declare function PlotlyExpressChartPanel(props: PlotlyExpressChartPanelProps): JSX.Element;
8
- declare namespace PlotlyExpressChartPanel {
9
- var displayName: string;
10
- }
2
+ import { type WidgetPanelProps } from '@deephaven/plugin';
3
+ export declare function PlotlyExpressChartPanel(props: WidgetPanelProps): JSX.Element;
11
4
  export default PlotlyExpressChartPanel;
12
5
  //# sourceMappingURL=PlotlyExpressChartPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlyExpressChartPanel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,4BAA6B,SAAQ,eAAe;IACnE,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrC;AAED,iBAAS,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,eA0EnE;kBA1EQ,uBAAuB;;;AA8EhC,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"PlotlyExpressChartPanel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,eAyB9D;AAED,eAAe,uBAAuB,CAAC"}
@@ -10,63 +10,27 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
- import { useCallback, useEffect, useRef, useState } from 'react';
13
+ import { useCallback, useRef, useState } from 'react';
14
14
  import Plotly from 'plotly.js-dist-min';
15
- import { ChartPanel, } from '@deephaven/dashboard-core-plugins';
16
- import { ChartTheme } from '@deephaven/chart';
15
+ import { ChartPanel } from '@deephaven/dashboard-core-plugins';
17
16
  import { useApi } from '@deephaven/jsapi-bootstrap';
18
17
  import PlotlyExpressChartModel from './PlotlyExpressChartModel.js';
19
- import { getWidgetData, getDataMappings, } from './PlotlyExpressChartUtils.js';
20
- function PlotlyExpressChartPanel(props) {
18
+ import { useHandleSceneTicks } from './useHandleSceneTicks.js';
19
+ export function PlotlyExpressChartPanel(props) {
21
20
  const dh = useApi();
22
- const { fetch } = props, rest = __rest(props, ["fetch"]);
21
+ const { fetch, metadata = {} } = props, rest = __rest(props, ["fetch", "metadata"]);
23
22
  const containerRef = useRef(null);
24
23
  const [model, setModel] = useState();
25
24
  const makeModel = useCallback(async () => {
26
- var _a;
27
- const widgetInfo = await fetch();
28
- const data = getWidgetData(widgetInfo);
29
- const { plotly, deephaven } = data;
30
- const isDefaultTemplate = !deephaven.is_user_set_template;
31
- const tableColumnReplacementMap = await getDataMappings(widgetInfo);
32
- const m = new PlotlyExpressChartModel(dh, tableColumnReplacementMap, plotly.data, (_a = plotly.layout) !== null && _a !== void 0 ? _a : {}, isDefaultTemplate, ChartTheme);
25
+ const widgetData = await fetch();
26
+ const m = new PlotlyExpressChartModel(dh, widgetData, fetch);
33
27
  setModel(m);
34
28
  return m;
35
29
  }, [dh, fetch]);
36
- useEffect(function handle3DTicks() {
37
- if (!model || !containerRef.current || !model.has3D()) {
38
- return;
39
- }
40
- const container = containerRef.current;
41
- function handleMouseDown() {
42
- model === null || model === void 0 ? void 0 : model.pauseUpdates();
43
- // The once option removes the listener after it is called
44
- window.addEventListener('mouseup', handleMouseUp, { once: true });
45
- }
46
- function handleMouseUp() {
47
- model === null || model === void 0 ? void 0 : model.resumeUpdates();
48
- }
49
- let wheelTimeout = 0;
50
- function handleWheel() {
51
- model === null || model === void 0 ? void 0 : model.pauseUpdates();
52
- window.clearTimeout(wheelTimeout);
53
- wheelTimeout = window.setTimeout(() => {
54
- model === null || model === void 0 ? void 0 : model.resumeUpdates();
55
- }, 300);
56
- }
57
- container.addEventListener('mousedown', handleMouseDown);
58
- container.addEventListener('wheel', handleWheel);
59
- return () => {
60
- window.clearTimeout(wheelTimeout);
61
- window.removeEventListener('mouseup', handleMouseUp);
62
- container.removeEventListener('mousedown', handleMouseDown);
63
- container.removeEventListener('wheel', handleWheel);
64
- };
65
- }, [model]);
30
+ useHandleSceneTicks(model, containerRef.current);
66
31
  return (_jsx(ChartPanel
67
32
  // eslint-disable-next-line react/jsx-props-no-spreading
68
- , Object.assign({}, rest, { containerRef: containerRef, makeModel: makeModel, Plotly: Plotly })));
33
+ , Object.assign({}, rest, { containerRef: containerRef, makeModel: makeModel, Plotly: Plotly, metadata: metadata })));
69
34
  }
70
- PlotlyExpressChartPanel.displayName = 'PlotlyExpressChartPanel';
71
35
  export default PlotlyExpressChartPanel;
72
36
  //# sourceMappingURL=PlotlyExpressChartPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlyExpressChartPanel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlotlyExpressChartPanel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAmB,MAAM,mCAAmC,CAAC;AAEhF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,uBAAuB,CAAC,KAAuB;IAC7D,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAzC,qBAAiC,CAAQ,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAA2B,CAAC;IAE9D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,MAAM,UAAU,GAAG,MAAM,KAAK,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,uBAAuB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC7D,QAAQ,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,CACL,KAAC,UAAU;IACT,wDAAwD;wBACnD,IAAwB,IAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAuC,IACjD,CACH,CAAC;AACJ,CAAC;AAED,eAAe,uBAAuB,CAAC"}