cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
99 lines (98 loc) • 3.87 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/single/singleAxisHelper.mjs";
var XY = ["x", "y"];
var WH = ["width", "height"];
var SingleAxisPointer = function(_super) {
__extends(SingleAxisPointer2, _super);
function SingleAxisPointer2() {
return _super !== null && _super.apply(this, arguments) || this;
}
SingleAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) {
var axis = axisModel.axis;
var coordSys = axis.coordinateSystem;
var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));
var pixelValue = coordSys.dataToPoint(value)[0];
var axisPointerType = axisPointerModel.get("type");
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(axisModel);
buildCartesianSingleLabelElOption(
value,
elOption,
layoutInfo,
axisModel,
axisPointerModel,
api
);
};
SingleAxisPointer2.prototype.getHandleTransform = function(value, axisModel, axisPointerModel) {
var layoutInfo = layout(axisModel, {
labelInside: false
});
layoutInfo.labelMargin = axisPointerModel.get(["handle", "margin"]);
var position = getTransformedPosition(axisModel.axis, value, layoutInfo);
return {
x: position[0],
y: position[1],
rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)
};
};
SingleAxisPointer2.prototype.updateHandleTransform = function(transform, delta, axisModel, axisPointerModel) {
var axis = axisModel.axis;
var coordSys = axis.coordinateSystem;
var dimIndex = getPointDimIndex(axis);
var axisExtent = getGlobalExtent(coordSys, dimIndex);
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 otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);
var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;
var cursorPoint = [cursorOtherValue, cursorOtherValue];
cursorPoint[dimIndex] = currPosition[dimIndex];
return {
x: currPosition[0],
y: currPosition[1],
rotation: transform.rotation,
cursorPoint,
tooltipOption: {
verticalAlign: "middle"
}
};
};
return SingleAxisPointer2;
}(BaseAxisPointer);
var pointerShapeBuilder = {
line: function(axis, pixelValue, otherExtent) {
var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));
return {
type: "Line",
subPixelOptimize: true,
shape: targetShape
};
},
shadow: function(axis, pixelValue, otherExtent) {
var bandWidth = axis.getBandWidth();
var span = otherExtent[1] - otherExtent[0];
return {
type: "Rect",
shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))
};
}
};
function getPointDimIndex(axis) {
return axis.isHorizontal() ? 0 : 1;
}
function getGlobalExtent(coordSys, dimIndex) {
var rect = coordSys.getRect();
return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];
}
var SingleAxisPointer$1 = SingleAxisPointer;
export { SingleAxisPointer$1 as default };