forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { DropDown } from "../Input/DropDown"
 | |
| import Translations from "../i18n/Translations"
 | |
| import State from "../../State"
 | |
| import BaseLayer from "../../Models/BaseLayer"
 | |
| import { VariableUiElement } from "../Base/VariableUIElement"
 | |
| import { Store } from "../../Logic/UIEventSource"
 | |
| 
 | |
| export default class BackgroundSelector extends VariableUiElement {
 | |
|     constructor(state: { availableBackgroundLayers?: Store<BaseLayer[]> }) {
 | |
|         const available = state.availableBackgroundLayers?.map((available) => {
 | |
|             if (available === undefined) {
 | |
|                 return undefined
 | |
|             }
 | |
|             const baseLayers: { value: BaseLayer; shown: string }[] = []
 | |
|             for (const i in available) {
 | |
|                 if (!available.hasOwnProperty(i)) {
 | |
|                     continue
 | |
|                 }
 | |
|                 const layer: BaseLayer = available[i]
 | |
|                 baseLayers.push({ value: layer, shown: layer.name ?? "id:" + layer.id })
 | |
|             }
 | |
|             return baseLayers
 | |
|         })
 | |
| 
 | |
|         super(
 | |
|             available?.map((baseLayers) => {
 | |
|                 if (baseLayers === undefined || baseLayers.length <= 1) {
 | |
|                     return undefined
 | |
|                 }
 | |
|                 return new DropDown(
 | |
|                     Translations.t.general.backgroundMap.Clone(),
 | |
|                     baseLayers,
 | |
|                     State.state.backgroundLayer,
 | |
|                     {
 | |
|                         select_class: "bg-indigo-100 p-1 rounded hover:bg-indigo-200 w-full",
 | |
|                     }
 | |
|                 )
 | |
|             })
 | |
|         )
 | |
|     }
 | |
| }
 |