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
package/src/styles.scss
CHANGED
@@ -1,7 +0,0 @@
|
|
1
|
-
@use './DatePickerInput/date-picker-input.scss';
|
2
|
-
@use './InlineFormInput/inline-form-input.scss';
|
3
|
-
@use './MoneyInput/money-input.scss';
|
4
|
-
@use './FormInput/form-input.scss';
|
5
|
-
@use './FileInput/file-input.scss';
|
6
|
-
@use './FormInputArray/form-input-array.scss';
|
7
|
-
@use './ReactSelectField/react-select-field.scss';
|
File without changes
|
@@ -1,6 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { isBlob, isFile, isObject } from './typeChecks';
|
2
2
|
|
3
|
-
export default function objectContainsNonSerializableProperty(
|
3
|
+
export default function objectContainsNonSerializableProperty(
|
4
|
+
object: any
|
5
|
+
): boolean {
|
4
6
|
return Object.entries(object).some((value) => {
|
5
7
|
if (value) {
|
6
8
|
if (isBlob(value[1]) || isFile(value[1])) {
|
File without changes
|
@@ -1,17 +1,33 @@
|
|
1
1
|
// Original: https://github.com/therealparmesh/object-to-formdata/blob/master/src/index.js
|
2
2
|
// With Multiple Form File Fix: https://github.com/therealparmesh/object-to-formdata/pull/94/files
|
3
3
|
import {
|
4
|
-
isUndefined,
|
5
|
-
isNull,
|
6
|
-
isBoolean,
|
7
|
-
isObject,
|
8
4
|
isArray,
|
9
|
-
isDate,
|
10
5
|
isBlob,
|
6
|
+
isBoolean,
|
7
|
+
isDate,
|
11
8
|
isFile,
|
9
|
+
isNull,
|
10
|
+
isObject,
|
11
|
+
isUndefined,
|
12
12
|
} from './typeChecks';
|
13
13
|
|
14
|
-
|
14
|
+
// TODO: make all of these optional?
|
15
|
+
export interface ObjectToFormDataCfgProps {
|
16
|
+
indices: boolean;
|
17
|
+
dotNotation: boolean;
|
18
|
+
allowEmptyArrays: boolean;
|
19
|
+
noFileListBrackets: boolean;
|
20
|
+
nullsAsUndefineds?: boolean;
|
21
|
+
booleansAsIntegers?: boolean;
|
22
|
+
}
|
23
|
+
|
24
|
+
// 'pre' is not provided until this function recursively calls itself when 'obj' is an array or object
|
25
|
+
const serialize = (
|
26
|
+
obj: any,
|
27
|
+
cfg: ObjectToFormDataCfgProps,
|
28
|
+
fd?: FormData,
|
29
|
+
pre?: string
|
30
|
+
) => {
|
15
31
|
cfg = cfg || {};
|
16
32
|
|
17
33
|
cfg.indices = isUndefined(cfg.indices) ? false : cfg.indices;
|
@@ -35,19 +51,21 @@ const serialize = (obj, cfg, fd, pre) => {
|
|
35
51
|
|
36
52
|
if (isUndefined(obj)) {
|
37
53
|
return fd;
|
38
|
-
} else if (isNull(obj)) {
|
54
|
+
} else if (isNull(obj) && !!pre) {
|
39
55
|
if (!cfg.nullsAsUndefineds) {
|
40
56
|
fd.append(pre, '');
|
41
57
|
}
|
42
|
-
} else if (isBoolean(obj)) {
|
58
|
+
} else if (isBoolean(obj) && !!pre) {
|
43
59
|
if (cfg.booleansAsIntegers) {
|
44
|
-
fd.append(pre, obj ? 1 : 0);
|
60
|
+
fd.append(pre, obj ? '1' : '0');
|
45
61
|
} else {
|
46
62
|
fd.append(pre, obj);
|
47
63
|
}
|
64
|
+
} else if (isDate(obj) && !!pre) {
|
65
|
+
fd.append(pre, obj.toISOString());
|
48
66
|
} else if (isArray(obj)) {
|
49
67
|
if (obj.length) {
|
50
|
-
obj.forEach((value, index) => {
|
68
|
+
obj.forEach((value: any, index: number) => {
|
51
69
|
let key;
|
52
70
|
if (cfg.noFileListBrackets && isFile(value)) {
|
53
71
|
key = pre;
|
@@ -59,8 +77,6 @@ const serialize = (obj, cfg, fd, pre) => {
|
|
59
77
|
} else if (cfg.allowEmptyArrays) {
|
60
78
|
fd.append(pre + '[]', '');
|
61
79
|
}
|
62
|
-
} else if (isDate(obj)) {
|
63
|
-
fd.append(pre, obj.toISOString());
|
64
80
|
} else if (isObject(obj) && !isFile(obj) && !isBlob(obj)) {
|
65
81
|
Object.keys(obj).forEach((prop) => {
|
66
82
|
const value = obj[prop];
|
@@ -79,7 +95,7 @@ const serialize = (obj, cfg, fd, pre) => {
|
|
79
95
|
|
80
96
|
serialize(value, cfg, fd, key);
|
81
97
|
});
|
82
|
-
} else {
|
98
|
+
} else if (!!pre) {
|
83
99
|
fd.append(pre, obj);
|
84
100
|
}
|
85
101
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
export const isUndefined = (value: any) => value === undefined;
|
2
|
+
export const isNull = (value: any) => value === null;
|
3
|
+
export const isBoolean = (value: any) => typeof value === 'boolean';
|
4
|
+
export const isObject = (value: any) => value === Object(value);
|
5
|
+
export const isArray = (value: any) => Array.isArray(value);
|
6
|
+
export const isDate = (value: any) => value instanceof Date;
|
7
|
+
|
8
|
+
export const isBlob = (value: any) =>
|
9
|
+
value &&
|
10
|
+
typeof value.size === 'number' &&
|
11
|
+
typeof value.type === 'string' &&
|
12
|
+
typeof value.slice === 'function';
|
13
|
+
|
14
|
+
export const isFile = (value: any) =>
|
15
|
+
isBlob(value) &&
|
16
|
+
typeof value.name === 'string' &&
|
17
|
+
(typeof value.lastModifiedDate === 'object' ||
|
18
|
+
typeof value.lastModified === 'number');
|
package/es/AddressInput/index.js
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import React from 'react';
|
3
|
-
import boolOptions from './boolOptions';
|
4
|
-
import FormInput from '../FormInput';
|
5
|
-
export default function BoolInput(props) {
|
6
|
-
return /*#__PURE__*/React.createElement(FormInput, _extends({
|
7
|
-
options: boolOptions,
|
8
|
-
type: "select"
|
9
|
-
}, props));
|
10
|
-
}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import React from 'react';
|
3
|
-
import boolOptions from './boolOptions';
|
4
|
-
import InlineFormInput from '../InlineFormInput';
|
5
|
-
export default function InlineBoolInput(props) {
|
6
|
-
return /*#__PURE__*/React.createElement(InlineFormInput, _extends({
|
7
|
-
options: boolOptions,
|
8
|
-
type: "select"
|
9
|
-
}, props));
|
10
|
-
}
|
package/es/BoolInput/index.js
DELETED
package/es/ErrorScrollTarget.js
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
export default function ErrorScrollTarget(props) {
|
3
|
-
var divId = "".concat(props.name.toLowerCase(), "-error-scroll-target");
|
4
|
-
return /*#__PURE__*/React.createElement("div", {
|
5
|
-
id: divId,
|
6
|
-
style: {
|
7
|
-
display: 'none'
|
8
|
-
}
|
9
|
-
});
|
10
|
-
}
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { ListGroupItem, ListGroup } from 'reactstrap';
|
3
|
-
export default function DefaultFileList(_ref) {
|
4
|
-
var files = _ref.files,
|
5
|
-
_ref$rejectedFiles = _ref.rejectedFiles,
|
6
|
-
rejectedFiles = _ref$rejectedFiles === void 0 ? [] : _ref$rejectedFiles;
|
7
|
-
return /*#__PURE__*/React.createElement(ListGroup, null, files.map(function (file) {
|
8
|
-
return /*#__PURE__*/React.createElement(Group, {
|
9
|
-
key: file.path,
|
10
|
-
item: file,
|
11
|
-
warning: false
|
12
|
-
});
|
13
|
-
}), rejectedFiles.map(function (_ref2) {
|
14
|
-
var file = _ref2.file;
|
15
|
-
return /*#__PURE__*/React.createElement(Group, {
|
16
|
-
key: file.path,
|
17
|
-
item: file,
|
18
|
-
warning: true
|
19
|
-
});
|
20
|
-
}));
|
21
|
-
}
|
22
|
-
|
23
|
-
function Group(_ref3) {
|
24
|
-
var item = _ref3.item,
|
25
|
-
warning = _ref3.warning;
|
26
|
-
return /*#__PURE__*/React.createElement(ListGroupItem, {
|
27
|
-
color: "d-flex ".concat(warning ? 'warning' : 'success', " justify-content-between list-group-item ").concat(warning ? 'list-group-item-warning' : 'list-group-item-success', " px-3 py-1 rounded-1")
|
28
|
-
}, /*#__PURE__*/React.createElement("span", {
|
29
|
-
className: "d-flex justify-content-between w-100"
|
30
|
-
}, /*#__PURE__*/React.createElement("span", null, item.name), " ", /*#__PURE__*/React.createElement("span", null, humanFileSize(item.size))));
|
31
|
-
}
|
32
|
-
|
33
|
-
function humanFileSize(size) {
|
34
|
-
var i = Math.floor(Math.log(size) / Math.log(1024));
|
35
|
-
return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'KB', 'MB', 'GB', 'TB'][i];
|
36
|
-
}
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
import _readOnlyError from "@babel/runtime/helpers/esm/readOnlyError";
|
4
|
-
var _excluded = ["className", "onChange", "value", "accept", "disabled", "multiple", "FileList", "placeholder", "dropzone"];
|
5
|
-
import React from 'react';
|
6
|
-
import { useDropzone } from 'react-dropzone';
|
7
|
-
import classNames from 'classnames';
|
8
|
-
import DefaultFileList from './DefaultFileList';
|
9
|
-
export default function DropzoneFileInput(_ref) {
|
10
|
-
var classNameProp = _ref.className,
|
11
|
-
onChange = _ref.onChange,
|
12
|
-
value = _ref.value,
|
13
|
-
accept = _ref.accept,
|
14
|
-
disabled = _ref.disabled,
|
15
|
-
_ref$multiple = _ref.multiple,
|
16
|
-
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
17
|
-
_ref$FileList = _ref.FileList,
|
18
|
-
FileList = _ref$FileList === void 0 ? DefaultFileList : _ref$FileList,
|
19
|
-
_ref$placeholder = _ref.placeholder,
|
20
|
-
placeholder = _ref$placeholder === void 0 ? 'Drag and drop some file(s) here, or click to select file(s)' : _ref$placeholder,
|
21
|
-
dropzone = _ref.dropzone,
|
22
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
23
|
-
|
24
|
-
var _useDropzone = useDropzone({
|
25
|
-
accept: accept,
|
26
|
-
onDrop: onDrop,
|
27
|
-
disabled: disabled,
|
28
|
-
multiple: multiple
|
29
|
-
}),
|
30
|
-
_useDropzone$accepted = _useDropzone.acceptedFiles,
|
31
|
-
acceptedFiles = _useDropzone$accepted === void 0 ? (acceptedFiles[0], _readOnlyError("acceptedFiles")) : _useDropzone$accepted,
|
32
|
-
_useDropzone$fileReje = _useDropzone.fileRejections,
|
33
|
-
fileRejections = _useDropzone$fileReje === void 0 ? fileRejections.push(acceptedFiles.slice(1, acceptedFiles.length)) : _useDropzone$fileReje,
|
34
|
-
getRootProps = _useDropzone.getRootProps,
|
35
|
-
getInputProps = _useDropzone.getInputProps,
|
36
|
-
isDragAccept = _useDropzone.isDragAccept,
|
37
|
-
isDragReject = _useDropzone.isDragReject;
|
38
|
-
|
39
|
-
function onDrop(acceptedFiles) {
|
40
|
-
if (!(acceptedFiles !== null && acceptedFiles !== void 0 && acceptedFiles.length) > 1 && !multiple) {
|
41
|
-
onChange(null);
|
42
|
-
} else {
|
43
|
-
onChange(acceptedFiles);
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
var className = classNames('react-dropzone', classNameProp, {
|
48
|
-
accept: isDragAccept,
|
49
|
-
reject: isDragReject,
|
50
|
-
disabled: disabled
|
51
|
-
});
|
52
|
-
return /*#__PURE__*/React.createElement("section", {
|
53
|
-
className: className
|
54
|
-
}, /*#__PURE__*/React.createElement("div", getRootProps(), /*#__PURE__*/React.createElement("input", _extends({}, props, getInputProps())), /*#__PURE__*/React.createElement(React.Fragment, null, placeholder), !multiple && /*#__PURE__*/React.createElement("b", null, "Only one file accepted."), accept && /*#__PURE__*/React.createElement("b", null, "Files of type \"".concat(accept, "\" accepted"))), /*#__PURE__*/React.createElement("aside", null, /*#__PURE__*/React.createElement(FileList, {
|
55
|
-
files: acceptedFiles,
|
56
|
-
rejectedFiles: fileRejections
|
57
|
-
})));
|
58
|
-
}
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
3
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
4
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
5
|
-
var _excluded = ["className", "onChange", "value", "multiple"];
|
6
|
-
import React, { useEffect, useRef, useState } from 'react';
|
7
|
-
import DefaultFileList from './DefaultFileList';
|
8
|
-
export default function FileInput(_ref) {
|
9
|
-
var className = _ref.className,
|
10
|
-
onChange = _ref.onChange,
|
11
|
-
value = _ref.value,
|
12
|
-
_ref$multiple = _ref.multiple,
|
13
|
-
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
14
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
15
|
-
|
16
|
-
var inputRef = useRef();
|
17
|
-
|
18
|
-
var _useState = useState([]),
|
19
|
-
_useState2 = _slicedToArray(_useState, 2),
|
20
|
-
acceptedFiles = _useState2[0],
|
21
|
-
setAcceptedFiles = _useState2[1];
|
22
|
-
|
23
|
-
useEffect(function () {
|
24
|
-
if (!value && inputRef.current) {
|
25
|
-
inputRef.current.value = null;
|
26
|
-
}
|
27
|
-
}, [value]);
|
28
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
29
|
-
className: "custom-file file-input ".concat(className || '', " ").concat(props.disabled ? 'disabled' : '')
|
30
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", _extends({
|
31
|
-
ref: inputRef,
|
32
|
-
type: "file",
|
33
|
-
className: "custom-file-input",
|
34
|
-
onChange: handleChange,
|
35
|
-
multiple: multiple
|
36
|
-
}, props))), /*#__PURE__*/React.createElement("label", {
|
37
|
-
className: "custom-file-label"
|
38
|
-
}, /*#__PURE__*/React.createElement("div", null, !value && /*#__PURE__*/React.createElement("span", null, "Choose A File..."), value && (!multiple ? /*#__PURE__*/React.createElement("span", null, value.name, " - size: ", humanFileSize(value.size)) : value.length === 1 ? /*#__PURE__*/React.createElement("span", null, value[0].name, " - size: ", humanFileSize(value[0].size)) : /*#__PURE__*/React.createElement("span", null, "Multiple files selected."))))), /*#__PURE__*/React.createElement(DefaultFileList, {
|
39
|
-
files: acceptedFiles
|
40
|
-
}));
|
41
|
-
|
42
|
-
function handleChange(e) {
|
43
|
-
if (e == null || !e.target || !e.target.files.length) {
|
44
|
-
onChange(null);
|
45
|
-
} else {
|
46
|
-
var files = _toConsumableArray(e.target.files);
|
47
|
-
|
48
|
-
setAcceptedFiles(files);
|
49
|
-
|
50
|
-
if (!multiple) {
|
51
|
-
onChange(files[0]);
|
52
|
-
} else {
|
53
|
-
onChange(files);
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
function humanFileSize(size) {
|
60
|
-
var i = Math.floor(Math.log(size) / Math.log(1024));
|
61
|
-
return (size / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + ['B', 'KB', 'MB', 'GB', 'TB'][i];
|
62
|
-
}
|
package/es/FileInput/index.js
DELETED
package/es/Form/index.js
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
import FocusError from './FocusError';
|
2
|
-
import Form from './Form';
|
3
|
-
import FormBasedPreventNavigation from './FormBasedPreventNavigation';
|
4
|
-
import ServerErrorContext from './ServerErrorContext';
|
5
|
-
export { Form as default, ServerErrorContext, FocusError, FormBasedPreventNavigation };
|
package/es/FormGroup.js
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { FormGroup as BootstrapFormGroup, Label, FormFeedback, FormText, Alert } from 'reactstrap';
|
3
|
-
|
4
|
-
var FormGroup = function FormGroup(_ref) {
|
5
|
-
var label = _ref.label,
|
6
|
-
id = _ref.id,
|
7
|
-
helpText = _ref.helpText,
|
8
|
-
className = _ref.className,
|
9
|
-
style = _ref.style,
|
10
|
-
children = _ref.children,
|
11
|
-
meta = _ref.meta;
|
12
|
-
return /*#__PURE__*/React.createElement(BootstrapFormGroup, {
|
13
|
-
className: className,
|
14
|
-
style: style
|
15
|
-
}, !!meta.warning && /*#__PURE__*/React.createElement(Alert, {
|
16
|
-
color: "warning"
|
17
|
-
}, meta.warning), label && /*#__PURE__*/React.createElement(Label, {
|
18
|
-
htmlFor: id
|
19
|
-
}, label), children, meta.error && /*#__PURE__*/React.createElement(FormFeedback, null, meta.error), helpText && /*#__PURE__*/React.createElement(FormText, null, helpText));
|
20
|
-
};
|
21
|
-
|
22
|
-
export default FormGroup;
|
package/es/FormGroupWrapper.js
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["prepend", "append", "Component", "helpText"];
|
4
|
-
import React from 'react';
|
5
|
-
import { InputGroup } from 'reactstrap';
|
6
|
-
import FormGroup from './FormGroup';
|
7
|
-
import ErrorScrollTarget from './ErrorScrollTarget';
|
8
|
-
export default function FormGroupWrapper(_ref) {
|
9
|
-
var prepend = _ref.prepend,
|
10
|
-
append = _ref.append,
|
11
|
-
Component = _ref.Component,
|
12
|
-
helpText = _ref.helpText,
|
13
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
14
|
-
|
15
|
-
var meta = props.meta;
|
16
|
-
return /*#__PURE__*/React.createElement(FormGroup, _extends({
|
17
|
-
meta: meta,
|
18
|
-
helpText: helpText
|
19
|
-
}, props), /*#__PURE__*/React.createElement(ErrorScrollTarget, {
|
20
|
-
name: props.name
|
21
|
-
}), prepend || append ? /*#__PURE__*/React.createElement(InputGroup, null, prepend, /*#__PURE__*/React.createElement(Component, props), append) : /*#__PURE__*/React.createElement(Component, props));
|
22
|
-
}
|
@@ -1,212 +0,0 @@
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
4
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
5
|
-
var _excluded = ["className", "meta", "helpText"],
|
6
|
-
_excluded2 = ["meta"],
|
7
|
-
_excluded3 = ["includeEmptyOption", "options"],
|
8
|
-
_excluded4 = ["optionsUrl", "includeEmptyOption", "includeOtherOption", "cache", "maxAge"],
|
9
|
-
_excluded5 = ["meta"],
|
10
|
-
_excluded6 = ["helpText", "meta"];
|
11
|
-
import React from 'react';
|
12
|
-
import classnames from 'classnames';
|
13
|
-
import { Input as BootstrapInput, FormFeedback, CustomInput, FormText, Alert } from 'reactstrap';
|
14
|
-
import lru from 'lru-cache';
|
15
|
-
import PropTypes from 'prop-types';
|
16
|
-
import TextareaAutosize from 'react-textarea-autosize';
|
17
|
-
import { useAxiosRequest } from 'envoc-request';
|
18
|
-
import FormGroupWrapper from '../FormGroupWrapper';
|
19
|
-
import DatePickerInput from '../DatePickerInput';
|
20
|
-
import ReactSelectField from '../ReactSelectField';
|
21
|
-
import useStandardFormInput from '../useStandardFormInput';
|
22
|
-
import { MoneyFormattedInput } from '../MoneyFormattedInput';
|
23
|
-
import { FileInput, DropzoneFileInput } from '../FileInput';
|
24
|
-
export default function FormInput(props) {
|
25
|
-
var _useStandardFormInput = useStandardFormInput(props),
|
26
|
-
_useStandardFormInput2 = _slicedToArray(_useStandardFormInput, 2),
|
27
|
-
input = _useStandardFormInput2[0],
|
28
|
-
meta = _useStandardFormInput2[1];
|
29
|
-
|
30
|
-
var className = props.className,
|
31
|
-
hide = props.hide;
|
32
|
-
return /*#__PURE__*/React.createElement(StandardFieldGroup, _extends({}, input, {
|
33
|
-
className: classnames({
|
34
|
-
'd-none': hide
|
35
|
-
}, className),
|
36
|
-
meta: meta
|
37
|
-
}));
|
38
|
-
}
|
39
|
-
FormInput.propTypes = {
|
40
|
-
id: PropTypes.string,
|
41
|
-
label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
42
|
-
name: PropTypes.string.isRequired,
|
43
|
-
placeholder: PropTypes.string,
|
44
|
-
helpText: PropTypes.oneOfType([PropTypes.string, PropTypes.object])
|
45
|
-
};
|
46
|
-
|
47
|
-
function StandardFieldGroup(props) {
|
48
|
-
switch (props.type) {
|
49
|
-
case 'date':
|
50
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
51
|
-
Component: DatePicker
|
52
|
-
}));
|
53
|
-
|
54
|
-
case 'select':
|
55
|
-
if (props.optionsUrl) {
|
56
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
57
|
-
Component: RemoteSelect
|
58
|
-
}));
|
59
|
-
} else {
|
60
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
61
|
-
Component: Select
|
62
|
-
}));
|
63
|
-
}
|
64
|
-
|
65
|
-
case 'checkbox':
|
66
|
-
case 'radio':
|
67
|
-
return Checkbox(props);
|
68
|
-
|
69
|
-
case 'file':
|
70
|
-
if (props.dropzone) {
|
71
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
72
|
-
Component: DropzoneFileInput
|
73
|
-
}));
|
74
|
-
}
|
75
|
-
|
76
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
77
|
-
Component: FileInput
|
78
|
-
}));
|
79
|
-
|
80
|
-
case 'textarea':
|
81
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
82
|
-
Component: TextAreaInput
|
83
|
-
}));
|
84
|
-
|
85
|
-
case 'moneyFormatted':
|
86
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
87
|
-
Component: MoneyFormattedInput
|
88
|
-
}));
|
89
|
-
|
90
|
-
default:
|
91
|
-
return /*#__PURE__*/React.createElement(FormGroupWrapper, _extends({}, props, {
|
92
|
-
Component: DefaultInput
|
93
|
-
}));
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
var TextAreaInput = function TextAreaInput(_ref) {
|
98
|
-
var className = _ref.className,
|
99
|
-
meta = _ref.meta,
|
100
|
-
helpText = _ref.helpText,
|
101
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
102
|
-
|
103
|
-
return /*#__PURE__*/React.createElement(TextareaAutosize, _extends({
|
104
|
-
cacheMeasurements: true,
|
105
|
-
className: classnames(className, 'form-control', meta.error ? 'is-invalid' : '')
|
106
|
-
}, props));
|
107
|
-
};
|
108
|
-
|
109
|
-
var DefaultInput = function DefaultInput(_ref2) {
|
110
|
-
var meta = _ref2.meta,
|
111
|
-
props = _objectWithoutProperties(_ref2, _excluded2);
|
112
|
-
|
113
|
-
return /*#__PURE__*/React.createElement(BootstrapInput, _extends({
|
114
|
-
invalid: !!meta.error
|
115
|
-
}, props));
|
116
|
-
};
|
117
|
-
|
118
|
-
var Select = function Select(_ref3) {
|
119
|
-
var _ref3$includeEmptyOpt = _ref3.includeEmptyOption,
|
120
|
-
includeEmptyOption = _ref3$includeEmptyOpt === void 0 ? true : _ref3$includeEmptyOpt,
|
121
|
-
options = _ref3.options,
|
122
|
-
props = _objectWithoutProperties(_ref3, _excluded3);
|
123
|
-
|
124
|
-
var allOptions = includeEmptyOption && !props.isMulti ? [{
|
125
|
-
label: ' ',
|
126
|
-
value: null
|
127
|
-
}].concat(_toConsumableArray(options)) : options;
|
128
|
-
return /*#__PURE__*/React.createElement(ReactSelectField, _extends({}, props, {
|
129
|
-
options: allOptions
|
130
|
-
}));
|
131
|
-
}; // low cache value just to prevent the same dropdown from hitting the API at the same time
|
132
|
-
// TODO: global cache provider / "envoc-cache" instead of this static instance
|
133
|
-
|
134
|
-
|
135
|
-
export var optionCache = new lru({
|
136
|
-
max: 500,
|
137
|
-
maxAge: 1000 * 10
|
138
|
-
});
|
139
|
-
|
140
|
-
var RemoteSelect = function RemoteSelect(_ref4) {
|
141
|
-
var optionsUrl = _ref4.optionsUrl,
|
142
|
-
_ref4$includeEmptyOpt = _ref4.includeEmptyOption,
|
143
|
-
includeEmptyOption = _ref4$includeEmptyOpt === void 0 ? true : _ref4$includeEmptyOpt,
|
144
|
-
_ref4$includeOtherOpt = _ref4.includeOtherOption,
|
145
|
-
includeOtherOption = _ref4$includeOtherOpt === void 0 ? false : _ref4$includeOtherOpt,
|
146
|
-
_ref4$cache = _ref4.cache,
|
147
|
-
cache = _ref4$cache === void 0 ? optionCache : _ref4$cache,
|
148
|
-
_ref4$maxAge = _ref4.maxAge,
|
149
|
-
maxAge = _ref4$maxAge === void 0 ? 1000 * 10 : _ref4$maxAge,
|
150
|
-
props = _objectWithoutProperties(_ref4, _excluded4);
|
151
|
-
|
152
|
-
var request = {
|
153
|
-
method: 'get',
|
154
|
-
url: optionsUrl,
|
155
|
-
cache: cache,
|
156
|
-
maxAge: maxAge,
|
157
|
-
autoExecute: true
|
158
|
-
};
|
159
|
-
var webRequest = useAxiosRequest(request);
|
160
|
-
|
161
|
-
if (webRequest.error) {
|
162
|
-
return /*#__PURE__*/React.createElement(Alert, {
|
163
|
-
color: "danger"
|
164
|
-
}, "An error occurred while loading.");
|
165
|
-
}
|
166
|
-
|
167
|
-
var options = [];
|
168
|
-
|
169
|
-
if (webRequest.loading) {
|
170
|
-
options.push({
|
171
|
-
label: 'Loading...',
|
172
|
-
value: ''
|
173
|
-
});
|
174
|
-
} else {
|
175
|
-
if (includeEmptyOption && !props.isMulti) {
|
176
|
-
options.push({
|
177
|
-
label: ' ',
|
178
|
-
value: null
|
179
|
-
});
|
180
|
-
}
|
181
|
-
|
182
|
-
options.push.apply(options, _toConsumableArray(webRequest.resp.data.result));
|
183
|
-
|
184
|
-
if (includeOtherOption) {
|
185
|
-
options.push({
|
186
|
-
label: 'Other',
|
187
|
-
value: 'other'
|
188
|
-
});
|
189
|
-
}
|
190
|
-
}
|
191
|
-
|
192
|
-
return /*#__PURE__*/React.createElement(ReactSelectField, _extends({}, props, {
|
193
|
-
options: options
|
194
|
-
}));
|
195
|
-
};
|
196
|
-
|
197
|
-
var DatePicker = function DatePicker(_ref5) {
|
198
|
-
var meta = _ref5.meta,
|
199
|
-
props = _objectWithoutProperties(_ref5, _excluded5);
|
200
|
-
|
201
|
-
return /*#__PURE__*/React.createElement(DatePickerInput, _extends({}, props, {
|
202
|
-
className: meta.error ? 'is-invalid' : ''
|
203
|
-
}));
|
204
|
-
};
|
205
|
-
|
206
|
-
var Checkbox = function Checkbox(_ref6) {
|
207
|
-
var helpText = _ref6.helpText,
|
208
|
-
meta = _ref6.meta,
|
209
|
-
props = _objectWithoutProperties(_ref6, _excluded6);
|
210
|
-
|
211
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomInput, props), meta.error && /*#__PURE__*/React.createElement(FormFeedback, null, meta.error), helpText && /*#__PURE__*/React.createElement(FormText, null, helpText));
|
212
|
-
};
|
package/es/FormInput/index.js
DELETED