UNPKG

cione-comp-lib

Version:

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

151 lines (150 loc) 4.9 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import { curry, createHashMap, each } from "../../../../zrender/lib/core/util.mjs"; import createSeriesDataSimply from "../helper/createSeriesDataSimply.mjs"; import SeriesModel from "../../model/Series.mjs"; import geoSourceManager from "../../coord/geo/geoSourceManager.mjs"; import { makeSeriesEncodeForNameBased } from "../../data/helper/sourceHelper.mjs"; import { createTooltipMarkup } from "../../component/tooltip/tooltipMarkup.mjs"; import { createSymbol } from "../../util/symbol.mjs"; var MapSeries = function(_super) { __extends(MapSeries2, _super); function MapSeries2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = MapSeries2.type; _this.needsDrawMap = false; _this.seriesGroup = []; _this.getTooltipPosition = function(dataIndex) { if (dataIndex != null) { var name_1 = this.getData().getName(dataIndex); var geo = this.coordinateSystem; var region = geo.getRegion(name_1); return region && geo.dataToPoint(region.getCenter()); } }; return _this; } MapSeries2.prototype.getInitialData = function(option) { var data = createSeriesDataSimply(this, { coordDimensions: ["value"], encodeDefaulter: curry(makeSeriesEncodeForNameBased, this) }); var dataNameMap = createHashMap(); var toAppendNames = []; for (var i = 0, len = data.count(); i < len; i++) { var name_2 = data.getName(i); dataNameMap.set(name_2, true); } var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty); each(geoSource.regions, function(region) { var name = region.name; if (!dataNameMap.get(name)) { toAppendNames.push(name); } }); data.appendValues([], toAppendNames); return data; }; MapSeries2.prototype.getHostGeoModel = function() { var geoIndex = this.option.geoIndex; return geoIndex != null ? this.ecModel.getComponent("geo", geoIndex) : null; }; MapSeries2.prototype.getMapType = function() { return (this.getHostGeoModel() || this).option.map; }; MapSeries2.prototype.getRawValue = function(dataIndex) { var data = this.getData(); return data.get(data.mapDimension("value"), dataIndex); }; MapSeries2.prototype.getRegionModel = function(regionName) { var data = this.getData(); return data.getItemModel(data.indexOfName(regionName)); }; MapSeries2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { var data = this.getData(); var value = this.getRawValue(dataIndex); var name = data.getName(dataIndex); var seriesGroup = this.seriesGroup; var seriesNames = []; for (var i = 0; i < seriesGroup.length; i++) { var otherIndex = seriesGroup[i].originalData.indexOfName(name); var valueDim = data.mapDimension("value"); if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) { seriesNames.push(seriesGroup[i].name); } } return createTooltipMarkup("section", { header: seriesNames.join(", "), noHeader: !seriesNames.length, blocks: [createTooltipMarkup("nameValue", { name, value })] }); }; MapSeries2.prototype.setZoom = function(zoom) { this.option.zoom = zoom; }; MapSeries2.prototype.setCenter = function(center) { this.option.center = center; }; MapSeries2.prototype.getLegendIcon = function(opt) { var iconType = opt.icon || "roundRect"; var icon = createSymbol(iconType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill); icon.setStyle(opt.itemStyle); icon.style.stroke = "none"; if (iconType.indexOf("empty") > -1) { icon.style.stroke = icon.style.fill; icon.style.fill = "#fff"; icon.style.lineWidth = 2; } return icon; }; MapSeries2.type = "series.map"; MapSeries2.dependencies = ["geo"]; MapSeries2.layoutMode = "box"; MapSeries2.defaultOption = { z: 2, coordinateSystem: "geo", map: "", left: "center", top: "center", aspectScale: null, showLegendSymbol: true, boundingCoords: null, center: null, zoom: 1, scaleLimit: null, selectedMode: true, label: { show: false, color: "#000" }, itemStyle: { borderWidth: 0.5, borderColor: "#444", areaColor: "#eee" }, emphasis: { label: { show: true, color: "rgb(100,0,0)" }, itemStyle: { areaColor: "rgba(255,215,0,0.8)" } }, select: { label: { show: true, color: "rgb(100,0,0)" }, itemStyle: { color: "rgba(255,215,0,0.8)" } }, nameProperty: "name" }; return MapSeries2; }(SeriesModel); var MapSeries$1 = MapSeries; export { MapSeries$1 as default };