UNPKG

nette-forms

Version:

Client side script for Nette Forms Component

106 lines (101 loc) 2.73 kB
type FormElement = (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement) & { form: HTMLFormElement; }; type FormElementValue = string | string[] | boolean | FileList | number | null; type Validator = (elem: FormElement, arg: unknown, value: unknown, newValue: { value: unknown; }) => boolean | null; type Rule = { op: string; neg?: boolean; msg: string; arg?: unknown; rules?: Rule[]; condition?: boolean; control?: string; toggle?: Record<string, boolean>; }; type FormError = { element: FormElement; message: string; }; declare class FormValidator { #private; formErrors: FormError[]; validators: Record<string, Validator>; /** * Returns the value of form element. */ getValue(elem: FormElement | RadioNodeList): FormElementValue; /** * Returns the effective value of form element. */ getEffectiveValue(elem: FormElement, filter?: boolean): FormElementValue; /** * Validates form element against given rules. */ validateControl(elem: FormElement, rules?: Rule[], onlyCheck?: boolean, value?: { value: FormElementValue; }, emptyOptional?: boolean): boolean; /** * Validates whole form. */ validateForm(sender: HTMLFormElement | FormElement, onlyCheck?: boolean): boolean; /** * Check if input is disabled. */ isDisabled(elem: FormElement): boolean; /** * Adds error message to the queue. */ addError(elem: FormElement, message: string): void; /** * Display error messages. */ showFormErrors(form: HTMLFormElement, errors: FormError[]): void; /** * Display modal window. */ showModal(message: string, onclose: () => void): void; /** * Validates single rule. */ validateRule(elem: FormElement, op: string, arg: unknown, value?: { value: FormElementValue; }): boolean | null; /** * Process all toggles in form. */ toggleForm(form: HTMLFormElement, event?: Event): void; /** * Process toggles on form element. */ toggleControl(elem: FormElement, rules?: Rule[], success?: boolean | null, firsttime?: boolean, value?: { value: FormElementValue; }, emptyOptional?: boolean): boolean; /** * Displays or hides HTML element. */ toggle(selector: string, visible: boolean, srcElement: FormElement, event?: Event): void; /** * Compact checkboxes */ compactCheckboxes(form: HTMLFormElement, formData: FormData): void; /** * Setup handlers. */ initForm(form: HTMLFormElement): void; initOnLoad(): void; } /** * Converts string to web safe characters [a-z0-9-] text. * @param {string} s * @return {string} */ declare function webalize(s: string): string; type NetteForms = FormValidator & { version: string; webalize: typeof webalize; }; declare let nette: NetteForms; export { nette as default };