cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
182 lines (181 loc) • 6.78 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import { extend, each, isArray, defaults } from "../../../../zrender/lib/core/util.mjs";
import { groupTransition, subPixelOptimizeLine } from "../../util/graphic.mjs";
import AxisBuilder from "./AxisBuilder.mjs";
import AxisView from "./AxisView.mjs";
import { layout } from "../../coord/cartesian/cartesianAxisHelper.mjs";
import { rectCoordAxisHandleRemove, rectCoordAxisBuildSplitArea } from "./axisSplitHelper.mjs";
import { isIntervalOrLogScale } from "../../scale/helper.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", "minorSplitLine"];
var CartesianAxisView = function(_super) {
__extends(CartesianAxisView2, _super);
function CartesianAxisView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = CartesianAxisView2.type;
_this.axisPointerClass = "CartesianAxisPointer";
return _this;
}
CartesianAxisView2.prototype.render = function(axisModel, ecModel, api, payload) {
this.group.removeAll();
var oldAxisGroup = this._axisGroup;
this._axisGroup = new Group();
this.group.add(this._axisGroup);
if (!axisModel.get("show")) {
return;
}
var gridModel = axisModel.getCoordSysModel();
var layout$1 = layout(gridModel, axisModel);
var axisBuilder = new AxisBuilder(axisModel, extend({
handleAutoShown: function(elementType) {
var cartesians = gridModel.coordinateSystem.getCartesians();
for (var i = 0; i < cartesians.length; i++) {
if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) {
return true;
}
}
return false;
}
}, layout$1));
each(axisBuilderAttrs, axisBuilder.add, axisBuilder);
this._axisGroup.add(axisBuilder.getGroup());
each(selfBuilderAttrs, function(name) {
if (axisModel.get([name, "show"])) {
axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);
}
}, this);
var isInitialSortFromBarRacing = payload && payload.type === "changeAxisOrder" && payload.isInitSort;
if (!isInitialSortFromBarRacing) {
groupTransition(oldAxisGroup, this._axisGroup, axisModel);
}
_super.prototype.render.call(this, axisModel, ecModel, api, payload);
};
CartesianAxisView2.prototype.remove = function() {
rectCoordAxisHandleRemove(this);
};
CartesianAxisView2.type = "cartesianAxis";
return CartesianAxisView2;
}(AxisView);
var axisElementBuilders = {
splitLine: function(axisView, axisGroup, axisModel, gridModel) {
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 = isArray(lineColors) ? lineColors : [lineColors];
var gridRect = gridModel.coordinateSystem.getRect();
var isHorizontal = axis.isHorizontal();
var lineCount = 0;
var ticksCoords = axis.getTicksCoords({
tickModel: splitLineModel
});
var p1 = [];
var p2 = [];
var lineStyle = lineStyleModel.getLineStyle();
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 colorIndex = lineCount++ % lineColors.length;
var tickValue = ticksCoords[i].tickValue;
var line = new Line({
anid: tickValue != null ? "line_" + ticksCoords[i].tickValue : null,
autoBatch: true,
shape: {
x1: p1[0],
y1: p1[1],
x2: p2[0],
y2: p2[1]
},
style: defaults({
stroke: lineColors[colorIndex]
}, lineStyle),
silent: true
});
subPixelOptimizeLine(line.shape, lineStyle.lineWidth);
axisGroup.add(line);
}
},
minorSplitLine: function(axisView, axisGroup, axisModel, gridModel) {
var axis = axisModel.axis;
var minorSplitLineModel = axisModel.getModel("minorSplitLine");
var lineStyleModel = minorSplitLineModel.getModel("lineStyle");
var gridRect = gridModel.coordinateSystem.getRect();
var isHorizontal = axis.isHorizontal();
var minorTicksCoords = axis.getMinorTicksCoords();
if (!minorTicksCoords.length) {
return;
}
var p1 = [];
var p2 = [];
var lineStyle = lineStyleModel.getLineStyle();
for (var i = 0; i < minorTicksCoords.length; i++) {
for (var k = 0; k < minorTicksCoords[i].length; k++) {
var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].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({
anid: "minor_line_" + minorTicksCoords[i][k].tickValue,
autoBatch: true,
shape: {
x1: p1[0],
y1: p1[1],
x2: p2[0],
y2: p2[1]
},
style: lineStyle,
silent: true
});
subPixelOptimizeLine(line.shape, lineStyle.lineWidth);
axisGroup.add(line);
}
}
},
splitArea: function(axisView, axisGroup, axisModel, gridModel) {
rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);
}
};
var CartesianXAxisView = function(_super) {
__extends(CartesianXAxisView2, _super);
function CartesianXAxisView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = CartesianXAxisView2.type;
return _this;
}
CartesianXAxisView2.type = "xAxis";
return CartesianXAxisView2;
}(CartesianAxisView);
var CartesianYAxisView = function(_super) {
__extends(CartesianYAxisView2, _super);
function CartesianYAxisView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = CartesianXAxisView.type;
return _this;
}
CartesianYAxisView2.type = "yAxis";
return CartesianYAxisView2;
}(CartesianAxisView);
export { CartesianXAxisView, CartesianYAxisView, CartesianAxisView as default };