src/cm/media/js/lib/yui/yui3-3.15.0/build/axis-base/axis-base-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('axis-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
 * The Charts widget provides an api for displaying data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 * graphically.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * @main charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 */
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
 * Provides functionality for the handling of axis data in a chart.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @submodule axis-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
var Y_Lang = Y.Lang;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
 * The Renderer class is a base class for chart components that use the `styles`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
 * attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
 * @class Renderer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
function Renderer(){}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
Renderer.ATTRS = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
         * Style properties for class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
         * @attribute styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
         * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
        styles:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
            getter: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
                this._styles = this._styles || this._getDefaultStyles();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
                return this._styles;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
            setter: function(val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
                this._styles = this._setStyles(val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        },
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
         * The graphic in which drawings will be rendered.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
         * @attribute graphic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
         * @type Graphic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
        graphic: {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
Renderer.NAME = "renderer";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
Renderer.prototype = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
     * Storage for `styles` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
     * @property _styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
	_styles: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
     * Method used by `styles` setter.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
     * @method _setStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
     * @param {Object} newStyles Hash of properties to update.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
	_setStyles: function(newstyles)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
	{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
		var styles = this.get("styles");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
        return this._mergeStyles(newstyles, styles);
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
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
     * Merges to object literals so that only specified properties are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
     * overwritten.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
     * @method _mergeStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
     * @param {Object} a Hash of new styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
     * @param {Object} b Hash of original styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
    _mergeStyles: function(a, b)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
        if(!b)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
            b = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
        var newstyles = Y.merge(b, {});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
        Y.Object.each(a, function(value, key)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
            if(b.hasOwnProperty(key) && Y_Lang.isObject(value) && !Y_Lang.isFunction(value) && !Y_Lang.isArray(value))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
                newstyles[key] = this._mergeStyles(value, b[key]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
            else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
                newstyles[key] = value;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
        }, this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
        return newstyles;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
     * Copies an object literal.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
     * @method _copyObject
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
     * @param {Object} obj Object literal to be copied.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
    _copyObject: function(obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
        var newObj = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
            key,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
            val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
        for(key in obj)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
            if(obj.hasOwnProperty(key))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
                val = obj[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
                if(typeof val === "object" && !Y_Lang.isArray(val))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
                    newObj[key] = this._copyObject(val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
                else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
                    newObj[key] = val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
        return newObj;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
     * Gets the default value for the `styles` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
     * @method _getDefaultStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
    _getDefaultStyles: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
        return {padding:{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
            top:0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
            right: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
            bottom: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
            left: 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
        }};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
Y.augment(Renderer, Y.Attribute);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
Y.Renderer = Renderer;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
 * The axis-base submodule contains functionality for the handling of axis data in a chart.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
 * @submodule axis-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
 * An abstract class that provides the core functionality used by the following classes:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
 * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
 *      <li>{{#crossLink "CategoryAxisBase"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
 *      <li>{{#crossLink "NumericAxisBase"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
 *      <li>{{#crossLink "StackedAxisBase"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
 *      <li>{{#crossLink "TimeAxisBase"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
 *      <li>{{#crossLink "CategoryAxis"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
 *      <li>{{#crossLink "NumericAxis"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
 *      <li>{{#crossLink "StackedAxis"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
 *      <li>{{#crossLink "TimeAxis"}}{{/crossLink}}</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
 *  </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
 * @class AxisBase
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
 * @extends Base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
 * @uses Renderer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
 * @param {Object} config (optional) Configuration parameters.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
 * @submodule axis-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
Y.AxisBase = Y.Base.create("axisBase", Y.Base, [Y.Renderer], {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
     * @method initializer
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
    initializer: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
        this.after("minimumChange", Y.bind(this._keyChangeHandler, this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
        this.after("maximumChange", Y.bind(this._keyChangeHandler, this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
        this.after("keysChange", this._keyChangeHandler);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
        this.after("dataProviderChange", this._dataProviderChangeHandler);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
     * Returns the value corresponding to the origin on the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
     * @method getOrigin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
    getOrigin: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
        return this.get("minimum");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
     * Handles changes to `dataProvider`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
     * @method _dataProviderChangeHandler
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
     * @param {Object} e Event object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
    _dataProviderChangeHandler: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
        var keyCollection = this.get("keyCollection").concat(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
            keys = this.get("keys"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
            i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
        if(keys)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
            for(i in keys)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
                if(keys.hasOwnProperty(i))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
                    delete keys[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
        if(keyCollection && keyCollection.length)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
            this.set("keys", keyCollection);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
        }
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 `Data`.
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
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
     * Constant used to generate unique id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
     * @property GUID
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
    GUID: "yuibaseaxis",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
     * Type of data used in `Axis`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
     * @property _type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
     * @readOnly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
    _type: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
     * Storage for `setMaximum` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
     * @property _setMaximum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
    _setMaximum: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
     * Storage for `setMinimum` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
     * @property _setMinimum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
    _setMinimum: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
     * Reference to data array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
     * @property _data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
     * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
    _data: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
     * Indicates whether the all data is up to date.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
     * @property _updateTotalDataFlag
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
     * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
    _updateTotalDataFlag: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
     * Storage for `dataReady` attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
     * @property _dataReady
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
     * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
     * @readOnly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
    _dataReady: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
     * Adds an array to the key hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
     * @method addKey
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
     * @param value Indicates what key to use in retrieving
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
     * the array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
    addKey: function (value)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
	{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
        this.set("keys", value);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
	},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
     * Gets an array of values based on a key.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
     * @method _getKeyArray
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
     * @param {String} key Value key associated with the data array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
     * @param {Array} data Array in which the data resides.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
     * @return Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
    _getKeyArray: function(key, data)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
        var i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
            obj,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
            keyArray = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
            len = data.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
        for(; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
            obj = data[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
            keyArray[i] = obj[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
        return keyArray;
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
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
     * Updates the total data array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
     * @method _updateTotalData
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
    _updateTotalData: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
		var keys = this.get("keys"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
            i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
        this._data = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
        for(i in keys)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
            if(keys.hasOwnProperty(i))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
                this._data = this._data.concat(keys[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
        this._updateTotalDataFlag = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
     * Removes an array from the key hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
     * @method removeKey
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
     * @param {String} value Indicates what key to use in removing from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
     * the hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
    removeKey: function(value)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
        var keys = this.get("keys");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
        if(keys.hasOwnProperty(value))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
            delete keys[value];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
            this._keyChangeHandler();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
     * Returns a value based of a key value and an index.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
     * @method getKeyValueAt
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
     * @param {String} key value used to look up the correct array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
     * @param {Number} index within the array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
    getKeyValueAt: function(key, index)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
        var value = NaN,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
            keys = this.get("keys");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
        if(keys[key] && Y_Lang.isNumber(parseFloat(keys[key][index])))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
            value = keys[key][index];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
        return parseFloat(value);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
     * Returns values based on key identifiers. When a string is passed as an argument, an array of values is returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
     * When an array of keys is passed as an argument, an object literal with an array of values mapped to each key is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
     * returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
     * @method getDataByKey
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
     * @param {String|Array} value value used to identify the array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
     * @return Array|Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
    getDataByKey: function (value)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
        var obj,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
            i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
            len,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
            key,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
            keys = this.get("keys");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
        if(Y_Lang.isArray(value))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
            obj = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
            len = value.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
            for(i = 0; i < len; i = i + 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
                key = value[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
                if(keys[key])
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
                    obj[key] = this.getDataByKey(key);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
        else if(keys[value])
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
            obj = keys[value];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
        else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
            obj = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
        return obj;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
     * Returns the total number of majorUnits that will appear on an axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
     * @method getTotalMajorUnits
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
    getTotalMajorUnits: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
        var units,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
            majorUnit = this.get("styles").majorUnit;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
        units = majorUnit.count;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
        return units;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
     * Gets the distance that the first and last ticks are offset from there respective
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
     * edges.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
     * @method getEdgeOffset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
     * @param {Number} ct Number of ticks on the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
     * @param {Number} l Length (in pixels) of the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
    getEdgeOffset: function(ct, l)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
        var edgeOffset;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
        if(this.get("calculateEdgeOffset")) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
            edgeOffset = (l/ct)/2;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
            edgeOffset = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
        return edgeOffset;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
     * Updates the `Axis` after a change in keys.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
     * @method _keyChangeHandler
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
     * @param {Object} e Event object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
    _keyChangeHandler: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
        this._updateMinAndMax();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
        this._updateTotalDataFlag = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
        this.fire("dataUpdate");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
     * Gets the default value for the `styles` attribute. Overrides
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
     * base implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
     * @method _getDefaultStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
    _getDefaultStyles: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
        var axisstyles = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
            majorUnit: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
                determinant:"count",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
                count:11,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
                distance:75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
        return axisstyles;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
     * Getter method for maximum attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
     * @method _maximumGetter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
    _maximumGetter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
        var max = this.get("dataMaximum"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
            min = this.get("minimum");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
        //If all values are zero, force a range so that the Axis and related series
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
        //will still render.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
        if(min === 0 && max === 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
            max = 10;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
        if(Y_Lang.isNumber(this._setMaximum))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
            max = this._setMaximum;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
        return parseFloat(max);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
     * Setter method for maximum attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
     * @method _maximumSetter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
     * @param {Object} value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
    _maximumSetter: function (value)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
        this._setMaximum = parseFloat(value);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
        return value;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   553
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   554
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   555
     * Getter method for minimum attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   556
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   557
     * @method _minimumGetter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   558
     * @return Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   559
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   560
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   561
    _minimumGetter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   562
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   563
        var min = this.get("dataMinimum");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   564
        if(Y_Lang.isNumber(this._setMinimum))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   565
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   566
            min = this._setMinimum;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   567
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   568
        return parseFloat(min);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   569
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   570
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   571
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   572
     * Setter method for minimum attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   573
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   574
     * @method _minimumSetter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   575
     * @param {Object} value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   576
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   577
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   578
    _minimumSetter: function(val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   579
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   580
        this._setMinimum = parseFloat(val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   581
        return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   582
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   583
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   584
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   585
     * Indicates whether or not the maximum attribute has been explicitly set.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   586
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   587
     * @method _getSetMax
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   588
     * @return Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   589
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   590
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   591
    _getSetMax: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   592
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   593
        return Y_Lang.isNumber(this._setMaximum);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   594
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   595
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   596
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   597
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   598
     * Returns and array of coordinates corresponding to an array of data values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   599
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   600
     * @method _getCoordsFromValues
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   601
     * @param {Number} min The minimum for the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   602
     * @param {Number} max The maximum for the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   603
     * @param {Number} length The distance that the axis spans.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   604
     * @param {Array} dataValues An array of values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   605
     * @param {Number} offset Value in which to offset the coordinates.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   606
     * @param {Boolean} reverse Indicates whether the coordinates should start from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   607
     * the end of an axis. Only used in the numeric implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   608
     * @return Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   609
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   610
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   611
    _getCoordsFromValues: function(min, max, length, dataValues, offset, reverse)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   612
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   613
        var i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   614
            valuecoords = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   615
            len = dataValues.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   616
        for(i = 0; i < len; i = i + 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   617
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   618
            valuecoords.push(this._getCoordFromValue.apply(this, [min, max, length, dataValues[i], offset, reverse]));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   619
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   620
        return valuecoords;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   621
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   622
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   623
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   624
     * Returns and array of data values based on the axis' range and number of values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   625
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   626
     * @method _getDataValuesByCount
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   627
     * @param {Number} count The number of values to be used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   628
     * @param {Number} min The minimum value of the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   629
     * @param {Number} max The maximum value of the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   630
     * @return Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   631
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   632
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   633
    _getDataValuesByCount: function(count, min, max)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   634
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   635
        var dataValues = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   636
            dataValue = min,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   637
            len = count - 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   638
            range = max - min,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   639
            increm = range/len,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   640
            i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   641
        for(i = 0; i < len; i = i + 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   642
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   643
            dataValues.push(dataValue);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   644
            dataValue = dataValue + increm;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   645
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   646
        dataValues.push(max);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   647
        return dataValues;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   648
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   649
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   650
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   651
     * Indicates whether or not the minimum attribute has been explicitly set.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   652
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   653
     * @method _getSetMin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   654
     * @return Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   655
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   656
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   657
    _getSetMin: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   658
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   659
        return Y_Lang.isNumber(this._setMinimum);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   660
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   661
}, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   662
    ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   663
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   664
         * Determines whether and offset is automatically calculated for the edges of the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   665
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   666
         * @attribute calculateEdgeOffset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   667
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   668
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   669
        calculateEdgeOffset: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   670
            value: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   671
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   672
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   673
        labelFunction: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   674
            valueFn: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   675
                return this.formatLabel;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   676
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   677
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   678
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   679
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   680
         * Hash of array identifed by a string value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   681
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   682
         * @attribute keys
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   683
         * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   684
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   685
        keys: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   686
            value: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   687
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   688
            setter: function(val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   689
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   690
                var keys = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   691
                    i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   692
                    len,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   693
                    data = this.get("dataProvider");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   694
                if(Y_Lang.isArray(val))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   695
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   696
                    len = val.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   697
                    for(i = 0; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   698
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   699
                        keys[val[i]] = this._getKeyArray(val[i], data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   700
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   702
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   703
                else if(Y_Lang.isString(val))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   704
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   705
                    keys = this.get("keys");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   706
                    keys[val] = this._getKeyArray(val, data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   707
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   708
                else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   709
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   710
                    for(i in val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   711
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   712
                        if(val.hasOwnProperty(i))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   713
                        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   714
                            keys[i] = this._getKeyArray(i, data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   715
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   716
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   717
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   718
                this._updateTotalDataFlag = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   719
                return keys;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   720
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   721
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   722
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   723
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   724
         *Returns the type of axis data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   725
         *  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   726
         *      <dt>time</dt><dd>Manages time data</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   727
         *      <dt>stacked</dt><dd>Manages stacked numeric data</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   728
         *      <dt>numeric</dt><dd>Manages numeric data</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   729
         *      <dt>category</dt><dd>Manages categorical data</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   730
         *  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   731
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   732
         * @attribute type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   733
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   734
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   735
        type:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   736
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   737
            readOnly: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   738
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   739
            getter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   740
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   741
                return this._type;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   742
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   743
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   744
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   745
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   746
         * Instance of `ChartDataProvider` that the class uses
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   747
         * to build its own data.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   748
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   749
         * @attribute dataProvider
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   750
         * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   751
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   752
        dataProvider:{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   753
            setter: function (value)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   754
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   755
                return value;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   756
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   757
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   758
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   759
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   760
         * The maximum value contained in the `data` array. Used for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   761
         * `maximum` when `autoMax` is true.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   762
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   763
         * @attribute dataMaximum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   764
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   765
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   766
        dataMaximum: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   767
            getter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   768
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   769
                if(!Y_Lang.isNumber(this._dataMaximum))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   770
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   771
                    this._updateMinAndMax();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   772
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   773
                return this._dataMaximum;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   774
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   775
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   776
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   777
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   778
         * The maximum value that will appear on an axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   779
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   780
         * @attribute maximum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   781
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   782
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   783
        maximum: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   784
            lazyAdd: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   785
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   786
            getter: "_maximumGetter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   787
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   788
            setter: "_maximumSetter"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   789
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   790
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   791
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   792
         * The minimum value contained in the `data` array. Used for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   793
         * `minimum` when `autoMin` is true.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   794
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   795
         * @attribute dataMinimum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   796
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   797
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   798
        dataMinimum: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   799
            getter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   800
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   801
                if(!Y_Lang.isNumber(this._dataMinimum))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   802
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   803
                    this._updateMinAndMax();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   804
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   805
                return this._dataMinimum;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   806
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   807
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   808
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   809
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   810
         * The minimum value that will appear on an axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   811
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   812
         * @attribute minimum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   813
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   814
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   815
        minimum: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   816
            lazyAdd: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   817
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   818
            getter: "_minimumGetter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   819
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   820
            setter: "_minimumSetter"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   821
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   822
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   823
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   824
         * Determines whether the maximum is calculated or explicitly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   825
         * set by the user.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   826
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   827
         * @attribute setMax
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   828
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   829
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   830
        setMax: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   831
            readOnly: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   832
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   833
            getter: "_getSetMax"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   834
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   835
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   836
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   837
         * Determines whether the minimum is calculated or explicitly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   838
         * set by the user.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   839
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   840
         * @attribute setMin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   841
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   842
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   843
        setMin: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   844
            readOnly: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   845
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   846
            getter: "_getSetMin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   847
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   848
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   849
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   850
         * Array of axis data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   851
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   852
         * @attribute data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   853
         * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   854
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   855
        data: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   856
            getter: function ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   857
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   858
                if(!this._data || this._updateTotalDataFlag)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   859
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   860
                    this._updateTotalData();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   861
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   862
                return this._data;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   863
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   864
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   865
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   866
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   867
         * Array containing all the keys in the axis.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   868
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   869
         * @attribute keyCollection
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   870
         * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   871
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   872
        keyCollection: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   873
            getter: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   874
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   875
                var keys = this.get("keys"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   876
                    i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   877
                    col = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   878
                for(i in keys)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   879
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   880
                    if(keys.hasOwnProperty(i))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   881
                    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   882
                        col.push(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   883
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   884
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   885
                return col;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   886
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   887
            readOnly: true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   888
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   889
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   890
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   891
         * Object which should have by the labelFunction
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   892
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   893
         * @attribute labelFunctionScope
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   894
         * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   895
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   896
        labelFunctionScope: {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   897
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   898
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   899
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   900
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   901
}, '@VERSION@', {"requires": ["classnamemanager", "datatype-number", "datatype-date", "base", "event-custom"]});