| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | import {UIElement} from "../UIElement"; | 
					
						
							|  |  |  | import State from "../../State"; | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  | import ThemeIntroductionPanel from "./ThemeIntroductionPanel"; | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | import * as personal from "../../assets/themes/personalLayout/personalLayout.json"; | 
					
						
							|  |  |  | import PersonalLayersPanel from "./PersonalLayersPanel"; | 
					
						
							|  |  |  | import Svg from "../../Svg"; | 
					
						
							|  |  |  | import Translations from "../i18n/Translations"; | 
					
						
							|  |  |  | import ShareScreen from "./ShareScreen"; | 
					
						
							|  |  |  | import MoreScreen from "./MoreScreen"; | 
					
						
							|  |  |  | import {VariableUiElement} from "../Base/VariableUIElement"; | 
					
						
							|  |  |  | import Constants from "../../Models/Constants"; | 
					
						
							|  |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import Locale from "../i18n/Locale"; | 
					
						
							|  |  |  | import {TabbedComponent} from "../Base/TabbedComponent"; | 
					
						
							|  |  |  | import {UIEventSource} from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  | import LayoutConfig from "../../Customizations/JSON/LayoutConfig"; | 
					
						
							|  |  |  | import UserDetails from "../../Logic/Osm/OsmConnection"; | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  | import {FixedUiElement} from "../Base/FixedUiElement"; | 
					
						
							|  |  |  | import CombinedInputElement from "../Input/CombinedInputElement"; | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | export default class FullWelcomePaneWithTabs extends UIElement { | 
					
						
							|  |  |  |     private readonly _layoutToUse: UIEventSource<LayoutConfig>; | 
					
						
							|  |  |  |     private readonly _userDetails: UIEventSource<UserDetails>; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private readonly _component: UIElement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  |         super(State.state.layoutToUse); | 
					
						
							|  |  |  |         this._layoutToUse = State.state.layoutToUse; | 
					
						
							|  |  |  |         this._userDetails = State.state.osmConnection.userDetails; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |         const layoutToUse = this._layoutToUse.data; | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  |         let welcome: UIElement = new ThemeIntroductionPanel(); | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |         if (layoutToUse.id === personal.id) { | 
					
						
							|  |  |  |             welcome = new PersonalLayersPanel(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         const tabs = [ | 
					
						
							|  |  |  |             {header: `<img src='${layoutToUse.icon}'>`, content: welcome}, | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 header: Svg.osm_logo_img, | 
					
						
							|  |  |  |                 content: Translations.t.general.openStreetMapIntro as UIElement | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (State.state.featureSwitchShareScreen.data) { | 
					
						
							|  |  |  |             tabs.push({header: Svg.share_img, content: new ShareScreen()}); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (State.state.featureSwitchMoreQuests.data) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             tabs.push({ | 
					
						
							|  |  |  |                 header: Svg.add_img, | 
					
						
							|  |  |  |                 content: new MoreScreen() | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         tabs.push({ | 
					
						
							|  |  |  |                 header: Svg.help, | 
					
						
							|  |  |  |                 content: new VariableUiElement(this._userDetails.map(userdetails => { | 
					
						
							|  |  |  |                     if (userdetails.csCount < Constants.userJourney.mapCompleteHelpUnlock) { | 
					
						
							|  |  |  |                         return "" | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     return new Combine([Translations.t.general.aboutMapcomplete, "<br/>Version " + Constants.vNumber]).Render(); | 
					
						
							|  |  |  |                 }, [Locale.language])) | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  |         const tabbedPart = new TabbedComponent(tabs, State.state.welcomeMessageOpenedTab) | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             .ListenTo(this._userDetails); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  |         const backButton = new Combine([ | 
					
						
							|  |  |  |             new Combine([Translations.t.general.returnToTheMap.Clone().SetClass("to-the-map")]) | 
					
						
							|  |  |  |                 .SetClass("to-the-map-inner") | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |         ]).SetClass("only-on-mobile") | 
					
						
							|  |  |  |             .onClick(() => State.state.fullScreenMessage.setData(undefined)); | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  |         tabbedPart.SetStyle("overflow-y: auto; max-height: calc( 100vh - 4em);display:block;") | 
					
						
							|  |  |  |         this._component = new Combine([tabbedPart, backButton]).SetStyle("width:100%;"); | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     InnerRender(): string { | 
					
						
							|  |  |  |         return this._component.Render(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |