UNPKG

cione-comp-lib

Version:

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

90 lines (89 loc) 2.58 kB
import "../../../../echarts/lib/echarts.mjs"; import componentShadingMixin from "../../component/common/componentShadingMixin.mjs"; import SeriesModel from "../../../../echarts/lib/model/Series.mjs"; import SeriesData from "../../../../echarts/lib/data/SeriesData.mjs"; import { merge } from "../../../../zrender/lib/core/util.mjs"; function transformPolygon(coordSys, poly) { var ret = []; for (var i = 0; i < poly.length; i++) { ret.push(coordSys.dataToPoint(poly[i])); } return ret; } var Polygons3DSeries = SeriesModel.extend({ type: "series.polygons3D", getRegionModel: function(idx) { return this.getData().getItemModel(idx); }, getRegionPolygonCoords: function(idx) { var coordSys = this.coordinateSystem; var itemModel = this.getData().getItemModel(idx); var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow("coords"); if (!itemModel.get("multiPolygon")) { coords = [coords]; } var out = []; for (var i = 0; i < coords.length; i++) { var interiors = []; for (var k = 1; k < coords[i].length; k++) { interiors.push(transformPolygon(coordSys, coords[i][k])); } out.push({ exterior: transformPolygon(coordSys, coords[i][0]), interiors }); } return out; }, getInitialData: function(option) { var polygonsData = new SeriesData(["value"], this); polygonsData.hasItemOption = false; polygonsData.initData(option.data, [], function(dataItem, dimName, dataIndex, dimIndex) { if (dataItem instanceof Array) { return NaN; } else { polygonsData.hasItemOption = true; var value = dataItem.value; if (value != null) { return value instanceof Array ? value[dimIndex] : value; } } }); return polygonsData; }, defaultOption: { show: true, data: null, multiPolygon: false, progressiveThreshold: 1e3, progressive: 1e3, zlevel: -10, label: { show: false, distance: 2, textStyle: { fontSize: 20, color: "#000", backgroundColor: "rgba(255,255,255,0.7)", padding: 3, borderRadius: 4 } }, itemStyle: { color: "#fff", borderWidth: 0, borderColor: "#333" }, emphasis: { itemStyle: { color: "#639fc0" }, label: { show: true } } } }); merge(Polygons3DSeries.prototype, componentShadingMixin); var Polygons3DSeries$1 = Polygons3DSeries; export { Polygons3DSeries$1 as default };