UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

152 lines (151 loc) 5.64 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import { each, defaults } from "../../../../zrender/lib/core/util.mjs"; import { groupTransition, mergePath } from "../../util/graphic.mjs"; import AxisBuilder from "./AxisBuilder.mjs"; import AxisView from "./AxisView.mjs"; import Group from "../../../../zrender/lib/graphic/Group.mjs"; import Circle from "../../../../zrender/lib/graphic/shape/Circle.mjs"; import Sector from "../../../../zrender/lib/graphic/shape/Sector.mjs"; var axisBuilderAttrs = ["axisLine", "axisTickLabel", "axisName"]; var selfBuilderAttrs = ["splitLine", "splitArea", "minorSplitLine"]; var RadiusAxisView = function(_super) { __extends(RadiusAxisView2, _super); function RadiusAxisView2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = RadiusAxisView2.type; _this.axisPointerClass = "PolarAxisPointer"; return _this; } RadiusAxisView2.prototype.render = function(radiusAxisModel, ecModel) { this.group.removeAll(); if (!radiusAxisModel.get("show")) { return; } var oldAxisGroup = this._axisGroup; var newAxisGroup = this._axisGroup = new Group(); this.group.add(newAxisGroup); var radiusAxis = radiusAxisModel.axis; var polar = radiusAxis.polar; var angleAxis = polar.getAngleAxis(); var ticksCoords = radiusAxis.getTicksCoords(); var minorTicksCoords = radiusAxis.getMinorTicksCoords(); var axisAngle = angleAxis.getExtent()[0]; var radiusExtent = radiusAxis.getExtent(); var layout = layoutAxis(polar, radiusAxisModel, axisAngle); var axisBuilder = new AxisBuilder(radiusAxisModel, layout); each(axisBuilderAttrs, axisBuilder.add, axisBuilder); newAxisGroup.add(axisBuilder.getGroup()); groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel); each(selfBuilderAttrs, function(name) { if (radiusAxisModel.get([name, "show"]) && !radiusAxis.scale.isBlank()) { axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords); } }, this); }; RadiusAxisView2.type = "radiusAxis"; return RadiusAxisView2; }(AxisView); var axisElementBuilders = { splitLine: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { var splitLineModel = radiusAxisModel.getModel("splitLine"); var lineStyleModel = splitLineModel.getModel("lineStyle"); var lineColors = lineStyleModel.get("color"); var lineCount = 0; lineColors = lineColors instanceof Array ? lineColors : [lineColors]; var splitLines = []; for (var i = 0; i < ticksCoords.length; i++) { var colorIndex = lineCount++ % lineColors.length; splitLines[colorIndex] = splitLines[colorIndex] || []; splitLines[colorIndex].push(new Circle({ shape: { cx: polar.cx, cy: polar.cy, r: Math.max(ticksCoords[i].coord, 0) } })); } for (var i = 0; i < splitLines.length; i++) { group.add(mergePath(splitLines[i], { style: defaults({ stroke: lineColors[i % lineColors.length], fill: null }, lineStyleModel.getLineStyle()), silent: true })); } }, minorSplitLine: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) { if (!minorTicksCoords.length) { return; } var minorSplitLineModel = radiusAxisModel.getModel("minorSplitLine"); var lineStyleModel = minorSplitLineModel.getModel("lineStyle"); var lines = []; for (var i = 0; i < minorTicksCoords.length; i++) { for (var k = 0; k < minorTicksCoords[i].length; k++) { lines.push(new Circle({ shape: { cx: polar.cx, cy: polar.cy, r: minorTicksCoords[i][k].coord } })); } } group.add(mergePath(lines, { style: defaults({ fill: null }, lineStyleModel.getLineStyle()), silent: true })); }, splitArea: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { if (!ticksCoords.length) { return; } var splitAreaModel = radiusAxisModel.getModel("splitArea"); var areaStyleModel = splitAreaModel.getModel("areaStyle"); var areaColors = areaStyleModel.get("color"); var lineCount = 0; areaColors = areaColors instanceof Array ? areaColors : [areaColors]; var splitAreas = []; var prevRadius = ticksCoords[0].coord; for (var i = 1; i < ticksCoords.length; i++) { var colorIndex = lineCount++ % areaColors.length; splitAreas[colorIndex] = splitAreas[colorIndex] || []; splitAreas[colorIndex].push(new Sector({ shape: { cx: polar.cx, cy: polar.cy, r0: prevRadius, r: ticksCoords[i].coord, startAngle: 0, endAngle: Math.PI * 2 }, silent: true })); prevRadius = ticksCoords[i].coord; } for (var i = 0; i < splitAreas.length; i++) { group.add(mergePath(splitAreas[i], { style: defaults({ fill: areaColors[i % areaColors.length] }, areaStyleModel.getAreaStyle()), silent: true })); } } }; function layoutAxis(polar, radiusAxisModel, axisAngle) { return { position: [polar.cx, polar.cy], rotation: axisAngle / 180 * Math.PI, labelDirection: -1, tickDirection: -1, nameDirection: 1, labelRotate: radiusAxisModel.getModel("axisLabel").get("rotate"), z2: 1 }; } var RadiusAxisView$1 = RadiusAxisView; export { RadiusAxisView$1 as default };