2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  FixedUiElement  }  from  "./UI/Base/FixedUiElement"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  Combine  from  "./UI/Base/Combine"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  MinimapImplementation  from  "./UI/Base/MinimapImplementation"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  {  Utils  }  from  "./Utils"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  AllThemesGui  from  "./UI/AllThemesGui"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  DetermineLayout  from  "./Logic/DetermineLayout"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  LayoutConfig  from  "./Models/ThemeConfig/LayoutConfig"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  DefaultGUI  from  "./UI/DefaultGUI"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  State  from  "./State"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  ShowOverlayLayerImplementation  from  "./UI/ShowDataLayer/ShowOverlayLayerImplementation"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  {  DefaultGuiState  }  from  "./UI/DefaultGuiState"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  {  QueryParameters  }  from  "./Logic/Web/QueryParameters"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  DashboardGui  from  "./UI/DashboardGui"  
						 
					
						
							
								
									
										
										
										
											2021-03-22 02:45:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 14:52:11 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Workaround for a stupid crash: inject some functions which would give stupid circular dependencies or crash the other nodejs scripts running from console
  
						 
					
						
							
								
									
										
										
										
											2021-09-21 02:10:42 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								MinimapImplementation . initialize ( )  
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ShowOverlayLayerImplementation . Implement ( )  
						 
					
						
							
								
									
										
										
										
											2021-10-15 14:52:11 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// Miscelleanous
  
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Utils . DisableLongPresses ( )  
						 
					
						
							
								
									
										
										
										
											2021-03-22 02:45:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  Init  {  
						 
					
						
							
								
									
										
										
										
											2021-12-21 19:56:04 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    public  static  Init ( layoutToUse : LayoutConfig )  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-07 16:34:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( layoutToUse  ===  null )  { 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // Something went wrong, error message is already on screen
 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-07 16:34:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( layoutToUse  ===  undefined )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // No layout found
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-08 04:36:00 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            new  AllThemesGui ( ) . setup ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2020-06-24 00:35:19 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        const  guiState  =  new  DefaultGuiState ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        State . state  =  new  State ( layoutToUse ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        DefaultGuiState . state  =  guiState 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // This 'leaks' the global state via the window object, useful for debugging
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // @ts-ignore
 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        window . mapcomplete_state  =  State . state 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-22 13:34:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        const  mode  =  QueryParameters . GetQueryParameter ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            "mode" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            "map" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            "The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics'" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-24 16:02:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( mode . data  ===  "dashboard" )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-13 17:58:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            new  DashboardGui ( State . state ,  guiState ) . setup ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-22 13:34:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-13 17:58:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            new  DefaultGUI ( State . state ,  guiState ) . setup ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-03 16:04:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2021-10-15 05:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								document . getElementById ( "decoration-desktop" ) . remove ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								new  Combine ( [  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "Initializing... <br/>" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    new  FixedUiElement ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        "<a>If this message persist, something went wrong - click here to try again</a>" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-28 12:59:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        . SetClass ( "link-underline small" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        . onClick ( ( )  = >  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            localStorage . clear ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-08 01:14:21 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            window . location . reload ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								] ) . AttachTo ( "centermessage" )  // Add an initialization and reset button if something goes wrong
  
						 
					
						
							
								
									
										
										
										
											2021-01-18 19:36:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-21 18:35:31 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// @ts-ignore
  
						 
					
						
							
								
									
										
										
										
											2022-09-08 21:40:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								DetermineLayout . GetLayout ( )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    . then ( ( value )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        console . log ( "Got " ,  value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Init . Init ( value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    . catch ( ( err )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        console . error ( "Error while initializing: " ,  err ,  err . stack ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } )