nette-forms
Version:
Client side script for Nette Forms Component
106 lines (101 loc) • 2.73 kB
TypeScript
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 };