forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
    /**
 | 
						|
     * Constructs an input helper element for the given type.
 | 
						|
     * Note that all values are stringified
 | 
						|
     */
 | 
						|
 | 
						|
    import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
    import type {ValidatorType} from "./Validators";
 | 
						|
    import InputHelpers from "./InputHelpers";
 | 
						|
    import ToSvelte from "../Base/ToSvelte.svelte";
 | 
						|
    import type {Feature} from "geojson";
 | 
						|
    import BaseUIElement from "../BaseUIElement";
 | 
						|
    import {VariableUiElement} from "../Base/VariableUIElement";
 | 
						|
 | 
						|
    export let type: ValidatorType;
 | 
						|
    export let value: UIEventSource<string>;
 | 
						|
 | 
						|
    export let feature: Feature;
 | 
						|
    export let args: (string | number | boolean)[] = undefined;
 | 
						|
 | 
						|
    let properties = {feature, args: args ?? []};
 | 
						|
    let construct = new UIEventSource<(value, extraProperties) => BaseUIElement>(undefined)
 | 
						|
    $: {
 | 
						|
        construct.setData(InputHelpers.AvailableInputHelpers[type])
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
</script>
 | 
						|
 | 
						|
{#if construct !== undefined}
 | 
						|
    <ToSvelte construct={() => new VariableUiElement(construct.mapD(construct => construct(value, properties)))}/>
 | 
						|
{/if}
 |