Вход Регистрация
Файл: templates/backend/default/assets/plugins/jquery-ricksaw-chart/js/Rickshaw.Graph.Renderer.Bar.js
Строк: 125
<?php
Rickshaw
.namespace('Rickshaw.Graph.Renderer.Bar');

Rickshaw.Graph.Renderer.Bar Rickshaw.Class.createRickshaw.Graph.Renderer, {

    
name'bar',

    
defaults: function($super) {

        var 
defaults Rickshaw.extend$super(), {
            
gapSize0.05,
            
unstackfalse
        
} );

        
delete defaults.tension;
        return 
defaults;
    },

    
initialize: function($superargs) {
        
args args || {};
        
this.gapSize args.gapSize || this.gapSize;
        
$super(args);
    },

    
domain: function($super) {

        var 
domain $super();

        var 
frequentInterval this._frequentInterval(this.graph.stackedData.slice(-1).shift());
        
domain.x[1] += Number(frequentInterval.magnitude);

        return 
domain;
    },

    
barWidth: function(series) {

        var 
frequentInterval this._frequentInterval(series.stack);
        var 
barWidth this.graph.x(series.stack[0].frequentInterval.magnitude * (this.gapSize)); 

        return 
barWidth;
    },

    
render: function(args) {

        
args args || {};

        var 
graph this.graph;
        var 
series args.series || graph.series;

        var 
vis args.vis || graph.vis;
        
vis.selectAll('*').remove();

        var 
barWidth this.barWidth(series.active()[0]);
        var 
barXOffset 0;

        var 
activeSeriesCount series.filter( function(s) { return !s.disabled; } ).length;
        var 
seriesBarWidth this.unstack barWidth activeSeriesCount barWidth;

        var 
transform = function(d) {
            
// add a matrix transform for negative values
            
var matrix = [ 100, (d.? -1), 0, (d.graph.y.magnitude(Math.abs(d.y)) * 0) ];
            return 
"matrix(" matrix.join(',') + ")";
        };

        
series.forEach( function(series) {

            if (
series.disabled) return;

            var 
barWidth this.barWidth(series);

            var 
nodes vis.selectAll("path")
                .
data(series.stack.filter( function(d) { return d.!== null } ))
                .
enter().append("svg:rect")
                .
attr("x", function(d) { return graph.x(d.x) + barXOffset })
                .
attr("y", function(d) { return (graph.y(d.y0 Math.abs(d.y))) * (d.? -) })
                .
attr("width"seriesBarWidth)
                .
attr("height", function(d) { return graph.y.magnitude(Math.abs(d.y)) })
                .
attr("transform"transform);

            Array.
prototype.forEach.call(nodes[0], function(n) {
                
n.setAttribute('fill'series.color);
            } );

            if (
this.unstackbarXOffset += seriesBarWidth;

        }, 
this );
    },

    
_frequentInterval: function(data) {

        var 
intervalCounts = {};

        for (var 
0data.length 1i++) {
            var 
interval data[1].data[i].x;
            
intervalCounts[interval] = intervalCounts[interval] || 0;
            
intervalCounts[interval]++;
        }

        var 
frequentInterval = { count0magnitude};

        
Rickshaw.keys(intervalCounts).forEach( function(i) {
            if (
frequentInterval.count intervalCounts[i]) {
                
frequentInterval = {
                    
countintervalCounts[i],
                    
magnitudei
                
};
            }
        } );

        return 
frequentInterval;
    }
} );
?>
Онлайн: 0
Реклама