| 
									
										
										
										
											2023-04-06 01:33:08 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-05-11 02:17:41 +02:00
										 |  |  |     import {TagsFilter} from "../../Logic/Tags/TagsFilter"; | 
					
						
							|  |  |  |     import FromHtml from "../Base/FromHtml.svelte"; | 
					
						
							|  |  |  |     import {Translation} from "../i18n/Translation"; | 
					
						
							|  |  |  |     import Tr from "../Base/Tr.svelte"; | 
					
						
							|  |  |  |     import type {SpecialVisualizationState} from "../SpecialVisualization"; | 
					
						
							| 
									
										
										
										
											2023-04-06 01:33:08 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-11 02:17:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * A 'TagHint' will show the given tags in a human readable form. | 
					
						
							|  |  |  |      * Depending on the options, it'll link through to the wiki or might be completely hidden | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     export let tags: TagsFilter; | 
					
						
							|  |  |  |     export let state: SpecialVisualizationState; | 
					
						
							| 
									
										
										
										
											2023-06-01 14:54:34 +02:00
										 |  |  |      | 
					
						
							|  |  |  |     export let currentProperties: Record<string, string | any> = {} | 
					
						
							| 
									
										
										
										
											2023-05-11 02:17:41 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * If given, this function will be called to embed the given tags hint into this translation | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  |     export let embedIn: ((string: string) => Translation) | undefined = undefined; | 
					
						
							| 
									
										
										
										
											2023-05-11 02:17:41 +02:00
										 |  |  |     const userDetails = state.osmConnection.userDetails; | 
					
						
							|  |  |  |     let tagsExplanation = ""; | 
					
						
							| 
									
										
										
										
											2023-06-01 14:54:34 +02:00
										 |  |  |     $: tagsExplanation = tags?.asHumanString(true, false, currentProperties); | 
					
						
							| 
									
										
										
										
											2023-04-06 01:33:08 +02:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | {#if $userDetails.loggedIn} | 
					
						
							| 
									
										
										
										
											2023-05-11 02:17:41 +02:00
										 |  |  |     <div> | 
					
						
							|  |  |  |         {#if tags === undefined} | 
					
						
							|  |  |  |             <slot name="no-tags"> | 
					
						
							|  |  |  |                 No tags | 
					
						
							|  |  |  |             </slot> | 
					
						
							|  |  |  |         {:else if embedIn === undefined} | 
					
						
							|  |  |  |             <FromHtml src={tagsExplanation}/> | 
					
						
							|  |  |  |         {:else} | 
					
						
							|  |  |  |             <Tr t={embedIn(tagsExplanation)}/> | 
					
						
							|  |  |  |         {/if} | 
					
						
							|  |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2023-04-06 01:33:08 +02:00
										 |  |  | {/if} |