mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Angular: Option to disable angular support and isolate angular dependencies (#45421)
* Angular: Initial setting that disables angular, load angular support in separate chunk * Load angular panels on demand * Load alerting in separate chunk only when angularSupportEnabled * progress, do not export core_module if angular disabled * Progress * Update public/app/features/plugins/built_in_plugins.ts Co-authored-by: Ryan McKinley <ryantxu@gmail.com> * Removing remaining usage of angular from outside angular app (not counting plugins) * Update config and docs * Fix sample.ini * Update public/app/features/alerting/AlertTab.tsx Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com> * Fixing prettier issue Co-authored-by: Ryan McKinley <ryantxu@gmail.com> Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
This commit is contained in:
52
public/app/angular/jquery_extended.ts
Normal file
52
public/app/angular/jquery_extended.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import $ from 'jquery';
|
||||
import angular from 'angular';
|
||||
import { extend } from 'lodash';
|
||||
|
||||
const $win = $(window);
|
||||
|
||||
$.fn.place_tt = (() => {
|
||||
const defaults = {
|
||||
offset: 5,
|
||||
};
|
||||
|
||||
return function (this: any, x: number, y: number, opts: any) {
|
||||
opts = $.extend(true, {}, defaults, opts);
|
||||
|
||||
return this.each(() => {
|
||||
const $tooltip = $(this);
|
||||
let width, height;
|
||||
|
||||
$tooltip.addClass('grafana-tooltip');
|
||||
|
||||
$('#tooltip').remove();
|
||||
$tooltip.appendTo(document.body);
|
||||
|
||||
if (opts.compile) {
|
||||
angular
|
||||
.element(document)
|
||||
.injector()
|
||||
.invoke([
|
||||
'$compile',
|
||||
'$rootScope',
|
||||
($compile, $rootScope) => {
|
||||
const tmpScope = $rootScope.$new(true);
|
||||
extend(tmpScope, opts.scopeData);
|
||||
|
||||
$compile($tooltip)(tmpScope);
|
||||
tmpScope.$digest();
|
||||
tmpScope.$destroy();
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
width = $tooltip.outerWidth(true)!;
|
||||
height = $tooltip.outerHeight(true)!;
|
||||
|
||||
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;
|
||||
|
||||
$tooltip.css('left', left > 0 ? left : 0);
|
||||
$tooltip.css('top', top > 0 ? top : 0);
|
||||
});
|
||||
};
|
||||
})();
|
||||
Reference in New Issue
Block a user