namespace formgen { /** */ let _input : (null | formgen.input.interface_input) = null; /** */ async function render( raw : string, element_target : Element ) : Promise { element_target.innerHTML = ""; try { const description : any = formgen.helpers.json.decode(raw); const input : formgen.input.interface_input = formgen.input.from_raw(description); /* const form : formgen.class_form = new formgen.class_form( input, [ {"target": "/", "label": "abschicken"}, ] ); await form.setup(element_target) */ await input.setup(element_target); _input = input; } catch (error) { console.error(error); } } /** */ function main( ) : void { document.querySelector("#render").addEventListener( "click", () => { render( (document.querySelector("#input") as HTMLInputElement).value, document.querySelector("#output") ); } ); document.querySelector("#read").addEventListener( "click", async () => { if (_input === null) { console.warn("no input present"); } else { const value = await _input.read(); console.info(value); } } ); } /** */ export function entry( ) : void { document.addEventListener( "DOMContentLoaded", () => { main(); } ); } }