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
package/lib/utils/typeChecks.js
CHANGED
@@ -1,58 +1,29 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
var
|
11
|
-
|
12
|
-
var
|
13
|
-
|
14
|
-
};
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
exports.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
var isObject = function isObject(value) {
|
31
|
-
return value === Object(value);
|
32
|
-
};
|
33
|
-
|
34
|
-
exports.isObject = isObject;
|
35
|
-
|
36
|
-
var isArray = function isArray(value) {
|
37
|
-
return Array.isArray(value);
|
38
|
-
};
|
39
|
-
|
40
|
-
exports.isArray = isArray;
|
41
|
-
|
42
|
-
var isDate = function isDate(value) {
|
43
|
-
return value instanceof Date;
|
44
|
-
};
|
45
|
-
|
46
|
-
exports.isDate = isDate;
|
47
|
-
|
48
|
-
var isBlob = function isBlob(value) {
|
49
|
-
return value && typeof value.size === 'number' && typeof value.type === 'string' && typeof value.slice === 'function';
|
50
|
-
};
|
51
|
-
|
52
|
-
exports.isBlob = isBlob;
|
53
|
-
|
54
|
-
var isFile = function isFile(value) {
|
55
|
-
return isBlob(value) && typeof value.name === 'string' && ((0, _typeof2["default"])(value.lastModifiedDate) === 'object' || typeof value.lastModified === 'number');
|
56
|
-
};
|
57
|
-
|
58
|
-
exports.isFile = isFile;
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isFile = exports.isBlob = exports.isDate = exports.isArray = exports.isObject = exports.isBoolean = exports.isNull = exports.isUndefined = void 0;
|
4
|
+
var isUndefined = function (value) { return value === undefined; };
|
5
|
+
exports.isUndefined = isUndefined;
|
6
|
+
var isNull = function (value) { return value === null; };
|
7
|
+
exports.isNull = isNull;
|
8
|
+
var isBoolean = function (value) { return typeof value === 'boolean'; };
|
9
|
+
exports.isBoolean = isBoolean;
|
10
|
+
var isObject = function (value) { return value === Object(value); };
|
11
|
+
exports.isObject = isObject;
|
12
|
+
var isArray = function (value) { return Array.isArray(value); };
|
13
|
+
exports.isArray = isArray;
|
14
|
+
var isDate = function (value) { return value instanceof Date; };
|
15
|
+
exports.isDate = isDate;
|
16
|
+
var isBlob = function (value) {
|
17
|
+
return value &&
|
18
|
+
typeof value.size === 'number' &&
|
19
|
+
typeof value.type === 'string' &&
|
20
|
+
typeof value.slice === 'function';
|
21
|
+
};
|
22
|
+
exports.isBlob = isBlob;
|
23
|
+
var isFile = function (value) {
|
24
|
+
return (0, exports.isBlob)(value) &&
|
25
|
+
typeof value.name === 'string' &&
|
26
|
+
(typeof value.lastModifiedDate === 'object' ||
|
27
|
+
typeof value.lastModified === 'number');
|
28
|
+
};
|
29
|
+
exports.isFile = isFile;
|
package/package.json
CHANGED
@@ -1,101 +1,106 @@
|
|
1
|
-
{
|
2
|
-
"name": "envoc-form",
|
3
|
-
"version": "
|
4
|
-
"description": "Envoc form components",
|
5
|
-
"keywords": [
|
6
|
-
"react-component",
|
7
|
-
"react",
|
8
|
-
"forms",
|
9
|
-
"components",
|
10
|
-
"envoc"
|
11
|
-
],
|
12
|
-
"homepage": "",
|
13
|
-
"repository": "",
|
14
|
-
"license": "MIT",
|
15
|
-
"author": "Envoc Developers",
|
16
|
-
"sideEffects": false,
|
17
|
-
"main": "lib/index.js",
|
18
|
-
"module": "es/index.js",
|
19
|
-
"files": [
|
20
|
-
"dist",
|
21
|
-
"src",
|
22
|
-
"lib",
|
23
|
-
"es"
|
24
|
-
],
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"
|
28
|
-
"
|
29
|
-
"
|
30
|
-
"
|
31
|
-
"
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"
|
35
|
-
|
36
|
-
|
37
|
-
"
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
44
|
-
"
|
45
|
-
|
46
|
-
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
50
|
-
"
|
51
|
-
"
|
52
|
-
"
|
53
|
-
"@
|
54
|
-
"@
|
55
|
-
"
|
56
|
-
|
57
|
-
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"
|
64
|
-
"react
|
65
|
-
"
|
66
|
-
"
|
67
|
-
"
|
68
|
-
"
|
69
|
-
"
|
70
|
-
"
|
71
|
-
"
|
72
|
-
"webpack-
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
|
77
|
-
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"react": "
|
81
|
-
"react-
|
82
|
-
"
|
83
|
-
|
84
|
-
|
85
|
-
"
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
"
|
91
|
-
"
|
92
|
-
"
|
93
|
-
|
94
|
-
|
95
|
-
"
|
96
|
-
"
|
97
|
-
"
|
98
|
-
"
|
99
|
-
|
100
|
-
|
101
|
-
|
1
|
+
{
|
2
|
+
"name": "envoc-form",
|
3
|
+
"version": "4.0.1-2",
|
4
|
+
"description": "Envoc form components",
|
5
|
+
"keywords": [
|
6
|
+
"react-component",
|
7
|
+
"react",
|
8
|
+
"forms",
|
9
|
+
"components",
|
10
|
+
"envoc"
|
11
|
+
],
|
12
|
+
"homepage": "",
|
13
|
+
"repository": "",
|
14
|
+
"license": "MIT",
|
15
|
+
"author": "Envoc Developers",
|
16
|
+
"sideEffects": false,
|
17
|
+
"main": "lib/index.js",
|
18
|
+
"module": "es/index.js",
|
19
|
+
"files": [
|
20
|
+
"dist",
|
21
|
+
"src",
|
22
|
+
"lib",
|
23
|
+
"es"
|
24
|
+
],
|
25
|
+
"scripts": {
|
26
|
+
"build": "yarn verify-imports && yarn build:esm && yarn build:cjs && yarn build:css",
|
27
|
+
"rebuild": "rimraf ./{dist,es,lib} && yarn build",
|
28
|
+
"build:esm": "cross-env BABEL_ENV=esm-dir tsc -p tsconfig.esm.json",
|
29
|
+
"build:css": "sass src/styles.scss dist/css/envoc-form-styles.css",
|
30
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
31
|
+
"verify-imports": "node ../../scripts/check-for-scss-imports.js envoc-form",
|
32
|
+
"start": "webpack serve --config ./webpack.demo.config.js",
|
33
|
+
"test": "cross-env SKIP_PREFLIGHT_CHECK=true react-scripts test --watchAll=false",
|
34
|
+
"coverage": "yarn test --verbose --reporters=default --reporters=jest-junit --coverage --coverageReporters=cobertura"
|
35
|
+
},
|
36
|
+
"dependencies": {
|
37
|
+
"axios": "^0.21.1",
|
38
|
+
"classnames": "^2.3.1",
|
39
|
+
"date-fns": "^2.22.1",
|
40
|
+
"envoc-request": "^4.0.1-2",
|
41
|
+
"lru-cache": "^6.0.0",
|
42
|
+
"prop-types": "^15.7.2",
|
43
|
+
"react-date-picker": "^8.2.0",
|
44
|
+
"react-dropzone": "^11.3.4",
|
45
|
+
"react-router": "^6.2.1",
|
46
|
+
"react-select": "^5.2.2",
|
47
|
+
"react-textarea-autosize": "^8.3.3",
|
48
|
+
"react-toastify": "^7.0.4",
|
49
|
+
"reactstrap": "^8.9.0",
|
50
|
+
"history": "^5.2.0",
|
51
|
+
"smoothscroll-polyfill": "^0.4.4",
|
52
|
+
"uuid": "^8.3.2",
|
53
|
+
"@fortawesome/react-fontawesome": "~0.1.16",
|
54
|
+
"@fortawesome/free-solid-svg-icons": "~5.15.4",
|
55
|
+
"@fortawesome/fontawesome-svg-core": "~1.2.36"
|
56
|
+
},
|
57
|
+
"devDependencies": {
|
58
|
+
"@babel/cli": "^7.14.5",
|
59
|
+
"@babel/core": "^7.14.6",
|
60
|
+
"@babel/plugin-transform-runtime": "^7.14.5",
|
61
|
+
"@babel/preset-env": "^7.14.7",
|
62
|
+
"@babel/preset-react": "^7.14.5",
|
63
|
+
"@testing-library/jest-dom": "^5.14.1",
|
64
|
+
"@testing-library/react": "^11.2.5",
|
65
|
+
"@testing-library/user-event": "^12.7.1",
|
66
|
+
"@types/jest": "^26.0.24",
|
67
|
+
"@types/react": "^16.9.56",
|
68
|
+
"@types/smoothscroll-polyfill": "^0.3.1",
|
69
|
+
"@types/uuid": "^8.3.2",
|
70
|
+
"babel-loader": "^8.2.2",
|
71
|
+
"bootstrap": "^4.6.0",
|
72
|
+
"clean-webpack-plugin": "^3.0.0",
|
73
|
+
"cross-env": "7.0.3",
|
74
|
+
"css-loader": "^5.0.2",
|
75
|
+
"html-webpack-plugin": "^5.3.2",
|
76
|
+
"identity-obj-proxy": "^3.0.0",
|
77
|
+
"jest-junit": "~12.2.0",
|
78
|
+
"react": "^17.0.1",
|
79
|
+
"react-dom": "^17.0.1",
|
80
|
+
"react-router-dom": "^6.2.1",
|
81
|
+
"react-scripts": "^4.0.3",
|
82
|
+
"rimraf": "~3.0.2",
|
83
|
+
"sass": "^1.35.2",
|
84
|
+
"sass-loader": "^11.0.1",
|
85
|
+
"style-loader": "^2.0.0",
|
86
|
+
"webpack": "^5.45.0",
|
87
|
+
"webpack-cli": "^4.7.2",
|
88
|
+
"webpack-dev-server": "^3.11.2",
|
89
|
+
"ts-loader": "^9.2.8",
|
90
|
+
"typescript": "^4.6.3",
|
91
|
+
"typedoc-plugin-markdown": "~3.10.3",
|
92
|
+
"typedoc": "~0.21.4"
|
93
|
+
},
|
94
|
+
"peerDependencies": {
|
95
|
+
"@babel/runtime": "^7.14.6",
|
96
|
+
"formik": "^2.2.9",
|
97
|
+
"react": ">=16.8.0",
|
98
|
+
"react-dom": ">=16.8.0",
|
99
|
+
"react-router-dom": "^6.2.1"
|
100
|
+
},
|
101
|
+
"jest": {
|
102
|
+
"transformIgnorePatterns": [
|
103
|
+
"^.+\\.module\\.(css|sass|scss)$"
|
104
|
+
]
|
105
|
+
}
|
106
|
+
}
|
@@ -1,13 +1,15 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { render } from '@testing-library/react';
|
3
|
-
import { FormTestBase } from '../__Tests__';
|
4
3
|
import AddressInput from './AddressInput';
|
4
|
+
import FormTestBase from '../__Tests__/FormTestBase';
|
5
5
|
|
6
6
|
describe('AddressInput', () => {
|
7
7
|
it('renders without crashing', () => {
|
8
8
|
render(
|
9
9
|
<FormTestBase>
|
10
|
-
|
10
|
+
{({ Field }) => (
|
11
|
+
<AddressInput fieldBuilder={{ Field }} name="normalAddressInput" />
|
12
|
+
)}
|
11
13
|
</FormTestBase>
|
12
14
|
);
|
13
15
|
});
|
@@ -15,7 +17,9 @@ describe('AddressInput', () => {
|
|
15
17
|
it('has matching snapshot', () => {
|
16
18
|
const renderResult = render(
|
17
19
|
<FormTestBase>
|
18
|
-
|
20
|
+
{({ Field }) => (
|
21
|
+
<AddressInput fieldBuilder={{ Field }} name="normalAddressInput" />
|
22
|
+
)}
|
19
23
|
</FormTestBase>
|
20
24
|
);
|
21
25
|
expect(renderResult.asFragment()).toMatchSnapshot();
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import UsStates from './UsStates';
|
2
|
+
import { SingleStringSelectGroup, StringInputGroup } from '../';
|
3
|
+
import FieldSection from '../Field/FieldSection';
|
4
|
+
import { FormBuilderProp } from '../Form/Form';
|
5
|
+
import { zipCode as zipCodeNormalizer } from '../Normalization/normalizers';
|
6
|
+
import {
|
7
|
+
required,
|
8
|
+
zipCode as zipCodeValidator,
|
9
|
+
} from '../Validation/validators';
|
10
|
+
|
11
|
+
// TODO: find a permanent home for these interfaces
|
12
|
+
// TODO: but also, maybe they are comfortable here?
|
13
|
+
export interface AddressInputProps {
|
14
|
+
fieldBuilder: Pick<FormBuilderProp<AddressDto>, 'Field'>;
|
15
|
+
name: string;
|
16
|
+
}
|
17
|
+
|
18
|
+
interface AddressDto {
|
19
|
+
address1?: string;
|
20
|
+
address2?: string;
|
21
|
+
zipCode?: string;
|
22
|
+
city?: string;
|
23
|
+
state?: string;
|
24
|
+
}
|
25
|
+
|
26
|
+
export default function AddressInput({
|
27
|
+
fieldBuilder: { Field },
|
28
|
+
name,
|
29
|
+
}: AddressInputProps) {
|
30
|
+
return (
|
31
|
+
<>
|
32
|
+
<FieldSection name={name}>
|
33
|
+
<Field
|
34
|
+
name="address1"
|
35
|
+
placeholder="Address, Line 1"
|
36
|
+
label="Address 1"
|
37
|
+
Component={StringInputGroup}
|
38
|
+
validate={required}
|
39
|
+
/>
|
40
|
+
<Field
|
41
|
+
name="address2"
|
42
|
+
placeholder="Address, Line 2"
|
43
|
+
label="Address 2"
|
44
|
+
Component={StringInputGroup}
|
45
|
+
/>
|
46
|
+
<Field
|
47
|
+
name="city"
|
48
|
+
placeholder="City"
|
49
|
+
label="City"
|
50
|
+
Component={StringInputGroup}
|
51
|
+
validate={required}
|
52
|
+
/>
|
53
|
+
<Field
|
54
|
+
name="state"
|
55
|
+
placeholder="State"
|
56
|
+
label="State"
|
57
|
+
Component={SingleStringSelectGroup}
|
58
|
+
options={UsStates}
|
59
|
+
validate={required}
|
60
|
+
/>
|
61
|
+
<Field
|
62
|
+
name="zipCode"
|
63
|
+
placeholder="Zip"
|
64
|
+
label="Zip"
|
65
|
+
Component={StringInputGroup}
|
66
|
+
normalize={zipCodeNormalizer}
|
67
|
+
validate={[required, zipCodeValidator]}
|
68
|
+
/>
|
69
|
+
</FieldSection>
|
70
|
+
</>
|
71
|
+
);
|
72
|
+
}
|
@@ -0,0 +1,179 @@
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
|
+
|
3
|
+
exports[`AddressInput has matching snapshot 1`] = `
|
4
|
+
<DocumentFragment>
|
5
|
+
<form
|
6
|
+
action="#"
|
7
|
+
>
|
8
|
+
<div
|
9
|
+
class="string-group input-group group"
|
10
|
+
>
|
11
|
+
<div
|
12
|
+
id="normaladdressinput.address1-error-scroll-target"
|
13
|
+
style="display: none;"
|
14
|
+
/>
|
15
|
+
<label
|
16
|
+
for="normalAddressInput.address1"
|
17
|
+
>
|
18
|
+
Address 1
|
19
|
+
</label>
|
20
|
+
<input
|
21
|
+
class="string-group input-group"
|
22
|
+
id="normalAddressInput.address1"
|
23
|
+
name="normalAddressInput.address1"
|
24
|
+
placeholder="Address, Line 1"
|
25
|
+
value=""
|
26
|
+
/>
|
27
|
+
</div>
|
28
|
+
<div
|
29
|
+
class="string-group input-group group"
|
30
|
+
>
|
31
|
+
<div
|
32
|
+
id="normaladdressinput.address2-error-scroll-target"
|
33
|
+
style="display: none;"
|
34
|
+
/>
|
35
|
+
<label
|
36
|
+
for="normalAddressInput.address2"
|
37
|
+
>
|
38
|
+
Address 2
|
39
|
+
</label>
|
40
|
+
<input
|
41
|
+
class="string-group input-group"
|
42
|
+
id="normalAddressInput.address2"
|
43
|
+
name="normalAddressInput.address2"
|
44
|
+
placeholder="Address, Line 2"
|
45
|
+
value=""
|
46
|
+
/>
|
47
|
+
</div>
|
48
|
+
<div
|
49
|
+
class="string-group input-group group"
|
50
|
+
>
|
51
|
+
<div
|
52
|
+
id="normaladdressinput.city-error-scroll-target"
|
53
|
+
style="display: none;"
|
54
|
+
/>
|
55
|
+
<label
|
56
|
+
for="normalAddressInput.city"
|
57
|
+
>
|
58
|
+
City
|
59
|
+
</label>
|
60
|
+
<input
|
61
|
+
class="string-group input-group"
|
62
|
+
id="normalAddressInput.city"
|
63
|
+
name="normalAddressInput.city"
|
64
|
+
placeholder="City"
|
65
|
+
value=""
|
66
|
+
/>
|
67
|
+
</div>
|
68
|
+
<div
|
69
|
+
class="select-group group"
|
70
|
+
>
|
71
|
+
<div
|
72
|
+
id="normaladdressinput.state-error-scroll-target"
|
73
|
+
style="display: none;"
|
74
|
+
/>
|
75
|
+
<label
|
76
|
+
for="normalAddressInput.state"
|
77
|
+
>
|
78
|
+
State
|
79
|
+
</label>
|
80
|
+
<div
|
81
|
+
class="select-group css-b62m3t-container"
|
82
|
+
>
|
83
|
+
<span
|
84
|
+
class="css-1f43avz-a11yText-A11yText"
|
85
|
+
id="react-select-3-live-region"
|
86
|
+
/>
|
87
|
+
<span
|
88
|
+
aria-atomic="false"
|
89
|
+
aria-live="polite"
|
90
|
+
aria-relevant="additions text"
|
91
|
+
class="css-1f43avz-a11yText-A11yText"
|
92
|
+
/>
|
93
|
+
<div
|
94
|
+
class="react-select__control css-1s2u09g-control"
|
95
|
+
>
|
96
|
+
<div
|
97
|
+
class="react-select__value-container css-dlobye-Component"
|
98
|
+
>
|
99
|
+
<div
|
100
|
+
class="react-select__placeholder css-14el2xx-placeholder"
|
101
|
+
id="react-select-3-placeholder"
|
102
|
+
>
|
103
|
+
State
|
104
|
+
</div>
|
105
|
+
<div
|
106
|
+
class="react-select__input-container css-1u4kn00-Component"
|
107
|
+
data-value=""
|
108
|
+
>
|
109
|
+
<input
|
110
|
+
aria-autocomplete="list"
|
111
|
+
aria-controls="react-select-3-listbox"
|
112
|
+
aria-describedby="react-select-3-placeholder"
|
113
|
+
aria-expanded="false"
|
114
|
+
aria-haspopup="true"
|
115
|
+
aria-owns="react-select-3-listbox"
|
116
|
+
autocapitalize="none"
|
117
|
+
autocomplete="off"
|
118
|
+
autocorrect="off"
|
119
|
+
class="react-select__input"
|
120
|
+
id="normalAddressInput.state"
|
121
|
+
role="combobox"
|
122
|
+
spellcheck="false"
|
123
|
+
style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
|
124
|
+
tabindex="0"
|
125
|
+
type="text"
|
126
|
+
value=""
|
127
|
+
/>
|
128
|
+
</div>
|
129
|
+
</div>
|
130
|
+
<div
|
131
|
+
class="react-select__indicators css-ny0e4k-Component"
|
132
|
+
>
|
133
|
+
<span
|
134
|
+
class="react-select__indicator-separator css-1okebmr-indicatorSeparator"
|
135
|
+
/>
|
136
|
+
<div
|
137
|
+
aria-hidden="true"
|
138
|
+
class="react-select__indicator react-select__dropdown-indicator css-tlfecz-indicatorContainer"
|
139
|
+
>
|
140
|
+
<svg
|
141
|
+
aria-hidden="true"
|
142
|
+
class="css-tj5bde-Svg"
|
143
|
+
focusable="false"
|
144
|
+
height="20"
|
145
|
+
viewBox="0 0 20 20"
|
146
|
+
width="20"
|
147
|
+
>
|
148
|
+
<path
|
149
|
+
d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
|
150
|
+
/>
|
151
|
+
</svg>
|
152
|
+
</div>
|
153
|
+
</div>
|
154
|
+
</div>
|
155
|
+
</div>
|
156
|
+
</div>
|
157
|
+
<div
|
158
|
+
class="string-group input-group group"
|
159
|
+
>
|
160
|
+
<div
|
161
|
+
id="normaladdressinput.zipcode-error-scroll-target"
|
162
|
+
style="display: none;"
|
163
|
+
/>
|
164
|
+
<label
|
165
|
+
for="normalAddressInput.zipCode"
|
166
|
+
>
|
167
|
+
Zip
|
168
|
+
</label>
|
169
|
+
<input
|
170
|
+
class="string-group input-group"
|
171
|
+
id="normalAddressInput.zipCode"
|
172
|
+
name="normalAddressInput.zipCode"
|
173
|
+
placeholder="Zip"
|
174
|
+
value=""
|
175
|
+
/>
|
176
|
+
</div>
|
177
|
+
</form>
|
178
|
+
</DocumentFragment>
|
179
|
+
`;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { render } from '@testing-library/react';
|
3
|
+
import { useAxiosRequestProps } from 'envoc-request';
|
4
|
+
import ConfirmBaseForm from './ConfirmBaseForm';
|
5
|
+
|
6
|
+
describe('ConfirmBaseForm', () => {
|
7
|
+
it('Renders without error', () => {
|
8
|
+
render(<ConfirmBaseForm request={confirmBaseFormRequest} />);
|
9
|
+
});
|
10
|
+
|
11
|
+
it('has matching snapshot', () => {
|
12
|
+
const renderResult = render(
|
13
|
+
<ConfirmBaseForm request={confirmBaseFormRequest} />
|
14
|
+
);
|
15
|
+
expect(renderResult.asFragment()).toMatchSnapshot();
|
16
|
+
});
|
17
|
+
});
|
18
|
+
|
19
|
+
const confirmBaseFormRequest = {
|
20
|
+
method: 'get',
|
21
|
+
url: `/boop`,
|
22
|
+
onComplete: () => {},
|
23
|
+
onError: () => {},
|
24
|
+
} as useAxiosRequestProps;
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import React, { MouseEventHandler } from 'react';
|
2
|
+
import classNames from 'classnames';
|
3
|
+
import { useAxiosRequest, useAxiosRequestProps } from 'envoc-request';
|
4
|
+
|
5
|
+
// TODO: change the style prop type to Tailwind type (does this exist before Tailwind 3.1 ???), or
|
6
|
+
// should this just be type 'string'
|
7
|
+
export interface ConfirmBaseFormProps {
|
8
|
+
handleCancel?: MouseEventHandler<HTMLButtonElement>;
|
9
|
+
request: useAxiosRequestProps;
|
10
|
+
style?: React.CSSProperties;
|
11
|
+
title?: string;
|
12
|
+
children?: React.ReactNode;
|
13
|
+
}
|
14
|
+
|
15
|
+
// TODO: ask about how we should use 'children'
|
16
|
+
export default function ConfirmBaseForm({
|
17
|
+
handleCancel,
|
18
|
+
request,
|
19
|
+
style,
|
20
|
+
title,
|
21
|
+
children,
|
22
|
+
...props
|
23
|
+
}: ConfirmBaseFormProps) {
|
24
|
+
const webRequest = useAxiosRequest(
|
25
|
+
Object.assign({}, request, { autoExecute: false })
|
26
|
+
);
|
27
|
+
const onCancel = handleCancel ?? goBack;
|
28
|
+
|
29
|
+
return (
|
30
|
+
<div style={{ textAlign: 'center', ...style }} {...props}>
|
31
|
+
<h3>{title}</h3>
|
32
|
+
{children}
|
33
|
+
<button
|
34
|
+
className={classNames('confirm-base-form-yes-button')}
|
35
|
+
type="button"
|
36
|
+
onClick={webRequest.submitRequest}>
|
37
|
+
Yes
|
38
|
+
</button>
|
39
|
+
<button
|
40
|
+
className={classNames('confirm-base-form-cancel-button')}
|
41
|
+
type="button"
|
42
|
+
onClick={onCancel}>
|
43
|
+
Cancel
|
44
|
+
</button>
|
45
|
+
</div>
|
46
|
+
);
|
47
|
+
function goBack() {
|
48
|
+
window.history.back();
|
49
|
+
}
|
50
|
+
}
|