src/cm/media/js/lib/yui/yui3-3.15.0/build/series-column/series-column-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('series-column', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides functionality for creating a column series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule series-column
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
 * The ColumnSeries class renders columns positioned horizontally along a category or time axis. The columns'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 * lengths are proportional to the values they represent along a vertical axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * and the relevant data points.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * @class ColumnSeries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @extends MarkerSeries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 * @uses Histogram
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 * @param {Object} config (optional) Configuration parameters.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
 * @submodule series-column
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
Y.ColumnSeries = Y.Base.create("columnSeries", Y.MarkerSeries, [Y.Histogram], {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
     * Helper method for calculating the size of markers.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
     * @method _getMarkerDimensions
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
     * @param {Number} xcoord The x-coordinate representing the data point for the marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
     * @param {Number} ycoord The y-coordinate representing the data point for the marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
     * @param {Number} calculatedSize The calculated size for the marker. For a `BarSeries` is it the width. For a `ColumnSeries` it is the height.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
     * @param {Number} offset Distance of position offset dictated by other marker series in the same graph.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    _getMarkerDimensions: function(xcoord, ycoord, calculatedSize, offset)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
        var config = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
            left: xcoord + offset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
        if(this._bottomOrigin >= ycoord)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
            config.top = ycoord;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
            config.calculatedSize = this._bottomOrigin - config.top;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
        else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
            config.top = this._bottomOrigin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
            config.calculatedSize = ycoord - this._bottomOrigin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        return config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
     * Resizes and positions markers based on a mouse interaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
     * @method updateMarkerState
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
     * @param {String} type state of the marker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
     * @param {Number} i index of the marker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    updateMarkerState: function(type, i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        if(this._markers && this._markers[i])
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            var styles = this._copyObject(this.get("styles").marker),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
                markerStyles,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
                state = this._getState(type),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
                xcoords = this.get("xcoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
                ycoords = this.get("ycoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
                marker = this._markers[i],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
                markers,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
                seriesStyles,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
                seriesCollection = this.get("seriesTypeCollection"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
                seriesLen = seriesCollection ? seriesCollection.length : 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
                seriesSize = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
                offset = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
                renderer,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
                n = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
                xs = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
                order = this.get("order"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
                config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
            markerStyles = state === "off" || !styles[state] ? this._copyObject(styles) : this._copyObject(styles[state]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
            markerStyles.fill.color = this._getItemColor(markerStyles.fill.color, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
            markerStyles.border.color = this._getItemColor(markerStyles.border.color, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
            config = this._getMarkerDimensions(xcoords[i], ycoords[i], styles.width, offset);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
            markerStyles.height = config.calculatedSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
            markerStyles.width = Math.min(this._maxSize, markerStyles.width);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
            marker.set(markerStyles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
            for(; n < seriesLen; ++n)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
                xs[n] = xcoords[i] + seriesSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
                seriesStyles = seriesCollection[n].get("styles").marker;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
                seriesSize += Math.min(this._maxSize, seriesStyles.width);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                if(order > n)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
                    offset = seriesSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
                offset -= seriesSize/2;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
            for(n = 0; n < seriesLen; ++n)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
                markers = seriesCollection[n].get("markers");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
                if(markers)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
                    renderer = markers[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
                    if(renderer && renderer !== undefined)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
                        renderer.set("x", (xs[n] - seriesSize/2));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
}, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
    ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
         * Read-only attribute indicating the type of series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
         * @attribute type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
         * @readOnly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
         * @default column
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
        type: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
            value: "column"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
         * Style properties used for drawing markers. This attribute is inherited from `MarkerSeries`. Below are the default values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
         *  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
         *      <dt>fill</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
         *          <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
         *              <dt>color</dt><dd>Color of the fill. The default value is determined by the order of the series on the graph. The color
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
         *              will be retrieved from the below array:<br/>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
         *              `["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"]`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
         *              </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
         *              <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker fill. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
         *          </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
         *      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
         *      <dt>border</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
         *          <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
         *              <dt>color</dt><dd>Color of the border. The default value is determined by the order of the series on the graph. The color
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
         *              will be retrieved from the below array:<br/>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
         *              `["#205096", "#b38206", "#000000", "#94001e", "#9d6fa0", "#e55b00", "#5e85c9", "#adab9e", "#6ac291", "#006457"]`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
         *              <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker border. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
         *              <dt>weight</dt><dd>Number indicating the width of the border. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
         *          </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
         *      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
         *      <dt>width</dt><dd>indicates the width of the marker. The default value is 12.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
         *      <dt>over</dt><dd>hash containing styles for markers when highlighted by a `mouseover` event. The default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
         *      values for each style is null. When an over style is not set, the non-over value will be used. For example,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
         *      the default value for `marker.over.fill.color` is equivalent to `marker.fill.color`.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
         *  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
         * @attribute styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
         * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
}, '@VERSION@', {"requires": ["series-marker", "series-histogram-base"]});