cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
101 lines (100 loc) • 3.96 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import BaseAxisPointer from "./BaseAxisPointer.mjs";
import { buildElStyle, buildCartesianSingleLabelElOption, getTransformedPosition, makeLineShape, makeRectShape } from "./viewHelper.mjs";
import { layout } from "../../coord/cartesian/cartesianAxisHelper.mjs";
var CartesianAxisPointer = function(_super) {
__extends(CartesianAxisPointer2, _super);
function CartesianAxisPointer2() {
return _super !== null && _super.apply(this, arguments) || this;
}
CartesianAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) {
var axis = axisModel.axis;
var grid = axis.grid;
var axisPointerType = axisPointerModel.get("type");
var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();
var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));
if (axisPointerType && axisPointerType !== "none") {
var elStyle = buildElStyle(axisPointerModel);
var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);
pointerOption.style = elStyle;
elOption.graphicKey = pointerOption.type;
elOption.pointer = pointerOption;
}
var layoutInfo = layout(grid.model, axisModel);
buildCartesianSingleLabelElOption(
value,
elOption,
layoutInfo,
axisModel,
axisPointerModel,
api
);
};
CartesianAxisPointer2.prototype.getHandleTransform = function(value, axisModel, axisPointerModel) {
var layoutInfo = layout(axisModel.axis.grid.model, axisModel, {
labelInside: false
});
layoutInfo.labelMargin = axisPointerModel.get(["handle", "margin"]);
var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);
return {
x: pos[0],
y: pos[1],
rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)
};
};
CartesianAxisPointer2.prototype.updateHandleTransform = function(transform, delta, axisModel, axisPointerModel) {
var axis = axisModel.axis;
var grid = axis.grid;
var axisExtent = axis.getGlobalExtent(true);
var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();
var dimIndex = axis.dim === "x" ? 0 : 1;
var currPosition = [transform.x, transform.y];
currPosition[dimIndex] += delta[dimIndex];
currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);
currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);
var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;
var cursorPoint = [cursorOtherValue, cursorOtherValue];
cursorPoint[dimIndex] = currPosition[dimIndex];
var tooltipOptions = [{
verticalAlign: "middle"
}, {
align: "center"
}];
return {
x: currPosition[0],
y: currPosition[1],
rotation: transform.rotation,
cursorPoint,
tooltipOption: tooltipOptions[dimIndex]
};
};
return CartesianAxisPointer2;
}(BaseAxisPointer);
function getCartesian(grid, axis) {
var opt = {};
opt[axis.dim + "AxisIndex"] = axis.index;
return grid.getCartesian(opt);
}
var pointerShapeBuilder = {
line: function(axis, pixelValue, otherExtent) {
var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));
return {
type: "Line",
subPixelOptimize: true,
shape: targetShape
};
},
shadow: function(axis, pixelValue, otherExtent) {
var bandWidth = Math.max(1, axis.getBandWidth());
var span = otherExtent[1] - otherExtent[0];
return {
type: "Rect",
shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))
};
}
};
function getAxisDimIndex(axis) {
return axis.dim === "x" ? 0 : 1;
}
var CartesianAxisPointer$1 = CartesianAxisPointer;
export { CartesianAxisPointer$1 as default };