| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 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 Constants from "../../Models/Constants"; | 
					
						
							|  |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import {TabbedComponent} from "../Base/TabbedComponent"; | 
					
						
							|  |  |  | import {UIEventSource} from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  | import LayoutConfig from "../../Customizations/JSON/LayoutConfig"; | 
					
						
							|  |  |  | import UserDetails from "../../Logic/Osm/OsmConnection"; | 
					
						
							| 
									
										
										
										
											2021-01-22 00:40:15 +01:00
										 |  |  | import ScrollableFullScreen from "../Base/ScrollableFullScreen"; | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | import BaseUIElement from "../BaseUIElement"; | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  | import Toggle from "../Input/Toggle"; | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | export default class FullWelcomePaneWithTabs extends ScrollableFullScreen { | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-25 02:23:26 +01:00
										 |  |  |     constructor(isShown: UIEventSource<boolean>) { | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         const layoutToUse = State.state.layoutToUse.data; | 
					
						
							|  |  |  |         super ( | 
					
						
							| 
									
										
										
										
											2021-02-25 02:23:26 +01:00
										 |  |  |             () => layoutToUse.title.Clone(), | 
					
						
							| 
									
										
										
										
											2021-06-16 21:23:03 +02:00
										 |  |  |             () => FullWelcomePaneWithTabs.GenerateContents(layoutToUse, State.state.osmConnection.userDetails, isShown), | 
					
						
							| 
									
										
										
										
											2021-03-12 14:52:34 +01:00
										 |  |  |             "welcome" ,isShown | 
					
						
							| 
									
										
										
										
											2021-02-25 02:23:26 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-06-14 17:42:26 +02:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2021-06-16 21:23:03 +02:00
										 |  |  |     private static ConstructBaseTabs(layoutToUse: LayoutConfig, isShown: UIEventSource<boolean>): { header: string | BaseUIElement; content: BaseUIElement }[]{ | 
					
						
							| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 21:23:03 +02:00
										 |  |  |         let welcome: BaseUIElement = new ThemeIntroductionPanel(isShown); | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |         if (layoutToUse.id === personal.id) { | 
					
						
							|  |  |  |             welcome = new PersonalLayersPanel(); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         const tabs: { header: string | BaseUIElement, content: BaseUIElement }[] = [ | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             {header: `<img src='${layoutToUse.icon}'>`, content: welcome}, | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 header: Svg.osm_logo_img, | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |                 content: Translations.t.general.openStreetMapIntro.Clone().SetClass("link-underline") | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         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() | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-14 17:42:26 +02:00
										 |  |  |         return tabs; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 21:23:03 +02:00
										 |  |  |     private static GenerateContents(layoutToUse: LayoutConfig, userDetails: UIEventSource<UserDetails>, isShown: UIEventSource<boolean>) { | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-16 21:23:03 +02:00
										 |  |  |         const tabs = FullWelcomePaneWithTabs.ConstructBaseTabs(layoutToUse, isShown) | 
					
						
							|  |  |  |         const tabsWithAboutMc = [...FullWelcomePaneWithTabs.ConstructBaseTabs(layoutToUse, isShown)] | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         tabsWithAboutMc.push({ | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |                 header: Svg.help, | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |                 content: new Combine([Translations.t.general.aboutMapcomplete.Clone(), "<br/>Version " + Constants.vNumber]) | 
					
						
							|  |  |  |                     .SetClass("link-underline") | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             } | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         return new Toggle( | 
					
						
							| 
									
										
										
										
											2021-06-14 17:42:26 +02:00
										 |  |  |           new TabbedComponent(tabsWithAboutMc, State.state.welcomeMessageOpenedTab), | 
					
						
							|  |  |  |            new TabbedComponent(tabs, State.state.welcomeMessageOpenedTab), | 
					
						
							|  |  |  |             userDetails.map((userdetails: UserDetails) => | 
					
						
							|  |  |  |                 userdetails.loggedIn && | 
					
						
							|  |  |  |                 userdetails.csCount >= Constants.userJourney.mapCompleteHelpUnlock) | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |