/*! * This file is part of the "malle" library * Copyright 2021, 2022 Nicolas CARPi @ Deltablot * License MIT * https://github.com/deltablot/malle */ type Lazy = T | Promise | (() => T | Promise); export declare enum InputType { Color = "color", Date = "date", Datetime = "datetime-local", Email = "email", Number = "number", Select = "select", Text = "text", Textarea = "textarea", Time = "time", Url = "url" } export declare enum EventType { Click = "click", Mouseenter = "mouseenter", Mouseover = "mouseover" } export declare enum Action { Submit = "submit", Cancel = "cancel", Ignore = "ignore" } export interface SelectOptions { value?: string; text?: string; selected?: boolean; } export interface Options { after?(original: HTMLElement, event: Event, value: string): boolean; before?(original: HTMLElement, event: Event): boolean; cancel?: string; cancelClasses?: Array; debug?: boolean; event?: EventType; focus?: boolean; formClasses?: Array; fun(value: string, original: HTMLElement, event: Event, input: HTMLInputElement | HTMLSelectElement): Promise; inputClasses?: Array; inputType?: InputType; listenNow?: boolean; listenOn?: string; onBlur?: Action; onCancel?(original: HTMLElement, event: Event, input: HTMLInputElement | HTMLSelectElement): boolean | Promise; onEdit?(original: HTMLElement, event: Event, input: HTMLInputElement | HTMLSelectElement): boolean | Promise; onEnter?: Action; onEscape?: Action; placeholder?: string; requireDiff?: boolean; returnedValueIsTrustedHtml?: boolean; selectOptions?: Lazy; selectOptionsValueKey?: string; selectOptionsTextKey?: string; submit?: string; submitClasses?: Array; tooltip?: string; inputValue?: string; } export declare class Malle { form: HTMLFormElement; opt: Options; original: HTMLElement; input: HTMLInputElement | HTMLSelectElement; innerFun: string; ignoreBlur: boolean; constructor(options: Options); normalizeOptions(options: Options): Options; listen(): this; debug(msg: string): void; submit(event: Event): boolean; cancel(event: Event): boolean; handleBlur(event: Event): void; handleKeypress(event: KeyboardEvent): boolean; getInput(): Promise; process(event: Event): Promise; } export {};