Skip to content

Commit be6ad17

Browse files
authored
Merge pull request apache#12664 from apache/fix-12232
fix(tooltip): richText for series-specific formatters apache#12232
2 parents 2e8961b + 0cf0b50 commit be6ad17

File tree

6 files changed

+491
-12
lines changed

6 files changed

+491
-12
lines changed

src/chart/map/MapSeries.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ var MapSeries = SeriesModel.extend({
131131
*
132132
* @param {number} dataIndex
133133
*/
134-
formatTooltip: function (dataIndex) {
134+
formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {
135135
// FIXME orignalData and data is a bit confusing
136136
var data = this.getData();
137137
var formattedValue = addCommas(this.getRawValue(dataIndex));
@@ -149,7 +149,8 @@ var MapSeries = SeriesModel.extend({
149149
}
150150
}
151151

152-
return seriesNames.join(', ') + '<br />'
152+
var newLine = renderMode === 'html' ? '<br/>' : '\n';
153+
return seriesNames.join(', ') + newLine
153154
+ encodeHTML(name + ' : ' + formattedValue);
154155
},
155156

src/chart/radar/RadarSeries.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,17 @@ var RadarSeries = SeriesModel.extend({
4949
});
5050
},
5151

52-
formatTooltip: function (dataIndex) {
52+
formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {
5353
var data = this.getData();
5454
var coordSys = this.coordinateSystem;
5555
var indicatorAxes = coordSys.getIndicatorAxes();
5656
var name = this.getData().getName(dataIndex);
57-
return encodeHTML(name === '' ? this.name : name) + '<br/>'
57+
var newLine = renderMode === 'html' ? '<br/>' : '\n';
58+
return encodeHTML(name === '' ? this.name : name) + newLine
5859
+ zrUtil.map(indicatorAxes, function (axis, idx) {
5960
var val = data.get(data.mapDimension(axis.dim), dataIndex);
6061
return encodeHTML(axis.name + ' : ' + val);
61-
}).join('<br />');
62+
}).join(newLine);
6263
},
6364

6465
/**

src/component/marker/MarkerModel.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,16 @@ var MarkerModel = echarts.extendComponentModel({
121121
}
122122
},
123123

124-
formatTooltip: function (dataIndex) {
124+
formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {
125125
var data = this.getData();
126126
var value = this.getRawValue(dataIndex);
127127
var formattedValue = zrUtil.isArray(value)
128128
? zrUtil.map(value, addCommas).join(', ') : addCommas(value);
129129
var name = data.getName(dataIndex);
130130
var html = encodeHTML(this.name);
131+
var newLine = renderMode === 'html' ? '<br/>' : '\n';
131132
if (value != null || name) {
132-
html += '<br />';
133+
html += newLine;
133134
}
134135
if (name) {
135136
html += encodeHTML(name);

src/component/tooltip/TooltipContent.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,21 @@ function assembleFont(textStyleModel) {
6060

6161
cssText.push('font:' + textStyleModel.getFont());
6262

63+
var lineHeight = textStyleModel.get('lineHeight');
64+
if (lineHeight == null) {
65+
lineHeight = Math.round(fontSize * 3 / 2);
66+
}
67+
6368
fontSize
64-
&& cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');
69+
&& cssText.push('line-height:' + lineHeight + 'px');
70+
71+
var shadowColor = textStyleModel.get('textShadowColor');
72+
var shadowBlur = textStyleModel.get('textShadowBlur') || 0;
73+
var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;
74+
var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;
75+
shadowBlur
76+
&& cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px '
77+
+ shadowBlur + 'px ' + shadowColor);
6578

6679
each(['decoration', 'align'], function (name) {
6780
var val = textStyleModel.get(name);

src/component/tooltip/TooltipRichContent.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import * as zrUtil from 'zrender/src/core/util';
2121
// import Group from 'zrender/src/container/Group';
2222
import Text from 'zrender/src/graphic/Text';
23+
import * as graphicUtil from '../../util/graphic';
2324

2425

2526
function makeStyleCoord(out, zr, zrX, zrY) {
@@ -131,16 +132,23 @@ TooltipRichContent.prototype = {
131132
startId = text.indexOf('{marker');
132133
}
133134

135+
var textStyleModel = tooltipModel.getModel('textStyle');
136+
var fontSize = textStyleModel.get('fontSize');
137+
var lineHeight = tooltipModel.get('textLineHeight');
138+
if (lineHeight == null) {
139+
lineHeight = Math.round(fontSize * 3 / 2);
140+
}
141+
134142
this.el = new Text({
135-
style: {
143+
style: graphicUtil.setTextStyle({}, textStyleModel, {
136144
rich: markers,
137145
text: content,
138-
textLineHeight: 20,
139146
textBackgroundColor: tooltipModel.get('backgroundColor'),
140147
textBorderRadius: tooltipModel.get('borderRadius'),
141148
textFill: tooltipModel.get('textStyle.color'),
142-
textPadding: tooltipModel.get('padding')
143-
},
149+
textPadding: tooltipModel.get('padding'),
150+
textLineHeight: lineHeight
151+
}),
144152
z: tooltipModel.get('z')
145153
});
146154
this._zr.add(this.el);

0 commit comments

Comments
 (0)