Version 3.18.1
Show:

File: charts/js/TimeAxis.js

            /**
             * Provides functionality for drawing a time axis for use with a chart.
             *
             * @module charts
             * @submodule axis-time
             */
            /**
             * TimeAxis draws a time-based axis for a chart.
             *
             * @class TimeAxis
             * @constructor
             * @extends Axis
             * @uses TimeImpl
             * @param {Object} config (optional) Configuration parameters.
             * @submodule axis-time
             */
            Y.TimeAxis = Y.Base.create("timeAxis", Y.Axis, [Y.TimeImpl], {
                /**
                 * Calculates and returns a value based on the number of labels and the index of
                 * the current label.
                 *
                 * @method _getLabelByIndex
                 * @param {Number} i Index of the label.
                 * @param {Number} l Total number of labels.
                 * @return String
                 * @private
                 */
                _getLabelByIndex: function(i, l)
                {
                    var min = this.get("minimum"),
                        max = this.get("maximum"),
                        increm,
                        label;
                        l -= 1;
                    increm = ((max - min)/l) * i;
                    label = min + increm;
                    return label;
                },
            
                /**
                 * Returns an object literal containing and array of label values and an array of points.
                 *
                 * @method _getLabelData
                 * @param {Object} startPoint An object containing x and y values.
                 * @param {Number} edgeOffset Distance to offset coordinates.
                 * @param {Number} layoutLength Distance that the axis spans.
                 * @param {Number} count Number of labels.
                 * @param {String} direction Indicates whether the axis is horizontal or vertical.
                 * @param {Array} Array containing values for axis labels.
                 * @return Array
                 * @private
                 */
                _getLabelData: function(constantVal, staticCoord, dynamicCoord, min, max, edgeOffset, layoutLength, count, dataValues)
                {
                    var dataValue,
                        i,
                        points = [],
                        values = [],
                        point,
                        offset = edgeOffset;
                    dataValues = dataValues || this._getDataValuesByCount(count, min, max);
                    for(i = 0; i < count; i = i + 1)
                    {
                        dataValue = this._getNumber(dataValues[i]);
                        if(dataValue <= max && dataValue >= min)
                        {
                            point = {};
                            point[staticCoord] = constantVal;
                            point[dynamicCoord] = this._getCoordFromValue(
                                min,
                                max,
                                layoutLength,
                                dataValue,
                                offset
                            );
                            points.push(point);
                            values.push(dataValue);
                        }
                    }
                    return {
                        points: points,
                        values: values
                    };
                }
            });