Autoría | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** Chart pie.** @copyright 2016 Frédéric Massart - FMCorz.net* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @module core/chart_pie*/define(['core/chart_base'], function(Base) {/*** Pie chart.** @class* @extends {module:core/chart_base}*/function Pie() {Base.prototype.constructor.apply(this, arguments);}Pie.prototype = Object.create(Base.prototype);/** @override */Pie.prototype.TYPE = 'pie';/*** Whether the chart should be displayed as doughnut or not.** @type {Bool}* @protected*/Pie.prototype._doughnut = null;/** @override */Pie.prototype.create = function(Klass, data) {var chart = Base.prototype.create.apply(this, arguments);chart.setDoughnut(data.doughnut);return chart;};/*** Overridden to add appropriate colors to the series.** @override*/Pie.prototype.addSeries = function(series) {if (series.getColor() === null) {var colors = [];var configColorSet = this.getConfigColorSet() || Base.prototype.COLORSET;for (var i = 0; i < series.getCount(); i++) {colors.push(configColorSet[i % configColorSet.length]);}series.setColors(colors);}return Base.prototype.addSeries.apply(this, arguments);};/*** Get whether the chart should be displayed as doughnut or not.** @method getDoughnut* @returns {Bool}*/Pie.prototype.getDoughnut = function() {return this._doughnut;};/*** Set whether the chart should be displayed as doughnut or not.** @method setDoughnut* @param {Bool} doughnut True for doughnut type, false for pie.*/Pie.prototype.setDoughnut = function(doughnut) {this._doughnut = Boolean(doughnut);};/*** Validate a series.** Overrides parent implementation to validate that there is only* one series per chart instance.** @override*/Pie.prototype._validateSeries = function() {if (this._series.length >= 1) {throw new Error('Pie charts only support one serie.');}return Base.prototype._validateSeries.apply(this, arguments);};return Pie;});