src/cm/media/js/lib/yui/yui3-3.15.0/build/series-histogram-base/series-histogram-base-debug.js
changeset 602 e16a97fb364a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/series-histogram-base/series-histogram-base-debug.js	Mon Mar 10 15:19:48 2014 +0100
@@ -0,0 +1,245 @@
+YUI.add('series-histogram-base', function (Y, NAME) {
+
+/**
+ * Provides core functionality for creating a bar or column series.
+ *
+ * @module charts
+ * @submodule series-histogram
+ */
+var Y_Lang = Y.Lang;
+
+/**
+ * Histogram is the base class for Column and Bar series.
+ *
+ * @class Histogram
+ * @constructor
+ * @param {Object} config (optional) Configuration parameters.
+ * @submodule series-histogram
+ */
+function Histogram(){}
+
+Histogram.prototype = {
+    /**
+     * Draws the series.
+     *
+     * @method drawSeries
+     * @protected
+     */
+    drawSeries: function()
+    {
+        if(this.get("xcoords").length < 1)
+        {
+            return;
+        }
+        var style = this._copyObject(this.get("styles").marker),
+            graphic = this.get("graphic"),
+            setSize,
+            calculatedSize,
+            xcoords = this.get("xcoords"),
+            ycoords = this.get("ycoords"),
+            i = 0,
+            len = xcoords.length,
+            top = ycoords[0],
+            seriesTypeCollection = this.get("seriesTypeCollection"),
+            seriesLen = seriesTypeCollection ? seriesTypeCollection.length : 0,
+            seriesSize = 0,
+            totalSize = 0,
+            offset = 0,
+            ratio,
+            renderer,
+            order = this.get("order"),
+            graphOrder = this.get("graphOrder"),
+            left,
+            marker,
+            setSizeKey,
+            calculatedSizeKey,
+            config,
+            fillColors = null,
+            borderColors = null,
+            xMarkerPlane = [],
+            yMarkerPlane = [],
+            xMarkerPlaneLeft,
+            xMarkerPlaneRight,
+            yMarkerPlaneTop,
+            yMarkerPlaneBottom,
+            dimensions = {
+                width: [],
+                height: []
+            },
+            xvalues = [],
+            yvalues = [],
+            groupMarkers = this.get("groupMarkers");
+        if(Y_Lang.isArray(style.fill.color))
+        {
+            fillColors = style.fill.color.concat();
+        }
+        if(Y_Lang.isArray(style.border.color))
+        {
+            borderColors = style.border.color.concat();
+        }
+        if(this.get("direction") === "vertical")
+        {
+            setSizeKey = "height";
+            calculatedSizeKey = "width";
+        }
+        else
+        {
+            setSizeKey = "width";
+            calculatedSizeKey = "height";
+        }
+        setSize = style[setSizeKey];
+        calculatedSize = style[calculatedSizeKey];
+        this._createMarkerCache();
+        this._maxSize = graphic.get(setSizeKey);
+        if(seriesTypeCollection && seriesLen > 1)
+        {
+            for(; i < seriesLen; ++i)
+            {
+                renderer = seriesTypeCollection[i];
+                seriesSize += renderer.get("styles").marker[setSizeKey];
+                if(order > i)
+                {
+                    offset = seriesSize;
+                }
+            }
+            totalSize = len * seriesSize;
+            if(totalSize > this._maxSize)
+            {
+                ratio = graphic.get(setSizeKey)/totalSize;
+                seriesSize *= ratio;
+                offset *= ratio;
+                setSize *= ratio;
+                setSize = Math.max(setSize, 1);
+                this._maxSize = setSize;
+            }
+        }
+        else
+        {
+            seriesSize = style[setSizeKey];
+            totalSize = len * seriesSize;
+            if(totalSize > this._maxSize)
+            {
+                seriesSize = this._maxSize/len;
+                this._maxSize = seriesSize;
+            }
+        }
+        offset -= seriesSize/2;
+        for(i = 0; i < len; ++i)
+        {
+            xMarkerPlaneLeft = xcoords[i] - seriesSize/2;
+            xMarkerPlaneRight = xMarkerPlaneLeft + seriesSize;
+            yMarkerPlaneTop = ycoords[i] - seriesSize/2;
+            yMarkerPlaneBottom = yMarkerPlaneTop + seriesSize;
+            xMarkerPlane.push({start: xMarkerPlaneLeft, end: xMarkerPlaneRight});
+            yMarkerPlane.push({start: yMarkerPlaneTop, end: yMarkerPlaneBottom});
+            if(!groupMarkers && (isNaN(xcoords[i]) || isNaN(ycoords[i])))
+            {
+                this._markers.push(null);
+                continue;
+            }
+            config = this._getMarkerDimensions(xcoords[i], ycoords[i], calculatedSize, offset);
+            if(!isNaN(config.calculatedSize) && config.calculatedSize > 0)
+            {
+                top = config.top;
+                left = config.left;
+
+                if(groupMarkers)
+                {
+                    dimensions[setSizeKey][i] = setSize;
+                    dimensions[calculatedSizeKey][i] = config.calculatedSize;
+                    xvalues.push(left);
+                    yvalues.push(top);
+                }
+                else
+                {
+                    style[setSizeKey] = setSize;
+                    style[calculatedSizeKey] = config.calculatedSize;
+                    style.x = left;
+                    style.y = top;
+                    if(fillColors)
+                    {
+                        style.fill.color = fillColors[i % fillColors.length];
+                    }
+                    if(borderColors)
+                    {
+                        style.border.color = borderColors[i % borderColors.length];
+                    }
+                    marker = this.getMarker(style, graphOrder, i);
+                }
+
+            }
+            else if(!groupMarkers)
+            {
+                this._markers.push(null);
+            }
+        }
+        this.set("xMarkerPlane", xMarkerPlane);
+        this.set("yMarkerPlane", yMarkerPlane);
+        if(groupMarkers)
+        {
+            this._createGroupMarker({
+                fill: style.fill,
+                border: style.border,
+                dimensions: dimensions,
+                xvalues: xvalues,
+                yvalues: yvalues,
+                shape: style.shape
+            });
+        }
+        else
+        {
+            this._clearMarkerCache();
+        }
+    },
+
+    /**
+     * Collection of default colors used for marker fills in a series when not specified by user.
+     *
+     * @property _defaultFillColors
+     * @type Array
+     * @protected
+     */
+    _defaultFillColors: ["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"],
+
+    /**
+     * Gets the default style values for the markers.
+     *
+     * @method _getPlotDefaults
+     * @return Object
+     * @private
+     */
+    _getPlotDefaults: function()
+    {
+        var defs = {
+            fill:{
+                type: "solid",
+                alpha: 1,
+                colors:null,
+                alphas: null,
+                ratios: null
+            },
+            border:{
+                weight: 0,
+                alpha: 1
+            },
+            width: 12,
+            height: 12,
+            shape: "rect",
+
+            padding:{
+                top: 0,
+                left: 0,
+                right: 0,
+                bottom: 0
+            }
+        };
+        defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
+        defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
+        return defs;
+    }
+};
+
+Y.Histogram = Histogram;
+
+
+}, '@VERSION@', {"requires": ["series-cartesian", "series-plot-util"]});