46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
flectra.define('web.nvd3.extensions', function () {
|
|
'use strict';
|
|
|
|
/**
|
|
* The nvd3 library extensions and fixes should be done here to avoid patching
|
|
* in place.
|
|
*/
|
|
|
|
nv.dev = false; // sets nvd3 library in production mode
|
|
|
|
// monkey patch nvd3 to allow removing eventhandler on windowresize events
|
|
// see https://github.com/novus/nvd3/pull/396 for more details
|
|
|
|
// Adds a resize listener to the window.
|
|
nv.utils.onWindowResize = function (fun) {
|
|
if (fun === null) return;
|
|
window.addEventListener('resize', fun);
|
|
};
|
|
|
|
// Backwards compatibility with current API.
|
|
nv.utils.windowResize = nv.utils.onWindowResize;
|
|
|
|
// Removes a resize listener from the window.
|
|
nv.utils.offWindowResize = function (fun) {
|
|
if (fun === null) return;
|
|
window.removeEventListener('resize', fun);
|
|
};
|
|
|
|
// monkey patch nvd3 to prevent crashes when user changes view and nvd3
|
|
// tries to remove tooltips after 500 ms... seriously nvd3, what were you
|
|
// thinking?
|
|
nv.tooltip.cleanup = function () {
|
|
$('.nvtooltip').remove();
|
|
};
|
|
|
|
// monkey patch nvd3 to prevent it to display a tooltip (position: absolute)
|
|
// with a negative `top`; with this patch the highest tooltip's position is
|
|
// still in the graph
|
|
var originalCalcTooltipPosition = nv.tooltip.calcTooltipPosition;
|
|
nv.tooltip.calcTooltipPosition = function () {
|
|
var container = originalCalcTooltipPosition.apply(this, arguments);
|
|
container.style.top = container.style.top.split('px')[0] < 0 ? 0 + 'px' : container.style.top;
|
|
return container;
|
|
};
|
|
});
|