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