cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
51 lines (50 loc) • 1.84 kB
JavaScript
import { isArray, map } from "../../../../zrender/lib/core/util.mjs";
import { queryDataIndex } from "../../util/model.mjs";
function findPointFromSeries(finder, ecModel) {
var point = [];
var seriesIndex = finder.seriesIndex;
var seriesModel;
if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {
return {
point: []
};
}
var data = seriesModel.getData();
var dataIndex = queryDataIndex(data, finder);
if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {
return {
point: []
};
}
var el = data.getItemGraphicEl(dataIndex);
var coordSys = seriesModel.coordinateSystem;
if (seriesModel.getTooltipPosition) {
point = seriesModel.getTooltipPosition(dataIndex) || [];
} else if (coordSys && coordSys.dataToPoint) {
if (finder.isStacked) {
var baseAxis = coordSys.getBaseAxis();
var valueAxis = coordSys.getOtherAxis(baseAxis);
var valueAxisDim = valueAxis.dim;
var baseAxisDim = baseAxis.dim;
var baseDataOffset = valueAxisDim === "x" || valueAxisDim === "radius" ? 1 : 0;
var baseDim = data.mapDimension(baseAxisDim);
var stackedData = [];
stackedData[baseDataOffset] = data.get(baseDim, dataIndex);
stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo("stackResultDimension"), dataIndex);
point = coordSys.dataToPoint(stackedData) || [];
} else {
point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function(dim) {
return data.mapDimension(dim);
}), dataIndex)) || [];
}
} else if (el) {
var rect = el.getBoundingRect().clone();
rect.applyTransform(el.transform);
point = [rect.x + rect.width / 2, rect.y + rect.height / 2];
}
return {
point,
el
};
}
export { findPointFromSeries as default };