| 
									
										
										
										
											2020-09-03 00:00:37 +02:00
										 |  |  | import {UIElement} from "../UIElement"; | 
					
						
							|  |  |  | import {UIEventSource} from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  | import SingleSetting from "./SingleSetting"; | 
					
						
							|  |  |  | import LayerPanel from "./LayerPanel"; | 
					
						
							| 
									
										
										
										
											2020-09-17 14:24:36 +02:00
										 |  |  | import HelpText from "./HelpText"; | 
					
						
							| 
									
										
										
										
											2020-09-03 00:00:37 +02:00
										 |  |  | import {MultiTagInput} from "../Input/MultiTagInput"; | 
					
						
							|  |  |  | import {FromJSON} from "../../Customizations/JSON/FromJSON"; | 
					
						
							|  |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import PageSplit from "../Base/PageSplit"; | 
					
						
							|  |  |  | import TagRenderingPreview from "./TagRenderingPreview"; | 
					
						
							| 
									
										
										
										
											2021-01-04 04:36:21 +01:00
										 |  |  | import UserDetails from "../../Logic/Osm/OsmConnection"; | 
					
						
							| 
									
										
										
										
											2020-09-03 00:00:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default class LayerPanelWithPreview extends UIElement{ | 
					
						
							|  |  |  |     private panel: UIElement; | 
					
						
							| 
									
										
										
										
											2020-09-03 16:44:48 +02:00
										 |  |  |     constructor(config: UIEventSource<any>, languages: UIEventSource<string[]>, index: number, userDetails: UserDetails) { | 
					
						
							| 
									
										
										
										
											2020-09-03 00:00:37 +02:00
										 |  |  |         super(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         const currentlySelected = new UIEventSource<(SingleSetting<any>)>(undefined); | 
					
						
							| 
									
										
										
										
											2020-09-03 16:44:48 +02:00
										 |  |  |         const layer = new LayerPanel(config, languages, index, currentlySelected, userDetails); | 
					
						
							| 
									
										
										
										
											2020-09-03 00:00:37 +02:00
										 |  |  |         const helpText = new HelpText(currentlySelected); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         const previewTagInput = new MultiTagInput(); | 
					
						
							|  |  |  |         previewTagInput.GetValue().setData(["id=123456"]); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         const previewTagValue = previewTagInput.GetValue().map(tags => { | 
					
						
							|  |  |  |             const properties = {}; | 
					
						
							|  |  |  |             for (const str of tags) { | 
					
						
							|  |  |  |                 const tag = FromJSON.SimpleTag(str); | 
					
						
							|  |  |  |                 if (tag !== undefined) { | 
					
						
							|  |  |  |                     properties[tag.key] = tag.value; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             return properties; | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         const preview = new TagRenderingPreview(layer.selectedTagRendering, previewTagValue); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.panel =   new PageSplit( | 
					
						
							|  |  |  |             layer.SetClass("scrollable"), | 
					
						
							|  |  |  |             new Combine([ | 
					
						
							|  |  |  |                 helpText, | 
					
						
							|  |  |  |                 "</br>", | 
					
						
							|  |  |  |                 "<h2>Testing tags</h2>", | 
					
						
							|  |  |  |                 previewTagInput, | 
					
						
							|  |  |  |                 "<h2>Tag Rendering preview</h2>", | 
					
						
							|  |  |  |                 preview | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             ]), 60 | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     InnerRender(): string { | 
					
						
							|  |  |  |         return this.panel.Render(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | } |