| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  | import angular from 'angular'; | 
					
						
							| 
									
										
										
										
											2022-04-22 21:33:13 +08:00
										 |  |  | import $ from 'jquery'; | 
					
						
							| 
									
										
										
										
											2021-04-21 15:38:00 +08:00
										 |  |  | import { extend } from 'lodash'; | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-29 20:26:50 +08:00
										 |  |  | const $win = $(window); | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-04 23:02:32 +08:00
										 |  |  | $.fn.place_tt = (() => { | 
					
						
							| 
									
										
										
										
											2018-08-29 20:26:50 +08:00
										 |  |  |   const defaults = { | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  |     offset: 5, | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-20 14:59:48 +08:00
										 |  |  |   return function (this: any, x: number, y: number, opts: any) { | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  |     opts = $.extend(true, {}, defaults, opts); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-30 16:49:18 +08:00
										 |  |  |     return this.each(() => { | 
					
						
							| 
									
										
										
										
											2018-08-29 20:26:50 +08:00
										 |  |  |       const $tooltip = $(this); | 
					
						
							|  |  |  |       let width, height; | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       $tooltip.addClass('grafana-tooltip'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $('#tooltip').remove(); | 
					
						
							|  |  |  |       $tooltip.appendTo(document.body); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if (opts.compile) { | 
					
						
							|  |  |  |         angular | 
					
						
							|  |  |  |           .element(document) | 
					
						
							|  |  |  |           .injector() | 
					
						
							|  |  |  |           .invoke([ | 
					
						
							|  |  |  |             '$compile', | 
					
						
							|  |  |  |             '$rootScope', | 
					
						
							| 
									
										
										
										
											2018-09-04 23:02:32 +08:00
										 |  |  |             ($compile, $rootScope) => { | 
					
						
							| 
									
										
										
										
											2018-08-29 20:26:50 +08:00
										 |  |  |               const tmpScope = $rootScope.$new(true); | 
					
						
							| 
									
										
										
										
											2021-04-21 15:38:00 +08:00
										 |  |  |               extend(tmpScope, opts.scopeData); | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08: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 18:46:59 +08:00
										 |  |  |       width = $tooltip.outerWidth(true)!; | 
					
						
							|  |  |  |       height = $tooltip.outerHeight(true)!; | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08: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 18:46:59 +08: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-05 01:08:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       $tooltip.css('left', left > 0 ? left : 0); | 
					
						
							|  |  |  |       $tooltip.css('top', top > 0 ? top : 0); | 
					
						
							| 
									
										
										
										
											2018-05-17 20:24:49 +08:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | })(); |