diff -r d334a616c023 -r e16a97fb364a src/cm/media/js/lib/yui/yui3-3.15.0/build/axis-numeric/axis-numeric.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/axis-numeric/axis-numeric.js Mon Mar 10 15:19:48 2014 +0100 @@ -0,0 +1,140 @@ +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; + } +}); + + + +}, '@VERSION@', {"requires": ["axis", "axis-numeric-base"]});