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}
 |