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