envoc-form 3.3.0 → 4.0.1-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/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/DatePickerInput/DatePickerInput.d.ts +14 -0
- package/es/DatePickerInput/DatePickerInput.js +63 -95
- 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/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/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 +57 -0
- package/es/index.js +41 -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/DatePickerInput/DatePickerInput.d.ts +14 -0
- package/lib/DatePickerInput/DatePickerInput.js +69 -113
- 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/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/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 +57 -0
- package/lib/index.js +101 -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 +175 -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/DatePickerInput/DatePickerInput.test.tsx +48 -0
- package/src/DatePickerInput/DatePickerInput.tsx +85 -0
- package/src/DatePickerInput/__snapshots__/DatePickerInput.test.tsx.snap +151 -0
- package/src/Field/CustomFieldInputProps.ts +10 -0
- package/src/Field/CustomFieldMetaProps.ts +5 -0
- package/src/Field/Field.tsx +90 -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/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 +32 -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 +40 -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 +29 -0
- package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +31 -0
- package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +29 -0
- package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +28 -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/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 +114 -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/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/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,14 +0,0 @@
|
|
1
|
-
import '@testing-library/jest-dom/extend-expect';
|
2
|
-
import React from 'react';
|
3
|
-
import { HashRouter } from 'react-router-dom';
|
4
|
-
import Form from '../Form';
|
5
|
-
|
6
|
-
export default function FormTestBase({ children, initialValues }) {
|
7
|
-
return (
|
8
|
-
<HashRouter>
|
9
|
-
<Form onSubmit={() => {}} initialValues={initialValues}>
|
10
|
-
{children}
|
11
|
-
</Form>
|
12
|
-
</HashRouter>
|
13
|
-
);
|
14
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { render } from '@testing-library/react';
|
3
|
-
import FormTestBase from './FormTestBase';
|
4
|
-
import IconInput from '../IconInput';
|
5
|
-
|
6
|
-
describe('IconInput', () => {
|
7
|
-
it('renders without crashing', () => {
|
8
|
-
render(
|
9
|
-
<FormTestBase>
|
10
|
-
<IconInput name="test" icon="fa fa-user" helpText="help text" />
|
11
|
-
</FormTestBase>
|
12
|
-
);
|
13
|
-
});
|
14
|
-
|
15
|
-
it('has matching snapshot', () => {
|
16
|
-
const renderResult = render(
|
17
|
-
<FormTestBase>
|
18
|
-
<IconInput name="test" icon="fa fa-user" helpText="help text" />
|
19
|
-
</FormTestBase>
|
20
|
-
);
|
21
|
-
expect(renderResult.asFragment()).toMatchSnapshot();
|
22
|
-
});
|
23
|
-
});
|
@@ -1,38 +0,0 @@
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
-
|
3
|
-
exports[`IconInput has matching snapshot 1`] = `
|
4
|
-
<DocumentFragment>
|
5
|
-
<form
|
6
|
-
action="#"
|
7
|
-
>
|
8
|
-
<div
|
9
|
-
class="input-group"
|
10
|
-
>
|
11
|
-
<div
|
12
|
-
class="input-group-prepend"
|
13
|
-
>
|
14
|
-
<span
|
15
|
-
class="input-group-text"
|
16
|
-
>
|
17
|
-
<i
|
18
|
-
class="fa fa-user"
|
19
|
-
/>
|
20
|
-
</span>
|
21
|
-
</div>
|
22
|
-
<input
|
23
|
-
aria-invalid="false"
|
24
|
-
class="form-control"
|
25
|
-
id="test"
|
26
|
-
name="test"
|
27
|
-
type="text"
|
28
|
-
value=""
|
29
|
-
/>
|
30
|
-
<div
|
31
|
-
class="invalid-feedback"
|
32
|
-
>
|
33
|
-
help text
|
34
|
-
</div>
|
35
|
-
</div>
|
36
|
-
</form>
|
37
|
-
</DocumentFragment>
|
38
|
-
`;
|
package/src/index.js
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
import * as normalizers from './normalizers';
|
2
|
-
|
3
|
-
import { BoolInput, InlineBoolInput } from './BoolInput';
|
4
|
-
import { InlineMoneyInput, MoneyInput } from './MoneyInput';
|
5
|
-
import { MoneyFormattedInput } from './MoneyFormattedInput';
|
6
|
-
|
7
|
-
import AddressInput, { UsStates } from './AddressInput';
|
8
|
-
import ConfirmBaseForm from './ConfirmBaseForm';
|
9
|
-
import ConfirmDeleteForm from './ConfirmDeleteForm';
|
10
|
-
import DatePickerInput from './DatePickerInput';
|
11
|
-
import ErrorScrollTarget from './ErrorScrollTarget';
|
12
|
-
import { FileInput, DropzoneFileInput, DefaultFileList } from './FileInput';
|
13
|
-
import Form, {
|
14
|
-
ServerErrorContext,
|
15
|
-
FocusError,
|
16
|
-
FormBasedPreventNavigation,
|
17
|
-
} from './Form';
|
18
|
-
import FormGroup from './FormGroup';
|
19
|
-
import FormGroupWrapper from './FormGroupWrapper';
|
20
|
-
import FormInput from './FormInput';
|
21
|
-
import FormInputArray from './FormInputArray';
|
22
|
-
import FormSection from './FormSection';
|
23
|
-
import IconInput from './IconInput';
|
24
|
-
import InlineFormInput from './InlineFormInput';
|
25
|
-
import StandardFormActions from './StandardFormActions';
|
26
|
-
import SubmitFormButton from './SubmitFormButton';
|
27
|
-
import useStandardFormInput from './useStandardFormInput';
|
28
|
-
import validators from './validators';
|
29
|
-
import ReactSelectField, {
|
30
|
-
customStyles as customReactSelectFieldStyles,
|
31
|
-
overrideTheme as overrideReactSelectFieldStyles,
|
32
|
-
} from './ReactSelectField';
|
33
|
-
import NestedFormFieldContext from './NestedFormFieldContext';
|
34
|
-
|
35
|
-
export {
|
36
|
-
AddressInput,
|
37
|
-
UsStates,
|
38
|
-
BoolInput,
|
39
|
-
ConfirmBaseForm,
|
40
|
-
ConfirmDeleteForm,
|
41
|
-
DatePickerInput,
|
42
|
-
ErrorScrollTarget,
|
43
|
-
FileInput,
|
44
|
-
DropzoneFileInput,
|
45
|
-
DefaultFileList,
|
46
|
-
Form,
|
47
|
-
FormGroup,
|
48
|
-
FormGroupWrapper,
|
49
|
-
FormInput,
|
50
|
-
FormInputArray,
|
51
|
-
FormSection,
|
52
|
-
IconInput,
|
53
|
-
InlineBoolInput,
|
54
|
-
InlineFormInput,
|
55
|
-
InlineMoneyInput,
|
56
|
-
MoneyInput,
|
57
|
-
MoneyFormattedInput,
|
58
|
-
normalizers,
|
59
|
-
StandardFormActions,
|
60
|
-
SubmitFormButton,
|
61
|
-
useStandardFormInput,
|
62
|
-
validators,
|
63
|
-
ServerErrorContext,
|
64
|
-
FocusError,
|
65
|
-
FormBasedPreventNavigation,
|
66
|
-
ReactSelectField,
|
67
|
-
customReactSelectFieldStyles,
|
68
|
-
overrideReactSelectFieldStyles,
|
69
|
-
NestedFormFieldContext,
|
70
|
-
};
|
package/src/selectors.js
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
import { useField, useFormikContext } from 'formik';
|
2
|
-
import { useContext, useEffect } from 'react';
|
3
|
-
import NestedFormFieldContext from './NestedFormFieldContext';
|
4
|
-
import { ServerErrorContext } from './Form';
|
5
|
-
|
6
|
-
// provides a consistent way to deal with all form fields (non array)
|
7
|
-
export default function useStandardFormInput({
|
8
|
-
id: providedId,
|
9
|
-
name: providedName,
|
10
|
-
disabled,
|
11
|
-
validate,
|
12
|
-
normalize,
|
13
|
-
...props
|
14
|
-
}) {
|
15
|
-
// because the formik errors are evaluated all at the same time we need to keep server errors separate
|
16
|
-
const { getError: getServerError, setError: setServerError } = useContext(
|
17
|
-
ServerErrorContext
|
18
|
-
);
|
19
|
-
|
20
|
-
// ensure that form section values are obeyed, e.g. homeAddress.zipCode
|
21
|
-
const parentFormFieldContext = useContext(NestedFormFieldContext);
|
22
|
-
const name = parentFormFieldContext
|
23
|
-
? `${parentFormFieldContext}.${providedName}`
|
24
|
-
: providedName;
|
25
|
-
|
26
|
-
// ensure that nested contexts don't have duplicate id issues when an id is specified
|
27
|
-
const id =
|
28
|
-
providedId && parentFormFieldContext
|
29
|
-
? `${parentFormFieldContext}.${providedId}`
|
30
|
-
: providedId;
|
31
|
-
|
32
|
-
// ensure that our custom validation rules are handled
|
33
|
-
// e.g. we allow arrays of validators
|
34
|
-
const [{ onChange: formikOnChange, value, ...formikProps }, meta] = useField(
|
35
|
-
Object.assign({ name, id }, props, {
|
36
|
-
validate: callAllValidators,
|
37
|
-
})
|
38
|
-
);
|
39
|
-
const { setFieldValue, isSubmitting } = useFormikContext();
|
40
|
-
|
41
|
-
// these are the props we expect consumers of this hook to pass directly to the input (or other control)
|
42
|
-
const inputProps = Object.assign({}, props, formikProps, {
|
43
|
-
// ensure that we don't send a undefined / null - which signals to react that we are uncontrolled
|
44
|
-
// also, pass any direct from server props through normalize without making the form dirty (e.g. phone number)
|
45
|
-
value:
|
46
|
-
value === undefined || value === null
|
47
|
-
? ''
|
48
|
-
: (normalize && normalize(value)) || value,
|
49
|
-
// ensure the id is set if not provided
|
50
|
-
id: id ? id : name,
|
51
|
-
// ensure we can handle both events from direct inputs and controlled ones like react select AND normalize
|
52
|
-
onChange: handleChange,
|
53
|
-
onBlur: handleBlur,
|
54
|
-
disabled: disabled,
|
55
|
-
});
|
56
|
-
|
57
|
-
useEffect(() => {
|
58
|
-
if (!meta.touched && isSubmitting) {
|
59
|
-
// because we do not always register all fields up front.
|
60
|
-
// e.g. formik expects even a 'create' form to have all fields given, at least, blank values
|
61
|
-
// that seems to be how it touches on submit:
|
62
|
-
// see: https://codesandbox.io/s/formik-example-4n7n8 vs https://codesandbox.io/s/formik-example-kttk5
|
63
|
-
// note in particular the change in line 24
|
64
|
-
// thus, we manually touch all fields here by calling onBlur
|
65
|
-
// there is a "setFieldTouched" from useFormikContext but it doesn't appear to work on field arrays
|
66
|
-
handleBlur();
|
67
|
-
}
|
68
|
-
});
|
69
|
-
|
70
|
-
const resultMeta = Object.assign({}, meta, {
|
71
|
-
error: getServerError(name) || (meta.touched ? meta.error : null),
|
72
|
-
});
|
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({ target: { name: name } });
|
80
|
-
} else {
|
81
|
-
formikProps.onBlur(e);
|
82
|
-
}
|
83
|
-
}
|
84
|
-
|
85
|
-
function handleChange(e) {
|
86
|
-
if (disabled) {
|
87
|
-
return;
|
88
|
-
}
|
89
|
-
// some components are fully controlled and do not return synthetic events (e.g. ReactSelect) on change
|
90
|
-
// we should handle all our normal cases here to normalize / get the value / etc
|
91
|
-
const value =
|
92
|
-
e && e.target
|
93
|
-
? e.target.type === 'checkbox'
|
94
|
-
? e.target.checked
|
95
|
-
: e.target.value
|
96
|
-
: e;
|
97
|
-
const 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 (let i = 0; i < validate.length; i++) {
|
112
|
-
const result = validate[i](value);
|
113
|
-
if (result) {
|
114
|
-
return result;
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
}
|
package/src/utils/index.js
DELETED
package/src/utils/typeChecks.js
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
export const isUndefined = (value) => value === undefined;
|
2
|
-
export const isNull = (value) => value === null;
|
3
|
-
export const isBoolean = (value) => typeof value === 'boolean';
|
4
|
-
export const isObject = (value) => value === Object(value);
|
5
|
-
export const isArray = (value) => Array.isArray(value);
|
6
|
-
export const isDate = (value) => value instanceof Date;
|
7
|
-
|
8
|
-
export const isBlob = (value) =>
|
9
|
-
value &&
|
10
|
-
typeof value.size === 'number' &&
|
11
|
-
typeof value.type === 'string' &&
|
12
|
-
typeof value.slice === 'function';
|
13
|
-
|
14
|
-
export const isFile = (value) =>
|
15
|
-
isBlob(value) &&
|
16
|
-
typeof value.name === 'string' &&
|
17
|
-
(typeof value.lastModifiedDate === 'object' ||
|
18
|
-
typeof value.lastModified === 'number');
|
package/src/validators/index.js
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
export const required = (value) =>
|
2
|
-
value || value === false || value === 0 ? undefined : 'Required';
|
3
|
-
|
4
|
-
//asserts that the value is a certain number of characters. numbers are coerced to a string
|
5
|
-
export const length = (len) => (value) => {
|
6
|
-
let val = value;
|
7
|
-
const type = typeof val;
|
8
|
-
switch (type) {
|
9
|
-
case 'undefined':
|
10
|
-
return undefined;
|
11
|
-
case 'string':
|
12
|
-
break;
|
13
|
-
case 'number':
|
14
|
-
val = val.toString();
|
15
|
-
break;
|
16
|
-
default:
|
17
|
-
console.error(`Invalid value type: ${type} passed to length validator`);
|
18
|
-
}
|
19
|
-
return val.length === len ? undefined : `Length must be ${len}`;
|
20
|
-
};
|
21
|
-
|
22
|
-
export const integer = (val) => {
|
23
|
-
if (!Number.isInteger(parseFloat(val))) {
|
24
|
-
return 'Must be a whole number';
|
25
|
-
}
|
26
|
-
};
|
27
|
-
|
28
|
-
export const maxLength = function maxLength(length) {
|
29
|
-
return (value) => {
|
30
|
-
if (value) {
|
31
|
-
return value.length <= length
|
32
|
-
? undefined
|
33
|
-
: `Maximum length ${length} exceeded`;
|
34
|
-
} else {
|
35
|
-
return undefined;
|
36
|
-
}
|
37
|
-
};
|
38
|
-
};
|
39
|
-
|
40
|
-
export function maxCount(count) {
|
41
|
-
return (value) => {
|
42
|
-
return !value || value.filter((x) => !x.isDeleted).length <= count
|
43
|
-
? undefined
|
44
|
-
: `Should not have more than ${count}`;
|
45
|
-
};
|
46
|
-
}
|
47
|
-
|
48
|
-
export function minCount(count) {
|
49
|
-
return (value) => {
|
50
|
-
return value && value.filter((x) => !x.isDeleted).length >= count
|
51
|
-
? undefined
|
52
|
-
: `Should have at least ${count}`;
|
53
|
-
};
|
54
|
-
}
|
55
|
-
|
56
|
-
export const maxValue = function maxValue(value) {
|
57
|
-
return (inputValue) => {
|
58
|
-
if (inputValue != null && value != null) {
|
59
|
-
return inputValue <= value
|
60
|
-
? undefined
|
61
|
-
: `Maximum value ${value} exceeded`;
|
62
|
-
} else {
|
63
|
-
return undefined;
|
64
|
-
}
|
65
|
-
};
|
66
|
-
};
|
67
|
-
|
68
|
-
export const minValue = function minValue(value) {
|
69
|
-
return (inputValue) => {
|
70
|
-
if (inputValue != null && value != null) {
|
71
|
-
return inputValue >= value ? undefined : `Minimum value ${value} not met`;
|
72
|
-
} else {
|
73
|
-
return undefined;
|
74
|
-
}
|
75
|
-
};
|
76
|
-
};
|
77
|
-
|
78
|
-
export const zipCode = (value) => {
|
79
|
-
return value && !/^[0-9]{5}(?:-[0-9]{4})?$/.test(value)
|
80
|
-
? 'Invalid ZIP Code'
|
81
|
-
: undefined;
|
82
|
-
};
|
83
|
-
|
84
|
-
//one of the validators provided must be true
|
85
|
-
export const any = (...validatorList) => (value) => {
|
86
|
-
if (validatorList.length === 0 || !value) {
|
87
|
-
return;
|
88
|
-
}
|
89
|
-
return validatorList.reduce(
|
90
|
-
(isAnyTrue, any) => (isAnyTrue ? isAnyTrue : any(value)),
|
91
|
-
false
|
92
|
-
);
|
93
|
-
};
|