|
|
|
@ -28,6 +28,8 @@ nv.models.linePlusBarChart = function() {
|
|
|
|
|
, x
|
|
|
|
|
, y1
|
|
|
|
|
, y2
|
|
|
|
|
, state = {}
|
|
|
|
|
, defaultState = null
|
|
|
|
|
, noData = "No Data Available."
|
|
|
|
|
, dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
|
|
|
|
|
;
|
|
|
|
@ -58,17 +60,16 @@ nv.models.linePlusBarChart = function() {
|
|
|
|
|
// Private Variables
|
|
|
|
|
//------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
var state = {},
|
|
|
|
|
showTooltip = function(e, offsetElement) {
|
|
|
|
|
var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
|
|
|
|
|
top = e.pos[1] + ( offsetElement.offsetTop || 0),
|
|
|
|
|
x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
|
|
|
|
|
y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
|
|
|
|
|
content = tooltip(e.series.key, x, y, e, chart);
|
|
|
|
|
var showTooltip = function(e, offsetElement) {
|
|
|
|
|
var left = e.pos[0] + ( offsetElement.offsetLeft || 0 ),
|
|
|
|
|
top = e.pos[1] + ( offsetElement.offsetTop || 0),
|
|
|
|
|
x = xAxis.tickFormat()(lines.x()(e.point, e.pointIndex)),
|
|
|
|
|
y = (e.series.bar ? y1Axis : y2Axis).tickFormat()(lines.y()(e.point, e.pointIndex)),
|
|
|
|
|
content = tooltip(e.series.key, x, y, e, chart);
|
|
|
|
|
|
|
|
|
|
nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
nv.tooltip.show([left, top], content, e.value < 0 ? 'n' : 's', null, offsetElement);
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
//------------------------------------------------------------
|
|
|
|
|
|
|
|
|
@ -90,6 +91,16 @@ nv.models.linePlusBarChart = function() {
|
|
|
|
|
//set state.disabled
|
|
|
|
|
state.disabled = data.map(function(d) { return !!d.disabled });
|
|
|
|
|
|
|
|
|
|
if (!defaultState) {
|
|
|
|
|
var key;
|
|
|
|
|
defaultState = {};
|
|
|
|
|
for (key in state) {
|
|
|
|
|
if (state[key] instanceof Array)
|
|
|
|
|
defaultState[key] = state[key].slice(0);
|
|
|
|
|
else
|
|
|
|
|
defaultState[key] = state[key];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//------------------------------------------------------------
|
|
|
|
|
// Display No Data message if there's nothing to show.
|
|
|
|
@ -200,7 +211,7 @@ nv.models.linePlusBarChart = function() {
|
|
|
|
|
.datum(dataBars.length ? dataBars : [{values:[]}])
|
|
|
|
|
|
|
|
|
|
var linesWrap = g.select('.nv-linesWrap')
|
|
|
|
|
.datum(!dataLines[0].disabled ? dataLines : [{values:[]}] );
|
|
|
|
|
.datum(dataLines[0] && !dataLines[0].disabled ? dataLines : [{values:[]}] );
|
|
|
|
|
//.datum(!dataLines[0].disabled ? dataLines : [{values:dataLines[0].values.map(function(d) { return [d[0], null] }) }] );
|
|
|
|
|
|
|
|
|
|
d3.transition(barsWrap).call(bars);
|
|
|
|
@ -412,6 +423,12 @@ nv.models.linePlusBarChart = function() {
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
chart.defaultState = function(_) {
|
|
|
|
|
if (!arguments.length) return defaultState;
|
|
|
|
|
defaultState = _;
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
chart.noData = function(_) {
|
|
|
|
|
if (!arguments.length) return noData;
|
|
|
|
|
noData = _;
|
|
|
|
|