formgen/source/logic/main.ts
2026-04-22 07:47:23 +02:00

85 lines
1.3 KiB
TypeScript

namespace formgen
{
/**
*/
let _input : (null | formgen.input.interface_input<unknown>) = null;
/**
*/
async function render(
raw : string,
element_target : Element
) : Promise<void>
{
element_target.innerHTML = "";
try
{
const description : any = formgen.helpers.json.decode(raw);
const input : formgen.input.interface_input<unknown> = formgen.input.from_raw(description);
/*
const form : formgen.class_form<unknown> = new formgen.class_form<unknown>(
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();
}
);
}
}