@digigov/form 2.0.0-834daea4 → 2.0.0-87b6232d
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 +38 -25
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +5 -3
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional/index.js +4 -0
- package/Field/FieldConditional.js.map +2 -2
- package/Field/index.js +14 -4
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +20 -10
- package/Field/utils/index.js +8 -1
- package/Field/utils/index.js.map +2 -2
- package/Field/utils/useField/index.js +14 -1
- package/Field/utils/useField.js.map +2 -2
- package/FieldArray/FieldArray.stories.d.ts +1 -0
- package/FieldArray/FormDialog/index.js +402 -0
- package/{Questions/Questions.stories → FieldArray/FormDialog}/package.json +1 -1
- package/FieldArray/FormDialog.d.ts +67 -0
- package/FieldArray/FormDialog.js.map +7 -0
- package/FieldArray/__stories__/WithModal.d.ts +2 -0
- package/FieldArray/index.d.ts +6 -0
- package/FieldArray/index.js +97 -46
- package/FieldArray/index.js.map +3 -3
- package/FieldObject/index.d.ts +5 -0
- package/FieldObject/index.js +30 -15
- package/FieldObject/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 +93 -6
- 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 +6 -2
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +2 -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 +37 -24
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +5 -3
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/FieldConditional/index.js +4 -0
- package/cjs/Field/FieldConditional.js.map +2 -2
- package/cjs/Field/index.js +14 -4
- package/cjs/Field/index.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/Field/utils/index.js +8 -1
- package/cjs/Field/utils/index.js.map +3 -3
- package/cjs/Field/utils/useField/index.js +14 -1
- package/cjs/Field/utils/useField.js.map +2 -2
- package/cjs/FieldArray/FormDialog/index.js +421 -0
- package/cjs/FieldArray/FormDialog.js.map +7 -0
- package/cjs/FieldArray/index.js +92 -44
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FieldObject/index.js +30 -15
- package/cjs/FieldObject/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +92 -5
- 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 +6 -2
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +2 -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 +4 -3
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js +2 -1
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +27 -12
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +224 -0
- package/cjs/inputs/DateTimeInput/index.js.map +7 -0
- package/cjs/inputs/FileInput/index.js +50 -31
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/index.js +8 -2
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +9 -2
- 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 +1 -0
- package/cjs/inputs/OtpInput/index.js.map +2 -2
- package/cjs/inputs/Radio/index.js +1 -0
- package/cjs/inputs/Radio/index.js.map +2 -2
- package/cjs/inputs/Select/index.js +9 -2
- package/cjs/inputs/Select/index.js.map +2 -2
- package/cjs/inputs/inputsScenarios/index.js +6 -12
- package/cjs/inputs/inputsScenarios.js.map +2 -2
- package/cjs/lazy/index.js +48 -38
- package/cjs/lazy.js.map +3 -3
- package/cjs/locales/el.js.map +1 -1
- package/cjs/registry/index.js +70 -60
- package/cjs/registry.js.map +3 -3
- package/cjs/types.js.map +1 -1
- package/cjs/utils/index.js +22 -7
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js +58 -27
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/amka/index.js +60 -0
- package/cjs/validators/utils/amka.js.map +7 -0
- package/cjs/validators/utils/datetime/index.js +151 -0
- package/cjs/validators/utils/datetime.js.map +7 -0
- package/cjs/validators/utils/file/index.js +30 -17
- package/cjs/validators/utils/file.js.map +2 -2
- package/cjs/validators/utils/index.js +8 -2
- package/cjs/validators/utils/index.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 +4 -3
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/index.d.ts +1 -1
- package/inputs/Checkboxes/index.js +2 -1
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/DateInput/index.d.ts +1 -2
- package/inputs/DateInput/index.js +27 -12
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +7 -0
- package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
- package/inputs/DateTimeInput/index.d.ts +13 -0
- package/inputs/DateTimeInput/index.js +194 -0
- package/inputs/DateTimeInput/index.js.map +7 -0
- package/inputs/DateTimeInput/index.test.d.ts +1 -0
- package/inputs/{Input/Input.stories → DateTimeInput}/package.json +1 -1
- package/inputs/FileInput/FileInput.stories.d.ts +1 -0
- package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
- package/inputs/FileInput/index.d.ts +12 -0
- package/inputs/FileInput/index.js +55 -33
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/index.js +8 -2
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +2 -0
- package/inputs/Input/__stories__/AMKA.d.ts +3 -0
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
- package/inputs/Input/index.d.ts +2 -1
- package/inputs/Input/index.js +9 -2
- 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 +1 -0
- package/inputs/OtpInput/index.js.map +2 -2
- package/inputs/Radio/index.d.ts +1 -1
- package/inputs/Radio/index.js +1 -0
- package/inputs/Radio/index.js.map +2 -2
- package/inputs/Select/index.d.ts +3 -2
- package/inputs/Select/index.js +13 -3
- package/inputs/Select/index.js.map +2 -2
- package/inputs/inputsScenarios/index.js +6 -12
- package/inputs/inputsScenarios.d.ts +1 -1
- package/inputs/inputsScenarios.js.map +2 -2
- package/lazy/index.js +77 -71
- package/locales/el.js.map +1 -1
- package/package.json +5 -5
- package/registry/index.js +116 -107
- package/src/Field/ErrorGroup.tsx +84 -0
- package/src/Field/FieldBase.tsx +55 -36
- package/src/Field/FieldBaseContainer.tsx +11 -7
- package/src/Field/FieldConditional.tsx +6 -2
- package/src/Field/doc.mdx +202 -1
- package/src/Field/index.tsx +19 -5
- package/src/Field/types.tsx +22 -10
- package/src/Field/utils/index.ts +7 -0
- package/src/Field/utils/useField.ts +14 -2
- package/src/FieldArray/FieldArray.stories.js +1 -0
- package/src/FieldArray/FormDialog.tsx +574 -0
- package/src/FieldArray/__stories__/Default.tsx +1 -0
- package/src/FieldArray/__stories__/WithExactLength.tsx +1 -0
- package/src/FieldArray/__stories__/WithModal.tsx +160 -0
- package/src/FieldArray/index.test.tsx +8 -0
- package/src/FieldArray/index.tsx +116 -60
- package/src/FieldObject/index.tsx +39 -18
- 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/doc.mdx +9 -4
- package/src/FormBuilder/index.test.tsx +12 -0
- package/src/FormBuilder/index.tsx +103 -9
- package/src/FormBuilder/interaction.test.tsx +40 -0
- package/src/FormBuilder/scenarios.test.tsx +124 -10
- package/src/FormContext.tsx +1 -2
- package/src/MultiplicityField/add-objects.tsx +6 -3
- package/src/MultiplicityField/doc.mdx +101 -83
- package/src/MultiplicityField/index.test.tsx +4 -0
- package/src/MultiplicityField/index.tsx +2 -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 +12 -10
- package/src/Questions/doc.mdx +21 -41
- package/src/Questions/index.spec.tsx +14 -2
- package/src/Questions/index.test.tsx +4 -0
- package/src/doc.mdx +26 -11
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -7
- package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
- package/src/inputs/AutoCompleteInput/index.tsx +4 -5
- package/src/inputs/Checkboxes/index.test.tsx +4 -0
- package/src/inputs/Checkboxes/index.tsx +3 -4
- package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
- package/src/inputs/DateInput/index.test.tsx +4 -0
- package/src/inputs/DateInput/index.tsx +28 -11
- package/src/inputs/DateTimeInput/DateTimeInput.stories.js +8 -0
- package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
- package/src/inputs/DateTimeInput/doc.mdx +16 -0
- package/src/inputs/DateTimeInput/index.test.tsx +24 -0
- package/src/inputs/DateTimeInput/index.tsx +209 -0
- package/src/inputs/FileInput/FileInput.stories.js +1 -0
- package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
- package/src/inputs/FileInput/index.test.tsx +8 -0
- package/src/inputs/FileInput/index.tsx +56 -23
- package/src/inputs/ImageInput/ImageInput.stories.js +0 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -2
- package/src/inputs/ImageInput/index.test.tsx +4 -4
- package/src/inputs/ImageInput/index.tsx +8 -5
- package/src/inputs/Input/Input.stories.js +2 -0
- package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
- package/src/inputs/Input/__stories__/LandlineNumber.tsx +2 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -0
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -0
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -0
- 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 +8 -0
- package/src/inputs/Input/index.tsx +12 -3
- package/src/inputs/Input/inputsInputScenarios.ts +244 -245
- package/src/inputs/Label/index.test.tsx +4 -0
- package/src/inputs/Label/index.tsx +0 -3
- package/src/inputs/OtpInput/index.test.tsx +4 -0
- package/src/inputs/OtpInput/index.tsx +3 -1
- package/src/inputs/Radio/index.test.tsx +4 -0
- package/src/inputs/Radio/index.tsx +2 -1
- package/src/inputs/Select/index.test.tsx +4 -0
- package/src/inputs/Select/index.tsx +18 -6
- package/src/inputs/inputsScenarios.ts +36 -42
- package/src/lazy.js +77 -68
- package/src/locales/el.ts +1 -1
- package/src/registry.js +108 -100
- package/src/types.tsx +4 -3
- package/src/utils.ts +29 -8
- package/src/validators/index.ts +104 -32
- package/src/validators/utils/amka.ts +39 -0
- package/src/validators/utils/datetime.ts +130 -0
- package/src/validators/utils/file.ts +33 -17
- package/src/validators/utils/index.ts +5 -1
- 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 +4 -3
- package/types.js.map +1 -1
- package/utils/index.js +22 -7
- package/utils.d.ts +2 -0
- package/utils.js.map +2 -2
- package/validators/index.d.ts +1 -1
- package/validators/index.js +63 -28
- package/validators/index.js.map +2 -2
- package/validators/utils/amka/index.js +36 -0
- package/{FieldArray/FieldArray.stories → validators/utils/amka}/package.json +1 -1
- package/validators/utils/amka.d.ts +6 -0
- package/validators/utils/amka.js.map +7 -0
- package/validators/utils/datetime/index.js +116 -0
- package/validators/utils/datetime/package.json +6 -0
- package/validators/utils/datetime.d.ts +9 -0
- package/validators/utils/datetime.js.map +7 -0
- package/validators/utils/file/index.js +30 -17
- package/validators/utils/file.js.map +2 -2
- package/validators/utils/index.d.ts +2 -0
- package/validators/utils/index.js +5 -1
- package/validators/utils/index.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.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.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 -67
- package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -67
- package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -66
- package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -64
- 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.d.ts +0 -3
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
- package/inputs/Input/Input.stories/index.js +0 -30
- 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 -34
- 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 -34
- 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 -33
- 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 -31
- 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 -81
- package/lazy.js.map +0 -7
- package/registry.d.ts +0 -71
- package/registry.js.map +0 -7
- package/src/inputs/ImageInput/__stories__/WithInvalidImageSize.tsx +0 -36
package/src/Questions/doc.mdx
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
TableDataCell,
|
|
15
15
|
} from '@digigov/react-core';
|
|
16
16
|
|
|
17
|
+
# Questions
|
|
17
18
|
|
|
18
19
|
Question pages are used to ask users meaningful questions needed by your
|
|
19
20
|
GOV.GR service, or even gather data about their persona or their application
|
|
@@ -46,7 +47,7 @@ import { Field } from '@digigov/form';
|
|
|
46
47
|
const steps = [
|
|
47
48
|
{
|
|
48
49
|
name: 'residency',
|
|
49
|
-
title: '
|
|
50
|
+
title: 'Που μένετε;',
|
|
50
51
|
fields: [
|
|
51
52
|
{
|
|
52
53
|
key: 'countries',
|
|
@@ -56,25 +57,25 @@ const steps = [
|
|
|
56
57
|
options: [
|
|
57
58
|
{
|
|
58
59
|
label: {
|
|
59
|
-
primary: '
|
|
60
|
+
primary: 'Ελλάδα',
|
|
60
61
|
},
|
|
61
62
|
value: 'greece',
|
|
62
63
|
},
|
|
63
64
|
{
|
|
64
65
|
label: {
|
|
65
|
-
primary: '
|
|
66
|
+
primary: 'Κύπρος',
|
|
66
67
|
},
|
|
67
68
|
value: 'cyprus',
|
|
68
69
|
},
|
|
69
70
|
{
|
|
70
71
|
label: {
|
|
71
|
-
primary: '
|
|
72
|
+
primary: 'Ευρωπαϊκή Ένωση',
|
|
72
73
|
},
|
|
73
74
|
value: 'eu',
|
|
74
75
|
},
|
|
75
76
|
{
|
|
76
77
|
label: {
|
|
77
|
-
primary: '
|
|
78
|
+
primary: 'Ηνωμένες Πολιτείες της Αμερικής',
|
|
78
79
|
},
|
|
79
80
|
value: 'usa',
|
|
80
81
|
},
|
|
@@ -85,12 +86,12 @@ const steps = [
|
|
|
85
86
|
},
|
|
86
87
|
{
|
|
87
88
|
name: 'dob',
|
|
88
|
-
title: '
|
|
89
|
+
title: 'Ποια είναι ημερομηνία γέννησής σας;',
|
|
89
90
|
fields: [
|
|
90
91
|
{
|
|
91
92
|
key: 'dob',
|
|
92
93
|
label: {
|
|
93
|
-
primary: '
|
|
94
|
+
primary: 'Ημερομηνία γέννησης',
|
|
94
95
|
},
|
|
95
96
|
type: 'date',
|
|
96
97
|
required: true,
|
|
@@ -184,7 +185,7 @@ object. The most basic properties are the following:
|
|
|
184
185
|
```json pure title="step-name.json"
|
|
185
186
|
{
|
|
186
187
|
"name": "name",
|
|
187
|
-
"title": "
|
|
188
|
+
"title": "Ποιο είναι το όνομά σας;",
|
|
188
189
|
"fields": [
|
|
189
190
|
{
|
|
190
191
|
"key": "name",
|
|
@@ -210,7 +211,7 @@ the next `step`.
|
|
|
210
211
|
const steps = [
|
|
211
212
|
{
|
|
212
213
|
name: 'age',
|
|
213
|
-
title: '
|
|
214
|
+
title: 'Ποια είναι η ηλικία σας?',
|
|
214
215
|
fields: [
|
|
215
216
|
{
|
|
216
217
|
key: 'age',
|
|
@@ -226,13 +227,13 @@ const steps = [
|
|
|
226
227
|
},
|
|
227
228
|
{
|
|
228
229
|
name: 'citizen-underage',
|
|
229
|
-
title: '
|
|
230
|
+
title: 'Είστε μαθητής;',
|
|
230
231
|
fields: [ ... ]
|
|
231
232
|
},
|
|
232
233
|
{
|
|
233
234
|
// highlight-next-line
|
|
234
235
|
name: 'citizen-adult',
|
|
235
|
-
title: '
|
|
236
|
+
title: 'Εργάζεστε;',
|
|
236
237
|
fields: [
|
|
237
238
|
{
|
|
238
239
|
key: 'citizen-underage-employed',
|
|
@@ -242,11 +243,11 @@ const steps = [
|
|
|
242
243
|
options: [
|
|
243
244
|
{
|
|
244
245
|
label: {primary: "Yes"},
|
|
245
|
-
value: '
|
|
246
|
+
value: 'Ναι',
|
|
246
247
|
},
|
|
247
248
|
{
|
|
248
249
|
label: {primary: "No"},
|
|
249
|
-
value: '
|
|
250
|
+
value: 'ΌΧι',
|
|
250
251
|
}
|
|
251
252
|
]
|
|
252
253
|
}
|
|
@@ -280,7 +281,7 @@ import TranslatorsHeader from 'translators-landing/components/TranslatorsHeader'
|
|
|
280
281
|
const steps = [
|
|
281
282
|
{
|
|
282
283
|
name: 'age',
|
|
283
|
-
title: '
|
|
284
|
+
title: 'Ποια είναι η ηλικία σας;',
|
|
284
285
|
fields: [
|
|
285
286
|
{
|
|
286
287
|
key: 'age',
|
|
@@ -294,7 +295,7 @@ const steps = [
|
|
|
294
295
|
},
|
|
295
296
|
{
|
|
296
297
|
name: 'citizen-underage',
|
|
297
|
-
title: '
|
|
298
|
+
title: 'Είστε μαθητής;',
|
|
298
299
|
fields: [
|
|
299
300
|
{
|
|
300
301
|
key: 'citizen-underage-student',
|
|
@@ -303,11 +304,11 @@ const steps = [
|
|
|
303
304
|
extra: {
|
|
304
305
|
options: [
|
|
305
306
|
{
|
|
306
|
-
label: { primary: '
|
|
307
|
+
label: { primary: 'Ναι' },
|
|
307
308
|
value: 'yes',
|
|
308
309
|
},
|
|
309
310
|
{
|
|
310
|
-
label: { primary: '
|
|
311
|
+
label: { primary: 'Όχι' },
|
|
311
312
|
value: 'no',
|
|
312
313
|
},
|
|
313
314
|
],
|
|
@@ -317,7 +318,7 @@ const steps = [
|
|
|
317
318
|
},
|
|
318
319
|
{
|
|
319
320
|
name: 'citizen-adult',
|
|
320
|
-
title: '
|
|
321
|
+
title: 'Εργάζεστε;',
|
|
321
322
|
fields: [
|
|
322
323
|
{
|
|
323
324
|
key: 'citizen-adult-employed',
|
|
@@ -326,11 +327,11 @@ const steps = [
|
|
|
326
327
|
extra: {
|
|
327
328
|
options: [
|
|
328
329
|
{
|
|
329
|
-
label: { primary: '
|
|
330
|
+
label: { primary: 'Ναι' },
|
|
330
331
|
value: 'yes',
|
|
331
332
|
},
|
|
332
333
|
{
|
|
333
|
-
label: { primary: '
|
|
334
|
+
label: { primary: 'Όχι' },
|
|
334
335
|
value: 'no',
|
|
335
336
|
},
|
|
336
337
|
],
|
|
@@ -389,24 +390,3 @@ export default function Index() {
|
|
|
389
390
|
);
|
|
390
391
|
}
|
|
391
392
|
```
|
|
392
|
-
|
|
393
|
-
## Prop types
|
|
394
|
-
|
|
395
|
-
<TableContainer>
|
|
396
|
-
<Table>
|
|
397
|
-
<TableHead>
|
|
398
|
-
<TableRow>
|
|
399
|
-
<TableHeadCell>Περίοδος</TableHeadCell>
|
|
400
|
-
<TableHeadCell>Κανονικό ποσό</TableHeadCell>
|
|
401
|
-
<TableHeadCell>Μειωμένο ποσό</TableHeadCell>
|
|
402
|
-
</TableRow>
|
|
403
|
-
</TableHead>
|
|
404
|
-
<TableBody>
|
|
405
|
-
<TableRow>
|
|
406
|
-
<TableDataCell>Πρώτες 6 εβδομάδες </TableDataCell>
|
|
407
|
-
<TableDataCell> €109.80 / εβδομάδα</TableDataCell>
|
|
408
|
-
<TableDataCell> €69.80 / εβδομάδα</TableDataCell>
|
|
409
|
-
</TableRow>
|
|
410
|
-
</TableBody>
|
|
411
|
-
</Table>
|
|
412
|
-
</TableContainer>
|
|
@@ -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(
|
|
@@ -14,6 +14,10 @@ test('renders the All Questions variants', async ({ mount, page }) => {
|
|
|
14
14
|
)
|
|
15
15
|
await page.evaluate(() => document.fonts.ready);
|
|
16
16
|
|
|
17
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
18
|
+
await page.mouse.move(0, 0);
|
|
19
|
+
|
|
20
|
+
|
|
17
21
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
18
22
|
expect(screenshot).toMatchSnapshot();
|
|
19
23
|
});
|
package/src/doc.mdx
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: Introduction
|
|
3
|
-
title: Digigov Form
|
|
4
|
-
sidebar_label: Introduction to Digigov Form
|
|
5
3
|
---
|
|
6
4
|
|
|
5
|
+
# Digigov form
|
|
6
|
+
|
|
7
7
|
Digigov Form is an off-the-shelf solution for managing web forms using
|
|
8
8
|
Reactjs. It supports flexible and multi-step forms and easy-to-use validation.
|
|
9
9
|
This page will guide you through everything you need to create accessible and
|
|
10
10
|
dynamic forms that can handle all sorts of user inputs.
|
|
11
11
|
|
|
12
12
|
<img
|
|
13
|
-
src="/
|
|
13
|
+
src="/tmp/form.svg"
|
|
14
14
|
style={{ margin: '3rem 0', maxWidth: '450px', width: '60%' }}
|
|
15
15
|
/>
|
|
16
16
|
|
|
@@ -30,18 +30,33 @@ will be able to save via an JSON API.
|
|
|
30
30
|
The `@digigov/form` NPM package contains React components and validators. The
|
|
31
31
|
library uses basic, semantically correct HTML5 input fields.
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
### 📦 Installation
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
yarn add @digigov/form
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Or using npm:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npm install i @digigov/form
|
|
37
44
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`digigov/form` is a **form management solution** which adds dynamic control while simplifies handling user input, based on:
|
|
48
|
+
|
|
49
|
+
✅ [React Hook Form](https://www.react-hook-form.com/) which helps us manage the form state and
|
|
50
|
+
perform actions and mutations on it.
|
|
51
|
+
|
|
52
|
+
🛠️ [Yup](https://github.com/jquense/yup) and it is used to validate form data. It
|
|
42
53
|
interfaces with React Hook Form right out of the box, but also enables us to
|
|
43
54
|
define custom validation types such as AMKA, AFM etc.
|
|
44
55
|
|
|
56
|
+
🔄 [Multi-step](/components/@digigov/form/Questions) forms for complex workflows.
|
|
57
|
+
|
|
58
|
+
🔗 [digigov/form](/components/@digigov/form/FormBuilder) components for a consistent UI.
|
|
59
|
+
|
|
45
60
|
Some basic functionalites of `@digigov/form` will be presented in the following
|
|
46
61
|
sections and also we are going to guide you through some more advanced topics
|
|
47
62
|
such as internationalisation, custom data validation etc.
|
|
@@ -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
|
{
|
|
@@ -18,6 +18,10 @@ test('renders the All AutoCompleteInput variants', async ({ mount, page }) => {
|
|
|
18
18
|
)
|
|
19
19
|
await page.evaluate(() => document.fonts.ready);
|
|
20
20
|
|
|
21
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
22
|
+
await page.mouse.move(0, 0);
|
|
23
|
+
|
|
24
|
+
|
|
21
25
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
22
26
|
expect(screenshot).toMatchSnapshot();
|
|
23
27
|
});
|
|
@@ -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
|
}
|
|
@@ -92,6 +90,7 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
|
|
|
92
90
|
...props,
|
|
93
91
|
reset: undefined,
|
|
94
92
|
required: undefined,
|
|
93
|
+
Field: undefined,
|
|
95
94
|
}}
|
|
96
95
|
name={name}
|
|
97
96
|
id={`${name}-id`}
|
|
@@ -22,6 +22,10 @@ test('renders the All Checkboxes variants', async ({ mount, page }) => {
|
|
|
22
22
|
)
|
|
23
23
|
await page.evaluate(() => document.fonts.ready);
|
|
24
24
|
|
|
25
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
26
|
+
await page.mouse.move(0, 0);
|
|
27
|
+
|
|
28
|
+
|
|
25
29
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
26
30
|
expect(screenshot).toMatchSnapshot();
|
|
27
31
|
});
|
|
@@ -14,7 +14,7 @@ export interface CheckboxesProps
|
|
|
14
14
|
value?: string[];
|
|
15
15
|
extra: {
|
|
16
16
|
className?: string;
|
|
17
|
-
options:
|
|
17
|
+
options: FieldOptionProps[];
|
|
18
18
|
};
|
|
19
19
|
fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;
|
|
20
20
|
}
|
|
@@ -48,9 +48,6 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
|
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
// reset value to undefined instead of an empty array
|
|
52
|
-
// so the error state mechanism can throw validation errors
|
|
53
|
-
if (newValue.length === 0) newValue = undefined;
|
|
54
51
|
onChange(newValue);
|
|
55
52
|
};
|
|
56
53
|
const { t } = useTranslation();
|
|
@@ -75,6 +72,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
|
|
|
75
72
|
<CheckboxItem
|
|
76
73
|
key={`${name}.${index}`}
|
|
77
74
|
name={`${name}.${v}`}
|
|
75
|
+
id={`${name}.${v}`}
|
|
78
76
|
value={v}
|
|
79
77
|
disabled={disabled || optionDisabled}
|
|
80
78
|
checked={value?.includes(v)}
|
|
@@ -84,6 +82,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
|
|
|
84
82
|
...props,
|
|
85
83
|
reset: undefined,
|
|
86
84
|
defaultValue: undefined,
|
|
85
|
+
error: undefined,
|
|
87
86
|
onBlur: undefined,
|
|
88
87
|
required: undefined,
|
|
89
88
|
'aria-describedby': undefined,
|
|
@@ -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
|
);
|
|
@@ -14,6 +14,10 @@ test('renders the All DateInput variants', async ({ mount, page }) => {
|
|
|
14
14
|
)
|
|
15
15
|
await page.evaluate(() => document.fonts.ready);
|
|
16
16
|
|
|
17
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
18
|
+
await page.mouse.move(0, 0);
|
|
19
|
+
|
|
20
|
+
|
|
17
21
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
18
22
|
expect(screenshot).toMatchSnapshot();
|
|
19
23
|
});
|
|
@@ -2,6 +2,7 @@ import React, { useMemo, useState } from 'react';
|
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
4
4
|
import { UncontrolledFieldProps } from '@digigov/form/Field/types';
|
|
5
|
+
import { useFormContext } from '@digigov/form/FormBuilder';
|
|
5
6
|
import {
|
|
6
7
|
DateInputContainer,
|
|
7
8
|
DateInputItem,
|
|
@@ -16,32 +17,36 @@ export interface DateInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
function useDate(value,
|
|
20
|
+
function useDate(name, value, form) {
|
|
20
21
|
const [year, month, day] = useMemo(() => {
|
|
21
22
|
if (!value || value.length === 0) {
|
|
22
|
-
|
|
23
|
+
update('');
|
|
23
24
|
return ['', '', ''];
|
|
24
25
|
}
|
|
25
26
|
const [day, month, year] = value.split('/');
|
|
26
27
|
return [year, month, day];
|
|
27
28
|
}, [value]);
|
|
28
29
|
|
|
30
|
+
function update(value) {
|
|
31
|
+
form.setValue(name, value, { shouldValidate: false });
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
function set(year, month, day) {
|
|
30
35
|
const value = `${day || ''}/${month || ''}/${year || ''}`;
|
|
31
36
|
if (!year && !month && !day) {
|
|
32
|
-
|
|
37
|
+
update('');
|
|
33
38
|
} else {
|
|
34
|
-
|
|
39
|
+
update(value);
|
|
35
40
|
}
|
|
36
41
|
}
|
|
37
42
|
|
|
38
43
|
function setYear(evt) {
|
|
39
|
-
const val = evt.target.value;
|
|
44
|
+
const val = evt.target.value.trim();
|
|
40
45
|
set(val, month, day);
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
function setMonth(evt, cast) {
|
|
44
|
-
let val = evt.target.value;
|
|
49
|
+
let val = evt.target.value.trim();
|
|
45
50
|
if (cast && val && val.length === 1) {
|
|
46
51
|
val = '0' + val;
|
|
47
52
|
}
|
|
@@ -49,13 +54,19 @@ function useDate(value, onChange) {
|
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
function setDay(evt, cast) {
|
|
52
|
-
let val = evt.target.value;
|
|
57
|
+
let val = evt.target.value.trim();
|
|
53
58
|
if (cast && val && val.length === 1) {
|
|
54
59
|
val = '0' + val;
|
|
55
60
|
}
|
|
56
61
|
set(year, month, val);
|
|
57
62
|
}
|
|
58
63
|
|
|
64
|
+
function trigger() {
|
|
65
|
+
if (form.formState.isSubmitted) {
|
|
66
|
+
form.trigger(name);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
59
70
|
return {
|
|
60
71
|
day,
|
|
61
72
|
month,
|
|
@@ -63,6 +74,7 @@ function useDate(value, onChange) {
|
|
|
63
74
|
setYear,
|
|
64
75
|
setMonth,
|
|
65
76
|
setDay,
|
|
77
|
+
trigger,
|
|
66
78
|
};
|
|
67
79
|
}
|
|
68
80
|
|
|
@@ -80,7 +92,7 @@ const DatePart = ({ label, ...props }) => {
|
|
|
80
92
|
return <DateInputItem {...props}>{label}</DateInputItem>;
|
|
81
93
|
};
|
|
82
94
|
|
|
83
|
-
export const DateInput = ({ name,
|
|
95
|
+
export const DateInput = ({ name, ...props }) => {
|
|
84
96
|
const { t } = useTranslation();
|
|
85
97
|
const [initial] = useState(props.value);
|
|
86
98
|
const value = useMemo(() => {
|
|
@@ -90,17 +102,19 @@ export const DateInput = ({ name, type, ...props }) => {
|
|
|
90
102
|
return props.value;
|
|
91
103
|
}, [props.value, initial]);
|
|
92
104
|
|
|
93
|
-
const
|
|
105
|
+
const form = useFormContext();
|
|
106
|
+
const date = useDate(name, value || makeDate(props.defaultValue), form);
|
|
94
107
|
|
|
95
108
|
return (
|
|
96
109
|
<DateInputContainer>
|
|
97
110
|
<DatePart
|
|
98
111
|
label={t('form.label.day')}
|
|
99
112
|
onChange={date.setDay}
|
|
100
|
-
onBlur={
|
|
113
|
+
onBlur={date.trigger}
|
|
101
114
|
value={date.day}
|
|
102
115
|
width={2}
|
|
103
116
|
name={`${name}-day`}
|
|
117
|
+
id={`${name}-day`}
|
|
104
118
|
maxLength="2"
|
|
105
119
|
disabled={props.disabled}
|
|
106
120
|
aria-required={props['aria-required']}
|
|
@@ -109,10 +123,11 @@ export const DateInput = ({ name, type, ...props }) => {
|
|
|
109
123
|
<DatePart
|
|
110
124
|
label={t('form.label.month')}
|
|
111
125
|
onChange={date.setMonth}
|
|
112
|
-
onBlur={
|
|
126
|
+
onBlur={date.trigger}
|
|
113
127
|
value={date.month}
|
|
114
128
|
width={2}
|
|
115
129
|
name={`${name}-month`}
|
|
130
|
+
id={`${name}-month`}
|
|
116
131
|
maxLength="2"
|
|
117
132
|
disabled={props.disabled}
|
|
118
133
|
aria-required={props['aria-required']}
|
|
@@ -121,9 +136,11 @@ export const DateInput = ({ name, type, ...props }) => {
|
|
|
121
136
|
<DatePart
|
|
122
137
|
label={t('form.label.year')}
|
|
123
138
|
onChange={date.setYear}
|
|
139
|
+
onBlur={date.trigger}
|
|
124
140
|
value={date.year}
|
|
125
141
|
width={4}
|
|
126
142
|
name={`${name}-year`}
|
|
143
|
+
id={`${name}-year`}
|
|
127
144
|
maxLength="4"
|
|
128
145
|
disabled={props.disabled}
|
|
129
146
|
aria-required={props['aria-required']}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
|
+
|
|
5
|
+
const fields = [
|
|
6
|
+
{
|
|
7
|
+
key: 'datetime-example',
|
|
8
|
+
type: 'datetime',
|
|
9
|
+
required: true,
|
|
10
|
+
label: {
|
|
11
|
+
primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
|
|
12
|
+
secondary: 'Για παράδειγμα, 05 11 2020',
|
|
13
|
+
},
|
|
14
|
+
} as const,
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export const Default = () => (
|
|
18
|
+
<FormBuilder onSubmit={() => console.log('kati')}>
|
|
19
|
+
{fields.map(({ key, ...field }) => {
|
|
20
|
+
return <Field {...field} name={key} key={key} />;
|
|
21
|
+
})}
|
|
22
|
+
<Button type="submit">Συνέχεια</Button>
|
|
23
|
+
</FormBuilder>
|
|
24
|
+
);
|
|
25
|
+
export default Default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: DateTime Input
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# DateTime input
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Input element of type `datetime` create input fields that let the user enter a date and time,
|
|
10
|
+
either with a textbox that validates the input or a special date picker interface.
|
|
11
|
+
|
|
12
|
+
## How to use
|
|
13
|
+
|
|
14
|
+
### Default
|
|
15
|
+
|
|
16
|
+
<code src="@digigov/form/inputs/DateTimeInput/__stories__/Default.tsx" />
|