| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | 
/** 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.*/var echarts = require("../../echarts");var zrUtil = require("zrender/lib/core/util");var graphic = require("../../util/graphic");var formatUtil = require("../../util/format");var layout = require("../../util/layout");var VisualMapping = require("../../visual/VisualMapping");/** 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.*/var _default = echarts.extendComponentView({  type: 'visualMap',  /**   * @readOnly   * @type {Object}   */  autoPositionValues: {    left: 1,    right: 1,    top: 1,    bottom: 1  },  init: function (ecModel, api) {    /**     * @readOnly     * @type {module:echarts/model/Global}     */    this.ecModel = ecModel;    /**     * @readOnly     * @type {module:echarts/ExtensionAPI}     */    this.api = api;    /**     * @readOnly     * @type {module:echarts/component/visualMap/visualMapModel}     */    this.visualMapModel;  },  /**   * @protected   */  render: function (visualMapModel, ecModel, api, payload) {    this.visualMapModel = visualMapModel;    if (visualMapModel.get('show') === false) {      this.group.removeAll();      return;    }    this.doRender.apply(this, arguments);  },  /**   * @protected   */  renderBackground: function (group) {    var visualMapModel = this.visualMapModel;    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);    var rect = group.getBoundingRect();    group.add(new graphic.Rect({      z2: -1,      // Lay background rect on the lowest layer.      silent: true,      shape: {        x: rect.x - padding[3],        y: rect.y - padding[0],        width: rect.width + padding[3] + padding[1],        height: rect.height + padding[0] + padding[2]      },      style: {        fill: visualMapModel.get('backgroundColor'),        stroke: visualMapModel.get('borderColor'),        lineWidth: visualMapModel.get('borderWidth')      }    }));  },  /**   * @protected   * @param {number} targetValue can be Infinity or -Infinity   * @param {string=} visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize'   * @param {Object} [opts]   * @param {string=} [opts.forceState] Specify state, instead of using getValueState method.   * @param {string=} [opts.convertOpacityToAlpha=false] For color gradient in controller widget.   * @return {*} Visual value.   */  getControllerVisual: function (targetValue, visualCluster, opts) {    opts = opts || {};    var forceState = opts.forceState;    var visualMapModel = this.visualMapModel;    var visualObj = {}; // Default values.    if (visualCluster === 'symbol') {      visualObj.symbol = visualMapModel.get('itemSymbol');    }    if (visualCluster === 'color') {      var defaultColor = visualMapModel.get('contentColor');      visualObj.color = defaultColor;    }    function getter(key) {      return visualObj[key];    }    function setter(key, value) {      visualObj[key] = value;    }    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];    var visualTypes = VisualMapping.prepareVisualTypes(mappings);    zrUtil.each(visualTypes, function (type) {      var visualMapping = mappings[type];      if (opts.convertOpacityToAlpha && type === 'opacity') {        type = 'colorAlpha';        visualMapping = mappings.__alphaForOpacity;      }      if (VisualMapping.dependsOn(type, visualCluster)) {        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);      }    });    return visualObj[visualCluster];  },  /**   * @protected   */  positionGroup: function (group) {    var model = this.visualMapModel;    var api = this.api;    layout.positionElement(group, model.getBoxLayoutParams(), {      width: api.getWidth(),      height: api.getHeight()    });  },  /**   * @protected   * @abstract   */  doRender: zrUtil.noop});module.exports = _default;
 |