import { Action, app, expose, Form, fs, Icon, IconEnum, List, Markdown, path, shell, TemplateUiCommand, toast, ui } from "@kksh/api/ui/template" class ExtensionTemplate extends TemplateUiCommand { async onFormSubmit(value: Record): Promise { console.log("Form submitted", value) toast.success(`Form submitted: ${JSON.stringify(value)}`) } async load() { console.log("form-view load") const markdown = new Markdown(`# Hello World `) // markdown.toModel // return ui.render(markdown) const form = new Form.Form({ title: "Form 1", key: "form1", showFormDataDebug: true, submitBtnText: "Download", fields: [ new Form.DateField({ key: "birthday", label: "Date of Birth", hideLabel: false, description: "Enter your date of birth" }), new Form.NumberField({ key: "age", label: "Age", default: 18, placeholder: "Enter your age", optional: true, description: "Enter your age" }), new Form.InputField({ key: "name", label: "Name", default: "Huakun" }), new Form.InputField({ key: "name2", label: "Name 2" }), new Form.BooleanField({ key: "isActive", label: "Is Active", description: "Is the user active?" }), new Form.SelectField({ key: "gender", label: "Gender", options: ["Male", "Female", "Other"], description: "Select your gender" }) ] }) console.log(form) console.log(form.toModel()) return ui.render(form) } async onActionSelected(actionValue: string): Promise { switch (actionValue) { case "open": break default: break } } onSearchTermChange(term: string): Promise { console.log("Search term changed to:", term) return Promise.resolve() } onListItemSelected(value: string): Promise { console.log("Item selected:", value) return Promise.resolve() } } expose(new ExtensionTemplate())