MCPcopy
hub / github.com/apache/echarts / graphEdgeVisual

Function graphEdgeVisual

src/chart/graph/edgeVisual.ts:36–83  ·  view source on GitHub ↗
(ecModel: GlobalModel)

Source from the content-addressed store, hash-verified

34export const graphEdgeVisualStageHandler = createSimpleOverallStageHandler(SERIES_TYPE_GRAPH, graphEdgeVisual);
35
36function graphEdgeVisual(ecModel: GlobalModel) {
37 ecModel.eachSeriesByType(SERIES_TYPE_GRAPH, function (seriesModel: GraphSeriesModel) {
38 const graph = seriesModel.getGraph();
39 const edgeData = seriesModel.getEdgeData();
40 const symbolType = normalize(seriesModel.get('edgeSymbol'));
41 const symbolSize = normalize(seriesModel.get('edgeSymbolSize'));
42
43 // const colorQuery = ['lineStyle', 'color'] as const;
44 // const opacityQuery = ['lineStyle', 'opacity'] as const;
45
46 edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);
47 edgeData.setVisual('toSymbol', symbolType && symbolType[1]);
48 edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);
49 edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);
50
51 edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());
52
53 edgeData.each(function (idx) {
54 const itemModel = edgeData.getItemModel<GraphEdgeItemOption>(idx);
55 const edge = graph.getEdgeByIndex(idx);
56 const symbolType = normalize(itemModel.getShallow('symbol', true));
57 const symbolSize = normalize(itemModel.getShallow('symbolSize', true));
58 // Edge visual must after node visual
59 const style = itemModel.getModel('lineStyle').getLineStyle();
60
61 const existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');
62 extend(existsStyle, style);
63
64 switch (existsStyle.stroke) {
65 case 'source': {
66 const nodeStyle = edge.node1.getVisual('style');
67 existsStyle.stroke = nodeStyle && nodeStyle.fill;
68 break;
69 }
70 case 'target': {
71 const nodeStyle = edge.node2.getVisual('style');
72 existsStyle.stroke = nodeStyle && nodeStyle.fill;
73 break;
74 }
75 }
76
77 symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);
78 symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);
79 symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);
80 symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);
81 });
82 });
83}

Callers

nothing calls this directly

Calls 15

extendFunction · 0.85
eachSeriesByTypeMethod · 0.80
getLineStyleMethod · 0.80
getItemModelMethod · 0.80
getEdgeByIndexMethod · 0.80
getShallowMethod · 0.80
normalizeFunction · 0.70
setVisualMethod · 0.65
getVisualMethod · 0.65
getGraphMethod · 0.45
getEdgeDataMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…