UNPKG

cione-comp-lib

Version:

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

99 lines (98 loc) 3.87 kB
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 };