AutorÃa | Ultima modificación | Ver Log |
YUI.add('axis-stacked-base', function (Y, NAME) {/*** Provides core functionality for the handling of stacked numeric axis data for a chart.** @module charts* @submodule axis-stacked-base*//*** StackedImpl contains logic for managing stacked numeric data. StackedImpl is used by the following classes:* <ul>* <li>{{#crossLink "StackedAxisBase"}}{{/crossLink}}</li>* <li>{{#crossLink "StackedAxis"}}{{/crossLink}}</li>* </ul>** @submodule axis-stacked-base* @class StackedImpl* @constructor*/function StackedImpl(){}StackedImpl.NAME = "stackedImpl";StackedImpl.prototype = {/*** Type of data used in `Data`.** @property _type* @readOnly* @private*/_type: "stacked",/*** Calculates the maximum and minimum values for the `Data`.** @method _updateMinAndMax* @private*/_updateMinAndMax: function(){var max = 0,min = 0,pos = 0,neg = 0,len = 0,i = 0,key,num,keys = this.get("keys"),setMin = this.get("setMin"),setMax = this.get("setMax");for(key in keys){if(keys.hasOwnProperty(key)){len = Math.max(len, keys[key].length);}}for(; i < len; ++i){pos = 0;neg = 0;for(key in keys){if(keys.hasOwnProperty(key)){num = keys[key][i];if(isNaN(num)){continue;}if(num >= 0){pos += num;}else{neg += num;}}}if(pos > 0){max = Math.max(max, pos);}else{max = Math.max(max, neg);}if(neg < 0){min = Math.min(min, neg);}else{min = Math.min(min, pos);}}this._actualMaximum = max;this._actualMinimum = min;if(setMax){max = this._setMaximum;}if(setMin){min = this._setMinimum;}this._roundMinAndMax(min, max, setMin, setMax);}};Y.StackedImpl = StackedImpl;/*** StackedAxisBase manages stacked numeric data for an axis.** @class StackedAxisBase* @constructor* @extends AxisBase* @uses StackedImpl* @param {Object} config (optional) Configuration parameters.* @submodule axis-stacked-base*/Y.StackedAxisBase = Y.Base.create("stackedAxisBase", Y.NumericAxisBase, [Y.StackedImpl]);}, '3.18.1', {"requires": ["axis-numeric-base"]});