@ordojs/forms
Version:
Comprehensive form handling system for OrdoJS
63 lines • 2.46 kB
TypeScript
/**
* Core form state management with reactive field-level tracking
*/
import type { FieldConfig, FieldError, FieldState, FieldValue, FieldValues, FormConfig, FormInstance, FormState } from './types.js';
export declare class ReactiveForm implements FormInstance {
private state;
private fieldConfigs;
private fieldStates;
private subscribers;
private fieldSubscribers;
private validationTimeouts;
private config;
constructor(config?: FormConfig);
private createInitialState;
private createInitialFieldState;
private notifySubscribers;
private notifyFieldSubscribers;
private validateFieldInternal;
private updateFormValidity;
private debounceValidation;
getState(): FormState;
getFieldState(name: string): FieldState | undefined;
getValues(): FieldValues;
getValue(name: string): FieldValue;
getErrors(): Record<string, FieldError>;
getError(name: string): FieldError | null;
setValue(name: string, value: FieldValue, shouldValidate?: boolean): void;
setValues(values: FieldValues, shouldValidate?: boolean): void;
setError(name: string, error: FieldError): void;
setErrors(errors: Record<string, FieldError>): void;
clearError(name: string): void;
clearErrors(): void;
registerField(config: FieldConfig): () => void;
unregisterField(name: string): void;
touchField(name: string): void;
untouchField(name: string): void;
focusField(name: string): void;
blurField(name: string): void;
validateField(name: string): Promise<boolean>;
validateForm(): Promise<boolean>;
isValid(): boolean;
isValidating(): boolean;
submit(): Promise<void>;
reset(values?: FieldValues): void;
resetField(name: string, value?: FieldValue): void;
isDirty(): boolean;
isTouched(): boolean;
isSubmitting(): boolean;
hasBeenSubmitted(): boolean;
getSubmitCount(): number;
handleSubmit(event?: Event): Promise<void>;
handleReset(event?: Event): void;
handleFieldChange(name: string, value: FieldValue): void;
handleFieldBlur(name: string): void;
handleFieldFocus(name: string): void;
subscribe(callback: (state: FormState) => void): () => void;
subscribeToField(name: string, callback: (state: FieldState) => void): () => void;
}
/**
* Create a new reactive form instance
*/
export declare function createForm(config?: FormConfig): FormInstance;
//# sourceMappingURL=form.d.ts.map