forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
  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"
 | 
						|
 | 
						|
  /**
 | 
						|
   * 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
 | 
						|
 | 
						|
  export let currentProperties: Record<string, string | any> = {}
 | 
						|
  /**
 | 
						|
   * If given, this function will be called to embed the given tags hint into this translation
 | 
						|
   */
 | 
						|
  export let embedIn: ((string: string) => Translation) | undefined = undefined
 | 
						|
  const userDetails = state.osmConnection.userDetails
 | 
						|
  let tagsExplanation = ""
 | 
						|
  $: tagsExplanation = tags?.asHumanString(true, false, currentProperties)
 | 
						|
</script>
 | 
						|
 | 
						|
{#if $userDetails.loggedIn}
 | 
						|
  <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>
 | 
						|
{/if}
 |