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",
 | 
						|
                    }
 | 
						|
                )
 | 
						|
            })
 | 
						|
        )
 | 
						|
    }
 | 
						|
}
 |