forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			No EOL
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			No EOL
		
	
	
		
			3.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {UIEventSource} from "../Logic/UIEventSource";
 | |
| import {QueryParameters} from "../Logic/Web/QueryParameters";
 | |
| import Constants from "../Models/Constants";
 | |
| import Hash from "../Logic/Web/Hash";
 | |
| 
 | |
| export class DefaultGuiState {
 | |
|     static state: DefaultGuiState;
 | |
|     public readonly welcomeMessageIsOpened: UIEventSource<boolean>;
 | |
|     public readonly downloadControlIsOpened: UIEventSource<boolean>;
 | |
|     public readonly filterViewIsOpened: UIEventSource<boolean>;
 | |
|     public readonly copyrightViewIsOpened: UIEventSource<boolean>;
 | |
|     public readonly currentViewControlIsOpened: UIEventSource<boolean>;
 | |
|     public readonly welcomeMessageOpenedTab: UIEventSource<number>
 | |
|     public readonly allFullScreenStates: UIEventSource<boolean>[] = []
 | |
| 
 | |
|     constructor() {
 | |
| 
 | |
| 
 | |
|         this.welcomeMessageOpenedTab = UIEventSource.asFloat(QueryParameters.GetQueryParameter(
 | |
|             "tab",
 | |
|             "0",
 | |
|             `The tab that is shown in the welcome-message.`
 | |
|         ));
 | |
|         this.welcomeMessageIsOpened = QueryParameters.GetBooleanQueryParameter(
 | |
|             "welcome-control-toggle",
 | |
|             "false",
 | |
|             "Whether or not the welcome panel is shown"
 | |
|         )
 | |
|         this.downloadControlIsOpened = QueryParameters.GetBooleanQueryParameter(
 | |
|             "download-control-toggle",
 | |
|             "false",
 | |
|             "Whether or not the download panel is shown"
 | |
|         )
 | |
|         this.filterViewIsOpened = QueryParameters.GetBooleanQueryParameter(
 | |
|             "filter-toggle",
 | |
|             "false",
 | |
|             "Whether or not the filter view is shown"
 | |
|         )
 | |
|         this.copyrightViewIsOpened = QueryParameters.GetBooleanQueryParameter(
 | |
|             "copyright-toggle",
 | |
|             "false",
 | |
|             "Whether or not the copyright view is shown"
 | |
|         )
 | |
|         this.currentViewControlIsOpened = QueryParameters.GetBooleanQueryParameter(
 | |
|             "currentview-toggle",
 | |
|             "false",
 | |
|             "Whether or not the current view box is shown"
 | |
|         )
 | |
|         if (Hash.hash.data === "download") {
 | |
|             this.downloadControlIsOpened.setData(true)
 | |
|         }
 | |
|         if (Hash.hash.data === "filters") {
 | |
|             this.filterViewIsOpened.setData(true)
 | |
|         }
 | |
|         if (Hash.hash.data === "copyright") {
 | |
|             this.copyrightViewIsOpened.setData(true)
 | |
|         }if (Hash.hash.data === "currentview") {
 | |
|             this.currentViewControlIsOpened.setData(true)
 | |
|         }
 | |
|         if (Hash.hash.data === "" || Hash.hash.data === undefined || Hash.hash.data === "welcome") {
 | |
|             this.welcomeMessageIsOpened.setData(true)
 | |
|         }
 | |
| 
 | |
|         this.allFullScreenStates.push(this.downloadControlIsOpened, this.filterViewIsOpened, this.copyrightViewIsOpened, this.welcomeMessageIsOpened, this.currentViewControlIsOpened)
 | |
| 
 | |
|         for (let i = 0; i < this.allFullScreenStates.length; i++) {
 | |
|             const fullScreenState = this.allFullScreenStates[i];
 | |
|             for (let j = 0; j < this.allFullScreenStates.length; j++) {
 | |
|                 if (i == j) {
 | |
|                     continue
 | |
|                 }
 | |
|                 const otherState = this.allFullScreenStates[j];
 | |
|                 fullScreenState.addCallbackAndRunD(isOpened => {
 | |
|                     if (isOpened) {
 | |
|                         otherState.setData(false)
 | |
|                     }
 | |
|                 })
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
| } |