PHP Classes

File: vendors/echarts/src/component/legend/LegendModel.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/echarts/src/component/legend/LegendModel.js   Download  
File: vendors/echarts/src/component/legend/LegendModel.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 3 years ago
Size: 5,701 bytes
 

Contents

Class file image Download
define(function(require) { 'use strict'; var zrUtil = require('zrender/core/util'); var Model = require('../../model/Model'); var LegendModel = require('../../echarts').extendComponentModel({ type: 'legend', dependencies: ['series'], layoutMode: { type: 'box', ignoreSize: true }, init: function (option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); option.selected = option.selected || {}; this._updateData(ecModel); var legendData = this._data; // If has any selected in option.selected var selectedMap = this.option.selected; // If selectedMode is single, try to select one if (legendData[0] && this.get('selectedMode') === 'single') { var hasSelected = false; for (var name in selectedMap) { if (selectedMap[name]) { this.select(name); hasSelected = true; } } // Try select the first if selectedMode is single !hasSelected && this.select(legendData[0].get('name')); } }, mergeOption: function (option) { LegendModel.superCall(this, 'mergeOption', option); this._updateData(this.ecModel); }, _updateData: function (ecModel) { var legendData = zrUtil.map(this.get('data') || [], function (dataItem) { if (typeof dataItem === 'string') { dataItem = { name: dataItem }; } return new Model(dataItem, this, this.ecModel); }, this); this._data = legendData; var availableNames = zrUtil.map(ecModel.getSeries(), function (series) { return series.name; }); ecModel.eachSeries(function (seriesModel) { if (seriesModel.legendDataProvider) { var data = seriesModel.legendDataProvider(); availableNames = availableNames.concat(data.mapArray(data.getName)); } }); /** * @type {Array.<string>} * @private */ this._availableNames = availableNames; }, /** * @return {Array.<module:echarts/model/Model>} */ getData: function () { return this._data; }, /** * @param {string} name */ select: function (name) { var selected = this.option.selected; var selectedMode = this.get('selectedMode'); if (selectedMode === 'single') { var data = this._data; zrUtil.each(data, function (dataItem) { selected[dataItem.get('name')] = false; }); } selected[name] = true; }, /** * @param {string} name */ unSelect: function (name) { if (this.get('selectedMode') !== 'single') { this.option.selected[name] = false; } }, /** * @param {string} name */ toggleSelected: function (name) { var selected = this.option.selected; // Default is true if (!(name in selected)) { selected[name] = true; } this[selected[name] ? 'unSelect' : 'select'](name); }, /** * @param {string} name */ isSelected: function (name) { var selected = this.option.selected; return !((name in selected) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0; }, defaultOption: { // ???? zlevel: 0, // ???? z: 4, show: true, // ????????????????? // 'horizontal' | 'vertical' orient: 'horizontal', left: 'center', // right: 'center', top: 'top', // bottom: 'top', // ???? // 'auto' | 'left' | 'right' // ??? 'auto', ?? x ?????????????? align: 'auto', backgroundColor: 'rgba(0,0,0,0)', // ?????? borderColor: '#ccc', // ?????????px????0????? borderWidth: 0, // ????????px??????????5? // ????????????????css padding: 5, // ??item????????px????10? // ????????????????????? itemGap: 10, // ?????? itemWidth: 25, // ?????? itemHeight: 14, textStyle: { // ?????? color: '#333' }, // formatter: '', // ????????????? selectedMode: true // ????????????LEGEND.SELECTED????????? // selected: null, // ???????legend.data???????????item // data: [], } }); return LegendModel; });