(seriesModel, r, viewWidth, viewHeight, viewLeft, viewTop)
| 44083 | } |
| 44084 | |
| 44085 | var labelLayout = function (seriesModel, r, viewWidth, viewHeight, viewLeft, viewTop) { |
| 44086 | var data = seriesModel.getData(); |
| 44087 | var labelLayoutList = []; |
| 44088 | var cx; |
| 44089 | var cy; |
| 44090 | var hasLabelRotate = false; |
| 44091 | var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN$1; |
| 44092 | |
| 44093 | data.each(function (idx) { |
| 44094 | var layout = data.getItemLayout(idx); |
| 44095 | |
| 44096 | var itemModel = data.getItemModel(idx); |
| 44097 | var labelModel = itemModel.getModel('label'); |
| 44098 | // Use position in normal or emphasis |
| 44099 | var labelPosition = labelModel.get('position') || itemModel.get('emphasis.label.position'); |
| 44100 | var labelDistance = labelModel.get('distanceToLabelLine'); |
| 44101 | var labelAlignTo = labelModel.get('alignTo'); |
| 44102 | var labelMargin = parsePercent$1(labelModel.get('margin'), viewWidth); |
| 44103 | var bleedMargin = labelModel.get('bleedMargin'); |
| 44104 | var font = labelModel.getFont(); |
| 44105 | |
| 44106 | var labelLineModel = itemModel.getModel('labelLine'); |
| 44107 | var labelLineLen = labelLineModel.get('length'); |
| 44108 | labelLineLen = parsePercent$1(labelLineLen, viewWidth); |
| 44109 | var labelLineLen2 = labelLineModel.get('length2'); |
| 44110 | labelLineLen2 = parsePercent$1(labelLineLen2, viewWidth); |
| 44111 | |
| 44112 | if (layout.angle < minShowLabelRadian) { |
| 44113 | return; |
| 44114 | } |
| 44115 | |
| 44116 | var midAngle = (layout.startAngle + layout.endAngle) / 2; |
| 44117 | var dx = Math.cos(midAngle); |
| 44118 | var dy = Math.sin(midAngle); |
| 44119 | |
| 44120 | var textX; |
| 44121 | var textY; |
| 44122 | var linePoints; |
| 44123 | var textAlign; |
| 44124 | |
| 44125 | cx = layout.cx; |
| 44126 | cy = layout.cy; |
| 44127 | |
| 44128 | var text = seriesModel.getFormattedLabel(idx, 'normal') |
| 44129 | || data.getName(idx); |
| 44130 | var textRect = getBoundingRect( |
| 44131 | text, font, textAlign, 'top' |
| 44132 | ); |
| 44133 | |
| 44134 | var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner'; |
| 44135 | if (labelPosition === 'center') { |
| 44136 | textX = layout.cx; |
| 44137 | textY = layout.cy; |
| 44138 | textAlign = 'center'; |
| 44139 | } |
| 44140 | else { |
| 44141 | var x1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dx : layout.r * dx) + cx; |
| 44142 | var y1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dy : layout.r * dy) + cy; |
no test coverage detected