UNPKG

cione-comp-lib

Version:

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

57 lines (56 loc) 2.08 kB
import View from "../../coord/View.mjs"; import { getLayoutRect } from "../../util/layout.mjs"; import { fromPoints } from "../../../../zrender/lib/core/bbox.mjs"; import { extend } from "../../../../zrender/lib/core/util.mjs"; function getViewRect(seriesModel, api, aspect) { var option = extend(seriesModel.getBoxLayoutParams(), { aspect }); return getLayoutRect(option, { width: api.getWidth(), height: api.getHeight() }); } function createViewCoordSys(ecModel, api) { var viewList = []; ecModel.eachSeriesByType("graph", function(seriesModel) { var coordSysType = seriesModel.get("coordinateSystem"); if (!coordSysType || coordSysType === "view") { var data_1 = seriesModel.getData(); var positions = data_1.mapArray(function(idx) { var itemModel = data_1.getItemModel(idx); return [+itemModel.get("x"), +itemModel.get("y")]; }); var min = []; var max = []; fromPoints(positions, min, max); if (max[0] - min[0] === 0) { max[0] += 1; min[0] -= 1; } if (max[1] - min[1] === 0) { max[1] += 1; min[1] -= 1; } var aspect = (max[0] - min[0]) / (max[1] - min[1]); var viewRect = getViewRect(seriesModel, api, aspect); if (isNaN(aspect)) { min = [viewRect.x, viewRect.y]; max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height]; } var bbWidth = max[0] - min[0]; var bbHeight = max[1] - min[1]; var viewWidth = viewRect.width; var viewHeight = viewRect.height; var viewCoordSys = seriesModel.coordinateSystem = new View(); viewCoordSys.zoomLimit = seriesModel.get("scaleLimit"); viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight); viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); viewCoordSys.setCenter(seriesModel.get("center"), api); viewCoordSys.setZoom(seriesModel.get("zoom")); viewList.push(viewCoordSys); } }); return viewList; } export { createViewCoordSys as default };