src/cm/media/js/lib/yui/yui_3.10.3/build/axis-time/axis-time.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('axis-time', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Provides functionality for drawing a time axis for use with a chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module charts
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @submodule axis-time
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 * TimeAxis draws a time-based axis for a chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * @class TimeAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 * @extends Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 * @uses TimeImpl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 * @param {Object} config (optional) Configuration parameters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 * @submodule axis-time
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
Y.TimeAxis = Y.Base.create("timeAxis", Y.Axis, [Y.TimeImpl], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
     * Calculates and returns a value based on the number of labels and the index of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
     * the current label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
     * @method _getLabelByIndex
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
     * @param {Number} i Index of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
     * @param {Number} l Total number of labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    _getLabelByIndex: function(i, l)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        var min = this.get("minimum"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
            max = this.get("maximum"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
            increm,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
            label;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
            l -= 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        increm = ((max - min)/l) * i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
        label = min + increm;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        return label;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     * Calculates the position of ticks and labels based on an array of specified label values. Returns
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
     * an object containing an array of values to be used for labels and an array of objects containing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
     * x and y coordinates for each label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     * @method _getDataFromLabelValues
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @param {Object} startPoint An object containing the x and y coordinates for the start of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     * @param {Array} labelValues An array containing values to be used for determining the number and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
     * position of labels and ticks on the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
     * @param {Number} edgeOffset The distance, in pixels, on either edge of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
     * @param {Number} layoutLength The length, in pixels, of the axis. If the axis is vertical, the length
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
     * is equal to the height. If the axis is horizontal, the length is equal to the width.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    _getDataFromLabelValues: function(startPoint, labelValues, edgeOffset, layoutLength, direction)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        var points = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
            labelValue,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
            len = labelValues.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
            staticCoord,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            dynamicCoord,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
            constantVal,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            newPoint,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            max = this.get("maximum"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
            min = this.get("minimum"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
            values = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
            scaleFactor = (layoutLength - (edgeOffset * 2)) / (max - min);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        if(direction === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
            staticCoord = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
            dynamicCoord = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
            staticCoord = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            dynamicCoord = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        constantVal = startPoint[staticCoord];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        for(i = 0; i < len; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
            labelValue = this._getNumber(labelValues[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
            if(Y.Lang.isNumber(labelValue) && labelValue >= min && labelValue <= max)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
                newPoint = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                newPoint[staticCoord] = constantVal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
                newPoint[dynamicCoord] = edgeOffset + ((labelValue - min) * scaleFactor);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
                points.push(newPoint);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
                values.push(labelValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            points: points,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            values: values
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
}, '3.10.3', {"requires": ["axis", "axis-time-base"]});