| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
/** 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");/** 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.*/function legendSelectActionHandler(methodName, payload, ecModel) {  var selectedMap = {};  var isToggleSelect = methodName === 'toggleSelected';  var isSelected; // Update all legend components  ecModel.eachComponent('legend', function (legendModel) {    if (isToggleSelect && isSelected != null) {      // Force other legend has same selected status      // Or the first is toggled to true and other are toggled to false      // In the case one legend has some item unSelected in option. And if other legend      // doesn't has the item, they will assume it is selected.      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {      legendModel[methodName]();    } else {      legendModel[methodName](payload.name);      isSelected = legendModel.isSelected(payload.name);    }    var legendData = legendModel.getData();    zrUtil.each(legendData, function (model) {      var name = model.get('name'); // Wrap element      if (name === '\n' || name === '') {        return;      }      var isItemSelected = legendModel.isSelected(name);      if (selectedMap.hasOwnProperty(name)) {        // Unselected if any legend is unselected        selectedMap[name] = selectedMap[name] && isItemSelected;      } else {        selectedMap[name] = isItemSelected;      }    });  }); // Return the event explicitly  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {    selected: selectedMap  } : {    name: payload.name,    selected: selectedMap  };}/** * @event legendToggleSelect * @type {Object} * @property {string} type 'legendToggleSelect' * @property {string} [from] * @property {string} name Series name or data item name */echarts.registerAction('legendToggleSelect', 'legendselectchanged', zrUtil.curry(legendSelectActionHandler, 'toggleSelected'));echarts.registerAction('legendAllSelect', 'legendselectall', zrUtil.curry(legendSelectActionHandler, 'allSelect'));echarts.registerAction('legendInverseSelect', 'legendinverseselect', zrUtil.curry(legendSelectActionHandler, 'inverseSelect'));/** * @event legendSelect * @type {Object} * @property {string} type 'legendSelect' * @property {string} name Series name or data item name */echarts.registerAction('legendSelect', 'legendselected', zrUtil.curry(legendSelectActionHandler, 'select'));/** * @event legendUnSelect * @type {Object} * @property {string} type 'legendUnSelect' * @property {string} name Series name or data item name */echarts.registerAction('legendUnSelect', 'legendunselected', zrUtil.curry(legendSelectActionHandler, 'unSelect'));
 |