forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {UIEventSource} from "./Logic/UIEventSource";
 | 
						|
import TagRenderingQuestion from "./UI/Popup/TagRenderingQuestion";
 | 
						|
import TagRenderingConfig from "./Models/ThemeConfig/TagRenderingConfig";
 | 
						|
import {RadioButton} from "./UI/Input/RadioButton";
 | 
						|
import {FixedInputElement} from "./UI/Input/FixedInputElement";
 | 
						|
import {VariableUiElement} from "./UI/Base/VariableUIElement";
 | 
						|
import ValidatedTextField from "./UI/Input/ValidatedTextField";
 | 
						|
import VariableInputElement from "./UI/Input/VariableInputElement";
 | 
						|
 | 
						|
const config = new TagRenderingConfig({
 | 
						|
    question: "What is the name?",
 | 
						|
    render: "The name is {name}",
 | 
						|
    freeform: {
 | 
						|
        key: 'name',
 | 
						|
        inline:true
 | 
						|
    },
 | 
						|
    mappings:[
 | 
						|
        {
 | 
						|
            if:"noname=yes",
 | 
						|
            then: "This feature has no name"
 | 
						|
        }
 | 
						|
    ]
 | 
						|
})
 | 
						|
 | 
						|
const tags = new UIEventSource<any>({
 | 
						|
    name: "current feature name"
 | 
						|
})
 | 
						|
 | 
						|
/*new TagRenderingQuestion(
 | 
						|
    tags, config, undefined).AttachTo("maindiv")*/
 | 
						|
const options = new UIEventSource<string[]>([])
 | 
						|
const rb =
 | 
						|
    new VariableInputElement(
 | 
						|
        options.map(options  => {
 | 
						|
            console.trace("Construction an input element for", options)
 | 
						|
           return new RadioButton(
 | 
						|
                [
 | 
						|
                    ...options.map(o => new FixedInputElement(o,o)),
 | 
						|
                    new FixedInputElement<string>("abc", "abc"),
 | 
						|
                    ValidatedTextField.ForType().ConstructInputElement()
 | 
						|
                ])
 | 
						|
        }
 | 
						|
        
 | 
						|
    )
 | 
						|
    
 | 
						|
)
 | 
						|
rb.AttachTo("maindiv")
 | 
						|
rb.GetValue().addCallbackAndRun(v => console.log("Current value is",v))
 | 
						|
new VariableUiElement(rb.GetValue()).AttachTo("extradiv")
 | 
						|
 | 
						|
window.setTimeout(() => {options.setData(["xyz","foo","bar"])},10000) |