import type FormService from './FormService'; import type { RulesT, ValidateResultT } from './types'; export default class FormServiceControl { formService: FormService; fieldName: string; rules?: RulesT; error?: true | string; constructor(formService: FormService, fieldName: string, rules?: RulesT); /** * Переводит RulesT в RulesObjectT, чтобы валидаторы всегда были объектом */ parseRules(rules: RulesT): void; /** * Запускается после монтирования в компонент, чтобы * реактивность нормально реагировала */ init(initialValue: string): void; /** * Регистрация поля в форме */ register(initialValue: string): void; /** * Обновление валидаторов при изменении */ updateValidators(rules: RulesT): void; /** * Изменение значения в поле */ change(newValue: string): void; /** * Показать ошибку в форме */ showError(): void; /** * Изменить сообщение об ошибке, если оно показывается сейчас * * Необходимо после смены языка (чтобы показать сообщение на другом языке) * и после смены валидаторов (другие валидаторы = другие ошибки) */ changeErrorMessage(): void; /** * Текущее значение поля, хранится в форме */ get value(): string; isValid: ValidateResultT; /** * Валидно ли значение с учетом текущих валидаторов */ validateField(): void; saveValidation(result: ValidateResultT): void; /** * Сообщение об ошибке */ get errorMessage(): true | string; /** * Название валидатора, который не прошел успешно */ get errorKey(): true | string; }