cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
78 lines (77 loc) • 3.01 kB
JavaScript
import "../../../../echarts/lib/echarts.mjs";
import componentViewControlMixin from "../common/componentViewControlMixin.mjs";
import componentPostEffectMixin from "../common/componentPostEffectMixin.mjs";
import componentLightMixin from "../common/componentLightMixin.mjs";
import componentShadingMixin from "../common/componentShadingMixin.mjs";
import geo3DModelMixin from "../../coord/geo3D/geo3DModelMixin.mjs";
import ComponentModel from "../../../../echarts/lib/model/Component.mjs";
import { createDimensions } from "../../../../echarts/lib/data/helper/createDimensions.mjs";
import SeriesData from "../../../../echarts/lib/data/SeriesData.mjs";
import Model from "../../../../echarts/lib/model/Model.mjs";
import { merge } from "../../../../zrender/lib/core/util.mjs";
var Geo3DModel = ComponentModel.extend({
type: "geo3D",
layoutMode: "box",
coordinateSystem: null,
optionUpdated: function() {
var option = this.option;
option.regions = this.getFilledRegions(option.regions, option.map);
var dimensions = createDimensions(option.data || [], {
coordDimensions: ["value"],
encodeDefine: this.get("encode"),
dimensionsDefine: this.get("dimensions")
});
var list = new SeriesData(dimensions, this);
list.initData(option.regions);
var regionModelMap = {};
list.each(function(idx) {
var name = list.getName(idx);
var itemModel = list.getItemModel(idx);
regionModelMap[name] = itemModel;
});
this._regionModelMap = regionModelMap;
this._data = list;
},
getData: function() {
return this._data;
},
getRegionModel: function(idx) {
var name = this.getData().getName(idx);
return this._regionModelMap[name] || new Model(null, this);
},
getRegionPolygonCoords: function(idx) {
var name = this.getData().getName(idx);
var region = this.coordinateSystem.getRegion(name);
return region ? region.geometries : [];
},
getFormattedLabel: function(dataIndex, status) {
var name = this._data.getName(dataIndex);
var regionModel = this.getRegionModel(dataIndex);
var formatter = regionModel.get(status === "normal" ? ["label", "formatter"] : ["emphasis", "label", "formatter"]);
if (formatter == null) {
formatter = regionModel.get(["label", "formatter"]);
}
var params = {
name
};
if (typeof formatter === "function") {
params.status = status;
return formatter(params);
} else if (typeof formatter === "string") {
var serName = params.seriesName;
return formatter.replace("{a}", serName != null ? serName : "");
} else {
return name;
}
},
defaultOption: {
regions: []
}
});
merge(Geo3DModel.prototype, geo3DModelMixin);
merge(Geo3DModel.prototype, componentViewControlMixin);
merge(Geo3DModel.prototype, componentPostEffectMixin);
merge(Geo3DModel.prototype, componentLightMixin);
merge(Geo3DModel.prototype, componentShadingMixin);
var Geo3DModel$1 = Geo3DModel;
export { Geo3DModel$1 as default };