@digigov/form 2.0.0-8e254888 → 2.0.0-a0ac149e
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.d.ts +3 -3
- package/Field/ErrorGroup.js.map +1 -1
- package/Field/FieldBase/index.js +7 -4
- package/Field/FieldBase.d.ts +1 -1
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +37 -18
- package/Field/FieldBaseContainer.d.ts +2 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional/index.js +4 -0
- package/Field/FieldConditional.d.ts +1 -1
- package/Field/FieldConditional.js.map +2 -2
- package/Field/index.d.ts +1 -1
- package/Field/index.js +25 -29
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +21 -12
- package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
- package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
- package/Field/utils/resolveField/index.js +35 -0
- package/Field/utils/{calculateField → resolveField}/package.json +1 -1
- package/Field/utils/resolveField.d.ts +3 -0
- package/Field/utils/resolveField.js.map +7 -0
- package/Field/utils/useField/index.js +12 -3
- package/Field/utils/useField.d.ts +1 -1
- package/Field/utils/useField.js.map +2 -2
- package/FieldArray/BaseFieldArray/index.js +76 -0
- package/FieldArray/BaseFieldArray/package.json +6 -0
- package/FieldArray/BaseFieldArray.d.ts +5 -0
- package/FieldArray/BaseFieldArray.js.map +7 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +10 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +97 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +22 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
- package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
- package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
- package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
- package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
- package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +14 -0
- package/FieldArray/FormDialog/ArrayDisplay/index.js +51 -0
- package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
- package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog/ArrayDisplay}/package.json +1 -1
- package/FieldArray/FormDialog/ArrayEditModal/index.js +149 -0
- package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
- package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
- package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
- package/FieldArray/FormDialog/index.d.ts +19 -0
- package/FieldArray/FormDialog/index.js +172 -258
- package/FieldArray/FormDialog/index.js.map +7 -0
- package/FieldArray/__stories__/Default.d.ts +1 -1
- package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
- package/FieldArray/__stories__/WithModal.d.ts +1 -1
- package/FieldArray/index.d.ts +5 -2
- package/FieldArray/index.js +36 -57
- package/FieldArray/index.js.map +2 -2
- package/FieldObject/index.d.ts +7 -4
- package/FieldObject/index.js +30 -26
- package/FieldObject/index.js.map +2 -2
- package/Fieldset/FieldsetWithContext.js.map +1 -1
- package/Fieldset/index.d.ts +1 -1
- package/Fieldset/index.js.map +1 -1
- package/Fieldset/types.d.ts +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
- package/FormBuilder/__stories__/Default.d.ts +1 -1
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
- package/FormBuilder/index.d.ts +2 -2
- package/FormBuilder/index.js +163 -134
- package/FormBuilder/index.js.map +2 -2
- package/FormContext/index.js +6 -2
- package/FormContext.d.ts +3 -2
- package/FormContext.js.map +2 -2
- package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
- package/MultiplicityField/__stories__/Default.d.ts +1 -1
- package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
- package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
- package/MultiplicityField/add-objects/index.js +12 -19
- package/MultiplicityField/add-objects.d.ts +1 -1
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.d.ts +2 -2
- package/MultiplicityField/index.js +4 -1
- package/MultiplicityField/index.js.map +2 -2
- package/MultiplicityField/types.d.ts +3 -2
- package/Questions/Questions.d.ts +1 -1
- package/Questions/Questions.js.map +1 -1
- package/Questions/Questions.stories.d.ts +2 -0
- package/Questions/QuestionsContext.d.ts +1 -1
- package/Questions/QuestionsContext.js.map +1 -1
- package/Questions/Step/Step.d.ts +1 -1
- package/Questions/Step/Step.js.map +1 -1
- package/Questions/Step/StepArrayReview.d.ts +1 -1
- package/Questions/Step/StepArrayReview.js.map +1 -1
- package/Questions/Step/StepContext.d.ts +1 -1
- package/Questions/Step/StepContext.js.map +1 -1
- package/Questions/Step/StepDescription.d.ts +1 -1
- package/Questions/Step/StepDescription.js.map +2 -2
- package/Questions/Step/StepForm.d.ts +2 -2
- package/Questions/Step/StepForm.js.map +1 -1
- package/Questions/Step/StepQuote.d.ts +1 -1
- package/Questions/Step/StepQuote.js.map +2 -2
- package/Questions/Step/StepTitle.d.ts +1 -1
- package/Questions/Step/StepTitle.js.map +2 -2
- package/Questions/Step/getAddMoreFields.d.ts +2 -2
- package/Questions/Step/getAddMoreFields.js.map +1 -1
- package/Questions/Step/types.d.ts +1 -1
- package/Questions/__stories__/Default.d.ts +1 -1
- package/Questions/getNextStep.d.ts +1 -1
- package/Questions/getNextStep.js.map +1 -1
- package/Questions/types.d.ts +1 -1
- package/cjs/Field/ErrorGroup.js.map +1 -1
- package/cjs/Field/FieldBase/index.js +7 -4
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +36 -17
- package/cjs/Field/FieldBaseContainer.js.map +3 -3
- package/cjs/Field/FieldConditional/index.js +4 -0
- package/cjs/Field/FieldConditional.js.map +2 -2
- package/cjs/Field/index.js +25 -26
- package/cjs/Field/index.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
- package/cjs/Field/utils/resolveField/index.js +55 -0
- package/cjs/Field/utils/resolveField.js.map +7 -0
- package/cjs/Field/utils/useField/index.js +12 -3
- package/cjs/Field/utils/useField.js.map +2 -2
- package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
- package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
- package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +130 -0
- package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
- package/cjs/{locales/el → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +16 -7
- package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
- package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +84 -0
- package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
- package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +177 -0
- package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
- package/cjs/FieldArray/FormDialog/index.js +163 -244
- package/cjs/FieldArray/FormDialog/index.js.map +7 -0
- package/cjs/FieldArray/index.js +35 -56
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FieldObject/index.js +30 -23
- package/cjs/FieldObject/index.js.map +2 -2
- package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
- package/cjs/Fieldset/index.js.map +1 -1
- package/cjs/Fieldset/types.js.map +1 -1
- package/cjs/FormBuilder/index.js +164 -135
- package/cjs/FormBuilder/index.js.map +3 -3
- package/cjs/FormContext/index.js +7 -2
- package/cjs/FormContext.js.map +2 -2
- package/cjs/MultiplicityField/add-objects/index.js +11 -13
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +4 -1
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/MultiplicityField/types.js.map +1 -1
- package/cjs/Questions/Questions.js.map +1 -1
- package/cjs/Questions/QuestionsContext.js.map +1 -1
- package/cjs/Questions/Step/Step.js.map +1 -1
- package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
- package/cjs/Questions/Step/StepContext.js.map +1 -1
- package/cjs/Questions/Step/StepDescription.js.map +2 -2
- package/cjs/Questions/Step/StepForm.js.map +1 -1
- package/cjs/Questions/Step/StepQuote.js.map +2 -2
- package/cjs/Questions/Step/StepTitle.js.map +2 -2
- package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
- package/cjs/Questions/Step/types.js.map +1 -1
- package/cjs/Questions/getNextStep.js.map +1 -1
- package/cjs/Questions/types.js.map +1 -1
- package/cjs/hooks/useFieldFocusManager/index.js +135 -0
- package/cjs/hooks/useFieldFocusManager.js.map +7 -0
- package/cjs/hooks/utils/index.js +98 -0
- package/cjs/hooks/utils.js.map +7 -0
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js +67 -63
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +51 -19
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +78 -39
- package/cjs/inputs/DateTimeInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js +52 -29
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/cjs/inputs/ImageInput/index.js +41 -10
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +55 -57
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/inputs/Label/index.js.map +1 -1
- package/cjs/inputs/OtpInput/index.js +36 -31
- package/cjs/inputs/OtpInput/index.js.map +2 -2
- package/cjs/inputs/Radio/index.js +5 -4
- package/cjs/inputs/Radio/index.js.map +3 -3
- package/cjs/inputs/Select/index.js +4 -3
- package/cjs/inputs/Select/index.js.map +2 -2
- package/cjs/{Field/utils → inputs/registry}/index.js +7 -5
- package/cjs/inputs/registry.js.map +7 -0
- package/cjs/{lazy/index.js → lazy.js} +12 -10
- package/cjs/lazy.js.map +2 -2
- package/cjs/{registry/index.js → registry.js} +25 -15
- package/cjs/registry.js.map +2 -2
- package/cjs/types.js.map +1 -1
- package/cjs/utils/index.js +20 -6
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js +11 -6
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/types.js.map +1 -1
- package/cjs/validators/utils/amka/index.js +60 -0
- package/cjs/validators/utils/amka.js.map +7 -0
- package/cjs/validators/utils/date/index.js +26 -3
- package/cjs/validators/utils/date.js.map +2 -2
- package/cjs/validators/utils/datetime/index.js +118 -24
- package/cjs/validators/utils/datetime.js.map +2 -2
- package/cjs/validators/utils/file/index.js +30 -17
- package/cjs/validators/utils/file.js.map +2 -2
- package/cjs/validators/utils/iban.js.map +1 -1
- package/cjs/validators/utils/image.js.map +1 -1
- package/cjs/validators/utils/index.js +5 -1
- package/cjs/validators/utils/index.js.map +2 -2
- package/cjs/validators/utils/int.js.map +1 -1
- package/cjs/validators/utils/number.js.map +1 -1
- package/cjs/validators/utils/otp.js.map +1 -1
- package/cjs/validators/utils/phone.js.map +1 -1
- package/cjs/validators/utils/postal_code.js.map +1 -1
- package/cjs/validators/utils/text_limit.js.map +1 -1
- package/hooks/useFieldFocusManager/index.js +116 -0
- package/hooks/useFieldFocusManager/package.json +6 -0
- package/hooks/useFieldFocusManager.d.ts +25 -0
- package/hooks/useFieldFocusManager.js.map +7 -0
- package/hooks/utils/index.js +73 -0
- package/{Field → hooks}/utils/package.json +1 -1
- package/hooks/utils.d.ts +18 -0
- package/hooks/utils.js.map +7 -0
- package/index.js +1 -1
- package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
- package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
- package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
- package/inputs/AutoCompleteInput/index.d.ts +3 -3
- package/inputs/AutoCompleteInput/index.js +1 -3
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
- package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Checkboxes/index.d.ts +3 -3
- package/inputs/Checkboxes/index.js +67 -63
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/DateInput/DateInput.stories.d.ts +6 -0
- package/inputs/DateInput/__stories__/Default.d.ts +1 -1
- package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateInput/index.d.ts +2 -5
- package/inputs/DateInput/index.js +52 -20
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
- package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
- package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/index.d.ts +2 -5
- package/inputs/DateTimeInput/index.js +79 -40
- package/inputs/DateTimeInput/index.js.map +2 -2
- package/inputs/FileInput/FileInput.stories.d.ts +3 -0
- package/inputs/FileInput/__stories__/Default.d.ts +1 -1
- package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
- package/inputs/FileInput/index.d.ts +12 -5
- package/inputs/FileInput/index.js +53 -30
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
- package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
- package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
- package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
- package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
- package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/inputs/ImageInput/index.d.ts +10 -2
- package/inputs/ImageInput/index.js +42 -11
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +4 -0
- package/inputs/Input/__stories__/AFM.d.ts +1 -1
- package/inputs/Input/__stories__/AMKA.d.ts +3 -0
- package/inputs/Input/__stories__/Boolean.d.ts +1 -1
- package/inputs/Input/__stories__/Email.d.ts +3 -0
- package/inputs/Input/__stories__/IBAN.d.ts +1 -1
- package/inputs/Input/__stories__/Integer.d.ts +1 -1
- package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
- package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
- package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
- package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
- package/inputs/Input/__stories__/String.d.ts +1 -1
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
- package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
- package/inputs/Input/index.d.ts +4 -3
- package/inputs/Input/index.js +55 -57
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Label/Label.stories.d.ts +2 -0
- package/inputs/Label/__stories__/Default.d.ts +1 -1
- package/inputs/Label/index.d.ts +1 -1
- package/inputs/Label/index.js.map +1 -1
- package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
- package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
- package/inputs/OtpInput/index.d.ts +1 -5
- package/inputs/OtpInput/index.js +36 -31
- package/inputs/OtpInput/index.js.map +2 -2
- package/inputs/Radio/Radio.stories.d.ts +2 -0
- package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
- package/inputs/Radio/__stories__/Default.d.ts +1 -1
- package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Radio/index.d.ts +4 -4
- package/inputs/Radio/index.js +5 -4
- package/inputs/Radio/index.js.map +3 -3
- package/inputs/Select/Select.stories.d.ts +2 -0
- package/inputs/Select/__stories__/Default.d.ts +1 -1
- package/inputs/Select/index.d.ts +4 -3
- package/inputs/Select/index.js +4 -3
- package/inputs/Select/index.js.map +2 -2
- package/{Field/utils → inputs/registry}/index.js +4 -2
- package/{locales/el → inputs/registry}/package.json +1 -1
- package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
- package/inputs/registry.js.map +7 -0
- package/lazy/index.js +12 -10
- package/package.json +8 -8
- package/registry/index.js +25 -15
- package/src/Field/ErrorGroup.tsx +3 -3
- package/src/Field/FieldBase.tsx +7 -4
- package/src/Field/FieldBaseContainer.tsx +69 -48
- package/src/Field/FieldConditional.tsx +5 -1
- package/src/Field/doc.mdx +202 -1
- package/src/Field/index.tsx +30 -38
- package/src/Field/types.tsx +22 -14
- package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
- package/src/Field/utils/resolveField.ts +58 -0
- package/src/Field/utils/useField.ts +12 -2
- package/src/FieldArray/BaseFieldArray.tsx +97 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +11 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +165 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
- package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +75 -0
- package/src/FieldArray/FormDialog/ArrayEditModal.tsx +233 -0
- package/src/FieldArray/FormDialog/index.tsx +250 -0
- package/src/FieldArray/__stories__/Default.tsx +1 -1
- package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
- package/src/FieldArray/__stories__/WithModal.tsx +4 -3
- package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
- package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
- package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
- package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
- package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
- package/src/FieldArray/index.spec.tsx +355 -0
- package/src/FieldArray/index.test.tsx +4 -0
- package/src/FieldArray/index.tsx +41 -72
- package/src/FieldObject/index.tsx +40 -33
- package/src/Fieldset/FieldsetWithContext.tsx +1 -1
- package/src/Fieldset/index.tsx +1 -1
- package/src/Fieldset/types.tsx +2 -2
- package/src/FormBuilder/FormBuilder.stories.js +3 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
- package/src/FormBuilder/__stories__/Default.tsx +1 -1
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
- package/src/FormBuilder/doc.mdx +9 -4
- package/src/FormBuilder/index.test.tsx +4 -0
- package/src/FormBuilder/index.tsx +197 -146
- package/src/FormBuilder/interaction.test.tsx +8 -0
- package/src/FormBuilder/scenarios.test.tsx +766 -8
- package/src/FormContext.tsx +7 -2
- package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
- package/src/MultiplicityField/__stories__/Default.tsx +1 -1
- package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
- package/src/MultiplicityField/add-objects.tsx +14 -21
- package/src/MultiplicityField/doc.mdx +101 -83
- package/src/MultiplicityField/index.test.tsx +4 -0
- package/src/MultiplicityField/index.tsx +6 -2
- package/src/MultiplicityField/types.ts +6 -2
- package/src/Questions/Questions.stories.js +3 -0
- package/src/Questions/Questions.tsx +2 -2
- package/src/Questions/QuestionsContext.tsx +1 -1
- package/src/Questions/Step/Step.tsx +1 -1
- package/src/Questions/Step/StepArrayReview.tsx +2 -2
- package/src/Questions/Step/StepContext.tsx +1 -1
- package/src/Questions/Step/StepDescription.tsx +2 -1
- package/src/Questions/Step/StepForm.tsx +2 -2
- package/src/Questions/Step/StepQuote.tsx +2 -1
- package/src/Questions/Step/StepTitle.tsx +2 -1
- package/src/Questions/Step/getAddMoreFields.tsx +2 -2
- package/src/Questions/Step/types.tsx +1 -1
- package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
- package/src/Questions/__stories__/Default.tsx +1 -1
- package/src/Questions/doc.mdx +21 -41
- package/src/Questions/getNextStep.tsx +1 -1
- package/src/Questions/index.test.tsx +4 -0
- package/src/Questions/types.tsx +1 -1
- package/src/doc.mdx +26 -11
- package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
- package/src/hooks/__tests__/utils.spec.ts +568 -0
- package/src/hooks/useFieldFocusManager.ts +162 -0
- package/src/hooks/utils.ts +122 -0
- package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
- package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
- package/src/inputs/AutoCompleteInput/index.tsx +4 -6
- package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
- package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Checkboxes/index.test.tsx +4 -0
- package/src/inputs/Checkboxes/index.tsx +95 -91
- package/src/inputs/DateInput/DateInput.stories.js +7 -0
- package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateInput/index.test.tsx +20 -0
- package/src/inputs/DateInput/index.tsx +65 -20
- package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
- package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/index.test.tsx +20 -0
- package/src/inputs/DateTimeInput/index.tsx +92 -40
- package/src/inputs/FileInput/FileInput.stories.js +4 -0
- package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
- package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
- package/src/inputs/FileInput/index.test.tsx +8 -0
- package/src/inputs/FileInput/index.tsx +91 -47
- package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
- package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
- package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
- package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
- package/src/inputs/ImageInput/__stories__/logo.png +0 -0
- package/src/inputs/ImageInput/index.test.tsx +8 -4
- package/src/inputs/ImageInput/index.tsx +101 -49
- package/src/inputs/Input/Input.stories.js +5 -0
- package/src/inputs/Input/__stories__/AFM.tsx +1 -1
- package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
- package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
- package/src/inputs/Input/__stories__/Email.tsx +23 -0
- package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
- package/src/inputs/Input/__stories__/Integer.tsx +1 -1
- 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__/String.tsx +1 -1
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
- package/src/inputs/Input/index.test.tsx +12 -0
- package/src/inputs/Input/index.tsx +76 -73
- package/src/inputs/Label/Label.stories.js +3 -0
- package/src/inputs/Label/__stories__/Default.tsx +1 -1
- package/src/inputs/Label/index.test.tsx +4 -0
- package/src/inputs/Label/index.tsx +1 -1
- package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
- package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
- package/src/inputs/OtpInput/index.test.tsx +4 -0
- package/src/inputs/OtpInput/index.tsx +43 -34
- package/src/inputs/Radio/Radio.stories.js +3 -0
- package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Radio/__stories__/Default.tsx +1 -1
- package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Radio/index.test.tsx +4 -0
- package/src/inputs/Radio/index.tsx +29 -21
- package/src/inputs/Select/Select.stories.js +3 -0
- package/src/inputs/Select/__stories__/Default.tsx +1 -1
- package/src/inputs/Select/index.test.tsx +4 -0
- package/src/inputs/Select/index.tsx +9 -6
- package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
- package/src/lazy.js +12 -10
- package/src/registry.js +25 -15
- package/src/types.tsx +13 -5
- package/src/utils.ts +30 -8
- package/src/validators/index.ts +27 -15
- package/src/validators/types.ts +1 -1
- package/src/validators/utils/amka.ts +39 -0
- package/src/validators/utils/date.ts +30 -6
- package/src/validators/utils/datetime.ts +123 -31
- package/src/validators/utils/file.ts +35 -21
- package/src/validators/utils/iban.ts +2 -2
- package/src/validators/utils/image.ts +2 -2
- package/src/validators/utils/index.ts +6 -3
- package/src/validators/utils/int.ts +1 -1
- package/src/validators/utils/number.ts +1 -1
- package/src/validators/utils/otp.ts +2 -2
- package/src/validators/utils/phone.ts +2 -2
- package/src/validators/utils/postal_code.ts +2 -2
- package/src/validators/utils/text_limit.ts +2 -2
- package/types.d.ts +9 -4
- package/types.js.map +1 -1
- package/utils/index.js +20 -6
- package/utils.d.ts +3 -1
- package/utils.js.map +2 -2
- package/validators/index.d.ts +6 -6
- package/validators/index.js +12 -6
- package/validators/index.js.map +2 -2
- package/validators/types.d.ts +1 -1
- package/validators/utils/amka/index.js +36 -0
- package/{inputs/inputsScenarios → 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/date/index.js +26 -3
- package/validators/utils/date.d.ts +3 -3
- package/validators/utils/date.js.map +2 -2
- package/validators/utils/datetime/index.js +118 -24
- package/validators/utils/datetime.d.ts +3 -3
- package/validators/utils/datetime.js.map +2 -2
- package/validators/utils/file/index.js +30 -17
- package/validators/utils/file.d.ts +2 -2
- package/validators/utils/file.js.map +2 -2
- package/validators/utils/iban.d.ts +2 -2
- package/validators/utils/iban.js.map +1 -1
- package/validators/utils/image.d.ts +2 -2
- package/validators/utils/image.js.map +1 -1
- package/validators/utils/index.d.ts +3 -2
- package/validators/utils/index.js +4 -1
- package/validators/utils/index.js.map +2 -2
- package/validators/utils/int.d.ts +1 -1
- package/validators/utils/int.js.map +1 -1
- package/validators/utils/number.d.ts +1 -1
- package/validators/utils/number.js.map +1 -1
- package/validators/utils/otp.d.ts +2 -2
- package/validators/utils/otp.js.map +1 -1
- package/validators/utils/phone.d.ts +2 -2
- package/validators/utils/phone.js.map +1 -1
- package/validators/utils/postal_code.d.ts +2 -2
- package/validators/utils/postal_code.js.map +1 -1
- package/validators/utils/text_limit.d.ts +2 -2
- package/validators/utils/text_limit.js.map +1 -1
- package/Field/utils/calculateField/index.js +0 -27
- package/Field/utils/calculateField.d.ts +0 -2
- package/Field/utils/calculateField.js.map +0 -7
- package/Field/utils/index.js.map +0 -7
- package/FieldArray/FormDialog.d.ts +0 -53
- package/FieldArray/FormDialog.js.map +0 -7
- package/FormBuilder/index.test.d.ts +0 -1
- package/FormBuilder/interaction.test.d.ts +0 -1
- package/FormBuilder/scenarios.test.d.ts +0 -88
- package/MultiplicityField/index.test.d.ts +0 -1
- package/Questions/index.spec.d.ts +0 -1
- package/Questions/index.test.d.ts +0 -1
- package/cjs/Field/utils/calculateField/index.js +0 -50
- package/cjs/Field/utils/calculateField.js.map +0 -7
- package/cjs/Field/utils/index.js.map +0 -7
- package/cjs/FieldArray/FormDialog.js.map +0 -7
- package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
- package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/cjs/inputs/inputsScenarios/index.js +0 -533
- package/cjs/inputs/inputsScenarios.js.map +0 -7
- package/cjs/locales/el.js.map +0 -7
- package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
- package/inputs/Checkboxes/index.test.d.ts +0 -1
- package/inputs/DateInput/index.test.d.ts +0 -1
- package/inputs/DateTimeInput/index.test.d.ts +0 -1
- package/inputs/FileInput/index.test.d.ts +0 -1
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
- package/inputs/ImageInput/index.test.d.ts +0 -1
- package/inputs/Input/index.test.d.ts +0 -1
- package/inputs/Input/inputsInputScenarios/index.js +0 -406
- package/inputs/Input/inputsInputScenarios.d.ts +0 -57
- package/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/inputs/Label/index.test.d.ts +0 -1
- package/inputs/OtpInput/index.test.d.ts +0 -1
- package/inputs/Radio/index.test.d.ts +0 -1
- package/inputs/Select/index.test.d.ts +0 -1
- package/inputs/inputsScenarios/index.js +0 -499
- package/inputs/inputsScenarios.d.ts +0 -296
- package/inputs/inputsScenarios.js.map +0 -7
- package/locales/el/index.js +0 -6
- package/locales/el.d.ts +0 -2
- package/locales/el.js.map +0 -7
- package/src/Field/utils/calculateField.ts +0 -49
- package/src/FieldArray/FormDialog.tsx +0 -378
- package/src/inputs/Input/inputsInputScenarios.ts +0 -404
- package/src/inputs/inputsScenarios.ts +0 -496
- package/src/locales/el.ts +0 -3
- /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
package/registry/index.js
CHANGED
|
@@ -10,9 +10,9 @@ import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/Fie
|
|
|
10
10
|
import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
|
|
11
11
|
import * as _digigov_form_Field from "@digigov/form/Field";
|
|
12
12
|
import * as _digigov_form_Field_types from "@digigov/form/Field/types";
|
|
13
|
-
import * as
|
|
14
|
-
import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
|
|
13
|
+
import * as _digigov_form_FieldArray_BaseFieldArray from "@digigov/form/FieldArray/BaseFieldArray";
|
|
15
14
|
import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
|
|
15
|
+
import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
|
|
16
16
|
import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
|
|
17
17
|
import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
|
|
18
18
|
import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
|
|
@@ -25,15 +25,17 @@ import * as _digigov_form_Questions_QuestionsContext from "@digigov/form/Questio
|
|
|
25
25
|
import * as _digigov_form_Questions_getNextStep from "@digigov/form/Questions/getNextStep";
|
|
26
26
|
import * as _digigov_form_Questions from "@digigov/form/Questions";
|
|
27
27
|
import * as _digigov_form_Questions_types from "@digigov/form/Questions/types";
|
|
28
|
+
import * as _digigov_form_hooks_useFieldFocusManager from "@digigov/form/hooks/useFieldFocusManager";
|
|
29
|
+
import * as _digigov_form_hooks_utils from "@digigov/form/hooks/utils";
|
|
28
30
|
import * as _digigov_form_inputs from "@digigov/form/inputs";
|
|
29
|
-
import * as
|
|
30
|
-
import * as _digigov_form_locales_el from "@digigov/form/locales/el";
|
|
31
|
+
import * as _digigov_form_inputs_registry from "@digigov/form/inputs/registry";
|
|
31
32
|
import * as _digigov_form_validators from "@digigov/form/validators";
|
|
32
33
|
import * as _digigov_form_validators_types from "@digigov/form/validators/types";
|
|
33
|
-
import * as _digigov_form_Field_utils_calculateField from "@digigov/form/Field/utils/calculateField";
|
|
34
34
|
import * as _digigov_form_Field_utils_evaluateFieldWithConditions from "@digigov/form/Field/utils/evaluateFieldWithConditions";
|
|
35
|
-
import * as
|
|
35
|
+
import * as _digigov_form_Field_utils_resolveField from "@digigov/form/Field/utils/resolveField";
|
|
36
36
|
import * as _digigov_form_Field_utils_useField from "@digigov/form/Field/utils/useField";
|
|
37
|
+
import * as _digigov_form_FieldArray_FormDialog_ArrayEditModal from "@digigov/form/FieldArray/FormDialog/ArrayEditModal";
|
|
38
|
+
import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
|
|
37
39
|
import * as _digigov_form_Questions_Step_ReviewStep from "@digigov/form/Questions/Step/ReviewStep";
|
|
38
40
|
import * as _digigov_form_Questions_Step_Step from "@digigov/form/Questions/Step/Step";
|
|
39
41
|
import * as _digigov_form_Questions_Step_StepArrayReview from "@digigov/form/Questions/Step/StepArrayReview";
|
|
@@ -52,12 +54,12 @@ import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput"
|
|
|
52
54
|
import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
|
|
53
55
|
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
54
56
|
import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
|
|
55
|
-
import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
|
|
56
57
|
import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
|
|
57
58
|
import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
|
|
58
59
|
import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
|
|
59
60
|
import * as _digigov_form_inputs_Select from "@digigov/form/inputs/Select";
|
|
60
61
|
import * as _digigov_form_validators_utils_afm from "@digigov/form/validators/utils/afm";
|
|
62
|
+
import * as _digigov_form_validators_utils_amka from "@digigov/form/validators/utils/amka";
|
|
61
63
|
import * as _digigov_form_validators_utils_date from "@digigov/form/validators/utils/date";
|
|
62
64
|
import * as _digigov_form_validators_utils_datetime from "@digigov/form/validators/utils/datetime";
|
|
63
65
|
import * as _digigov_form_validators_utils_file from "@digigov/form/validators/utils/file";
|
|
@@ -71,6 +73,9 @@ import * as _digigov_form_validators_utils_phone from "@digigov/form/validators/
|
|
|
71
73
|
import * as _digigov_form_validators_utils_postal_code from "@digigov/form/validators/utils/postal_code";
|
|
72
74
|
import * as _digigov_form_validators_utils_text_limit from "@digigov/form/validators/utils/text_limit";
|
|
73
75
|
import * as _digigov_form_validators_utils_uuid4 from "@digigov/form/validators/utils/uuid4";
|
|
76
|
+
import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay";
|
|
77
|
+
import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader from "@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader";
|
|
78
|
+
import * as _digigov_form_FieldArray_FormDialog_ArrayDisplay from "@digigov/form/FieldArray/FormDialog/ArrayDisplay";
|
|
74
79
|
function lazyImport(pkgImport) {
|
|
75
80
|
return new Proxy(
|
|
76
81
|
{},
|
|
@@ -101,9 +106,9 @@ export default {
|
|
|
101
106
|
'@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
|
|
102
107
|
'@digigov/form/Field': lazyImport(_digigov_form_Field),
|
|
103
108
|
'@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
|
|
104
|
-
'@digigov/form/
|
|
105
|
-
'@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
|
|
109
|
+
'@digigov/form/FieldArray/BaseFieldArray': lazyImport(_digigov_form_FieldArray_BaseFieldArray),
|
|
106
110
|
'@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
|
|
111
|
+
'@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
|
|
107
112
|
'@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
|
|
108
113
|
'@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
|
|
109
114
|
'@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
|
|
@@ -116,15 +121,17 @@ export default {
|
|
|
116
121
|
'@digigov/form/Questions/getNextStep': lazyImport(_digigov_form_Questions_getNextStep),
|
|
117
122
|
'@digigov/form/Questions': lazyImport(_digigov_form_Questions),
|
|
118
123
|
'@digigov/form/Questions/types': lazyImport(_digigov_form_Questions_types),
|
|
124
|
+
'@digigov/form/hooks/useFieldFocusManager': lazyImport(_digigov_form_hooks_useFieldFocusManager),
|
|
125
|
+
'@digigov/form/hooks/utils': lazyImport(_digigov_form_hooks_utils),
|
|
119
126
|
'@digigov/form/inputs': lazyImport(_digigov_form_inputs),
|
|
120
|
-
'@digigov/form/inputs/
|
|
121
|
-
'@digigov/form/locales/el': lazyImport(_digigov_form_locales_el),
|
|
127
|
+
'@digigov/form/inputs/registry': lazyImport(_digigov_form_inputs_registry),
|
|
122
128
|
'@digigov/form/validators': lazyImport(_digigov_form_validators),
|
|
123
129
|
'@digigov/form/validators/types': lazyImport(_digigov_form_validators_types),
|
|
124
|
-
'@digigov/form/Field/utils/calculateField': lazyImport(_digigov_form_Field_utils_calculateField),
|
|
125
130
|
'@digigov/form/Field/utils/evaluateFieldWithConditions': lazyImport(_digigov_form_Field_utils_evaluateFieldWithConditions),
|
|
126
|
-
'@digigov/form/Field/utils': lazyImport(
|
|
131
|
+
'@digigov/form/Field/utils/resolveField': lazyImport(_digigov_form_Field_utils_resolveField),
|
|
127
132
|
'@digigov/form/Field/utils/useField': lazyImport(_digigov_form_Field_utils_useField),
|
|
133
|
+
'@digigov/form/FieldArray/FormDialog/ArrayEditModal': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayEditModal),
|
|
134
|
+
'@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
|
|
128
135
|
'@digigov/form/Questions/Step/ReviewStep': lazyImport(_digigov_form_Questions_Step_ReviewStep),
|
|
129
136
|
'@digigov/form/Questions/Step/Step': lazyImport(_digigov_form_Questions_Step_Step),
|
|
130
137
|
'@digigov/form/Questions/Step/StepArrayReview': lazyImport(_digigov_form_Questions_Step_StepArrayReview),
|
|
@@ -143,12 +150,12 @@ export default {
|
|
|
143
150
|
'@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
|
|
144
151
|
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
145
152
|
'@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
|
|
146
|
-
'@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
|
|
147
153
|
'@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
|
|
148
154
|
'@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
|
|
149
155
|
'@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
|
|
150
156
|
'@digigov/form/inputs/Select': lazyImport(_digigov_form_inputs_Select),
|
|
151
157
|
'@digigov/form/validators/utils/afm': lazyImport(_digigov_form_validators_utils_afm),
|
|
158
|
+
'@digigov/form/validators/utils/amka': lazyImport(_digigov_form_validators_utils_amka),
|
|
152
159
|
'@digigov/form/validators/utils/date': lazyImport(_digigov_form_validators_utils_date),
|
|
153
160
|
'@digigov/form/validators/utils/datetime': lazyImport(_digigov_form_validators_utils_datetime),
|
|
154
161
|
'@digigov/form/validators/utils/file': lazyImport(_digigov_form_validators_utils_file),
|
|
@@ -161,5 +168,8 @@ export default {
|
|
|
161
168
|
'@digigov/form/validators/utils/phone': lazyImport(_digigov_form_validators_utils_phone),
|
|
162
169
|
'@digigov/form/validators/utils/postal_code': lazyImport(_digigov_form_validators_utils_postal_code),
|
|
163
170
|
'@digigov/form/validators/utils/text_limit': lazyImport(_digigov_form_validators_utils_text_limit),
|
|
164
|
-
'@digigov/form/validators/utils/uuid4': lazyImport(_digigov_form_validators_utils_uuid4)
|
|
171
|
+
'@digigov/form/validators/utils/uuid4': lazyImport(_digigov_form_validators_utils_uuid4),
|
|
172
|
+
'@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemDisplay),
|
|
173
|
+
'@digigov/form/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay_ArrayItemHeader),
|
|
174
|
+
'@digigov/form/FieldArray/FormDialog/ArrayDisplay': lazyImport(_digigov_form_FieldArray_FormDialog_ArrayDisplay)
|
|
165
175
|
};
|
package/src/Field/ErrorGroup.tsx
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { createContext, useEffect, useState } from 'react';
|
|
2
|
-
import { ErrorOption } from 'react-hook-form';
|
|
3
|
-
import { FieldLabelProps } from '@digigov/form/Field/types';
|
|
2
|
+
import type { ErrorOption } from 'react-hook-form';
|
|
3
|
+
import type { FieldLabelProps } from '@digigov/form/Field/types';
|
|
4
4
|
import { List, ListItem } from '@digigov/ui/content/List';
|
|
5
5
|
import { ErrorSummary } from '@digigov/ui/feedback/ErrorSummary';
|
|
6
6
|
import { useTranslation } from '@digigov/ui/i18n';
|
|
7
7
|
import { Link } from '@digigov/ui/navigation/Link';
|
|
8
8
|
import { Heading } from '@digigov/ui/typography/Heading';
|
|
9
9
|
import { Base } from '@digigov/ui/utils/Base';
|
|
10
|
-
import { Breakpoints } from '@digigov/ui/utils/hooks/useScreen';
|
|
10
|
+
import type { Breakpoints } from '@digigov/ui/utils/hooks/useScreen';
|
|
11
11
|
interface ErrorGroupContextType {
|
|
12
12
|
setError: (
|
|
13
13
|
name?: string,
|
package/src/Field/FieldBase.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import React, { useContext, useEffect } from 'react';
|
|
|
2
2
|
import { Controller } from 'react-hook-form';
|
|
3
3
|
import { ErrorGroupContext } from '@digigov/form/Field/ErrorGroup';
|
|
4
4
|
import FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';
|
|
5
|
-
import { FieldBaseProps } from '@digigov/form/Field/types';
|
|
5
|
+
import type { FieldBaseProps } from '@digigov/form/Field/types';
|
|
6
6
|
|
|
7
7
|
export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
8
8
|
required,
|
|
@@ -39,10 +39,12 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
39
39
|
<FieldBaseContainer
|
|
40
40
|
label={label}
|
|
41
41
|
layout={layout}
|
|
42
|
+
register={register}
|
|
42
43
|
error={errorGroupContext ? undefined : error}
|
|
43
44
|
hasError={!!error}
|
|
44
45
|
wrapper={wrapper}
|
|
45
46
|
name={name}
|
|
47
|
+
controlled={controlled}
|
|
46
48
|
>
|
|
47
49
|
<Controller
|
|
48
50
|
control={control}
|
|
@@ -52,8 +54,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
52
54
|
<Component
|
|
53
55
|
{...field}
|
|
54
56
|
control={control}
|
|
55
|
-
|
|
56
|
-
defaultValue={defaultValue}
|
|
57
|
+
defaultValue={defaultValue ?? field.value}
|
|
57
58
|
extra={extra}
|
|
58
59
|
error={!!error}
|
|
59
60
|
type={type}
|
|
@@ -74,6 +75,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
74
75
|
<FieldBaseContainer
|
|
75
76
|
label={label}
|
|
76
77
|
layout={layout}
|
|
78
|
+
register={register}
|
|
77
79
|
error={errorGroupContext ? undefined : error}
|
|
78
80
|
hasError={!!error}
|
|
79
81
|
wrapper={wrapper}
|
|
@@ -90,6 +92,7 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
90
92
|
aria-describedby={error && `${name}-error`}
|
|
91
93
|
required={required}
|
|
92
94
|
disabled={editable === false}
|
|
95
|
+
defaultValue={defaultValue}
|
|
93
96
|
{...componentProps}
|
|
94
97
|
/>
|
|
95
98
|
) : (
|
|
@@ -100,11 +103,11 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
100
103
|
error={!!error}
|
|
101
104
|
extra={extra}
|
|
102
105
|
type={type}
|
|
106
|
+
defaultValue={defaultValue}
|
|
103
107
|
aria-required={!!required}
|
|
104
108
|
aria-describedby={error && `${name}-error`}
|
|
105
109
|
required={required}
|
|
106
110
|
disabled={editable === false}
|
|
107
|
-
ref={undefined}
|
|
108
111
|
{...componentProps}
|
|
109
112
|
/>
|
|
110
113
|
)}
|
|
@@ -1,60 +1,81 @@
|
|
|
1
|
+
import type { ComponentRef } from 'react';
|
|
1
2
|
import React from 'react';
|
|
2
|
-
import { FieldContainerProps } from '@digigov/form/Field/types';
|
|
3
|
+
import type { FieldContainerProps } from '@digigov/form/Field/types';
|
|
3
4
|
import Label from '@digigov/form/inputs/Label';
|
|
4
5
|
import { ErrorMessage } from '@digigov/react-core/ErrorMessage';
|
|
5
6
|
import FieldContainer from '@digigov/react-core/FieldContainer';
|
|
6
|
-
import
|
|
7
|
+
import Fieldset from '@digigov/react-core/Fieldset';
|
|
7
8
|
import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
|
|
8
9
|
import LabelContainer from '@digigov/react-core/LabelContainer';
|
|
9
10
|
import { useTranslation } from '@digigov/ui/i18n';
|
|
10
11
|
import { Hint } from '@digigov/ui/typography/Hint';
|
|
11
12
|
|
|
12
|
-
export const FieldBaseContainer
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
13
|
+
export const FieldBaseContainer = React.forwardRef<
|
|
14
|
+
ComponentRef<typeof Fieldset>,
|
|
15
|
+
FieldContainerProps
|
|
16
|
+
>(
|
|
17
|
+
(
|
|
18
|
+
{
|
|
19
|
+
name,
|
|
20
|
+
wrapper,
|
|
21
|
+
label,
|
|
22
|
+
children,
|
|
23
|
+
error,
|
|
24
|
+
hasError,
|
|
25
|
+
layout,
|
|
26
|
+
controlled,
|
|
27
|
+
labelSize = 'sm',
|
|
28
|
+
},
|
|
29
|
+
ref
|
|
30
|
+
) => {
|
|
31
|
+
const { t } = useTranslation();
|
|
32
|
+
const errorMessage = error?.message.key
|
|
33
|
+
? error.message.key
|
|
34
|
+
: error?.message || '';
|
|
35
|
+
const errorContext = error?.message.context || {};
|
|
36
|
+
if (wrapper === 'fieldset') {
|
|
37
|
+
return (
|
|
38
|
+
<FieldContainer error={hasError} {...layout}>
|
|
39
|
+
<Fieldset
|
|
40
|
+
ref={ref}
|
|
41
|
+
className="outline-none"
|
|
42
|
+
{...(controlled && {
|
|
43
|
+
tabIndex: -1,
|
|
44
|
+
})}
|
|
45
|
+
>
|
|
46
|
+
<FieldsetLegend size={labelSize}>
|
|
47
|
+
{label && label.primary}
|
|
48
|
+
</FieldsetLegend>
|
|
49
|
+
{label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
|
|
50
|
+
{error && (
|
|
51
|
+
<ErrorMessage id={`${name}-error`}>
|
|
52
|
+
{t(errorMessage, errorContext)}
|
|
53
|
+
</ErrorMessage>
|
|
54
|
+
)}
|
|
55
|
+
{children}
|
|
56
|
+
{label && label.hint && <Hint size="sm">{label.hint}</Hint>}
|
|
57
|
+
</Fieldset>
|
|
58
|
+
</FieldContainer>
|
|
59
|
+
);
|
|
60
|
+
} else {
|
|
61
|
+
return (
|
|
62
|
+
<FieldContainer error={hasError} {...layout}>
|
|
63
|
+
<LabelContainer>
|
|
64
|
+
{label && <Label label={label} />}
|
|
65
|
+
{error && (
|
|
66
|
+
<ErrorMessage id={`${name}-error`}>
|
|
67
|
+
{t(errorMessage, errorContext)}
|
|
68
|
+
</ErrorMessage>
|
|
69
|
+
)}
|
|
70
|
+
{children}
|
|
71
|
+
{label && label.hint && <Hint size="sm">{label.hint}</Hint>}
|
|
72
|
+
</LabelContainer>
|
|
73
|
+
</FieldContainer>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
57
76
|
}
|
|
58
|
-
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
FieldBaseContainer.displayName = 'FieldBaseContainer';
|
|
59
80
|
|
|
60
81
|
export default FieldBaseContainer;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useWatch } from 'react-hook-form';
|
|
3
3
|
import { FieldBase } from '@digigov/form/Field/FieldBase';
|
|
4
|
-
import {
|
|
4
|
+
import type {
|
|
5
5
|
ChildFieldMemoProps,
|
|
6
6
|
FieldConditionalProps,
|
|
7
7
|
} from '@digigov/form/Field/types';
|
|
@@ -13,6 +13,7 @@ const ChildFieldMemo = React.memo(
|
|
|
13
13
|
field,
|
|
14
14
|
control,
|
|
15
15
|
reset,
|
|
16
|
+
resetField,
|
|
16
17
|
register,
|
|
17
18
|
error,
|
|
18
19
|
Field,
|
|
@@ -27,6 +28,7 @@ const ChildFieldMemo = React.memo(
|
|
|
27
28
|
Field={Field}
|
|
28
29
|
name={newField.key}
|
|
29
30
|
reset={reset}
|
|
31
|
+
resetField={resetField}
|
|
30
32
|
control={control}
|
|
31
33
|
register={register}
|
|
32
34
|
error={error}
|
|
@@ -54,6 +56,7 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
|
|
|
54
56
|
field,
|
|
55
57
|
register,
|
|
56
58
|
reset,
|
|
59
|
+
resetField,
|
|
57
60
|
error,
|
|
58
61
|
Field,
|
|
59
62
|
}) => {
|
|
@@ -76,6 +79,7 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
|
|
|
76
79
|
control={control}
|
|
77
80
|
register={register}
|
|
78
81
|
reset={reset}
|
|
82
|
+
resetField={resetField}
|
|
79
83
|
error={error}
|
|
80
84
|
Field={Field}
|
|
81
85
|
/>
|
package/src/Field/doc.mdx
CHANGED
|
@@ -3,4 +3,205 @@ title: Form
|
|
|
3
3
|
parent: docs/form/components
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# Field
|
|
7
|
+
|
|
8
|
+
Field allow users to create different types of inputs based on data that is described by a particular config schema.
|
|
9
|
+
|
|
10
|
+
```jsx
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
13
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
14
|
+
|
|
15
|
+
const fields = [
|
|
16
|
+
{
|
|
17
|
+
key: 'first_name',
|
|
18
|
+
type: 'string',
|
|
19
|
+
required: true,
|
|
20
|
+
label: {
|
|
21
|
+
primary: 'Ποιo είναι το όνομά σας;',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
export const MyComponent = () => (
|
|
27
|
+
<FormBuilder onSubmit={(data) => console.log(data)}>
|
|
28
|
+
{fields.map(({ key, ...field }) => {
|
|
29
|
+
return <Field {...field} name={key} key={key} />;
|
|
30
|
+
})}
|
|
31
|
+
<Button type="submit">Συνέχεια</Button>
|
|
32
|
+
</FormBuilder>
|
|
33
|
+
);
|
|
34
|
+
export default MyComponent;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Accessibility & Usability
|
|
38
|
+
|
|
39
|
+
Our goal is to create semantically correct and valid forms, which means
|
|
40
|
+
we must avoid mixing form-related HTML elements (like form, input, label) with generic
|
|
41
|
+
ones (such as div, cards, or custom components). For instance, if a paragraph element is
|
|
42
|
+
placed inside a form, React will display warnings in the console. Rather than building overly
|
|
43
|
+
complex interfaces that attempt to accomplish too much too quickly, Digigov Form encourages
|
|
44
|
+
using forms in their intended way—filling out and validating inputs, and then submitting the form
|
|
45
|
+
as a whole.
|
|
46
|
+
|
|
47
|
+
Additionally, we must ensure our interfaces are fully accessible to screen readers and other
|
|
48
|
+
assistive technologies. This is why we designed the flow to be as guided and recoverable as possible.
|
|
49
|
+
Forms and fields should be clear and logical, reading like well-written text for the users.
|
|
50
|
+
If validation fails, the system provides users with meaningful error messages and clear instructions on how to correct the errors.
|
|
51
|
+
Once validation is successful, the data can be submitted. It is crucial to provide helpful information to users at each step.
|
|
52
|
+
Therefore, we should avoid relying on flashy “magic” UX solutions that assume users have advanced digital skills,
|
|
53
|
+
as these are often intended for expert use cases.
|
|
54
|
+
|
|
55
|
+
## Introducing the Field component
|
|
56
|
+
|
|
57
|
+
Field is a component that creates `form` inputs dynamically based on a `data config` schema.
|
|
58
|
+
The config structure is a `key-value` pair of data that describes the input fields and its usage.
|
|
59
|
+
In order to create an input, we need to provide a specific type of input for each field,
|
|
60
|
+
and we can use the `type` property for this.
|
|
61
|
+
|
|
62
|
+
## Field types
|
|
63
|
+
|
|
64
|
+
The `type` property determines the type of input field to be rendered. Below are the available types and their descriptions.
|
|
65
|
+
|
|
66
|
+
| Type | Input Description |
|
|
67
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
68
|
+
| `int` | A whole number. |
|
|
69
|
+
| `string` | A text string (e.g., name, address). |
|
|
70
|
+
| `text` | A larger text input, suitable for paragraphs or multiline text. |
|
|
71
|
+
| `boolean` | A binary value, typically a checkbox or toggle (true/false). |
|
|
72
|
+
| `email` | An email address (e.g., example@example.com). |
|
|
73
|
+
| `uuid4` | A universally unique identifier (UUID) in version 4 format. |
|
|
74
|
+
| `choice:multiple` | A selection of multiple options from a list (e.g., checkboxes). |
|
|
75
|
+
| `choice:single` | A single selection from a list (e.g., radio buttons). |
|
|
76
|
+
| `mobile_phone` | A phone number, typically with country code (e.g., +1-234-567-890). |
|
|
77
|
+
| `date` | A date input, typically in the format YYYY-MM-DD. |
|
|
78
|
+
| `datetime` | A date and time input, typically in the format YYYY-MM-DD HH:MM:SS. |
|
|
79
|
+
| `otp` | A one-time password, typically a short numeric or alphanumeric string. |
|
|
80
|
+
| `afm` | A Greek Tax Identification Number (AFM). |
|
|
81
|
+
| `iban` | An International Bank Account Number (IBAN). |
|
|
82
|
+
| `file` | A file upload input (e.g., for documents, images). |
|
|
83
|
+
| `image` | A file input that specifically handles images. |
|
|
84
|
+
| `postal_code` | A postal code input (e.g., ZIP code, postcode). |
|
|
85
|
+
| `phone_number` | A phone number input (e.g., with or without country code). |
|
|
86
|
+
| `array` | A list of values, typically displayed as multiple inputs ([MultiplicityField](/components/@digigov/form/MultiplicityField.html)). |
|
|
87
|
+
| `object` | A structured data object, often used for more complex or nested forms. |
|
|
88
|
+
|
|
89
|
+
## Field properties
|
|
90
|
+
|
|
91
|
+
The Field component accepts several properties, that describes the input fields and its usage.
|
|
92
|
+
|
|
93
|
+
| Property | Type | Description |
|
|
94
|
+
| -------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
|
95
|
+
| `key` | `string` | The name of the field (TODO: rename to `name`). |
|
|
96
|
+
| `type` | Describes the format of each field, e.g., `type: 'string'` is a simple input format field | The type of input field. Defines the kind of value it accepts. |
|
|
97
|
+
| `trim` | `boolean` | If `true`, trims the input value. |
|
|
98
|
+
| `component` | `any` | A custom React component for the input field. |
|
|
99
|
+
| `autoComplete` | `string` | The `autocomplete` attribute value for the input field (e.g., 'on', 'off'). |
|
|
100
|
+
| `maxLength` | `number` | The maximum number of characters the input can accept. |
|
|
101
|
+
| `condition` | `Record<string, FieldCondition>` | Conditions for when the field should be shown, enabled, or validated. |
|
|
102
|
+
| `controlled` | `boolean` | If `true`, the input value is controlled by React state. |
|
|
103
|
+
| `label` | `FieldLabelProps` | The label associated with the input field. |
|
|
104
|
+
| `extra` | `Record<string, any>` | Extra custom attributes or settings for the field. |
|
|
105
|
+
| `editable` | `boolean` | If `false`, the field cannot be edited. |
|
|
106
|
+
| `variant` | `'inline' \| 'dialog'` | Defines the display variant of the field (e.g., inline or in a dialog). |
|
|
107
|
+
| `required` | `boolean` | If `true`, the field is required to be filled. |
|
|
108
|
+
| `enabled` | `boolean` | If `false`, the field is disabled and cannot be interacted with. |
|
|
109
|
+
| `disabled` | `boolean` | If `true`, the field is disabled. |
|
|
110
|
+
| `layout` | `Record<string, GridProps['xs' \| 'sm' \| 'md' \| 'lg' \| 'xl']>` | Defines the layout settings for the field (grid system). |
|
|
111
|
+
| `validators` | `ValidatorSchema[]` | Array of validators to be applied to the input field. |
|
|
112
|
+
| `wrapper` | `'label' \| 'fieldset'` | Defines the wrapping element for the field (label or fieldset). |
|
|
113
|
+
| `maxWidth` | `string` | The maximum width of the field. |
|
|
114
|
+
| `maxHeight` | `string` | The maximum height of the field. |
|
|
115
|
+
| `width` | `string` | The width of the field. |
|
|
116
|
+
|
|
117
|
+
### How to use it
|
|
118
|
+
|
|
119
|
+
The `Field` component is a fundamental building block of the `form`.
|
|
120
|
+
We can implement a `Field` by using the `data config` or we can fill the `Field` directly with its properties.
|
|
121
|
+
|
|
122
|
+
First, we need to import the `FormBuilder` component from the `@digigov/form` path.
|
|
123
|
+
|
|
124
|
+
```jsx pure
|
|
125
|
+
import React from 'react';
|
|
126
|
+
import FormBuilder from '@digigov/form';
|
|
127
|
+
import Button from '@digigov/ui/form/Button';
|
|
128
|
+
|
|
129
|
+
export default function MyFieldComponent() {
|
|
130
|
+
return (
|
|
131
|
+
<FormBuilder>
|
|
132
|
+
{/* this is where all fields will eventually be rendered */}
|
|
133
|
+
<Button type="submit">Συνέχεια</Button>
|
|
134
|
+
</FormBuilder>
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### Data config
|
|
140
|
+
|
|
141
|
+
The `data config` is an array of objects that contains the configuration for each field.
|
|
142
|
+
|
|
143
|
+
```jsx pure
|
|
144
|
+
const fields = [
|
|
145
|
+
{
|
|
146
|
+
key: 'first_name',
|
|
147
|
+
type: 'string',
|
|
148
|
+
required: true,
|
|
149
|
+
label: {
|
|
150
|
+
primary: 'Ποιo είναι το όνομά σας;',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
];
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Then we can use the `fields` array to render the Field(s).
|
|
157
|
+
|
|
158
|
+
```jsx pure
|
|
159
|
+
import React from 'react';
|
|
160
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
161
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
162
|
+
|
|
163
|
+
const fields = [
|
|
164
|
+
{
|
|
165
|
+
key: 'first_name',
|
|
166
|
+
type: 'string',
|
|
167
|
+
required: true,
|
|
168
|
+
label: {
|
|
169
|
+
primary: 'Ποιo είναι το όνομά σας;',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
];
|
|
173
|
+
|
|
174
|
+
export const MyComponent = () => (
|
|
175
|
+
<FormBuilder onSubmit={(data) => console.log(data)}>
|
|
176
|
+
{fields.map(({ key, ...field }) => {
|
|
177
|
+
return <Field {...field} name={key} key={key} />;
|
|
178
|
+
})}
|
|
179
|
+
<Button type="submit">Συνέχεια</Button>
|
|
180
|
+
</FormBuilder>
|
|
181
|
+
);
|
|
182
|
+
export default MyComponent;
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### Directly
|
|
186
|
+
|
|
187
|
+
We can also use the `Field` component directly and pass the properties to it.
|
|
188
|
+
|
|
189
|
+
```jsx pure
|
|
190
|
+
import React from 'react';
|
|
191
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
192
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
193
|
+
|
|
194
|
+
export const MyComponent = () => (
|
|
195
|
+
<FormBuilder onSubmit={(data) => console.log(data)}>
|
|
196
|
+
<Field
|
|
197
|
+
key="first_name"
|
|
198
|
+
name="first_name"
|
|
199
|
+
label={{ primary: 'Οχήματα' }}
|
|
200
|
+
type="sting"
|
|
201
|
+
required
|
|
202
|
+
/>
|
|
203
|
+
<Button type="submit">Συνέχεια</Button>
|
|
204
|
+
</FormBuilder>
|
|
205
|
+
);
|
|
206
|
+
export default MyComponent;
|
|
207
|
+
```
|