You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by wa...@apache.org on 2023/06/08 12:03:24 UTC

[echarts] 01/01: fix(sankey): prevent `edgeLabel` formatter from inheriting `label.formatter`.

This is an automated email from the ASF dual-hosted git repository.

wangzx pushed a commit to branch fix/sankey-label-formatter
in repository https://gitbox.apache.org/repos/asf/echarts.git

commit 9ee9b91ca6a0625e0d07a3c9e8f766950e2ed94f
Author: plainheart <yh...@all-my-life.cn>
AuthorDate: Thu Jun 8 19:29:08 2023 +0800

    fix(sankey): prevent `edgeLabel` formatter from inheriting `label.formatter`.
---
 src/chart/sankey/SankeyView.ts | 20 ++++++++++++++++----
 test/sankey-labelValue.html    |  7 ++++++-
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/chart/sankey/SankeyView.ts b/src/chart/sankey/SankeyView.ts
index 573e12fe3..260790ced 100644
--- a/src/chart/sankey/SankeyView.ts
+++ b/src/chart/sankey/SankeyView.ts
@@ -29,7 +29,7 @@ import SeriesData from '../../data/SeriesData';
 import { RectLike } from 'zrender/src/core/BoundingRect';
 import { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';
 import { getECData } from '../../util/innerStore';
-import { isString } from 'zrender/src/core/util';
+import { isString, retrieve3 } from 'zrender/src/core/util';
 
 class SankeyPathShape {
     x1 = 0;
@@ -220,18 +220,30 @@ class SankeyView extends ChartView {
                     }
             }
 
+            const defaultEdgeLabelText = `${edgeModel.get('value')}`;
+            const edgeLabelStateModels = getLabelStatesModels(edgeModel, 'edgeLabel');
+
             setLabelStyle(
-                curve, getLabelStatesModels(edgeModel, 'edgeLabel'),
+                curve, edgeLabelStateModels,
                 {
                     labelFetcher: {
                         getFormattedLabel(dataIndex, stateName, dataType, labelDimIndex, formatter, extendParams) {
                             return seriesModel.getFormattedLabel(
-                                dataIndex, stateName, 'edge', labelDimIndex, formatter, extendParams
+                                dataIndex, stateName, 'edge',
+                                labelDimIndex,
+                                // ensure edgeLabel formatter is provided
+                                // to prevent the inheritance from `label.formatter` of the series
+                                retrieve3(
+                                    formatter,
+                                    edgeLabelStateModels.normal && edgeLabelStateModels.normal.get('formatter'),
+                                    defaultEdgeLabelText
+                                ),
+                                extendParams
                             );
                         }
                     },
                     labelDataIndex: edge.dataIndex,
-                    defaultText: `${edgeModel.get('value')}`
+                    defaultText: defaultEdgeLabelText
                 }
             );
             curve.setTextConfig({ position: 'inside' });
diff --git a/test/sankey-labelValue.html b/test/sankey-labelValue.html
index 2b2b67332..272c1198e 100644
--- a/test/sankey-labelValue.html
+++ b/test/sankey-labelValue.html
@@ -80,7 +80,12 @@ under the License.
                             formatter: (params) => {
                                 return params.name + ': ' + params.value;
                             },
-                            // formatter: '{c}'
+                            // formatter: 'value: {c}'
+                        },
+                        emphasis: {
+                            edgeLabel: {
+                                // formatter: 'emphasis----{c}'
+                            }
                         }
                     }],
                     tooltip: {trigger: 'item', triggerOn: 'mousemove'}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org