1 |
- {"version":3,"file":"js/chunk-vendors-799ff171.ed080fcd.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/component/axis.js","webpack://app/./node_modules/echarts/lib/component/axis/AngleAxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/AxisBuilder.js","webpack://app/./node_modules/echarts/lib/component/axis/AxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/CartesianAxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/ParallelAxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/RadiusAxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/SingleAxisView.js","webpack://app/./node_modules/echarts/lib/component/axis/axisSplitHelper.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\nrequire(\"../coord/cartesian/AxisModel\");\n\nrequire(\"./axis/CartesianAxisView\");","\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\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar AxisView = require(\"./AxisView\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\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 elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n var start = polar.coordToPoint([rExtent[0], angle]);\n var end = polar.coordToPoint([rExtent[1], angle]);\n return {\n x1: start[0],\n y1: start[1],\n x2: end[0],\n y2: end[1]\n };\n}\n\nfunction getRadiusIdx(polar) {\n var radiusAxis = polar.getRadiusAxis();\n return radiusAxis.inverse ? 0 : 1;\n} // Remove the last tick which will overlap the first tick\n\n\nfunction fixAngleOverlap(list) {\n var firstItem = list[0];\n var lastItem = list[list.length - 1];\n\n if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n list.pop();\n }\n}\n\nvar _default = AxisView.extend({\n type: 'angleAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (angleAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!angleAxisModel.get('show')) {\n return;\n }\n\n var angleAxis = angleAxisModel.axis;\n var polar = angleAxis.polar;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var ticksAngles = angleAxis.getTicksCoords();\n var minorTickAngles = angleAxis.getMinorTicksCoords();\n var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n var labelItem = zrUtil.clone(labelItem);\n labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\n return labelItem;\n });\n fixAngleOverlap(labels);\n fixAngleOverlap(ticksAngles);\n zrUtil.each(elementList, function (name) {\n if (angleAxisModel.get(name + '.show') && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n this['_' + name](angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _axisLine: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var lineStyleModel = angleAxisModel.getModel('axisLine.lineStyle'); // extent id of the axis radius (r0 and r)\n\n var rId = getRadiusIdx(polar);\n var r0Id = rId ? 0 : 1;\n var shape;\n\n if (radiusExtent[r0Id] === 0) {\n shape = new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n } else {\n shape = new graphic.Ring({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId],\n r0: radiusExtent[r0Id]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n }\n\n shape.style.fill = null;\n this.group.add(shape);\n },\n\n /**\n * @private\n */\n _axisTick: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var tickModel = angleAxisModel.getModel('axisTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n return new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n });\n });\n this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n stroke: angleAxisModel.get('axisLine.lineStyle.color')\n })\n }));\n },\n\n /**\n * @private\n */\n _minorTick: function (angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var tickModel = angleAxisModel.getModel('axisTick');\n var minorTickModel = angleAxisModel.getModel('minorTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n }));\n }\n }\n\n this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n stroke: angleAxisModel.get('axisLine.lineStyle.color')\n }))\n }));\n },\n\n /**\n * @private\n */\n _axisLabel: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n var rawCategoryData = angleAxisModel.getCategories(true);\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\n var labelMargin = commonLabelModel.get('margin');\n var triggerEvent = angleAxisModel.get('triggerEvent'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping\n\n zrUtil.each(labels, function (labelItem, idx) {\n var labelModel = commonLabelModel;\n var tickValue = labelItem.tickValue;\n var r = radiusExtent[getRadiusIdx(polar)];\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) {\n labelModel = new Model(rawCategoryData[tickValue].textStyle, commonLabelModel, commonLabelModel.ecModel);\n }\n\n var textEl = new graphic.Text({\n silent: AxisBuilder.isLabelSilent(angleAxisModel)\n });\n this.group.add(textEl);\n graphic.setTextStyle(textEl.style, labelModel, {\n x: p[0],\n y: p[1],\n textFill: labelModel.getTextColor() || angleAxisModel.get('axisLine.lineStyle.color'),\n text: labelItem.formattedLabel,\n textAlign: labelTextAlign,\n textVerticalAlign: labelTextVerticalAlign\n }); // Pack data for mouse event\n\n if (triggerEvent) {\n textEl.eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n textEl.eventData.targetType = 'axisLabel';\n textEl.eventData.value = labelItem.rawLabel;\n }\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var splitLineModel = angleAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyleModel.getLineStyle()),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n }\n },\n\n /**\n * @private\n */\n _minorSplitLine: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n }));\n }\n }\n\n this.group.add(graphic.mergePath(lines, {\n style: lineStyleModel.getLineStyle(),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n },\n\n /**\n * @private\n */\n _splitArea: function (angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!ticksAngles.length) {\n return;\n }\n\n var splitAreaModel = angleAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var RADIAN = Math.PI / 180;\n var prevAngle = -ticksAngles[0].coord * RADIAN;\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n var clockwise = angleAxisModel.get('clockwise');\n\n for (var i = 1; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: r0,\n r: r1,\n startAngle: prevAngle,\n endAngle: -ticksAngles[i].coord * RADIAN,\n clockwise: clockwise\n },\n silent: true\n }));\n prevAngle = -ticksAngles[i].coord * RADIAN;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\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 _util = require(\"zrender/lib/core/util\");\n\nvar retrieve = _util.retrieve;\nvar defaults = _util.defaults;\nvar extend = _util.extend;\nvar each = _util.each;\n\nvar formatUtil = require(\"../../util/format\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar _number = require(\"../../util/number\");\n\nvar isRadianAroundZero = _number.isRadianAroundZero;\nvar remRadian = _number.remRadian;\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar matrixUtil = require(\"zrender/lib/core/matrix\");\n\nvar _vector = require(\"zrender/lib/core/vector\");\n\nvar v2ApplyTransform = _vector.applyTransform;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar shouldShowAllLabels = _axisHelper.shouldShowAllLabels;\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 PI = Math.PI;\n/**\n * A final axis is translated and rotated from a \"standard axis\".\n * So opt.position and opt.rotation is required.\n *\n * A standard axis is and axis from [0, 0] to [0, axisExtent[1]],\n * for example: (0, 0) ------------> (0, 50)\n *\n * nameDirection or tickDirection or labelDirection is 1 means tick\n * or label is below the standard axis, whereas is -1 means above\n * the standard axis. labelOffset means offset between label and axis,\n * which is useful when 'onZero', where axisLabel is in the grid and\n * label in outside grid.\n *\n * Tips: like always,\n * positive rotation represents anticlockwise, and negative rotation\n * represents clockwise.\n * The direction of position coordinate is the same as the direction\n * of screen coordinate.\n *\n * Do not need to consider axis 'inverse', which is auto processed by\n * axis extent.\n *\n * @param {module:zrender/container/Group} group\n * @param {Object} axisModel\n * @param {Object} opt Standard axis parameters.\n * @param {Array.<number>} opt.position [x, y]\n * @param {number} opt.rotation by radian\n * @param {number} [opt.nameDirection=1] 1 or -1 Used when nameLocation is 'middle' or 'center'.\n * @param {number} [opt.tickDirection=1] 1 or -1\n * @param {number} [opt.labelDirection=1] 1 or -1\n * @param {number} [opt.labelOffset=0] Usefull when onZero.\n * @param {string} [opt.axisLabelShow] default get from axisModel.\n * @param {string} [opt.axisName] default get from axisModel.\n * @param {number} [opt.axisNameAvailableWidth]\n * @param {number} [opt.labelRotate] by degree, default get from axisModel.\n * @param {number} [opt.strokeContainThreshold] Default label interval when label\n * @param {number} [opt.nameTruncateMaxWidth]\n */\n\nvar AxisBuilder = function (axisModel, opt) {\n /**\n * @readOnly\n */\n this.opt = opt;\n /**\n * @readOnly\n */\n\n this.axisModel = axisModel; // Default value\n\n defaults(opt, {\n labelOffset: 0,\n nameDirection: 1,\n tickDirection: 1,\n labelDirection: 1,\n silent: true\n });\n /**\n * @readOnly\n */\n\n this.group = new graphic.Group(); // FIXME Not use a seperate text group?\n\n var dumbGroup = new graphic.Group({\n position: opt.position.slice(),\n rotation: opt.rotation\n }); // this.group.add(dumbGroup);\n // this._dumbGroup = dumbGroup;\n\n dumbGroup.updateTransform();\n this._transform = dumbGroup.transform;\n this._dumbGroup = dumbGroup;\n};\n\nAxisBuilder.prototype = {\n constructor: AxisBuilder,\n hasBuilder: function (name) {\n return !!builders[name];\n },\n add: function (name) {\n builders[name].call(this);\n },\n getGroup: function () {\n return this.group;\n }\n};\nvar builders = {\n /**\n * @private\n */\n axisLine: function () {\n var opt = this.opt;\n var axisModel = this.axisModel;\n\n if (!axisModel.get('axisLine.show')) {\n return;\n }\n\n var extent = this.axisModel.axis.getExtent();\n var matrix = this._transform;\n var pt1 = [extent[0], 0];\n var pt2 = [extent[1], 0];\n\n if (matrix) {\n v2ApplyTransform(pt1, pt1, matrix);\n v2ApplyTransform(pt2, pt2, matrix);\n }\n\n var lineStyle = extend({\n lineCap: 'round'\n }, axisModel.getModel('axisLine.lineStyle').getLineStyle());\n this.group.add(new graphic.Line({\n // Id for animation\n anid: 'line',\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: lineStyle,\n strokeContainThreshold: opt.strokeContainThreshold || 5,\n silent: true,\n z2: 1\n }));\n var arrows = axisModel.get('axisLine.symbol');\n var arrowSize = axisModel.get('axisLine.symbolSize');\n var arrowOffset = axisModel.get('axisLine.symbolOffset') || 0;\n\n if (typeof arrowOffset === 'number') {\n arrowOffset = [arrowOffset, arrowOffset];\n }\n\n if (arrows != null) {\n if (typeof arrows === 'string') {\n // Use the same arrow for start and end point\n arrows = [arrows, arrows];\n }\n\n if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n // Use the same size for width and height\n arrowSize = [arrowSize, arrowSize];\n }\n\n var symbolWidth = arrowSize[0];\n var symbolHeight = arrowSize[1];\n each([{\n rotate: opt.rotation + Math.PI / 2,\n offset: arrowOffset[0],\n r: 0\n }, {\n rotate: opt.rotation - Math.PI / 2,\n offset: arrowOffset[1],\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n }], function (point, index) {\n if (arrows[index] !== 'none' && arrows[index] != null) {\n var symbol = createSymbol(arrows[index], -symbolWidth / 2, -symbolHeight / 2, symbolWidth, symbolHeight, lineStyle.stroke, true); // Calculate arrow position with offset\n\n var r = point.r + point.offset;\n var pos = [pt1[0] + r * Math.cos(opt.rotation), pt1[1] - r * Math.sin(opt.rotation)];\n symbol.attr({\n rotation: point.rotate,\n position: pos,\n silent: true,\n z2: 11\n });\n this.group.add(symbol);\n }\n }, this);\n }\n },\n\n /**\n * @private\n */\n axisTickLabel: function () {\n var axisModel = this.axisModel;\n var opt = this.opt;\n var ticksEls = buildAxisMajorTicks(this, axisModel, opt);\n var labelEls = buildAxisLabel(this, axisModel, opt);\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n buildAxisMinorTicks(this, axisModel, opt);\n },\n\n /**\n * @private\n */\n axisName: function () {\n var opt = this.opt;\n var axisModel = this.axisModel;\n var name = retrieve(opt.axisName, axisModel.get('name'));\n\n if (!name) {\n return;\n }\n\n var nameLocation = axisModel.get('nameLocation');\n var nameDirection = opt.nameDirection;\n var textStyleModel = axisModel.getModel('nameTextStyle');\n var gap = axisModel.get('nameGap') || 0;\n var extent = this.axisModel.axis.getExtent();\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\n var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, // 'middle'\n // Reuse labelOffset.\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n var labelLayout;\n var nameRotation = axisModel.get('nameRotate');\n\n if (nameRotation != null) {\n nameRotation = nameRotation * PI / 180; // To radian.\n }\n\n var axisNameAvailableWidth;\n\n if (isNameLocationCenter(nameLocation)) {\n labelLayout = innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis.\n nameDirection);\n } else {\n labelLayout = endTextLayout(opt, nameLocation, nameRotation || 0, extent);\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n if (axisNameAvailableWidth != null) {\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n }\n }\n\n var textFont = textStyleModel.getFont();\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\n var ellipsis = truncateOpt.ellipsis;\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth); // FIXME\n // truncate rich text? (consider performance)\n\n var truncatedText = ellipsis != null && maxWidth != null ? formatUtil.truncateText(name, maxWidth, textFont, ellipsis, {\n minChar: 2,\n placeholder: truncateOpt.placeholder\n }) : name;\n var tooltipOpt = axisModel.get('tooltip', true);\n var mainType = axisModel.mainType;\n var formatterParams = {\n componentType: mainType,\n name: name,\n $vars: ['name']\n };\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n var textEl = new graphic.Text({\n // Id for animation\n anid: 'name',\n __fullText: name,\n __truncatedText: truncatedText,\n position: pos,\n rotation: labelLayout.rotation,\n silent: isLabelSilent(axisModel),\n z2: 1,\n tooltip: tooltipOpt && tooltipOpt.show ? extend({\n content: name,\n formatter: function () {\n return name;\n },\n formatterParams: formatterParams\n }, tooltipOpt) : null\n });\n graphic.setTextStyle(textEl.style, textStyleModel, {\n text: truncatedText,\n textFont: textFont,\n textFill: textStyleModel.getTextColor() || axisModel.get('axisLine.lineStyle.color'),\n textAlign: textStyleModel.get('align') || labelLayout.textAlign,\n textVerticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n });\n\n if (axisModel.get('triggerEvent')) {\n textEl.eventData = makeAxisEventDataBase(axisModel);\n textEl.eventData.targetType = 'axisName';\n textEl.eventData.name = name;\n } // FIXME\n\n\n this._dumbGroup.add(textEl);\n\n textEl.updateTransform();\n this.group.add(textEl);\n textEl.decomposeTransform();\n }\n};\n\nvar makeAxisEventDataBase = AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n var eventData = {\n componentType: axisModel.mainType,\n componentIndex: axisModel.componentIndex\n };\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n return eventData;\n};\n/**\n * @public\n * @static\n * @param {Object} opt\n * @param {number} axisRotation in radian\n * @param {number} textRotation in radian\n * @param {number} direction\n * @return {Object} {\n * rotation, // according to axis\n * textAlign,\n * textVerticalAlign\n * }\n */\n\n\nvar innerTextLayout = AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n var rotationDiff = remRadian(textRotation - axisRotation);\n var textAlign;\n var textVerticalAlign;\n\n if (isRadianAroundZero(rotationDiff)) {\n // Label is parallel with axis line.\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI)) {\n // Label is inverse parallel with axis line.\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff > 0 && rotationDiff < PI) {\n textAlign = direction > 0 ? 'right' : 'left';\n } else {\n textAlign = direction > 0 ? 'left' : 'right';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n};\n\nfunction endTextLayout(opt, textPosition, textRotate, extent) {\n var rotationDiff = remRadian(textRotate - opt.rotation);\n var textAlign;\n var textVerticalAlign;\n var inverse = extent[0] > extent[1];\n var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n if (isRadianAroundZero(rotationDiff - PI / 2)) {\n textVerticalAlign = onLeft ? 'bottom' : 'top';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n textVerticalAlign = onLeft ? 'top' : 'bottom';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n textAlign = onLeft ? 'left' : 'right';\n } else {\n textAlign = onLeft ? 'right' : 'left';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n}\n\nvar isLabelSilent = AxisBuilder.isLabelSilent = function (axisModel) {\n var tooltipOpt = axisModel.get('tooltip');\n return axisModel.get('silent') // Consider mouse cursor, add these restrictions.\n || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n};\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n if (shouldShowAllLabels(axisModel.axis)) {\n return;\n } // If min or max are user set, we need to check\n // If the tick on min(max) are overlap on their neighbour tick\n // If they are overlapped, we need to hide the min(max) tick label\n\n\n var showMinLabel = axisModel.get('axisLabel.showMinLabel');\n var showMaxLabel = axisModel.get('axisLabel.showMaxLabel'); // FIXME\n // Have not consider onBand yet, where tick els is more than label els.\n\n labelEls = labelEls || [];\n tickEls = tickEls || [];\n var firstLabel = labelEls[0];\n var nextLabel = labelEls[1];\n var lastLabel = labelEls[labelEls.length - 1];\n var prevLabel = labelEls[labelEls.length - 2];\n var firstTick = tickEls[0];\n var nextTick = tickEls[1];\n var lastTick = tickEls[tickEls.length - 1];\n var prevTick = tickEls[tickEls.length - 2];\n\n if (showMinLabel === false) {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n if (showMinLabel) {\n ignoreEl(nextLabel);\n ignoreEl(nextTick);\n } else {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n }\n }\n\n if (showMaxLabel === false) {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n if (showMaxLabel) {\n ignoreEl(prevLabel);\n ignoreEl(prevTick);\n } else {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n }\n }\n}\n\nfunction ignoreEl(el) {\n el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next, labelLayout) {\n // current and next has the same rotation.\n var firstRect = current && current.getBoundingRect().clone();\n var nextRect = next && next.getBoundingRect().clone();\n\n if (!firstRect || !nextRect) {\n return;\n } // When checking intersect of two rotated labels, we use mRotationBack\n // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`.\n\n\n var mRotationBack = matrixUtil.identity([]);\n matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, aniid) {\n var tickEls = [];\n var pt1 = [];\n var pt2 = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = ticksCoords[i].coord;\n pt1[0] = tickCoord;\n pt1[1] = 0;\n pt2[0] = tickCoord;\n pt2[1] = tickEndCoord;\n\n if (tickTransform) {\n v2ApplyTransform(pt1, pt1, tickTransform);\n v2ApplyTransform(pt2, pt2, tickTransform);\n } // Tick line, Not use group transform to have better line draw\n\n\n var tickEl = new graphic.Line({\n // Id for animation\n anid: aniid + '_' + ticksCoords[i].tickValue,\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: tickLineStyle,\n z2: 2,\n silent: true\n });\n tickEls.push(tickEl);\n }\n\n return tickEls;\n}\n\nfunction buildAxisMajorTicks(axisBuilder, axisModel, opt) {\n var axis = axisModel.axis;\n var tickModel = axisModel.getModel('axisTick');\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n\n var lineStyleModel = tickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\n var ticksCoords = axis.getTicksCoords();\n var ticksEls = createTicks(ticksCoords, axisBuilder._transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n stroke: axisModel.get('axisLine.lineStyle.color')\n }), 'ticks');\n\n for (var i = 0; i < ticksEls.length; i++) {\n axisBuilder.group.add(ticksEls[i]);\n }\n\n return ticksEls;\n}\n\nfunction buildAxisMinorTicks(axisBuilder, axisModel, opt) {\n var axis = axisModel.axis;\n var minorTickModel = axisModel.getModel('minorTick');\n\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var lineStyleModel = minorTickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * minorTickModel.get('length');\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n stroke: axisModel.get('axisLine.lineStyle.color')\n }));\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n var minorTicksEls = createTicks(minorTicksCoords[i], axisBuilder._transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n for (var k = 0; k < minorTicksEls.length; k++) {\n axisBuilder.group.add(minorTicksEls[k]);\n }\n }\n}\n\nfunction buildAxisLabel(axisBuilder, axisModel, opt) {\n var axis = axisModel.axis;\n var show = retrieve(opt.axisLabelShow, axisModel.get('axisLabel.show'));\n\n if (!show || axis.scale.isBlank()) {\n return;\n }\n\n var labelModel = axisModel.getModel('axisLabel');\n var labelMargin = labelModel.get('margin');\n var labels = axis.getViewLabels(); // Special label rotate.\n\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n var labelLayout = innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n var labelEls = [];\n var silent = isLabelSilent(axisModel);\n var triggerEvent = axisModel.get('triggerEvent');\n each(labels, function (labelItem, index) {\n var tickValue = labelItem.tickValue;\n var formattedLabel = labelItem.formattedLabel;\n var rawLabel = labelItem.rawLabel;\n var itemLabelModel = labelModel;\n\n if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) {\n itemLabelModel = new Model(rawCategoryData[tickValue].textStyle, labelModel, axisModel.ecModel);\n }\n\n var textColor = itemLabelModel.getTextColor() || axisModel.get('axisLine.lineStyle.color');\n var tickCoord = axis.dataToCoord(tickValue);\n var pos = [tickCoord, opt.labelOffset + opt.labelDirection * labelMargin];\n var textEl = new graphic.Text({\n // Id for animation\n anid: 'label_' + tickValue,\n position: pos,\n rotation: labelLayout.rotation,\n silent: silent,\n z2: 10\n });\n graphic.setTextStyle(textEl.style, itemLabelModel, {\n text: formattedLabel,\n textAlign: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n textVerticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n textFill: typeof textColor === 'function' ? textColor( // (1) In category axis with data zoom, tick is not the original\n // index of axis.data. So tick should not be exposed to user\n // in category axis.\n // (2) Compatible with previous version, which always use formatted label as\n // input. But in interval scale the formatted label is like '223,445', which\n // maked user repalce ','. So we modify it to return original val but remain\n // it as 'string' to avoid error in replacing.\n axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n }); // Pack data for mouse event\n\n if (triggerEvent) {\n textEl.eventData = makeAxisEventDataBase(axisModel);\n textEl.eventData.targetType = 'axisLabel';\n textEl.eventData.value = rawLabel;\n } // FIXME\n\n\n axisBuilder._dumbGroup.add(textEl);\n\n textEl.updateTransform();\n labelEls.push(textEl);\n axisBuilder.group.add(textEl);\n textEl.decomposeTransform();\n });\n return labelEls;\n}\n\nvar _default = AxisBuilder;\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 _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar axisPointerModelHelper = require(\"../axisPointer/modelHelper\");\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\n/**\n * Base class of AxisView.\n */\nvar AxisView = echarts.extendComponentView({\n type: 'axis',\n\n /**\n * @private\n */\n _axisPointer: null,\n\n /**\n * @protected\n * @type {string}\n */\n axisPointerClass: null,\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n // FIXME\n // This process should proformed after coordinate systems updated\n // (axis scale updated), and should be performed each time update.\n // So put it here temporarily, although it is not appropriate to\n // put a model-writing procedure in `view`.\n this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n AxisView.superApply(this, 'render', arguments);\n updateAxisPointer(this, axisModel, ecModel, api, payload, true);\n },\n\n /**\n * Action handler.\n * @public\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} payload\n */\n updateAxisPointer: function (axisModel, ecModel, api, payload, force) {\n updateAxisPointer(this, axisModel, ecModel, api, payload, false);\n },\n\n /**\n * @override\n */\n remove: function (ecModel, api) {\n var axisPointer = this._axisPointer;\n axisPointer && axisPointer.remove(api);\n AxisView.superApply(this, 'remove', arguments);\n },\n\n /**\n * @override\n */\n dispose: function (ecModel, api) {\n disposeAxisPointer(this, api);\n AxisView.superApply(this, 'dispose', arguments);\n }\n});\n\nfunction updateAxisPointer(axisView, axisModel, ecModel, api, payload, forceRender) {\n var Clazz = AxisView.getAxisPointerClass(axisView.axisPointerClass);\n\n if (!Clazz) {\n return;\n }\n\n var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n axisPointerModel ? (axisView._axisPointer || (axisView._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : disposeAxisPointer(axisView, api);\n}\n\nfunction disposeAxisPointer(axisView, ecModel, api) {\n var axisPointer = axisView._axisPointer;\n axisPointer && axisPointer.dispose(ecModel, api);\n axisView._axisPointer = null;\n}\n\nvar axisPointerClazz = [];\n\nAxisView.registerAxisPointerClass = function (type, clazz) {\n axisPointerClazz[type] = clazz;\n};\n\nAxisView.getAxisPointerClass = function (type) {\n return type && axisPointerClazz[type];\n};\n\nvar _default = AxisView;\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\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\n\nvar cartesianAxisHelper = require(\"../../coord/cartesian/cartesianAxisHelper\");\n\nvar _axisSplitHelper = require(\"./axisSplitHelper\");\n\nvar rectCoordAxisBuildSplitArea = _axisSplitHelper.rectCoordAxisBuildSplitArea;\nvar rectCoordAxisHandleRemove = _axisSplitHelper.rectCoordAxisHandleRemove;\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 axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\nvar CartesianAxisView = AxisView.extend({\n type: 'cartesianAxis',\n axisPointerClass: 'CartesianAxisPointer',\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get(name + '.show')) {\n this['_' + name](axisModel, gridModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n CartesianAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n },\n remove: function () {\n rectCoordAxisHandleRemove(this);\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitLine: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n\n this._axisGroup.add(new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n }));\n }\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _minorSplitLine: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n this._axisGroup.add(new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n }));\n }\n }\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitArea: function (axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(this, this._axisGroup, axisModel, gridModel);\n }\n});\nCartesianAxisView.extend({\n type: 'xAxis'\n});\nCartesianAxisView.extend({\n type: 'yAxis'\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 echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar BrushController = require(\"../helper/BrushController\");\n\nvar brushHelper = require(\"../helper/brushHelper\");\n\nvar graphic = require(\"../../util/graphic\");\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 elementList = ['axisLine', 'axisTickLabel', 'axisName'];\nvar AxisView = echarts.extendComponentView({\n type: 'parallelAxis',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n AxisView.superApply(this, 'init', arguments);\n /**\n * @type {module:echarts/component/helper/BrushController}\n */\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n },\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n return;\n }\n\n this.axisModel = axisModel;\n this.api = api;\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\n var coordSys = coordSysModel.coordinateSystem;\n var areaSelectStyle = axisModel.getAreaSelectStyle();\n var areaWidth = areaSelectStyle.width;\n var dim = axisModel.axis.dim;\n var axisLayout = coordSys.getAxisLayout(dim);\n var builderOpt = zrUtil.extend({\n strokeContainThreshold: areaWidth\n }, axisLayout);\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n var animationModel = payload && payload.animation === false ? null : axisModel;\n graphic.groupTransition(oldAxisGroup, this._axisGroup, animationModel);\n },\n // /**\n // * @override\n // */\n // updateVisual: function (axisModel, ecModel, api, payload) {\n // this._brushController && this._brushController\n // .updateCovers(getCoverInfoList(axisModel));\n // },\n _refreshBrushController: function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n // After filtering, axis may change, select area needs to be update.\n var extent = axisModel.axis.getExtent();\n var extentLen = extent[1] - extent[0];\n var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n // width/height might be negative, which will be\n // normalized in BoundingRect.\n\n var rect = graphic.BoundingRect.create({\n x: extent[0],\n y: -areaWidth / 2,\n width: extentLen,\n height: areaWidth\n });\n rect.x -= extra;\n rect.width += 2 * extra;\n\n this._brushController.mount({\n enableGlobalPan: true,\n rotation: builderOpt.rotation,\n position: builderOpt.position\n }).setPanels([{\n panelId: 'pl',\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n }]).enableBrush({\n brushType: 'lineX',\n brushStyle: areaSelectStyle,\n removeOnClick: true\n }).updateCovers(getCoverInfoList(axisModel));\n },\n _onBrush: function (coverInfoList, opt) {\n // Do not cache these object, because the mey be changed.\n var axisModel = this.axisModel;\n var axis = axisModel.axis;\n var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n }); // If realtime is true, action is not dispatched on drag end, because\n // the drag end emits the same params with the last drag move event,\n // and may have some delay when using touch pad.\n\n if (!axisModel.option.realtime === opt.isEnd || opt.removeOnClick) {\n // jshint ignore:line\n this.api.dispatchAction({\n type: 'axisAreaSelect',\n parallelAxisId: axisModel.id,\n intervals: intervals\n });\n }\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._brushController.dispose();\n }\n});\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n mainType: 'parallelAxis',\n query: payload\n })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n var axis = axisModel.axis;\n return zrUtil.map(axisModel.activeIntervals, function (interval) {\n return {\n brushType: 'lineX',\n panelId: 'pl',\n range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n };\n });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nvar _default = AxisView;\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\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\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 axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar _default = AxisView.extend({\n type: 'radiusAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\n var radiusAxis = radiusAxisModel.axis;\n var polar = radiusAxis.polar;\n var angleAxis = polar.getAngleAxis();\n var ticksCoords = radiusAxis.getTicksCoords();\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n var axisAngle = angleAxis.getExtent()[0];\n var radiusExtent = radiusAxis.getExtent();\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) {\n this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n var splitLineModel = radiusAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: ticksCoords[i].coord\n }\n }));\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length],\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n }\n },\n\n /**\n * @private\n */\n _minorSplitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n if (!minorTicksCoords.length) {\n return;\n }\n\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n lines.push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: minorTicksCoords[i][k].coord\n }\n }));\n }\n }\n\n this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults({\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n },\n\n /**\n * @private\n */\n _splitArea: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n if (!ticksCoords.length) {\n return;\n }\n\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var prevRadius = ticksCoords[0].coord;\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: prevRadius,\n r: ticksCoords[i].coord,\n startAngle: 0,\n endAngle: Math.PI * 2\n },\n silent: true\n }));\n prevRadius = ticksCoords[i].coord;\n } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n});\n/**\n * @inner\n */\n\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n return {\n position: [polar.cx, polar.cy],\n rotation: axisAngle / 180 * Math.PI,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1,\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n // Over splitLine and splitArea\n z2: 1\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\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar singleAxisHelper = require(\"../../coord/single/singleAxisHelper\");\n\nvar AxisView = require(\"./AxisView\");\n\nvar _axisSplitHelper = require(\"./axisSplitHelper\");\n\nvar rectCoordAxisBuildSplitArea = _axisSplitHelper.rectCoordAxisBuildSplitArea;\nvar rectCoordAxisHandleRemove = _axisSplitHelper.rectCoordAxisHandleRemove;\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 axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\nvar SingleAxisView = AxisView.extend({\n type: 'singleAxis',\n axisPointerClass: 'SingleAxisPointer',\n render: function (axisModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n var layout = singleAxisHelper.layout(axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n group.add(this._axisGroup);\n group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get(name + '.show')) {\n this['_' + name](axisModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n SingleAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n },\n remove: function () {\n rectCoordAxisHandleRemove(this);\n },\n _splitLine: function (axisModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineWidth = lineStyleModel.get('width');\n var lineColors = lineStyleModel.get('color');\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var gridRect = axisModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var splitLines = [];\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n\n for (var i = 0; i < ticksCoords.length; ++i) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: {\n lineWidth: lineWidth\n },\n silent: true\n }));\n }\n\n for (var i = 0; i < splitLines.length; ++i) {\n this.group.add(graphic.mergePath(splitLines[i], {\n style: {\n stroke: lineColors[i % lineColors.length],\n lineDash: lineStyleModel.getLineDash(lineWidth),\n lineWidth: lineWidth\n },\n silent: true\n }));\n }\n },\n _splitArea: function (axisModel) {\n rectCoordAxisBuildSplitArea(this, this._axisGroup, axisModel, axisModel);\n }\n});\nvar _default = SingleAxisView;\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\nvar graphic = require(\"../../util/graphic\");\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 rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n } // For Making appropriate splitArea animation, the color and anid\n // should be corresponding to previous one if possible.\n\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = axisView.__splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x;\n var y;\n var width;\n var height;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n axisView.__splitAreaColors = newSplitAreaColors;\n}\n\nfunction rectCoordAxisHandleRemove(axisView) {\n axisView.__splitAreaColors = null;\n}\n\nexports.rectCoordAxisBuildSplitArea = rectCoordAxisBuildSplitArea;\nexports.rectCoordAxisHandleRemove = rectCoordAxisHandleRemove;"],"names":["zrUtil","graphic","Model","AxisView","AxisBuilder","elementList","getAxisLineShape","polar","rExtent","angle","slice","reverse","start","coordToPoint","end","x1","y1","x2","y2","getRadiusIdx","radiusAxis","getRadiusAxis","inverse","fixAngleOverlap","list","firstItem","lastItem","length","Math","abs","coord","pop","_default","extend","type","axisPointerClass","render","angleAxisModel","ecModel","this","group","removeAll","get","angleAxis","axis","radiusExtent","getExtent","ticksAngles","getTicksCoords","minorTickAngles","getMinorTicksCoords","labels","map","getViewLabels","labelItem","clone","dataToCoord","tickValue","each","name","scale","isBlank","_axisLine","shape","lineStyleModel","getModel","rId","r0Id","Circle","cx","cy","r","style","getLineStyle","z2","silent","Ring","r0","fill","add","_axisTick","tickModel","tickLen","radius","lines","tickAngleItem","Line","mergePath","defaults","stroke","_minorTick","tickAngles","minorTickModel","i","k","push","_axisLabel","rawCategoryData","getCategories","commonLabelModel","labelMargin","triggerEvent","idx","labelModel","p","labelTextAlign","labelTextVerticalAlign","textStyle","textEl","Text","isLabelSilent","setTextStyle","x","y","textFill","getTextColor","text","formattedLabel","textAlign","textVerticalAlign","eventData","makeAxisEventDataBase","targetType","value","rawLabel","_splitLine","splitLineModel","lineColors","lineCount","Array","splitLines","colorIndex","z","_minorSplitLine","minorSplitLineModel","_splitArea","splitAreaModel","areaStyleModel","areaColors","splitAreas","RADIAN","PI","prevAngle","min","r1","max","clockwise","Sector","startAngle","endAngle","getAreaStyle","module","exports","_util","retrieve","formatUtil","_number","isRadianAroundZero","remRadian","_symbol","createSymbol","matrixUtil","_vector","v2ApplyTransform","applyTransform","_axisHelper","shouldShowAllLabels","axisModel","opt","labelOffset","nameDirection","tickDirection","labelDirection","Group","dumbGroup","position","rotation","updateTransform","_transform","transform","_dumbGroup","prototype","constructor","hasBuilder","builders","call","getGroup","axisLine","extent","matrix","pt1","pt2","lineStyle","lineCap","anid","subPixelOptimize","strokeContainThreshold","arrows","arrowSize","arrowOffset","symbolWidth","symbolHeight","rotate","offset","sqrt","point","index","symbol","pos","cos","sin","attr","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","axisName","labelLayout","axisNameAvailableWidth","nameLocation","textStyleModel","gap","gapSignal","isNameLocationCenter","nameRotation","innerTextLayout","endTextLayout","isFinite","textFont","getFont","truncateOpt","ellipsis","maxWidth","nameTruncateMaxWidth","truncatedText","truncateText","minChar","placeholder","tooltipOpt","mainType","formatterParams","componentType","$vars","componentIndex","__fullText","__truncatedText","tooltip","show","content","formatter","decomposeTransform","axisRotation","textRotation","direction","rotationDiff","textPosition","textRotate","onLeft","tickEls","showMinLabel","showMaxLabel","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","nextTick","lastTick","prevTick","ignoreEl","isTwoLabelOverlapped","el","ignore","current","next","firstRect","getBoundingRect","nextRect","mRotationBack","identity","mul","getLocalTransform","intersect","createTicks","ticksCoords","tickTransform","tickEndCoord","tickLineStyle","aniid","tickCoord","tickEl","axisBuilder","minorTicksCoords","minorTickLineStyle","minorTicksEls","axisLabelShow","labelRotation","labelRotate","itemLabelModel","textColor","getShallow","_config","echarts","__DEV__","axisPointerModelHelper","extendComponentView","_axisPointer","api","payload","fixValue","superApply","arguments","updateAxisPointer","force","remove","axisPointer","dispose","disposeAxisPointer","axisView","forceRender","Clazz","getAxisPointerClass","axisPointerModel","getAxisPointerModel","axisPointerClazz","registerAxisPointerClass","clazz","cartesianAxisHelper","_axisSplitHelper","rectCoordAxisBuildSplitArea","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","gridModel","getCoordSysModel","layout","groupTransition","superCall","isArray","gridRect","coordinateSystem","getRect","isHorizontal","p1","p2","toGlobalCoord","height","width","BrushController","brushHelper","init","_brushController","getZr","on","bind","_onBrush","fromAxisAreaSelect","coordSysModel","coordSys","areaSelectStyle","getAreaSelectStyle","areaWidth","dim","axisLayout","getAxisLayout","builderOpt","_refreshBrushController","animationModel","animation","extentLen","extra","rect","BoundingRect","create","mount","enableGlobalPan","setPanels","panelId","clipPath","makeRectPanelClipPath","isTargetByCursor","makeRectIsTargetByCursor","getLinearBrushOtherExtent","makeLinearBrushOtherExtent","enableBrush","brushType","brushStyle","removeOnClick","updateCovers","getCoverInfoList","coverInfoList","intervals","coverInfo","coordToData","range","option","realtime","isEnd","dispatchAction","parallelAxisId","id","findComponents","query","activeIntervals","interval","getComponent","radiusAxisModel","getAngleAxis","axisAngle","layoutAxis","prevRadius","singleAxisHelper","SingleAxisView","lineWidth","lineDash","getLineDash","axisGroup","clamp","areaColorsLen","lastSplitAreaColors","__splitAreaColors","newSplitAreaColors","createHashMap","cIndex","prev","areaStyle","set","Rect"],"sourceRoot":""}
|