grafana/public/app/components/extend-jquery.js

48 lines
1.2 KiB
JavaScript

define(['jquery', 'angular', 'lodash'],
function ($, angular, _) {
'use strict';
/**
* jQuery extensions
*/
var $win = $(window);
$.fn.place_tt = (function () {
var defaults = {
offset: 5,
};
return function (x, y, opts) {
opts = $.extend(true, {}, defaults, opts);
return this.each(function () {
var $tooltip = $(this), width, height;
$tooltip.addClass('grafana-tooltip');
$("#tooltip").remove();
$tooltip.appendTo(document.body);
if (opts.compile) {
angular.element(document).injector().invoke(function($compile, $rootScope) {
var tmpScope = $rootScope.$new(true);
_.extend(tmpScope, opts.scopeData);
$compile($tooltip)(tmpScope);
tmpScope.$digest();
//tmpScope.$destroy();
});
}
width = $tooltip.outerWidth(true);
height = $tooltip.outerHeight(true);
$tooltip.css('left', x + opts.offset + width > $win.width() ? x - opts.offset - width : x + opts.offset);
$tooltip.css('top', y + opts.offset + height > $win.height() ? y - opts.offset - height : y + opts.offset);
});
};
})();
return $;
});