| 
									
										
										
										
											2021-01-07 04:50:12 +01:00
										 |  |  | import ThemeIntroductionPanel from "./ThemeIntroductionPanel"; | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 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"; | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  | import UserDetails, {OsmConnection} 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-08-07 23:11:34 +02:00
										 |  |  | import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"; | 
					
						
							| 
									
										
										
										
											2021-09-21 02:10:42 +02:00
										 |  |  | import {Utils} from "../../Utils"; | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  | import UserRelatedState from "../../Logic/State/UserRelatedState"; | 
					
						
							| 
									
										
										
										
											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-10-15 05:20:02 +02:00
										 |  |  |     constructor(isShown: UIEventSource<boolean>, | 
					
						
							|  |  |  |                 currentTab: UIEventSource<number>, | 
					
						
							|  |  |  |                 state: { | 
					
						
							|  |  |  |                     layoutToUse: LayoutConfig, | 
					
						
							|  |  |  |                     osmConnection: OsmConnection, | 
					
						
							|  |  |  |                     featureSwitchShareScreen: UIEventSource<boolean>, | 
					
						
							|  |  |  |                     featureSwitchMoreQuests: UIEventSource<boolean> | 
					
						
							|  |  |  |                 } & UserRelatedState) { | 
					
						
							|  |  |  |         const layoutToUse = state.layoutToUse; | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |         super( | 
					
						
							| 
									
										
										
										
											2021-02-25 02:23:26 +01:00
										 |  |  |             () => layoutToUse.title.Clone(), | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |             () => FullWelcomePaneWithTabs.GenerateContents(state, currentTab, isShown), | 
					
						
							| 
									
										
										
										
											2021-10-25 20:50:59 +02:00
										 |  |  |             "welcome", | 
					
						
							| 
									
										
										
										
											2021-10-23 02:46:37 +02:00
										 |  |  |             isShown | 
					
						
							| 
									
										
										
										
											2021-02-25 02:23:26 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |     private static ConstructBaseTabs(state: { | 
					
						
							|  |  |  |                                          layoutToUse: LayoutConfig, | 
					
						
							|  |  |  |                                          osmConnection: OsmConnection, | 
					
						
							|  |  |  |                                          featureSwitchShareScreen: UIEventSource<boolean>, | 
					
						
							|  |  |  |                                          featureSwitchMoreQuests: UIEventSource<boolean> | 
					
						
							|  |  |  |                                      } & UserRelatedState, | 
					
						
							|  |  |  |                                      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-10-15 05:20:02 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         const tabs: { header: string | BaseUIElement, content: BaseUIElement }[] = [ | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |             {header: `<img src='${state.layoutToUse.icon}'>`, content: welcome}, | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             { | 
					
						
							|  |  |  |                 header: Svg.osm_logo_img, | 
					
						
							| 
									
										
										
										
											2021-10-25 21:50:38 +02:00
										 |  |  |                 content: Translations.t.general.openStreetMapIntro.SetClass("link-underline") | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |         if (state.featureSwitchShareScreen.data) { | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             tabs.push({header: Svg.share_img, content: new ShareScreen()}); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |         if (state.featureSwitchMoreQuests.data) { | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             tabs.push({ | 
					
						
							|  |  |  |                 header: Svg.add_img, | 
					
						
							| 
									
										
										
										
											2021-10-17 03:35:13 +02:00
										 |  |  |                 content: | 
					
						
							|  |  |  |                 new Combine([ | 
					
						
							| 
									
										
										
										
											2021-10-25 21:50:38 +02:00
										 |  |  |                     Translations.t.general.morescreen.intro, | 
					
						
							| 
									
										
										
										
											2021-10-17 03:35:13 +02:00
										 |  |  |                     new MoreScreen(state) | 
					
						
							|  |  |  |                 ]).SetClass("flex flex-col") | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-14 17:42:26 +02:00
										 |  |  |         return tabs; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |     private static GenerateContents(state: { | 
					
						
							|  |  |  |         layoutToUse: LayoutConfig, | 
					
						
							|  |  |  |         osmConnection: OsmConnection, | 
					
						
							|  |  |  |         featureSwitchShareScreen: UIEventSource<boolean>, | 
					
						
							|  |  |  |         featureSwitchMoreQuests: UIEventSource<boolean> | 
					
						
							|  |  |  |     } & UserRelatedState, currentTab: UIEventSource<number>, isShown: UIEventSource<boolean>) { | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |         const tabs = FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown) | 
					
						
							|  |  |  |         const tabsWithAboutMc = [...FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown)] | 
					
						
							| 
									
										
										
										
											2021-09-21 02:10:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-16 18:30:24 +02:00
										 |  |  |         | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         tabsWithAboutMc.push({ | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |                 header: Svg.help, | 
					
						
							| 
									
										
										
										
											2021-10-25 21:50:38 +02:00
										 |  |  |                 content: new Combine([Translations.t.general.aboutMapcomplete | 
					
						
							| 
									
										
										
										
											2021-10-16 18:30:24 +02:00
										 |  |  |                     .Subs({"osmcha_link": Utils.OsmChaLinkFor(7)}), "<br/>Version " + Constants.vNumber]) | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |                     .SetClass("link-underline") | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |             } | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-07 22:06:47 +02:00
										 |  |  |         tabs.forEach(c => c.content.SetClass("p-4")) | 
					
						
							|  |  |  |         tabsWithAboutMc.forEach(c => c.content.SetClass("p-4")) | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         return new Toggle( | 
					
						
							| 
									
										
										
										
											2021-10-15 05:20:02 +02:00
										 |  |  |             new TabbedComponent(tabsWithAboutMc, currentTab), | 
					
						
							|  |  |  |             new TabbedComponent(tabs, currentTab), | 
					
						
							|  |  |  |             state.osmConnection.userDetails.map((userdetails: UserDetails) => | 
					
						
							| 
									
										
										
										
											2021-06-14 17:42:26 +02:00
										 |  |  |                 userdetails.loggedIn && | 
					
						
							|  |  |  |                 userdetails.csCount >= Constants.userJourney.mapCompleteHelpUnlock) | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2021-01-04 04:06:21 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |