@digigov/form 2.0.0-555d1027 → 2.0.0-5e7a6790
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 +0 -1
- package/Field/FieldBase.d.ts +1 -1
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +36 -34
- package/Field/FieldBaseContainer.d.ts +2 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional.d.ts +1 -1
- package/Field/FieldConditional.js.map +1 -1
- package/Field/index.d.ts +1 -1
- package/Field/index.js +15 -25
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +11 -10
- 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 +4 -2
- package/Field/utils/useField.d.ts +1 -1
- package/Field/utils/useField.js.map +2 -2
- package/FieldArray/BaseFieldArray/index.js +76 -0
- package/{inputs/inputsScenarios → FieldArray/BaseFieldArray}/package.json +1 -1
- 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/FieldArray/FormDialog/ArrayDisplay/package.json +6 -0
- 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 +139 -348
- package/FieldArray/FormDialog/index.js.map +7 -0
- package/FieldArray/index.d.ts +4 -2
- package/FieldArray/index.js +28 -54
- package/FieldArray/index.js.map +2 -2
- package/FieldObject/index.d.ts +4 -4
- package/FieldObject/index.js +5 -12
- 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/index.d.ts +1 -1
- package/FormBuilder/index.js +155 -130
- package/FormBuilder/index.js.map +2 -2
- package/FormContext.d.ts +2 -2
- package/FormContext.js.map +2 -2
- package/MultiplicityField/add-objects/index.js +10 -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.map +2 -2
- package/MultiplicityField/types.d.ts +2 -2
- package/Questions/Questions.d.ts +1 -1
- package/Questions/Questions.js.map +1 -1
- 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/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 +0 -1
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +36 -34
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/FieldConditional.js.map +1 -1
- package/cjs/Field/index.js +15 -22
- 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 +4 -2
- 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 +130 -331
- package/cjs/FieldArray/FormDialog/index.js.map +7 -0
- package/cjs/FieldArray/index.js +27 -53
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FieldObject/index.js +5 -9
- 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 +156 -131
- package/cjs/FormBuilder/index.js.map +3 -3
- package/cjs/FormContext.js.map +2 -2
- package/cjs/MultiplicityField/add-objects/index.js +9 -13
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- 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 +10 -5
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +10 -5
- package/cjs/inputs/DateTimeInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/index.js.map +1 -1
- package/cjs/inputs/Input/index.js +54 -56
- 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.map +1 -1
- package/cjs/{Field/utils → inputs/registry}/index.js +4 -4
- package/cjs/inputs/registry.js.map +7 -0
- package/cjs/{lazy/index.js → lazy.js} +10 -9
- package/cjs/lazy.js.map +2 -2
- package/cjs/{registry/index.js → registry.js} +23 -13
- package/cjs/registry.js.map +2 -2
- package/cjs/types.js.map +1 -1
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/types.js.map +1 -1
- package/cjs/validators/utils/date/index.js +6 -1
- package/cjs/validators/utils/date.js.map +2 -2
- package/cjs/validators/utils/datetime/index.js +6 -1
- package/cjs/validators/utils/datetime.js.map +2 -2
- package/cjs/validators/utils/file.js.map +1 -1
- package/cjs/validators/utils/iban.js.map +1 -1
- package/cjs/validators/utils/image.js.map +1 -1
- package/cjs/validators/utils/index.js.map +1 -1
- 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/index.d.ts +3 -3
- package/inputs/AutoCompleteInput/index.js +1 -3
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- 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/index.d.ts +2 -5
- package/inputs/DateInput/index.js +10 -5
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/index.d.ts +2 -5
- package/inputs/DateTimeInput/index.js +10 -5
- package/inputs/DateTimeInput/index.js.map +2 -2
- package/inputs/FileInput/index.d.ts +4 -4
- package/inputs/FileInput/index.js +1 -4
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/index.d.ts +2 -2
- package/inputs/ImageInput/index.js.map +1 -1
- package/inputs/Input/index.d.ts +2 -2
- package/inputs/Input/index.js +54 -56
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Label/index.d.ts +1 -1
- package/inputs/Label/index.js.map +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/index.d.ts +4 -4
- package/inputs/Radio/index.js +5 -4
- package/inputs/Radio/index.js.map +3 -3
- package/inputs/Select/index.d.ts +2 -2
- package/inputs/Select/index.js.map +1 -1
- package/{Field/utils → inputs/registry}/index.js +1 -1
- 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 +10 -9
- package/package.json +4 -4
- package/registry/index.js +23 -13
- package/src/Field/ErrorGroup.tsx +3 -3
- package/src/Field/FieldBase.tsx +1 -2
- package/src/Field/FieldBaseContainer.tsx +68 -58
- package/src/Field/FieldConditional.tsx +1 -1
- package/src/Field/index.tsx +15 -33
- package/src/Field/types.tsx +11 -12
- package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
- package/src/Field/utils/resolveField.ts +58 -0
- package/src/Field/utils/useField.ts +3 -1
- 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 +247 -0
- 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.tsx +34 -61
- package/src/FieldObject/index.tsx +9 -17
- package/src/Fieldset/FieldsetWithContext.tsx +1 -1
- package/src/Fieldset/index.tsx +1 -1
- package/src/Fieldset/types.tsx +2 -2
- package/src/FormBuilder/index.tsx +188 -142
- package/src/FormBuilder/scenarios.test.tsx +759 -1
- package/src/FormContext.tsx +3 -2
- package/src/MultiplicityField/add-objects.tsx +12 -21
- package/src/MultiplicityField/index.tsx +3 -2
- package/src/MultiplicityField/types.ts +5 -2
- 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/getNextStep.tsx +1 -1
- package/src/Questions/types.tsx +1 -1
- 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/index.tsx +4 -6
- package/src/inputs/Checkboxes/index.tsx +95 -87
- package/src/inputs/DateInput/index.tsx +19 -6
- package/src/inputs/DateTimeInput/index.tsx +19 -6
- package/src/inputs/FileInput/index.tsx +9 -7
- package/src/inputs/ImageInput/index.tsx +2 -2
- package/src/inputs/Input/index.tsx +72 -71
- package/src/inputs/Label/index.tsx +1 -1
- package/src/inputs/OtpInput/index.tsx +43 -34
- package/src/inputs/Radio/index.tsx +29 -21
- package/src/inputs/Select/index.tsx +2 -2
- package/src/{Field/utils/index.ts → inputs/registry.ts} +3 -1
- package/src/lazy.js +10 -9
- package/src/registry.js +23 -13
- package/src/types.tsx +12 -5
- package/src/utils.ts +3 -2
- package/src/validators/index.ts +10 -9
- package/src/validators/types.ts +1 -1
- package/src/validators/utils/date.ts +8 -3
- package/src/validators/utils/datetime.ts +8 -3
- package/src/validators/utils/file.ts +2 -2
- package/src/validators/utils/iban.ts +2 -2
- package/src/validators/utils/image.ts +2 -2
- package/src/validators/utils/index.ts +2 -2
- 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 +8 -4
- package/types.js.map +1 -1
- package/utils.d.ts +1 -1
- package/utils.js.map +2 -2
- package/validators/index.d.ts +5 -5
- package/validators/index.js.map +2 -2
- package/validators/types.d.ts +1 -1
- package/validators/utils/date/index.js +6 -1
- package/validators/utils/date.d.ts +2 -2
- package/validators/utils/date.js.map +2 -2
- package/validators/utils/datetime/index.js +6 -1
- package/validators/utils/datetime.d.ts +2 -2
- package/validators/utils/datetime.js.map +2 -2
- package/validators/utils/file.d.ts +2 -2
- package/validators/utils/file.js.map +1 -1
- 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 +2 -2
- package/validators/utils/index.js.map +1 -1
- 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 -67
- 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/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/index.test.d.ts +0 -1
- package/inputs/Input/index.test.d.ts +0 -1
- 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 -568
- 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,7 +10,7 @@ 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
|
|
13
|
+
import * as _digigov_form_FieldArray_BaseFieldArray from "@digigov/form/FieldArray/BaseFieldArray";
|
|
14
14
|
import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
|
|
15
15
|
import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
|
|
16
16
|
import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
|
|
@@ -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";
|
|
@@ -45,8 +47,8 @@ import * as _digigov_form_Questions_Step_StepTitle from "@digigov/form/Questions
|
|
|
45
47
|
import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Questions/Step/getAddMoreFields";
|
|
46
48
|
import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
|
|
47
49
|
import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
|
|
48
|
-
import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
|
|
49
50
|
import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
|
|
51
|
+
import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
|
|
50
52
|
import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
|
|
51
53
|
import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
|
|
52
54
|
import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
|
|
@@ -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,7 +106,7 @@ 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/FieldArray/
|
|
109
|
+
'@digigov/form/FieldArray/BaseFieldArray': lazyImport(_digigov_form_FieldArray_BaseFieldArray),
|
|
105
110
|
'@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
|
|
106
111
|
'@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
|
|
107
112
|
'@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
|
|
@@ -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),
|
|
@@ -136,8 +143,8 @@ export default {
|
|
|
136
143
|
'@digigov/form/Questions/Step/getAddMoreFields': lazyImport(_digigov_form_Questions_Step_getAddMoreFields),
|
|
137
144
|
'@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
|
|
138
145
|
'@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
|
|
139
|
-
'@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
|
|
140
146
|
'@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
|
|
147
|
+
'@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
|
|
141
148
|
'@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
|
|
142
149
|
'@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
|
|
143
150
|
'@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
|
|
@@ -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,
|
|
@@ -54,7 +54,6 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
|
|
|
54
54
|
<Component
|
|
55
55
|
{...field}
|
|
56
56
|
control={control}
|
|
57
|
-
ref={undefined}
|
|
58
57
|
defaultValue={defaultValue ?? field.value}
|
|
59
58
|
extra={extra}
|
|
60
59
|
error={!!error}
|
|
@@ -1,5 +1,6 @@
|
|
|
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';
|
|
@@ -9,63 +10,72 @@ 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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
+
}
|
|
68
76
|
}
|
|
69
|
-
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
FieldBaseContainer.displayName = 'FieldBaseContainer';
|
|
70
80
|
|
|
71
81
|
export default FieldBaseContainer;
|
package/src/Field/index.tsx
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { FieldBase } from '@digigov/form/Field/FieldBase';
|
|
3
3
|
import FieldConditional from '@digigov/form/Field/FieldConditional';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
CalculatedField,
|
|
7
|
-
FieldProps,
|
|
8
|
-
} from '@digigov/form/Field/types';
|
|
9
|
-
import {
|
|
10
|
-
FIELD_COMPONENTS,
|
|
11
|
-
ALTERNATIVE_COMPONENTS,
|
|
12
|
-
} from '@digigov/form/Field/utils';
|
|
13
|
-
import { calculateField } from '@digigov/form/Field/utils/calculateField';
|
|
4
|
+
import type { FieldWithCondition, FieldProps } from '@digigov/form/Field/types';
|
|
5
|
+
import { resolveField } from '@digigov/form/Field/utils/resolveField';
|
|
14
6
|
import { useField } from '@digigov/form/Field/utils/useField';
|
|
15
7
|
import FieldArray from '@digigov/form/FieldArray';
|
|
16
8
|
import Multiplicity from '@digigov/form/MultiplicityField';
|
|
@@ -33,35 +25,27 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
33
25
|
unregister,
|
|
34
26
|
trigger,
|
|
35
27
|
clearErrors,
|
|
28
|
+
registerFieldFocus,
|
|
36
29
|
} = useField(name, customField?.type ? customField : null);
|
|
37
|
-
const
|
|
38
|
-
() =>
|
|
39
|
-
calculateField(
|
|
40
|
-
children,
|
|
41
|
-
field,
|
|
42
|
-
{
|
|
43
|
-
...FIELD_COMPONENTS,
|
|
44
|
-
...componentRegistry,
|
|
45
|
-
},
|
|
46
|
-
ALTERNATIVE_COMPONENTS
|
|
47
|
-
),
|
|
30
|
+
const resolvedField = useMemo(
|
|
31
|
+
() => resolveField(children, field, componentRegistry),
|
|
48
32
|
[field]
|
|
49
33
|
);
|
|
50
|
-
if (
|
|
34
|
+
if (resolvedField.condition) {
|
|
51
35
|
return (
|
|
52
36
|
<FieldConditional
|
|
53
37
|
control={control}
|
|
54
38
|
reset={reset}
|
|
55
39
|
resetField={resetField}
|
|
56
40
|
register={register}
|
|
57
|
-
field={
|
|
41
|
+
field={resolvedField as FieldWithCondition}
|
|
58
42
|
error={error}
|
|
59
43
|
Field={Field}
|
|
60
44
|
/>
|
|
61
45
|
);
|
|
62
46
|
}
|
|
63
|
-
if (
|
|
64
|
-
|
|
47
|
+
if (resolvedField.type === 'array' && !resolvedField.multiplicity) {
|
|
48
|
+
resolvedField.name = name;
|
|
65
49
|
return (
|
|
66
50
|
<FieldArray
|
|
67
51
|
control={control}
|
|
@@ -77,15 +61,13 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
77
61
|
Field={Field}
|
|
78
62
|
reset={reset}
|
|
79
63
|
resetField={resetField}
|
|
80
|
-
{
|
|
64
|
+
registerFieldFocus={registerFieldFocus}
|
|
65
|
+
{...resolvedField}
|
|
81
66
|
/>
|
|
82
67
|
);
|
|
83
68
|
}
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
calculatedField.multiplicity === true
|
|
87
|
-
) {
|
|
88
|
-
calculatedField.name = name;
|
|
69
|
+
if (resolvedField.type === 'array' && resolvedField.multiplicity === true) {
|
|
70
|
+
resolvedField.name = name;
|
|
89
71
|
return (
|
|
90
72
|
<Multiplicity
|
|
91
73
|
control={control}
|
|
@@ -99,7 +81,7 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
99
81
|
unregister={unregister}
|
|
100
82
|
resetField={resetField}
|
|
101
83
|
Field={Field}
|
|
102
|
-
{...
|
|
84
|
+
{...resolvedField}
|
|
103
85
|
/>
|
|
104
86
|
);
|
|
105
87
|
}
|
|
@@ -110,7 +92,7 @@ export const Field: React.FC<FieldProps> = ({
|
|
|
110
92
|
const customError = error ? error : formState?.errors[name];
|
|
111
93
|
return (
|
|
112
94
|
<FieldBase
|
|
113
|
-
{...
|
|
95
|
+
{...resolvedField}
|
|
114
96
|
editable={editable}
|
|
115
97
|
name={name}
|
|
116
98
|
control={control}
|
package/src/Field/types.tsx
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
|
|
3
|
+
import type { FieldComponentRegistry } from '@digigov/form/inputs/registry';
|
|
4
|
+
import type { registerFieldFocus } from '@digigov/form/types';
|
|
5
|
+
import type { ValidatorSchema } from '@digigov/form/validators/types';
|
|
6
|
+
import type { FieldsetLegendProps } from '@digigov/ui/form/FieldContainer';
|
|
7
|
+
import type { GridProps } from '@digigov/ui/layouts/Grid';
|
|
6
8
|
|
|
7
9
|
export interface FieldLabelProps {
|
|
8
10
|
primary?: string;
|
|
@@ -73,7 +75,7 @@ export interface ChildFieldMemoProps extends FieldConditionalProps {
|
|
|
73
75
|
}
|
|
74
76
|
export type FormData = UseFormProps['defaultValues'];
|
|
75
77
|
|
|
76
|
-
export interface FieldWithCondition extends Omit<
|
|
78
|
+
export interface FieldWithCondition extends Omit<ResolvedField, 'condition'> {
|
|
77
79
|
condition: Record<string, FieldCondition>;
|
|
78
80
|
}
|
|
79
81
|
|
|
@@ -107,10 +109,6 @@ export interface FieldContainerProps {
|
|
|
107
109
|
labelSize?: FieldsetLegendProps['size'];
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
export type FieldComponentRegistry = Record<string, FieldComponentItem>;
|
|
111
|
-
|
|
112
|
-
export type OmittedFieldSpec = Omit<FieldSpec, 'component'>;
|
|
113
|
-
|
|
114
112
|
export type UnknownValue = never | never[];
|
|
115
113
|
|
|
116
114
|
export interface ControlledFieldProps {
|
|
@@ -137,7 +135,7 @@ export interface UncontrolledFieldProps {
|
|
|
137
135
|
Field: React.FC<FieldProps>;
|
|
138
136
|
}
|
|
139
137
|
|
|
140
|
-
export interface
|
|
138
|
+
export interface ResolvedField extends Omit<FieldSpec, 'component'> {
|
|
141
139
|
name: string;
|
|
142
140
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
141
|
component: any;
|
|
@@ -147,7 +145,7 @@ export interface CalculatedField extends OmittedFieldSpec {
|
|
|
147
145
|
multiplicity?: boolean;
|
|
148
146
|
}
|
|
149
147
|
|
|
150
|
-
export interface FieldBaseProps extends
|
|
148
|
+
export interface FieldBaseProps extends ResolvedField {
|
|
151
149
|
control: UseFormReturn['control'];
|
|
152
150
|
register: UseFormReturn['register'];
|
|
153
151
|
reset: UseFormReturn['reset'];
|
|
@@ -175,5 +173,6 @@ export interface UseFieldProps {
|
|
|
175
173
|
trigger: UseFormReturn['trigger'];
|
|
176
174
|
clearErrors: UseFormReturn['clearErrors'];
|
|
177
175
|
error?: ErrorOption;
|
|
176
|
+
registerFieldFocus: registerFieldFocus;
|
|
178
177
|
componentRegistry?: FieldComponentRegistry;
|
|
179
178
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
|
+
FieldWithCondition,
|
|
3
|
+
ResolvedField,
|
|
4
|
+
} from '@digigov/form/Field/types';
|
|
2
5
|
|
|
3
6
|
export function evaluateFieldWithConditions(
|
|
4
7
|
field: FieldWithCondition,
|
|
5
8
|
variables: FormData
|
|
6
|
-
):
|
|
9
|
+
): ResolvedField {
|
|
7
10
|
const newField = { ...field };
|
|
8
11
|
if (variables) {
|
|
9
12
|
for (const key in variables) {
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FieldProps,
|
|
3
|
+
FieldSpec,
|
|
4
|
+
ResolvedField,
|
|
5
|
+
} from '@digigov/form/Field/types';
|
|
6
|
+
import {
|
|
7
|
+
ALTERNATIVE_COMPONENTS,
|
|
8
|
+
FIELD_COMPONENTS,
|
|
9
|
+
type FieldComponentRegistry,
|
|
10
|
+
} from '@digigov/form/inputs/registry';
|
|
11
|
+
|
|
12
|
+
export function resolveField(
|
|
13
|
+
children: FieldProps['children'],
|
|
14
|
+
field: FieldSpec,
|
|
15
|
+
customComponentRegistry?: FieldComponentRegistry
|
|
16
|
+
): ResolvedField {
|
|
17
|
+
const fieldComponentRegistry = {
|
|
18
|
+
...FIELD_COMPONENTS,
|
|
19
|
+
...(customComponentRegistry ?? {}),
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const resolvedField = { ...field };
|
|
23
|
+
|
|
24
|
+
if (children) {
|
|
25
|
+
resolvedField.component = children;
|
|
26
|
+
resolvedField.controlled = true;
|
|
27
|
+
} else if (typeof field.component === 'function') {
|
|
28
|
+
// leave as is
|
|
29
|
+
} else if (!field.component && !field.type) {
|
|
30
|
+
resolvedField.component = fieldComponentRegistry.string.component;
|
|
31
|
+
resolvedField.controlled =
|
|
32
|
+
fieldComponentRegistry.string?.controlled || false;
|
|
33
|
+
} else if (
|
|
34
|
+
typeof field?.extra?.component === 'string' &&
|
|
35
|
+
ALTERNATIVE_COMPONENTS[field.extra.component]
|
|
36
|
+
) {
|
|
37
|
+
resolvedField.controlled =
|
|
38
|
+
ALTERNATIVE_COMPONENTS[field.extra.component]?.controlled || false;
|
|
39
|
+
resolvedField.component =
|
|
40
|
+
ALTERNATIVE_COMPONENTS[field.extra.component].component;
|
|
41
|
+
resolvedField.wrapper =
|
|
42
|
+
ALTERNATIVE_COMPONENTS[field.extra.component].wrapper;
|
|
43
|
+
} else if (
|
|
44
|
+
!field.component &&
|
|
45
|
+
field.type &&
|
|
46
|
+
fieldComponentRegistry[field.type]
|
|
47
|
+
) {
|
|
48
|
+
resolvedField.component = fieldComponentRegistry[field.type].component;
|
|
49
|
+
resolvedField.wrapper = fieldComponentRegistry[field.type].wrapper;
|
|
50
|
+
resolvedField.controlled =
|
|
51
|
+
fieldComponentRegistry[field.type]?.controlled || false;
|
|
52
|
+
} else {
|
|
53
|
+
resolvedField.component = fieldComponentRegistry.string.component;
|
|
54
|
+
resolvedField.controlled =
|
|
55
|
+
fieldComponentRegistry.string?.controlled || false;
|
|
56
|
+
}
|
|
57
|
+
return resolvedField as ResolvedField;
|
|
58
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useContext, useMemo } from 'react';
|
|
2
|
-
import { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
|
|
2
|
+
import type { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
|
|
3
3
|
import { FormContext } from '@digigov/form/FormContext';
|
|
4
4
|
|
|
5
5
|
export const useField = (
|
|
@@ -23,6 +23,7 @@ export const useField = (
|
|
|
23
23
|
getValues,
|
|
24
24
|
unregister,
|
|
25
25
|
formState,
|
|
26
|
+
registerFieldFocus,
|
|
26
27
|
} = useContext(FormContext);
|
|
27
28
|
if (!registerField) {
|
|
28
29
|
throw new Error(`
|
|
@@ -62,5 +63,6 @@ export const useField = (
|
|
|
62
63
|
unregister,
|
|
63
64
|
formState,
|
|
64
65
|
error,
|
|
66
|
+
registerFieldFocus,
|
|
65
67
|
};
|
|
66
68
|
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useFieldArray } from 'react-hook-form';
|
|
3
|
+
import type { FieldArrayProps } from '@digigov/form/FieldArray';
|
|
4
|
+
import { FieldObject } from '@digigov/form/FieldObject';
|
|
5
|
+
import { FieldsetLabel, Fieldset } from '@digigov/form/Fieldset';
|
|
6
|
+
import { Card } from '@digigov/ui/content/Card';
|
|
7
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
8
|
+
|
|
9
|
+
type BaseFieldArrayProps = Omit<
|
|
10
|
+
FieldArrayProps,
|
|
11
|
+
| 'registerFieldFocus'
|
|
12
|
+
| 'trigger'
|
|
13
|
+
| 'clearErrors'
|
|
14
|
+
| 'setValue'
|
|
15
|
+
| 'reset'
|
|
16
|
+
| 'resetField'
|
|
17
|
+
>;
|
|
18
|
+
export const BaseFieldArray = React.forwardRef<
|
|
19
|
+
HTMLButtonElement,
|
|
20
|
+
BaseFieldArrayProps
|
|
21
|
+
>(
|
|
22
|
+
(
|
|
23
|
+
{
|
|
24
|
+
name,
|
|
25
|
+
register,
|
|
26
|
+
control,
|
|
27
|
+
formState,
|
|
28
|
+
error,
|
|
29
|
+
getValues,
|
|
30
|
+
Field,
|
|
31
|
+
...customField
|
|
32
|
+
},
|
|
33
|
+
ref
|
|
34
|
+
) => {
|
|
35
|
+
const { append, remove } = useFieldArray({
|
|
36
|
+
control,
|
|
37
|
+
name,
|
|
38
|
+
});
|
|
39
|
+
const fields = getValues(name) || [];
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<>
|
|
43
|
+
{fields.map((field, index) => (
|
|
44
|
+
<Card
|
|
45
|
+
variant={customField.extra?.border ? 'border' : 'divider'}
|
|
46
|
+
key={field.id || index}
|
|
47
|
+
>
|
|
48
|
+
<Fieldset>
|
|
49
|
+
<FieldsetLabel>
|
|
50
|
+
{`${customField.extra?.label.object.title}${!customField.extra?.noIndex ? ' ' + String(index + 1) : ''}`}
|
|
51
|
+
</FieldsetLabel>
|
|
52
|
+
<FieldObject
|
|
53
|
+
name={`${name}.${index}`}
|
|
54
|
+
error={Array.isArray(error) && error[index]}
|
|
55
|
+
formState={formState}
|
|
56
|
+
register={register}
|
|
57
|
+
control={control}
|
|
58
|
+
{...customField.extra?.of}
|
|
59
|
+
Field={Field}
|
|
60
|
+
/>
|
|
61
|
+
<Button
|
|
62
|
+
name={`${name}-object-remove`}
|
|
63
|
+
variant={customField.extra?.label.object?.deleteButtonVariant}
|
|
64
|
+
type="button"
|
|
65
|
+
color="warning"
|
|
66
|
+
onClick={() => remove(index)}
|
|
67
|
+
disabled={!customField?.editable}
|
|
68
|
+
>
|
|
69
|
+
{customField.extra?.label.object?.delete}
|
|
70
|
+
</Button>
|
|
71
|
+
</Fieldset>
|
|
72
|
+
</Card>
|
|
73
|
+
))}
|
|
74
|
+
{customField.editable && (
|
|
75
|
+
<Button
|
|
76
|
+
ref={ref}
|
|
77
|
+
type="button"
|
|
78
|
+
name={`${name}-add-object`}
|
|
79
|
+
color="secondary"
|
|
80
|
+
variant={customField.extra?.label.object?.addButtonVariant}
|
|
81
|
+
onClick={(ev) => {
|
|
82
|
+
ev.preventDefault();
|
|
83
|
+
append({});
|
|
84
|
+
}}
|
|
85
|
+
disabled={!customField?.editable}
|
|
86
|
+
>
|
|
87
|
+
{customField.extra?.label.object?.add}
|
|
88
|
+
</Button>
|
|
89
|
+
)}
|
|
90
|
+
</>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
BaseFieldArray.displayName = 'BaseFieldArray';
|
|
96
|
+
|
|
97
|
+
export default BaseFieldArray;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ArrayDisplay from '@digigov/form/FieldArray/FormDialog/ArrayDisplay';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Digigov Form/FieldArray/FormDialog/ArrayDisplay',
|
|
5
|
+
component: ArrayDisplay,
|
|
6
|
+
displayName: 'ArrayDisplay',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export { Default } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/Default';
|
|
10
|
+
export { Sortable } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable';
|
|
11
|
+
export { ReadOnly } from '@digigov/form/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly';
|