| 
									
										
										
										
											2020-07-20 23:43:42 +02:00
										 |  |  | import Translations from "./i18n/Translations"; | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | import {VariableUiElement} from "./Base/VariableUIElement"; | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  | import FeaturePipelineState from "../Logic/State/FeaturePipelineState"; | 
					
						
							| 
									
										
										
										
											2022-01-26 20:47:08 +01:00
										 |  |  | import Loading from "./Base/Loading"; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | export default class CenterMessageBox extends VariableUiElement { | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |     constructor(state: FeaturePipelineState) { | 
					
						
							|  |  |  |         const updater = state.featurePipeline; | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         const t = Translations.t.centerMessage; | 
					
						
							|  |  |  |         const message = updater.runningQuery.map( | 
					
						
							|  |  |  |             isRunning => { | 
					
						
							|  |  |  |                 if (isRunning) { | 
					
						
							| 
									
										
										
										
											2022-01-26 20:47:08 +01:00
										 |  |  |                     return {el: new Loading(t.loadingData)}; | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |                 } | 
					
						
							|  |  |  |                 if (!updater.sufficientlyZoomed.data) { | 
					
						
							|  |  |  |                     return {el: t.zoomIn} | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 if (updater.timeout.data > 0) { | 
					
						
							|  |  |  |                     return {el: t.retrying.Subs({count: "" + updater.timeout.data})} | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 return {el: t.ready, isDone: true} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             [updater.timeout, updater.sufficientlyZoomed, state.locationControl] | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         super(message.map(toShow => toShow.el)) | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-27 00:44:01 +01:00
										 |  |  |         this.SetClass("flex justify-center " + | 
					
						
							| 
									
										
										
										
											2022-01-26 20:47:08 +01:00
										 |  |  |             "rounded-3xl bg-white text-xl font-bold pointer-events-none p-4") | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         this.SetStyle("transition: opacity 750ms linear") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         message.addCallbackAndRun(toShow => { | 
					
						
							|  |  |  |             const isDone = toShow.isDone ?? false; | 
					
						
							|  |  |  |             if (isDone) { | 
					
						
							|  |  |  |                 this.SetStyle("transition: opacity 750ms linear; opacity: 0") | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 this.SetStyle("transition: opacity 750ms linear; opacity: 0.75") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |