src/component/legend/LegendModel.js

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

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 || {};
        },

        mergeOption: function (option) {
            LegendModel.superCall(this, 'mergeOption', option);
        },

        optionUpdated: function () {
            this._updateData(this.ecModel);

            var legendData = this._data;

            // If selectedMode is single, try to select one
            if (legendData[0] && this.get('selectedMode') === 'single') {
                var hasSelected = false;
                // If has any selected in option.selected
                for (var i = 0; i < legendData.length; i++) {
                    var name = legendData[i].get('name');
                    if (this.isSelected(name)) {
                        // Force to unselect others
                        this.select(name);
                        hasSelected = true;
                        break;
                    }
                }
                // Try select the first if selectedMode is single
                !hasSelected && this.select(legendData[0].get('name'));
            }
        },

        _updateData: function (ecModel) {
            var legendData = zrUtil.map(this.get('data') || [], function (dataItem) {
                // Can be string or number
                if (typeof dataItem === 'string' || typeof dataItem === 'number') {
                    dataItem = {
                        name: dataItem
                    };
                }
                return new Model(dataItem, this, this.ecModel);
后面还有 133 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。