@jcoreio/zod-forms 1.0.0
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/FieldPath.d.ts +26 -0
- package/FieldPath.d.ts.map +1 -0
- package/FieldPath.js +155 -0
- package/FieldPath.js.map +1 -0
- package/FieldPath.mjs +138 -0
- package/FieldPath.mjs.map +1 -0
- package/FormAction.d.ts +15 -0
- package/FormAction.d.ts.map +1 -0
- package/FormAction.js +6 -0
- package/FormAction.js.map +1 -0
- package/FormAction.mjs +2 -0
- package/FormAction.mjs.map +1 -0
- package/FormContext.d.ts +39 -0
- package/FormContext.d.ts.map +1 -0
- package/FormContext.js +10 -0
- package/FormContext.js.map +1 -0
- package/FormContext.mjs +3 -0
- package/FormContext.mjs.map +1 -0
- package/FormState.d.ts +31 -0
- package/FormState.d.ts.map +1 -0
- package/FormState.js +6 -0
- package/FormState.js.map +1 -0
- package/FormState.mjs +2 -0
- package/FormState.mjs.map +1 -0
- package/FormStateContext.d.ts +8 -0
- package/FormStateContext.d.ts.map +1 -0
- package/FormStateContext.js +10 -0
- package/FormStateContext.js.map +1 -0
- package/FormStateContext.mjs +3 -0
- package/FormStateContext.mjs.map +1 -0
- package/LICENSE.md +21 -0
- package/README.md +154 -0
- package/actions/addHandlers.d.ts +15 -0
- package/actions/addHandlers.d.ts.map +1 -0
- package/actions/addHandlers.js +16 -0
- package/actions/addHandlers.js.map +1 -0
- package/actions/addHandlers.mjs +7 -0
- package/actions/addHandlers.mjs.map +1 -0
- package/actions/arrayActions.d.ts +113 -0
- package/actions/arrayActions.d.ts.map +1 -0
- package/actions/arrayActions.js +146 -0
- package/actions/arrayActions.js.map +1 -0
- package/actions/arrayActions.mjs +120 -0
- package/actions/arrayActions.mjs.map +1 -0
- package/actions/initialize.d.ts +13 -0
- package/actions/initialize.d.ts.map +1 -0
- package/actions/initialize.js +16 -0
- package/actions/initialize.js.map +1 -0
- package/actions/initialize.mjs +7 -0
- package/actions/initialize.mjs.map +1 -0
- package/actions/removeHandlers.d.ts +10 -0
- package/actions/removeHandlers.d.ts.map +1 -0
- package/actions/removeHandlers.js +16 -0
- package/actions/removeHandlers.js.map +1 -0
- package/actions/removeHandlers.mjs +7 -0
- package/actions/removeHandlers.mjs.map +1 -0
- package/actions/setMeta.d.ts +9 -0
- package/actions/setMeta.d.ts.map +1 -0
- package/actions/setMeta.js +14 -0
- package/actions/setMeta.js.map +1 -0
- package/actions/setMeta.mjs +8 -0
- package/actions/setMeta.mjs.map +1 -0
- package/actions/setMounted.d.ts +6 -0
- package/actions/setMounted.d.ts.map +1 -0
- package/actions/setMounted.js +13 -0
- package/actions/setMounted.js.map +1 -0
- package/actions/setMounted.mjs +7 -0
- package/actions/setMounted.mjs.map +1 -0
- package/actions/setRawValue.d.ts +9 -0
- package/actions/setRawValue.d.ts.map +1 -0
- package/actions/setRawValue.js +14 -0
- package/actions/setRawValue.js.map +1 -0
- package/actions/setRawValue.mjs +8 -0
- package/actions/setRawValue.mjs.map +1 -0
- package/actions/setSubmitStatus.d.ts +14 -0
- package/actions/setSubmitStatus.d.ts.map +1 -0
- package/actions/setSubmitStatus.js +16 -0
- package/actions/setSubmitStatus.js.map +1 -0
- package/actions/setSubmitStatus.mjs +7 -0
- package/actions/setSubmitStatus.mjs.map +1 -0
- package/actions/setValue.d.ts +12 -0
- package/actions/setValue.d.ts.map +1 -0
- package/actions/setValue.js +18 -0
- package/actions/setValue.js.map +1 -0
- package/actions/setValue.mjs +9 -0
- package/actions/setValue.mjs.map +1 -0
- package/actions/submit.d.ts +5 -0
- package/actions/submit.d.ts.map +1 -0
- package/actions/submit.js +12 -0
- package/actions/submit.js.map +1 -0
- package/actions/submit.mjs +6 -0
- package/actions/submit.mjs.map +1 -0
- package/actions/submitSucceeded.d.ts +5 -0
- package/actions/submitSucceeded.d.ts.map +1 -0
- package/actions/submitSucceeded.js +12 -0
- package/actions/submitSucceeded.js.map +1 -0
- package/actions/submitSucceeded.mjs +6 -0
- package/actions/submitSucceeded.mjs.map +1 -0
- package/createFormMiddleware.d.ts +6 -0
- package/createFormMiddleware.d.ts.map +1 -0
- package/createFormMiddleware.js +186 -0
- package/createFormMiddleware.js.map +1 -0
- package/createFormMiddleware.mjs +53 -0
- package/createFormMiddleware.mjs.map +1 -0
- package/createFormProvider.d.ts +7 -0
- package/createFormProvider.d.ts.map +1 -0
- package/createFormProvider.js +85 -0
- package/createFormProvider.js.map +1 -0
- package/createFormProvider.mjs +63 -0
- package/createFormProvider.mjs.map +1 -0
- package/createFormReducer.d.ts +9 -0
- package/createFormReducer.d.ts.map +1 -0
- package/createFormReducer.js +95 -0
- package/createFormReducer.js.map +1 -0
- package/createFormReducer.mjs +84 -0
- package/createFormReducer.mjs.map +1 -0
- package/createSelectFieldErrorMap.d.ts +32 -0
- package/createSelectFieldErrorMap.d.ts.map +1 -0
- package/createSelectFieldErrorMap.js +43 -0
- package/createSelectFieldErrorMap.js.map +1 -0
- package/createSelectFieldErrorMap.mjs +24 -0
- package/createSelectFieldErrorMap.mjs.map +1 -0
- package/createSelectFormStatus.d.ts +89 -0
- package/createSelectFormStatus.d.ts.map +1 -0
- package/createSelectFormStatus.js +54 -0
- package/createSelectFormStatus.js.map +1 -0
- package/createSelectFormStatus.mjs +28 -0
- package/createSelectFormStatus.mjs.map +1 -0
- package/createSelectFormValues.d.ts +45 -0
- package/createSelectFormValues.d.ts.map +1 -0
- package/createSelectFormValues.js +24 -0
- package/createSelectFormValues.js.map +1 -0
- package/createSelectFormValues.mjs +10 -0
- package/createSelectFormValues.mjs.map +1 -0
- package/createZodForm.d.ts +33 -0
- package/createZodForm.d.ts.map +1 -0
- package/createZodForm.js +51 -0
- package/createZodForm.js.map +1 -0
- package/createZodForm.mjs +46 -0
- package/createZodForm.mjs.map +1 -0
- package/index.d.ts +14 -0
- package/index.d.ts.map +1 -0
- package/index.js +76 -0
- package/index.js.map +1 -0
- package/index.mjs +11 -0
- package/index.mjs.map +1 -0
- package/initFormState.d.ts +4 -0
- package/initFormState.d.ts.map +1 -0
- package/initFormState.js +22 -0
- package/initFormState.js.map +1 -0
- package/initFormState.mjs +16 -0
- package/initFormState.mjs.map +1 -0
- package/package.json +49 -0
- package/reducers/addHandlers.d.ts +24 -0
- package/reducers/addHandlers.d.ts.map +1 -0
- package/reducers/addHandlers.js +24 -0
- package/reducers/addHandlers.js.map +1 -0
- package/reducers/addHandlers.mjs +21 -0
- package/reducers/addHandlers.mjs.map +1 -0
- package/reducers/arrayInsert.d.ts +7 -0
- package/reducers/arrayInsert.d.ts.map +1 -0
- package/reducers/arrayInsert.js +16 -0
- package/reducers/arrayInsert.js.map +1 -0
- package/reducers/arrayInsert.mjs +12 -0
- package/reducers/arrayInsert.mjs.map +1 -0
- package/reducers/arrayInsertRaw.d.ts +7 -0
- package/reducers/arrayInsertRaw.d.ts.map +1 -0
- package/reducers/arrayInsertRaw.js +22 -0
- package/reducers/arrayInsertRaw.js.map +1 -0
- package/reducers/arrayInsertRaw.mjs +14 -0
- package/reducers/arrayInsertRaw.mjs.map +1 -0
- package/reducers/arrayMove.d.ts +8 -0
- package/reducers/arrayMove.d.ts.map +1 -0
- package/reducers/arrayMove.js +25 -0
- package/reducers/arrayMove.js.map +1 -0
- package/reducers/arrayMove.mjs +16 -0
- package/reducers/arrayMove.mjs.map +1 -0
- package/reducers/arrayPop.d.ts +7 -0
- package/reducers/arrayPop.d.ts.map +1 -0
- package/reducers/arrayPop.js +13 -0
- package/reducers/arrayPop.js.map +1 -0
- package/reducers/arrayPop.mjs +5 -0
- package/reducers/arrayPop.mjs.map +1 -0
- package/reducers/arrayPush.d.ts +7 -0
- package/reducers/arrayPush.d.ts.map +1 -0
- package/reducers/arrayPush.js +15 -0
- package/reducers/arrayPush.js.map +1 -0
- package/reducers/arrayPush.mjs +11 -0
- package/reducers/arrayPush.mjs.map +1 -0
- package/reducers/arrayPushRaw.d.ts +7 -0
- package/reducers/arrayPushRaw.d.ts.map +1 -0
- package/reducers/arrayPushRaw.js +17 -0
- package/reducers/arrayPushRaw.js.map +1 -0
- package/reducers/arrayPushRaw.mjs +9 -0
- package/reducers/arrayPushRaw.mjs.map +1 -0
- package/reducers/arrayRemove.d.ts +7 -0
- package/reducers/arrayRemove.d.ts.map +1 -0
- package/reducers/arrayRemove.js +21 -0
- package/reducers/arrayRemove.js.map +1 -0
- package/reducers/arrayRemove.mjs +13 -0
- package/reducers/arrayRemove.mjs.map +1 -0
- package/reducers/arrayRemoveAll.d.ts +7 -0
- package/reducers/arrayRemoveAll.d.ts.map +1 -0
- package/reducers/arrayRemoveAll.js +14 -0
- package/reducers/arrayRemoveAll.js.map +1 -0
- package/reducers/arrayRemoveAll.mjs +8 -0
- package/reducers/arrayRemoveAll.mjs.map +1 -0
- package/reducers/arrayShift.d.ts +7 -0
- package/reducers/arrayShift.d.ts.map +1 -0
- package/reducers/arrayShift.js +14 -0
- package/reducers/arrayShift.js.map +1 -0
- package/reducers/arrayShift.mjs +8 -0
- package/reducers/arrayShift.mjs.map +1 -0
- package/reducers/arraySplice.d.ts +7 -0
- package/reducers/arraySplice.d.ts.map +1 -0
- package/reducers/arraySplice.js +20 -0
- package/reducers/arraySplice.js.map +1 -0
- package/reducers/arraySplice.mjs +14 -0
- package/reducers/arraySplice.mjs.map +1 -0
- package/reducers/arraySpliceRaw.d.ts +7 -0
- package/reducers/arraySpliceRaw.d.ts.map +1 -0
- package/reducers/arraySpliceRaw.js +26 -0
- package/reducers/arraySpliceRaw.js.map +1 -0
- package/reducers/arraySpliceRaw.mjs +18 -0
- package/reducers/arraySpliceRaw.mjs.map +1 -0
- package/reducers/arraySwap.d.ts +8 -0
- package/reducers/arraySwap.d.ts.map +1 -0
- package/reducers/arraySwap.js +27 -0
- package/reducers/arraySwap.js.map +1 -0
- package/reducers/arraySwap.mjs +18 -0
- package/reducers/arraySwap.mjs.map +1 -0
- package/reducers/arrayUnshift.d.ts +7 -0
- package/reducers/arrayUnshift.d.ts.map +1 -0
- package/reducers/arrayUnshift.js +15 -0
- package/reducers/arrayUnshift.js.map +1 -0
- package/reducers/arrayUnshift.mjs +11 -0
- package/reducers/arrayUnshift.mjs.map +1 -0
- package/reducers/arrayUnshiftRaw.d.ts +7 -0
- package/reducers/arrayUnshiftRaw.d.ts.map +1 -0
- package/reducers/arrayUnshiftRaw.js +17 -0
- package/reducers/arrayUnshiftRaw.js.map +1 -0
- package/reducers/arrayUnshiftRaw.mjs +9 -0
- package/reducers/arrayUnshiftRaw.mjs.map +1 -0
- package/reducers/initialize.d.ts +46 -0
- package/reducers/initialize.d.ts.map +1 -0
- package/reducers/initialize.js +46 -0
- package/reducers/initialize.js.map +1 -0
- package/reducers/initialize.mjs +38 -0
- package/reducers/initialize.mjs.map +1 -0
- package/reducers/removeHandlers.d.ts +24 -0
- package/reducers/removeHandlers.d.ts.map +1 -0
- package/reducers/removeHandlers.js +24 -0
- package/reducers/removeHandlers.js.map +1 -0
- package/reducers/removeHandlers.mjs +21 -0
- package/reducers/removeHandlers.mjs.map +1 -0
- package/reducers/setMeta.d.ts +6 -0
- package/reducers/setMeta.d.ts.map +1 -0
- package/reducers/setMeta.js +28 -0
- package/reducers/setMeta.js.map +1 -0
- package/reducers/setMeta.mjs +21 -0
- package/reducers/setMeta.mjs.map +1 -0
- package/reducers/setRawValue.d.ts +27 -0
- package/reducers/setRawValue.d.ts.map +1 -0
- package/reducers/setRawValue.js +35 -0
- package/reducers/setRawValue.js.map +1 -0
- package/reducers/setRawValue.mjs +26 -0
- package/reducers/setRawValue.mjs.map +1 -0
- package/reducers/setSubmitStatus.d.ts +24 -0
- package/reducers/setSubmitStatus.d.ts.map +1 -0
- package/reducers/setSubmitStatus.js +18 -0
- package/reducers/setSubmitStatus.js.map +1 -0
- package/reducers/setSubmitStatus.mjs +12 -0
- package/reducers/setSubmitStatus.mjs.map +1 -0
- package/reducers/setValue.d.ts +28 -0
- package/reducers/setValue.d.ts.map +1 -0
- package/reducers/setValue.js +41 -0
- package/reducers/setValue.js.map +1 -0
- package/reducers/setValue.mjs +32 -0
- package/reducers/setValue.mjs.map +1 -0
- package/reducers/submitSucceeded.d.ts +23 -0
- package/reducers/submitSucceeded.d.ts.map +1 -0
- package/reducers/submitSucceeded.js +22 -0
- package/reducers/submitSucceeded.js.map +1 -0
- package/reducers/submitSucceeded.mjs +13 -0
- package/reducers/submitSucceeded.mjs.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.d.ts +3 -0
- package/reducers/util/getInverseArrayElementSchema.d.ts.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.js +14 -0
- package/reducers/util/getInverseArrayElementSchema.js.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.mjs +8 -0
- package/reducers/util/getInverseArrayElementSchema.mjs.map +1 -0
- package/reducers/util/updateRawArray.d.ts +7 -0
- package/reducers/util/updateRawArray.d.ts.map +1 -0
- package/reducers/util/updateRawArray.js +14 -0
- package/reducers/util/updateRawArray.js.map +1 -0
- package/reducers/util/updateRawArray.mjs +8 -0
- package/reducers/util/updateRawArray.mjs.map +1 -0
- package/src/FieldPath.ts +215 -0
- package/src/FormAction.ts +26 -0
- package/src/FormContext.ts +44 -0
- package/src/FormState.ts +36 -0
- package/src/FormStateContext.ts +13 -0
- package/src/actions/addHandlers.ts +23 -0
- package/src/actions/arrayActions.ts +183 -0
- package/src/actions/initialize.ts +16 -0
- package/src/actions/removeHandlers.ts +13 -0
- package/src/actions/setMeta.ts +17 -0
- package/src/actions/setMounted.ts +8 -0
- package/src/actions/setRawValue.ts +17 -0
- package/src/actions/setSubmitStatus.ts +26 -0
- package/src/actions/setValue.ts +21 -0
- package/src/actions/submit.ts +7 -0
- package/src/actions/submitSucceeded.ts +7 -0
- package/src/createFormMiddleware.ts +74 -0
- package/src/createFormProvider.tsx +101 -0
- package/src/createFormReducer.ts +91 -0
- package/src/createSelectFieldErrorMap.ts +47 -0
- package/src/createSelectFormStatus.ts +41 -0
- package/src/createSelectFormValues.ts +16 -0
- package/src/createZodForm.ts +57 -0
- package/src/index.ts +32 -0
- package/src/initFormState.ts +18 -0
- package/src/reducers/addHandlers.ts +21 -0
- package/src/reducers/arrayInsert.ts +19 -0
- package/src/reducers/arrayInsertRaw.ts +22 -0
- package/src/reducers/arrayMove.ts +36 -0
- package/src/reducers/arrayPop.ts +16 -0
- package/src/reducers/arrayPush.ts +20 -0
- package/src/reducers/arrayPushRaw.ts +18 -0
- package/src/reducers/arrayRemove.ts +22 -0
- package/src/reducers/arrayRemoveAll.ts +15 -0
- package/src/reducers/arrayShift.ts +15 -0
- package/src/reducers/arraySplice.ts +17 -0
- package/src/reducers/arraySpliceRaw.ts +30 -0
- package/src/reducers/arraySwap.ts +29 -0
- package/src/reducers/arrayUnshift.ts +16 -0
- package/src/reducers/arrayUnshiftRaw.ts +18 -0
- package/src/reducers/initialize.ts +47 -0
- package/src/reducers/removeHandlers.ts +21 -0
- package/src/reducers/setMeta.ts +26 -0
- package/src/reducers/setRawValue.ts +40 -0
- package/src/reducers/setSubmitStatus.ts +15 -0
- package/src/reducers/setValue.ts +49 -0
- package/src/reducers/submitSucceeded.ts +17 -0
- package/src/reducers/util/getInverseArrayElementSchema.ts +9 -0
- package/src/reducers/util/updateRawArray.ts +25 -0
- package/src/useArrayField.ts +161 -0
- package/src/useField.ts +152 -0
- package/src/useFormContext.ts +11 -0
- package/src/useFormDispatch.ts +13 -0
- package/src/useFormSelector.ts +9 -0
- package/src/useFormStatus.ts +14 -0
- package/src/useFormValues.ts +8 -0
- package/src/useHtmlField.ts +235 -0
- package/src/useInitialize.ts +14 -0
- package/src/useSubmit.ts +29 -0
- package/src/util/PathInSchema.ts +7 -0
- package/src/util/PathInType.ts +26 -0
- package/src/util/SchemaAt.ts +68 -0
- package/src/util/acceptsArray.ts +72 -0
- package/src/util/acceptsBigint.ts +71 -0
- package/src/util/acceptsNumber.ts +71 -0
- package/src/util/bindActionsToField.ts +22 -0
- package/src/util/get.ts +10 -0
- package/src/util/getArrayElementSchema.ts +74 -0
- package/src/util/maybeParse.ts +9 -0
- package/src/util/parsePathstring.ts +119 -0
- package/src/util/pathstring.ts +32 -0
- package/src/util/set.ts +25 -0
- package/src/util/setAdd.ts +6 -0
- package/src/util/setDelete.ts +6 -0
- package/useArrayField.d.ts +34 -0
- package/useArrayField.d.ts.map +1 -0
- package/useArrayField.js +99 -0
- package/useArrayField.js.map +1 -0
- package/useArrayField.mjs +75 -0
- package/useArrayField.mjs.map +1 -0
- package/useField.d.ts +34 -0
- package/useField.d.ts.map +1 -0
- package/useField.js +98 -0
- package/useField.js.map +1 -0
- package/useField.mjs +75 -0
- package/useField.mjs.map +1 -0
- package/useFormContext.d.ts +4 -0
- package/useFormContext.d.ts.map +1 -0
- package/useFormContext.js +17 -0
- package/useFormContext.js.map +1 -0
- package/useFormContext.mjs +10 -0
- package/useFormContext.mjs.map +1 -0
- package/useFormDispatch.d.ts +7 -0
- package/useFormDispatch.d.ts.map +1 -0
- package/useFormDispatch.js +10 -0
- package/useFormDispatch.js.map +1 -0
- package/useFormDispatch.mjs +4 -0
- package/useFormDispatch.mjs.map +1 -0
- package/useFormSelector.d.ts +6 -0
- package/useFormSelector.d.ts.map +1 -0
- package/useFormSelector.js +10 -0
- package/useFormSelector.js.map +1 -0
- package/useFormSelector.mjs +4 -0
- package/useFormSelector.mjs.map +1 -0
- package/useFormStatus.d.ts +13 -0
- package/useFormStatus.d.ts.map +1 -0
- package/useFormStatus.js +15 -0
- package/useFormStatus.js.map +1 -0
- package/useFormStatus.mjs +10 -0
- package/useFormStatus.mjs.map +1 -0
- package/useFormValues.d.ts +8 -0
- package/useFormValues.d.ts.map +1 -0
- package/useFormValues.js +14 -0
- package/useFormValues.js.map +1 -0
- package/useFormValues.mjs +9 -0
- package/useFormValues.mjs.map +1 -0
- package/useHtmlField.d.ts +41 -0
- package/useHtmlField.d.ts.map +1 -0
- package/useHtmlField.js +161 -0
- package/useHtmlField.js.map +1 -0
- package/useHtmlField.mjs +148 -0
- package/useHtmlField.mjs.map +1 -0
- package/useInitialize.d.ts +5 -0
- package/useInitialize.d.ts.map +1 -0
- package/useInitialize.js +18 -0
- package/useInitialize.js.map +1 -0
- package/useInitialize.mjs +11 -0
- package/useInitialize.mjs.map +1 -0
- package/useSubmit.d.ts +5 -0
- package/useSubmit.d.ts.map +1 -0
- package/useSubmit.js +53 -0
- package/useSubmit.js.map +1 -0
- package/useSubmit.mjs +39 -0
- package/useSubmit.mjs.map +1 -0
- package/util/PathInSchema.d.ts +5 -0
- package/util/PathInSchema.d.ts.map +1 -0
- package/util/PathInSchema.js +6 -0
- package/util/PathInSchema.js.map +1 -0
- package/util/PathInSchema.mjs +2 -0
- package/util/PathInSchema.mjs.map +1 -0
- package/util/PathInType.d.ts +11 -0
- package/util/PathInType.d.ts.map +1 -0
- package/util/PathInType.js +6 -0
- package/util/PathInType.js.map +1 -0
- package/util/PathInType.mjs +2 -0
- package/util/PathInType.mjs.map +1 -0
- package/util/SchemaAt.d.ts +5 -0
- package/util/SchemaAt.d.ts.map +1 -0
- package/util/SchemaAt.js +6 -0
- package/util/SchemaAt.js.map +1 -0
- package/util/SchemaAt.mjs +2 -0
- package/util/SchemaAt.mjs.map +1 -0
- package/util/acceptsArray.d.ts +3 -0
- package/util/acceptsArray.d.ts.map +1 -0
- package/util/acceptsArray.js +89 -0
- package/util/acceptsArray.js.map +1 -0
- package/util/acceptsArray.mjs +105 -0
- package/util/acceptsArray.mjs.map +1 -0
- package/util/acceptsBigint.d.ts +3 -0
- package/util/acceptsBigint.d.ts.map +1 -0
- package/util/acceptsBigint.js +88 -0
- package/util/acceptsBigint.js.map +1 -0
- package/util/acceptsBigint.mjs +104 -0
- package/util/acceptsBigint.mjs.map +1 -0
- package/util/acceptsNumber.d.ts +3 -0
- package/util/acceptsNumber.d.ts.map +1 -0
- package/util/acceptsNumber.js +88 -0
- package/util/acceptsNumber.js.map +1 -0
- package/util/acceptsNumber.mjs +104 -0
- package/util/acceptsNumber.mjs.map +1 -0
- package/util/bindActionsToField.d.ts +7 -0
- package/util/bindActionsToField.d.ts.map +1 -0
- package/util/bindActionsToField.js +22 -0
- package/util/bindActionsToField.js.map +1 -0
- package/util/bindActionsToField.mjs +4 -0
- package/util/bindActionsToField.mjs.map +1 -0
- package/util/get.d.ts +2 -0
- package/util/get.d.ts.map +1 -0
- package/util/get.js +12 -0
- package/util/get.js.map +1 -0
- package/util/get.mjs +4 -0
- package/util/get.mjs.map +1 -0
- package/util/getArrayElementSchema.d.ts +3 -0
- package/util/getArrayElementSchema.d.ts.map +1 -0
- package/util/getArrayElementSchema.js +87 -0
- package/util/getArrayElementSchema.js.map +1 -0
- package/util/getArrayElementSchema.mjs +102 -0
- package/util/getArrayElementSchema.mjs.map +1 -0
- package/util/maybeParse.d.ts +3 -0
- package/util/maybeParse.d.ts.map +1 -0
- package/util/maybeParse.js +11 -0
- package/util/maybeParse.js.map +1 -0
- package/util/maybeParse.mjs +5 -0
- package/util/maybeParse.mjs.map +1 -0
- package/util/parsePathstring.d.ts +40 -0
- package/util/parsePathstring.d.ts.map +1 -0
- package/util/parsePathstring.js +55 -0
- package/util/parsePathstring.js.map +1 -0
- package/util/parsePathstring.mjs +35 -0
- package/util/parsePathstring.mjs.map +1 -0
- package/util/pathstring.d.ts +13 -0
- package/util/pathstring.d.ts.map +1 -0
- package/util/pathstring.js +15 -0
- package/util/pathstring.js.map +1 -0
- package/util/pathstring.mjs +7 -0
- package/util/pathstring.mjs.map +1 -0
- package/util/set.d.ts +2 -0
- package/util/set.d.ts.map +1 -0
- package/util/set.js +33 -0
- package/util/set.js.map +1 -0
- package/util/set.mjs +23 -0
- package/util/set.mjs.map +1 -0
- package/util/setAdd.d.ts +2 -0
- package/util/setAdd.d.ts.map +1 -0
- package/util/setAdd.js +13 -0
- package/util/setAdd.js.map +1 -0
- package/util/setAdd.mjs +7 -0
- package/util/setAdd.mjs.map +1 -0
- package/util/setDelete.d.ts +2 -0
- package/util/setDelete.d.ts.map +1 -0
- package/util/setDelete.js +13 -0
- package/util/setDelete.js.map +1 -0
- package/util/setDelete.mjs +7 -0
- package/util/setDelete.mjs.map +1 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { set } from "../util/set.mjs";
|
|
2
|
+
import { invert } from 'zod-invertible';
|
|
3
|
+
export const createSetValueReducer = ({
|
|
4
|
+
schema,
|
|
5
|
+
inverseSchema
|
|
6
|
+
}) => function setValueReducer(state, action) {
|
|
7
|
+
const newValues = set(state.values, action.field.path, action.value);
|
|
8
|
+
try {
|
|
9
|
+
const newRawValues = inverseSchema.parse(newValues);
|
|
10
|
+
schema.parse(newRawValues);
|
|
11
|
+
return {
|
|
12
|
+
...state,
|
|
13
|
+
submitError: undefined,
|
|
14
|
+
validationError: undefined,
|
|
15
|
+
rawValues: newRawValues,
|
|
16
|
+
values: newValues
|
|
17
|
+
};
|
|
18
|
+
} catch (error) {
|
|
19
|
+
const newRawParsed = invert(action.field.schema).safeParse(action.value);
|
|
20
|
+
const rawValues = newRawParsed.success ? set(state.rawValues, action.field.path, newRawParsed.data) : state.rawValues;
|
|
21
|
+
const newParsed = schema.safeParse(rawValues);
|
|
22
|
+
const result = {
|
|
23
|
+
...state,
|
|
24
|
+
submitError: undefined,
|
|
25
|
+
validationError: !newRawParsed.success ? newRawParsed.error : newParsed.success ? undefined : newParsed.error,
|
|
26
|
+
rawValues,
|
|
27
|
+
values: newParsed.success ? newParsed.data : state.values
|
|
28
|
+
};
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=setValue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setValue.mjs","names":["set","invert","createSetValueReducer","schema","inverseSchema","setValueReducer","state","action","newValues","values","field","path","value","newRawValues","parse","submitError","undefined","validationError","rawValues","error","newRawParsed","safeParse","success","data","newParsed","result"],"sources":["../../src/reducers/setValue.ts"],"sourcesContent":["import z from 'zod'\nimport { FormState } from '../FormState'\nimport { SetValueAction } from '../actions/setValue'\nimport { set } from '../util/set'\nimport { FieldPath } from '../FieldPath'\nimport { invert } from 'zod-invertible'\n\nexport const createSetValueReducer = <T extends z.ZodTypeAny>({\n schema,\n inverseSchema,\n}: {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n}) =>\n function setValueReducer<Field extends FieldPath>(\n state: FormState<T>,\n action: SetValueAction<Field>\n ) {\n const newValues = set(state.values, action.field.path, action.value)\n try {\n const newRawValues = inverseSchema.parse(newValues)\n schema.parse(newRawValues)\n return {\n ...state,\n submitError: undefined,\n validationError: undefined,\n rawValues: newRawValues,\n values: newValues,\n }\n } catch (error) {\n const newRawParsed = invert(action.field.schema).safeParse(action.value)\n const rawValues = newRawParsed.success\n ? set(state.rawValues, action.field.path, newRawParsed.data)\n : state.rawValues\n const newParsed = schema.safeParse(rawValues)\n const result = {\n ...state,\n submitError: undefined,\n validationError: !newRawParsed.success\n ? newRawParsed.error\n : newParsed.success\n ? undefined\n : newParsed.error,\n rawValues,\n values: newParsed.success ? newParsed.data : state.values,\n }\n return result\n }\n }\n"],"mappings":"AAGA,SAASA,GAAG;AAEZ,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,OAAO,MAAMC,qBAAqB,GAAGA,CAAyB;EAC5DC,MAAM;EACNC;AAIF,CAAC,KACC,SAASC,eAAeA,CACtBC,KAAmB,EACnBC,MAA6B,EAC7B;EACA,MAAMC,SAAS,GAAGR,GAAG,CAACM,KAAK,CAACG,MAAM,EAAEF,MAAM,CAACG,KAAK,CAACC,IAAI,EAAEJ,MAAM,CAACK,KAAK,CAAC;EACpE,IAAI;IACF,MAAMC,YAAY,GAAGT,aAAa,CAACU,KAAK,CAACN,SAAS,CAAC;IACnDL,MAAM,CAACW,KAAK,CAACD,YAAY,CAAC;IAC1B,OAAO;MACL,GAAGP,KAAK;MACRS,WAAW,EAAEC,SAAS;MACtBC,eAAe,EAAED,SAAS;MAC1BE,SAAS,EAAEL,YAAY;MACvBJ,MAAM,EAAED;IACV,CAAC;EACH,CAAC,CAAC,OAAOW,KAAK,EAAE;IACd,MAAMC,YAAY,GAAGnB,MAAM,CAACM,MAAM,CAACG,KAAK,CAACP,MAAM,CAAC,CAACkB,SAAS,CAACd,MAAM,CAACK,KAAK,CAAC;IACxE,MAAMM,SAAS,GAAGE,YAAY,CAACE,OAAO,GAClCtB,GAAG,CAACM,KAAK,CAACY,SAAS,EAAEX,MAAM,CAACG,KAAK,CAACC,IAAI,EAAES,YAAY,CAACG,IAAI,CAAC,GAC1DjB,KAAK,CAACY,SAAS;IACnB,MAAMM,SAAS,GAAGrB,MAAM,CAACkB,SAAS,CAACH,SAAS,CAAC;IAC7C,MAAMO,MAAM,GAAG;MACb,GAAGnB,KAAK;MACRS,WAAW,EAAEC,SAAS;MACtBC,eAAe,EAAE,CAACG,YAAY,CAACE,OAAO,GAClCF,YAAY,CAACD,KAAK,GAClBK,SAAS,CAACF,OAAO,GACjBN,SAAS,GACTQ,SAAS,CAACL,KAAK;MACnBD,SAAS;MACTT,MAAM,EAAEe,SAAS,CAACF,OAAO,GAAGE,SAAS,CAACD,IAAI,GAAGjB,KAAK,CAACG;IACrD,CAAC;IACD,OAAOgB,MAAM;EACf;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { FormState } from '../FormState';
|
|
3
|
+
export declare function submitSucceededReducer<T extends z.ZodTypeAny>(state: FormState<T>): {
|
|
4
|
+
submitting: boolean;
|
|
5
|
+
submitSucceeded: boolean;
|
|
6
|
+
submitFailed: boolean;
|
|
7
|
+
submitError: undefined;
|
|
8
|
+
submitPromise: undefined;
|
|
9
|
+
initialValues: z.output<T> | undefined;
|
|
10
|
+
rawInitialValues: z.input<T> | undefined;
|
|
11
|
+
mounted: boolean;
|
|
12
|
+
initialized: boolean;
|
|
13
|
+
fieldMeta: Record<string, import("../FormState").FieldMeta>;
|
|
14
|
+
rawValues?: unknown;
|
|
15
|
+
values?: z.output<T> | undefined;
|
|
16
|
+
submittedValues?: z.output<T> | undefined;
|
|
17
|
+
rawSubmittedValues?: z.input<T> | undefined;
|
|
18
|
+
validationError?: any;
|
|
19
|
+
onSubmit: Set<import("../FormState").SubmitHandler<T>>;
|
|
20
|
+
onSubmitSucceeded: Set<import("../FormState").SubmitSuccededHandler>;
|
|
21
|
+
onSubmitFailed: Set<import("../FormState").SubmitFailedHandler>;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=submitSucceeded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitSucceeded.d.ts","sourceRoot":"","sources":["../../src/reducers/submitSucceeded.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC3D,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;EAYpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.submitSucceededReducer = submitSucceededReducer;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function submitSucceededReducer(state) {
|
|
12
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
13
|
+
submitting: false,
|
|
14
|
+
submitSucceeded: true,
|
|
15
|
+
submitFailed: false,
|
|
16
|
+
submitError: undefined,
|
|
17
|
+
submitPromise: undefined,
|
|
18
|
+
initialValues: state.submittedValues,
|
|
19
|
+
rawInitialValues: state.rawSubmittedValues
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=submitSucceeded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitSucceeded.js","names":["submitSucceededReducer","state","_objectSpread","submitting","submitSucceeded","submitFailed","submitError","undefined","submitPromise","initialValues","submittedValues","rawInitialValues","rawSubmittedValues"],"sources":["../../src/reducers/submitSucceeded.ts"],"sourcesContent":["import z from 'zod'\nimport { FormState } from '../FormState'\n\nexport function submitSucceededReducer<T extends z.ZodTypeAny>(\n state: FormState<T>\n) {\n return {\n ...state,\n submitting: false,\n submitSucceeded: true,\n submitFailed: false,\n submitError: undefined,\n submitPromise: undefined,\n initialValues: state.submittedValues,\n rawInitialValues: state.rawSubmittedValues,\n }\n}\n"],"mappings":";;;;;;;;;;AAGO,SAASA,sBAAsBA,CACpCC,KAAmB,EACnB;EACA,OAAAC,aAAA,CAAAA,aAAA,KACKD,KAAK;IACRE,UAAU,EAAE,KAAK;IACjBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,KAAK;IACnBC,WAAW,EAAEC,SAAS;IACtBC,aAAa,EAAED,SAAS;IACxBE,aAAa,EAAER,KAAK,CAACS,eAAe;IACpCC,gBAAgB,EAAEV,KAAK,CAACW;EAAkB;AAE9C","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function submitSucceededReducer(state) {
|
|
2
|
+
return {
|
|
3
|
+
...state,
|
|
4
|
+
submitting: false,
|
|
5
|
+
submitSucceeded: true,
|
|
6
|
+
submitFailed: false,
|
|
7
|
+
submitError: undefined,
|
|
8
|
+
submitPromise: undefined,
|
|
9
|
+
initialValues: state.submittedValues,
|
|
10
|
+
rawInitialValues: state.rawSubmittedValues
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=submitSucceeded.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitSucceeded.mjs","names":["submitSucceededReducer","state","submitting","submitSucceeded","submitFailed","submitError","undefined","submitPromise","initialValues","submittedValues","rawInitialValues","rawSubmittedValues"],"sources":["../../src/reducers/submitSucceeded.ts"],"sourcesContent":["import z from 'zod'\nimport { FormState } from '../FormState'\n\nexport function submitSucceededReducer<T extends z.ZodTypeAny>(\n state: FormState<T>\n) {\n return {\n ...state,\n submitting: false,\n submitSucceeded: true,\n submitFailed: false,\n submitError: undefined,\n submitPromise: undefined,\n initialValues: state.submittedValues,\n rawInitialValues: state.rawSubmittedValues,\n }\n}\n"],"mappings":"AAGA,OAAO,SAASA,sBAAsBA,CACpCC,KAAmB,EACnB;EACA,OAAO;IACL,GAAGA,KAAK;IACRC,UAAU,EAAE,KAAK;IACjBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,KAAK;IACnBC,WAAW,EAAEC,SAAS;IACtBC,aAAa,EAAED,SAAS;IACxBE,aAAa,EAAEP,KAAK,CAACQ,eAAe;IACpCC,gBAAgB,EAAET,KAAK,CAACU;EAC1B,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInverseArrayElementSchema.d.ts","sourceRoot":"","sources":["../../../src/reducers/util/getInverseArrayElementSchema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAInB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,4BAIhE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getInverseArrayElementSchema = getInverseArrayElementSchema;
|
|
7
|
+
var _getArrayElementSchema = require("../../util/getArrayElementSchema.js");
|
|
8
|
+
var _zodInvertible = require("zod-invertible");
|
|
9
|
+
function getInverseArrayElementSchema(schema) {
|
|
10
|
+
var elemSchema = (0, _getArrayElementSchema.getArrayElementSchema)(schema);
|
|
11
|
+
if (!elemSchema) throw new Error('field is not an array');
|
|
12
|
+
return (0, _zodInvertible.invert)(elemSchema);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=getInverseArrayElementSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInverseArrayElementSchema.js","names":["_getArrayElementSchema","require","_zodInvertible","getInverseArrayElementSchema","schema","elemSchema","getArrayElementSchema","Error","invert"],"sources":["../../../src/reducers/util/getInverseArrayElementSchema.ts"],"sourcesContent":["import z from 'zod'\nimport { getArrayElementSchema } from '../../util/getArrayElementSchema'\nimport { invert } from 'zod-invertible'\n\nexport function getInverseArrayElementSchema(schema: z.ZodTypeAny) {\n const elemSchema = getArrayElementSchema(schema)\n if (!elemSchema) throw new Error('field is not an array')\n return invert(elemSchema)\n}\n"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEO,SAASE,4BAA4BA,CAACC,MAAoB,EAAE;EACjE,IAAMC,UAAU,GAAG,IAAAC,4CAAqB,EAACF,MAAM,CAAC;EAChD,IAAI,CAACC,UAAU,EAAE,MAAM,IAAIE,KAAK,CAAC,uBAAuB,CAAC;EACzD,OAAO,IAAAC,qBAAM,EAACH,UAAU,CAAC;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getArrayElementSchema } from "../../util/getArrayElementSchema.mjs";
|
|
2
|
+
import { invert } from 'zod-invertible';
|
|
3
|
+
export function getInverseArrayElementSchema(schema) {
|
|
4
|
+
const elemSchema = getArrayElementSchema(schema);
|
|
5
|
+
if (!elemSchema) throw new Error('field is not an array');
|
|
6
|
+
return invert(elemSchema);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=getInverseArrayElementSchema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getInverseArrayElementSchema.mjs","names":["getArrayElementSchema","invert","getInverseArrayElementSchema","schema","elemSchema","Error"],"sources":["../../../src/reducers/util/getInverseArrayElementSchema.ts"],"sourcesContent":["import z from 'zod'\nimport { getArrayElementSchema } from '../../util/getArrayElementSchema'\nimport { invert } from 'zod-invertible'\n\nexport function getInverseArrayElementSchema(schema: z.ZodTypeAny) {\n const elemSchema = getArrayElementSchema(schema)\n if (!elemSchema) throw new Error('field is not an array')\n return invert(elemSchema)\n}\n"],"mappings":"AACA,SAASA,qBAAqB;AAC9B,SAASC,MAAM,QAAQ,gBAAgB;AAEvC,OAAO,SAASC,4BAA4BA,CAACC,MAAoB,EAAE;EACjE,MAAMC,UAAU,GAAGJ,qBAAqB,CAACG,MAAM,CAAC;EAChD,IAAI,CAACC,UAAU,EAAE,MAAM,IAAIC,KAAK,CAAC,uBAAuB,CAAC;EACzD,OAAOJ,MAAM,CAACG,UAAU,CAAC;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { Reducer } from 'react';
|
|
3
|
+
import { FieldPath, FieldPathForRawValue } from '../../FieldPath';
|
|
4
|
+
import { FormState } from '../../FormState';
|
|
5
|
+
import { FormAction } from '../../FormAction';
|
|
6
|
+
export declare function updateRawArray<T extends z.ZodTypeAny, Field extends FieldPathForRawValue<any[]>>(reducer: Reducer<FormState<T>, FormAction<T>>, state: FormState<T>, field: FieldPath, updater: (array: z.input<Field['schema']> | undefined) => z.input<Field['schema']> | undefined): FormState<T>;
|
|
7
|
+
//# sourceMappingURL=updateRawArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRawArray.d.ts","sourceRoot":"","sources":["../../../src/reducers/util/updateRawArray.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAI7C,wBAAgB,cAAc,CAC5B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,KAAK,SAAS,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAEzC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAC7C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,KACxC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,gBAO1C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.updateRawArray = updateRawArray;
|
|
7
|
+
var _get = require("../../util/get.js");
|
|
8
|
+
var _setRawValue = require("../../actions/setRawValue.js");
|
|
9
|
+
function updateRawArray(reducer, state, field, updater) {
|
|
10
|
+
var oldValue = (0, _get.get)(state.rawValues, field.path);
|
|
11
|
+
var newValue = updater(oldValue);
|
|
12
|
+
return newValue === oldValue ? state : reducer(state, (0, _setRawValue.setRawValue)(field, newValue));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=updateRawArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRawArray.js","names":["_get","require","_setRawValue","updateRawArray","reducer","state","field","updater","oldValue","get","rawValues","path","newValue","setRawValue"],"sources":["../../../src/reducers/util/updateRawArray.ts"],"sourcesContent":["import z from 'zod'\nimport { Reducer } from 'react'\nimport { FieldPath, FieldPathForRawValue } from '../../FieldPath'\nimport { FormState } from '../../FormState'\nimport { FormAction } from '../../FormAction'\nimport { get } from '../../util/get'\nimport { setRawValue } from '../../actions/setRawValue'\n\nexport function updateRawArray<\n T extends z.ZodTypeAny,\n Field extends FieldPathForRawValue<any[]>\n>(\n reducer: Reducer<FormState<T>, FormAction<T>>,\n state: FormState<T>,\n field: FieldPath,\n updater: (\n array: z.input<Field['schema']> | undefined\n ) => z.input<Field['schema']> | undefined\n) {\n const oldValue = get(state.rawValues, field.path)\n const newValue = updater(oldValue as any)\n return newValue === oldValue\n ? state\n : reducer(state, setRawValue(field, newValue))\n}\n"],"mappings":";;;;;;AAKA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEO,SAASE,cAAcA,CAI5BC,OAA6C,EAC7CC,KAAmB,EACnBC,KAAgB,EAChBC,OAEyC,EACzC;EACA,IAAMC,QAAQ,GAAG,IAAAC,QAAG,EAACJ,KAAK,CAACK,SAAS,EAAEJ,KAAK,CAACK,IAAI,CAAC;EACjD,IAAMC,QAAQ,GAAGL,OAAO,CAACC,QAAe,CAAC;EACzC,OAAOI,QAAQ,KAAKJ,QAAQ,GACxBH,KAAK,GACLD,OAAO,CAACC,KAAK,EAAE,IAAAQ,wBAAW,EAACP,KAAK,EAAEM,QAAQ,CAAC,CAAC;AAClD","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { get } from "../../util/get.mjs";
|
|
2
|
+
import { setRawValue } from "../../actions/setRawValue.mjs";
|
|
3
|
+
export function updateRawArray(reducer, state, field, updater) {
|
|
4
|
+
const oldValue = get(state.rawValues, field.path);
|
|
5
|
+
const newValue = updater(oldValue);
|
|
6
|
+
return newValue === oldValue ? state : reducer(state, setRawValue(field, newValue));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=updateRawArray.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateRawArray.mjs","names":["get","setRawValue","updateRawArray","reducer","state","field","updater","oldValue","rawValues","path","newValue"],"sources":["../../../src/reducers/util/updateRawArray.ts"],"sourcesContent":["import z from 'zod'\nimport { Reducer } from 'react'\nimport { FieldPath, FieldPathForRawValue } from '../../FieldPath'\nimport { FormState } from '../../FormState'\nimport { FormAction } from '../../FormAction'\nimport { get } from '../../util/get'\nimport { setRawValue } from '../../actions/setRawValue'\n\nexport function updateRawArray<\n T extends z.ZodTypeAny,\n Field extends FieldPathForRawValue<any[]>\n>(\n reducer: Reducer<FormState<T>, FormAction<T>>,\n state: FormState<T>,\n field: FieldPath,\n updater: (\n array: z.input<Field['schema']> | undefined\n ) => z.input<Field['schema']> | undefined\n) {\n const oldValue = get(state.rawValues, field.path)\n const newValue = updater(oldValue as any)\n return newValue === oldValue\n ? state\n : reducer(state, setRawValue(field, newValue))\n}\n"],"mappings":"AAKA,SAASA,GAAG;AACZ,SAASC,WAAW;AAEpB,OAAO,SAASC,cAAcA,CAI5BC,OAA6C,EAC7CC,KAAmB,EACnBC,KAAgB,EAChBC,OAEyC,EACzC;EACA,MAAMC,QAAQ,GAAGP,GAAG,CAACI,KAAK,CAACI,SAAS,EAAEH,KAAK,CAACI,IAAI,CAAC;EACjD,MAAMC,QAAQ,GAAGJ,OAAO,CAACC,QAAe,CAAC;EACzC,OAAOG,QAAQ,KAAKH,QAAQ,GACxBH,KAAK,GACLD,OAAO,CAACC,KAAK,EAAEH,WAAW,CAACI,KAAK,EAAEK,QAAQ,CAAC,CAAC;AAClD","ignoreList":[]}
|
package/src/FieldPath.ts
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
import { pathstring } from './util/pathstring'
|
|
3
|
+
import { SchemaAt } from './util/SchemaAt'
|
|
4
|
+
import { PathInSchema, PathstringInSchema } from './util/PathInSchema'
|
|
5
|
+
import { parsePathstring } from './util/parsePathstring'
|
|
6
|
+
|
|
7
|
+
export type FieldPathForValue<Value, RawValue = any> = FieldPath<
|
|
8
|
+
z.ZodType<Value, any, RawValue>
|
|
9
|
+
>
|
|
10
|
+
export type FieldPathForRawValue<RawValue> = FieldPath<
|
|
11
|
+
z.ZodType<any, any, RawValue>
|
|
12
|
+
>
|
|
13
|
+
|
|
14
|
+
export class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
15
|
+
readonly path: BasePath
|
|
16
|
+
readonly pathstring: string
|
|
17
|
+
readonly schema: T
|
|
18
|
+
|
|
19
|
+
private subfields: Map<SubpathKey<T>, FieldPath> | undefined
|
|
20
|
+
|
|
21
|
+
private constructor({ schema, path }: { schema: T; path: BasePath }) {
|
|
22
|
+
this.path = path
|
|
23
|
+
this.schema = schema
|
|
24
|
+
this.pathstring = pathstring(path)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static root<T extends z.ZodTypeAny>(schema: T) {
|
|
28
|
+
return new FieldPath({ schema, path: [] })
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get<Path extends PathInSchema<T>>(
|
|
32
|
+
path: Path
|
|
33
|
+
): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>
|
|
34
|
+
get<Pathstring extends PathstringInSchema<T>>(
|
|
35
|
+
path: Pathstring
|
|
36
|
+
): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>
|
|
37
|
+
get(path: any): FieldPath {
|
|
38
|
+
if (typeof path === 'string') path = parsePathstring(path)
|
|
39
|
+
if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)
|
|
40
|
+
return path.reduce((field, key) => field.subfield(key), this)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {
|
|
44
|
+
const cached = this.subfields?.get(key)
|
|
45
|
+
if (cached) return cached as any
|
|
46
|
+
const schema = subschema(this.schema, key)
|
|
47
|
+
if (!schema) throw new Error(`invalid subschema key: ${key}`)
|
|
48
|
+
const subfield = new FieldPath({
|
|
49
|
+
path: [...this.path, key] as any,
|
|
50
|
+
schema: schema as any,
|
|
51
|
+
})
|
|
52
|
+
if (this.subfields == null) this.subfields = new Map()
|
|
53
|
+
this.subfields.set(key, subfield)
|
|
54
|
+
return subfield
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type BasePath = (string | number)[]
|
|
59
|
+
|
|
60
|
+
export type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T
|
|
61
|
+
? any
|
|
62
|
+
: 0 extends 1 & z.input<T>
|
|
63
|
+
? any
|
|
64
|
+
: T extends z.ZodObject<infer Shape, infer UnknownKeys>
|
|
65
|
+
? UnknownKeys extends 'passthrough'
|
|
66
|
+
? string
|
|
67
|
+
: keyof Shape
|
|
68
|
+
: T extends z.ZodRecord<infer Key, any>
|
|
69
|
+
? z.input<Key>
|
|
70
|
+
: T extends z.ZodMap<infer Key, any>
|
|
71
|
+
? z.input<Key>
|
|
72
|
+
: T extends z.ZodArray<any>
|
|
73
|
+
? number
|
|
74
|
+
: T extends z.ZodTuple<any, any>
|
|
75
|
+
? number
|
|
76
|
+
: T extends z.ZodLazy<infer U>
|
|
77
|
+
? SubpathKey<U>
|
|
78
|
+
: T extends z.ZodUnion<infer Options>
|
|
79
|
+
? SubpathKey<Options[number]>
|
|
80
|
+
: T extends z.ZodDiscriminatedUnion<any, infer Options>
|
|
81
|
+
? SubpathKey<Options[number]>
|
|
82
|
+
: T extends z.ZodOptional<infer U>
|
|
83
|
+
? SubpathKey<U>
|
|
84
|
+
: T extends z.ZodNullable<infer U>
|
|
85
|
+
? SubpathKey<U>
|
|
86
|
+
: T extends z.ZodDefault<infer U>
|
|
87
|
+
? SubpathKey<U>
|
|
88
|
+
: T extends z.ZodCatch<infer U>
|
|
89
|
+
? SubpathKey<U>
|
|
90
|
+
: T extends z.ZodEffects<infer U, any>
|
|
91
|
+
? SubpathKey<U>
|
|
92
|
+
: T extends z.ZodBranded<infer U, any>
|
|
93
|
+
? SubpathKey<U>
|
|
94
|
+
: never
|
|
95
|
+
|
|
96
|
+
export type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never
|
|
97
|
+
? []
|
|
98
|
+
: [] | ValuesOf<SubpathKeyMap<T>>
|
|
99
|
+
|
|
100
|
+
type ValuesOf<O> = O[keyof O]
|
|
101
|
+
|
|
102
|
+
export type SubpathKeyMap<T extends z.ZodTypeAny> = {
|
|
103
|
+
[K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function subschema(
|
|
107
|
+
schema: z.ZodTypeAny,
|
|
108
|
+
key: string
|
|
109
|
+
): z.ZodTypeAny | undefined {
|
|
110
|
+
switch (schema._def.typeName) {
|
|
111
|
+
case z.ZodFirstPartyTypeKind.ZodAny:
|
|
112
|
+
case 'ZodArray':
|
|
113
|
+
if (typeof key === 'number') return (schema as z.ZodArray<any>).element
|
|
114
|
+
break
|
|
115
|
+
case 'ZodObject': {
|
|
116
|
+
const {
|
|
117
|
+
shape,
|
|
118
|
+
_def: { unknownKeys, catchall },
|
|
119
|
+
} = schema as z.AnyZodObject
|
|
120
|
+
if (key in shape) return shape[key]
|
|
121
|
+
if (unknownKeys === 'passthrough') return catchall
|
|
122
|
+
break
|
|
123
|
+
}
|
|
124
|
+
case 'ZodUnion': {
|
|
125
|
+
const options = (
|
|
126
|
+
schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>
|
|
127
|
+
).options
|
|
128
|
+
.map((opt) => subschema(opt, key))
|
|
129
|
+
.filter((opt): opt is z.ZodTypeAny => opt != null)
|
|
130
|
+
return options.length > 1
|
|
131
|
+
? z.union(options as any)
|
|
132
|
+
: options.length === 1
|
|
133
|
+
? options[0]
|
|
134
|
+
: undefined
|
|
135
|
+
}
|
|
136
|
+
case 'ZodDiscriminatedUnion': {
|
|
137
|
+
const discUnion = schema as z.ZodDiscriminatedUnion<
|
|
138
|
+
any,
|
|
139
|
+
[z.AnyZodObject, ...z.AnyZodObject[]]
|
|
140
|
+
>
|
|
141
|
+
const options = discUnion.options
|
|
142
|
+
.map((opt) => subschema(opt, key))
|
|
143
|
+
.filter((opt): opt is z.ZodTypeAny => opt != null)
|
|
144
|
+
return options.length > 1
|
|
145
|
+
? z.discriminatedUnion(discUnion.discriminator, options as any)
|
|
146
|
+
: options.length === 1
|
|
147
|
+
? options[0]
|
|
148
|
+
: undefined
|
|
149
|
+
break
|
|
150
|
+
}
|
|
151
|
+
case 'ZodIntersection':
|
|
152
|
+
break
|
|
153
|
+
case 'ZodTuple': {
|
|
154
|
+
const {
|
|
155
|
+
items,
|
|
156
|
+
_def: { rest },
|
|
157
|
+
} = schema as z.ZodTuple<any, any>
|
|
158
|
+
if (typeof key === 'number' && key > 0 && key < items.length) {
|
|
159
|
+
return items[key]
|
|
160
|
+
}
|
|
161
|
+
if (rest) return rest
|
|
162
|
+
break
|
|
163
|
+
}
|
|
164
|
+
case 'ZodRecord': {
|
|
165
|
+
const { keySchema, valueSchema } = schema as z.ZodRecord<
|
|
166
|
+
z.ZodTypeAny,
|
|
167
|
+
z.ZodTypeAny
|
|
168
|
+
>
|
|
169
|
+
if (keySchema.safeParse(key).success) return valueSchema
|
|
170
|
+
break
|
|
171
|
+
}
|
|
172
|
+
case 'ZodMap': {
|
|
173
|
+
const { keySchema, valueSchema } = schema as z.ZodMap<
|
|
174
|
+
z.ZodTypeAny,
|
|
175
|
+
z.ZodTypeAny
|
|
176
|
+
>
|
|
177
|
+
if (keySchema.safeParse(key).success) return valueSchema
|
|
178
|
+
break
|
|
179
|
+
}
|
|
180
|
+
case 'ZodLazy':
|
|
181
|
+
return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)
|
|
182
|
+
case 'ZodEffects': {
|
|
183
|
+
const {
|
|
184
|
+
_def: {
|
|
185
|
+
effect: { type },
|
|
186
|
+
schema: innerSchema,
|
|
187
|
+
},
|
|
188
|
+
} = schema as z.ZodEffects<z.ZodTypeAny, any>
|
|
189
|
+
if (type === 'refinement') return subschema(innerSchema, key)
|
|
190
|
+
break
|
|
191
|
+
}
|
|
192
|
+
case 'ZodOptional':
|
|
193
|
+
return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)
|
|
194
|
+
case 'ZodNullable':
|
|
195
|
+
return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)
|
|
196
|
+
case 'ZodDefault':
|
|
197
|
+
return subschema(
|
|
198
|
+
(schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),
|
|
199
|
+
key
|
|
200
|
+
)
|
|
201
|
+
case 'ZodCatch':
|
|
202
|
+
return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)
|
|
203
|
+
case 'ZodBranded':
|
|
204
|
+
return subschema(
|
|
205
|
+
(schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,
|
|
206
|
+
key
|
|
207
|
+
)
|
|
208
|
+
case 'ZodPipeline':
|
|
209
|
+
return subschema(
|
|
210
|
+
(schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>)._def.out,
|
|
211
|
+
key
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
return undefined
|
|
215
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
import { SetMountedAction } from './actions/setMounted'
|
|
3
|
+
import { InitializeAction } from './actions/initialize'
|
|
4
|
+
import { SetValueAction } from './actions/setValue'
|
|
5
|
+
import { SetRawValueAction } from './actions/setRawValue'
|
|
6
|
+
import { SetMetaAction } from './actions/setMeta'
|
|
7
|
+
import { FieldPath } from './FieldPath'
|
|
8
|
+
import { SubmitAction } from './actions/submit'
|
|
9
|
+
import { SubmitSucceededAction } from './actions/submitSucceeded'
|
|
10
|
+
import { SetSubmitStatusAction } from './actions/setSubmitStatus'
|
|
11
|
+
import { AddHandlersAction } from './actions/addHandlers'
|
|
12
|
+
import { RemoveHandlersAction } from './actions/removeHandlers'
|
|
13
|
+
import { ArrayAction } from './actions/arrayActions'
|
|
14
|
+
|
|
15
|
+
export type FormAction<T extends z.ZodTypeAny> =
|
|
16
|
+
| SetMountedAction
|
|
17
|
+
| InitializeAction<T>
|
|
18
|
+
| SetValueAction<FieldPath>
|
|
19
|
+
| SetRawValueAction<FieldPath>
|
|
20
|
+
| SetMetaAction<FieldPath>
|
|
21
|
+
| AddHandlersAction<T>
|
|
22
|
+
| RemoveHandlersAction<T>
|
|
23
|
+
| SubmitAction
|
|
24
|
+
| SubmitSucceededAction
|
|
25
|
+
| SetSubmitStatusAction<T>
|
|
26
|
+
| ArrayAction
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import z from 'zod'
|
|
3
|
+
import { FieldPath } from './FieldPath'
|
|
4
|
+
import { initialize } from './actions/initialize'
|
|
5
|
+
import { setRawValue } from './actions/setRawValue'
|
|
6
|
+
import { setValue } from './actions/setValue'
|
|
7
|
+
import { submit } from './actions/submit'
|
|
8
|
+
import { setSubmitStatus } from './actions/setSubmitStatus'
|
|
9
|
+
import { SelectFormValues } from './createSelectFormValues'
|
|
10
|
+
import { SelectFieldErrorMap } from './createSelectFieldErrorMap'
|
|
11
|
+
import {
|
|
12
|
+
createSelectFormStatus,
|
|
13
|
+
SelectFormStatus,
|
|
14
|
+
} from './createSelectFormStatus'
|
|
15
|
+
import { setMeta } from './actions/setMeta'
|
|
16
|
+
import { addHandlers } from './actions/addHandlers'
|
|
17
|
+
import { removeHandlers } from './actions/removeHandlers'
|
|
18
|
+
import { arrayActions } from './actions/arrayActions'
|
|
19
|
+
|
|
20
|
+
export const FormContext =
|
|
21
|
+
React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)
|
|
22
|
+
|
|
23
|
+
export type FormContextProps<T extends z.ZodTypeAny> = {
|
|
24
|
+
schema: T
|
|
25
|
+
inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>
|
|
26
|
+
root: FieldPath<T>
|
|
27
|
+
initialize: typeof initialize<T>
|
|
28
|
+
addHandlers: typeof addHandlers<T>
|
|
29
|
+
removeHandlers: typeof removeHandlers<T>
|
|
30
|
+
setMeta: typeof setMeta
|
|
31
|
+
setRawValue: typeof setRawValue
|
|
32
|
+
setValue: typeof setValue
|
|
33
|
+
submit: typeof submit
|
|
34
|
+
setSubmitStatus: typeof setSubmitStatus<T>
|
|
35
|
+
arrayActions: typeof arrayActions
|
|
36
|
+
selectFormStatus: SelectFormStatus
|
|
37
|
+
selectFieldErrorMap: SelectFieldErrorMap
|
|
38
|
+
selectFormValues: SelectFormValues<T>
|
|
39
|
+
getValues: () => z.output<T> | undefined
|
|
40
|
+
getRawValues: () => unknown
|
|
41
|
+
getInitialValues: () => z.output<T> | undefined
|
|
42
|
+
getRawInitialValues: () => unknown
|
|
43
|
+
getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>
|
|
44
|
+
}
|
package/src/FormState.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
|
|
3
|
+
export type FieldMeta = {
|
|
4
|
+
touched: boolean
|
|
5
|
+
visited: boolean
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type SubmitHandler<T extends z.ZodTypeAny> = (
|
|
9
|
+
values: z.output<T>,
|
|
10
|
+
options: { initialValues: z.output<T> }
|
|
11
|
+
) => void | Promise<void>
|
|
12
|
+
|
|
13
|
+
export type SubmitSuccededHandler = () => void
|
|
14
|
+
|
|
15
|
+
export type SubmitFailedHandler = (error: Error) => void
|
|
16
|
+
|
|
17
|
+
export type FormState<T extends z.ZodTypeAny> = {
|
|
18
|
+
mounted: boolean
|
|
19
|
+
initialized: boolean
|
|
20
|
+
fieldMeta: Record<string, FieldMeta>
|
|
21
|
+
rawValues?: unknown
|
|
22
|
+
values?: z.output<T>
|
|
23
|
+
submittedValues?: z.output<T>
|
|
24
|
+
rawSubmittedValues?: z.input<T>
|
|
25
|
+
rawInitialValues?: unknown
|
|
26
|
+
initialValues?: z.output<T>
|
|
27
|
+
validationError?: any
|
|
28
|
+
submitPromise?: Promise<void>
|
|
29
|
+
onSubmit: Set<SubmitHandler<T>>
|
|
30
|
+
onSubmitSucceeded: Set<SubmitSuccededHandler>
|
|
31
|
+
onSubmitFailed: Set<SubmitFailedHandler>
|
|
32
|
+
submitting: boolean
|
|
33
|
+
submitSucceeded: boolean
|
|
34
|
+
submitFailed: boolean
|
|
35
|
+
submitError?: Error
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { ReactReduxContextValue } from 'react-redux'
|
|
4
|
+
import { FormState } from './FormState'
|
|
5
|
+
import { FormAction } from './FormAction'
|
|
6
|
+
|
|
7
|
+
export const FormStateContext = React.createContext<ReactReduxContextValue<
|
|
8
|
+
FormState<z.ZodTypeAny>,
|
|
9
|
+
FormAction<z.ZodTypeAny>
|
|
10
|
+
> | null>(null)
|
|
11
|
+
|
|
12
|
+
export type FormStateContext<T extends z.ZodTypeAny> =
|
|
13
|
+
React.Context<ReactReduxContextValue<FormState<T>, FormAction<T>> | null>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import z from 'zod'
|
|
2
|
+
import {
|
|
3
|
+
SubmitFailedHandler,
|
|
4
|
+
SubmitHandler,
|
|
5
|
+
SubmitSuccededHandler,
|
|
6
|
+
} from '../FormState'
|
|
7
|
+
|
|
8
|
+
export type Handlers<T extends z.ZodTypeAny> = {
|
|
9
|
+
onSubmit?: SubmitHandler<T>
|
|
10
|
+
onSubmitSucceeded?: SubmitSuccededHandler
|
|
11
|
+
onSubmitFailed?: SubmitFailedHandler
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type AddHandlersAction<T extends z.ZodTypeAny> = ReturnType<
|
|
15
|
+
typeof addHandlers<T>
|
|
16
|
+
>
|
|
17
|
+
|
|
18
|
+
export function addHandlers<T extends z.ZodTypeAny>(handlers: Handlers<T>) {
|
|
19
|
+
return {
|
|
20
|
+
type: 'addHandlers',
|
|
21
|
+
...handlers,
|
|
22
|
+
} as const
|
|
23
|
+
}
|