UNPKG

cione-comp-lib

Version:

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

86 lines (85 loc) 3.46 kB
import { each, createHashMap } from "../../../zrender/lib/core/util.mjs"; import { SINGLE_REFERRING } from "../util/model.mjs"; var CoordSysInfo = function() { function CoordSysInfo2(coordSysName) { this.coordSysDims = []; this.axisMap = createHashMap(); this.categoryAxisMap = createHashMap(); this.coordSysName = coordSysName; } return CoordSysInfo2; }(); function getCoordSysInfoBySeries(seriesModel) { var coordSysName = seriesModel.get("coordinateSystem"); var result = new CoordSysInfo(coordSysName); var fetch = fetchers[coordSysName]; if (fetch) { fetch(seriesModel, result, result.axisMap, result.categoryAxisMap); return result; } } var fetchers = { cartesian2d: function(seriesModel, result, axisMap, categoryAxisMap) { var xAxisModel = seriesModel.getReferringComponents("xAxis", SINGLE_REFERRING).models[0]; var yAxisModel = seriesModel.getReferringComponents("yAxis", SINGLE_REFERRING).models[0]; result.coordSysDims = ["x", "y"]; axisMap.set("x", xAxisModel); axisMap.set("y", yAxisModel); if (isCategory(xAxisModel)) { categoryAxisMap.set("x", xAxisModel); result.firstCategoryDimIndex = 0; } if (isCategory(yAxisModel)) { categoryAxisMap.set("y", yAxisModel); result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1); } }, singleAxis: function(seriesModel, result, axisMap, categoryAxisMap) { var singleAxisModel = seriesModel.getReferringComponents("singleAxis", SINGLE_REFERRING).models[0]; result.coordSysDims = ["single"]; axisMap.set("single", singleAxisModel); if (isCategory(singleAxisModel)) { categoryAxisMap.set("single", singleAxisModel); result.firstCategoryDimIndex = 0; } }, polar: function(seriesModel, result, axisMap, categoryAxisMap) { var polarModel = seriesModel.getReferringComponents("polar", SINGLE_REFERRING).models[0]; var radiusAxisModel = polarModel.findAxisModel("radiusAxis"); var angleAxisModel = polarModel.findAxisModel("angleAxis"); result.coordSysDims = ["radius", "angle"]; axisMap.set("radius", radiusAxisModel); axisMap.set("angle", angleAxisModel); if (isCategory(radiusAxisModel)) { categoryAxisMap.set("radius", radiusAxisModel); result.firstCategoryDimIndex = 0; } if (isCategory(angleAxisModel)) { categoryAxisMap.set("angle", angleAxisModel); result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1); } }, geo: function(seriesModel, result, axisMap, categoryAxisMap) { result.coordSysDims = ["lng", "lat"]; }, parallel: function(seriesModel, result, axisMap, categoryAxisMap) { var ecModel = seriesModel.ecModel; var parallelModel = ecModel.getComponent("parallel", seriesModel.get("parallelIndex")); var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice(); each(parallelModel.parallelAxisIndex, function(axisIndex, index) { var axisModel = ecModel.getComponent("parallelAxis", axisIndex); var axisDim = coordSysDims[index]; axisMap.set(axisDim, axisModel); if (isCategory(axisModel)) { categoryAxisMap.set(axisDim, axisModel); if (result.firstCategoryDimIndex == null) { result.firstCategoryDimIndex = index; } } }); } }; function isCategory(axisModel) { return axisModel.get("type") === "category"; } export { getCoordSysInfoBySeries };