/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * AUTO-GENERATED FILE. DO NOT MODIFY. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import { __extends } from "tslib"; import * as zrUtil from 'zrender/lib/core/util.js'; import * as modelUtil from '../../util/model.js'; import ComponentModel from '../../model/Component.js'; import Model from '../../model/Model.js'; import geoCreator from './geoCreator.js'; import geoSourceManager from './geoSourceManager.js'; ; var GeoModel = /** @class */function (_super) { __extends(GeoModel, _super); function GeoModel() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = GeoModel.type; return _this; } GeoModel.prototype.init = function (option, parentModel, ecModel) { var source = geoSourceManager.getGeoResource(option.map); if (source && source.type === 'geoJSON') { var itemStyle = option.itemStyle = option.itemStyle || {}; if (!('color' in itemStyle)) { itemStyle.color = '#eee'; } } this.mergeDefaultAndTheme(option, ecModel); // Default label emphasis `show` modelUtil.defaultEmphasis(option, 'label', ['show']); }; GeoModel.prototype.optionUpdated = function () { var _this = this; var option = this.option; option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap, option.nameProperty); var selectedMap = {}; this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) { var regionName = regionOpt.name; if (regionName) { optionModelMap.set(regionName, new Model(regionOpt, _this, _this.ecModel)); if (regionOpt.selected) { selectedMap[regionName] = true; } } return optionModelMap; }, zrUtil.createHashMap()); if (!option.selectedMap) { option.selectedMap = selectedMap; } }; /** * Get model of region. */ GeoModel.prototype.getRegionModel = function (name) { return this._optionModelMap.get(name) || new Model(null, this, this.ecModel); }; /** * Format label * @param name Region name */ GeoModel.prototype.getFormattedLabel = function (name, status) { var regionModel = this.getRegionModel(name); var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']); var params = { name: name }; if (zrUtil.isFunction(formatter)) { params.status = status; return formatter(params); } else if (zrUtil.isString(formatter)) { return formatter.replace('{a}', name != null ? name : ''); } }; GeoModel.prototype.setZoom = function (zoom) { this.option.zoom = zoom; }; GeoModel.prototype.setCenter = function (center) { this.option.center = center; }; // PENGING If selectedMode is null ? GeoModel.prototype.select = function (name) { var option = this.option; var selectedMode = option.selectedMode; if (!selectedMode) { return; } if (selectedMode !== 'multiple') { option.selectedMap = null; } var selectedMap = option.selectedMap || (option.selectedMap = {}); selectedMap[name] = true; }; GeoModel.prototype.unSelect = function (name) { var selectedMap = this.option.selectedMap; if (selectedMap) { selectedMap[name] = false; } }; GeoModel.prototype.toggleSelected = function (name) { this[this.isSelected(name) ? 'unSelect' : 'select'](name); }; GeoModel.prototype.isSelected = function (name) { var selectedMap = this.option.selectedMap; return !!(selectedMap && selectedMap[name]); }; GeoModel.type = 'geo'; GeoModel.layoutMode = 'box'; GeoModel.defaultOption = { // zlevel: 0, z: 0, show: true, left: 'center', top: 'center', // Default value: // for geoSVG source: 1, // for geoJSON source: 0.75. aspectScale: null, // /// Layout with center and size // If you want to put map in a fixed size box with right aspect ratio // This two properties may be more convenient // layoutCenter: [50%, 50%] // layoutSize: 100 silent: false, // Map type map: '', // Define left-top, right-bottom coords to control view // For example, [ [180, 90], [-180, -90] ] boundingCoords: null, // Default on center of map center: null, zoom: 1, scaleLimit: null, // selectedMode: false label: { show: false, color: '#000' }, itemStyle: { borderWidth: 0.5, borderColor: '#444' // Default color: // + geoJSON: #eee // + geoSVG: null (use SVG original `fill`) // color: '#eee' }, emphasis: { label: { show: true, color: 'rgb(100,0,0)' }, itemStyle: { color: 'rgba(255,215,0,0.8)' } }, select: { label: { show: true, color: 'rgb(100,0,0)' }, itemStyle: { color: 'rgba(255,215,0,0.8)' } }, regions: [] // tooltip: { // show: false // } }; return GeoModel; }(ComponentModel); export default GeoModel;