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