@digigov/form 2.0.0-298cfc51 → 2.0.0-2a26e869
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/Field/ErrorGroup/index.js +48 -0
- package/{Form.stories → Field/ErrorGroup}/package.json +1 -1
- package/Field/ErrorGroup.d.ts +15 -0
- package/Field/ErrorGroup.js.map +7 -0
- package/Field/FieldBase/index.js +30 -22
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +3 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional.js.map +1 -1
- package/Field/types.d.ts +7 -7
- package/FieldArray/index.js +2 -2
- package/FieldArray/index.js.map +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
- package/FormBuilder/index.js +83 -4
- package/FormBuilder/index.js.map +2 -2
- package/FormBuilder/interaction.test.d.ts +1 -0
- package/FormContext.js.map +2 -2
- package/MultiplicityField/add-objects/index.js +4 -2
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +1 -0
- package/MultiplicityField/index.js.map +2 -2
- package/MultiplicityField/types.d.ts +1 -2
- package/Questions/Questions/index.js +5 -4
- package/Questions/Questions.js.map +2 -2
- package/Questions/Step/StepArrayReview.js.map +2 -2
- package/cjs/Field/ErrorGroup/index.js +82 -0
- package/cjs/Field/ErrorGroup.js.map +7 -0
- package/cjs/Field/FieldBase/index.js +29 -21
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +3 -2
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/FieldConditional.js.map +1 -1
- package/cjs/Field/types.js.map +1 -1
- package/cjs/FieldArray/index.js +2 -2
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FormBuilder/index.js +83 -4
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/FormContext/index.js +2 -2
- package/cjs/FormContext.js.map +3 -3
- package/cjs/MultiplicityField/add-objects/index.js +4 -2
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +1 -0
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/MultiplicityField/types.js.map +1 -1
- package/cjs/Questions/Questions/index.js +5 -4
- package/cjs/Questions/Questions.js.map +2 -2
- package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
- package/cjs/inputs/AutoCompleteInput/index.js +2 -2
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js.map +1 -1
- package/cjs/inputs/DateInput/index.js +4 -4
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js +1 -1
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/index.js +1 -1
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +2 -1
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
- package/cjs/inputs/Label/index.js.map +2 -2
- package/cjs/inputs/OtpInput/index.js.map +2 -2
- package/cjs/inputs/Radio/index.js.map +1 -1
- package/cjs/inputs/Select/index.js.map +2 -2
- package/cjs/inputs/inputsScenarios/index.js +4 -10
- package/cjs/inputs/inputsScenarios.js.map +2 -2
- package/cjs/lazy/index.js +40 -38
- package/cjs/lazy.js.map +3 -3
- package/cjs/locales/el.js.map +1 -1
- package/cjs/registry/index.js +64 -62
- package/cjs/registry.js.map +3 -3
- package/cjs/types.js.map +1 -1
- package/cjs/utils/index.js +2 -1
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js +19 -13
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/file.js.map +2 -2
- package/cjs/validators/utils/int/index.js +1 -1
- package/cjs/validators/utils/int.js.map +2 -2
- package/cjs/validators/utils/number/index.js +1 -1
- package/cjs/validators/utils/number.js.map +2 -2
- package/cjs/validators/utils/phone.js.map +2 -2
- package/cjs/validators/utils/postal_code.js.map +1 -1
- package/cjs/validators/utils/uuid4.js.map +2 -2
- package/index.js +1 -1
- package/inputs/AutoCompleteInput/index.d.ts +1 -1
- package/inputs/AutoCompleteInput/index.js +2 -2
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/index.d.ts +1 -1
- package/inputs/Checkboxes/index.js.map +1 -1
- package/inputs/DateInput/index.d.ts +1 -2
- package/inputs/DateInput/index.js +4 -4
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/FileInput/index.js +1 -1
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/index.js +1 -1
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +1 -0
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
- package/inputs/Input/index.js +2 -1
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Input/inputsInputScenarios.js.map +2 -2
- package/inputs/Label/index.d.ts +0 -2
- package/inputs/Label/index.js.map +2 -2
- package/inputs/OtpInput/index.js.map +2 -2
- package/inputs/Radio/index.d.ts +1 -1
- package/inputs/Radio/index.js.map +1 -1
- package/inputs/Select/index.d.ts +1 -1
- package/inputs/Select/index.js +4 -1
- package/inputs/Select/index.js.map +2 -2
- package/inputs/inputsScenarios/index.js +4 -10
- package/inputs/inputsScenarios.js.map +2 -2
- package/lazy/index.js +68 -70
- package/locales/el.js.map +1 -1
- package/package.json +4 -4
- package/registry/index.js +109 -108
- package/src/Field/ErrorGroup.tsx +84 -0
- package/src/Field/FieldBase.tsx +33 -22
- package/src/Field/FieldBaseContainer.tsx +4 -3
- package/src/Field/FieldConditional.tsx +2 -2
- package/src/Field/types.tsx +26 -26
- package/src/FieldArray/index.tsx +2 -2
- package/src/FormBuilder/FormBuilder.stories.js +2 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
- package/src/FormBuilder/index.test.tsx +19 -10
- package/src/FormBuilder/index.tsx +92 -7
- package/src/FormBuilder/interaction.test.tsx +32 -0
- package/src/FormBuilder/scenarios.test.tsx +112 -5
- package/src/FormContext.tsx +1 -2
- package/src/MultiplicityField/add-objects.tsx +4 -3
- package/src/MultiplicityField/index.tsx +1 -0
- package/src/MultiplicityField/types.ts +1 -2
- package/src/Questions/Questions.tsx +4 -4
- package/src/Questions/Step/StepArrayReview.tsx +1 -1
- package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
- package/src/Questions/index.spec.tsx +14 -2
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -7
- package/src/inputs/AutoCompleteInput/index.tsx +3 -5
- package/src/inputs/Checkboxes/index.tsx +1 -1
- package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
- package/src/inputs/DateInput/index.tsx +4 -4
- package/src/inputs/FileInput/index.tsx +2 -2
- package/src/inputs/ImageInput/ImageInput.stories.js +0 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -2
- package/src/inputs/ImageInput/index.tsx +1 -4
- package/src/inputs/Input/Input.stories.js +1 -0
- package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -0
- package/src/inputs/Input/index.test.tsx +4 -0
- package/src/inputs/Input/index.tsx +2 -1
- package/src/inputs/Input/inputsInputScenarios.ts +244 -245
- package/src/inputs/Label/index.tsx +0 -3
- package/src/inputs/OtpInput/index.tsx +2 -1
- package/src/inputs/Radio/index.tsx +1 -1
- package/src/inputs/Select/index.tsx +5 -2
- package/src/inputs/inputsScenarios.ts +36 -42
- package/src/lazy.js +68 -67
- package/src/locales/el.ts +1 -1
- package/src/registry.js +101 -101
- package/src/types.tsx +2 -2
- package/src/utils.ts +2 -2
- package/src/validators/index.ts +41 -14
- package/src/validators/utils/file.ts +5 -3
- package/src/validators/utils/int.ts +1 -1
- package/src/validators/utils/number.ts +1 -1
- package/src/validators/utils/phone.ts +1 -1
- package/src/validators/utils/postal_code.ts +1 -1
- package/src/validators/utils/uuid4.ts +2 -1
- package/src/validators/validators.spec.ts +3 -3
- package/types.d.ts +2 -2
- package/types.js.map +1 -1
- package/utils/index.js +2 -1
- package/utils.js.map +2 -2
- package/validators/index.js +19 -13
- package/validators/index.js.map +2 -2
- package/validators/utils/file.js.map +2 -2
- package/validators/utils/int/index.js +1 -1
- package/validators/utils/int.js.map +2 -2
- package/validators/utils/number/index.js +1 -1
- package/validators/utils/number.js.map +2 -2
- package/validators/utils/phone.d.ts +1 -1
- package/validators/utils/phone.js.map +2 -2
- package/validators/utils/postal_code.d.ts +1 -1
- package/validators/utils/postal_code.js.map +1 -1
- package/validators/utils/uuid4.js.map +2 -2
- package/FieldArray/FieldArray.stories/index.js +0 -14
- package/FieldArray/FieldArray.stories/package.json +0 -6
- package/FieldArray/FieldArray.stories.js.map +0 -7
- package/FieldArray/__stories__/Default/index.js +0 -95
- package/FieldArray/__stories__/Default/package.json +0 -6
- package/FieldArray/__stories__/Default.js.map +0 -7
- package/FieldArray/__stories__/WithExactLength/index.js +0 -95
- package/FieldArray/__stories__/WithExactLength/package.json +0 -6
- package/FieldArray/__stories__/WithExactLength.js.map +0 -7
- package/Form.stories/index.js +0 -7
- package/Form.stories.js.map +0 -7
- package/FormBuilder/FormBuilder.stories/index.js +0 -12
- package/FormBuilder/FormBuilder.stories/package.json +0 -6
- package/FormBuilder/FormBuilder.stories.js.map +0 -7
- package/FormBuilder/__stories__/Default/index.js +0 -32
- package/FormBuilder/__stories__/Default/package.json +0 -6
- package/FormBuilder/__stories__/Default.js.map +0 -7
- package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
- package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
- package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
- package/MultiplicityField/__stories__/Default/index.js +0 -100
- package/MultiplicityField/__stories__/Default/package.json +0 -6
- package/MultiplicityField/__stories__/Default.js.map +0 -7
- package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
- package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
- package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
- package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
- package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
- package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
- package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
- package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
- package/Questions/Questions.stories/index.js +0 -12
- package/Questions/Questions.stories/package.json +0 -6
- package/Questions/Questions.stories.js.map +0 -7
- package/Questions/__stories__/Default/index.js +0 -108
- package/Questions/__stories__/Default/package.json +0 -6
- package/Questions/__stories__/Default.js.map +0 -7
- package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
- package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
- package/cjs/FieldArray/__stories__/Default/index.js +0 -128
- package/cjs/FieldArray/__stories__/Default.js.map +0 -7
- package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
- package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
- package/cjs/Form.stories/index.js +0 -26
- package/cjs/Form.stories.js.map +0 -7
- package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -45
- package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
- package/cjs/FormBuilder/__stories__/Default/index.js +0 -65
- package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
- package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
- package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
- package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
- package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
- package/cjs/Questions/Questions.stories/index.js +0 -45
- package/cjs/Questions/Questions.stories.js.map +0 -7
- package/cjs/Questions/__stories__/Default/index.js +0 -136
- package/cjs/Questions/__stories__/Default.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
- package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -83
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
- package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
- package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
- package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
- package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
- package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
- package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
- package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
- package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
- package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
- package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
- package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
- package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
- package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
- package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +0 -69
- package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -72
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
- package/cjs/inputs/Input/Input.stories/index.js +0 -72
- package/cjs/inputs/Input/Input.stories.js.map +0 -7
- package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
- package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
- package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
- package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
- package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
- package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
- package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
- package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
- package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -68
- package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -68
- package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -67
- package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -65
- package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
- package/cjs/inputs/Input/__stories__/String/index.js +0 -64
- package/cjs/inputs/Input/__stories__/String.js.map +0 -7
- package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
- package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
- package/cjs/inputs/Label/Label.stories/index.js +0 -45
- package/cjs/inputs/Label/Label.stories.js.map +0 -7
- package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
- package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
- package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
- package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
- package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
- package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
- package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
- package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
- package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
- package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
- package/cjs/inputs/Select/Select.stories/index.js +0 -45
- package/cjs/inputs/Select/Select.stories.js.map +0 -7
- package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
- package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
- package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
- package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
- package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
- package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
- package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
- package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
- package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -50
- package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
- package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
- package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
- package/inputs/Checkboxes/Checkboxes.stories/package.json +0 -6
- package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
- package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
- package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
- package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
- package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
- package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
- package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
- package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
- package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
- package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
- package/inputs/DateInput/DateInput.stories/index.js +0 -12
- package/inputs/DateInput/DateInput.stories/package.json +0 -6
- package/inputs/DateInput/DateInput.stories.js.map +0 -7
- package/inputs/DateInput/__stories__/Default/index.js +0 -28
- package/inputs/DateInput/__stories__/Default/package.json +0 -6
- package/inputs/DateInput/__stories__/Default.js.map +0 -7
- package/inputs/FileInput/FileInput.stories/index.js +0 -12
- package/inputs/FileInput/FileInput.stories/package.json +0 -6
- package/inputs/FileInput/FileInput.stories.js.map +0 -7
- package/inputs/FileInput/__stories__/Default/index.js +0 -28
- package/inputs/FileInput/__stories__/Default/package.json +0 -6
- package/inputs/FileInput/__stories__/Default.js.map +0 -7
- package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
- package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
- package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
- package/inputs/ImageInput/__stories__/Default/index.js +0 -30
- package/inputs/ImageInput/__stories__/Default/package.json +0 -6
- package/inputs/ImageInput/__stories__/Default.js.map +0 -7
- package/inputs/ImageInput/__stories__/MaxSize/index.js +0 -36
- package/inputs/ImageInput/__stories__/MaxSize/package.json +0 -6
- package/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -39
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
- package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
- package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
- package/inputs/Input/Input.stories/index.js +0 -30
- package/inputs/Input/Input.stories/package.json +0 -6
- package/inputs/Input/Input.stories.js.map +0 -7
- package/inputs/Input/__stories__/AFM/index.js +0 -30
- package/inputs/Input/__stories__/AFM/package.json +0 -6
- package/inputs/Input/__stories__/AFM.js.map +0 -7
- package/inputs/Input/__stories__/Boolean/index.js +0 -31
- package/inputs/Input/__stories__/Boolean/package.json +0 -6
- package/inputs/Input/__stories__/Boolean.js.map +0 -7
- package/inputs/Input/__stories__/IBAN/index.js +0 -31
- package/inputs/Input/__stories__/IBAN/package.json +0 -6
- package/inputs/Input/__stories__/IBAN.js.map +0 -7
- package/inputs/Input/__stories__/Integer/index.js +0 -45
- package/inputs/Input/__stories__/Integer/package.json +0 -6
- package/inputs/Input/__stories__/Integer.js.map +0 -7
- package/inputs/Input/__stories__/LandlineNumber/index.js +0 -35
- package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
- package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
- package/inputs/Input/__stories__/MobilePhone/index.js +0 -35
- package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
- package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
- package/inputs/Input/__stories__/PhoneNumber/index.js +0 -34
- package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
- package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
- package/inputs/Input/__stories__/PostalCode/index.js +0 -32
- package/inputs/Input/__stories__/PostalCode/package.json +0 -6
- package/inputs/Input/__stories__/PostalCode.js.map +0 -7
- package/inputs/Input/__stories__/String/index.js +0 -31
- package/inputs/Input/__stories__/String/package.json +0 -6
- package/inputs/Input/__stories__/String.js.map +0 -7
- package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
- package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
- package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
- package/inputs/Label/Label.stories/index.js +0 -12
- package/inputs/Label/Label.stories/package.json +0 -6
- package/inputs/Label/Label.stories.js.map +0 -7
- package/inputs/Label/__stories__/Default/index.js +0 -39
- package/inputs/Label/__stories__/Default/package.json +0 -6
- package/inputs/Label/__stories__/Default.js.map +0 -7
- package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
- package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
- package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
- package/inputs/OtpInput/__stories__/Default/index.js +0 -31
- package/inputs/OtpInput/__stories__/Default/package.json +0 -6
- package/inputs/OtpInput/__stories__/Default.js.map +0 -7
- package/inputs/Radio/Radio.stories/index.js +0 -16
- package/inputs/Radio/Radio.stories/package.json +0 -6
- package/inputs/Radio/Radio.stories.js.map +0 -7
- package/inputs/Radio/__stories__/Conditional/index.js +0 -100
- package/inputs/Radio/__stories__/Conditional/package.json +0 -6
- package/inputs/Radio/__stories__/Conditional.js.map +0 -7
- package/inputs/Radio/__stories__/Default/index.js +0 -48
- package/inputs/Radio/__stories__/Default/package.json +0 -6
- package/inputs/Radio/__stories__/Default.js.map +0 -7
- package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
- package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
- package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
- package/inputs/Select/Select.stories/index.js +0 -12
- package/inputs/Select/Select.stories/package.json +0 -6
- package/inputs/Select/Select.stories.js.map +0 -7
- package/inputs/Select/__stories__/Default/index.js +0 -53
- package/inputs/Select/__stories__/Default/package.json +0 -6
- package/inputs/Select/__stories__/Default.js.map +0 -7
- package/lazy.d.ts +0 -80
- package/lazy.js.map +0 -7
- package/registry.d.ts +0 -71
- package/registry.js.map +0 -7
|
@@ -469,7 +469,11 @@ const expectErrorMessages = async (formBuilder, scenarioExpect, expect) => {
|
|
|
469
469
|
);
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
|
-
|
|
472
|
+
if (expectObj.textAssertion === 'toContainText') {
|
|
473
|
+
await expect(labelLocator).toContainText(expectText);
|
|
474
|
+
} else {
|
|
475
|
+
await expect(labelLocator).toHaveText(expectText);
|
|
476
|
+
}
|
|
473
477
|
}
|
|
474
478
|
}
|
|
475
479
|
};
|
|
@@ -589,7 +593,7 @@ const generateScenarios = (
|
|
|
589
593
|
};
|
|
590
594
|
scenarioFill.push(finalScenarioFill);
|
|
591
595
|
for (const multiplicityField of fillTemplate?.value?.of?.extra
|
|
592
|
-
?.fields) {
|
|
596
|
+
?.fields ?? []) {
|
|
593
597
|
scenarioExpect.push({
|
|
594
598
|
type: 'success',
|
|
595
599
|
fieldKey: `${fillTemplate.fieldKey}\\.${i}\\.${multiplicityField.fieldKey}`,
|
|
@@ -1289,6 +1293,54 @@ const INPUTS_INPUT_FIELDS = [
|
|
|
1289
1293
|
},
|
|
1290
1294
|
];
|
|
1291
1295
|
|
|
1296
|
+
const ERROR_GROUPING_FIELDS = [
|
|
1297
|
+
{
|
|
1298
|
+
key: 'address',
|
|
1299
|
+
type: 'string',
|
|
1300
|
+
required: true,
|
|
1301
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1302
|
+
label: {
|
|
1303
|
+
primary: 'Οδός',
|
|
1304
|
+
},
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
key: 'address_number',
|
|
1308
|
+
type: 'int',
|
|
1309
|
+
required: true,
|
|
1310
|
+
layout: { xl: 2, lg: 2, md: 2, xs: 6 },
|
|
1311
|
+
label: {
|
|
1312
|
+
primary: 'Αριθμός',
|
|
1313
|
+
},
|
|
1314
|
+
},
|
|
1315
|
+
{
|
|
1316
|
+
key: 'postal_code',
|
|
1317
|
+
type: 'postal_code',
|
|
1318
|
+
required: true,
|
|
1319
|
+
layout: { xl: 4, lg: 4, md: 4, xs: 6 },
|
|
1320
|
+
label: {
|
|
1321
|
+
primary: 'Ταχ. Κώδικας',
|
|
1322
|
+
},
|
|
1323
|
+
},
|
|
1324
|
+
{
|
|
1325
|
+
key: 'town',
|
|
1326
|
+
type: 'string',
|
|
1327
|
+
required: true,
|
|
1328
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1329
|
+
label: {
|
|
1330
|
+
primary: 'Πόλη',
|
|
1331
|
+
},
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
key: 'country',
|
|
1335
|
+
type: 'string',
|
|
1336
|
+
required: true,
|
|
1337
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1338
|
+
label: {
|
|
1339
|
+
primary: 'Χώρα',
|
|
1340
|
+
},
|
|
1341
|
+
},
|
|
1342
|
+
];
|
|
1343
|
+
|
|
1292
1344
|
const inputsInputScenarios = [
|
|
1293
1345
|
{
|
|
1294
1346
|
title: 'success fill for inputs Input',
|
|
@@ -1410,7 +1462,7 @@ const inputsInputScenarios = [
|
|
|
1410
1462
|
{
|
|
1411
1463
|
title: 'empty fill for inputs Input',
|
|
1412
1464
|
describe: 'inputs Input scenario',
|
|
1413
|
-
fields: INPUTS_INPUT_FIELDS,
|
|
1465
|
+
fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
|
|
1414
1466
|
fill: [],
|
|
1415
1467
|
expect: [
|
|
1416
1468
|
{
|
|
@@ -1468,12 +1520,42 @@ const inputsInputScenarios = [
|
|
|
1468
1520
|
fieldKey: 'uuid4',
|
|
1469
1521
|
text: el.form.error.required,
|
|
1470
1522
|
},
|
|
1523
|
+
{
|
|
1524
|
+
type: 'error',
|
|
1525
|
+
fieldKey: 'address',
|
|
1526
|
+
text: el.form.error.required,
|
|
1527
|
+
textAssertion: 'toContainText',
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
type: 'error',
|
|
1531
|
+
fieldKey: 'address_number',
|
|
1532
|
+
text: el.form.error.required,
|
|
1533
|
+
textAssertion: 'toContainText',
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
type: 'error',
|
|
1537
|
+
fieldKey: 'postal_code',
|
|
1538
|
+
text: el.form.error.required,
|
|
1539
|
+
textAssertion: 'toContainText',
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
type: 'error',
|
|
1543
|
+
fieldKey: 'town',
|
|
1544
|
+
text: el.form.error.required,
|
|
1545
|
+
textAssertion: 'toContainText',
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
type: 'error',
|
|
1549
|
+
fieldKey: 'country',
|
|
1550
|
+
text: el.form.error.required,
|
|
1551
|
+
textAssertion: 'toContainText',
|
|
1552
|
+
},
|
|
1471
1553
|
],
|
|
1472
1554
|
},
|
|
1473
1555
|
{
|
|
1474
1556
|
title: 'incorrect types for inputs Input',
|
|
1475
1557
|
describe: 'inputs Input scenario',
|
|
1476
|
-
fields: INPUTS_INPUT_FIELDS,
|
|
1558
|
+
fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
|
|
1477
1559
|
fill: [
|
|
1478
1560
|
{
|
|
1479
1561
|
fieldKey: 'age',
|
|
@@ -1519,6 +1601,14 @@ const inputsInputScenarios = [
|
|
|
1519
1601
|
fieldKey: 'uuid4',
|
|
1520
1602
|
value: 'aaaaaa',
|
|
1521
1603
|
},
|
|
1604
|
+
{
|
|
1605
|
+
fieldKey: 'address_number',
|
|
1606
|
+
value: 'aa',
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
fieldKey: 'postal_code',
|
|
1610
|
+
value: 'aaaaa',
|
|
1611
|
+
},
|
|
1522
1612
|
],
|
|
1523
1613
|
expect: [
|
|
1524
1614
|
{
|
|
@@ -1576,6 +1666,18 @@ const inputsInputScenarios = [
|
|
|
1576
1666
|
fieldKey: 'uuid4',
|
|
1577
1667
|
text: el.form.error.uuid4,
|
|
1578
1668
|
},
|
|
1669
|
+
{
|
|
1670
|
+
type: 'error',
|
|
1671
|
+
fieldKey: 'address_number',
|
|
1672
|
+
text: el.form.error.number,
|
|
1673
|
+
textAssertion: 'toContainText',
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
type: 'error',
|
|
1677
|
+
fieldKey: 'postal_code',
|
|
1678
|
+
text: el.form.error.postalCode,
|
|
1679
|
+
textAssertion: 'toContainText',
|
|
1680
|
+
},
|
|
1579
1681
|
],
|
|
1580
1682
|
},
|
|
1581
1683
|
];
|
|
@@ -1847,7 +1949,12 @@ for (const scenario of scenarios) {
|
|
|
1847
1949
|
test(scenario.title, async ({ mount, page }) => {
|
|
1848
1950
|
const formBuilder = await mount(
|
|
1849
1951
|
// @ts-ignore
|
|
1850
|
-
<FormBuilder
|
|
1952
|
+
<FormBuilder
|
|
1953
|
+
auto={true}
|
|
1954
|
+
grid={true}
|
|
1955
|
+
fields={scenario.fields}
|
|
1956
|
+
onSubmit={() => {}}
|
|
1957
|
+
/>
|
|
1851
1958
|
);
|
|
1852
1959
|
await fillFields(page, formBuilder, scenario);
|
|
1853
1960
|
await submitForm(formBuilder);
|
package/src/FormContext.tsx
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable react/prop-types */
|
|
2
1
|
import React, { useEffect, useMemo } from 'react';
|
|
3
2
|
import {
|
|
4
3
|
ErrorOption,
|
|
@@ -106,8 +105,10 @@ export const AddObjects: React.FC<AddObjectsProps> = ({
|
|
|
106
105
|
(f) => `${currentName}.${f.key}`
|
|
107
106
|
);
|
|
108
107
|
const result = await trigger(nestedFields);
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
if (result) {
|
|
109
|
+
setValue('needs-more', '');
|
|
110
|
+
onStash(getValues(currentName));
|
|
111
|
+
}
|
|
111
112
|
}}
|
|
112
113
|
>
|
|
113
114
|
{extra?.label.object.add}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ErrorOption, UseFormReturn } from 'react-hook-form';
|
|
2
|
-
import { FieldSpec } from '@digigov/form/Field/types';
|
|
3
|
-
import { ControlledFieldProps } from '@digigov/form/Field/types';
|
|
2
|
+
import { FieldSpec, ControlledFieldProps } from '@digigov/form/Field/types';
|
|
4
3
|
|
|
5
4
|
export interface MultiplicityProps
|
|
6
5
|
extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {
|
|
@@ -31,7 +31,7 @@ export const Questions: React.FC<QuestionsInterface> = ({
|
|
|
31
31
|
useEffect(() => {
|
|
32
32
|
if (forceStepName !== currentStep.name) {
|
|
33
33
|
const forceStep = steps.find(({ name }) => name === forceStepName);
|
|
34
|
-
forceStep
|
|
34
|
+
if (forceStep) setCurrentStep(forceStep);
|
|
35
35
|
}
|
|
36
36
|
}, [forceStepName]);
|
|
37
37
|
const localData =
|
|
@@ -42,16 +42,16 @@ export const Questions: React.FC<QuestionsInterface> = ({
|
|
|
42
42
|
const submitStep = (stepName, stepData): void => {
|
|
43
43
|
data[stepName] = stepData;
|
|
44
44
|
if (localDraft) {
|
|
45
|
-
isBrowser
|
|
45
|
+
if (isBrowser)
|
|
46
46
|
window.localStorage.setItem(`questions-${name}`, JSON.stringify(data));
|
|
47
47
|
}
|
|
48
48
|
if (onChange) {
|
|
49
|
-
onChange
|
|
49
|
+
onChange(data);
|
|
50
50
|
}
|
|
51
51
|
setData(data);
|
|
52
52
|
const nextStep = getNextStep(currentStep, steps, data);
|
|
53
53
|
if (nextStep) {
|
|
54
|
-
onActiveStep
|
|
54
|
+
if (onActiveStep) onActiveStep(nextStep);
|
|
55
55
|
setCurrentStep(nextStep);
|
|
56
56
|
} else {
|
|
57
57
|
onSubmit(data);
|
|
@@ -37,7 +37,7 @@ export const StepArrayReview: React.FC<StepArrayReviewInterface> = (props) => {
|
|
|
37
37
|
</PageTitleContainer>
|
|
38
38
|
<SummaryList>
|
|
39
39
|
{props.array.map(
|
|
40
|
-
(item:
|
|
40
|
+
(item: Record<string, React.ReactNode>, idx: number) => (
|
|
41
41
|
<SummaryListItem key={idx}>
|
|
42
42
|
<SummaryListItemKey>
|
|
43
43
|
{t(primaryField.label.primary)}
|
|
@@ -45,7 +45,7 @@ exports[`renders the Questions 1`] = `
|
|
|
45
45
|
class="ds-form"
|
|
46
46
|
>
|
|
47
47
|
<div
|
|
48
|
-
class="ds-field xs:ds-grid__col-span-12"
|
|
48
|
+
class="ds-field xs:ds-grid__col-span-12 sm:ds-grid__col-span-12 md:ds-grid__col-span-12 lg:ds-grid__col-span-12 xl:ds-grid__col-span-12"
|
|
49
49
|
>
|
|
50
50
|
<label
|
|
51
51
|
class="ds-label"
|
|
@@ -64,6 +64,7 @@ exports[`renders the Questions 1`] = `
|
|
|
64
64
|
aria-required="true"
|
|
65
65
|
class="ds-input"
|
|
66
66
|
data-type="string"
|
|
67
|
+
id="name"
|
|
67
68
|
name="name"
|
|
68
69
|
type="text"
|
|
69
70
|
/>
|
|
@@ -2,8 +2,12 @@ import * as React from 'react';
|
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Field } from '@digigov/form';
|
|
5
|
-
import
|
|
6
|
-
|
|
5
|
+
import Questions, {
|
|
6
|
+
Step,
|
|
7
|
+
StepForm,
|
|
8
|
+
StepQuote,
|
|
9
|
+
StepTitle,
|
|
10
|
+
} from '@digigov/form/Questions';
|
|
7
11
|
|
|
8
12
|
const steps = [
|
|
9
13
|
{
|
|
@@ -42,6 +46,14 @@ const steps = [
|
|
|
42
46
|
},
|
|
43
47
|
];
|
|
44
48
|
|
|
49
|
+
beforeAll(() => {
|
|
50
|
+
global.ResizeObserver = class ResizeObserver {
|
|
51
|
+
observe() {}
|
|
52
|
+
unobserve() {}
|
|
53
|
+
disconnect() {}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
|
|
45
57
|
it('renders the Questions', () => {
|
|
46
58
|
expect(
|
|
47
59
|
render(
|
|
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
|
|
|
4
4
|
import { FieldSpec } from '@digigov/form/types';
|
|
5
5
|
import Button from '@digigov/ui/form/Button';
|
|
6
6
|
|
|
7
|
-
const results = [
|
|
8
|
-
'Αμερική',
|
|
9
|
-
'Ασία',
|
|
10
|
-
'Αυστραλία',
|
|
11
|
-
'Αφρική',
|
|
12
|
-
'Ευρώπη',
|
|
13
|
-
];
|
|
7
|
+
const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
|
|
14
8
|
|
|
15
9
|
const fields: FieldSpec[] = [
|
|
16
10
|
{
|
|
@@ -36,7 +30,6 @@ const fields: FieldSpec[] = [
|
|
|
36
30
|
const initialValues = {};
|
|
37
31
|
|
|
38
32
|
export const Default = () => (
|
|
39
|
-
|
|
40
33
|
<FormBuilder
|
|
41
34
|
fields={fields}
|
|
42
35
|
onSubmit={(data) => {
|
|
@@ -49,6 +42,5 @@ export const Default = () => (
|
|
|
49
42
|
))}
|
|
50
43
|
<Button type="submit">Submit</Button>
|
|
51
44
|
</FormBuilder>
|
|
52
|
-
|
|
53
45
|
);
|
|
54
|
-
export default Default;
|
|
46
|
+
export default Default;
|
|
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
|
|
|
4
4
|
import { FieldSpec } from '@digigov/form/types';
|
|
5
5
|
import Button from '@digigov/ui/form/Button';
|
|
6
6
|
|
|
7
|
-
const results = [
|
|
8
|
-
'Αμερική',
|
|
9
|
-
'Ασία',
|
|
10
|
-
'Αυστραλία',
|
|
11
|
-
'Αφρική',
|
|
12
|
-
'Ευρώπη',
|
|
13
|
-
];
|
|
7
|
+
const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
|
|
14
8
|
|
|
15
9
|
const fields: FieldSpec[] = [
|
|
16
10
|
{
|
|
@@ -17,7 +17,7 @@ export interface AutoCompleteInputExtra
|
|
|
17
17
|
| 'onConfirm'
|
|
18
18
|
| 'dropdownArrow'
|
|
19
19
|
> {
|
|
20
|
-
options:
|
|
20
|
+
options: FieldOptionProps[];
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface AutoCompleteInputProps
|
|
@@ -33,7 +33,6 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
|
|
|
33
33
|
extra: { options },
|
|
34
34
|
onChange,
|
|
35
35
|
value,
|
|
36
|
-
error,
|
|
37
36
|
...props
|
|
38
37
|
}) => {
|
|
39
38
|
const suggest = useCallback(
|
|
@@ -65,9 +64,8 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
|
|
|
65
64
|
onConfirm={(value) => {
|
|
66
65
|
if (Array.isArray(value)) {
|
|
67
66
|
const selectedValues = value.map((item) => item.value);
|
|
68
|
-
selectedValues.length > 0
|
|
69
|
-
|
|
70
|
-
: onChange(undefined);
|
|
67
|
+
if (selectedValues.length > 0) onChange(selectedValues);
|
|
68
|
+
else onChange(undefined);
|
|
71
69
|
} else {
|
|
72
70
|
onChange(value.value);
|
|
73
71
|
}
|
|
@@ -9,21 +9,16 @@ const fields = [
|
|
|
9
9
|
required: true,
|
|
10
10
|
label: {
|
|
11
11
|
primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
|
|
12
|
-
secondary:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
]
|
|
12
|
+
secondary: 'Για παράδειγμα, 05 11 2020',
|
|
13
|
+
},
|
|
14
|
+
} as const,
|
|
15
|
+
];
|
|
17
16
|
|
|
18
17
|
export const Default = () => (
|
|
19
18
|
<FormBuilder onSubmit={() => console.log('kati')}>
|
|
20
|
-
{fields.map((field) => {
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
<Field {...field} name={field.key} />
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
)}
|
|
19
|
+
{fields.map(({ key, ...field }) => {
|
|
20
|
+
return <Field {...field} name={key} key={key} />;
|
|
21
|
+
})}
|
|
27
22
|
<Button type="submit">Συνέχεια</Button>
|
|
28
23
|
</FormBuilder>
|
|
29
24
|
);
|
|
@@ -36,12 +36,12 @@ function useDate(value, onChange) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
function setYear(evt) {
|
|
39
|
-
const val = evt.target.value;
|
|
39
|
+
const val = evt.target.value.trim();
|
|
40
40
|
set(val, month, day);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
function setMonth(evt, cast) {
|
|
44
|
-
let val = evt.target.value;
|
|
44
|
+
let val = evt.target.value.trim();
|
|
45
45
|
if (cast && val && val.length === 1) {
|
|
46
46
|
val = '0' + val;
|
|
47
47
|
}
|
|
@@ -49,7 +49,7 @@ function useDate(value, onChange) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function setDay(evt, cast) {
|
|
52
|
-
let val = evt.target.value;
|
|
52
|
+
let val = evt.target.value.trim();
|
|
53
53
|
if (cast && val && val.length === 1) {
|
|
54
54
|
val = '0' + val;
|
|
55
55
|
}
|
|
@@ -80,7 +80,7 @@ const DatePart = ({ label, ...props }) => {
|
|
|
80
80
|
return <DateInputItem {...props}>{label}</DateInputItem>;
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
-
export const DateInput = ({ name,
|
|
83
|
+
export const DateInput = ({ name, ...props }) => {
|
|
84
84
|
const { t } = useTranslation();
|
|
85
85
|
const [initial] = useState(props.value);
|
|
86
86
|
const value = useMemo(() => {
|
|
@@ -18,11 +18,11 @@ export interface FileInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
|
18
18
|
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
export const FileInput: React.FC<any> = React.forwardRef(function FileInput(
|
|
21
|
-
{ name,
|
|
21
|
+
{ name, disabled, reset, onChange, ...props },
|
|
22
22
|
ref: any
|
|
23
23
|
) {
|
|
24
24
|
const { t } = useTranslation();
|
|
25
|
-
const [files, setFiles] = useState<
|
|
25
|
+
const [files, setFiles] = useState<string[] | undefined>([]);
|
|
26
26
|
const handleChange = (e) => {
|
|
27
27
|
const target = e.target as HTMLInputElement;
|
|
28
28
|
const selectedFiles = Array.from(
|
|
@@ -7,4 +7,3 @@ export default {
|
|
|
7
7
|
export { Default } from '@digigov/form/inputs/ImageInput/__stories__/Default';
|
|
8
8
|
export { WithInvalidImageDimension } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension';
|
|
9
9
|
export { MaxSize } from '@digigov/form/inputs/ImageInput/__stories__/MaxSize';
|
|
10
|
-
|
|
@@ -15,7 +15,7 @@ const FIELDS: FieldSpec[] = [
|
|
|
15
15
|
limit: {
|
|
16
16
|
maxSize: 1000,
|
|
17
17
|
},
|
|
18
|
-
}
|
|
18
|
+
},
|
|
19
19
|
},
|
|
20
20
|
];
|
|
21
21
|
|
|
@@ -28,7 +28,7 @@ export const MaxSize = () => (
|
|
|
28
28
|
>
|
|
29
29
|
<Fieldset>
|
|
30
30
|
{FIELDS.map((field) => (
|
|
31
|
-
<Field key={field.key} name={field.key}
|
|
31
|
+
<Field key={field.key} name={field.key} />
|
|
32
32
|
))}
|
|
33
33
|
</Fieldset>
|
|
34
34
|
<Button type="submit">Συνέχεια</Button>
|
|
@@ -33,10 +33,7 @@ export interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
|
|
36
|
-
function ImageInput(
|
|
37
|
-
{ name, extra = {}, disabled, onChange, reset, ...props },
|
|
38
|
-
ref: any
|
|
39
|
-
) {
|
|
36
|
+
function ImageInput({ name, disabled, onChange, reset, ...props }, ref: any) {
|
|
40
37
|
const { t } = useTranslation();
|
|
41
38
|
const [selectedImage, setSelectedImage] = useState<File | null>(null);
|
|
42
39
|
const [imageUrl, setImageUrl] = useState<string | null>(null);
|
|
@@ -5,6 +5,7 @@ export default {
|
|
|
5
5
|
displayName: 'Input',
|
|
6
6
|
};
|
|
7
7
|
export { String } from '@digigov/form/inputs/Input/__stories__/String';
|
|
8
|
+
export { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
|
|
8
9
|
export { Integer } from '@digigov/form/inputs/Input/__stories__/Integer';
|
|
9
10
|
export { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
|
|
10
11
|
export { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
|
+
|
|
5
|
+
export const StringWithTrimValidation = () => (
|
|
6
|
+
<FormBuilder
|
|
7
|
+
onSubmit={(data) => {
|
|
8
|
+
console.log(data);
|
|
9
|
+
}}
|
|
10
|
+
>
|
|
11
|
+
<Field
|
|
12
|
+
key="business-title"
|
|
13
|
+
name="business-title"
|
|
14
|
+
type="string"
|
|
15
|
+
trim={true}
|
|
16
|
+
label={{
|
|
17
|
+
primary: 'Όνομα επιχείρησης',
|
|
18
|
+
secondary:
|
|
19
|
+
'Εισάγετε μια σειρά από χαρακτήρες και αριθμούς (το πειδίο δεν δέχεται κενά στην αρχή της πρότασης)',
|
|
20
|
+
}}
|
|
21
|
+
required
|
|
22
|
+
/>
|
|
23
|
+
<Button type="submit">Συνέχεια</Button>
|
|
24
|
+
</FormBuilder>
|
|
25
|
+
);
|
|
26
|
+
export default StringWithTrimValidation;
|
|
@@ -10,6 +10,7 @@ import { MobilePhone } from '@digigov/form/inputs/Input/__stories__/MobilePhone'
|
|
|
10
10
|
import { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
|
|
11
11
|
import { PostalCode } from '@digigov/form/inputs/Input/__stories__/PostalCode';
|
|
12
12
|
import { String } from '@digigov/form/inputs/Input/__stories__/String';
|
|
13
|
+
import { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
|
|
13
14
|
import { TextWithLimit } from '@digigov/form/inputs/Input/__stories__/TextWithLimit';
|
|
14
15
|
|
|
15
16
|
test('renders the All Input variants', async ({ mount, page }) => {
|
|
@@ -43,6 +44,9 @@ test('renders the All Input variants', async ({ mount, page }) => {
|
|
|
43
44
|
<TestVariant title="String">
|
|
44
45
|
<String />
|
|
45
46
|
</TestVariant>
|
|
47
|
+
<TestVariant title="StringWithTrimValidation">
|
|
48
|
+
<StringWithTrimValidation />
|
|
49
|
+
</TestVariant>
|
|
46
50
|
<TestVariant title="TextWithLimit">
|
|
47
51
|
<TextWithLimit />
|
|
48
52
|
</TestVariant>
|
|
@@ -28,7 +28,7 @@ export interface InputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
31
|
-
function WrappedInput({ name, control, type, extra,
|
|
31
|
+
function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
|
|
32
32
|
// eslint-disable-next-line prefer-const
|
|
33
33
|
let { multiline = false, rows, limit } = extra || {};
|
|
34
34
|
const { className } = extra || {};
|
|
@@ -92,6 +92,7 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
|
92
92
|
return (
|
|
93
93
|
<TextInput
|
|
94
94
|
name={name}
|
|
95
|
+
id={name}
|
|
95
96
|
type={fieldType}
|
|
96
97
|
data-type={type}
|
|
97
98
|
className={className}
|