|
|
|
@ -171,6 +171,7 @@ nv.interactiveGuideline = function() {
|
|
|
|
|
var mouseX = d3mouse[0];
|
|
|
|
|
var mouseY = d3mouse[1];
|
|
|
|
|
var subtractMargin = true;
|
|
|
|
|
var mouseOutAnyReason = false;
|
|
|
|
|
if (isMSIE) {
|
|
|
|
|
/*
|
|
|
|
|
D3.js (or maybe SVG.getScreenCTM) has a nasty bug in Internet Explorer 10.
|
|
|
|
@ -193,6 +194,9 @@ nv.interactiveGuideline = function() {
|
|
|
|
|
*/
|
|
|
|
|
if(d3.event.target.tagName !== "svg")
|
|
|
|
|
subtractMargin = false;
|
|
|
|
|
|
|
|
|
|
if (d3.event.target.className.baseVal.match("nv-legend"))
|
|
|
|
|
mouseOutAnyReason = true;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -207,6 +211,7 @@ nv.interactiveGuideline = function() {
|
|
|
|
|
if (mouseX < 0 || mouseY < 0
|
|
|
|
|
|| mouseX > availableWidth || mouseY > availableHeight
|
|
|
|
|
|| (d3.event.relatedTarget && d3.event.relatedTarget.ownerSVGElement === undefined)
|
|
|
|
|
|| mouseOutAnyReason
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (isMSIE) {
|
|
|
|
@ -465,6 +470,7 @@ window.nv.tooltip.* also has various helper methods.
|
|
|
|
|
container.node().innerHTML = newContent;
|
|
|
|
|
container.style("top",0).style("left",0).style("opacity",0);
|
|
|
|
|
container.selectAll("div, table, td, tr").classed(nvPointerEventsClass,true)
|
|
|
|
|
container.classed(nvPointerEventsClass,true);
|
|
|
|
|
return container.node();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -4800,9 +4806,11 @@ nv.models.indentedTree = function() {
|
|
|
|
|
});
|
|
|
|
|
seriesEnter.append('circle')
|
|
|
|
|
.style('stroke-width', 2)
|
|
|
|
|
.attr('class','nv-legend-symbol')
|
|
|
|
|
.attr('r', 5);
|
|
|
|
|
seriesEnter.append('text')
|
|
|
|
|
.attr('text-anchor', 'start')
|
|
|
|
|
.attr('class','nv-legend-text')
|
|
|
|
|
.attr('dy', '.32em')
|
|
|
|
|
.attr('dx', '8');
|
|
|
|
|
series.classed('disabled', function(d) { return d.disabled });
|
|
|
|
@ -8392,6 +8400,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
, yDomain
|
|
|
|
|
, xRange
|
|
|
|
|
, yRange
|
|
|
|
|
, transitionDuration = 250
|
|
|
|
|
, dispatch = d3.dispatch('chartClick', 'elementClick', 'elementDblClick', 'elementMouseover', 'elementMouseout')
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
@ -8505,7 +8514,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
groups.enter().append('g')
|
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
|
.style('fill-opacity', 1e-6);
|
|
|
|
|
d3.transition(groups.exit())
|
|
|
|
|
groups.exit().transition().duration(transitionDuration)
|
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
|
.style('fill-opacity', 1e-6)
|
|
|
|
|
.remove();
|
|
|
|
@ -8514,7 +8523,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
.classed('hover', function(d) { return d.hover })
|
|
|
|
|
.style('fill', function(d,i){ return color(d, i) })
|
|
|
|
|
.style('stroke', function(d,i){ return color(d, i) });
|
|
|
|
|
d3.transition(groups)
|
|
|
|
|
groups.transition().duration(transitionDuration)
|
|
|
|
|
.style('stroke-opacity', 1)
|
|
|
|
|
.style('fill-opacity', .75);
|
|
|
|
|
|
|
|
|
@ -8592,7 +8601,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
.attr('y', x.rangeBand() / (data.length * 2))
|
|
|
|
|
.attr('dy', '.32em')
|
|
|
|
|
.text(function(d,i) { return valueFormat(getY(d,i)) })
|
|
|
|
|
d3.transition(bars)
|
|
|
|
|
bars.transition().duration(transitionDuration)
|
|
|
|
|
//.delay(function(d,i) { return i * delay / data[0].values.length })
|
|
|
|
|
.select('text')
|
|
|
|
|
.attr('x', function(d,i) { return getY(d,i) < 0 ? -4 : y(getY(d,i)) - y(0) + 4 })
|
|
|
|
@ -8616,7 +8625,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (stacked)
|
|
|
|
|
d3.transition(bars)
|
|
|
|
|
bars.transition().duration(transitionDuration)
|
|
|
|
|
//.delay(function(d,i) { return i * delay / data[0].values.length })
|
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
|
//return 'translate(' + y(d.y0) + ',0)'
|
|
|
|
@ -8629,7 +8638,7 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
})
|
|
|
|
|
.attr('height', x.rangeBand() );
|
|
|
|
|
else
|
|
|
|
|
d3.transition(bars)
|
|
|
|
|
bars.transition().duration(transitionDuration)
|
|
|
|
|
//.delay(function(d,i) { return i * delay / data[0].values.length })
|
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
|
//TODO: stacked must be all positive or all negative, not both?
|
|
|
|
@ -8793,6 +8802,12 @@ nv.models.multiBarHorizontal = function() {
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
chart.transitionDuration = function(_) {
|
|
|
|
|
if (!arguments.length) return transitionDuration;
|
|
|
|
|
transitionDuration = _;
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -9219,6 +9234,13 @@ nv.models.multiBarHorizontalChart = function() {
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
chart.transitionDuration = function(_) {
|
|
|
|
|
if (!arguments.length) return multibar.transitionDuration();
|
|
|
|
|
multibar.transitionDuration(_);
|
|
|
|
|
xAxis.transitionDuration(_);
|
|
|
|
|
yAxis.transitionDuration(_);
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
//============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|