flectra/addons/web/static/src/js/libs/nvd3.js
flectra-admin 769eafb483 [INIT] Inception of Flectra from Odoo
Flectra is Forked from Odoo v11 commit : (6135e82d73)
2018-01-16 11:45:59 +05:30

46 lines
1.5 KiB
JavaScript

odoo.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;
};
});