%PDF- %PDF-
Direktori : /home/riacommer/public_html/admin/vendor/rickshaw/src/js/ |
Current File : /home/riacommer/public_html/admin/vendor/rickshaw/src/js/Rickshaw.Graph.Axis.X.js |
Rickshaw.namespace('Rickshaw.Graph.Axis.X'); Rickshaw.Graph.Axis.X = function(args) { var self = this; var berthRate = 0.10; this.initialize = function(args) { this.graph = args.graph; this.orientation = args.orientation || 'top'; this.pixelsPerTick = args.pixelsPerTick || 75; if (args.ticks) this.staticTicks = args.ticks; if (args.tickValues) this.tickValues = args.tickValues; this.tickSize = args.tickSize || 4; this.ticksTreatment = args.ticksTreatment || 'plain'; if (args.element) { this.element = args.element; this._discoverSize(args.element, args); this.vis = d3.select(args.element) .append("svg:svg") .attr('height', this.height) .attr('width', this.width) .attr('class', 'rickshaw_graph x_axis_d3'); this.element = this.vis[0][0]; this.element.style.position = 'relative'; this.setSize({ width: args.width, height: args.height }); } else { this.vis = this.graph.vis; } this.graph.onUpdate( function() { self.render() } ); }; this.setSize = function(args) { args = args || {}; if (!this.element) return; this._discoverSize(this.element.parentNode, args); this.vis .attr('height', this.height) .attr('width', this.width * (1 + berthRate)); var berth = Math.floor(this.width * berthRate / 2); this.element.style.left = -1 * berth + 'px'; }; this.render = function() { if (this._renderWidth !== undefined && this.graph.width !== this._renderWidth) this.setSize({ auto: true }); var axis = d3.svg.axis().scale(this.graph.x).orient(this.orientation); axis.tickFormat( args.tickFormat || function(x) { return x } ); if (this.tickValues) axis.tickValues(this.tickValues); this.ticks = this.staticTicks || Math.floor(this.graph.width / this.pixelsPerTick); var berth = Math.floor(this.width * berthRate / 2) || 0; var transform; if (this.orientation == 'top') { var yOffset = this.height || this.graph.height; transform = 'translate(' + berth + ',' + yOffset + ')'; } else { transform = 'translate(' + berth + ', 0)'; } if (this.element) { this.vis.selectAll('*').remove(); } this.vis .append("svg:g") .attr("class", ["x_ticks_d3", this.ticksTreatment].join(" ")) .attr("transform", transform) .call(axis.ticks(this.ticks).tickSubdivide(0).tickSize(this.tickSize)); var gridSize = (this.orientation == 'bottom' ? 1 : -1) * this.graph.height; this.graph.vis .append("svg:g") .attr("class", "x_grid_d3") .call(axis.ticks(this.ticks).tickSubdivide(0).tickSize(gridSize)) .selectAll('text') .each(function() { this.parentNode.setAttribute('data-x-value', this.textContent) }); this._renderHeight = this.graph.height; }; this._discoverSize = function(element, args) { if (typeof window !== 'undefined') { var style = window.getComputedStyle(element, null); var elementHeight = parseInt(style.getPropertyValue('height'), 10); if (!args.auto) { var elementWidth = parseInt(style.getPropertyValue('width'), 10); } } this.width = (args.width || elementWidth || this.graph.width) * (1 + berthRate); this.height = args.height || elementHeight || 40; }; this.initialize(args); };