FormStatusMachine
Defined in: core/utils/status-machine.ts:53
FormStatusMachine - управляет состоянием поля формы
Предоставляет:
- Единый источник истины для статуса
- Computed signals для derived состояний (valid, invalid, pending, disabled)
- Валидацию переходов между состояниями
Example
const statusMachine = new FormStatusMachine('valid');
// Начало валидации
statusMachine.startValidation();
console.log(statusMachine.pending.value); // true
// Завершение валидации с ошибками
statusMachine.completeValidation(true);
console.log(statusMachine.invalid.value); // true
// Отключение поля
statusMachine.disable();
console.log(statusMachine.disabled.value); // true
Constructors
Constructor
new FormStatusMachine(initial?): FormStatusMachine;
Defined in: core/utils/status-machine.ts:75
Parameters
initial?
FieldStatus = 'valid'
Начальный статус (по умолчанию 'valid')
Returns
FormStatusMachine
Methods
canValidate()
canValidate(): boolean;
Defined in: core/utils/status-machine.ts:225
Проверить, можно ли начать валидацию
Returns
boolean
completeValidation()
completeValidation(hasErrors): void;
Defined in: core/utils/status-machine.ts:121
Завершить валидацию
Parameters
hasErrors
boolean
Есть ли ошибки валидации
Returns
void
Example
// Валидация успешна
statusMachine.completeValidation(false);
// status: 'valid'
// Есть ошибки
statusMachine.completeValidation(true);
// status: 'invalid'
disable()
disable(): void;
Defined in: core/utils/status-machine.ts:159
Отключить поле
Переводит статус в 'disabled'
Returns
void
Example
statusMachine.disable();
// status: 'disabled'
dispatch()
dispatch(event): void;
Defined in: core/utils/status-machine.ts:192
Обработать событие (альтернативный API)
Parameters
event
Событие для обработки
Returns
void
Example
statusMachine.dispatch({ type: 'START_VALIDATION' });
statusMachine.dispatch({ type: 'VALIDATION_FAILURE' });
enable()
enable(hasErrors?): void;
Defined in: core/utils/status-machine.ts:177
Включить поле
Parameters
hasErrors?
boolean = false
Есть ли ошибки (определяет valid/invalid)
Returns
void
Example
statusMachine.enable(false);
// status: 'valid'
statusMachine.enable(true);
// status: 'invalid'
getStatus()
getStatus(): FieldStatus;
Defined in: core/utils/status-machine.ts:218
Получить текущий статус
Returns
setErrors()
setErrors(hasErrors): void;
Defined in: core/utils/status-machine.ts:142
Установить ошибки напрямую (без перехода через pending)
Используется для синхронной валидации или установки ошибок извне
Parameters
hasErrors
boolean
Есть ли ошибки
Returns
void
Example
statusMachine.setErrors(true);
// status: 'invalid'
startValidation()
startValidation(): void;
Defined in: core/utils/status-machine.ts:99
Начать валидацию
Переводит статус в 'pending' если поле не отключено
Returns
void
Example
statusMachine.startValidation();
// status: 'pending'
Properties
disabled
readonly disabled: ReadonlySignal<boolean>;
Defined in: core/utils/status-machine.ts:70
Поле отключено
invalid
readonly invalid: ReadonlySignal<boolean>;
Defined in: core/utils/status-machine.ts:64
Поле невалидно
pending
readonly pending: ReadonlySignal<boolean>;
Defined in: core/utils/status-machine.ts:67
Идет валидация
status
readonly status: ReadonlySignal<FieldStatus>;
Defined in: core/utils/status-machine.ts:58
Публичный read-only сигнал статуса
valid
readonly valid: ReadonlySignal<boolean>;
Defined in: core/utils/status-machine.ts:61
Поле валидно