forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {InputElement} from "../Input/InputElement";
 | 
						|
import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
import {UIElement} from "../UIElement";
 | 
						|
import {MultiTagInput} from "../Input/MultiTagInput";
 | 
						|
import SettingsTable from "./SettingsTable";
 | 
						|
import SingleSetting from "./SingleSetting";
 | 
						|
import MultiLingualTextFields from "../Input/MultiLingualTextFields";
 | 
						|
import Combine from "../Base/Combine";
 | 
						|
 | 
						|
export default class PresetInputPanel extends InputElement<{
 | 
						|
    title: string | any,
 | 
						|
    tags: string[],
 | 
						|
    description?: string | any
 | 
						|
}> {
 | 
						|
    private readonly _value: UIEventSource<{
 | 
						|
        title: string | any,
 | 
						|
        tags: string[],
 | 
						|
        description?: string | any
 | 
						|
    }>;
 | 
						|
    private readonly panel: UIElement;
 | 
						|
 | 
						|
 | 
						|
    constructor(currentlySelected: UIEventSource<SingleSetting<any>>, languages: UIEventSource<string[]>) {
 | 
						|
        super();
 | 
						|
        this._value = new UIEventSource({tags: [], title: {}});
 | 
						|
 | 
						|
 | 
						|
        const self = this;
 | 
						|
        function s(input: InputElement<any>, path: string, name: string, description: string){
 | 
						|
            return new SingleSetting(self._value, input, path, name, description)
 | 
						|
        }
 | 
						|
        this.panel = new SettingsTable([
 | 
						|
            s(new MultiTagInput(), "tags","Preset tags","These tags will be applied on the newly created point"),
 | 
						|
            s(new MultiLingualTextFields(languages), "title","Preset title","This little text is shown in bold on the 'create new point'-button" ),
 | 
						|
            s(new MultiLingualTextFields(languages), "description","Description", "This text is shown in the button as description when creating a new point")
 | 
						|
        ], currentlySelected).SetStyle("display: block; border: 1px solid black; border-radius: 1em;padding: 1em;");
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    InnerRender(): string {
 | 
						|
        return new Combine([this.panel]).Render();
 | 
						|
    }
 | 
						|
 | 
						|
    GetValue(): UIEventSource<{
 | 
						|
        title: string | any,
 | 
						|
        tags: string[],
 | 
						|
        description?: string | any
 | 
						|
    }> {
 | 
						|
        return this._value;
 | 
						|
    }
 | 
						|
 | 
						|
    IsSelected: UIEventSource<boolean> = new UIEventSource<boolean>(false);
 | 
						|
 | 
						|
    IsValid(t: any): boolean {
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
} |