| 
									
										
										
										
											2023-03-28 05:13:48 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   import type { Feature } from "geojson" | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |   import { Store, UIEventSource } from "../../Logic/UIEventSource"; | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | 
					
						
							|  |  |  |   import type { SpecialVisualizationState } from "../SpecialVisualization" | 
					
						
							|  |  |  |   import TagRenderingEditable from "../Popup/TagRendering/TagRenderingEditable.svelte" | 
					
						
							|  |  |  |   import { onDestroy } from "svelte" | 
					
						
							|  |  |  |   import Translations from "../i18n/Translations" | 
					
						
							|  |  |  |   import Tr from "../Base/Tr.svelte" | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |   import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"; | 
					
						
							| 
									
										
										
										
											2023-03-28 05:13:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   export let state: SpecialVisualizationState | 
					
						
							|  |  |  |   export let layer: LayerConfig | 
					
						
							|  |  |  |   export let selectedElement: Feature | 
					
						
							|  |  |  |   export let highlightedRendering: UIEventSource<string> = undefined | 
					
						
							| 
									
										
										
										
											2023-04-07 02:13:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |   let tags: UIEventSource<Record<string, string>> = state.featureProperties.getStore(selectedElement.properties.id) | 
					
						
							|  |  |  |   $: { | 
					
						
							|  |  |  |     tags = state.featureProperties.getStore(selectedElement.properties.id) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   let _metatags: Record<string, string> | 
					
						
							|  |  |  |   onDestroy( | 
					
						
							|  |  |  |     state.userRelatedState.preferencesAsTags.addCallbackAndRun((tags) => { | 
					
						
							|  |  |  |       _metatags = tags | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |   ) | 
					
						
							| 
									
										
										
										
											2023-11-23 15:47:16 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |   let knownTagRenderings: Store<TagRenderingConfig[]> =  tags.mapD(tgs =>  layer.tagRenderings.filter( | 
					
						
							| 
									
										
										
										
											2023-11-23 15:47:16 +01:00
										 |  |  |     (config) => | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |       (config.condition?.matchesProperties(tgs) ?? true) && | 
					
						
							|  |  |  |       config.metacondition?.matchesProperties({ ...tgs, ..._metatags } ?? true) && | 
					
						
							|  |  |  |       config.IsKnown(tgs) | 
					
						
							|  |  |  |   )) | 
					
						
							| 
									
										
										
										
											2023-03-28 05:13:48 +02:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-06 02:57:53 +02:00
										 |  |  | {#if $tags._deleted === "yes"} | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   <Tr t={Translations.t.delete.isDeleted} /> | 
					
						
							|  |  |  |   <button class="w-full" on:click={() => state.selectedElement.setData(undefined)}> | 
					
						
							|  |  |  |     <Tr t={Translations.t.general.returnToTheMap} /> | 
					
						
							|  |  |  |   </button> | 
					
						
							| 
									
										
										
										
											2023-04-20 17:42:07 +02:00
										 |  |  | {:else} | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |   <div class="flex h-full flex-col gap-y-2 overflow-y-auto p-1 px-2 focusable" tabindex="-1"> | 
					
						
							|  |  |  |     {#each $knownTagRenderings as config (config.id)} | 
					
						
							| 
									
										
										
										
											2023-11-23 15:47:16 +01:00
										 |  |  |       <TagRenderingEditable | 
					
						
							|  |  |  |         {tags} | 
					
						
							|  |  |  |         {config} | 
					
						
							|  |  |  |         {state} | 
					
						
							|  |  |  |         {selectedElement} | 
					
						
							|  |  |  |         {layer} | 
					
						
							|  |  |  |         {highlightedRendering} | 
					
						
							| 
									
										
										
										
											2023-12-06 17:27:30 +01:00
										 |  |  |         clss={$knownTagRenderings.length === 1 ? "h-full" : "tr-length-" + $knownTagRenderings.length} | 
					
						
							| 
									
										
										
										
											2023-11-23 15:47:16 +01:00
										 |  |  |       /> | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |     {/each} | 
					
						
							|  |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2023-04-20 17:42:07 +02:00
										 |  |  | {/if} |