From 9d64e0510ce33a80c3c74e2dbbb3d9a69364e247 Mon Sep 17 00:00:00 2001 From: wlodekm Date: Sat, 9 Nov 2024 12:38:31 +0200 Subject: initial --- v2/screenbuilder.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 v2/screenbuilder.ts (limited to 'v2/screenbuilder.ts') diff --git a/v2/screenbuilder.ts b/v2/screenbuilder.ts new file mode 100644 index 0000000..dcf1af7 --- /dev/null +++ b/v2/screenbuilder.ts @@ -0,0 +1,30 @@ +import { Screen } from "./screen.ts"; +import * as elements from "./elements.ts"; + +export enum ElemType { + TextElem, + InputElem, + ButtonElem, +} + +const types = { + 0: elements.Text, + 1: elements.Input, + 2: elements.Button +} + +type BuilderElem = { + type: ElemType, + id: string, + data: any[] +} + +export function build(data: {elements: BuilderElem[],focus?:string,name:string}) { + const screen = new Screen(data.name); + for (const element of data.elements) { + //@ts-ignore + screen.addElement(element.id, new types[element.type](...element.data)) + } + if (data.focus) screen.focus(data.focus); + screen.ready() +} \ No newline at end of file -- cgit 1.4.1-2-gfad0