forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
| <script lang="ts">/**
 | |
|  * The OverlayToggle shows a single toggle to enable or disable an overlay
 | |
|  */
 | |
| import Checkbox from "../Base/Checkbox.svelte";
 | |
| import { onDestroy } from "svelte";
 | |
| import { UIEventSource } from "../../Logic/UIEventSource";
 | |
| import Tr from "../Base/Tr.svelte";
 | |
| import Translations from "../i18n/Translations";
 | |
| import { Translation } from "../i18n/Translation";
 | |
| import type { RasterLayerProperties } from "../../Models/RasterLayerProperties";
 | |
| 
 | |
| export let layerproperties : RasterLayerProperties
 | |
| export let state: {isDisplayed: UIEventSource<boolean>};
 | |
| export let zoomlevel: UIEventSource<number>;
 | |
| export let highlightedLayer: UIEventSource<string> | undefined;
 | |
| 
 | |
| let isDisplayed: boolean = state.isDisplayed.data;
 | |
| onDestroy(state.isDisplayed.addCallbackAndRunD(d => {
 | |
|   isDisplayed = d;
 | |
|   return false;
 | |
| }));
 | |
| 
 | |
| 
 | |
| let mainElem: HTMLElement;
 | |
| $:  onDestroy(
 | |
|   highlightedLayer.addCallbackAndRun(highlightedLayer => {
 | |
|     if (highlightedLayer === layerproperties.id) {
 | |
|       mainElem?.classList?.add("glowing-shadow");
 | |
|     } else {
 | |
|       mainElem?.classList?.remove("glowing-shadow");
 | |
|     }
 | |
|   })
 | |
| );
 | |
| </script>
 | |
| {#if layerproperties.name}
 | |
|   <div bind:this={mainElem}>
 | |
|     <label class="flex gap-1">
 | |
|       <Checkbox selected={state.isDisplayed} />
 | |
|       <Tr t={new Translation(layerproperties.name)}/>
 | |
|       {#if $zoomlevel < layerproperties.min_zoom}
 | |
|         <span class="alert">
 | |
|           <Tr t={Translations.t.general.layerSelection.zoomInToSeeThisLayer} />
 | |
|         </span>
 | |
|       {/if}
 | |
|     </label>
 | |
|   </div>
 | |
| {/if}
 |