mirror of https://github.com/grafana/grafana.git
				
				
				
			Unify tooltip options across visualizations (#33892)
* Unify tooltip options across visualizations * Update tests * use addTooltipOptions in piechart Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
This commit is contained in:
		
							parent
							
								
									752a0f3a65
								
							
						
					
					
						commit
						deeef321d3
					
				|  | @ -137,7 +137,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -250,7 +250,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -363,7 +363,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -517,7 +517,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -619,7 +619,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -722,7 +722,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -825,7 +825,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1028,7 +1028,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "multi" |           "mode": "multi" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1336,7 +1336,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1591,7 +1591,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1717,7 +1717,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1895,7 +1895,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2078,7 +2078,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -97,7 +97,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -186,7 +186,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -275,7 +275,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -363,7 +363,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -452,7 +452,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -541,7 +541,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -105,7 +105,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -200,7 +200,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -295,7 +295,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -390,7 +390,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -485,7 +485,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -580,7 +580,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -675,7 +675,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -770,7 +770,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -865,7 +865,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -85,7 +85,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -187,7 +187,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -297,7 +297,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -425,7 +425,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -527,7 +527,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -637,7 +637,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -822,7 +822,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -983,7 +983,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1087,7 +1087,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -107,7 +107,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -227,7 +227,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -347,7 +347,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -467,7 +467,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -587,7 +587,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -707,7 +707,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -827,7 +827,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -951,7 +951,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1075,7 +1075,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1199,7 +1199,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1323,7 +1323,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1447,7 +1447,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1571,7 +1571,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1695,7 +1695,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1815,7 +1815,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1936,7 +1936,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2057,7 +2057,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2180,7 +2180,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -80,7 +80,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -184,7 +184,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -289,7 +289,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -393,7 +393,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -490,7 +490,7 @@ | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "stacking": "none", |         "stacking": "none", | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -587,7 +587,7 @@ | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "stacking": "none", |         "stacking": "none", | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -684,7 +684,7 @@ | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "stacking": "none", |         "stacking": "none", | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -843,7 +843,7 @@ | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "stacking": "none", |         "stacking": "none", | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -199,7 +199,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -398,7 +398,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -597,7 +597,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -797,7 +797,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1003,7 +1003,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1208,7 +1208,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1245,4 +1245,4 @@ | ||||||
|   "title": "Panel Tests - GraphNG Thresholds", |   "title": "Panel Tests - GraphNG Thresholds", | ||||||
|   "uid": "6HMMh4rMz", |   "uid": "6HMMh4rMz", | ||||||
|   "version": 2 |   "version": 2 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -86,7 +86,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -157,7 +157,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -228,7 +228,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -299,7 +299,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -370,7 +370,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -441,7 +441,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -87,7 +87,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -166,7 +166,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -245,7 +245,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -324,7 +324,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -403,7 +403,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -482,7 +482,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -562,7 +562,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -642,7 +642,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -721,7 +721,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -122,7 +122,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -246,7 +246,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -370,7 +370,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -494,7 +494,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -618,7 +618,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -742,7 +742,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -866,7 +866,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -990,7 +990,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1193,7 +1193,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1473,7 +1473,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "right" |           "placement": "right" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1608,7 +1608,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1746,7 +1746,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -1884,7 +1884,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2022,7 +2022,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2188,7 +2188,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2328,7 +2328,7 @@ | ||||||
|           "isVisible": false, |           "isVisible": false, | ||||||
|           "placement": "right" |           "placement": "right" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2482,7 +2482,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2635,7 +2635,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "right" |           "placement": "right" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2777,7 +2777,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2885,7 +2885,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "multi" |           "mode": "multi" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -2992,7 +2992,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "none" |           "mode": "none" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -3100,7 +3100,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "multi" |           "mode": "multi" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -3224,7 +3224,7 @@ | ||||||
|           "isVisible": true, |           "isVisible": true, | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -3363,7 +3363,7 @@ | ||||||
|           "displayMode": "hidden", |           "displayMode": "hidden", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -81,7 +81,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -174,7 +174,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -304,7 +304,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -410,7 +410,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -514,7 +514,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -93,7 +93,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -206,7 +206,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -352,7 +352,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -450,7 +450,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  | @ -562,7 +562,7 @@ | ||||||
|           "displayMode": "list", |           "displayMode": "list", | ||||||
|           "placement": "bottom" |           "placement": "bottom" | ||||||
|         }, |         }, | ||||||
|         "tooltipOptions": { |         "tooltip": { | ||||||
|           "mode": "single" |           "mode": "single" | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
| export * from './axis'; | export * from './axis'; | ||||||
| export * from './hideSeries'; | export * from './hideSeries'; | ||||||
| export * from './legend'; | export * from './legend'; | ||||||
|  | export * from './tooltip'; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | import { OptionsWithTooltip } from '../models.gen'; | ||||||
|  | import { PanelOptionsEditorBuilder } from '@grafana/data'; | ||||||
|  | 
 | ||||||
|  | export function addTooltipOptions<T extends OptionsWithTooltip>(builder: PanelOptionsEditorBuilder<T>) { | ||||||
|  |   builder.addRadio({ | ||||||
|  |     path: 'tooltip.mode', | ||||||
|  |     name: 'Tooltip mode', | ||||||
|  |     category: ['Legend'], | ||||||
|  |     description: '', | ||||||
|  |     defaultValue: 'single', | ||||||
|  |     settings: { | ||||||
|  |       options: [ | ||||||
|  |         { value: 'single', label: 'Single' }, | ||||||
|  |         { value: 'multi', label: 'All' }, | ||||||
|  |         { value: 'none', label: 'Hidden' }, | ||||||
|  |       ], | ||||||
|  |     }, | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| // TODO: this should be generated with cue
 | // TODO: this should be generated with cue
 | ||||||
| 
 | 
 | ||||||
| import { VizLegendOptions } from '../components'; | import { VizLegendOptions, VizTooltipOptions } from '../components'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * @alpha |  * @alpha | ||||||
|  | @ -8,3 +8,7 @@ import { VizLegendOptions } from '../components'; | ||||||
| export interface OptionsWithLegend { | export interface OptionsWithLegend { | ||||||
|   legend: VizLegendOptions; |   legend: VizLegendOptions; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export interface OptionsWithTooltip { | ||||||
|  |   tooltip: VizTooltipOptions; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -92,7 +92,7 @@ exports[`DashboardPage Dashboard init completed  Should render dashboard grid 1` | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  | @ -228,7 +228,7 @@ exports[`DashboardPage Dashboard init completed  Should render dashboard grid 1` | ||||||
|                 ], |                 ], | ||||||
|                 "refresh": undefined, |                 "refresh": undefined, | ||||||
|                 "revision": undefined, |                 "revision": undefined, | ||||||
|                 "schemaVersion": 29, |                 "schemaVersion": 30, | ||||||
|                 "snapshot": undefined, |                 "snapshot": undefined, | ||||||
|                 "style": "dark", |                 "style": "dark", | ||||||
|                 "tags": Array [], |                 "tags": Array [], | ||||||
|  | @ -334,7 +334,7 @@ exports[`DashboardPage Dashboard init completed  Should render dashboard grid 1` | ||||||
|               ], |               ], | ||||||
|               "refresh": undefined, |               "refresh": undefined, | ||||||
|               "revision": undefined, |               "revision": undefined, | ||||||
|               "schemaVersion": 29, |               "schemaVersion": 30, | ||||||
|               "snapshot": undefined, |               "snapshot": undefined, | ||||||
|               "style": "dark", |               "style": "dark", | ||||||
|               "tags": Array [], |               "tags": Array [], | ||||||
|  | @ -462,7 +462,7 @@ exports[`DashboardPage When dashboard has editview url state should render setti | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  | @ -598,7 +598,7 @@ exports[`DashboardPage When dashboard has editview url state should render setti | ||||||
|                 ], |                 ], | ||||||
|                 "refresh": undefined, |                 "refresh": undefined, | ||||||
|                 "revision": undefined, |                 "revision": undefined, | ||||||
|                 "schemaVersion": 29, |                 "schemaVersion": 30, | ||||||
|                 "snapshot": undefined, |                 "snapshot": undefined, | ||||||
|                 "style": "dark", |                 "style": "dark", | ||||||
|                 "tags": Array [], |                 "tags": Array [], | ||||||
|  | @ -704,7 +704,7 @@ exports[`DashboardPage When dashboard has editview url state should render setti | ||||||
|               ], |               ], | ||||||
|               "refresh": undefined, |               "refresh": undefined, | ||||||
|               "revision": undefined, |               "revision": undefined, | ||||||
|               "schemaVersion": 29, |               "schemaVersion": 30, | ||||||
|               "snapshot": undefined, |               "snapshot": undefined, | ||||||
|               "style": "dark", |               "style": "dark", | ||||||
|               "tags": Array [], |               "tags": Array [], | ||||||
|  | @ -814,7 +814,7 @@ exports[`DashboardPage When dashboard has editview url state should render setti | ||||||
|         ], |         ], | ||||||
|         "refresh": undefined, |         "refresh": undefined, | ||||||
|         "revision": undefined, |         "revision": undefined, | ||||||
|         "schemaVersion": 29, |         "schemaVersion": 30, | ||||||
|         "snapshot": undefined, |         "snapshot": undefined, | ||||||
|         "style": "dark", |         "style": "dark", | ||||||
|         "tags": Array [], |         "tags": Array [], | ||||||
|  |  | ||||||
|  | @ -244,7 +244,7 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = ` | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  | @ -505,7 +505,7 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = ` | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  | @ -766,7 +766,7 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = ` | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  | @ -1027,7 +1027,7 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = ` | ||||||
|           ], |           ], | ||||||
|           "refresh": undefined, |           "refresh": undefined, | ||||||
|           "revision": undefined, |           "revision": undefined, | ||||||
|           "schemaVersion": 29, |           "schemaVersion": 30, | ||||||
|           "snapshot": undefined, |           "snapshot": undefined, | ||||||
|           "style": "dark", |           "style": "dark", | ||||||
|           "tags": Array [], |           "tags": Array [], | ||||||
|  |  | ||||||
|  | @ -162,7 +162,7 @@ describe('DashboardModel', () => { | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('dashboard schema version should be set to latest', () => { |     it('dashboard schema version should be set to latest', () => { | ||||||
|       expect(model.schemaVersion).toBe(29); |       expect(model.schemaVersion).toBe(30); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     it('graph thresholds should be migrated', () => { |     it('graph thresholds should be migrated', () => { | ||||||
|  | @ -1068,6 +1068,43 @@ describe('DashboardModel', () => { | ||||||
|       expect(model.templating.list[13].refresh).toBeUndefined(); |       expect(model.templating.list[13].refresh).toBeUndefined(); | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   describe('when migrating tooltipOptions to tooltip', () => { | ||||||
|  |     it('should rename options.tooltipOptions to options.tooltip', () => { | ||||||
|  |       const model = new DashboardModel({ | ||||||
|  |         panels: [ | ||||||
|  |           { | ||||||
|  |             type: 'timeseries', | ||||||
|  |             legend: true, | ||||||
|  |             options: { | ||||||
|  |               tooltipOptions: { mode: 'multi' }, | ||||||
|  |             }, | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             type: 'xychart', | ||||||
|  |             legend: true, | ||||||
|  |             options: { | ||||||
|  |               tooltipOptions: { mode: 'single' }, | ||||||
|  |             }, | ||||||
|  |           }, | ||||||
|  |         ], | ||||||
|  |       }); | ||||||
|  |       expect(model.panels[0].options).toMatchInlineSnapshot(` | ||||||
|  |         Object { | ||||||
|  |           "tooltip": Object { | ||||||
|  |             "mode": "multi", | ||||||
|  |           }, | ||||||
|  |         } | ||||||
|  |       `);
 | ||||||
|  |       expect(model.panels[1].options).toMatchInlineSnapshot(` | ||||||
|  |         Object { | ||||||
|  |           "tooltip": Object { | ||||||
|  |             "mode": "single", | ||||||
|  |           }, | ||||||
|  |         } | ||||||
|  |       `);
 | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| function createRow(options: any, panelDescriptions: any[]) { | function createRow(options: any, panelDescriptions: any[]) { | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ export class DashboardMigrator { | ||||||
|     let i, j, k, n; |     let i, j, k, n; | ||||||
|     const oldVersion = this.dashboard.schemaVersion; |     const oldVersion = this.dashboard.schemaVersion; | ||||||
|     const panelUpgrades = []; |     const panelUpgrades = []; | ||||||
|     this.dashboard.schemaVersion = 29; |     this.dashboard.schemaVersion = 30; | ||||||
| 
 | 
 | ||||||
|     if (oldVersion === this.dashboard.schemaVersion) { |     if (oldVersion === this.dashboard.schemaVersion) { | ||||||
|       return; |       return; | ||||||
|  | @ -610,6 +610,10 @@ export class DashboardMigrator { | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     if (oldVersion < 30) { | ||||||
|  |       panelUpgrades.push(migrateTooltipOptions); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (panelUpgrades.length === 0) { |     if (panelUpgrades.length === 0) { | ||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  | @ -885,3 +889,15 @@ function migrateSinglestat(panel: PanelModel) { | ||||||
|     panel.changePlugin(statPanelPlugin); |     panel.changePlugin(statPanelPlugin); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | function migrateTooltipOptions(panel: PanelModel) { | ||||||
|  |   if (panel.type === 'timeseries' || panel.type === 'xychart') { | ||||||
|  |     if (panel.options.tooltipOptions) { | ||||||
|  |       panel.options = { | ||||||
|  |         ...panel.options, | ||||||
|  |         tooltip: panel.options.tooltipOptions, | ||||||
|  |       }; | ||||||
|  |       delete panel.options.tooltipOptions; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -59,21 +59,9 @@ export const plugin = new PanelPlugin<PieChartOptions>(PieChartPanel) | ||||||
|             { value: PieChartLabels.Value, label: 'Value' }, |             { value: PieChartLabels.Value, label: 'Value' }, | ||||||
|           ], |           ], | ||||||
|         }, |         }, | ||||||
|       }) |  | ||||||
|       .addRadio({ |  | ||||||
|         name: 'Tooltip mode', |  | ||||||
|         path: 'tooltip.mode', |  | ||||||
|         description: '', |  | ||||||
|         defaultValue: 'single', |  | ||||||
|         settings: { |  | ||||||
|           options: [ |  | ||||||
|             { value: 'single', label: 'Single' }, |  | ||||||
|             { value: 'multi', label: 'All' }, |  | ||||||
|             { value: 'none', label: 'Hidden' }, |  | ||||||
|           ], |  | ||||||
|         }, |  | ||||||
|       }); |       }); | ||||||
| 
 | 
 | ||||||
|  |     commonOptionsBuilder.addTooltipOptions(builder); | ||||||
|     commonOptionsBuilder.addLegendOptions(builder, false); |     commonOptionsBuilder.addLegendOptions(builder, false); | ||||||
| 
 | 
 | ||||||
|     builder.addMultiSelect({ |     builder.addMultiSelect({ | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import { SingleStatBaseOptions, VizLegendOptions, VizTooltipOptions } from '@grafana/ui'; | import { OptionsWithTooltip, SingleStatBaseOptions, VizLegendOptions } from '@grafana/ui'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * @beta |  * @beta | ||||||
|  | @ -32,9 +32,8 @@ export interface PieChartLegendOptions extends VizLegendOptions { | ||||||
|   values: PieChartLegendValues[]; |   values: PieChartLegendValues[]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface PieChartOptions extends SingleStatBaseOptions { | export interface PieChartOptions extends SingleStatBaseOptions, OptionsWithTooltip { | ||||||
|   pieType: PieChartType; |   pieType: PieChartType; | ||||||
|   displayLabels: PieChartLabels[]; |   displayLabels: PieChartLabels[]; | ||||||
|   legend: PieChartLegendOptions; |   legend: PieChartLegendOptions; | ||||||
|   tooltip: VizTooltipOptions; |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -5,13 +5,12 @@ import React from 'react'; | ||||||
| import { AnnotationsPlugin } from './plugins/AnnotationsPlugin'; | import { AnnotationsPlugin } from './plugins/AnnotationsPlugin'; | ||||||
| import { ContextMenuPlugin } from './plugins/ContextMenuPlugin'; | import { ContextMenuPlugin } from './plugins/ContextMenuPlugin'; | ||||||
| import { ExemplarsPlugin } from './plugins/ExemplarsPlugin'; | import { ExemplarsPlugin } from './plugins/ExemplarsPlugin'; | ||||||
| import { Options } from './types'; | import { TimeSeriesOptions } from './types'; | ||||||
| 
 | 
 | ||||||
| interface TimeSeriesPanelProps extends PanelProps<Options> {} | interface TimeSeriesPanelProps extends PanelProps<TimeSeriesOptions> {} | ||||||
| 
 | 
 | ||||||
| export const TimeSeriesPanel: React.FC<TimeSeriesPanelProps> = ({ | export const TimeSeriesPanel: React.FC<TimeSeriesPanelProps> = ({ | ||||||
|   data, |   data, | ||||||
|   id, |  | ||||||
|   timeRange, |   timeRange, | ||||||
|   timeZone, |   timeZone, | ||||||
|   width, |   width, | ||||||
|  | @ -51,7 +50,7 @@ export const TimeSeriesPanel: React.FC<TimeSeriesPanelProps> = ({ | ||||||
|             <TooltipPlugin |             <TooltipPlugin | ||||||
|               data={alignedDataFrame} |               data={alignedDataFrame} | ||||||
|               config={config} |               config={config} | ||||||
|               mode={sync === DashboardCursorSync.Tooltip ? TooltipDisplayMode.Multi : options.tooltipOptions.mode} |               mode={sync === DashboardCursorSync.Tooltip ? TooltipDisplayMode.Multi : options.tooltip.mode} | ||||||
|               timeZone={timeZone} |               timeZone={timeZone} | ||||||
|             /> |             /> | ||||||
|             <ContextMenuPlugin |             <ContextMenuPlugin | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ Object { | ||||||
|       "displayMode": "table", |       "displayMode": "table", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -72,7 +72,7 @@ Object { | ||||||
|       "displayMode": "list", |       "displayMode": "list", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -159,7 +159,7 @@ Object { | ||||||
|       "displayMode": "table", |       "displayMode": "table", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -216,7 +216,7 @@ Object { | ||||||
|       "displayMode": "table", |       "displayMode": "table", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -255,7 +255,7 @@ Object { | ||||||
|       "displayMode": "table", |       "displayMode": "table", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -302,7 +302,7 @@ Object { | ||||||
|       "displayMode": "list", |       "displayMode": "list", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  | @ -382,7 +382,7 @@ Object { | ||||||
|       "displayMode": "list", |       "displayMode": "list", | ||||||
|       "placement": "bottom", |       "placement": "bottom", | ||||||
|     }, |     }, | ||||||
|     "tooltipOptions": Object { |     "tooltip": Object { | ||||||
|       "mode": "single", |       "mode": "single", | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ import { | ||||||
|   StackingMode, |   StackingMode, | ||||||
|   TooltipDisplayMode, |   TooltipDisplayMode, | ||||||
| } from '@grafana/ui'; | } from '@grafana/ui'; | ||||||
| import { Options } from './types'; | import { TimeSeriesOptions } from './types'; | ||||||
| import { omitBy, isNil, isNumber, isString } from 'lodash'; | import { omitBy, isNil, isNumber, isString } from 'lodash'; | ||||||
| import { defaultGraphConfig } from './config'; | import { defaultGraphConfig } from './config'; | ||||||
| 
 | 
 | ||||||
|  | @ -33,7 +33,7 @@ import { defaultGraphConfig } from './config'; | ||||||
|  * This is called when the panel changes from another panel |  * This is called when the panel changes from another panel | ||||||
|  */ |  */ | ||||||
| export const graphPanelChangedHandler = ( | export const graphPanelChangedHandler = ( | ||||||
|   panel: PanelModel<Partial<Options>> | any, |   panel: PanelModel<Partial<TimeSeriesOptions>> | any, | ||||||
|   prevPluginId: string, |   prevPluginId: string, | ||||||
|   prevOptions: any |   prevOptions: any | ||||||
| ) => { | ) => { | ||||||
|  | @ -47,7 +47,7 @@ export const graphPanelChangedHandler = ( | ||||||
|   return {}; |   return {}; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export function flotToGraphOptions(angular: any): { fieldConfig: FieldConfigSource; options: Options } { | export function flotToGraphOptions(angular: any): { fieldConfig: FieldConfigSource; options: TimeSeriesOptions } { | ||||||
|   const overrides: ConfigOverrideRule[] = angular.fieldConfig?.overrides ?? []; |   const overrides: ConfigOverrideRule[] = angular.fieldConfig?.overrides ?? []; | ||||||
|   const yaxes = angular.yaxes ?? []; |   const yaxes = angular.yaxes ?? []; | ||||||
|   let y1 = getFieldConfigFromOldAxis(yaxes[0]); |   let y1 = getFieldConfigFromOldAxis(yaxes[0]); | ||||||
|  | @ -286,13 +286,13 @@ export function flotToGraphOptions(angular: any): { fieldConfig: FieldConfigSour | ||||||
|   y1.custom = omitBy(graph, isNil); |   y1.custom = omitBy(graph, isNil); | ||||||
|   y1.nullValueMode = angular.nullPointMode as NullValueMode; |   y1.nullValueMode = angular.nullPointMode as NullValueMode; | ||||||
| 
 | 
 | ||||||
|   const options: Options = { |   const options: TimeSeriesOptions = { | ||||||
|     legend: { |     legend: { | ||||||
|       displayMode: LegendDisplayMode.List, |       displayMode: LegendDisplayMode.List, | ||||||
|       placement: 'bottom', |       placement: 'bottom', | ||||||
|       calcs: [], |       calcs: [], | ||||||
|     }, |     }, | ||||||
|     tooltipOptions: { |     tooltip: { | ||||||
|       mode: TooltipDisplayMode.Single, |       mode: TooltipDisplayMode.Single, | ||||||
|     }, |     }, | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -2,28 +2,14 @@ import { PanelPlugin } from '@grafana/data'; | ||||||
| import { GraphFieldConfig, commonOptionsBuilder } from '@grafana/ui'; | import { GraphFieldConfig, commonOptionsBuilder } from '@grafana/ui'; | ||||||
| import { TimeSeriesPanel } from './TimeSeriesPanel'; | import { TimeSeriesPanel } from './TimeSeriesPanel'; | ||||||
| import { graphPanelChangedHandler } from './migrations'; | import { graphPanelChangedHandler } from './migrations'; | ||||||
| import { Options } from './types'; | import { TimeSeriesOptions } from './types'; | ||||||
| import { defaultGraphConfig, getGraphFieldConfig } from './config'; | import { defaultGraphConfig, getGraphFieldConfig } from './config'; | ||||||
| 
 | 
 | ||||||
| export const plugin = new PanelPlugin<Options, GraphFieldConfig>(TimeSeriesPanel) | export const plugin = new PanelPlugin<TimeSeriesOptions, GraphFieldConfig>(TimeSeriesPanel) | ||||||
|   .setPanelChangeHandler(graphPanelChangedHandler) |   .setPanelChangeHandler(graphPanelChangedHandler) | ||||||
|   .useFieldConfig(getGraphFieldConfig(defaultGraphConfig)) |   .useFieldConfig(getGraphFieldConfig(defaultGraphConfig)) | ||||||
|   .setPanelOptions((builder) => { |   .setPanelOptions((builder) => { | ||||||
|     builder.addRadio({ |     commonOptionsBuilder.addTooltipOptions(builder); | ||||||
|       path: 'tooltipOptions.mode', |  | ||||||
|       name: 'Tooltip mode', |  | ||||||
|       category: ['Legend'], |  | ||||||
|       description: '', |  | ||||||
|       defaultValue: 'single', |  | ||||||
|       settings: { |  | ||||||
|         options: [ |  | ||||||
|           { value: 'single', label: 'Single' }, |  | ||||||
|           { value: 'multi', label: 'All' }, |  | ||||||
|           { value: 'none', label: 'Hidden' }, |  | ||||||
|         ], |  | ||||||
|       }, |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     commonOptionsBuilder.addLegendOptions(builder); |     commonOptionsBuilder.addLegendOptions(builder); | ||||||
|   }) |   }) | ||||||
|   .setDataSupport({ annotations: true, alertStates: true }); |   .setDataSupport({ annotations: true, alertStates: true }); | ||||||
|  |  | ||||||
|  | @ -1,4 +1,3 @@ | ||||||
| import { VizTooltipOptions, OptionsWithLegend } from '@grafana/ui'; | import { OptionsWithLegend, OptionsWithTooltip } from '@grafana/ui'; | ||||||
| export interface Options extends OptionsWithLegend { | 
 | ||||||
|   tooltipOptions: VizTooltipOptions; | export interface TimeSeriesOptions extends OptionsWithLegend, OptionsWithTooltip {} | ||||||
| } |  | ||||||
|  |  | ||||||
|  | @ -59,7 +59,7 @@ export const XYChartPanel: React.FC<XYChartPanelProps> = ({ | ||||||
|           <TooltipPlugin |           <TooltipPlugin | ||||||
|             config={config} |             config={config} | ||||||
|             data={alignedDataFrame} |             data={alignedDataFrame} | ||||||
|             mode={options.tooltipOptions.mode as any} |             mode={options.tooltip.mode as any} | ||||||
|             timeZone={timeZone} |             timeZone={timeZone} | ||||||
|           /> |           /> | ||||||
|         ); |         ); | ||||||
|  |  | ||||||
|  | @ -13,26 +13,12 @@ export const plugin = new PanelPlugin<Options, GraphFieldConfig>(XYChartPanel) | ||||||
|     }) |     }) | ||||||
|   ) |   ) | ||||||
|   .setPanelOptions((builder) => { |   .setPanelOptions((builder) => { | ||||||
|     builder |     builder.addCustomEditor({ | ||||||
|       .addCustomEditor({ |       id: 'xyPlotConfig', | ||||||
|         id: 'xyPlotConfig', |       path: 'dims', | ||||||
|         path: 'dims', |       name: 'Data', | ||||||
|         name: 'Data', |       editor: XYDimsEditor, | ||||||
|         editor: XYDimsEditor, |     }); | ||||||
|       }) |     commonOptionsBuilder.addTooltipOptions(builder); | ||||||
|       .addRadio({ |  | ||||||
|         path: 'tooltipOptions.mode', |  | ||||||
|         name: 'Tooltip mode', |  | ||||||
|         description: '', |  | ||||||
|         defaultValue: 'single', |  | ||||||
|         settings: { |  | ||||||
|           options: [ |  | ||||||
|             { value: 'single', label: 'Single' }, |  | ||||||
|             { value: 'multi', label: 'All' }, |  | ||||||
|             { value: 'none', label: 'Hidden' }, |  | ||||||
|           ], |  | ||||||
|         }, |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|     commonOptionsBuilder.addLegendOptions(builder); |     commonOptionsBuilder.addLegendOptions(builder); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|  | @ -1,11 +1,10 @@ | ||||||
| import { VizTooltipOptions, OptionsWithLegend } from '@grafana/ui'; | import { OptionsWithTooltip, OptionsWithLegend } from '@grafana/ui'; | ||||||
| export interface XYDimensionConfig { | export interface XYDimensionConfig { | ||||||
|   frame: number; |   frame: number; | ||||||
|   x?: string; // name | first
 |   x?: string; // name | first
 | ||||||
|   exclude?: string[]; // all other numbers except
 |   exclude?: string[]; // all other numbers except
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export interface Options extends OptionsWithLegend { | export interface Options extends OptionsWithLegend, OptionsWithTooltip { | ||||||
|   dims: XYDimensionConfig; |   dims: XYDimensionConfig; | ||||||
|   tooltipOptions: VizTooltipOptions; |  | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue