UNPKG

ui-framework-jps

Version:

A simple UI framework for state management and UI components

49 lines (48 loc) 2.2 kB
import { FieldListener } from "../field/FieldListener"; import { BasicButtonElement, ItemEventType } from "../../CommonTypes"; import { Form } from "../form/Form"; import { ItemViewUIDefinition } from "../view/item/ItemViewUITypeDefs"; import { ItemViewListener } from "../view/item/ItemViewListener"; import { ItemView } from "../view/item/ItemView"; export declare type ItemFactoryResponse = { top: HTMLElement; unsavedMessage?: HTMLElement; fields: HTMLInputElement[]; textFields: HTMLTextAreaElement[]; selectFields: HTMLSelectElement[]; radioButtonGroups: { container: HTMLElement; radioButtons: HTMLInputElement[]; }[]; compositeFields?: { displayElement: HTMLInputElement; actionButtons: HTMLButtonElement[]; }[]; compositeArrayFields?: { displayElement: HTMLUListElement; actionButtons: HTMLButtonElement[]; }[]; linkedFields?: { displayElement: HTMLInputElement; actionButtons: HTMLButtonElement[]; }[]; linkedArrayFields?: { displayElement: HTMLUListElement; actionButtons: HTMLButtonElement[]; }[]; buttons?: ItemViewButtonElements; }; export declare type ItemViewButtonElements = { deleteButton?: HTMLButtonElement; cancelButton?: HTMLButtonElement; saveButton?: HTMLButtonElement; }; export declare class ItemViewElementFactory { private static _instance; private constructor(); static getInstance(): ItemViewElementFactory; createFormElements(form: Form, listeners: ItemViewListener[], formConfig: ItemViewUIDefinition, fieldListeners: FieldListener[]): ItemFactoryResponse; createTableRowElements(itemId: string, view: ItemView, listeners: ItemViewListener[], config: ItemViewUIDefinition, fieldListeners: FieldListener[]): ItemFactoryResponse; createButton(form: Form, formConfig: ItemViewUIDefinition, listeners: ItemViewListener[], buttonDef: BasicButtonElement, eventType: ItemEventType, fieldId?: string, actionName?: string): HTMLButtonElement; protected createButtons(formConfig: ItemViewUIDefinition, formEl: HTMLFormElement, form: Form, listeners: ItemViewListener[]): ItemViewButtonElements; }