envoc-form 3.3.0 → 4.0.1-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/README.md +10 -1
- package/dist/css/envoc-form-styles.css +0 -113
- package/dist/css/envoc-form-styles.css.map +1 -1
- package/es/AddressInput/AddressInput.d.ts +15 -0
- package/es/AddressInput/AddressInput.js +21 -97
- package/es/AddressInput/UsStates.d.ts +3 -0
- package/es/AddressInput/UsStates.js +53 -152
- package/es/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
- package/es/ConfirmBaseForm/ConfirmBaseForm.js +35 -43
- package/es/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
- package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +54 -40
- package/es/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
- package/es/DatePicker/DateOnlyDatePickerGroup.js +23 -0
- package/es/DatePicker/DatePickerGroup.d.ts +8 -0
- package/es/DatePicker/DatePickerGroup.js +60 -0
- package/es/DatePicker/DatePickerHelper.d.ts +3 -0
- package/es/DatePicker/DatePickerHelper.js +1 -0
- package/es/DatePicker/StringDatePickerGroup.d.ts +5 -0
- package/es/DatePicker/StringDatePickerGroup.js +19 -0
- package/es/Field/CustomFieldInputProps.d.ts +7 -0
- package/es/Field/CustomFieldInputProps.js +1 -0
- package/es/Field/CustomFieldMetaProps.d.ts +4 -0
- package/es/Field/CustomFieldMetaProps.js +1 -0
- package/es/Field/Field.d.ts +22 -0
- package/es/Field/Field.js +46 -0
- package/es/Field/FieldErrorScrollTarget.d.ts +2 -0
- package/es/Field/FieldErrorScrollTarget.js +11 -0
- package/es/Field/FieldNameContext.d.ts +3 -0
- package/es/Field/FieldNameContext.js +3 -0
- package/es/Field/FieldSection.d.ts +7 -0
- package/es/Field/FieldSection.js +20 -0
- package/es/Field/InjectedFieldProps.d.ts +7 -0
- package/es/Field/InjectedFieldProps.js +1 -0
- package/es/Field/StandAloneInput.d.ts +9 -0
- package/es/Field/StandAloneInput.js +49 -0
- package/es/Field/useStandardField.d.ts +15 -0
- package/es/Field/useStandardField.js +93 -0
- package/es/FieldArray/FieldArray.d.ts +15 -0
- package/es/FieldArray/FieldArray.js +80 -0
- package/es/File/FileGroup.d.ts +8 -0
- package/es/File/FileGroup.js +50 -0
- package/es/File/FileList.d.ts +6 -0
- package/es/File/FileList.js +20 -0
- package/es/File/humanFileSize.d.ts +1 -0
- package/es/File/humanFileSize.js +6 -0
- package/es/Form/FocusError.d.ts +5 -0
- package/es/Form/FocusError.js +41 -53
- package/es/Form/Form.d.ts +22 -0
- package/es/Form/Form.js +111 -125
- package/es/Form/FormBasedPreventNavigation.d.ts +5 -0
- package/es/Form/FormBasedPreventNavigation.js +53 -30
- package/es/Form/ServerErrorContext.d.ts +10 -0
- package/es/Form/ServerErrorContext.js +8 -6
- package/es/FormActions.d.ts +7 -0
- package/es/FormActions.js +22 -0
- package/es/Group.d.ts +13 -0
- package/es/Group.js +22 -0
- package/es/Input/IconInputGroup.d.ts +9 -0
- package/es/Input/IconInputGroup.js +40 -0
- package/es/Input/InputGroup.d.ts +12 -0
- package/es/Input/InputGroup.js +33 -0
- package/es/Input/MoneyInputGroup.d.ts +7 -0
- package/es/Input/MoneyInputGroup.js +41 -0
- package/es/Input/NumberInputGroup.d.ts +7 -0
- package/es/Input/NumberInputGroup.js +41 -0
- package/es/Input/StringInputGroup.d.ts +7 -0
- package/es/Input/StringInputGroup.js +40 -0
- package/es/Normalization/NormalizationFunction.d.ts +4 -0
- package/es/Normalization/NormalizationFunction.js +1 -0
- package/es/Normalization/normalizers.d.ts +2 -0
- package/es/Normalization/normalizers.js +30 -0
- package/es/Select/BooleanSelectGroup.d.ts +7 -0
- package/es/Select/BooleanSelectGroup.js +27 -0
- package/es/Select/NumberSelectGroup.d.ts +8 -0
- package/es/Select/NumberSelectGroup.js +19 -0
- package/es/Select/SelectGroup.d.ts +22 -0
- package/es/Select/SelectGroup.js +59 -0
- package/es/Select/SelectGroupPropsHelper.d.ts +3 -0
- package/es/Select/SelectGroupPropsHelper.js +1 -0
- package/es/Select/StringSelectGroup.d.ts +8 -0
- package/es/Select/StringSelectGroup.js +19 -0
- package/es/StandardFormActions.d.ts +6 -0
- package/es/StandardFormActions.js +23 -24
- package/es/SubmitFormButton.d.ts +7 -0
- package/es/SubmitFormButton.js +37 -23
- package/es/TextArea/TextAreaGroup.d.ts +8 -0
- package/es/TextArea/TextAreaGroup.js +33 -0
- package/es/Validation/ValidatedApiResult.d.ts +6 -0
- package/es/Validation/ValidatedApiResult.js +1 -0
- package/es/Validation/ValidationError.d.ts +5 -0
- package/es/Validation/ValidationError.js +1 -0
- package/es/Validation/ValidationFunction.d.ts +4 -0
- package/es/Validation/ValidationFunction.js +1 -0
- package/es/Validation/validators.d.ts +15 -0
- package/es/Validation/validators.js +73 -0
- package/es/__Tests__/FormTestBase.d.ts +27 -0
- package/es/__Tests__/FormTestBase.js +83 -12
- package/{src/__Tests__/index.js → es/__Tests__/index.d.ts} +0 -0
- package/es/__Tests__/index.js +2 -2
- package/es/index.d.ts +71 -0
- package/es/index.js +47 -25
- package/es/utils/objectContainsNonSerializableProperty.d.ts +1 -0
- package/es/utils/objectContainsNonSerializableProperty.js +14 -16
- package/es/utils/objectToFormData.d.ts +10 -0
- package/es/utils/objectToFormData.js +77 -65
- package/es/utils/typeChecks.d.ts +8 -0
- package/es/utils/typeChecks.js +18 -25
- package/lib/AddressInput/AddressInput.d.ts +15 -0
- package/lib/AddressInput/AddressInput.js +27 -123
- package/lib/AddressInput/UsStates.d.ts +3 -0
- package/lib/AddressInput/UsStates.js +55 -159
- package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
- package/lib/ConfirmBaseForm/ConfirmBaseForm.js +41 -57
- package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
- package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +60 -56
- package/lib/DatePicker/DateOnlyDatePickerGroup.d.ts +10 -0
- package/lib/DatePicker/DateOnlyDatePickerGroup.js +29 -0
- package/lib/DatePicker/DatePickerGroup.d.ts +8 -0
- package/lib/DatePicker/DatePickerGroup.js +66 -0
- package/lib/DatePicker/DatePickerHelper.d.ts +3 -0
- package/lib/DatePicker/DatePickerHelper.js +2 -0
- package/lib/DatePicker/StringDatePickerGroup.d.ts +5 -0
- package/lib/DatePicker/StringDatePickerGroup.js +25 -0
- package/lib/Field/CustomFieldInputProps.d.ts +7 -0
- package/lib/Field/CustomFieldInputProps.js +2 -0
- package/lib/Field/CustomFieldMetaProps.d.ts +4 -0
- package/lib/Field/CustomFieldMetaProps.js +2 -0
- package/lib/Field/Field.d.ts +22 -0
- package/lib/Field/Field.js +51 -0
- package/lib/Field/FieldErrorScrollTarget.d.ts +2 -0
- package/lib/Field/FieldErrorScrollTarget.js +14 -0
- package/lib/Field/FieldNameContext.d.ts +3 -0
- package/lib/Field/FieldNameContext.js +9 -0
- package/lib/Field/FieldSection.d.ts +7 -0
- package/lib/Field/FieldSection.js +23 -0
- package/lib/Field/InjectedFieldProps.d.ts +7 -0
- package/lib/Field/InjectedFieldProps.js +2 -0
- package/lib/Field/StandAloneInput.d.ts +9 -0
- package/lib/Field/StandAloneInput.js +75 -0
- package/lib/Field/useStandardField.d.ts +15 -0
- package/lib/Field/useStandardField.js +96 -0
- package/lib/FieldArray/FieldArray.d.ts +15 -0
- package/lib/FieldArray/FieldArray.js +86 -0
- package/lib/File/FileGroup.d.ts +8 -0
- package/lib/File/FileGroup.js +55 -0
- package/lib/File/FileList.d.ts +6 -0
- package/lib/File/FileList.js +23 -0
- package/lib/File/humanFileSize.d.ts +1 -0
- package/lib/File/humanFileSize.js +10 -0
- package/lib/Form/FocusError.d.ts +5 -0
- package/lib/Form/FocusError.js +47 -66
- package/lib/Form/Form.d.ts +22 -0
- package/lib/Form/Form.js +117 -153
- package/lib/Form/FormBasedPreventNavigation.d.ts +5 -0
- package/lib/Form/FormBasedPreventNavigation.js +56 -39
- package/lib/Form/ServerErrorContext.d.ts +10 -0
- package/lib/Form/ServerErrorContext.js +14 -18
- package/lib/FormActions.d.ts +7 -0
- package/lib/FormActions.js +28 -0
- package/lib/Group.d.ts +13 -0
- package/lib/Group.js +28 -0
- package/lib/Input/IconInputGroup.d.ts +9 -0
- package/lib/Input/IconInputGroup.js +45 -0
- package/lib/Input/InputGroup.d.ts +12 -0
- package/lib/Input/InputGroup.js +38 -0
- package/lib/Input/MoneyInputGroup.d.ts +7 -0
- package/lib/Input/MoneyInputGroup.js +46 -0
- package/lib/Input/NumberInputGroup.d.ts +7 -0
- package/lib/Input/NumberInputGroup.js +46 -0
- package/lib/Input/StringInputGroup.d.ts +7 -0
- package/lib/Input/StringInputGroup.js +45 -0
- package/lib/Normalization/NormalizationFunction.d.ts +4 -0
- package/lib/Normalization/NormalizationFunction.js +2 -0
- package/lib/Normalization/normalizers.d.ts +2 -0
- package/lib/Normalization/normalizers.js +35 -0
- package/lib/Select/BooleanSelectGroup.d.ts +7 -0
- package/lib/Select/BooleanSelectGroup.js +34 -0
- package/lib/Select/NumberSelectGroup.d.ts +8 -0
- package/lib/Select/NumberSelectGroup.js +27 -0
- package/lib/Select/SelectGroup.d.ts +22 -0
- package/lib/Select/SelectGroup.js +65 -0
- package/lib/Select/SelectGroupPropsHelper.d.ts +3 -0
- package/lib/Select/SelectGroupPropsHelper.js +2 -0
- package/lib/Select/StringSelectGroup.d.ts +8 -0
- package/lib/Select/StringSelectGroup.js +27 -0
- package/lib/StandardFormActions.d.ts +6 -0
- package/lib/StandardFormActions.js +29 -37
- package/lib/SubmitFormButton.d.ts +7 -0
- package/lib/SubmitFormButton.js +42 -38
- package/lib/TextArea/TextAreaGroup.d.ts +8 -0
- package/lib/TextArea/TextAreaGroup.js +38 -0
- package/lib/Validation/ValidatedApiResult.d.ts +6 -0
- package/lib/Validation/ValidatedApiResult.js +2 -0
- package/lib/Validation/ValidationError.d.ts +5 -0
- package/lib/Validation/ValidationError.js +2 -0
- package/lib/Validation/ValidationFunction.d.ts +4 -0
- package/lib/Validation/ValidationFunction.js +2 -0
- package/lib/Validation/validators.d.ts +15 -0
- package/lib/Validation/validators.js +86 -0
- package/lib/__Tests__/FormTestBase.d.ts +27 -0
- package/lib/__Tests__/FormTestBase.js +86 -25
- package/lib/__Tests__/index.d.ts +2 -0
- package/lib/__Tests__/index.js +8 -15
- package/lib/index.d.ts +71 -0
- package/lib/index.js +112 -262
- package/lib/utils/objectContainsNonSerializableProperty.d.ts +1 -0
- package/lib/utils/objectContainsNonSerializableProperty.js +17 -24
- package/lib/utils/objectToFormData.d.ts +10 -0
- package/lib/utils/objectToFormData.js +79 -73
- package/lib/utils/typeChecks.d.ts +8 -0
- package/lib/utils/typeChecks.js +29 -58
- package/package.json +106 -101
- package/src/AddressInput/{AddesssInput.test.js → AddressInput.test.tsx} +7 -3
- package/src/AddressInput/AddressInput.tsx +72 -0
- package/src/AddressInput/{UsStates.js → UsStates.ts} +3 -1
- package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +179 -0
- package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +24 -0
- package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +50 -0
- package/src/ConfirmBaseForm/__snapshots__/{ConfirmBaseForm.test.js.snap → ConfirmBaseForm.test.tsx.snap} +2 -2
- package/src/ConfirmDeleteForm/{ConfirmDeleteForm.test.js → ConfirmDeleteForm.test.tsx} +3 -3
- package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +67 -0
- package/src/ConfirmDeleteForm/__snapshots__/{ConfirmDeleteForm.test.js.snap → ConfirmDeleteForm.test.tsx.snap} +2 -2
- package/src/DatePicker/DateOnlyDatePickerGroup.tsx +24 -0
- package/src/DatePicker/DatePicker.test.tsx +48 -0
- package/src/DatePicker/DatePickerGroup.tsx +75 -0
- package/src/DatePicker/DatePickerHelper.ts +4 -0
- package/src/DatePicker/StringDatePickerGroup.tsx +14 -0
- package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +151 -0
- package/src/Field/CustomFieldInputProps.ts +10 -0
- package/src/Field/CustomFieldMetaProps.ts +5 -0
- package/src/Field/Field.tsx +93 -0
- package/src/Field/FieldErrorScrollTarget.tsx +11 -0
- package/src/Field/FieldNameContext.ts +6 -0
- package/src/Field/FieldSection.tsx +18 -0
- package/src/Field/InjectedFieldProps.ts +8 -0
- package/src/Field/StandAloneInput.tsx +51 -0
- package/src/Field/useStandardField.ts +121 -0
- package/src/FieldArray/FieldArray.tsx +133 -0
- package/src/File/FileGroup.test.tsx +35 -0
- package/src/File/FileGroup.tsx +71 -0
- package/src/File/FileList.tsx +19 -0
- package/src/File/__snapshots__/FileGroup.test.tsx.snap +33 -0
- package/src/File/humanFileSize.ts +8 -0
- package/src/Form/{FocusError.js → FocusError.tsx} +10 -6
- package/src/Form/Form.test.tsx +14 -0
- package/src/Form/{Form.js → Form.tsx} +71 -31
- package/src/Form/FormBasedPreventNavigation.tsx +74 -0
- package/src/Form/ServerErrorContext.ts +17 -0
- package/src/Form/__snapshots__/{Form.test.js.snap → Form.test.tsx.snap} +1 -1
- package/src/FormActions.tsx +34 -0
- package/src/Group.tsx +43 -0
- package/src/Input/IconInputGroup.tsx +48 -0
- package/src/Input/InputGroup.tsx +57 -0
- package/src/Input/MoneyInputGroup.tsx +44 -0
- package/src/Input/NumberInputGroup.tsx +42 -0
- package/src/Input/StringInputGroup.tsx +48 -0
- package/src/Input/__Tests__/IconInputGroup.test.tsx +35 -0
- package/src/Input/__Tests__/MoneyInputGroup.test.tsx +37 -0
- package/src/Input/__Tests__/NumberInputGroup.test.tsx +35 -0
- package/src/Input/__Tests__/StringInputGroup.test.tsx +27 -0
- package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +30 -0
- package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +32 -0
- package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +30 -0
- package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +29 -0
- package/src/Normalization/NormalizationFunction.ts +4 -0
- package/src/{normalizers.js → Normalization/normalizers.ts} +5 -5
- package/src/Select/BooleanSelectGroup.tsx +27 -0
- package/src/Select/NumberSelectGroup.tsx +14 -0
- package/src/Select/SelectGroup.tsx +106 -0
- package/src/Select/SelectGroupPropsHelper.ts +4 -0
- package/src/Select/StringSelectGroup.tsx +14 -0
- package/src/Select/__tests__/BooleanSelectGroup.test.tsx +35 -0
- package/src/Select/__tests__/NumberSelectGroup.test.tsx +87 -0
- package/src/Select/__tests__/StringSelectGroup.test.tsx +89 -0
- package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +99 -0
- package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +197 -0
- package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +197 -0
- package/src/{StandardFormActions.js → StandardFormActions.tsx} +12 -6
- package/src/SubmitFormButton.tsx +44 -0
- package/src/TextArea/TextAreaGroup.tsx +55 -0
- package/src/Validation/ValidatedApiResult.ts +8 -0
- package/src/Validation/ValidationError.ts +6 -0
- package/src/Validation/ValidationFunction.ts +4 -0
- package/src/{validators/validators.test.js → Validation/validators.test.tsx} +6 -4
- package/src/Validation/validators.ts +92 -0
- package/src/__Tests__/FormTestBase.tsx +63 -0
- package/src/__Tests__/{StandardFormActions.test.js → StandardFormActions.test.tsx} +2 -8
- package/src/__Tests__/{SubmitFormButton.test.js → SubmitFormButton.test.tsx} +2 -8
- package/src/__Tests__/__snapshots__/{StandardFormActions.test.js.snap → StandardFormActions.test.tsx.snap} +2 -2
- package/src/__Tests__/__snapshots__/{SubmitFormButton.test.js.snap → SubmitFormButton.test.tsx.snap} +1 -1
- package/src/__Tests__/index.ts +3 -0
- package/src/index.ts +149 -0
- package/src/react-app-env.d.ts +1 -0
- package/src/styles.scss +0 -7
- package/src/utils/{objectContainsNonSerializableProperty.test.js → objectContainsNonSerializableProperty.test.tsx} +0 -0
- package/src/utils/{objectContainsNonSerializableProperty.js → objectContainsNonSerializableProperty.ts} +4 -2
- package/src/utils/{objectToFormData.test.js → objectToFormData.test.tsx} +0 -0
- package/src/utils/{objectToFormData.js → objectToFormData.ts} +29 -13
- package/src/utils/typeChecks.ts +18 -0
- package/es/AddressInput/index.js +0 -3
- package/es/BoolInput/BoolInput.js +0 -10
- package/es/BoolInput/InlineBoolInput.js +0 -10
- package/es/BoolInput/boolOptions.js +0 -8
- package/es/BoolInput/index.js +0 -3
- package/es/ConfirmBaseForm/index.js +0 -2
- package/es/ConfirmDeleteForm/index.js +0 -2
- package/es/DatePickerInput/DatePickerInput.js +0 -95
- package/es/DatePickerInput/index.js +0 -2
- package/es/ErrorScrollTarget.js +0 -10
- package/es/FileInput/DefaultFileList.js +0 -36
- package/es/FileInput/DropzoneFileInput.js +0 -58
- package/es/FileInput/FileInput.js +0 -62
- package/es/FileInput/index.js +0 -4
- package/es/Form/index.js +0 -5
- package/es/FormGroup.js +0 -22
- package/es/FormGroupWrapper.js +0 -22
- package/es/FormInput/FormInput.js +0 -212
- package/es/FormInput/index.js +0 -2
- package/es/FormInputArray/FormInputArray.js +0 -225
- package/es/FormInputArray/index.js +0 -2
- package/es/FormSection.js +0 -11
- package/es/IconInput.js +0 -33
- package/es/InlineFormInput/InlineFormInput.js +0 -8
- package/es/InlineFormInput/index.js +0 -2
- package/es/MoneyFormattedInput/MoneyFormattedInput.js +0 -106
- package/es/MoneyFormattedInput/index.js +0 -2
- package/es/MoneyInput/InlineMoneyInput.js +0 -7
- package/es/MoneyInput/MoneyInput.js +0 -7
- package/es/MoneyInput/index.js +0 -3
- package/es/MoneyInput/moneyInputProps.js +0 -13
- package/es/NestedFormFieldContext.js +0 -4
- package/es/ReactSelectField/ReactSelectField.js +0 -162
- package/es/ReactSelectField/index.js +0 -2
- package/es/normalizers.js +0 -39
- package/es/selectors.js +0 -6
- package/es/useStandardFormInput.js +0 -119
- package/es/utils/index.js +0 -3
- package/es/validators/index.js +0 -2
- package/es/validators/validators.js +0 -94
- package/lib/AddressInput/index.js +0 -23
- package/lib/BoolInput/BoolInput.js +0 -23
- package/lib/BoolInput/InlineBoolInput.js +0 -23
- package/lib/BoolInput/boolOptions.js +0 -15
- package/lib/BoolInput/index.js +0 -23
- package/lib/ConfirmBaseForm/index.js +0 -13
- package/lib/ConfirmDeleteForm/index.js +0 -13
- package/lib/DatePickerInput/DatePickerInput.js +0 -113
- package/lib/DatePickerInput/index.js +0 -13
- package/lib/ErrorScrollTarget.js +0 -20
- package/lib/FileInput/DefaultFileList.js +0 -47
- package/lib/FileInput/DropzoneFileInput.js +0 -75
- package/lib/FileInput/FileInput.js +0 -82
- package/lib/FileInput/index.js +0 -31
- package/lib/Form/index.js +0 -39
- package/lib/FormGroup.js +0 -33
- package/lib/FormGroupWrapper.js +0 -37
- package/lib/FormInput/FormInput.js +0 -236
- package/lib/FormInput/index.js +0 -13
- package/lib/FormInputArray/FormInputArray.js +0 -248
- package/lib/FormInputArray/index.js +0 -13
- package/lib/FormSection.js +0 -28
- package/lib/IconInput.js +0 -51
- package/lib/InlineFormInput/InlineFormInput.js +0 -20
- package/lib/InlineFormInput/index.js +0 -13
- package/lib/MoneyFormattedInput/MoneyFormattedInput.js +0 -126
- package/lib/MoneyFormattedInput/index.js +0 -15
- package/lib/MoneyInput/InlineMoneyInput.js +0 -20
- package/lib/MoneyInput/MoneyInput.js +0 -20
- package/lib/MoneyInput/index.js +0 -23
- package/lib/MoneyInput/moneyInputProps.js +0 -26
- package/lib/NestedFormFieldContext.js +0 -16
- package/lib/ReactSelectField/ReactSelectField.js +0 -187
- package/lib/ReactSelectField/index.js +0 -31
- package/lib/normalizers.js +0 -51
- package/lib/selectors.js +0 -18
- package/lib/useStandardFormInput.js +0 -135
- package/lib/utils/index.js +0 -23
- package/lib/validators/index.js +0 -17
- package/lib/validators/validators.js +0 -130
- package/src/AddressInput/AddressInput.js +0 -73
- package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +0 -207
- package/src/AddressInput/index.js +0 -3
- package/src/BoolInput/BoolInput.js +0 -7
- package/src/BoolInput/BoolInput.test.js +0 -23
- package/src/BoolInput/InlineBoolInput.js +0 -7
- package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +0 -89
- package/src/BoolInput/boolOptions.js +0 -6
- package/src/BoolInput/index.js +0 -4
- package/src/ConfirmBaseForm/ConfirmBaseForm.js +0 -37
- package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +0 -14
- package/src/ConfirmBaseForm/index.js +0 -2
- package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -39
- package/src/ConfirmDeleteForm/index.js +0 -2
- package/src/DatePickerInput/DatePickerInput.js +0 -49
- package/src/DatePickerInput/DatePickerInput.test.js +0 -74
- package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +0 -134
- package/src/DatePickerInput/date-picker-input.scss +0 -42
- package/src/DatePickerInput/index.js +0 -3
- package/src/ErrorScrollTarget.js +0 -6
- package/src/FileInput/DefaultFileList.js +0 -39
- package/src/FileInput/DropzoneFileInput.js +0 -56
- package/src/FileInput/DropzoneFileInput.test.js +0 -24
- package/src/FileInput/FileInput.js +0 -77
- package/src/FileInput/FileInput.test.js +0 -24
- package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +0 -57
- package/src/FileInput/__snapshots__/FileInput.test.js.snap +0 -58
- package/src/FileInput/file-input.scss +0 -58
- package/src/FileInput/index.js +0 -5
- package/src/Form/Form.test.js +0 -23
- package/src/Form/FormBasedPreventNavigation.js +0 -25
- package/src/Form/ServerErrorContext.js +0 -7
- package/src/Form/index.js +0 -11
- package/src/FormGroup.js +0 -30
- package/src/FormGroupWrapper.js +0 -28
- package/src/FormInput/FormInput.js +0 -148
- package/src/FormInput/FormInput.test.js +0 -66
- package/src/FormInput/__snapshots__/FormInput.test.js.snap +0 -323
- package/src/FormInput/form-input.scss +0 -9
- package/src/FormInput/index.js +0 -2
- package/src/FormInputArray/FormInputArray.js +0 -224
- package/src/FormInputArray/FormInputArray.test.js +0 -108
- package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +0 -52
- package/src/FormInputArray/form-input-array.scss +0 -13
- package/src/FormInputArray/index.js +0 -2
- package/src/FormSection.js +0 -13
- package/src/IconInput.js +0 -31
- package/src/InlineFormInput/InlineFormInput.js +0 -6
- package/src/InlineFormInput/InlineFormInput.test.js +0 -23
- package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +0 -26
- package/src/InlineFormInput/index.js +0 -3
- package/src/InlineFormInput/inline-form-input.scss +0 -3
- package/src/MoneyFormattedInput/MoneyFormattedInput.js +0 -115
- package/src/MoneyFormattedInput/index.js +0 -3
- package/src/MoneyInput/InlineMoneyInput.js +0 -7
- package/src/MoneyInput/MoneyInput.js +0 -7
- package/src/MoneyInput/MoneyInputs.test.js +0 -43
- package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +0 -81
- package/src/MoneyInput/index.js +0 -4
- package/src/MoneyInput/money-input.scss +0 -3
- package/src/MoneyInput/moneyInputProps.js +0 -12
- package/src/NestedFormFieldContext.js +0 -6
- package/src/ReactSelectField/ReactSelectField.js +0 -155
- package/src/ReactSelectField/index.js +0 -6
- package/src/ReactSelectField/react-select-field.scss +0 -5
- package/src/SubmitFormButton.js +0 -28
- package/src/__Tests__/FormTestBase.js +0 -14
- package/src/__Tests__/IconInput.test.js +0 -23
- package/src/__Tests__/__snapshots__/IconInput.test.js.snap +0 -38
- package/src/index.js +0 -70
- package/src/selectors.js +0 -3
- package/src/useStandardFormInput.js +0 -118
- package/src/utils/index.js +0 -3
- package/src/utils/typeChecks.js +0 -18
- package/src/validators/index.js +0 -2
- package/src/validators/validators.js +0 -93
@@ -1,8 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import React from 'react';
|
3
|
-
import FormInput from '../FormInput';
|
4
|
-
export default function InlineFormInput(props) {
|
5
|
-
return /*#__PURE__*/React.createElement(FormInput, _extends({
|
6
|
-
className: "inline-form-input col"
|
7
|
-
}, props));
|
8
|
-
}
|
@@ -1,106 +0,0 @@
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
-
import React, { useEffect, useMemo, useState } from 'react';
|
3
|
-
import { useField } from 'formik';
|
4
|
-
import debounce from 'lodash/debounce';
|
5
|
-
import classNames from 'classnames'; // Money input that will format the value to always have commas, a single decimal, and
|
6
|
-
// exactly two digits after the decimal. This happens after a delay (using debounce).
|
7
|
-
|
8
|
-
export default function MoneyFormattedInput(_ref) {
|
9
|
-
var name = _ref.name,
|
10
|
-
onBlur = _ref.onBlur,
|
11
|
-
onChange = _ref.onChange,
|
12
|
-
classname = _ref.classname,
|
13
|
-
_ref$disabled = _ref.disabled,
|
14
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
15
|
-
_ref$debounceTimer = _ref.debounceTimer,
|
16
|
-
debounceTimer = _ref$debounceTimer === void 0 ? 1500 : _ref$debounceTimer,
|
17
|
-
meta = _ref.meta;
|
18
|
-
|
19
|
-
// The displayed state and formik state are two seperate values that we handle
|
20
|
-
var _useState = useState(''),
|
21
|
-
_useState2 = _slicedToArray(_useState, 2),
|
22
|
-
inputValue = _useState2[0],
|
23
|
-
setInputValue = _useState2[1];
|
24
|
-
|
25
|
-
var _useField = useField(name),
|
26
|
-
_useField2 = _slicedToArray(_useField, 1),
|
27
|
-
formikValue = _useField2[0].value;
|
28
|
-
|
29
|
-
var handleChangeDebounce = useMemo(function () {
|
30
|
-
return debounce(debouncedUpdateInput, debounceTimer);
|
31
|
-
|
32
|
-
function debouncedUpdateInput(value) {
|
33
|
-
var result = formatToCurrency(value);
|
34
|
-
setInputValue(result !== null && result !== void 0 ? result : ''); // sets value in formik
|
35
|
-
|
36
|
-
onChange(result !== null && result !== void 0 ? result : '');
|
37
|
-
onBlur();
|
38
|
-
}
|
39
|
-
}, [onBlur, onChange]); // Format first render
|
40
|
-
|
41
|
-
useEffect(function () {
|
42
|
-
var formattedFormikValue = formatToCurrency(formikValue);
|
43
|
-
setInputValue(formattedFormikValue !== null && formattedFormikValue !== void 0 ? formattedFormikValue : '');
|
44
|
-
}, [formikValue]);
|
45
|
-
|
46
|
-
function handleChange(e) {
|
47
|
-
var onlyNumbersDecimalComma = e.target.value.toString().replace(/[^.,0-9]/g, '');
|
48
|
-
setInputValue(onlyNumbersDecimalComma);
|
49
|
-
handleChangeDebounce(onlyNumbersDecimalComma);
|
50
|
-
}
|
51
|
-
|
52
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
53
|
-
className: "input-group"
|
54
|
-
}, /*#__PURE__*/React.createElement("div", {
|
55
|
-
className: "input-group-prepend"
|
56
|
-
}, /*#__PURE__*/React.createElement("span", {
|
57
|
-
className: "input-group-text"
|
58
|
-
}, "$")), /*#__PURE__*/React.createElement("input", {
|
59
|
-
name: name,
|
60
|
-
type: "text",
|
61
|
-
value: inputValue,
|
62
|
-
onChange: handleChange,
|
63
|
-
onBlur: onBlur,
|
64
|
-
disabled: disabled,
|
65
|
-
className: classNames(classname, meta.error === 'Required' ? 'is-invalid' : '', 'react-select-input money-input form-control')
|
66
|
-
})));
|
67
|
-
}
|
68
|
-
|
69
|
-
function formatToCurrency(value) {
|
70
|
-
if (value === null || value === undefined) {
|
71
|
-
return null;
|
72
|
-
} // 'value' is sometimes a number on first render
|
73
|
-
|
74
|
-
|
75
|
-
var onlyNumbersDecimal = value.toString().replace(/[^.0-9]/g, '');
|
76
|
-
|
77
|
-
if (!onlyNumbersDecimal) {
|
78
|
-
return null;
|
79
|
-
}
|
80
|
-
|
81
|
-
var result = new Intl.NumberFormat('en-US', {
|
82
|
-
style: 'decimal',
|
83
|
-
minimumSignificantDigits: 2,
|
84
|
-
minimumFractionDigits: 2
|
85
|
-
}).format(parseFloat(onlyNumbersDecimal));
|
86
|
-
result = formatTwoDecimalPlaces(result);
|
87
|
-
return result;
|
88
|
-
}
|
89
|
-
|
90
|
-
function formatTwoDecimalPlaces(value) {
|
91
|
-
var decimalIndex = value.indexOf('.'); // If the string doesn't contain a decimal OR
|
92
|
-
// the string contains a single '.' with nothing to the right of the decimal -> append '.00'
|
93
|
-
// Reason: parseFloat will remove '.00' from whole numbers (ex. 350.00 -> 350)
|
94
|
-
|
95
|
-
if (!value.includes('.')) {
|
96
|
-
return value.concat('.00');
|
97
|
-
} // If 2 or more characters to the right of the decimal
|
98
|
-
else if (!!value.charAt(decimalIndex + 2)) {
|
99
|
-
return value.substring(0, decimalIndex + 3);
|
100
|
-
} // If only 1 character to the right of the decimal
|
101
|
-
else if (!!value.charAt(decimalIndex + 1)) {
|
102
|
-
return value.substring(0, decimalIndex + 2).concat('0');
|
103
|
-
}
|
104
|
-
|
105
|
-
return value;
|
106
|
-
}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import React from 'react';
|
3
|
-
import InlineFormInput from '../InlineFormInput';
|
4
|
-
import moneyInputProps from './moneyInputProps';
|
5
|
-
export default function InlineMoneyInput(props) {
|
6
|
-
return /*#__PURE__*/React.createElement(InlineFormInput, _extends({}, moneyInputProps, props));
|
7
|
-
}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import React from 'react';
|
3
|
-
import FormInput from '../FormInput';
|
4
|
-
import moneyInputProps from './moneyInputProps';
|
5
|
-
export default function MoneyInput(props) {
|
6
|
-
return /*#__PURE__*/React.createElement(FormInput, _extends({}, moneyInputProps, props));
|
7
|
-
}
|
package/es/MoneyInput/index.js
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { InputGroupAddon } from 'reactstrap';
|
3
|
-
var MoneyPrepend = /*#__PURE__*/React.createElement(InputGroupAddon, {
|
4
|
-
addonType: "prepend"
|
5
|
-
}, "$");
|
6
|
-
var moneyInputProps = {
|
7
|
-
type: 'number',
|
8
|
-
step: '0.01',
|
9
|
-
min: '0',
|
10
|
-
prepend: MoneyPrepend,
|
11
|
-
className: 'money-input'
|
12
|
-
};
|
13
|
-
export default moneyInputProps;
|
@@ -1,162 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
4
|
-
var _excluded = ["className", "meta", "disabled", "onSelected", "onChange", "onBlur", "value", "options", "defaultValue", "defaultIndex"];
|
5
|
-
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
7
|
-
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
9
|
-
|
10
|
-
import classNames from 'classnames';
|
11
|
-
import React, { useEffect, useRef } from 'react';
|
12
|
-
import { default as ReactSelect } from 'react-select';
|
13
|
-
export var overrideTheme = function overrideTheme(theme) {
|
14
|
-
return _objectSpread(_objectSpread({}, theme), {}, {
|
15
|
-
borderRadius: 0,
|
16
|
-
spacing: Object.assign({}, _objectSpread({}, theme.spacing), {
|
17
|
-
baseUnit: 2,
|
18
|
-
controlHeight: 35
|
19
|
-
})
|
20
|
-
});
|
21
|
-
};
|
22
|
-
var red = '#f86c6b';
|
23
|
-
var inputBorderColor = '#c2cfd6';
|
24
|
-
var inputBorderColorFocused = '#8ad4ee';
|
25
|
-
var inputBoxShadowFocused = '0 0 0 0.2rem rgba(32, 168, 216, 0.25)';
|
26
|
-
var placeholderColor = '#9ca3af';
|
27
|
-
var disabledSingleValueColor = '#4b5563';
|
28
|
-
export var customStyles = {
|
29
|
-
control: function control(provided, _ref) {
|
30
|
-
var isFocused = _ref.isFocused,
|
31
|
-
selectProps = _ref.selectProps;
|
32
|
-
return _objectSpread(_objectSpread({}, provided), {}, {
|
33
|
-
paddingLeft: '7px',
|
34
|
-
'&:hover': {
|
35
|
-
borderColor: isFocused ? inputBorderColorFocused : inputBorderColor
|
36
|
-
},
|
37
|
-
borderColor: selectProps.hasErrors ? red : isFocused ? inputBorderColorFocused : inputBorderColor,
|
38
|
-
boxShadow: isFocused ? inputBoxShadowFocused : ''
|
39
|
-
});
|
40
|
-
},
|
41
|
-
menu: function menu(provided) {
|
42
|
-
return _objectSpread(_objectSpread({}, provided), {}, {
|
43
|
-
zIndex: 3
|
44
|
-
});
|
45
|
-
},
|
46
|
-
singleValue: function singleValue(provided, state) {
|
47
|
-
var color = state.isDisabled ? disabledSingleValueColor : '';
|
48
|
-
return _objectSpread(_objectSpread({}, provided), {}, {
|
49
|
-
color: color
|
50
|
-
});
|
51
|
-
},
|
52
|
-
placeholder: function placeholder(defaultStyles) {
|
53
|
-
return _objectSpread(_objectSpread({}, defaultStyles), {}, {
|
54
|
-
color: placeholderColor
|
55
|
-
});
|
56
|
-
}
|
57
|
-
}; // internal to forms use only
|
58
|
-
|
59
|
-
export default function ReactSelectInput(_ref2) {
|
60
|
-
var className = _ref2.className,
|
61
|
-
meta = _ref2.meta,
|
62
|
-
disabled = _ref2.disabled,
|
63
|
-
onSelected = _ref2.onSelected,
|
64
|
-
onChange = _ref2.onChange,
|
65
|
-
_onBlur = _ref2.onBlur,
|
66
|
-
value = _ref2.value,
|
67
|
-
options = _ref2.options,
|
68
|
-
defaultValue = _ref2.defaultValue,
|
69
|
-
defaultIndex = _ref2.defaultIndex,
|
70
|
-
props = _objectWithoutProperties(_ref2, _excluded);
|
71
|
-
|
72
|
-
var selectedItems = getSelectedItems();
|
73
|
-
var onSelectedRef = useRef(onSelected);
|
74
|
-
onSelectedRef.current = onSelected;
|
75
|
-
useEffect(function () {
|
76
|
-
onSelectedRef.current && onSelectedRef.current(selectedItems);
|
77
|
-
}, [selectedItems]);
|
78
|
-
var onBlurRef = useRef(_onBlur);
|
79
|
-
onBlurRef.current = _onBlur;
|
80
|
-
var touched = meta.touched;
|
81
|
-
useEffect(function () {
|
82
|
-
if (!touched) return; // without the timer set to 0, if the empty option is selected the required message doesn't appear until clicked away from the select input
|
83
|
-
|
84
|
-
var timerRef = setTimeout(function () {
|
85
|
-
onBlurRef.current && onBlurRef.current();
|
86
|
-
}, 0);
|
87
|
-
return function () {
|
88
|
-
clearTimeout(timerRef);
|
89
|
-
};
|
90
|
-
}, [value, touched]);
|
91
|
-
var classes = classNames(className, 'react-select-input', {
|
92
|
-
'is-invalid': !!meta.error,
|
93
|
-
disabled: disabled
|
94
|
-
});
|
95
|
-
return /*#__PURE__*/React.createElement(ReactSelect, _extends({}, props, {
|
96
|
-
options: options,
|
97
|
-
isDisabled: disabled,
|
98
|
-
hasErrors: meta.error,
|
99
|
-
getOptionLabel: function getOptionLabel(option) {
|
100
|
-
return option.label;
|
101
|
-
},
|
102
|
-
getOptionValue: getOptionValue,
|
103
|
-
value: selectedItems,
|
104
|
-
onChange: handleChange,
|
105
|
-
onBlur: function onBlur() {
|
106
|
-
return _onBlur();
|
107
|
-
},
|
108
|
-
className: classes,
|
109
|
-
theme: overrideTheme,
|
110
|
-
styles: customStyles,
|
111
|
-
menuPortalTarget: document.body,
|
112
|
-
menuPlacement: "auto"
|
113
|
-
}));
|
114
|
-
|
115
|
-
function getOptionValue(option) {
|
116
|
-
if (typeof props.getOptionValue === 'function') {
|
117
|
-
return props.getOptionValue(option);
|
118
|
-
} else {
|
119
|
-
return option.value;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
123
|
-
function getSelectedItems() {
|
124
|
-
if (defaultValue !== undefined && value === '') {
|
125
|
-
value = defaultValue;
|
126
|
-
onChange(defaultValue);
|
127
|
-
}
|
128
|
-
|
129
|
-
if (defaultIndex !== undefined && value === '') {
|
130
|
-
var item = options[defaultIndex];
|
131
|
-
onChange(getOptionValue(item));
|
132
|
-
return item;
|
133
|
-
}
|
134
|
-
|
135
|
-
var valueIsArray = Array.isArray(value);
|
136
|
-
var matches = options.filter(function (x) {
|
137
|
-
if (valueIsArray) {
|
138
|
-
return value.includes(getOptionValue(x));
|
139
|
-
} else {
|
140
|
-
return value === getOptionValue(x);
|
141
|
-
}
|
142
|
-
});
|
143
|
-
|
144
|
-
if (matches.length < 1) {
|
145
|
-
return null;
|
146
|
-
}
|
147
|
-
|
148
|
-
return matches;
|
149
|
-
}
|
150
|
-
|
151
|
-
function handleChange(e) {
|
152
|
-
if (e == null) {
|
153
|
-
onChange(null);
|
154
|
-
} else if (Array.isArray(e)) {
|
155
|
-
onChange(e.map(function (x) {
|
156
|
-
return x.value;
|
157
|
-
}));
|
158
|
-
} else {
|
159
|
-
onChange(e.value);
|
160
|
-
}
|
161
|
-
}
|
162
|
-
}
|
package/es/normalizers.js
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
export var phoneNumber = function phoneNumber(value) {
|
2
|
-
if (!value) {
|
3
|
-
return value;
|
4
|
-
}
|
5
|
-
|
6
|
-
var onlyNums = value.replace(/[^\d]/g, '');
|
7
|
-
|
8
|
-
if (onlyNums.length <= 3) {
|
9
|
-
return onlyNums;
|
10
|
-
}
|
11
|
-
|
12
|
-
if (onlyNums.length <= 7) {
|
13
|
-
return "".concat(onlyNums.slice(0, 3), "-").concat(onlyNums.slice(3));
|
14
|
-
}
|
15
|
-
|
16
|
-
if (onlyNums.length <= 10) {
|
17
|
-
return "".concat(onlyNums.slice(0, 3), "-").concat(onlyNums.slice(3, 6), "-").concat(onlyNums.slice(6, 10));
|
18
|
-
}
|
19
|
-
|
20
|
-
if (onlyNums.length <= 13) {
|
21
|
-
var countryCodeLength = onlyNums - 10;
|
22
|
-
return "+".concat(onlyNums.slice(0, countryCodeLength), " ").concat(onlyNums.slice(countryCodeLength, 3 + countryCodeLength), "-").concat(onlyNums.slice(3 + countryCodeLength, 6 + countryCodeLength), "-").concat(onlyNums.slice(6 + countryCodeLength, onlyNums.length));
|
23
|
-
}
|
24
|
-
|
25
|
-
return onlyNums;
|
26
|
-
};
|
27
|
-
export var zipCode = function zipCode(value) {
|
28
|
-
if (!value) {
|
29
|
-
return value;
|
30
|
-
}
|
31
|
-
|
32
|
-
var onlyNums = value.replace(/[^\d]/g, '');
|
33
|
-
|
34
|
-
if (onlyNums.length > 5) {
|
35
|
-
return onlyNums.substring(0, 5) + '-' + onlyNums.substring(5, 9);
|
36
|
-
}
|
37
|
-
|
38
|
-
return onlyNums;
|
39
|
-
};
|
package/es/selectors.js
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["id", "name", "disabled", "validate", "normalize"],
|
4
|
-
_excluded2 = ["onChange", "value"];
|
5
|
-
import { useField, useFormikContext } from 'formik';
|
6
|
-
import { useContext, useEffect } from 'react';
|
7
|
-
import NestedFormFieldContext from './NestedFormFieldContext';
|
8
|
-
import { ServerErrorContext } from './Form'; // provides a consistent way to deal with all form fields (non array)
|
9
|
-
|
10
|
-
export default function useStandardFormInput(_ref) {
|
11
|
-
var providedId = _ref.id,
|
12
|
-
providedName = _ref.name,
|
13
|
-
disabled = _ref.disabled,
|
14
|
-
validate = _ref.validate,
|
15
|
-
normalize = _ref.normalize,
|
16
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
17
|
-
|
18
|
-
// because the formik errors are evaluated all at the same time we need to keep server errors separate
|
19
|
-
var _useContext = useContext(ServerErrorContext),
|
20
|
-
getServerError = _useContext.getError,
|
21
|
-
setServerError = _useContext.setError; // ensure that form section values are obeyed, e.g. homeAddress.zipCode
|
22
|
-
|
23
|
-
|
24
|
-
var parentFormFieldContext = useContext(NestedFormFieldContext);
|
25
|
-
var name = parentFormFieldContext ? "".concat(parentFormFieldContext, ".").concat(providedName) : providedName; // ensure that nested contexts don't have duplicate id issues when an id is specified
|
26
|
-
|
27
|
-
var id = providedId && parentFormFieldContext ? "".concat(parentFormFieldContext, ".").concat(providedId) : providedId; // ensure that our custom validation rules are handled
|
28
|
-
// e.g. we allow arrays of validators
|
29
|
-
|
30
|
-
var _useField = useField(Object.assign({
|
31
|
-
name: name,
|
32
|
-
id: id
|
33
|
-
}, props, {
|
34
|
-
validate: callAllValidators
|
35
|
-
})),
|
36
|
-
_useField2 = _slicedToArray(_useField, 2),
|
37
|
-
_useField2$ = _useField2[0],
|
38
|
-
formikOnChange = _useField2$.onChange,
|
39
|
-
value = _useField2$.value,
|
40
|
-
formikProps = _objectWithoutProperties(_useField2$, _excluded2),
|
41
|
-
meta = _useField2[1];
|
42
|
-
|
43
|
-
var _useFormikContext = useFormikContext(),
|
44
|
-
setFieldValue = _useFormikContext.setFieldValue,
|
45
|
-
isSubmitting = _useFormikContext.isSubmitting; // these are the props we expect consumers of this hook to pass directly to the input (or other control)
|
46
|
-
|
47
|
-
|
48
|
-
var inputProps = Object.assign({}, props, formikProps, {
|
49
|
-
// ensure that we don't send a undefined / null - which signals to react that we are uncontrolled
|
50
|
-
// also, pass any direct from server props through normalize without making the form dirty (e.g. phone number)
|
51
|
-
value: value === undefined || value === null ? '' : normalize && normalize(value) || value,
|
52
|
-
// ensure the id is set if not provided
|
53
|
-
id: id ? id : name,
|
54
|
-
// ensure we can handle both events from direct inputs and controlled ones like react select AND normalize
|
55
|
-
onChange: handleChange,
|
56
|
-
onBlur: handleBlur,
|
57
|
-
disabled: disabled
|
58
|
-
});
|
59
|
-
useEffect(function () {
|
60
|
-
if (!meta.touched && isSubmitting) {
|
61
|
-
// because we do not always register all fields up front.
|
62
|
-
// e.g. formik expects even a 'create' form to have all fields given, at least, blank values
|
63
|
-
// that seems to be how it touches on submit:
|
64
|
-
// see: https://codesandbox.io/s/formik-example-4n7n8 vs https://codesandbox.io/s/formik-example-kttk5
|
65
|
-
// note in particular the change in line 24
|
66
|
-
// thus, we manually touch all fields here by calling onBlur
|
67
|
-
// there is a "setFieldTouched" from useFormikContext but it doesn't appear to work on field arrays
|
68
|
-
handleBlur();
|
69
|
-
}
|
70
|
-
});
|
71
|
-
var resultMeta = Object.assign({}, meta, {
|
72
|
-
error: getServerError(name) || (meta.touched ? meta.error : null)
|
73
|
-
});
|
74
|
-
return [inputProps, resultMeta];
|
75
|
-
|
76
|
-
function handleBlur(e) {
|
77
|
-
// some components are fully controlled and do not return synthetic events on blur
|
78
|
-
if (!e || !e.target) {
|
79
|
-
formikProps.onBlur({
|
80
|
-
target: {
|
81
|
-
name: name
|
82
|
-
}
|
83
|
-
});
|
84
|
-
} else {
|
85
|
-
formikProps.onBlur(e);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
|
89
|
-
function handleChange(e) {
|
90
|
-
if (disabled) {
|
91
|
-
return;
|
92
|
-
} // some components are fully controlled and do not return synthetic events (e.g. ReactSelect) on change
|
93
|
-
// we should handle all our normal cases here to normalize / get the value / etc
|
94
|
-
|
95
|
-
|
96
|
-
var value = e && e.target ? e.target.type === 'checkbox' ? e.target.checked : e.target.value : e;
|
97
|
-
var normalized = normalize ? normalize(value) : value;
|
98
|
-
setFieldValue(name, normalized);
|
99
|
-
setServerError(name, null);
|
100
|
-
}
|
101
|
-
|
102
|
-
function callAllValidators(value) {
|
103
|
-
if (disabled || !validate) {
|
104
|
-
return;
|
105
|
-
}
|
106
|
-
|
107
|
-
if (!Array.isArray(validate)) {
|
108
|
-
return validate(value);
|
109
|
-
}
|
110
|
-
|
111
|
-
for (var i = 0; i < validate.length; i++) {
|
112
|
-
var result = validate[i](value);
|
113
|
-
|
114
|
-
if (result) {
|
115
|
-
return result;
|
116
|
-
}
|
117
|
-
}
|
118
|
-
}
|
119
|
-
}
|
package/es/utils/index.js
DELETED
package/es/validators/index.js
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
2
|
-
export var required = function required(value) {
|
3
|
-
return value || value === false || value === 0 ? undefined : 'Required';
|
4
|
-
}; //asserts that the value is a certain number of characters. numbers are coerced to a string
|
5
|
-
|
6
|
-
export var length = function length(len) {
|
7
|
-
return function (value) {
|
8
|
-
var val = value;
|
9
|
-
|
10
|
-
var type = _typeof(val);
|
11
|
-
|
12
|
-
switch (type) {
|
13
|
-
case 'undefined':
|
14
|
-
return undefined;
|
15
|
-
|
16
|
-
case 'string':
|
17
|
-
break;
|
18
|
-
|
19
|
-
case 'number':
|
20
|
-
val = val.toString();
|
21
|
-
break;
|
22
|
-
|
23
|
-
default:
|
24
|
-
console.error("Invalid value type: ".concat(type, " passed to length validator"));
|
25
|
-
}
|
26
|
-
|
27
|
-
return val.length === len ? undefined : "Length must be ".concat(len);
|
28
|
-
};
|
29
|
-
};
|
30
|
-
export var integer = function integer(val) {
|
31
|
-
if (!Number.isInteger(parseFloat(val))) {
|
32
|
-
return 'Must be a whole number';
|
33
|
-
}
|
34
|
-
};
|
35
|
-
export var maxLength = function maxLength(length) {
|
36
|
-
return function (value) {
|
37
|
-
if (value) {
|
38
|
-
return value.length <= length ? undefined : "Maximum length ".concat(length, " exceeded");
|
39
|
-
} else {
|
40
|
-
return undefined;
|
41
|
-
}
|
42
|
-
};
|
43
|
-
};
|
44
|
-
export function maxCount(count) {
|
45
|
-
return function (value) {
|
46
|
-
return !value || value.filter(function (x) {
|
47
|
-
return !x.isDeleted;
|
48
|
-
}).length <= count ? undefined : "Should not have more than ".concat(count);
|
49
|
-
};
|
50
|
-
}
|
51
|
-
export function minCount(count) {
|
52
|
-
return function (value) {
|
53
|
-
return value && value.filter(function (x) {
|
54
|
-
return !x.isDeleted;
|
55
|
-
}).length >= count ? undefined : "Should have at least ".concat(count);
|
56
|
-
};
|
57
|
-
}
|
58
|
-
export var maxValue = function maxValue(value) {
|
59
|
-
return function (inputValue) {
|
60
|
-
if (inputValue != null && value != null) {
|
61
|
-
return inputValue <= value ? undefined : "Maximum value ".concat(value, " exceeded");
|
62
|
-
} else {
|
63
|
-
return undefined;
|
64
|
-
}
|
65
|
-
};
|
66
|
-
};
|
67
|
-
export var minValue = function minValue(value) {
|
68
|
-
return function (inputValue) {
|
69
|
-
if (inputValue != null && value != null) {
|
70
|
-
return inputValue >= value ? undefined : "Minimum value ".concat(value, " not met");
|
71
|
-
} else {
|
72
|
-
return undefined;
|
73
|
-
}
|
74
|
-
};
|
75
|
-
};
|
76
|
-
export var zipCode = function zipCode(value) {
|
77
|
-
return value && !/^[0-9]{5}(?:-[0-9]{4})?$/.test(value) ? 'Invalid ZIP Code' : undefined;
|
78
|
-
}; //one of the validators provided must be true
|
79
|
-
|
80
|
-
export var any = function any() {
|
81
|
-
for (var _len = arguments.length, validatorList = new Array(_len), _key = 0; _key < _len; _key++) {
|
82
|
-
validatorList[_key] = arguments[_key];
|
83
|
-
}
|
84
|
-
|
85
|
-
return function (value) {
|
86
|
-
if (validatorList.length === 0 || !value) {
|
87
|
-
return;
|
88
|
-
}
|
89
|
-
|
90
|
-
return validatorList.reduce(function (isAnyTrue, any) {
|
91
|
-
return isAnyTrue ? isAnyTrue : any(value);
|
92
|
-
}, false);
|
93
|
-
};
|
94
|
-
};
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
Object.defineProperty(exports, "default", {
|
9
|
-
enumerable: true,
|
10
|
-
get: function get() {
|
11
|
-
return _AddressInput["default"];
|
12
|
-
}
|
13
|
-
});
|
14
|
-
Object.defineProperty(exports, "UsStates", {
|
15
|
-
enumerable: true,
|
16
|
-
get: function get() {
|
17
|
-
return _UsStates["default"];
|
18
|
-
}
|
19
|
-
});
|
20
|
-
|
21
|
-
var _AddressInput = _interopRequireDefault(require("./AddressInput"));
|
22
|
-
|
23
|
-
var _UsStates = _interopRequireDefault(require("./UsStates"));
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
exports["default"] = BoolInput;
|
9
|
-
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
-
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
13
|
-
|
14
|
-
var _boolOptions = _interopRequireDefault(require("./boolOptions"));
|
15
|
-
|
16
|
-
var _FormInput = _interopRequireDefault(require("../FormInput"));
|
17
|
-
|
18
|
-
function BoolInput(props) {
|
19
|
-
return /*#__PURE__*/_react["default"].createElement(_FormInput["default"], (0, _extends2["default"])({
|
20
|
-
options: _boolOptions["default"],
|
21
|
-
type: "select"
|
22
|
-
}, props));
|
23
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
exports["default"] = InlineBoolInput;
|
9
|
-
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
-
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
13
|
-
|
14
|
-
var _boolOptions = _interopRequireDefault(require("./boolOptions"));
|
15
|
-
|
16
|
-
var _InlineFormInput = _interopRequireDefault(require("../InlineFormInput"));
|
17
|
-
|
18
|
-
function InlineBoolInput(props) {
|
19
|
-
return /*#__PURE__*/_react["default"].createElement(_InlineFormInput["default"], (0, _extends2["default"])({
|
20
|
-
options: _boolOptions["default"],
|
21
|
-
type: "select"
|
22
|
-
}, props));
|
23
|
-
}
|