{"version":3,"file":"js/chunk-vendors-e24f3508.486800b9.js","mappings":"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","sources":["webpack://i4proportal/./node_modules/echarts/lib/chart/pie.js","webpack://i4proportal/./node_modules/echarts/lib/chart/pie/labelLayout.js","webpack://i4proportal/./node_modules/echarts/lib/chart/pie/pieLayout.js","webpack://i4proportal/./node_modules/echarts/lib/chart/radar.js","webpack://i4proportal/./node_modules/echarts/lib/chart/radar/RadarSeries.js","webpack://i4proportal/./node_modules/echarts/lib/chart/radar/RadarView.js","webpack://i4proportal/./node_modules/echarts/lib/chart/radar/backwardCompat.js","webpack://i4proportal/./node_modules/echarts/lib/chart/radar/radarLayout.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey/SankeySeries.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey/SankeyView.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey/sankeyAction.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey/sankeyLayout.js","webpack://i4proportal/./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","webpack://i4proportal/./node_modules/echarts/lib/chart/scatter.js","webpack://i4proportal/./node_modules/echarts/lib/chart/scatter/ScatterSeries.js","webpack://i4proportal/./node_modules/echarts/lib/chart/scatter/ScatterView.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"./pie/PieSeries\");\n\nrequire(\"./pie/PieView\");\n\nvar createDataSelectAction = require(\"../action/createDataSelectAction\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar pieLayout = require(\"./pie/pieLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\ncreateDataSelectAction('pie', [{\n  type: 'pieToggleSelect',\n  event: 'pieselectchanged',\n  method: 'toggleSelected'\n}, {\n  type: 'pieSelect',\n  event: 'pieselected',\n  method: 'select'\n}, {\n  type: 'pieUnSelect',\n  event: 'pieunselected',\n  method: 'unSelect'\n}]);\necharts.registerVisual(dataColor('pie'));\necharts.registerLayout(zrUtil.curry(pieLayout, 'pie'));\necharts.registerProcessor(dataFilter('pie'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME emphasis label position is not same with normal label position\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  list.sort(function (a, b) {\n    return a.y - b.y;\n  });\n\n  function shiftDown(start, end, delta, dir) {\n    for (var j = start; j < end; j++) {\n      if (list[j].y + delta > viewTop + viewHeight) {\n        break;\n      }\n\n      list[j].y += delta;\n\n      if (j > start && j + 1 < end && list[j + 1].y > list[j].y + list[j].height) {\n        shiftUp(j, delta / 2);\n        return;\n      }\n    }\n\n    shiftUp(end - 1, delta / 2);\n  }\n\n  function shiftUp(end, delta) {\n    for (var j = end; j >= 0; j--) {\n      if (list[j].y - delta < viewTop) {\n        break;\n      }\n\n      list[j].y -= delta;\n\n      if (j > 0 && list[j].y > list[j - 1].y + list[j - 1].height) {\n        break;\n      }\n    }\n  }\n\n  function changeX(list, isDownList, cx, cy, r, dir) {\n    var lastDeltaX = dir > 0 ? isDownList // right-side\n    ? Number.MAX_VALUE // down\n    : 0 // up\n    : isDownList // left-side\n    ? Number.MAX_VALUE // down\n    : 0; // up\n\n    for (var i = 0, l = list.length; i < l; i++) {\n      if (list[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var deltaY = Math.abs(list[i].y - cy);\n      var length = list[i].len;\n      var length2 = list[i].len2;\n      var deltaX = deltaY < r + length ? Math.sqrt((r + length + length2) * (r + length + length2) - deltaY * deltaY) : Math.abs(list[i].x - cx);\n\n      if (isDownList && deltaX >= lastDeltaX) {\n        // right-down, left-down\n        deltaX = lastDeltaX - 10;\n      }\n\n      if (!isDownList && deltaX <= lastDeltaX) {\n        // right-up, left-up\n        deltaX = lastDeltaX + 10;\n      }\n\n      list[i].x = cx + deltaX * dir;\n      lastDeltaX = deltaX;\n    }\n  }\n\n  var lastY = 0;\n  var delta;\n  var len = list.length;\n  var upList = [];\n  var downList = [];\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].x = farthestX;\n    }\n\n    delta = list[i].y - lastY;\n\n    if (delta < 0) {\n      shiftDown(i, len, -delta, dir);\n    }\n\n    lastY = list[i].y + list[i].height;\n  }\n\n  if (viewHeight - lastY < 0) {\n    shiftUp(len - 1, lastY - viewHeight);\n  }\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].y >= cy) {\n      downList.push(list[i]);\n    } else {\n      upList.push(list[i]);\n    }\n  }\n\n  changeX(upList, false, cx, cy, r, dir);\n  changeX(downList, true, cx, cy, r, dir);\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (labelLayoutList[i].x < cx) {\n      leftmostX = Math.min(leftmostX, labelLayoutList[i].x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, labelLayoutList[i].x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.textRect.width;\n      var targetTextWidth;\n\n      if (isAlignToEdge) {\n        if (layout.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.labelMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.labelMargin - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (layout.x < cx) {\n          targetTextWidth = layout.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.textRect.width) {\n        layout.text = textContain.truncateText(layout.text, targetTextWidth, layout.font);\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = textContain.getWidth(layout.text, layout.font);\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (layout.x < cx) {\n          linePoints[2][0] = viewLeft + layout.labelMargin + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.labelMargin - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (layout.x < cx) {\n          linePoints[2][0] = layout.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = layout.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = layout.y;\n    }\n  }\n}\n\nfunction isPositionCenter(layout) {\n  // Not change x for center label\n  return layout.position === 'center';\n}\n\nfunction _default(seriesModel, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  data.each(function (idx) {\n    var layout = data.getItemLayout(idx);\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis\n\n    var labelPosition = labelModel.get('position') || itemModel.get('emphasis.label.position');\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var labelMargin = parsePercent(labelModel.get('margin'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var font = labelModel.getFont();\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (layout.angle < minShowLabelRadian) {\n      return;\n    }\n\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = layout.cx;\n    cy = layout.cy;\n    var text = seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx);\n    var textRect = textContain.getBoundingRect(text, font, textAlign, 'top');\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = layout.cx;\n      textY = layout.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dx : layout.r * dx) + cx;\n      var y1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dy : layout.r * dy) + cy;\n      textX = x1 + dx * 3;\n      textY = y1 + dy * 3;\n\n      if (!isLabelInside) {\n        // For roseType\n        var x2 = x1 + dx * (labelLineLen + r - layout.r);\n        var y2 = y1 + dy * (labelLineLen + r - layout.r);\n        var x3 = x2 + (dx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          // Adjust textX because text align of edge is opposite\n          textX = dx < 0 ? viewLeft + labelMargin : viewLeft + viewWidth - labelMargin;\n        } else {\n          textX = x3 + (dx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? dx > 0 ? 'right' : 'left' : dx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? dx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    layout.label = {\n      x: textX,\n      y: textY,\n      position: labelPosition,\n      height: textRect.height,\n      len: labelLineLen,\n      len2: labelLineLen2,\n      linePoints: linePoints,\n      textAlign: textAlign,\n      verticalAlign: 'middle',\n      rotation: labelRotate,\n      inside: isLabelInside,\n      labelDistance: labelDistance,\n      labelAlignTo: labelAlignTo,\n      labelMargin: labelMargin,\n      bleedMargin: bleedMargin,\n      textRect: textRect,\n      text: text,\n      font: font\n    }; // Not layout the inside label\n\n    if (!isLabelInside) {\n      labelLayoutList.push(layout.label);\n    }\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\nvar layout = require(\"../../util/layout\");\n\nvar labelLayout = require(\"./labelLayout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction _default(seriesType, ecModel, api, payload) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim); // Sum may be 0\n\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r,\n          viewRect: viewRect\n        });\n        return;\n      } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\n\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r,\n        viewRect: viewRect\n      });\n      currentAngle = endAngle;\n    }); // Some sector is constrained by minAngle\n    // Rest sectors needs recalculate angle\n\n    if (restAngle < PI2 && validDataCount) {\n      // Average the angle if rest angle is not enough after all angles is\n      // Constrained by minAngle\n      if (restAngle <= 1e-3) {\n        var angle = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout = data.getItemLayout(idx);\n            layout.angle = angle;\n            layout.startAngle = startAngle + dir * idx * angle;\n            layout.endAngle = startAngle + dir * (idx + 1) * angle;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout = data.getItemLayout(idx);\n            var angle = layout.angle === minAngle ? minAngle : value * unitRadian;\n            layout.startAngle = currentAngle;\n            layout.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n\n    labelLayout(seriesModel, r, viewRect.width, viewRect.height, viewRect.x, viewRect.y);\n  });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"../component/radar\");\n\nrequire(\"./radar/RadarSeries\");\n\nrequire(\"./radar/RadarView\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar radarLayout = require(\"./radar/radarLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\nvar backwardCompat = require(\"./radar/backwardCompat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Must use radar component\necharts.registerVisual(dataColor('radar'));\necharts.registerVisual(visualSymbol('radar', 'circle'));\necharts.registerLayout(radarLayout);\necharts.registerProcessor(dataFilter('radar'));\necharts.registerPreprocessor(backwardCompat);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar RadarSeries = SeriesModel.extend({\n  type: 'series.radar',\n  dependencies: ['radar'],\n  // Overwrite\n  init: function (option) {\n    RadarSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  },\n  getInitialData: function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  },\n  formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var newLine = renderMode === 'html' ? '<br/>' : '\\n';\n    return encodeHTML(name === '' ? this.name : name) + newLine + zrUtil.map(indicatorAxes, function (axis, idx) {\n      var val = data.get(data.mapDimension(axis.dim), dataIndex);\n      return encodeHTML(axis.name + ' : ' + val);\n    }).join(newLine);\n  },\n\n  /**\n   * @implement\n   */\n  getTooltipPosition: function (dataIndex) {\n    if (dataIndex != null) {\n      var data = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex, true);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    // areaStyle: {\n    // },\n    // itemStyle: {}\n    symbol: 'emptyCircle',\n    symbolSize: 4 // symbolRotate: null\n\n  }\n});\nvar _default = RadarSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar symbolUtil = require(\"../../util/symbol\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar _default = echarts.extendChartView({\n  type: 'radar',\n  render: function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n      var color = data.getItemVisual(idx, 'color');\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2, color);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scale: [symbolSize[0] / 2, symbolSize[1] / 2],\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      // Simply rerender all\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.attr('position', oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              position: newPoints[i]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.attr('position', newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var color = data.getItemVisual(idx, 'color');\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty();\n      hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore;\n      polygon.ignore = polygonIgnore;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7\n      }));\n      polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle();\n      var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n      var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n      var labelModel = itemModel.getModel('label');\n      var labelHoverModel = itemModel.getModel('emphasis.label');\n      symbolGroup.eachChild(function (symbolPath) {\n        symbolPath.setStyle(itemStyle);\n        symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          autoColor: color,\n          isRectText: true\n        });\n      });\n\n      itemGroup.highDownOnUpdate = function (fromState, toState) {\n        polygon.attr('ignore', toState === 'emphasis' ? hoverPolygonIgnore : polygonIgnore);\n      };\n\n      graphic.setHoverStyle(itemGroup);\n    });\n    this._data = data;\n  },\n  remove: function () {\n    this.group.removeAll();\n    this._data = null;\n  },\n  dispose: function () {}\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Backward compat for radar chart in 2\nfunction _default(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    }); // Close polygon\n\n    data.each(function (idx) {\n      // TODO\n      // Is it appropriate to connect to the next data when some data is missing?\n      // Or, should trade it like `connectNull` in line chart?\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys); // Copy the first actual point to the end of the array\n\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  // It is error-prone to input [NaN, NaN] into polygon, polygon.\n  // (probably cause problem when refreshing or animating)\n  return [coordSys.cx, coordSys.cy];\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./sankey/SankeySeries\");\n\nrequire(\"./sankey/SankeyView\");\n\nrequire(\"./sankey/sankeyAction\");\n\nvar sankeyLayout = require(\"./sankey/sankeyLayout\");\n\nvar sankeyVisual = require(\"./sankey/sankeyVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createGraphFromNodeEdge = require(\"../helper/createGraphFromNodeEdge\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar Model = require(\"../../model/Model\");\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SankeySeries = SeriesModel.extend({\n  type: 'series.sankey',\n  layoutInfo: null,\n  levelModels: null,\n\n  /**\n   * Init a graph data structure from data in option series\n   *\n   * @param  {Object} option  the object used to config echarts view\n   * @return {module:echarts/data/List} storage initial data\n   */\n  getInitialData: function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    var levelModels = this.levelModels = {};\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {}\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        model.customizeGetParent(function (path) {\n          var parentModel = this.parentModel;\n          var nodeDepth = parentModel.getData().getItemLayout(idx).depth;\n          var levelModel = parentModel.levelModels[nodeDepth];\n          return levelModel || this.parentModel;\n        });\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        model.customizeGetParent(function (path) {\n          var parentModel = this.parentModel;\n          var edge = parentModel.getGraph().getEdgeByIndex(idx);\n          var depth = edge.node1.getLayout().depth;\n          var levelModel = parentModel.levelModels[depth];\n          return levelModel || this.parentModel;\n        });\n        return model;\n      });\n    }\n  },\n  setNodePosition: function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  },\n\n  /**\n   * Return the graphic data structure\n   *\n   * @return {module:echarts/data/Graph} graphic data structure\n   */\n  getGraph: function () {\n    return this.getData().graph;\n  },\n\n  /**\n   * Get edge data of graphic data structure\n   *\n   * @return {module:echarts/data/List} data structure of list\n   */\n  getEdgeData: function () {\n    return this.getGraph().edgeData;\n  },\n\n  /**\n   * @override\n   */\n  formatTooltip: function (dataIndex, multipleSeries, dataType) {\n    // dataType === 'node' or empty do not show tooltip by default\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var html = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n\n      if (params.value) {\n        html += ' : ' + params.value;\n      }\n\n      return encodeHTML(html);\n    } else if (dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var value = node.getLayout().value;\n      var name = this.getDataParams(dataIndex, dataType).data.name;\n\n      if (value) {\n        var html = name + ' : ' + value;\n      }\n\n      return encodeHTML(html);\n    }\n\n    return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);\n  },\n  optionUpdated: function () {\n    var option = this.option;\n\n    if (option.focusNodeAdjacency === true) {\n      option.focusNodeAdjacency = 'allEdges';\n    }\n  },\n  // Override Series.getDataParams()\n  getDataParams: function (dataIndex, dataType) {\n    var params = SankeySeries.superCall(this, 'getDataParams', dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    layout: null,\n    // The position of the whole view\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    // Value can be 'vertical'\n    orient: 'horizontal',\n    // The dx of the node\n    nodeWidth: 20,\n    // The vertical distance between two nodes\n    nodeGap: 8,\n    // Control if the node can move or not\n    draggable: true,\n    // Value can be 'inEdges', 'outEdges', 'allEdges', true (the same as 'allEdges').\n    focusNodeAdjacency: false,\n    // The number of iterations to change the position of the node\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      color: '#000',\n      fontSize: 12\n    },\n    levels: [],\n    // Value can be 'left' or 'right'\n    nodeAlign: 'justify',\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: '#333'\n    },\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  }\n});\nvar _default = SankeySeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = require(\"../../util/graphic\");\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar nodeOpacityPath = ['itemStyle', 'opacity'];\nvar hoverNodeOpacityPath = ['emphasis', 'itemStyle', 'opacity'];\nvar lineOpacityPath = ['lineStyle', 'opacity'];\nvar hoverLineOpacityPath = ['emphasis', 'lineStyle', 'opacity'];\n\nfunction getItemOpacity(item, opacityPath) {\n  return item.getVisual('opacity') || item.getModel().get(opacityPath);\n}\n\nfunction fadeOutItem(item, opacityPath, opacityRatio) {\n  var el = item.getGraphicEl();\n  var opacity = getItemOpacity(item, opacityPath);\n\n  if (opacityRatio != null) {\n    opacity == null && (opacity = 1);\n    opacity *= opacityRatio;\n  }\n\n  el.downplay && el.downplay();\n  el.traverse(function (child) {\n    if (child.type !== 'group') {\n      child.setStyle('opacity', opacity);\n    }\n  });\n}\n\nfunction fadeInItem(item, opacityPath) {\n  var opacity = getItemOpacity(item, opacityPath);\n  var el = item.getGraphicEl();\n  el.traverse(function (child) {\n    if (child.type !== 'group') {\n      child.setStyle('opacity', opacity);\n    }\n  }); // Support emphasis here.\n\n  el.highlight && el.highlight();\n}\n\nvar SankeyShape = graphic.extendShape({\n  shape: {\n    x1: 0,\n    y1: 0,\n    x2: 0,\n    y2: 0,\n    cpx1: 0,\n    cpy1: 0,\n    cpx2: 0,\n    cpy2: 0,\n    extent: 0,\n    orient: ''\n  },\n  buildPath: function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  },\n  highlight: function () {\n    this.trigger('emphasis');\n  },\n  downplay: function () {\n    this.trigger('normal');\n  }\n});\n\nvar _default = echarts.extendChartView({\n  type: 'sankey',\n\n  /**\n   * @private\n   * @type {module:echarts/chart/sankey/SankeySeries}\n   */\n  _model: null,\n\n  /**\n   * @private\n   * @type {boolean}\n   */\n  _focusAdjacencyDisabled: false,\n  render: function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo; // view width\n\n    var width = layoutInfo.width; // view height\n\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.attr('position', [layoutInfo.x, layoutInfo.y]); // generate a bezire Curve for each edge\n\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyShape();\n      curve.dataIndex = edge.dataIndex;\n      curve.seriesIndex = seriesModel.seriesIndex;\n      curve.dataType = 'edge';\n      var lineStyleModel = edge.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.setStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          break;\n      }\n\n      graphic.setHoverStyle(curve, edge.getModel('emphasis.lineStyle').getItemStyle());\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n    }); // Generate a rect for each node\n\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var labelModel = itemModel.getModel('label');\n      var labelHoverModel = itemModel.getModel('emphasis.label');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      var hoverStyle = node.getModel('emphasis.itemStyle').getItemStyle();\n      graphic.setLabelStyle(rect.style, hoverStyle, labelModel, labelHoverModel, {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id,\n        isRectText: true\n      });\n      rect.setStyle('fill', node.getVisual('color'));\n      graphic.setHoverStyle(rect, hoverStyle);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      rect.dataType = 'node';\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n\n      el.highlight = function () {\n        this.trigger('emphasis');\n      };\n\n      el.downplay = function () {\n        this.trigger('normal');\n      };\n\n      el.focusNodeAdjHandler && el.off('mouseover', el.focusNodeAdjHandler);\n      el.unfocusNodeAdjHandler && el.off('mouseout', el.unfocusNodeAdjHandler);\n\n      if (itemModel.get('focusNodeAdjacency')) {\n        el.on('mouseover', el.focusNodeAdjHandler = function () {\n          if (!sankeyView._focusAdjacencyDisabled) {\n            sankeyView._clearTimer();\n\n            api.dispatchAction({\n              type: 'focusNodeAdjacency',\n              seriesId: seriesModel.id,\n              dataIndex: el.dataIndex\n            });\n          }\n        });\n        el.on('mouseout', el.unfocusNodeAdjHandler = function () {\n          if (!sankeyView._focusAdjacencyDisabled) {\n            sankeyView._dispatchUnfocus(api);\n          }\n        });\n      }\n    });\n    edgeData.eachItemGraphicEl(function (el, dataIndex) {\n      var edgeModel = edgeData.getItemModel(dataIndex);\n      el.focusNodeAdjHandler && el.off('mouseover', el.focusNodeAdjHandler);\n      el.unfocusNodeAdjHandler && el.off('mouseout', el.unfocusNodeAdjHandler);\n\n      if (edgeModel.get('focusNodeAdjacency')) {\n        el.on('mouseover', el.focusNodeAdjHandler = function () {\n          if (!sankeyView._focusAdjacencyDisabled) {\n            sankeyView._clearTimer();\n\n            api.dispatchAction({\n              type: 'focusNodeAdjacency',\n              seriesId: seriesModel.id,\n              edgeDataIndex: el.dataIndex\n            });\n          }\n        });\n        el.on('mouseout', el.unfocusNodeAdjHandler = function () {\n          if (!sankeyView._focusAdjacencyDisabled) {\n            sankeyView._dispatchUnfocus(api);\n          }\n        });\n      }\n    });\n\n    if (!this._data && seriesModel.get('animation')) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  },\n  dispose: function () {\n    this._clearTimer();\n  },\n  _dispatchUnfocus: function (api) {\n    var self = this;\n\n    this._clearTimer();\n\n    this._unfocusDelayTimer = setTimeout(function () {\n      self._unfocusDelayTimer = null;\n      api.dispatchAction({\n        type: 'unfocusNodeAdjacency',\n        seriesId: self._model.id\n      });\n    }, 500);\n  },\n  _clearTimer: function () {\n    if (this._unfocusDelayTimer) {\n      clearTimeout(this._unfocusDelayTimer);\n      this._unfocusDelayTimer = null;\n    }\n  },\n  focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var graph = data.graph;\n    var dataIndex = payload.dataIndex;\n    var itemModel = data.getItemModel(dataIndex);\n    var edgeDataIndex = payload.edgeDataIndex;\n\n    if (dataIndex == null && edgeDataIndex == null) {\n      return;\n    }\n\n    var node = graph.getNodeByIndex(dataIndex);\n    var edge = graph.getEdgeByIndex(edgeDataIndex);\n    graph.eachNode(function (node) {\n      fadeOutItem(node, nodeOpacityPath, 0.1);\n    });\n    graph.eachEdge(function (edge) {\n      fadeOutItem(edge, lineOpacityPath, 0.1);\n    });\n\n    if (node) {\n      fadeInItem(node, hoverNodeOpacityPath);\n      var focusNodeAdj = itemModel.get('focusNodeAdjacency');\n\n      if (focusNodeAdj === 'outEdges') {\n        zrUtil.each(node.outEdges, function (edge) {\n          if (edge.dataIndex < 0) {\n            return;\n          }\n\n          fadeInItem(edge, hoverLineOpacityPath);\n          fadeInItem(edge.node2, hoverNodeOpacityPath);\n        });\n      } else if (focusNodeAdj === 'inEdges') {\n        zrUtil.each(node.inEdges, function (edge) {\n          if (edge.dataIndex < 0) {\n            return;\n          }\n\n          fadeInItem(edge, hoverLineOpacityPath);\n          fadeInItem(edge.node1, hoverNodeOpacityPath);\n        });\n      } else if (focusNodeAdj === 'allEdges') {\n        zrUtil.each(node.edges, function (edge) {\n          if (edge.dataIndex < 0) {\n            return;\n          }\n\n          fadeInItem(edge, hoverLineOpacityPath);\n          edge.node1 !== node && fadeInItem(edge.node1, hoverNodeOpacityPath);\n          edge.node2 !== node && fadeInItem(edge.node2, hoverNodeOpacityPath);\n        });\n      }\n    }\n\n    if (edge) {\n      fadeInItem(edge, hoverLineOpacityPath);\n      fadeInItem(edge.node1, hoverNodeOpacityPath);\n      fadeInItem(edge.node2, hoverNodeOpacityPath);\n    }\n  },\n  unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n    var graph = seriesModel.getGraph();\n    graph.eachNode(function (node) {\n      fadeOutItem(node, nodeOpacityPath);\n    });\n    graph.eachEdge(function (edge) {\n      fadeOutItem(edge, lineOpacityPath);\n    });\n  }\n}); // Add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nrequire(\"../helper/focusNodeAdjacencyAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n  type: 'dragNode',\n  event: 'dragnode',\n  // here can only use 'update' now, other value is not support in echarts.\n  update: 'update'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'sankey',\n    query: payload\n  }, function (seriesModel) {\n    seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n  });\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = require(\"../../util/layout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _model = require(\"../../util/model\");\n\nvar groupData = _model.groupData;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, api, payload) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n/**\n * Get the layout position of the whole view\n *\n * @param {module:echarts/model/Series} seriesModel  the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api  provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect}  size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n/**\n * Compute the value of each node by summing the associated edge's value\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n */\n\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n/**\n * Compute the x-position for each node.\n *\n * Here we use Kahn algorithm to detect cycle when we traverse\n * the node to computer the initial x position.\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param  {number} nodeWidth  the dx of the node\n * @param  {number} width  the whole width of the area to draw the view\n */\n\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  // Used to mark whether the edge is deleted. if it is deleted,\n  // the value is 0, otherwise it is 1.\n  var remainEdges = []; // Storage each node's indegree.\n\n  var indegreeArr = []; //Used to storage the node with indegree is equal to 0.\n\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0;\n  var kx = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1; // Traversing nodes using topological sorting to calculate the\n  // horizontal(if orient === 'horizontal') or vertical(if orient === 'vertical')\n  // position of the nodes.\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n/**\n * All the node without outEgdes are assigned maximum x-position and\n *     be aligned in the last column.\n *\n * @param {module:echarts/data/Graph~Node} nodes.  node of sankey view.\n * @param {number} maxDepth.  use to assign to node without outEdges as x-position.\n */\n\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n/**\n * Scale node x-position to the width\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {number} kx   multiple used to scale nodes\n */\n\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n/**\n * Using Gauss-Seidel iterations method to compute the node depth(y-position)\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {module:echarts/data/Graph~Edge} edges  edge of sankey view\n * @param {number} height  the whole height of the area to draw the view\n * @param {number} nodeGap  the vertical distance between two nodes\n *     in the same column.\n * @param {number} iterations  the number of iterations for the algorithm\n */\n\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    // 0.99 is a experience parameter, ensure that each iterations of\n    // changes as small as possible.\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n/**\n * Compute the original y-position for each node\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the nodes x-position.\n * @param {module:echarts/data/Graph~Edge} edges  edge of sankey view\n * @param {number} height  the whole height of the area to draw the view\n * @param {number} nodeGap  the vertical distance between two nodes\n */\n\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n/**\n * Resolve the collision of initialized depth (y-position)\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the nodes x-position.\n * @param {number} nodeGap  the vertical distance between two nodes\n * @param {number} height  the whole height of the area to draw the view\n */\n\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height; // If the bottommost node goes outside the bounds, push it back up\n\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n/**\n * Change the y-position of the nodes, except most the right side nodes\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha  parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue, orient);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb.call(array, array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n/**\n * Change the y-position of the nodes, except most the left side nodes\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha  parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue, orient);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n/**\n * Compute the depth(y-position) of each edge\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n */\n\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, payload) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue = Infinity;\n      var maxValue = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue) {\n          minValue = nodeValue;\n        }\n\n        if (nodeValue > maxValue) {\n          maxValue = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue, maxValue],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get('itemStyle.color');\n        customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor);\n      });\n    }\n  });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./scatter/ScatterSeries\");\n\nrequire(\"./scatter/ScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import * as zrUtil from 'zrender/src/core/util';\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('scatter', 'circle'));\necharts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) {\n//     ecModel.eachSeriesByType('scatter', function (seriesModel) {\n//         var data = seriesModel.getData();\n//         var coordSys = seriesModel.coordinateSystem;\n//         if (coordSys.type !== 'geo') {\n//             return;\n//         }\n//         var startPt = coordSys.pointToData([0, 0]);\n//         var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]);\n//         var dims = zrUtil.map(coordSys.dimensions, function (dim) {\n//             return data.mapDimension(dim);\n//         });\n//         var range = {};\n//         range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])];\n//         range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])];\n//         data.selectRange(range);\n//     });\n// });","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.scatter',\n  dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  },\n  brushSelector: 'point',\n  getProgressive: function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      // PENDING\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  },\n  getProgressiveThreshold: function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      // PENDING\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  },\n  defaultOption: {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n    // symbol: null,        // 图形类型\n    symbolSize: 10,\n    // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2\n    // symbolRotate: null,  // 图形旋转控制\n    large: false,\n    // Available when large is true\n    largeThreshold: 2000,\n    // cursor: null,\n    // label: {\n    // show: false\n    // distance: 5,\n    // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n    // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为\n    //           'inside'|'left'|'right'|'top'|'bottom'\n    // 默认使用全局文本样式,详见TEXTSTYLE\n    // },\n    itemStyle: {\n      opacity: 0.8 // color: 各异\n\n    },\n    // If clip the overflow graphics\n    // Works on cartesian / polar series\n    clip: true // progressive: null\n\n  }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar LargeSymbolDraw = require(\"../helper/LargeSymbolDraw\");\n\nvar pointsLayout = require(\"../../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.extendChartView({\n  type: 'scatter',\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      // TODO\n      // If this parameter should be a shape or a bounding volume\n      // shape will be more general.\n      // But bounding volume like bounding rect will be much faster in the contain calculation\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  },\n  incrementalRender: function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  },\n  updateTransform: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared\n    // PENDING\n\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout().reset(seriesModel);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  },\n  _getClipShape: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  },\n  _updateSymbolDraw: function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  },\n  remove: function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  },\n  dispose: function () {}\n});"],"names":["echarts","zrUtil","createDataSelectAction","dataColor","pieLayout","dataFilter","type","event","method","registerVisual","registerLayout","curry","registerProcessor","textContain","_number","parsePercent","RADIAN","Math","PI","adjustSingleSide","list","cx","cy","r","dir","viewWidth","viewHeight","viewLeft","viewTop","farthestX","shiftDown","start","end","delta","j","y","height","shiftUp","changeX","isDownList","lastDeltaX","Number","MAX_VALUE","i","l","length","labelAlignTo","deltaY","abs","len","length2","len2","deltaX","sqrt","x","sort","a","b","lastY","upList","downList","position","dx","linePoints","push","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","min","max","layout","targetTextWidth","isAlignToEdge","realTextWidth","textRect","width","labelDistance","labelMargin","bleedMargin","text","truncateText","font","getWidth","dist","_default","seriesModel","data","getData","hasLabelRotate","minShowLabelRadian","get","each","idx","getItemLayout","itemModel","getItemModel","labelModel","getModel","labelPosition","getFont","labelLineModel","labelLineLen","labelLineLen2","angle","textX","textY","textAlign","midAngle","startAngle","endAngle","cos","dy","sin","labelRotate","getFormattedLabel","getName","getBoundingRect","isLabelInside","x1","r0","y1","x2","y2","x3","y3","rotate","label","verticalAlign","rotation","inside","module","exports","linearMap","labelLayout","PI2","getViewRect","api","getLayoutRect","getBoxLayoutParams","getHeight","seriesType","ecModel","payload","eachSeriesByType","valueDim","mapDimension","viewRect","center","radius","isArray","size","minAngle","validDataCount","value","isNaN","sum","getSum","unitRadian","clockwise","roseType","stillShowZeroSum","extent","getDataExtent","restAngle","valueSumLargerThanMinAngle","currentAngle","setItemLayout","NaN","visualSymbol","radarLayout","backwardCompat","registerPreprocessor","SeriesModel","createListSimply","_format","encodeHTML","LegendVisualProvider","RadarSeries","extend","dependencies","init","option","superApply","this","arguments","legendVisualProvider","bind","getRawData","getInitialData","generateCoord","generateCoordCount","Infinity","formatTooltip","dataIndex","multipleSeries","dataType","renderMode","coordSys","coordinateSystem","indicatorAxes","getIndicatorAxes","name","newLine","map","axis","val","dim","join","getTooltipPosition","values","getValues","dimensions","coordToPoint","dataToCoord","defaultOption","zlevel","z","legendHoverLink","radarIndex","lineStyle","symbol","symbolSize","graphic","symbolUtil","normalizeSymbolSize","extendChartView","render","polar","group","oldData","_data","createSymbol","symbolType","getItemVisual","color","symbolPath","symbolRotate","attr","style","strokeNoScale","z2","scale","updateSymbols","oldPoints","newPoints","symbolGroup","isInit","removeAll","__dimIdx","add","getInitialPoints","points","pt","diff","polygon","Polygon","polyline","Polyline","target","shape","initProps","itemGroup","Group","setItemGraphicEl","update","newIdx","oldIdx","getItemGraphicEl","childAt","updateProps","remove","execute","eachItemGraphicEl","useStyle","defaults","getLineStyle","fill","stroke","hoverStyle","areaStyleModel","hoverAreaStyleModel","polygonIgnore","isEmpty","parentModel","hoverPolygonIgnore","ignore","getAreaStyle","opacity","itemStyle","getItemStyle","itemHoverStyle","labelHoverModel","eachChild","setStyle","clone","defaultText","setLabelStyle","labelFetcher","hostModel","labelDataIndex","labelDimIndex","autoColor","isRectText","highDownOnUpdate","fromState","toState","setHoverStyle","dispose","polarOptArr","polarNotRadar","polarOpt","indicator","radar","series","seriesOpt","polarIndex","axes","axisIndex","point","dataToPoint","isValidPoint","getValueMissingPoint","firstPoint","find","slice","sankeyLayout","sankeyVisual","createGraphFromNodeEdge","Model","_config","SankeySeries","__DEV__","layoutInfo","levelModels","links","edges","nodes","levels","depth","graph","beforeLink","nodeData","edgeData","wrapMethod","model","customizeGetParent","path","nodeDepth","levelModel","edge","getGraph","getEdgeByIndex","node1","getLayout","setNodePosition","localPosition","dataItem","localX","localY","getEdgeData","params","getDataParams","rawDataOpt","html","source","node","getNodeByIndex","superCall","optionUpdated","focusNodeAdjacency","nodeValue","left","top","right","bottom","orient","nodeWidth","nodeGap","draggable","layoutIterations","show","fontSize","nodeAlign","borderWidth","borderColor","curveness","emphasis","animationEasing","animationDuration","nodeOpacityPath","hoverNodeOpacityPath","lineOpacityPath","hoverLineOpacityPath","getItemOpacity","item","opacityPath","getVisual","fadeOutItem","opacityRatio","el","getGraphicEl","downplay","traverse","child","fadeInItem","highlight","SankeyShape","extendShape","cpx1","cpy1","cpx2","cpy2","buildPath","ctx","moveTo","bezierCurveTo","lineTo","closePath","trigger","_model","_focusAdjacencyDisabled","sankeyView","eachEdge","curve","seriesIndex","lineStyleModel","curvature","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2","node2Model","dragX2","dragY2","edgeLayout","sy","ty","setShape","eachNode","dragX","dragY","rect","Rect","id","drift","dirty","dispatchAction","seriesId","getRawIndex","ondragend","cursor","focusNodeAdjHandler","off","unfocusNodeAdjHandler","on","_clearTimer","_dispatchUnfocus","edgeModel","edgeDataIndex","setClipPath","createGridClipShape","removeClipPath","self","_unfocusDelayTimer","setTimeout","clearTimeout","focusNodeAdj","outEdges","inEdges","unfocusNodeAdjacency","cb","rectEl","registerAction","eachComponent","mainType","subType","query","groupData","computeNodeValues","filteredNodes","filter","iterations","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","value1","getEdgeValue","value2","nodeRawValue","getValue","setLayout","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","kx","maxNodeDepth","hostGraph","getRawDataItem","isItemDepth","edgeIdx","indexEdge","indexOf","targetNode","nodeIndex","Error","maxDepth","adjustNodeWithNodeAlign","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","nodeHeight","skNodeHeight","moveSinksRight","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","alpha","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","keys","key","buckets","minKy","n","ky","nodeDy","edgeDy","nodeX","y0","nodeDyAttr","reverse","weightedTarget","centerTarget","nodeY","weightedSource","centerSource","array","call","VisualMapping","minValue","maxValue","mapping","mappingMethod","dataExtent","visual","mapValueToColor","mapValueToVisual","customColor","setVisual","layoutPoints","createListFromArray","getSource","useEncodeDefaulter","brushSelector","getProgressive","progressive","large","getProgressiveThreshold","progressiveThreshold","hoverAnimation","largeThreshold","clip","SymbolDraw","LargeSymbolDraw","pointsLayout","symbolDraw","_updateSymbolDraw","updateData","clipShape","_getClipShape","_finished","incrementalPrepareRender","incrementalPrepareUpdate","incrementalRender","taskParams","_symbolDraw","incrementalUpdate","count","updateTransform","isPersistent","res","reset","progress","updateLayout","clipArea","getArea","pipelineContext","isLargeDraw","_isLargeDraw"],"sourceRoot":""}