AutorÃa | Ultima modificación | Ver Log |
YUI.add('axis-numeric', function (Y, NAME) {/*** Provides functionality for drawing a numeric axis for use with a chart.** @module charts* @submodule axis-numeric*/var Y_Lang = Y.Lang;/*** NumericAxis draws a numeric axis.** @class NumericAxis* @constructor* @extends Axis* @uses NumericImpl* @param {Object} config (optional) Configuration parameters.* @submodule axis-numeric*/Y.NumericAxis = Y.Base.create("numericAxis", Y.Axis, [Y.NumericImpl], {/*** Calculates and returns a value based on the number of labels and the index of* the current label.** @method getLabelByIndex* @param {Number} i Index of the label.* @param {Number} l Total number of labels.* @return String* @private*/_getLabelByIndex: function(i, l){var min = this.get("minimum"),max = this.get("maximum"),increm = (max - min)/(l-1),label,roundingMethod = this.get("roundingMethod");l -= 1;//respect the min and max. calculate all other labels.if(i === 0){label = min;}else if(i === l){label = max;}else{label = (i * increm);if(roundingMethod === "niceNumber"){label = this._roundToNearest(label, increm);}label += min;}return parseFloat(label);},/*** Returns an object literal containing and array of label values and an array of points.** @method _getLabelData* @param {Object} startPoint An object containing x and y values.* @param {Number} edgeOffset Distance to offset coordinates.* @param {Number} layoutLength Distance that the axis spans.* @param {Number} count Number of labels.* @param {String} direction Indicates whether the axis is horizontal or vertical.* @param {Array} Array containing values for axis labels.* @return Array* @private*/_getLabelData: function(constantVal, staticCoord, dynamicCoord, min, max, edgeOffset, layoutLength, count, dataValues){var dataValue,i,points = [],values = [],point,isVertical = staticCoord === "x",offset = isVertical ? layoutLength + edgeOffset : edgeOffset;dataValues = dataValues || this._getDataValuesByCount(count, min, max);for(i = 0; i < count; i = i + 1){dataValue = parseFloat(dataValues[i]);if(dataValue <= max && dataValue >= min){point = {};point[staticCoord] = constantVal;point[dynamicCoord] = this._getCoordFromValue(min,max,layoutLength,dataValue,offset,isVertical);points.push(point);values.push(dataValue);}}return {points: points,values: values};},/*** Checks to see if data extends beyond the range of the axis. If so,* that data will need to be hidden. This method is internal, temporary and subject* to removal in the future.** @method _hasDataOverflow* @protected* @return Boolean*/_hasDataOverflow: function(){var roundingMethod,min,max;if(this.get("setMin") || this.get("setMax")){return true;}roundingMethod = this.get("roundingMethod");min = this._actualMinimum;max = this._actualMaximum;if(Y_Lang.isNumber(roundingMethod) &&((Y_Lang.isNumber(max) && max > this._dataMaximum) || (Y_Lang.isNumber(min) && min < this._dataMinimum))){return true;}return false;}});}, '3.18.1', {"requires": ["axis", "axis-numeric-base"]});