@deephaven/js-plugin-plotly-express 0.3.2 → 0.5.0
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/DashboardPlugin.d.ts +5 -0
- package/dist/DashboardPlugin.d.ts.map +1 -0
- package/dist/DashboardPlugin.js +39 -0
- package/dist/DashboardPlugin.js.map +1 -0
- package/dist/PlotlyExpressChart.d.ts +2 -1
- package/dist/PlotlyExpressChart.d.ts.map +1 -1
- package/dist/PlotlyExpressChart.js.map +1 -1
- package/dist/PlotlyExpressChartModel.d.ts +3 -4
- package/dist/PlotlyExpressChartModel.d.ts.map +1 -1
- package/dist/PlotlyExpressChartModel.js +21 -19
- package/dist/PlotlyExpressChartModel.js.map +1 -1
- package/dist/PlotlyExpressChartPanel.d.ts +2 -1
- package/dist/PlotlyExpressChartPanel.d.ts.map +1 -1
- package/dist/PlotlyExpressChartPanel.js.map +1 -1
- package/dist/PlotlyExpressChartUtils.d.ts +16 -7
- package/dist/PlotlyExpressChartUtils.d.ts.map +1 -1
- package/dist/PlotlyExpressChartUtils.js +13 -24
- package/dist/PlotlyExpressChartUtils.js.map +1 -1
- package/dist/PlotlyExpressPlugin.d.ts +2 -1
- package/dist/PlotlyExpressPlugin.d.ts.map +1 -1
- package/dist/PlotlyExpressPlugin.js.map +1 -1
- package/dist/bundle/index.js +104057 -199769
- package/dist/bundle/style.css +977 -466
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +16 -16
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DashboardPluginComponentProps } from '@deephaven/dashboard';
|
|
3
|
+
export declare function DashboardPlugin(props: DashboardPluginComponentProps): JSX.Element | null;
|
|
4
|
+
export default DashboardPlugin;
|
|
5
|
+
//# sourceMappingURL=DashboardPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPlugin.d.ts","sourceRoot":"","sources":["../src/DashboardPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,6BAA6B,EAI9B,MAAM,sBAAsB,CAAC;AAK9B,wBAAgB,eAAe,CAC7B,KAAK,EAAE,6BAA6B,GACnC,GAAG,CAAC,OAAO,GAAG,IAAI,CA4DpB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import shortid from 'shortid';
|
|
3
|
+
import { LayoutUtils, PanelEvent, useListener, } from '@deephaven/dashboard';
|
|
4
|
+
import PlotlyExpressChartPanel from './PlotlyExpressChartPanel.js';
|
|
5
|
+
export function DashboardPlugin(props) {
|
|
6
|
+
const { id, layout, registerComponent } = props;
|
|
7
|
+
const handlePanelOpen = useCallback(async ({ dragEvent, fetch, metadata = {}, panelId = shortid.generate(), widget, }) => {
|
|
8
|
+
const { type, name } = widget;
|
|
9
|
+
if (type !== 'deephaven.plot.express.DeephavenFigure') {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const config = {
|
|
13
|
+
type: 'react-component',
|
|
14
|
+
component: 'PlotlyPanel',
|
|
15
|
+
props: {
|
|
16
|
+
localDashboardId: id,
|
|
17
|
+
id: panelId,
|
|
18
|
+
metadata: Object.assign(Object.assign(Object.assign({}, metadata), widget), { figure: name }),
|
|
19
|
+
fetch,
|
|
20
|
+
},
|
|
21
|
+
title: name,
|
|
22
|
+
id: panelId,
|
|
23
|
+
};
|
|
24
|
+
const { root } = layout;
|
|
25
|
+
LayoutUtils.openComponent({ root, config, dragEvent });
|
|
26
|
+
}, [id, layout]);
|
|
27
|
+
useEffect(function registerComponentsAndReturnCleanup() {
|
|
28
|
+
const cleanups = [
|
|
29
|
+
registerComponent('PlotlyPanel', PlotlyExpressChartPanel),
|
|
30
|
+
];
|
|
31
|
+
return () => {
|
|
32
|
+
cleanups.forEach(cleanup => cleanup());
|
|
33
|
+
};
|
|
34
|
+
}, [registerComponent]);
|
|
35
|
+
useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
export default DashboardPlugin;
|
|
39
|
+
//# sourceMappingURL=DashboardPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPlugin.js","sourceRoot":"","sources":["../src/DashboardPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAEL,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE,MAAM,UAAU,eAAe,CAC7B,KAAoC;IAEpC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,EACL,SAAS,EACT,KAAK,EACL,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,EAC5B,MAAM,GAOP,EAAE,EAAE;QACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,IAAI,KAAK,wCAAwC,EAAE;YACrD,OAAO;SACR;QAED,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,iBAA0B;YAChC,SAAS,EAAE,aAAa;YACxB,KAAK,EAAE;gBACL,gBAAgB,EAAE,EAAE;gBACpB,EAAE,EAAE,OAAO;gBACX,QAAQ,gDACH,QAAQ,GACR,MAAM,KACT,MAAM,EAAE,IAAI,GACb;gBACD,KAAK;aACN;YACD,KAAK,EAAE,IAAI;YACX,EAAE,EAAE,OAAO;SACZ,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACxB,WAAW,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC,EACD,CAAC,EAAE,EAAE,MAAM,CAAC,CACb,CAAC;IAEF,SAAS,CACP,SAAS,kCAAkC;QACzC,MAAM,QAAQ,GAAG;YACf,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC1D,CAAC;QACF,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAE/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import type { Widget } from '@deephaven/jsapi-types';
|
|
2
3
|
import { type WidgetComponentProps } from '@deephaven/plugin';
|
|
3
|
-
export declare function PlotlyExpressChart(props: WidgetComponentProps): JSX.Element | null;
|
|
4
|
+
export declare function PlotlyExpressChart(props: WidgetComponentProps<Widget>): JSX.Element | null;
|
|
4
5
|
export default PlotlyExpressChart;
|
|
5
6
|
//# sourceMappingURL=PlotlyExpressChart.d.ts.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChart.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChart.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CAiCpB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +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;
|
|
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;AAGzC,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,KAAmC;IAEnC,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,9 +1,9 @@
|
|
|
1
1
|
import type { Layout, Data } from 'plotly.js';
|
|
2
2
|
import type { dh as DhType, ChartData, Widget, Table, TableSubscription, TableData } from '@deephaven/jsapi-types';
|
|
3
|
-
import { ChartModel, ChartUtils
|
|
3
|
+
import { ChartModel, ChartUtils } from '@deephaven/chart';
|
|
4
4
|
import { PlotlyChartWidgetData } from './PlotlyExpressChartUtils.js';
|
|
5
5
|
export declare class PlotlyExpressChartModel extends ChartModel {
|
|
6
|
-
constructor(dh: DhType, widget: Widget, refetch: () => Promise<Widget
|
|
6
|
+
constructor(dh: DhType, widget: Widget, refetch: () => Promise<Widget>);
|
|
7
7
|
isSubscribed: boolean;
|
|
8
8
|
chartUtils: ChartUtils;
|
|
9
9
|
refetch: () => Promise<Widget>;
|
|
@@ -36,12 +36,11 @@ export declare class PlotlyExpressChartModel extends ChartModel {
|
|
|
36
36
|
tableDataMap: Map<number, {
|
|
37
37
|
[key: string]: unknown[];
|
|
38
38
|
}>;
|
|
39
|
-
theme: ChartTheme;
|
|
40
39
|
plotlyData: Data[];
|
|
41
40
|
layout: Partial<Layout>;
|
|
42
|
-
plotlyLayout: Partial<Layout>;
|
|
43
41
|
isPaused: boolean;
|
|
44
42
|
hasPendingUpdate: boolean;
|
|
43
|
+
hasInitialLoadCompleted: boolean;
|
|
45
44
|
getData(): Partial<Data>[];
|
|
46
45
|
getLayout(): Partial<Layout>;
|
|
47
46
|
close(): void;
|
|
@@ -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,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,SAAS,EACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
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,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,qBAAqB,EAItB,MAAM,8BAA8B,CAAC;AAItC,qBAAa,uBAAwB,SAAQ,UAAU;gBACzC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC;IAkBtE,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,UAAU,EAAE,IAAI,EAAE,CAAM;IAExB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAM;IAE7B,QAAQ,UAAS;IAEjB,gBAAgB,UAAS;IAEzB,uBAAuB,UAAS;IAEvB,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;IAUxC,mBAAmB,CACjB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,MAAM,CAAC,iBAAiB,CAAC,GACpC,IAAI;IA6BP,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;IAcxC,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,9 +1,9 @@
|
|
|
1
|
-
import { ChartModel, ChartUtils
|
|
1
|
+
import { ChartModel, ChartUtils } from '@deephaven/chart';
|
|
2
2
|
import Log from '@deephaven/log';
|
|
3
|
-
import {
|
|
3
|
+
import { getDataMappings, getWidgetData, removeColorsFromData, } 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, widget, refetch
|
|
6
|
+
constructor(dh, widget, refetch) {
|
|
7
7
|
super(dh);
|
|
8
8
|
this.isSubscribed = false;
|
|
9
9
|
/**
|
|
@@ -33,13 +33,12 @@ export class PlotlyExpressChartModel extends ChartModel {
|
|
|
33
33
|
this.tableDataMap = new Map();
|
|
34
34
|
this.plotlyData = [];
|
|
35
35
|
this.layout = {};
|
|
36
|
-
this.plotlyLayout = {};
|
|
37
36
|
this.isPaused = false;
|
|
38
37
|
this.hasPendingUpdate = false;
|
|
38
|
+
this.hasInitialLoadCompleted = false;
|
|
39
39
|
this.widget = widget;
|
|
40
40
|
this.refetch = refetch;
|
|
41
41
|
this.chartUtils = new ChartUtils(dh);
|
|
42
|
-
this.theme = theme;
|
|
43
42
|
this.handleFigureUpdated = this.handleFigureUpdated.bind(this);
|
|
44
43
|
this.handleWidgetUpdated = this.handleWidgetUpdated.bind(this);
|
|
45
44
|
// This is mostly used for setting the initial layout.
|
|
@@ -122,27 +121,22 @@ export class PlotlyExpressChartModel extends ChartModel {
|
|
|
122
121
|
this.widget = undefined;
|
|
123
122
|
}
|
|
124
123
|
updateLayout(data) {
|
|
125
|
-
var _a, _b, _c;
|
|
126
124
|
const { figure } = data;
|
|
127
|
-
const { plotly
|
|
125
|
+
const { plotly } = figure;
|
|
128
126
|
const { layout: plotlyLayout = {} } = plotly;
|
|
129
|
-
|
|
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 });
|
|
127
|
+
this.layout = Object.assign({}, plotlyLayout);
|
|
137
128
|
}
|
|
138
129
|
handleWidgetUpdated(data, references) {
|
|
139
|
-
var _a, _b, _c
|
|
130
|
+
var _a, _b, _c;
|
|
140
131
|
const { figure, new_references: newReferences, removed_references: removedReferences, } = data;
|
|
141
|
-
const { plotly } = figure;
|
|
132
|
+
const { plotly, deephaven } = figure;
|
|
133
|
+
const { layout: plotlyLayout = {} } = plotly;
|
|
142
134
|
this.tableColumnReplacementMap = getDataMappings(data);
|
|
143
135
|
this.plotlyData = plotly.data;
|
|
144
136
|
this.updateLayout(data);
|
|
145
|
-
|
|
137
|
+
if (!deephaven.is_user_set_template) {
|
|
138
|
+
removeColorsFromData((_c = (_b = (_a = plotlyLayout === null || plotlyLayout === void 0 ? void 0 : plotlyLayout.template) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.colorway) !== null && _c !== void 0 ? _c : [], this.plotlyData);
|
|
139
|
+
}
|
|
146
140
|
newReferences.forEach(async (id, i) => {
|
|
147
141
|
this.tableDataMap.set(id, {}); // Plot may render while tables are being fetched. Set this to avoid a render error
|
|
148
142
|
const table = (await references[i].fetch());
|
|
@@ -164,7 +158,7 @@ export class PlotlyExpressChartModel extends ChartModel {
|
|
|
164
158
|
const { detail: figureUpdateEvent } = event;
|
|
165
159
|
chartData.update(figureUpdateEvent);
|
|
166
160
|
figureUpdateEvent.columns.forEach(column => {
|
|
167
|
-
const columnData = chartData.getColumn(column.name,
|
|
161
|
+
const columnData = chartData.getColumn(column.name, this.chartUtils.unwrapValue, figureUpdateEvent);
|
|
168
162
|
tableData[column.name] = columnData;
|
|
169
163
|
});
|
|
170
164
|
if (this.isPaused) {
|
|
@@ -212,6 +206,14 @@ export class PlotlyExpressChartModel extends ChartModel {
|
|
|
212
206
|
fireUpdate(data) {
|
|
213
207
|
super.fireUpdate(data);
|
|
214
208
|
this.hasPendingUpdate = false;
|
|
209
|
+
// TODO: This will fire on first call to `fireUpdate` even though other data
|
|
210
|
+
// may still be loading. We should consider making this smarter to fire after
|
|
211
|
+
// all initial data has loaded.
|
|
212
|
+
// https://github.com/deephaven/deephaven-plugins/issues/267
|
|
213
|
+
if (!this.hasInitialLoadCompleted) {
|
|
214
|
+
this.fireLoadFinished();
|
|
215
|
+
this.hasInitialLoadCompleted = true;
|
|
216
|
+
}
|
|
215
217
|
}
|
|
216
218
|
pauseUpdates() {
|
|
217
219
|
this.isPaused = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressChartModel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartModel.js","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import type { Widget } from '@deephaven/jsapi-types';
|
|
2
3
|
import { type WidgetPanelProps } from '@deephaven/plugin';
|
|
3
|
-
export declare function PlotlyExpressChartPanel(props: WidgetPanelProps): JSX.Element;
|
|
4
|
+
export declare function PlotlyExpressChartPanel(props: WidgetPanelProps<Widget>): JSX.Element;
|
|
4
5
|
export default PlotlyExpressChartPanel;
|
|
5
6
|
//# sourceMappingURL=PlotlyExpressChartPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartPanel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,eAyBtE;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAGhF,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,KAA+B;IACrE,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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { Data, PlotlyDataLayoutConfig } from 'plotly.js';
|
|
2
|
-
import type { Widget } from '@deephaven/jsapi-types';
|
|
2
|
+
import type { Table, Widget } from '@deephaven/jsapi-types';
|
|
3
|
+
export interface PlotlyChartWidget {
|
|
4
|
+
getDataAsBase64(): string;
|
|
5
|
+
exportedObjects: {
|
|
6
|
+
fetch(): Promise<Table>;
|
|
7
|
+
}[];
|
|
8
|
+
addEventListener(type: string, fn: (event: CustomEvent<PlotlyChartWidget>) => () => void): void;
|
|
9
|
+
}
|
|
3
10
|
export interface PlotlyChartWidgetData {
|
|
4
11
|
type: string;
|
|
5
12
|
figure: {
|
|
@@ -20,12 +27,14 @@ export interface PlotlyChartWidgetData {
|
|
|
20
27
|
export declare function getWidgetData(widgetInfo: Widget): PlotlyChartWidgetData;
|
|
21
28
|
export declare function getDataMappings(widgetData: PlotlyChartWidgetData): Map<number, Map<string, string[]>>;
|
|
22
29
|
/**
|
|
23
|
-
*
|
|
24
|
-
* Data color is not
|
|
30
|
+
* Removes the default colors from the data
|
|
31
|
+
* Data color is not removed if the user set the color specifically or the plot type sets it
|
|
32
|
+
*
|
|
33
|
+
* This only checks if the marker or line color is set to a color in the colorway.
|
|
34
|
+
* This means it is not possible to change the order of the colorway and use the same colors.
|
|
25
35
|
*
|
|
26
|
-
* @param colorway The colorway from
|
|
27
|
-
* @param
|
|
28
|
-
* @param data The data to apply the colorway to. This will be mutated
|
|
36
|
+
* @param colorway The colorway from plotly
|
|
37
|
+
* @param data The data to remove the colorway from. This will be mutated
|
|
29
38
|
*/
|
|
30
|
-
export declare function
|
|
39
|
+
export declare function removeColorsFromData(colorway: string[], data: Data[]): void;
|
|
31
40
|
//# sourceMappingURL=PlotlyExpressChartUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressChartUtils.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,eAAe,IAAI,MAAM,CAAC;IAC1B,eAAe,EAAE;QAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;KAAE,EAAE,CAAC;IAC/C,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,MAAM,IAAI,GACxD,IAAI,CAAC;CACT;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,SAAS,EAAE;YACT,QAAQ,EAAE,KAAK,CAAC;gBACd,KAAK,EAAE,MAAM,CAAC;gBACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;aACxC,CAAC,CAAC;YACH,oBAAoB,EAAE,OAAO,CAAC;YAC9B,iBAAiB,EAAE,OAAO,CAAC;SAC5B,CAAC;QACF,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,CAEvE;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,GAChC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CA0BpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CA+B3E"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import Log from '@deephaven/log';
|
|
2
|
-
const log = Log.module('@deephaven/js-plugin-plotly-express.ChartUtils');
|
|
3
1
|
export function getWidgetData(widgetInfo) {
|
|
4
2
|
return JSON.parse(widgetInfo.getDataAsString());
|
|
5
3
|
}
|
|
@@ -25,28 +23,19 @@ export function getDataMappings(widgetData) {
|
|
|
25
23
|
return tableColumnReplacementMap;
|
|
26
24
|
}
|
|
27
25
|
/**
|
|
28
|
-
*
|
|
29
|
-
* Data color is not
|
|
26
|
+
* Removes the default colors from the data
|
|
27
|
+
* Data color is not removed if the user set the color specifically or the plot type sets it
|
|
30
28
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* This only checks if the marker or line color is set to a color in the colorway.
|
|
30
|
+
* This means it is not possible to change the order of the colorway and use the same colors.
|
|
31
|
+
*
|
|
32
|
+
* @param colorway The colorway from plotly
|
|
33
|
+
* @param data The data to remove the colorway from. This will be mutated
|
|
34
34
|
*/
|
|
35
|
-
export function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (plotlyColorway.length > colorway.length) {
|
|
40
|
-
log.warn("Plotly's colorway is longer than the web UI colorway. May result in incorrect colors for some series");
|
|
41
|
-
}
|
|
42
|
-
const colorMap = new Map(plotlyColorway.map((color, i) => {
|
|
43
|
-
var _a;
|
|
44
|
-
return [
|
|
45
|
-
color.toUpperCase(),
|
|
46
|
-
(_a = colorway[i]) !== null && _a !== void 0 ? _a : color,
|
|
47
|
-
];
|
|
48
|
-
}));
|
|
49
|
-
const plotlyColors = new Set(plotlyColorway.map(color => color.toUpperCase()));
|
|
35
|
+
export function removeColorsFromData(colorway, data) {
|
|
36
|
+
const plotlyColors = new Set(colorway.map(color => color.toUpperCase()));
|
|
37
|
+
// Just check if the colors are in the colorway at any point
|
|
38
|
+
// Plotly has many different ways to layer/order series
|
|
50
39
|
for (let i = 0; i < data.length; i += 1) {
|
|
51
40
|
const trace = data[i];
|
|
52
41
|
// There are multiple datatypes in plotly and some don't contain marker or marker.color
|
|
@@ -55,7 +44,7 @@ export function applyColorwayToData(colorway, plotlyColorway, data) {
|
|
|
55
44
|
'color' in trace.marker &&
|
|
56
45
|
typeof trace.marker.color === 'string') {
|
|
57
46
|
if (plotlyColors.has(trace.marker.color.toUpperCase())) {
|
|
58
|
-
|
|
47
|
+
delete trace.marker.color;
|
|
59
48
|
}
|
|
60
49
|
}
|
|
61
50
|
if ('line' in trace &&
|
|
@@ -63,7 +52,7 @@ export function applyColorwayToData(colorway, plotlyColorway, data) {
|
|
|
63
52
|
'color' in trace.line &&
|
|
64
53
|
typeof trace.line.color === 'string') {
|
|
65
54
|
if (plotlyColors.has(trace.line.color.toUpperCase())) {
|
|
66
|
-
|
|
55
|
+
delete trace.line.color;
|
|
67
56
|
}
|
|
68
57
|
}
|
|
69
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressChartUtils.js","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.js","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAiC;IAEjC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;IAE/B,mGAAmG;IACnG,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE3E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAC7B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE;;QACnD,MAAM,iBAAiB,GACrB,MAAA,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,mCACzC,IAAI,GAAG,EAAoB,CAAC;QAC9B,yBAAyB,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAE7D,8FAA8F;QAC9F,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1D,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;aAC9B;iBAAM;gBACL,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,IAAY;IACnE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzE,4DAA4D;IAC5D,uDAAuD;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,uFAAuF;QACvF,IACE,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,IAAI,IAAI;YACpB,OAAO,IAAI,KAAK,CAAC,MAAM;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,EACtC;YACA,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;gBACtD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;aAC3B;SACF;QAED,IACE,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,IAAI,IAAI;YAClB,OAAO,IAAI,KAAK,CAAC,IAAI;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EACpC;YACA,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;gBACpD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACzB;SACF;KACF;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type WidgetPlugin } from '@deephaven/plugin';
|
|
2
|
-
|
|
2
|
+
import type { Widget } from '@deephaven/jsapi-types';
|
|
3
|
+
export declare const PlotlyExpressPlugin: WidgetPlugin<Widget>;
|
|
3
4
|
export default PlotlyExpressPlugin;
|
|
4
5
|
//# sourceMappingURL=PlotlyExpressPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressPlugin.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlotlyExpressPlugin.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,MAAM,CAOpD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressPlugin.js","sourceRoot":"","sources":["../src/PlotlyExpressPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlotlyExpressPlugin.js","sourceRoot":"","sources":["../src/PlotlyExpressPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,UAAU,CAAC,aAAa;IAC9B,cAAc,EAAE,wCAAwC;IACxD,SAAS,EAAE,kBAAkB;IAC7B,cAAc,EAAE,uBAAuB;IACvC,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|