2018-05-17 07:24:49 -05:00
|
|
|
import angular from 'angular';
|
2022-04-22 08:33:13 -05:00
|
|
|
import $ from 'jquery';
|
2021-04-21 02:38:00 -05:00
|
|
|
import { extend } from 'lodash';
|
2018-05-17 07:24:49 -05:00
|
|
|
|
2018-08-29 07:26:50 -05:00
|
|
|
const $win = $(window);
|
2018-05-17 07:24:49 -05:00
|
|
|
|
2018-09-04 10:02:32 -05:00
|
|
|
$.fn.place_tt = (() => {
|
2018-08-29 07:26:50 -05:00
|
|
|
const defaults = {
|
2018-05-17 07:24:49 -05:00
|
|
|
offset: 5,
|
|
|
|
};
|
|
|
|
|
2021-01-20 00:59:48 -06:00
|
|
|
return function (this: any, x: number, y: number, opts: any) {
|
2018-05-17 07:24:49 -05:00
|
|
|
opts = $.extend(true, {}, defaults, opts);
|
|
|
|
|
2018-08-30 03:49:18 -05:00
|
|
|
return this.each(() => {
|
2018-08-29 07:26:50 -05:00
|
|
|
const $tooltip = $(this);
|
|
|
|
let width, height;
|
2018-05-17 07:24:49 -05:00
|
|
|
|
|
|
|
$tooltip.addClass('grafana-tooltip');
|
|
|
|
|
|
|
|
$('#tooltip').remove();
|
|
|
|
$tooltip.appendTo(document.body);
|
|
|
|
|
|
|
|
if (opts.compile) {
|
|
|
|
angular
|
|
|
|
.element(document)
|
|
|
|
.injector()
|
|
|
|
.invoke([
|
|
|
|
'$compile',
|
|
|
|
'$rootScope',
|
2018-09-04 10:02:32 -05:00
|
|
|
($compile, $rootScope) => {
|
2018-08-29 07:26:50 -05:00
|
|
|
const tmpScope = $rootScope.$new(true);
|
2021-04-21 02:38:00 -05:00
|
|
|
extend(tmpScope, opts.scopeData);
|
2018-05-17 07:24:49 -05:00
|
|
|
|
|
|
|
$compile($tooltip)(tmpScope);
|
|
|
|
tmpScope.$digest();
|
|
|
|
tmpScope.$destroy();
|
|
|
|
},
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
Chore: Fix all Typescript strict null errors (#26204)
* Chore: Fix typescript strict null errors
* Added new limit
* Fixed ts issue
* fixed tests
* trying to fix type inference
* Fixing more ts errors
* Revert tsconfig option
* Fix
* Fixed code
* More fixes
* fix tests
* Updated snapshot
* Chore: More ts strict null fixes
* More fixes in some really messed up azure config components
* More fixes, current count: 441
* 419
* More fixes
* Fixed invalid initial state in explore
* Fixing tests
* Fixed tests
* Explore fix
* More fixes
* Progress
* Sub 300
* Now at 218
* Progress
* Update
* Progress
* Updated tests
* at 159
* fixed tests
* Progress
* YAy blow 100! at 94
* 10,9,8,7,6,5,4,3,2,1... lift off
* Fixed tests
* Fixed more type errors
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-07-10 05:46:59 -05:00
|
|
|
width = $tooltip.outerWidth(true)!;
|
|
|
|
height = $tooltip.outerHeight(true)!;
|
2018-05-17 07:24:49 -05:00
|
|
|
|
Chore: Fix all Typescript strict null errors (#26204)
* Chore: Fix typescript strict null errors
* Added new limit
* Fixed ts issue
* fixed tests
* trying to fix type inference
* Fixing more ts errors
* Revert tsconfig option
* Fix
* Fixed code
* More fixes
* fix tests
* Updated snapshot
* Chore: More ts strict null fixes
* More fixes in some really messed up azure config components
* More fixes, current count: 441
* 419
* More fixes
* Fixed invalid initial state in explore
* Fixing tests
* Fixed tests
* Explore fix
* More fixes
* Progress
* Sub 300
* Now at 218
* Progress
* Update
* Progress
* Updated tests
* at 159
* fixed tests
* Progress
* YAy blow 100! at 94
* 10,9,8,7,6,5,4,3,2,1... lift off
* Fixed tests
* Fixed more type errors
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-07-10 05:46:59 -05:00
|
|
|
const left = x + opts.offset + width > $win.width()! ? x - opts.offset - width : x + opts.offset;
|
|
|
|
const top = y + opts.offset + height > $win.height()! ? y - opts.offset - height : y + opts.offset;
|
2019-12-04 11:08:50 -06:00
|
|
|
|
|
|
|
$tooltip.css('left', left > 0 ? left : 0);
|
|
|
|
$tooltip.css('top', top > 0 ? top : 0);
|
2018-05-17 07:24:49 -05:00
|
|
|
});
|
|
|
|
};
|
|
|
|
})();
|