src/cm/media/js/lib/yui/yui_3.10.3/build/axis-time-base/axis-time-base.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-base', 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 the handling of time axis data for 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-base
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
var Y_Lang = Y.Lang;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * TimeImpl contains logic for time data. TimeImpl is used by the following classes:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 * <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 *      <li>{{#crossLink "TimeAxisBase"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 *      <li>{{#crossLink "TimeAxis"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 *  </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * @class TimeImpl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * @submodule axis-time-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
function TimeImpl()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
TimeImpl.NAME = "timeImpl";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
TimeImpl.ATTRS =
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     * Method used for formatting a label. This attribute allows for the default label formatting method to overridden.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     * The method use would need to implement the arguments below and return a `String` or an `HTMLElement`. The default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
     * implementation of the method returns a `String`. The output of this method will be rendered to the DOM using
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     * `appendChild`. If you override the `labelFunction` method and return an html string, you will also need to override
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
     * the Axis' `appendLabelFunction` to accept html as a `String`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
     * <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
     *      <dt>val</dt><dd>Label to be formatted. (`String`)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
     *      <dt>format</dt><dd>STRFTime string used to format the label. (optional)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
     * </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
     * @attribute labelFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
     * @type Function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     * Pattern used by the `labelFunction` to format a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @attribute labelFormat
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    labelFormat: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        value: "%b %d, %y"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
TimeImpl.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
     * Type of data used in `Data`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
     * @property _type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
     * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    _type: "time",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
     * Getter method for maximum attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
     * @method _maximumGetter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    _maximumGetter: function ()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
        var max = this._getNumber(this._setMaximum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
        if(!Y_Lang.isNumber(max))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
            max = this._getNumber(this.get("dataMaximum"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        return parseFloat(max);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
     * Setter method for maximum attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
     * @method _maximumSetter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
     * @param {Object} value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    _maximumSetter: function (value)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
        this._setMaximum = this._getNumber(value);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        return value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     * Getter method for minimum attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
     * @method _minimumGetter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    _minimumGetter: function ()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        var min = this._getNumber(this._setMinimum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        if(!Y_Lang.isNumber(min))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            min = this._getNumber(this.get("dataMinimum"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        return parseFloat(min);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
     * Setter method for minimum attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
     * @method _minimumSetter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
     * @param {Object} value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    _minimumSetter: function (value)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        this._setMinimum = this._getNumber(value);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        return value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
     * Indicates whether or not the maximum attribute has been explicitly set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     * @method _getSetMax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    _getSetMax: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        var max = this._getNumber(this._setMaximum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        return (Y_Lang.isNumber(max));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
     * Indicates whether or not the minimum attribute has been explicitly set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     * @method _getSetMin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    _getSetMin: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        var min = this._getNumber(this._setMinimum);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        return (Y_Lang.isNumber(min));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
     * Formats a label based on the axis type and optionally specified format.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
     * @method formatLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
     * @param {Object} value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
     * @param {Object} format Pattern used to format the value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    formatLabel: function(val, format)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
        val = Y.DataType.Date.parse(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        if(format)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
            return Y.DataType.Date.format(val, {format:format});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
     * Constant used to generate unique id.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
     * @property GUID
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    GUID: "yuitimeaxis",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
     * Type of data used in `Axis`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
     * @property _dataType
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
     * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    _dataType: "time",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
     * Gets an array of values based on a key.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
     * @method _getKeyArray
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
     * @param {String} key Value key associated with the data array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
     * @param {Array} data Array in which the data resides.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
    _getKeyArray: function(key, data)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
        var obj,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
            keyArray = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
            val,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
            len = data.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
            obj = data[i][key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
            if(Y_Lang.isDate(obj))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
                val = obj.valueOf();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                val = new Date(obj);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
                if(Y_Lang.isDate(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
                    val = val.valueOf();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
                else if(!Y_Lang.isNumber(obj))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
                    if(Y_Lang.isNumber(parseFloat(obj)))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
                        val = parseFloat(obj);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
                        if(typeof obj !== "string")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
                            obj = obj;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
                        val = new Date(obj).valueOf();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
                    val = obj;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            keyArray[i] = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        return keyArray;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
     * Calculates the maximum and minimum values for the `Axis`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
     * @method _updateMinAndMax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    _updateMinAndMax: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
        var data = this.get("data"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
            max = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
            min = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
            num,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
            i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        if(data && data.length && data.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
            len = data.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            max = min = data[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
            if(len > 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
                for(i = 1; i < len; i++)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
                    num = data[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
                    if(isNaN(num))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
                        continue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
                    max = Math.max(num, max);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
                    min = Math.min(num, min);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
        this._dataMaximum = max;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        this._dataMinimum = min;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
     * Parses value into a number.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
     * @method _getNumber
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
     * @param val {Object} Value to parse into a number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    _getNumber: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
        if(Y_Lang.isDate(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
            val = val.valueOf();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
        else if(!Y_Lang.isNumber(val) && val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
            val = new Date(val).valueOf();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
Y.TimeImpl = TimeImpl;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
 * TimeAxisBase manages time data for an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
 * @class TimeAxisBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
 * @extends AxisBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
 * @uses TimeImpl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
 * @param {Object} config (optional) Configuration parameters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
 * @submodule axis-time-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
Y.TimeAxisBase = Y.Base.create("timeAxisBase", Y.AxisBase, [Y.TimeImpl]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
}, '3.10.3', {"requires": ["axis-base"]});