@deephaven/js-plugin-plotly-express 0.6.0 → 0.8.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.js +1 -1
- package/dist/DashboardPlugin.js.map +1 -1
- package/dist/PlotlyExpressChart.d.ts +2 -2
- package/dist/PlotlyExpressChart.d.ts.map +1 -1
- package/dist/PlotlyExpressChart.js +3 -4
- package/dist/PlotlyExpressChart.js.map +1 -1
- package/dist/PlotlyExpressChartModel.d.ts +41 -11
- package/dist/PlotlyExpressChartModel.d.ts.map +1 -1
- package/dist/PlotlyExpressChartModel.js +179 -11
- package/dist/PlotlyExpressChartModel.js.map +1 -1
- package/dist/PlotlyExpressChartModel.test.d.ts +2 -0
- package/dist/PlotlyExpressChartModel.test.d.ts.map +1 -0
- package/dist/PlotlyExpressChartModel.test.js +174 -0
- package/dist/PlotlyExpressChartModel.test.js.map +1 -0
- package/dist/PlotlyExpressChartPanel.d.ts +2 -2
- package/dist/PlotlyExpressChartPanel.d.ts.map +1 -1
- package/dist/PlotlyExpressChartPanel.js.map +1 -1
- package/dist/PlotlyExpressChartUtils.d.ts +68 -6
- package/dist/PlotlyExpressChartUtils.d.ts.map +1 -1
- package/dist/PlotlyExpressChartUtils.js +57 -0
- package/dist/PlotlyExpressChartUtils.js.map +1 -1
- package/dist/PlotlyExpressChartUtils.test.d.ts +2 -0
- package/dist/PlotlyExpressChartUtils.test.d.ts.map +1 -0
- package/dist/PlotlyExpressChartUtils.test.js +160 -0
- package/dist/PlotlyExpressChartUtils.test.js.map +1 -0
- package/dist/PlotlyExpressPlugin.d.ts +2 -2
- package/dist/PlotlyExpressPlugin.d.ts.map +1 -1
- package/dist/PlotlyExpressPlugin.js.map +1 -1
- package/dist/bundle/index.js +12569 -11303
- package/dist/bundle/style.css +2236 -20
- package/dist/useHandleSceneTicks.d.ts.map +1 -1
- package/package.json +15 -13
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { TestUtils } from '@deephaven/utils';
|
|
2
|
+
import { ChartModel } from '@deephaven/chart';
|
|
3
|
+
import { PlotlyExpressChartModel } from './PlotlyExpressChartModel';
|
|
4
|
+
const SMALL_TABLE = TestUtils.createMockProxy({
|
|
5
|
+
columns: [{ name: 'x' }, { name: 'y' }],
|
|
6
|
+
size: 500,
|
|
7
|
+
subscribe: () => TestUtils.createMockProxy(),
|
|
8
|
+
});
|
|
9
|
+
const LARGE_TABLE = TestUtils.createMockProxy({
|
|
10
|
+
columns: [{ name: 'x' }, { name: 'y' }],
|
|
11
|
+
size: 50000,
|
|
12
|
+
subscribe: () => TestUtils.createMockProxy(),
|
|
13
|
+
});
|
|
14
|
+
const REALLY_LARGE_TABLE = TestUtils.createMockProxy({
|
|
15
|
+
columns: [{ name: 'x' }, { name: 'y' }],
|
|
16
|
+
size: 5000000,
|
|
17
|
+
subscribe: () => TestUtils.createMockProxy(),
|
|
18
|
+
});
|
|
19
|
+
function createMockWidget(tables, plotType = 'scatter') {
|
|
20
|
+
const layoutAxes = {};
|
|
21
|
+
tables.forEach((_, i) => {
|
|
22
|
+
if (i === 0) {
|
|
23
|
+
layoutAxes.xaxis = {};
|
|
24
|
+
layoutAxes.yaxis = {};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
layoutAxes[`xaxis${i + 1}`] = {};
|
|
28
|
+
layoutAxes[`yaxis${i + 1}`] = {};
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const widgetData = {
|
|
32
|
+
type: 'test',
|
|
33
|
+
figure: {
|
|
34
|
+
deephaven: {
|
|
35
|
+
mappings: tables.map((_, i) => ({
|
|
36
|
+
table: i,
|
|
37
|
+
data_columns: {
|
|
38
|
+
x: [`/plotly/data/${i}/x`],
|
|
39
|
+
y: [`/plotly/data/${i}/y`],
|
|
40
|
+
},
|
|
41
|
+
})),
|
|
42
|
+
is_user_set_color: false,
|
|
43
|
+
is_user_set_template: false,
|
|
44
|
+
},
|
|
45
|
+
plotly: {
|
|
46
|
+
data: tables.map((_, i) => ({
|
|
47
|
+
type: plotType,
|
|
48
|
+
mode: 'lines',
|
|
49
|
+
xaxis: i === 0 ? 'x' : `x${i + 1}`,
|
|
50
|
+
yaxis: i === 0 ? 'y' : `y${i + 1}`,
|
|
51
|
+
})),
|
|
52
|
+
layout: Object.assign({ title: 'layout' }, layoutAxes),
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
revision: 0,
|
|
56
|
+
new_references: tables.map((_, i) => i),
|
|
57
|
+
removed_references: [],
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
getDataAsString: () => JSON.stringify(widgetData),
|
|
61
|
+
exportedObjects: tables.map(t => ({
|
|
62
|
+
fetch: () => Promise.resolve(t),
|
|
63
|
+
reexport: jest.fn(),
|
|
64
|
+
close: jest.fn(),
|
|
65
|
+
})),
|
|
66
|
+
addEventListener: jest.fn(),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const mockDownsample = jest.fn(t => t);
|
|
70
|
+
const mockDh = {
|
|
71
|
+
calendar: {
|
|
72
|
+
DayOfWeek: {
|
|
73
|
+
values: () => [],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
plot: {
|
|
77
|
+
Downsample: {
|
|
78
|
+
runChartDownsample: mockDownsample,
|
|
79
|
+
},
|
|
80
|
+
ChartData: (() => TestUtils.createMockProxy()),
|
|
81
|
+
},
|
|
82
|
+
Table: {
|
|
83
|
+
EVENT_UPDATED: 'updated',
|
|
84
|
+
},
|
|
85
|
+
Widget: {
|
|
86
|
+
EVENT_MESSAGE: 'message',
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
beforeEach(() => {
|
|
90
|
+
jest.resetAllMocks();
|
|
91
|
+
});
|
|
92
|
+
describe('PlotlyExpressChartModel', () => {
|
|
93
|
+
it('should create a new instance of PlotlyExpressChartModel', () => {
|
|
94
|
+
const mockWidget = createMockWidget([]);
|
|
95
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
96
|
+
expect(chartModel.isSubscribed).toBe(false);
|
|
97
|
+
expect(chartModel.layout).toEqual(JSON.parse(mockWidget.getDataAsString()).figure.plotly.layout);
|
|
98
|
+
});
|
|
99
|
+
it('should subscribe', async () => {
|
|
100
|
+
const mockWidget = createMockWidget([]);
|
|
101
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
102
|
+
await chartModel.subscribe(jest.fn());
|
|
103
|
+
expect(chartModel.isSubscribed).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
it('should not downsample line charts when the table is small', async () => {
|
|
106
|
+
const mockWidget = createMockWidget([SMALL_TABLE]);
|
|
107
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
108
|
+
const mockSubscribe = jest.fn();
|
|
109
|
+
await chartModel.subscribe(mockSubscribe);
|
|
110
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
111
|
+
expect(mockDownsample).toHaveBeenCalledTimes(0);
|
|
112
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(0);
|
|
113
|
+
});
|
|
114
|
+
it('should downsample line charts when the table is big', async () => {
|
|
115
|
+
const mockWidget = createMockWidget([LARGE_TABLE]);
|
|
116
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
117
|
+
const mockSubscribe = jest.fn();
|
|
118
|
+
await chartModel.subscribe(mockSubscribe);
|
|
119
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
120
|
+
expect(mockDownsample).toHaveBeenCalledTimes(1);
|
|
121
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(2);
|
|
122
|
+
expect(mockSubscribe).toHaveBeenNthCalledWith(1, new CustomEvent(ChartModel.EVENT_DOWNSAMPLESTARTED));
|
|
123
|
+
expect(mockSubscribe).toHaveBeenLastCalledWith(new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFINISHED));
|
|
124
|
+
});
|
|
125
|
+
it('should downsample only the required tables', async () => {
|
|
126
|
+
const mockWidget = createMockWidget([
|
|
127
|
+
SMALL_TABLE,
|
|
128
|
+
LARGE_TABLE,
|
|
129
|
+
REALLY_LARGE_TABLE,
|
|
130
|
+
]);
|
|
131
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
132
|
+
const mockSubscribe = jest.fn();
|
|
133
|
+
await chartModel.subscribe(mockSubscribe);
|
|
134
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
135
|
+
expect(mockDownsample).toHaveBeenCalledTimes(2);
|
|
136
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(4);
|
|
137
|
+
expect(mockSubscribe).toHaveBeenNthCalledWith(1, new CustomEvent(ChartModel.EVENT_DOWNSAMPLESTARTED));
|
|
138
|
+
expect(mockSubscribe).toHaveBeenNthCalledWith(2, new CustomEvent(ChartModel.EVENT_DOWNSAMPLESTARTED));
|
|
139
|
+
expect(mockSubscribe).toHaveBeenNthCalledWith(3, new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFINISHED));
|
|
140
|
+
expect(mockSubscribe).toHaveBeenLastCalledWith(new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFINISHED));
|
|
141
|
+
});
|
|
142
|
+
it('should fail to downsample for non-line plots', async () => {
|
|
143
|
+
const mockWidget = createMockWidget([LARGE_TABLE], 'scatterpolar');
|
|
144
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
145
|
+
const mockSubscribe = jest.fn();
|
|
146
|
+
await chartModel.subscribe(mockSubscribe);
|
|
147
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
148
|
+
expect(mockDownsample).toHaveBeenCalledTimes(0);
|
|
149
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(1);
|
|
150
|
+
expect(mockSubscribe).toHaveBeenCalledWith(new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFAILED));
|
|
151
|
+
});
|
|
152
|
+
it('should fetch non-line plots under the max threshold with downsampling disabled', async () => {
|
|
153
|
+
const mockWidget = createMockWidget([LARGE_TABLE], 'scatterpolar');
|
|
154
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
155
|
+
const mockSubscribe = jest.fn();
|
|
156
|
+
chartModel.isDownsamplingDisabled = true;
|
|
157
|
+
await chartModel.subscribe(mockSubscribe);
|
|
158
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
159
|
+
expect(mockDownsample).toHaveBeenCalledTimes(0);
|
|
160
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(0);
|
|
161
|
+
});
|
|
162
|
+
it('should not fetch non-line plots over the max threshold with downsampling disabled', async () => {
|
|
163
|
+
const mockWidget = createMockWidget([REALLY_LARGE_TABLE], 'scatterpolar');
|
|
164
|
+
const chartModel = new PlotlyExpressChartModel(mockDh, mockWidget, jest.fn());
|
|
165
|
+
const mockSubscribe = jest.fn();
|
|
166
|
+
chartModel.isDownsamplingDisabled = true;
|
|
167
|
+
await chartModel.subscribe(mockSubscribe);
|
|
168
|
+
await new Promise(process.nextTick); // Subscribe and addTable are async
|
|
169
|
+
expect(mockDownsample).toHaveBeenCalledTimes(0);
|
|
170
|
+
expect(mockSubscribe).toHaveBeenCalledTimes(1);
|
|
171
|
+
expect(mockSubscribe).toHaveBeenCalledWith(new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFAILED));
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=PlotlyExpressChartModel.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartModel.test.js","sourceRoot":"","sources":["../src/PlotlyExpressChartModel.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type {
|
|
2
|
+
import type { dh } from '@deephaven/jsapi-types';
|
|
3
3
|
import { type WidgetPanelProps } from '@deephaven/plugin';
|
|
4
|
-
export declare function PlotlyExpressChartPanel(props: WidgetPanelProps<Widget>): JSX.Element;
|
|
4
|
+
export declare function PlotlyExpressChartPanel(props: WidgetPanelProps<dh.Widget>): JSX.Element;
|
|
5
5
|
export default PlotlyExpressChartPanel;
|
|
6
6
|
//# sourceMappingURL=PlotlyExpressChartPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressChartPanel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartPanel.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartPanel.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,GACjC,GAAG,CAAC,OAAO,CAyBb;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;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,
|
|
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,CACrC,KAAkC;IAElC,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,11 +1,11 @@
|
|
|
1
|
-
import type { Data, PlotlyDataLayoutConfig } from 'plotly.js';
|
|
2
|
-
import type {
|
|
1
|
+
import type { Data, LayoutAxis, PlotlyDataLayoutConfig } from 'plotly.js';
|
|
2
|
+
import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
3
3
|
export interface PlotlyChartWidget {
|
|
4
|
-
getDataAsBase64()
|
|
4
|
+
getDataAsBase64: () => string;
|
|
5
5
|
exportedObjects: {
|
|
6
|
-
fetch()
|
|
6
|
+
fetch: () => Promise<DhType.Table>;
|
|
7
7
|
}[];
|
|
8
|
-
addEventListener(type: string, fn: (event: CustomEvent<PlotlyChartWidget>) => () => void)
|
|
8
|
+
addEventListener: (type: string, fn: (event: CustomEvent<PlotlyChartWidget>) => () => void) => void;
|
|
9
9
|
}
|
|
10
10
|
export interface PlotlyChartWidgetData {
|
|
11
11
|
type: string;
|
|
@@ -24,7 +24,7 @@ export interface PlotlyChartWidgetData {
|
|
|
24
24
|
new_references: number[];
|
|
25
25
|
removed_references: number[];
|
|
26
26
|
}
|
|
27
|
-
export declare function getWidgetData(widgetInfo: Widget): PlotlyChartWidgetData;
|
|
27
|
+
export declare function getWidgetData(widgetInfo: DhType.Widget): PlotlyChartWidgetData;
|
|
28
28
|
export declare function getDataMappings(widgetData: PlotlyChartWidgetData): Map<number, Map<string, string[]>>;
|
|
29
29
|
/**
|
|
30
30
|
* Removes the default colors from the data
|
|
@@ -37,4 +37,66 @@ export declare function getDataMappings(widgetData: PlotlyChartWidgetData): Map<
|
|
|
37
37
|
* @param data The data to remove the colorway from. This will be mutated
|
|
38
38
|
*/
|
|
39
39
|
export declare function removeColorsFromData(colorway: string[], data: Data[]): void;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the path parts from a path replacement string from the widget data.
|
|
42
|
+
* The parts start with the plotly data array as the root.
|
|
43
|
+
* E.g. /plotly/data/0/x -> ['0', 'x']
|
|
44
|
+
* @param path The path from the widget data
|
|
45
|
+
* @returns The path parts within the plotly data array
|
|
46
|
+
*/
|
|
47
|
+
export declare function getPathParts(path: string): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Checks if a plotly series is a line series without markers
|
|
50
|
+
* @param data The plotly data to check
|
|
51
|
+
* @returns True if the data is a line series without marakers
|
|
52
|
+
*/
|
|
53
|
+
export declare function isLineSeries(data: Data): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if a plotly axis type is automatically determined based on the data
|
|
56
|
+
* @param axis The plotly axis to check
|
|
57
|
+
* @returns True if the axis type is determined based on the data
|
|
58
|
+
*/
|
|
59
|
+
export declare function isAutoAxis(axis: Partial<LayoutAxis>): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Checks if a plotly axis type is linear
|
|
62
|
+
* @param axis The plotly axis to check
|
|
63
|
+
* @returns True if the axis is a linear axis
|
|
64
|
+
*/
|
|
65
|
+
export declare function isLinearAxis(axis: Partial<LayoutAxis>): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Check if 2 axis ranges are the same
|
|
68
|
+
* A null range indicates an auto range
|
|
69
|
+
* @param range1 The first axis range options
|
|
70
|
+
* @param range2 The second axis range options
|
|
71
|
+
* @returns True if the range options describe the same range
|
|
72
|
+
*/
|
|
73
|
+
export declare function areSameAxisRange(range1: unknown[] | null, range2: unknown[] | null): boolean;
|
|
74
|
+
export interface DownsampleInfo {
|
|
75
|
+
type: 'linear';
|
|
76
|
+
/**
|
|
77
|
+
* The original table before downsampling.
|
|
78
|
+
*/
|
|
79
|
+
originalTable: DhType.Table;
|
|
80
|
+
/**
|
|
81
|
+
* The x column to downsample.
|
|
82
|
+
*/
|
|
83
|
+
xCol: string;
|
|
84
|
+
/**
|
|
85
|
+
* The y columns to downsample.
|
|
86
|
+
*/
|
|
87
|
+
yCols: string[];
|
|
88
|
+
/**
|
|
89
|
+
* The width of the x-axis in pixels.
|
|
90
|
+
*/
|
|
91
|
+
width: number;
|
|
92
|
+
/**
|
|
93
|
+
* The range of the x-axis. Null if set to autorange.
|
|
94
|
+
*/
|
|
95
|
+
range: string[] | null;
|
|
96
|
+
/**
|
|
97
|
+
* If the range is a datae or number
|
|
98
|
+
*/
|
|
99
|
+
rangeType: 'date' | 'number';
|
|
100
|
+
}
|
|
101
|
+
export declare function downsample(dh: typeof DhType, info: DownsampleInfo): Promise<DhType.Table>;
|
|
40
102
|
//# 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;
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAAE,EAAE,CAAC;IAC1D,gBAAgB,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,MAAM,IAAI,KACtD,IAAI,CAAC;CACX;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,CAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,GACxB,qBAAqB,CAEvB;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;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAInD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EACxB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,GACvB,OAAO,CAQT;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B;AAED,wBAAgB,UAAU,CACxB,EAAE,EAAE,OAAO,MAAM,EACjB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAYvB"}
|
|
@@ -57,4 +57,61 @@ export function removeColorsFromData(colorway, data) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Gets the path parts from a path replacement string from the widget data.
|
|
62
|
+
* The parts start with the plotly data array as the root.
|
|
63
|
+
* E.g. /plotly/data/0/x -> ['0', 'x']
|
|
64
|
+
* @param path The path from the widget data
|
|
65
|
+
* @returns The path parts within the plotly data array
|
|
66
|
+
*/
|
|
67
|
+
export function getPathParts(path) {
|
|
68
|
+
return path
|
|
69
|
+
.split('/')
|
|
70
|
+
.filter(part => part !== '' && part !== 'plotly' && part !== 'data');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if a plotly series is a line series without markers
|
|
74
|
+
* @param data The plotly data to check
|
|
75
|
+
* @returns True if the data is a line series without marakers
|
|
76
|
+
*/
|
|
77
|
+
export function isLineSeries(data) {
|
|
78
|
+
return ((data.type === 'scatter' || data.type === 'scattergl') &&
|
|
79
|
+
data.mode === 'lines');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Checks if a plotly axis type is automatically determined based on the data
|
|
83
|
+
* @param axis The plotly axis to check
|
|
84
|
+
* @returns True if the axis type is determined based on the data
|
|
85
|
+
*/
|
|
86
|
+
export function isAutoAxis(axis) {
|
|
87
|
+
return axis.type == null || axis.type === '-';
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Checks if a plotly axis type is linear
|
|
91
|
+
* @param axis The plotly axis to check
|
|
92
|
+
* @returns True if the axis is a linear axis
|
|
93
|
+
*/
|
|
94
|
+
export function isLinearAxis(axis) {
|
|
95
|
+
return axis.type === 'linear' || axis.type === 'date';
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if 2 axis ranges are the same
|
|
99
|
+
* A null range indicates an auto range
|
|
100
|
+
* @param range1 The first axis range options
|
|
101
|
+
* @param range2 The second axis range options
|
|
102
|
+
* @returns True if the range options describe the same range
|
|
103
|
+
*/
|
|
104
|
+
export function areSameAxisRange(range1, range2) {
|
|
105
|
+
return ((range1 === null && range2 === null) ||
|
|
106
|
+
(range1 != null &&
|
|
107
|
+
range2 != null &&
|
|
108
|
+
range1[0] === range2[0] &&
|
|
109
|
+
range1[1] === range2[1]));
|
|
110
|
+
}
|
|
111
|
+
export function downsample(dh, info) {
|
|
112
|
+
var _a;
|
|
113
|
+
return dh.plot.Downsample.runChartDownsample(info.originalTable, info.xCol, info.yCols, info.width, (_a = info.range) === null || _a === void 0 ? void 0 : _a.map(val => info.rangeType === 'date'
|
|
114
|
+
? dh.DateWrapper.ofJsDate(new Date(val))
|
|
115
|
+
: dh.LongWrapper.ofString(val)));
|
|
116
|
+
}
|
|
60
117
|
//# sourceMappingURL=PlotlyExpressChartUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlyExpressChartUtils.js","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.js","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.test.d.ts","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { getPathParts, isLineSeries, isAutoAxis, isLinearAxis, areSameAxisRange, removeColorsFromData, getDataMappings, } from './PlotlyExpressChartUtils';
|
|
2
|
+
describe('getDataMappings', () => {
|
|
3
|
+
it('should return the data mappings from the widget data', () => {
|
|
4
|
+
const widgetData = {
|
|
5
|
+
type: 'test',
|
|
6
|
+
figure: {
|
|
7
|
+
deephaven: {
|
|
8
|
+
mappings: [
|
|
9
|
+
{ table: 0, data_columns: { x: ['x0'], y: ['y0'] } },
|
|
10
|
+
{ table: 1, data_columns: { x: ['x1'], y: ['y1'] } },
|
|
11
|
+
],
|
|
12
|
+
is_user_set_color: false,
|
|
13
|
+
is_user_set_template: false,
|
|
14
|
+
},
|
|
15
|
+
plotly: {
|
|
16
|
+
data: [],
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
revision: 0,
|
|
20
|
+
new_references: [],
|
|
21
|
+
removed_references: [],
|
|
22
|
+
};
|
|
23
|
+
const expectedMappings = new Map([
|
|
24
|
+
[
|
|
25
|
+
0,
|
|
26
|
+
new Map([
|
|
27
|
+
['x', ['x0']],
|
|
28
|
+
['y', ['y0']],
|
|
29
|
+
]),
|
|
30
|
+
],
|
|
31
|
+
[
|
|
32
|
+
1,
|
|
33
|
+
new Map([
|
|
34
|
+
['x', ['x1']],
|
|
35
|
+
['y', ['y1']],
|
|
36
|
+
]),
|
|
37
|
+
],
|
|
38
|
+
]);
|
|
39
|
+
expect(getDataMappings(widgetData)).toEqual(expectedMappings);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('removeColorsFromData', () => {
|
|
43
|
+
it('should remove colors in the original colorway', () => {
|
|
44
|
+
const colorway = ['red', 'green', 'blue'];
|
|
45
|
+
const data = [
|
|
46
|
+
{
|
|
47
|
+
marker: {
|
|
48
|
+
color: 'red',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
line: {
|
|
53
|
+
color: 'blue',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
const expectedData = [
|
|
58
|
+
{
|
|
59
|
+
marker: {},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
line: {},
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
removeColorsFromData(colorway, data);
|
|
66
|
+
expect(data).toEqual(expectedData);
|
|
67
|
+
});
|
|
68
|
+
it('should not remove colors that were not in the colorway', () => {
|
|
69
|
+
const colorway = ['red', 'green', 'blue'];
|
|
70
|
+
const data = [
|
|
71
|
+
{
|
|
72
|
+
marker: {
|
|
73
|
+
color: 'purple',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
line: {
|
|
78
|
+
color: 'yellow',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
// Clone because the data should not be modified, but removeColorsFromData mutates the input
|
|
83
|
+
const expectedData = structuredClone(data);
|
|
84
|
+
removeColorsFromData(colorway, data);
|
|
85
|
+
expect(data).toEqual(expectedData);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('getPathParts', () => {
|
|
89
|
+
it('should return the path parts within the plotly data array', () => {
|
|
90
|
+
expect(getPathParts('/plotly/data/0/x')).toEqual(['0', 'x']);
|
|
91
|
+
});
|
|
92
|
+
it('should return an empty array if the path is empty', () => {
|
|
93
|
+
expect(getPathParts('')).toEqual([]);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe('isLineSeries', () => {
|
|
97
|
+
it('should return true if the data is a line series without markers', () => {
|
|
98
|
+
expect(isLineSeries({
|
|
99
|
+
type: 'scatter',
|
|
100
|
+
mode: 'lines',
|
|
101
|
+
})).toBe(true);
|
|
102
|
+
expect(isLineSeries({
|
|
103
|
+
type: 'scattergl',
|
|
104
|
+
mode: 'lines',
|
|
105
|
+
})).toBe(true);
|
|
106
|
+
});
|
|
107
|
+
it('should return false if the data is not a line series without markers', () => {
|
|
108
|
+
expect(isLineSeries({
|
|
109
|
+
type: 'scatter',
|
|
110
|
+
mode: 'lines+markers',
|
|
111
|
+
})).toBe(false);
|
|
112
|
+
expect(isLineSeries({
|
|
113
|
+
type: 'scatterpolar',
|
|
114
|
+
mode: 'lines',
|
|
115
|
+
})).toBe(false);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
describe('isAutoAxis', () => {
|
|
119
|
+
it('should return true if the axis type is automatically determined based on the data', () => {
|
|
120
|
+
expect(isAutoAxis({
|
|
121
|
+
type: '-',
|
|
122
|
+
})).toBe(true);
|
|
123
|
+
expect(isAutoAxis({})).toBe(true);
|
|
124
|
+
});
|
|
125
|
+
it('should return false if the axis type is not automatically determined based on the data', () => {
|
|
126
|
+
expect(isAutoAxis({
|
|
127
|
+
type: 'linear',
|
|
128
|
+
})).toBe(false);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
describe('isLinearAxis', () => {
|
|
132
|
+
it('should return true if the axis is a linear axis', () => {
|
|
133
|
+
expect(isLinearAxis({
|
|
134
|
+
type: 'linear',
|
|
135
|
+
})).toBe(true);
|
|
136
|
+
expect(isLinearAxis({
|
|
137
|
+
type: 'date',
|
|
138
|
+
})).toBe(true);
|
|
139
|
+
});
|
|
140
|
+
it('should return false if the axis is not a linear axis', () => {
|
|
141
|
+
expect(isLinearAxis({
|
|
142
|
+
type: 'log',
|
|
143
|
+
})).toBe(false);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('areSameAxisRange', () => {
|
|
147
|
+
it('should return true if the two axis ranges are null (autorange)', () => {
|
|
148
|
+
expect(areSameAxisRange(null, null)).toBe(true);
|
|
149
|
+
});
|
|
150
|
+
it('should return true if the two axis ranges are the same', () => {
|
|
151
|
+
expect(areSameAxisRange([0, 10], [0, 10])).toBe(true);
|
|
152
|
+
});
|
|
153
|
+
it('should return false if the two axis ranges are different', () => {
|
|
154
|
+
expect(areSameAxisRange([0, 10], [0, 20])).toBe(false);
|
|
155
|
+
expect(areSameAxisRange([0, 20], [0, 10])).toBe(false);
|
|
156
|
+
expect(areSameAxisRange([0, 10], null)).toBe(false);
|
|
157
|
+
expect(areSameAxisRange(null, [0, 10])).toBe(false);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=PlotlyExpressChartUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlotlyExpressChartUtils.test.js","sourceRoot":"","sources":["../src/PlotlyExpressChartUtils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type WidgetPlugin } from '@deephaven/plugin';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const PlotlyExpressPlugin: WidgetPlugin<Widget>;
|
|
2
|
+
import type { dh } from '@deephaven/jsapi-types';
|
|
3
|
+
export declare const PlotlyExpressPlugin: WidgetPlugin<dh.Widget>;
|
|
4
4
|
export default PlotlyExpressPlugin;
|
|
5
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;AAElE,OAAO,KAAK,EAAE,
|
|
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,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAIjD,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAOvD,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;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,
|
|
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,GAA4B;IAC1D,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"}
|