| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  | import {Store} from "../../Logic/UIEventSource" | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | import Translations from "../i18n/Translations" | 
					
						
							| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  | import {OsmConnection} from "../../Logic/Osm/OsmConnection" | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | import Toggle from "../Input/Toggle" | 
					
						
							|  |  |  | import BaseUIElement from "../BaseUIElement" | 
					
						
							| 
									
										
										
										
											2022-11-02 14:44:06 +01:00
										 |  |  | import Combine from "../Base/Combine" | 
					
						
							|  |  |  | import Svg from "../../Svg" | 
					
						
							| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  | import {LoginToggle} from "./LoginButton"; | 
					
						
							| 
									
										
										
										
											2022-10-29 03:03:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class EditButton extends Toggle { | 
					
						
							|  |  |  |     constructor(osmConnection: OsmConnection, onClick: () => void) { | 
					
						
							|  |  |  |         super( | 
					
						
							| 
									
										
										
										
											2023-05-08 01:55:21 +02:00
										 |  |  |             new Combine([Svg.pencil_svg()]) | 
					
						
							| 
									
										
										
										
											2022-10-29 03:03:51 +02:00
										 |  |  |                 .SetClass("block relative h-10 w-10 p-2 float-right") | 
					
						
							|  |  |  |                 .SetStyle("border: 1px solid black; border-radius: 0.7em") | 
					
						
							|  |  |  |                 .onClick(onClick), | 
					
						
							|  |  |  |             undefined, | 
					
						
							|  |  |  |             osmConnection.isLoggedIn | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2020-07-05 18:59:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  | export class SaveButton extends LoginToggle { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |     constructor( | 
					
						
							|  |  |  |         value: Store<any>, | 
					
						
							| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  |         state: { | 
					
						
							|  |  |  |             readonly osmConnection?: OsmConnection | 
					
						
							|  |  |  |             readonly featureSwitchUserbadge?: Store<boolean> | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         textEnabled?: BaseUIElement, | 
					
						
							|  |  |  |         textDisabled?: BaseUIElement | 
					
						
							|  |  |  |     ) { | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         if (value === undefined) { | 
					
						
							| 
									
										
										
										
											2020-07-05 18:59:47 +02:00
										 |  |  |             throw "No event source for savebutton, something is wrong" | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const isSaveable = value.map((v) => v !== false && (v ?? "") !== "") | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const saveEnabled = (textEnabled ?? Translations.t.general.save.Clone()).SetClass(`btn`) | 
					
						
							|  |  |  |         const saveDisabled = (textDisabled ?? Translations.t.general.save.Clone()).SetClass( | 
					
						
							|  |  |  |             `btn btn-disabled` | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const save = new Toggle(saveEnabled, saveDisabled, isSaveable) | 
					
						
							| 
									
										
										
										
											2023-05-09 00:06:51 +02:00
										 |  |  |         super(save, Translations.t.general.loginToStart, state) | 
					
						
							| 
									
										
										
										
											2020-07-05 18:59:47 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | } |