1 | import { IsFlatObject, Noop } from './utils';
|
2 | import { RegisterOptions } from './validator';
|
3 | export type InternalFieldName = string;
|
4 | export type FieldName<TFieldValues extends FieldValues> = IsFlatObject<TFieldValues> extends true ? Extract<keyof TFieldValues, string> : string;
|
5 | export type CustomElement<TFieldValues extends FieldValues> = Partial<HTMLElement> & {
|
6 | name: FieldName<TFieldValues>;
|
7 | type?: string;
|
8 | value?: any;
|
9 | disabled?: boolean;
|
10 | checked?: boolean;
|
11 | options?: HTMLOptionsCollection;
|
12 | files?: FileList | null;
|
13 | focus?: Noop;
|
14 | };
|
15 | export type FieldValue<TFieldValues extends FieldValues> = TFieldValues[InternalFieldName];
|
16 | export type FieldValues = Record<string, any>;
|
17 | export type NativeFieldValue = string | number | boolean | null | undefined | unknown[];
|
18 | export type FieldElement<TFieldValues extends FieldValues = FieldValues> = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | CustomElement<TFieldValues>;
|
19 | export type Ref = FieldElement;
|
20 | export type Field = {
|
21 | _f: {
|
22 | ref: Ref;
|
23 | name: InternalFieldName;
|
24 | refs?: HTMLInputElement[];
|
25 | mount?: boolean;
|
26 | } & RegisterOptions;
|
27 | };
|
28 | export type FieldRefs = Partial<{
|
29 | [key: InternalFieldName]: Field | FieldRefs;
|
30 | }>;
|
31 |
|
\ | No newline at end of file |