Skip to content

Commit 0a4f376

Browse files
authored
fix(Sankey): insufficient pass-in parameters for the callback function of edgeStyle (#3483)
1 parent 1b0a0a9 commit 0a4f376

File tree

2 files changed

+135
-1
lines changed

2 files changed

+135
-1
lines changed
+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import { Sankey } from '../../../../src';
2+
import { createDiv } from '../../../utils/dom';
3+
4+
describe('sankey adaptor', () => {
5+
const mockCallback = jest.fn();
6+
7+
const DATA = [
8+
{
9+
sourceName: '低活',
10+
targetName: '低活2',
11+
sourceDisplayName: '低活',
12+
targetDisplayName: '低活',
13+
value: 1,
14+
},
15+
{
16+
sourceName: '低活',
17+
targetName: '中活2',
18+
sourceDisplayName: '低活',
19+
targetDisplayName: '中活',
20+
value: 1,
21+
},
22+
{
23+
sourceName: '低活',
24+
targetName: '高活2',
25+
sourceDisplayName: '低活',
26+
targetDisplayName: '高活',
27+
value: 1,
28+
},
29+
{
30+
sourceName: '中活',
31+
targetName: '低活2',
32+
sourceDisplayName: '中活',
33+
targetDisplayName: '低活',
34+
value: 1,
35+
},
36+
{
37+
sourceName: '中活',
38+
targetName: '中活2',
39+
sourceDisplayName: '中活',
40+
targetDisplayName: '中活',
41+
value: 1,
42+
},
43+
{
44+
sourceName: '中活',
45+
targetName: '流失2',
46+
sourceDisplayName: '中活',
47+
targetDisplayName: '流失',
48+
value: 1,
49+
},
50+
{
51+
sourceName: '高活',
52+
targetName: '低活2',
53+
sourceDisplayName: '高活',
54+
targetDisplayName: '低活',
55+
value: 1,
56+
},
57+
{
58+
sourceName: '高活',
59+
targetName: '高活2',
60+
sourceDisplayName: '高活',
61+
targetDisplayName: '高活',
62+
value: 1,
63+
},
64+
{
65+
sourceName: '沉默',
66+
targetName: '高活2',
67+
sourceDisplayName: '沉默',
68+
targetDisplayName: '高活',
69+
value: 1,
70+
},
71+
{
72+
sourceName: '沉默',
73+
targetName: '沉默2',
74+
sourceDisplayName: '沉默',
75+
targetDisplayName: '沉默',
76+
value: 1,
77+
},
78+
{
79+
sourceName: '流失',
80+
targetName: '沉默2',
81+
sourceDisplayName: '流失',
82+
targetDisplayName: '沉默',
83+
value: 1,
84+
},
85+
{
86+
sourceName: '流失',
87+
targetName: '流失2',
88+
sourceDisplayName: '流失',
89+
targetDisplayName: '流失',
90+
value: 1,
91+
},
92+
{
93+
sourceName: '低活2',
94+
targetName: '低活3',
95+
sourceDisplayName: '低活',
96+
targetDisplayName: '低活',
97+
value: 1,
98+
},
99+
{
100+
sourceName: '低活2',
101+
targetName: '中活3',
102+
sourceDisplayName: '低活',
103+
targetDisplayName: '中活',
104+
value: 1,
105+
},
106+
{
107+
sourceName: '低活2',
108+
targetName: '高活3',
109+
sourceDisplayName: '低活',
110+
targetDisplayName: '高活',
111+
value: 1,
112+
},
113+
];
114+
115+
const sankey = new Sankey(createDiv(), {
116+
height: 500,
117+
data: DATA,
118+
sourceField: 'sourceName',
119+
targetField: 'targetName',
120+
weightField: 'value',
121+
rawFields: ['sourceDisplayName', 'targetDisplayName'],
122+
edgeStyle: mockCallback,
123+
});
124+
125+
sankey.render();
126+
127+
it('edgeStyle callback', () => {
128+
expect(mockCallback.mock.calls[0][0].source).toBeDefined();
129+
expect(mockCallback.mock.calls[0][0].target).toBeDefined();
130+
expect(mockCallback.mock.calls[0][0].sourceDisplayName).toBeDefined();
131+
expect(mockCallback.mock.calls[0][0].targetDisplayName).toBeDefined();
132+
});
133+
});

src/plots/sankey/adaptor.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function defaultOptions(params: Params<SankeyOptions>): Params<SankeyOptions> {
3838
*/
3939
function geometry(params: Params<SankeyOptions>): Params<SankeyOptions> {
4040
const { chart, options } = params;
41-
const { color, nodeStyle, edgeStyle, label, tooltip, nodeState, edgeState } = options;
41+
const { color, nodeStyle, edgeStyle, label, tooltip, nodeState, edgeState, rawFields = [] } = options;
4242

4343
// 1. 组件,优先设置,因为子 view 会继承配置
4444
chart.legend(false);
@@ -62,6 +62,7 @@ function geometry(params: Params<SankeyOptions>): Params<SankeyOptions> {
6262
xField: X_FIELD,
6363
yField: Y_FIELD,
6464
seriesField: COLOR_FIELD,
65+
rawFields: ['source', 'target', ...rawFields],
6566
edge: {
6667
color,
6768
style: edgeStyle,

0 commit comments

Comments
 (0)