@jcoreio/zod-forms 2.0.0-beta.1 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/FormContext.d.ts CHANGED
@@ -31,9 +31,9 @@ export type FormContextProps<T extends z.ZodTypeAny> = {
31
31
  selectFormStatus: SelectFormStatus;
32
32
  selectFieldErrorMap: SelectFieldErrorMap;
33
33
  selectFormValues: SelectFormValues<T>;
34
- getParsedValues: () => DeepPartial<z.output<T>> | undefined;
34
+ getParsedValues: () => z.output<T> | undefined;
35
35
  getValues: () => DeepPartial<z.input<T>> | undefined;
36
- getInitialParsedValues: () => DeepPartial<z.output<T>> | undefined;
36
+ getInitialParsedValues: () => z.output<T> | undefined;
37
37
  getInitialValues: () => DeepPartial<z.input<T>> | undefined;
38
38
  getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>;
39
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["src/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,eAAO,MAAM,WAAW,sDAC0C,CAAA;AAElE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACpD,sBAAsB,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAClE,gBAAgB,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,SAAS,EAAE,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAA;CACvE,CAAA"}
1
+ {"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["src/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,eAAO,MAAM,WAAW,sDAC0C,CAAA;AAElE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACpD,sBAAsB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACrD,gBAAgB,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,SAAS,EAAE,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAA;CACvE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.js","names":["_react","_interopRequireDefault","require","FormContext","exports","React","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => DeepPartial<z.output<T>> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => DeepPartial<z.output<T>> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAoBO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBACtBE,iBAAK,CAACC,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FormContext.js","names":["_react","_interopRequireDefault","require","FormContext","exports","React","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAoBO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBACtBE,iBAAK,CAACC,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.mjs","names":["React","FormContext","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => DeepPartial<z.output<T>> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => DeepPartial<z.output<T>> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,WAAW,gBACtBD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FormContext.mjs","names":["React","FormContext","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,WAAW,gBACtBD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
package/FormState.d.ts CHANGED
@@ -6,7 +6,7 @@ export type FieldMeta = {
6
6
  };
7
7
  export type SubmitHandler<T extends z.ZodTypeAny> = (parsedValues: z.output<T>, options: {
8
8
  initialValues?: DeepPartial<z.input<T>>;
9
- initialParsedValues?: DeepPartial<z.output<T>>;
9
+ initialParsedValues?: z.output<T>;
10
10
  }) => void | Promise<void>;
11
11
  export type SubmitSuccededHandler = () => void;
12
12
  export type SubmitFailedHandler = (error: Error) => void;
@@ -15,11 +15,11 @@ export type FormState<T extends z.ZodTypeAny> = {
15
15
  initialized: boolean;
16
16
  fieldMeta: Record<string, FieldMeta>;
17
17
  values?: DeepPartial<z.input<T>>;
18
- parsedValues?: DeepPartial<z.output<T>>;
18
+ parsedValues?: z.output<T>;
19
19
  submittedParsedValues?: z.output<T>;
20
20
  submittedValues?: z.input<T>;
21
21
  initialValues?: DeepPartial<z.input<T>>;
22
- initialParsedValues?: DeepPartial<z.output<T>>;
22
+ initialParsedValues?: z.output<T>;
23
23
  validationError?: any;
24
24
  submitPromise?: Promise<void>;
25
25
  onSubmit: Set<SubmitHandler<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"FormState.d.ts","sourceRoot":"","sources":["src/FormState.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,CAClD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE;IACP,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/C,KACE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAA;AAE9C,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAExD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,qBAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACnC,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,iBAAiB,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAC7C,cAAc,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxC,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"FormState.d.ts","sourceRoot":"","sources":["src/FormState.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,CAClD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE;IACP,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAClC,KACE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAA;AAE9C,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAExD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1B,qBAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACnC,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACjC,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,iBAAiB,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAC7C,cAAc,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxC,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB,CAAA"}
package/FormState.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"FormState.js","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n parsedValues: z.output<T>,\n options: {\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: DeepPartial<z.output<T>>\n }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n values?: DeepPartial<z.input<T>>\n parsedValues?: DeepPartial<z.output<T>>\n submittedParsedValues?: z.output<T>\n submittedValues?: z.input<T>\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: DeepPartial<z.output<T>>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"FormState.js","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n parsedValues: z.output<T>,\n options: {\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: z.output<T>\n }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n values?: DeepPartial<z.input<T>>\n parsedValues?: z.output<T>\n submittedParsedValues?: z.output<T>\n submittedValues?: z.input<T>\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: z.output<T>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
package/FormState.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"FormState.mjs","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n parsedValues: z.output<T>,\n options: {\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: DeepPartial<z.output<T>>\n }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n values?: DeepPartial<z.input<T>>\n parsedValues?: DeepPartial<z.output<T>>\n submittedParsedValues?: z.output<T>\n submittedValues?: z.input<T>\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: DeepPartial<z.output<T>>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"FormState.mjs","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n parsedValues: z.output<T>,\n options: {\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: z.output<T>\n }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n values?: DeepPartial<z.input<T>>\n parsedValues?: z.output<T>\n submittedParsedValues?: z.output<T>\n submittedValues?: z.input<T>\n initialValues?: DeepPartial<z.input<T>>\n initialParsedValues?: z.output<T>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
@@ -2,25 +2,25 @@ import z from 'zod';
2
2
  import { FormState } from './FormState';
3
3
  export type SelectFormValues<T extends z.ZodTypeAny> = ReturnType<typeof createSelectFormValues<T>>;
4
4
  export declare function createSelectFormValues<T extends z.ZodTypeAny>(): ((state: FormState<T>) => {
5
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
5
+ parsedValues: z.output<T> | undefined;
6
6
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
7
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
7
+ initialParsedValues: z.output<T> | undefined;
8
8
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
9
9
  }) & {
10
10
  clearCache: () => void;
11
11
  resultsCount: () => number;
12
12
  resetResultsCount: () => void;
13
13
  } & {
14
- resultFunc: (resultFuncArgs_0: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_1: unknown extends import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined, resultFuncArgs_2: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_3: unknown extends import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined) => {
15
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
14
+ resultFunc: (resultFuncArgs_0: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_1: unknown extends z.output<T> | undefined ? [z.output<T> | undefined] extends [null] ? z.output<T> | undefined : any : z.output<T> | undefined, resultFuncArgs_2: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_3: unknown extends z.output<T> | undefined ? [z.output<T> | undefined] extends [null] ? z.output<T> | undefined : any : z.output<T> | undefined) => {
15
+ parsedValues: z.output<T> | undefined;
16
16
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
17
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
17
+ initialParsedValues: z.output<T> | undefined;
18
18
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
19
19
  };
20
- memoizedResultFunc: ((resultFuncArgs_0: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_1: unknown extends import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined, resultFuncArgs_2: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_3: unknown extends import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined) => {
21
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
20
+ memoizedResultFunc: ((resultFuncArgs_0: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_1: unknown extends z.output<T> | undefined ? [z.output<T> | undefined] extends [null] ? z.output<T> | undefined : any : z.output<T> | undefined, resultFuncArgs_2: unknown extends import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined ? [import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined] extends [null] ? import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined : any : import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, resultFuncArgs_3: unknown extends z.output<T> | undefined ? [z.output<T> | undefined] extends [null] ? z.output<T> | undefined : any : z.output<T> | undefined) => {
21
+ parsedValues: z.output<T> | undefined;
22
22
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
23
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
23
+ initialParsedValues: z.output<T> | undefined;
24
24
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
25
25
  }) & {
26
26
  clearCache: () => void;
@@ -28,12 +28,12 @@ export declare function createSelectFormValues<T extends z.ZodTypeAny>(): ((stat
28
28
  resetResultsCount: () => void;
29
29
  };
30
30
  lastResult: () => {
31
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
31
+ parsedValues: z.output<T> | undefined;
32
32
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
33
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
33
+ initialParsedValues: z.output<T> | undefined;
34
34
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
35
35
  };
36
- dependencies: [(state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, (state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined, (state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, (state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined];
36
+ dependencies: [(state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, (state: FormState<T>) => z.output<T> | undefined, (state: FormState<T>) => import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined, (state: FormState<T>) => z.output<T> | undefined];
37
37
  recomputations: () => number;
38
38
  resetRecomputations: () => void;
39
39
  dependencyRecomputations: () => number;
@@ -1 +1 @@
1
- {"version":3,"file":"createSelectFormValues.d.ts","sourceRoot":"","sources":["src/createSelectFormValues.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,UAAU,CAC/D,OAAO,sBAAsB,CAAC,CAAC,CAAC,CACjC,CAAA;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAGzC,SAAS,CAAC,CAAC,CAAC,+EADN,SAAS,CAAC,CAAC,CAAC,gFAGX,SAAS,CAAC,CAAC,CAAC,+EADN,SAAS,CAAC,CAAC,CAAC;;;;;;;;EAG5C"}
1
+ {"version":3,"file":"createSelectFormValues.d.ts","sourceRoot":"","sources":["src/createSelectFormValues.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,UAAU,CAC/D,OAAO,sBAAsB,CAAC,CAAC,CAAC,CACjC,CAAA;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAGzC,SAAS,CAAC,CAAC,CAAC,+EADN,SAAS,CAAC,CAAC,CAAC,sCAGX,SAAS,CAAC,CAAC,CAAC,+EADN,SAAS,CAAC,CAAC,CAAC;;;;;;;;EAG5C"}
@@ -19,9 +19,9 @@ export declare function createZodForm<T extends z.ZodTypeAny>({ schema, }: {
19
19
  useFormContext: () => import("./FormContext").FormContextProps<T>;
20
20
  useFormStatus: typeof useFormStatus;
21
21
  useFormValues: () => {
22
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
22
+ parsedValues: z.output<T> | undefined;
23
23
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
24
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
24
+ initialParsedValues: z.output<T> | undefined;
25
25
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
26
26
  };
27
27
  useInitialize: (options: Omit<import("./actions/initialize").InitializeAction<T>, "type">, deps?: import("react").DependencyList) => void;
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "react": "^18.0.0"
32
32
  },
33
- "version": "2.0.0-beta.1",
33
+ "version": "2.0.0-beta.2",
34
34
  "sideEffects": false,
35
35
  "engines": {
36
36
  "node": ">=16"
@@ -9,11 +9,11 @@ export declare function addHandlersReducer<T extends z.ZodTypeAny>(state: FormSt
9
9
  initialized: boolean;
10
10
  fieldMeta: Record<string, import("../FormState").FieldMeta>;
11
11
  values?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
12
- parsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
12
+ parsedValues?: z.output<T> | undefined;
13
13
  submittedParsedValues?: z.output<T> | undefined;
14
14
  submittedValues?: z.input<T> | undefined;
15
15
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
16
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
16
+ initialParsedValues?: z.output<T> | undefined;
17
17
  validationError?: any;
18
18
  submitPromise?: Promise<void>;
19
19
  submitting: boolean;
@@ -9,11 +9,11 @@ export declare function removeHandlersReducer<T extends z.ZodTypeAny>(state: For
9
9
  initialized: boolean;
10
10
  fieldMeta: Record<string, import("../FormState").FieldMeta>;
11
11
  values?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
12
- parsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
12
+ parsedValues?: z.output<T> | undefined;
13
13
  submittedParsedValues?: z.output<T> | undefined;
14
14
  submittedValues?: z.input<T> | undefined;
15
15
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
16
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
16
+ initialParsedValues?: z.output<T> | undefined;
17
17
  validationError?: any;
18
18
  submitPromise?: Promise<void>;
19
19
  submitting: boolean;
@@ -16,7 +16,7 @@ export declare const createSetParsedValueReducer: <T extends z.ZodTypeAny>({ sch
16
16
  submittedParsedValues?: z.output<T> | undefined;
17
17
  submittedValues?: z.input<T> | undefined;
18
18
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
19
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
19
+ initialParsedValues?: z.output<T> | undefined;
20
20
  submitPromise?: Promise<void>;
21
21
  onSubmit: Set<import("../FormState").SubmitHandler<T>>;
22
22
  onSubmitSucceeded: Set<import("../FormState").SubmitSuccededHandler>;
@@ -28,14 +28,14 @@ export declare const createSetParsedValueReducer: <T extends z.ZodTypeAny>({ sch
28
28
  submitError: undefined;
29
29
  validationError: undefined;
30
30
  values: z.input<T>;
31
- parsedValues: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
31
+ parsedValues: z.output<T> | undefined;
32
32
  mounted: boolean;
33
33
  initialized: boolean;
34
34
  fieldMeta: Record<string, import("../FormState").FieldMeta>;
35
35
  submittedParsedValues?: z.output<T> | undefined;
36
36
  submittedValues?: z.input<T> | undefined;
37
37
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
38
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
38
+ initialParsedValues?: z.output<T> | undefined;
39
39
  submitPromise?: Promise<void>;
40
40
  onSubmit: Set<import("../FormState").SubmitHandler<T>>;
41
41
  onSubmitSucceeded: Set<import("../FormState").SubmitSuccededHandler>;
@@ -13,9 +13,9 @@ export declare function setSubmitStatusReducer<T extends z.ZodTypeAny>(state: Fo
13
13
  initialized: boolean;
14
14
  fieldMeta: Record<string, import("../FormState").FieldMeta>;
15
15
  values?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
16
- parsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
16
+ parsedValues?: z.output<T> | undefined;
17
17
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
18
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
18
+ initialParsedValues?: z.output<T> | undefined;
19
19
  validationError?: any;
20
20
  onSubmit: Set<import("../FormState").SubmitHandler<T>>;
21
21
  onSubmitSucceeded: Set<import("../FormState").SubmitSuccededHandler>;
@@ -15,7 +15,7 @@ export declare const createSetValueReducer: <T extends z.ZodTypeAny>({ schema, }
15
15
  submittedParsedValues?: z.output<T> | undefined;
16
16
  submittedValues?: z.input<T> | undefined;
17
17
  initialValues?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
18
- initialParsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
18
+ initialParsedValues?: z.output<T> | undefined;
19
19
  submitPromise?: Promise<void>;
20
20
  onSubmit: Set<import("../FormState").SubmitHandler<T>>;
21
21
  onSubmitSucceeded: Set<import("../FormState").SubmitSuccededHandler>;
@@ -12,7 +12,7 @@ export declare function submitSucceededReducer<T extends z.ZodTypeAny>(state: Fo
12
12
  initialized: boolean;
13
13
  fieldMeta: Record<string, import("../FormState").FieldMeta>;
14
14
  values?: import("../util/DeepPartial").DeepPartial<z.input<T>> | undefined;
15
- parsedValues?: import("../util/DeepPartial").DeepPartial<z.output<T>> | undefined;
15
+ parsedValues?: z.output<T> | undefined;
16
16
  submittedParsedValues?: z.output<T> | undefined;
17
17
  submittedValues?: z.input<T> | undefined;
18
18
  validationError?: any;
@@ -37,9 +37,9 @@ export type FormContextProps<T extends z.ZodTypeAny> = {
37
37
  selectFormStatus: SelectFormStatus
38
38
  selectFieldErrorMap: SelectFieldErrorMap
39
39
  selectFormValues: SelectFormValues<T>
40
- getParsedValues: () => DeepPartial<z.output<T>> | undefined
40
+ getParsedValues: () => z.output<T> | undefined
41
41
  getValues: () => DeepPartial<z.input<T>> | undefined
42
- getInitialParsedValues: () => DeepPartial<z.output<T>> | undefined
42
+ getInitialParsedValues: () => z.output<T> | undefined
43
43
  getInitialValues: () => DeepPartial<z.input<T>> | undefined
44
44
  getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>
45
45
  }
package/src/FormState.ts CHANGED
@@ -10,7 +10,7 @@ export type SubmitHandler<T extends z.ZodTypeAny> = (
10
10
  parsedValues: z.output<T>,
11
11
  options: {
12
12
  initialValues?: DeepPartial<z.input<T>>
13
- initialParsedValues?: DeepPartial<z.output<T>>
13
+ initialParsedValues?: z.output<T>
14
14
  }
15
15
  ) => void | Promise<void>
16
16
 
@@ -23,11 +23,11 @@ export type FormState<T extends z.ZodTypeAny> = {
23
23
  initialized: boolean
24
24
  fieldMeta: Record<string, FieldMeta>
25
25
  values?: DeepPartial<z.input<T>>
26
- parsedValues?: DeepPartial<z.output<T>>
26
+ parsedValues?: z.output<T>
27
27
  submittedParsedValues?: z.output<T>
28
28
  submittedValues?: z.input<T>
29
29
  initialValues?: DeepPartial<z.input<T>>
30
- initialParsedValues?: DeepPartial<z.output<T>>
30
+ initialParsedValues?: z.output<T>
31
31
  validationError?: any
32
32
  submitPromise?: Promise<void>
33
33
  onSubmit: Set<SubmitHandler<T>>
@@ -78,18 +78,16 @@ function useArrayFieldBase<Field extends FieldPath>(
78
78
  createSelector(
79
79
  [
80
80
  createStructuredSelector({
81
- parsedValue: ({ parsedValues }) =>
82
- get(parsedValues, field.path) as
83
- | DeepPartial<z.output<T>>
84
- | undefined,
85
81
  value: ({ values }) =>
86
82
  get(values, field.path) as DeepPartial<z.input<T>> | undefined,
87
- initialParsedValue: ({ initialParsedValues }) =>
88
- get(initialParsedValues, field.path) as z.output<T> | undefined,
83
+ initialValue: ({ initialValues }) =>
84
+ get(initialValues, field.path) as
85
+ | DeepPartial<z.input<T>>
86
+ | undefined,
89
87
  }),
90
88
  ],
91
- ({ value, parsedValue, initialParsedValue }) => {
92
- const dirty = !isEqual(parsedValue, initialParsedValue)
89
+ ({ value, initialValue }) => {
90
+ const dirty = !isEqual(value, initialValue)
93
91
  const pristine = !dirty
94
92
  return {
95
93
  dirty,
package/src/useField.ts CHANGED
@@ -29,10 +29,10 @@ export type UseFieldProps<Field extends FieldPath> = FieldMeta &
29
29
  setMeta: typeof setMeta
30
30
  }>
31
31
  > & {
32
- parsedValue: DeepPartial<z.output<Field['schema']>> | undefined
33
- value: DeepPartial<z.input<Field['schema']>> | undefined
34
- initialParsedValue: DeepPartial<z.output<Field['schema']>> | undefined
35
- initialValue: DeepPartial<z.input<Field['schema']>> | undefined
32
+ parsedValue?: z.output<Field['schema']>
33
+ value?: DeepPartial<z.input<Field['schema']>>
34
+ initialParsedValue?: z.output<Field['schema']>
35
+ initialValue?: DeepPartial<z.input<Field['schema']>>
36
36
  error?: string
37
37
  dirty: boolean
38
38
  pristine: boolean
@@ -89,7 +89,7 @@ function useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(
89
89
  initialValue,
90
90
  initialParsedValue = maybeParse(field.schema, initialValue),
91
91
  }) => {
92
- const dirty = !isEqual(parsedValue, initialParsedValue)
92
+ const dirty = !isEqual(value, initialValue)
93
93
  const pristine = !dirty
94
94
  return {
95
95
  parsedValue,
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.d.ts","sourceRoot":"","sources":["src/useArrayField.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAY,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AASrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAAI,WAAW,CACnE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACzB,SAAS,GAAG,EAAE,GACX,SAAS,GACP,UAAU,CACR,OAAO,kBAAkB,CACvB,OAAO,YAAY,GAAG;IACpB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,OAAO,EAAE,OAAO,OAAO,CAAA;CACxB,CACF,CACF,GAAG;IACF,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,GACH;IAAE,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAEnC,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;IACxD,CAAC,KAAK,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,EACxD,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAC5D,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAC7B,CAAA;IACD,CAAC,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACvC,IAAI,EAAE,UAAU,GACf,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E;AAyFD,wBAAgB,aAAa,CAAC,KAAK,SAAS,SAAS,EACnD,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAC5B,wBAAgB,aAAa,CAC3B,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,oDAAoD,CACrD,EACD,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,EAClC,KAAK,EAAE,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAChE,wBAAgB,aAAa,CAC3B,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,oDAAoD,CACrD,EACD,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,EAE9C,KAAK,EAAE,UAAU,GAChB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"useArrayField.d.ts","sourceRoot":"","sources":["src/useArrayField.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAY,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AASrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAAI,WAAW,CACnE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACzB,SAAS,GAAG,EAAE,GACX,SAAS,GACP,UAAU,CACR,OAAO,kBAAkB,CACvB,OAAO,YAAY,GAAG;IACpB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,OAAO,EAAE,OAAO,OAAO,CAAA;CACxB,CACF,CACF,GAAG;IACF,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,GACH;IAAE,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAEnC,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;IACxD,CAAC,KAAK,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,EACxD,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAC5D,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAC7B,CAAA;IACD,CAAC,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,EACvC,IAAI,EAAE,UAAU,GACf,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E;AAuFD,wBAAgB,aAAa,CAAC,KAAK,SAAS,SAAS,EACnD,KAAK,EAAE,KAAK,GACX,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAC5B,wBAAgB,aAAa,CAC3B,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,oDAAoD,CACrD,EACD,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,EAClC,KAAK,EAAE,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAChE,wBAAgB,aAAa,CAC3B,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,oDAAoD,CACrD,EACD,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,EAE9C,KAAK,EAAE,UAAU,GAChB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA"}
package/useArrayField.js CHANGED
@@ -29,23 +29,18 @@ function useArrayFieldBase(field) {
29
29
  var useFormSelector = _useFormSelector2.useFormSelector;
30
30
  var valuesSelector = _react["default"].useMemo(function () {
31
31
  return (0, _reselect.createSelector)([selectFormValues], (0, _reselect.createSelector)([(0, _reselect.createStructuredSelector)({
32
- parsedValue: function parsedValue(_ref) {
33
- var parsedValues = _ref.parsedValues;
34
- return (0, _get.get)(parsedValues, field.path);
35
- },
36
- value: function value(_ref2) {
37
- var values = _ref2.values;
32
+ value: function value(_ref) {
33
+ var values = _ref.values;
38
34
  return (0, _get.get)(values, field.path);
39
35
  },
40
- initialParsedValue: function initialParsedValue(_ref3) {
41
- var initialParsedValues = _ref3.initialParsedValues;
42
- return (0, _get.get)(initialParsedValues, field.path);
36
+ initialValue: function initialValue(_ref2) {
37
+ var initialValues = _ref2.initialValues;
38
+ return (0, _get.get)(initialValues, field.path);
43
39
  }
44
- })], function (_ref4) {
45
- var value = _ref4.value,
46
- parsedValue = _ref4.parsedValue,
47
- initialParsedValue = _ref4.initialParsedValue;
48
- var dirty = !(0, _fastDeepEqual["default"])(parsedValue, initialParsedValue);
40
+ })], function (_ref3) {
41
+ var value = _ref3.value,
42
+ initialValue = _ref3.initialValue;
43
+ var dirty = !(0, _fastDeepEqual["default"])(value, initialValue);
49
44
  var pristine = !dirty;
50
45
  return {
51
46
  dirty: dirty,
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.js","names":["_FieldPath","require","_react","_interopRequireDefault","_useFormContext3","_bindActionsToField","_reselect","_get","_fastDeepEqual","_useFormSelector2","_reactRedux","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useArrayFieldBase","field","_useFormContext","useFormContext","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","parsedValue","_ref","parsedValues","get","path","value","_ref2","values","initialParsedValue","_ref3","initialParsedValues","_ref4","dirty","isEqual","pristine","Array","isArray","pathstring","_useFormSelector","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","elements","_toConsumableArray2","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","_useFormContext2","root","FieldPath"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as\n | DeepPartial<z.output<T>>\n | undefined,\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as z.output<T> | undefined,\n }),\n ],\n ({ value, parsedValue, initialParsedValue }) => {\n const dirty = !isEqual(parsedValue, initialParsedValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useArrayField.js","names":["_FieldPath","require","_react","_interopRequireDefault","_useFormContext3","_bindActionsToField","_reselect","_get","_fastDeepEqual","_useFormSelector2","_reactRedux","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useArrayFieldBase","field","_useFormContext","useFormContext","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","value","_ref","values","get","path","initialValue","_ref2","initialValues","_ref3","dirty","isEqual","pristine","Array","isArray","pathstring","_useFormSelector","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","elements","_toConsumableArray2","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","_useFormContext2","root","FieldPath"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/useArrayField.mjs CHANGED
@@ -18,21 +18,17 @@ function useArrayFieldBase(field) {
18
18
  } = useFormContext();
19
19
  const useFormSelector = untypedUseFormSelector;
20
20
  const valuesSelector = React.useMemo(() => createSelector([selectFormValues], createSelector([createStructuredSelector({
21
- parsedValue: ({
22
- parsedValues
23
- }) => get(parsedValues, field.path),
24
21
  value: ({
25
22
  values
26
23
  }) => get(values, field.path),
27
- initialParsedValue: ({
28
- initialParsedValues
29
- }) => get(initialParsedValues, field.path)
24
+ initialValue: ({
25
+ initialValues
26
+ }) => get(initialValues, field.path)
30
27
  })], ({
31
28
  value,
32
- parsedValue,
33
- initialParsedValue
29
+ initialValue
34
30
  }) => {
35
- const dirty = !isEqual(parsedValue, initialParsedValue);
31
+ const dirty = !isEqual(value, initialValue);
36
32
  const pristine = !dirty;
37
33
  return {
38
34
  dirty,
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.mjs","names":["FieldPath","React","useFormContext","bindActionsToField","createSelector","createStructuredSelector","get","isEqual","useFormSelector","untypedUseFormSelector","shallowEqual","useArrayFieldBase","field","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","parsedValue","parsedValues","path","value","values","initialParsedValue","initialParsedValues","dirty","pristine","length","Array","isArray","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","elements","keys","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","root"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as\n | DeepPartial<z.output<T>>\n | undefined,\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as z.output<T> | undefined,\n }),\n ],\n ({ value, parsedValue, initialParsedValue }) => {\n const dirty = !isEqual(parsedValue, initialParsedValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useArrayField.mjs","names":["FieldPath","React","useFormContext","bindActionsToField","createSelector","createStructuredSelector","get","isEqual","useFormSelector","untypedUseFormSelector","shallowEqual","useArrayFieldBase","field","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","value","values","path","initialValue","initialValues","dirty","pristine","length","Array","isArray","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","elements","keys","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","root"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/useField.d.ts CHANGED
@@ -14,10 +14,10 @@ export type UseFieldProps<Field extends FieldPath> = FieldMeta & ReturnType<type
14
14
  setValue: typeof setValue;
15
15
  setMeta: typeof setMeta;
16
16
  }>> & {
17
- parsedValue: DeepPartial<z.output<Field['schema']>> | undefined;
18
- value: DeepPartial<z.input<Field['schema']>> | undefined;
19
- initialParsedValue: DeepPartial<z.output<Field['schema']>> | undefined;
20
- initialValue: DeepPartial<z.input<Field['schema']>> | undefined;
17
+ parsedValue?: z.output<Field['schema']>;
18
+ value?: DeepPartial<z.input<Field['schema']>>;
19
+ initialParsedValue?: z.output<Field['schema']>;
20
+ initialValue?: DeepPartial<z.input<Field['schema']>>;
21
21
  error?: string;
22
22
  dirty: boolean;
23
23
  pristine: boolean;
package/useField.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["src/useField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["src/useField.ts"],"names":[],"mappings":"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"}
package/useField.js CHANGED
@@ -51,7 +51,7 @@ function useFieldBase(field) {
51
51
  initialValue = _ref5.initialValue,
52
52
  _ref5$initialParsedVa = _ref5.initialParsedValue,
53
53
  initialParsedValue = _ref5$initialParsedVa === void 0 ? (0, _maybeParse.maybeParse)(field.schema, initialValue) : _ref5$initialParsedVa;
54
- var dirty = !(0, _fastDeepEqual["default"])(parsedValue, initialParsedValue);
54
+ var dirty = !(0, _fastDeepEqual["default"])(value, initialValue);
55
55
  var pristine = !dirty;
56
56
  return {
57
57
  parsedValue: parsedValue,
package/useField.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.js","names":["_FieldPath","require","_get","_react","_interopRequireDefault","_useFormSelector","_useFormContext3","_reselect","_reactRedux","_fastDeepEqual","_maybeParse","_bindActionsToField","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFieldBase","field","_useFormContext","useFormContext","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","parsedValue","_ref","parsedValues","get","path","value","_ref2","values","initialParsedValue","_ref3","initialParsedValues","initialValue","_ref4","initialValues","_ref5","_ref5$parsedValue","maybeParse","schema","_ref5$initialParsedVa","dirty","isEqual","pristine","pathstring","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","visited","touched","valid","invalid","Boolean","useField","_useFormContext2","root","FieldPath"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue: DeepPartial<z.output<Field['schema']>> | undefined\n value: DeepPartial<z.input<Field['schema']>> | undefined\n initialParsedValue: DeepPartial<z.output<Field['schema']>> | undefined\n initialValue: DeepPartial<z.input<Field['schema']>> | undefined\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(parsedValue, initialParsedValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useField.js","names":["_FieldPath","require","_get","_react","_interopRequireDefault","_useFormSelector","_useFormContext3","_reselect","_reactRedux","_fastDeepEqual","_maybeParse","_bindActionsToField","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFieldBase","field","_useFormContext","useFormContext","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","parsedValue","_ref","parsedValues","get","path","value","_ref2","values","initialParsedValue","_ref3","initialParsedValues","initialValue","_ref4","initialValues","_ref5","_ref5$parsedValue","maybeParse","schema","_ref5$initialParsedVa","dirty","isEqual","pristine","pathstring","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","visited","touched","valid","invalid","Boolean","useField","_useFormContext2","root","FieldPath"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/useField.mjs CHANGED
@@ -36,7 +36,7 @@ function useFieldBase(field) {
36
36
  initialValue,
37
37
  initialParsedValue = maybeParse(field.schema, initialValue)
38
38
  }) => {
39
- const dirty = !isEqual(parsedValue, initialParsedValue);
39
+ const dirty = !isEqual(value, initialValue);
40
40
  const pristine = !dirty;
41
41
  return {
42
42
  parsedValue,
package/useField.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.mjs","names":["FieldPath","get","React","useFormSelector","untypedUseFormSelector","useFormContext","createSelector","createStructuredSelector","shallowEqual","isEqual","maybeParse","bindActionsToField","useFieldBase","field","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","parsedValue","parsedValues","path","value","values","initialParsedValue","initialParsedValues","initialValue","initialValues","schema","dirty","pristine","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","visited","touched","valid","invalid","Boolean","useField","root"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue: DeepPartial<z.output<Field['schema']>> | undefined\n value: DeepPartial<z.input<Field['schema']>> | undefined\n initialParsedValue: DeepPartial<z.output<Field['schema']>> | undefined\n initialValue: DeepPartial<z.input<Field['schema']>> | undefined\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(parsedValue, initialParsedValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useField.mjs","names":["FieldPath","get","React","useFormSelector","untypedUseFormSelector","useFormContext","createSelector","createStructuredSelector","shallowEqual","isEqual","maybeParse","bindActionsToField","useFieldBase","field","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","parsedValue","parsedValues","path","value","values","initialParsedValue","initialParsedValues","initialValue","initialValues","schema","dirty","pristine","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","visited","touched","valid","invalid","Boolean","useField","root"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import z from 'zod';
2
2
  export declare function useFormValues<T extends z.ZodTypeAny = z.ZodUnknown>(): {
3
- parsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
3
+ parsedValues: z.output<T> | undefined;
4
4
  values: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
5
- initialParsedValues: import("./util/DeepPartial").DeepPartial<z.output<T>> | undefined;
5
+ initialParsedValues: z.output<T> | undefined;
6
6
  initialValues: import("./util/DeepPartial").DeepPartial<z.input<T>> | undefined;
7
7
  };
8
8
  //# sourceMappingURL=useFormValues.d.ts.map