UNPKG

cione-comp-lib

Version:

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

76 lines (75 loc) 2.31 kB
import { isDimensionStacked } from "../../data/helper/dataStackHelper.mjs"; import { map, isNumber } from "../../../../zrender/lib/core/util.mjs"; function prepareDataCoordInfo(coordSys, data, valueOrigin) { var baseAxis = coordSys.getBaseAxis(); var valueAxis = coordSys.getOtherAxis(baseAxis); var valueStart = getValueStart(valueAxis, valueOrigin); var baseAxisDim = baseAxis.dim; var valueAxisDim = valueAxis.dim; var valueDim = data.mapDimension(valueAxisDim); var baseDim = data.mapDimension(baseAxisDim); var baseDataOffset = valueAxisDim === "x" || valueAxisDim === "radius" ? 1 : 0; var dims = map(coordSys.dimensions, function(coordDim) { return data.mapDimension(coordDim); }); var stacked = false; var stackResultDim = data.getCalculationInfo("stackResultDimension"); if (isDimensionStacked( data, dims[0] )) { stacked = true; dims[0] = stackResultDim; } if (isDimensionStacked( data, dims[1] )) { stacked = true; dims[1] = stackResultDim; } return { dataDimsForPoint: dims, valueStart, valueAxisDim, baseAxisDim, stacked: !!stacked, valueDim, baseDim, baseDataOffset, stackedOverDimension: data.getCalculationInfo("stackedOverDimension") }; } function getValueStart(valueAxis, valueOrigin) { var valueStart = 0; var extent = valueAxis.scale.getExtent(); if (valueOrigin === "start") { valueStart = extent[0]; } else if (valueOrigin === "end") { valueStart = extent[1]; } else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) { valueStart = valueOrigin; } else { if (extent[0] > 0) { valueStart = extent[0]; } else if (extent[1] < 0) { valueStart = extent[1]; } } return valueStart; } function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) { var value = NaN; if (dataCoordInfo.stacked) { value = data.get(data.getCalculationInfo("stackedOverDimension"), idx); } if (isNaN(value)) { value = dataCoordInfo.valueStart; } var baseDataOffset = dataCoordInfo.baseDataOffset; var stackedData = []; stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx); stackedData[1 - baseDataOffset] = value; return coordSys.dataToPoint(stackedData); } export { getStackedOnPoint, prepareDataCoordInfo };