cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
107 lines (106 loc) • 4.01 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import { each, defaults } from "../../../../zrender/lib/core/util.mjs";
import AxisBuilder from "./AxisBuilder.mjs";
import { groupTransition, subPixelOptimizeLine, mergePath } from "../../util/graphic.mjs";
import { layout } from "../../coord/single/singleAxisHelper.mjs";
import AxisView from "./AxisView.mjs";
import { rectCoordAxisHandleRemove, rectCoordAxisBuildSplitArea } from "./axisSplitHelper.mjs";
import Group from "../../../../zrender/lib/graphic/Group.mjs";
import Line from "../../../../zrender/lib/graphic/shape/Line.mjs";
var axisBuilderAttrs = ["axisLine", "axisTickLabel", "axisName"];
var selfBuilderAttrs = ["splitArea", "splitLine"];
var SingleAxisView = function(_super) {
__extends(SingleAxisView2, _super);
function SingleAxisView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = SingleAxisView2.type;
_this.axisPointerClass = "SingleAxisPointer";
return _this;
}
SingleAxisView2.prototype.render = function(axisModel, ecModel, api, payload) {
var group = this.group;
group.removeAll();
var oldAxisGroup = this._axisGroup;
this._axisGroup = new Group();
var layout$1 = layout(axisModel);
var axisBuilder = new AxisBuilder(axisModel, layout$1);
each(axisBuilderAttrs, axisBuilder.add, axisBuilder);
group.add(this._axisGroup);
group.add(axisBuilder.getGroup());
each(selfBuilderAttrs, function(name) {
if (axisModel.get([name, "show"])) {
axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);
}
}, this);
groupTransition(oldAxisGroup, this._axisGroup, axisModel);
_super.prototype.render.call(this, axisModel, ecModel, api, payload);
};
SingleAxisView2.prototype.remove = function() {
rectCoordAxisHandleRemove(this);
};
SingleAxisView2.type = "singleAxis";
return SingleAxisView2;
}(AxisView);
var axisElementBuilders = {
splitLine: function(axisView, group, axisGroup, axisModel) {
var axis = axisModel.axis;
if (axis.scale.isBlank()) {
return;
}
var splitLineModel = axisModel.getModel("splitLine");
var lineStyleModel = splitLineModel.getModel("lineStyle");
var lineColors = lineStyleModel.get("color");
lineColors = lineColors instanceof Array ? lineColors : [lineColors];
var lineWidth = lineStyleModel.get("width");
var gridRect = axisModel.coordinateSystem.getRect();
var isHorizontal = axis.isHorizontal();
var splitLines = [];
var lineCount = 0;
var ticksCoords = axis.getTicksCoords({
tickModel: splitLineModel
});
var p1 = [];
var p2 = [];
for (var i = 0; i < ticksCoords.length; ++i) {
var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);
if (isHorizontal) {
p1[0] = tickCoord;
p1[1] = gridRect.y;
p2[0] = tickCoord;
p2[1] = gridRect.y + gridRect.height;
} else {
p1[0] = gridRect.x;
p1[1] = tickCoord;
p2[0] = gridRect.x + gridRect.width;
p2[1] = tickCoord;
}
var line = new Line({
shape: {
x1: p1[0],
y1: p1[1],
x2: p2[0],
y2: p2[1]
},
silent: true
});
subPixelOptimizeLine(line.shape, lineWidth);
var colorIndex = lineCount++ % lineColors.length;
splitLines[colorIndex] = splitLines[colorIndex] || [];
splitLines[colorIndex].push(line);
}
var lineStyle = lineStyleModel.getLineStyle(["color"]);
for (var i = 0; i < splitLines.length; ++i) {
group.add(mergePath(splitLines[i], {
style: defaults({
stroke: lineColors[i % lineColors.length]
}, lineStyle),
silent: true
}));
}
},
splitArea: function(axisView, group, axisGroup, axisModel) {
rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);
}
};
var SingleAxisView$1 = SingleAxisView;
export { SingleAxisView$1 as default };