forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			35 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import {InputElement} from "./InputElement";
							 | 
						||
| 
								 | 
							
								import {UIEventSource} from "../../Logic/UIEventSource";
							 | 
						||
| 
								 | 
							
								import BaseUIElement from "../BaseUIElement";
							 | 
						||
| 
								 | 
							
								import {Translation} from "../i18n/Translation";
							 | 
						||
| 
								 | 
							
								import {SubstitutedTranslation} from "../SubstitutedTranslation";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class InputElementWrapper<T> extends InputElement<T> {
							 | 
						||
| 
								 | 
							
								    public readonly IsSelected: UIEventSource<boolean>;
							 | 
						||
| 
								 | 
							
								    private readonly _inputElement: InputElement<T>;
							 | 
						||
| 
								 | 
							
								    private readonly _renderElement: BaseUIElement
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    constructor(inputElement: InputElement<T>, translation: Translation, key: string, tags: UIEventSource<any>) {
							 | 
						||
| 
								 | 
							
								        super()
							 | 
						||
| 
								 | 
							
								        this._inputElement = inputElement;
							 | 
						||
| 
								 | 
							
								        this.IsSelected = inputElement.IsSelected
							 | 
						||
| 
								 | 
							
								        const mapping = new Map<string, BaseUIElement>()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        mapping.set(key, inputElement)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this._renderElement = new SubstitutedTranslation(translation, tags, mapping)
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    GetValue(): UIEventSource<T> {
							 | 
						||
| 
								 | 
							
								        return this._inputElement.GetValue();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    IsValid(t: T): boolean {
							 | 
						||
| 
								 | 
							
								        return this._inputElement.IsValid(t);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected InnerConstructElement(): HTMLElement {
							 | 
						||
| 
								 | 
							
								        return this._renderElement.ConstructElement();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |