@digigov/form 2.0.0-298cfc51 → 2.0.0-2a26e869
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Field/ErrorGroup/index.js +48 -0
- package/{Form.stories → Field/ErrorGroup}/package.json +1 -1
- package/Field/ErrorGroup.d.ts +15 -0
- package/Field/ErrorGroup.js.map +7 -0
- package/Field/FieldBase/index.js +30 -22
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +3 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional.js.map +1 -1
- package/Field/types.d.ts +7 -7
- package/FieldArray/index.js +2 -2
- package/FieldArray/index.js.map +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
- package/FormBuilder/index.js +83 -4
- package/FormBuilder/index.js.map +2 -2
- package/FormBuilder/interaction.test.d.ts +1 -0
- package/FormContext.js.map +2 -2
- package/MultiplicityField/add-objects/index.js +4 -2
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +1 -0
- package/MultiplicityField/index.js.map +2 -2
- package/MultiplicityField/types.d.ts +1 -2
- package/Questions/Questions/index.js +5 -4
- package/Questions/Questions.js.map +2 -2
- package/Questions/Step/StepArrayReview.js.map +2 -2
- package/cjs/Field/ErrorGroup/index.js +82 -0
- package/cjs/Field/ErrorGroup.js.map +7 -0
- package/cjs/Field/FieldBase/index.js +29 -21
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +3 -2
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/FieldConditional.js.map +1 -1
- package/cjs/Field/types.js.map +1 -1
- package/cjs/FieldArray/index.js +2 -2
- package/cjs/FieldArray/index.js.map +3 -3
- package/cjs/FormBuilder/index.js +83 -4
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/FormContext/index.js +2 -2
- package/cjs/FormContext.js.map +3 -3
- package/cjs/MultiplicityField/add-objects/index.js +4 -2
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +1 -0
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/MultiplicityField/types.js.map +1 -1
- package/cjs/Questions/Questions/index.js +5 -4
- package/cjs/Questions/Questions.js.map +2 -2
- package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
- package/cjs/inputs/AutoCompleteInput/index.js +2 -2
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js.map +1 -1
- package/cjs/inputs/DateInput/index.js +4 -4
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/FileInput/index.js +1 -1
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/index.js +1 -1
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +2 -1
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
- package/cjs/inputs/Label/index.js.map +2 -2
- package/cjs/inputs/OtpInput/index.js.map +2 -2
- package/cjs/inputs/Radio/index.js.map +1 -1
- package/cjs/inputs/Select/index.js.map +2 -2
- package/cjs/inputs/inputsScenarios/index.js +4 -10
- package/cjs/inputs/inputsScenarios.js.map +2 -2
- package/cjs/lazy/index.js +40 -38
- package/cjs/lazy.js.map +3 -3
- package/cjs/locales/el.js.map +1 -1
- package/cjs/registry/index.js +64 -62
- package/cjs/registry.js.map +3 -3
- package/cjs/types.js.map +1 -1
- package/cjs/utils/index.js +2 -1
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js +19 -13
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/file.js.map +2 -2
- package/cjs/validators/utils/int/index.js +1 -1
- package/cjs/validators/utils/int.js.map +2 -2
- package/cjs/validators/utils/number/index.js +1 -1
- package/cjs/validators/utils/number.js.map +2 -2
- package/cjs/validators/utils/phone.js.map +2 -2
- package/cjs/validators/utils/postal_code.js.map +1 -1
- package/cjs/validators/utils/uuid4.js.map +2 -2
- package/index.js +1 -1
- package/inputs/AutoCompleteInput/index.d.ts +1 -1
- package/inputs/AutoCompleteInput/index.js +2 -2
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/index.d.ts +1 -1
- package/inputs/Checkboxes/index.js.map +1 -1
- package/inputs/DateInput/index.d.ts +1 -2
- package/inputs/DateInput/index.js +4 -4
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/FileInput/index.js +1 -1
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/index.js +1 -1
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +1 -0
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
- package/inputs/Input/index.js +2 -1
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Input/inputsInputScenarios.js.map +2 -2
- package/inputs/Label/index.d.ts +0 -2
- package/inputs/Label/index.js.map +2 -2
- package/inputs/OtpInput/index.js.map +2 -2
- package/inputs/Radio/index.d.ts +1 -1
- package/inputs/Radio/index.js.map +1 -1
- package/inputs/Select/index.d.ts +1 -1
- package/inputs/Select/index.js +4 -1
- package/inputs/Select/index.js.map +2 -2
- package/inputs/inputsScenarios/index.js +4 -10
- package/inputs/inputsScenarios.js.map +2 -2
- package/lazy/index.js +68 -70
- package/locales/el.js.map +1 -1
- package/package.json +4 -4
- package/registry/index.js +109 -108
- package/src/Field/ErrorGroup.tsx +84 -0
- package/src/Field/FieldBase.tsx +33 -22
- package/src/Field/FieldBaseContainer.tsx +4 -3
- package/src/Field/FieldConditional.tsx +2 -2
- package/src/Field/types.tsx +26 -26
- package/src/FieldArray/index.tsx +2 -2
- package/src/FormBuilder/FormBuilder.stories.js +2 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
- package/src/FormBuilder/index.test.tsx +19 -10
- package/src/FormBuilder/index.tsx +92 -7
- package/src/FormBuilder/interaction.test.tsx +32 -0
- package/src/FormBuilder/scenarios.test.tsx +112 -5
- package/src/FormContext.tsx +1 -2
- package/src/MultiplicityField/add-objects.tsx +4 -3
- package/src/MultiplicityField/index.tsx +1 -0
- package/src/MultiplicityField/types.ts +1 -2
- package/src/Questions/Questions.tsx +4 -4
- package/src/Questions/Step/StepArrayReview.tsx +1 -1
- package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
- package/src/Questions/index.spec.tsx +14 -2
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -7
- package/src/inputs/AutoCompleteInput/index.tsx +3 -5
- package/src/inputs/Checkboxes/index.tsx +1 -1
- package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
- package/src/inputs/DateInput/index.tsx +4 -4
- package/src/inputs/FileInput/index.tsx +2 -2
- package/src/inputs/ImageInput/ImageInput.stories.js +0 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -2
- package/src/inputs/ImageInput/index.tsx +1 -4
- package/src/inputs/Input/Input.stories.js +1 -0
- package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -0
- package/src/inputs/Input/index.test.tsx +4 -0
- package/src/inputs/Input/index.tsx +2 -1
- package/src/inputs/Input/inputsInputScenarios.ts +244 -245
- package/src/inputs/Label/index.tsx +0 -3
- package/src/inputs/OtpInput/index.tsx +2 -1
- package/src/inputs/Radio/index.tsx +1 -1
- package/src/inputs/Select/index.tsx +5 -2
- package/src/inputs/inputsScenarios.ts +36 -42
- package/src/lazy.js +68 -67
- package/src/locales/el.ts +1 -1
- package/src/registry.js +101 -101
- package/src/types.tsx +2 -2
- package/src/utils.ts +2 -2
- package/src/validators/index.ts +41 -14
- package/src/validators/utils/file.ts +5 -3
- package/src/validators/utils/int.ts +1 -1
- package/src/validators/utils/number.ts +1 -1
- package/src/validators/utils/phone.ts +1 -1
- package/src/validators/utils/postal_code.ts +1 -1
- package/src/validators/utils/uuid4.ts +2 -1
- package/src/validators/validators.spec.ts +3 -3
- package/types.d.ts +2 -2
- package/types.js.map +1 -1
- package/utils/index.js +2 -1
- package/utils.js.map +2 -2
- package/validators/index.js +19 -13
- package/validators/index.js.map +2 -2
- package/validators/utils/file.js.map +2 -2
- package/validators/utils/int/index.js +1 -1
- package/validators/utils/int.js.map +2 -2
- package/validators/utils/number/index.js +1 -1
- package/validators/utils/number.js.map +2 -2
- package/validators/utils/phone.d.ts +1 -1
- package/validators/utils/phone.js.map +2 -2
- package/validators/utils/postal_code.d.ts +1 -1
- package/validators/utils/postal_code.js.map +1 -1
- package/validators/utils/uuid4.js.map +2 -2
- package/FieldArray/FieldArray.stories/index.js +0 -14
- package/FieldArray/FieldArray.stories/package.json +0 -6
- package/FieldArray/FieldArray.stories.js.map +0 -7
- package/FieldArray/__stories__/Default/index.js +0 -95
- package/FieldArray/__stories__/Default/package.json +0 -6
- package/FieldArray/__stories__/Default.js.map +0 -7
- package/FieldArray/__stories__/WithExactLength/index.js +0 -95
- package/FieldArray/__stories__/WithExactLength/package.json +0 -6
- package/FieldArray/__stories__/WithExactLength.js.map +0 -7
- package/Form.stories/index.js +0 -7
- package/Form.stories.js.map +0 -7
- package/FormBuilder/FormBuilder.stories/index.js +0 -12
- package/FormBuilder/FormBuilder.stories/package.json +0 -6
- package/FormBuilder/FormBuilder.stories.js.map +0 -7
- package/FormBuilder/__stories__/Default/index.js +0 -32
- package/FormBuilder/__stories__/Default/package.json +0 -6
- package/FormBuilder/__stories__/Default.js.map +0 -7
- package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
- package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
- package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
- package/MultiplicityField/__stories__/Default/index.js +0 -100
- package/MultiplicityField/__stories__/Default/package.json +0 -6
- package/MultiplicityField/__stories__/Default.js.map +0 -7
- package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
- package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
- package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
- package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
- package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
- package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
- package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
- package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
- package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
- package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
- package/Questions/Questions.stories/index.js +0 -12
- package/Questions/Questions.stories/package.json +0 -6
- package/Questions/Questions.stories.js.map +0 -7
- package/Questions/__stories__/Default/index.js +0 -108
- package/Questions/__stories__/Default/package.json +0 -6
- package/Questions/__stories__/Default.js.map +0 -7
- package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
- package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
- package/cjs/FieldArray/__stories__/Default/index.js +0 -128
- package/cjs/FieldArray/__stories__/Default.js.map +0 -7
- package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
- package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
- package/cjs/Form.stories/index.js +0 -26
- package/cjs/Form.stories.js.map +0 -7
- package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -45
- package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
- package/cjs/FormBuilder/__stories__/Default/index.js +0 -65
- package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
- package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
- package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
- package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
- package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
- package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
- package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
- package/cjs/Questions/Questions.stories/index.js +0 -45
- package/cjs/Questions/Questions.stories.js.map +0 -7
- package/cjs/Questions/__stories__/Default/index.js +0 -136
- package/cjs/Questions/__stories__/Default.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
- package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -83
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
- package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
- package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
- package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
- package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
- package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
- package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
- package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
- package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
- package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
- package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
- package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
- package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
- package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
- package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +0 -69
- package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -72
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
- package/cjs/inputs/Input/Input.stories/index.js +0 -72
- package/cjs/inputs/Input/Input.stories.js.map +0 -7
- package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
- package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
- package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
- package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
- package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
- package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
- package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
- package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
- package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -68
- package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -68
- package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -67
- package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
- package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -65
- package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
- package/cjs/inputs/Input/__stories__/String/index.js +0 -64
- package/cjs/inputs/Input/__stories__/String.js.map +0 -7
- package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
- package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
- package/cjs/inputs/Label/Label.stories/index.js +0 -45
- package/cjs/inputs/Label/Label.stories.js.map +0 -7
- package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
- package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
- package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
- package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
- package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
- package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
- package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
- package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
- package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
- package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
- package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
- package/cjs/inputs/Select/Select.stories/index.js +0 -45
- package/cjs/inputs/Select/Select.stories.js.map +0 -7
- package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
- package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
- package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
- package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
- package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
- package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
- package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
- package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
- package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -50
- package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
- package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
- package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
- package/inputs/Checkboxes/Checkboxes.stories/package.json +0 -6
- package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
- package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
- package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
- package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
- package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
- package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
- package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
- package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
- package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
- package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
- package/inputs/DateInput/DateInput.stories/index.js +0 -12
- package/inputs/DateInput/DateInput.stories/package.json +0 -6
- package/inputs/DateInput/DateInput.stories.js.map +0 -7
- package/inputs/DateInput/__stories__/Default/index.js +0 -28
- package/inputs/DateInput/__stories__/Default/package.json +0 -6
- package/inputs/DateInput/__stories__/Default.js.map +0 -7
- package/inputs/FileInput/FileInput.stories/index.js +0 -12
- package/inputs/FileInput/FileInput.stories/package.json +0 -6
- package/inputs/FileInput/FileInput.stories.js.map +0 -7
- package/inputs/FileInput/__stories__/Default/index.js +0 -28
- package/inputs/FileInput/__stories__/Default/package.json +0 -6
- package/inputs/FileInput/__stories__/Default.js.map +0 -7
- package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
- package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
- package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
- package/inputs/ImageInput/__stories__/Default/index.js +0 -30
- package/inputs/ImageInput/__stories__/Default/package.json +0 -6
- package/inputs/ImageInput/__stories__/Default.js.map +0 -7
- package/inputs/ImageInput/__stories__/MaxSize/index.js +0 -36
- package/inputs/ImageInput/__stories__/MaxSize/package.json +0 -6
- package/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -39
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
- package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
- package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
- package/inputs/Input/Input.stories/index.js +0 -30
- package/inputs/Input/Input.stories/package.json +0 -6
- package/inputs/Input/Input.stories.js.map +0 -7
- package/inputs/Input/__stories__/AFM/index.js +0 -30
- package/inputs/Input/__stories__/AFM/package.json +0 -6
- package/inputs/Input/__stories__/AFM.js.map +0 -7
- package/inputs/Input/__stories__/Boolean/index.js +0 -31
- package/inputs/Input/__stories__/Boolean/package.json +0 -6
- package/inputs/Input/__stories__/Boolean.js.map +0 -7
- package/inputs/Input/__stories__/IBAN/index.js +0 -31
- package/inputs/Input/__stories__/IBAN/package.json +0 -6
- package/inputs/Input/__stories__/IBAN.js.map +0 -7
- package/inputs/Input/__stories__/Integer/index.js +0 -45
- package/inputs/Input/__stories__/Integer/package.json +0 -6
- package/inputs/Input/__stories__/Integer.js.map +0 -7
- package/inputs/Input/__stories__/LandlineNumber/index.js +0 -35
- package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
- package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
- package/inputs/Input/__stories__/MobilePhone/index.js +0 -35
- package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
- package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
- package/inputs/Input/__stories__/PhoneNumber/index.js +0 -34
- package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
- package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
- package/inputs/Input/__stories__/PostalCode/index.js +0 -32
- package/inputs/Input/__stories__/PostalCode/package.json +0 -6
- package/inputs/Input/__stories__/PostalCode.js.map +0 -7
- package/inputs/Input/__stories__/String/index.js +0 -31
- package/inputs/Input/__stories__/String/package.json +0 -6
- package/inputs/Input/__stories__/String.js.map +0 -7
- package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
- package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
- package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
- package/inputs/Label/Label.stories/index.js +0 -12
- package/inputs/Label/Label.stories/package.json +0 -6
- package/inputs/Label/Label.stories.js.map +0 -7
- package/inputs/Label/__stories__/Default/index.js +0 -39
- package/inputs/Label/__stories__/Default/package.json +0 -6
- package/inputs/Label/__stories__/Default.js.map +0 -7
- package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
- package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
- package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
- package/inputs/OtpInput/__stories__/Default/index.js +0 -31
- package/inputs/OtpInput/__stories__/Default/package.json +0 -6
- package/inputs/OtpInput/__stories__/Default.js.map +0 -7
- package/inputs/Radio/Radio.stories/index.js +0 -16
- package/inputs/Radio/Radio.stories/package.json +0 -6
- package/inputs/Radio/Radio.stories.js.map +0 -7
- package/inputs/Radio/__stories__/Conditional/index.js +0 -100
- package/inputs/Radio/__stories__/Conditional/package.json +0 -6
- package/inputs/Radio/__stories__/Conditional.js.map +0 -7
- package/inputs/Radio/__stories__/Default/index.js +0 -48
- package/inputs/Radio/__stories__/Default/package.json +0 -6
- package/inputs/Radio/__stories__/Default.js.map +0 -7
- package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
- package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
- package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
- package/inputs/Select/Select.stories/index.js +0 -12
- package/inputs/Select/Select.stories/package.json +0 -6
- package/inputs/Select/Select.stories.js.map +0 -7
- package/inputs/Select/__stories__/Default/index.js +0 -53
- package/inputs/Select/__stories__/Default/package.json +0 -6
- package/inputs/Select/__stories__/Default.js.map +0 -7
- package/lazy.d.ts +0 -80
- package/lazy.js.map +0 -7
- package/registry.d.ts +0 -71
- package/registry.js.map +0 -7
package/cjs/FormBuilder/index.js
CHANGED
|
@@ -37,13 +37,15 @@ module.exports = __toCommonJS(FormBuilder_exports);
|
|
|
37
37
|
var import_react = __toESM(require("react"));
|
|
38
38
|
var import_react_hook_form = require("react-hook-form");
|
|
39
39
|
var import_Field = require("@digigov/form/Field");
|
|
40
|
+
var import_ErrorGroup = require("@digigov/form/Field/ErrorGroup");
|
|
40
41
|
var import_utils = require("@digigov/form/Field/utils");
|
|
41
|
-
var
|
|
42
|
+
var import_FieldsetWithContext = require("@digigov/form/Fieldset/FieldsetWithContext");
|
|
42
43
|
var import_FormContext = require("@digigov/form/FormContext");
|
|
43
44
|
var import_utils2 = require("@digigov/form/utils");
|
|
44
45
|
var import_validators = require("@digigov/form/validators");
|
|
45
46
|
var import_Button = require("@digigov/ui/form/Button");
|
|
46
47
|
var import_Form = require("@digigov/ui/form/Form");
|
|
48
|
+
var import_useScreen = require("@digigov/ui/utils/hooks/useScreen");
|
|
47
49
|
const FormBase = import_react.default.forwardRef(function FormBase2({
|
|
48
50
|
onSubmit,
|
|
49
51
|
children,
|
|
@@ -70,7 +72,10 @@ const FormBase = import_react.default.forwardRef(function FormBase2({
|
|
|
70
72
|
});
|
|
71
73
|
const handleSubmit = (0, import_react.useCallback)(
|
|
72
74
|
(data) => {
|
|
73
|
-
|
|
75
|
+
if (onSubmit) {
|
|
76
|
+
form.reset(data);
|
|
77
|
+
onSubmit(data);
|
|
78
|
+
}
|
|
74
79
|
},
|
|
75
80
|
[onSubmit]
|
|
76
81
|
);
|
|
@@ -99,6 +104,36 @@ const FormBase = import_react.default.forwardRef(function FormBase2({
|
|
|
99
104
|
};
|
|
100
105
|
return /* @__PURE__ */ import_react.default.createElement(import_FormContext.FormContext.Provider, { value: ctx }, /* @__PURE__ */ import_react.default.createElement(import_Form.Form, { grid, onSubmit: submit, ref, ...props }, children));
|
|
101
106
|
});
|
|
107
|
+
const DEFAULT_LAYOUT = {
|
|
108
|
+
xs: 12,
|
|
109
|
+
sm: 12,
|
|
110
|
+
md: 12,
|
|
111
|
+
lg: 12,
|
|
112
|
+
xl: 12
|
|
113
|
+
};
|
|
114
|
+
const BREAKPOINTS = ["xs", "sm", "md", "lg", "xl"];
|
|
115
|
+
const groupFieldsByLayout = (fields) => {
|
|
116
|
+
return BREAKPOINTS.reduce((sizes, size) => {
|
|
117
|
+
sizes[size] = fields.reduce((acc, item) => {
|
|
118
|
+
const layoutValue = item.layout?.[size] || 12;
|
|
119
|
+
if (layoutValue === 0) {
|
|
120
|
+
return [...acc, item];
|
|
121
|
+
}
|
|
122
|
+
const lastElement = acc[acc.length - 1];
|
|
123
|
+
const currentSum = Array.isArray(lastElement) ? lastElement.reduce((sum, i) => sum + (i.layout?.[size] || 0), 0) : 0;
|
|
124
|
+
if (!Array.isArray(lastElement) || currentSum + layoutValue > 12) {
|
|
125
|
+
return layoutValue === 12 ? [...acc, item] : [...acc, [item]];
|
|
126
|
+
}
|
|
127
|
+
return [...acc.slice(0, -1), [...lastElement, item]];
|
|
128
|
+
}, []).map((item) => {
|
|
129
|
+
if (Array.isArray(item) && item.length === 1) {
|
|
130
|
+
return item[0];
|
|
131
|
+
}
|
|
132
|
+
return item;
|
|
133
|
+
});
|
|
134
|
+
return sizes;
|
|
135
|
+
}, {});
|
|
136
|
+
};
|
|
102
137
|
const useFormContext = () => {
|
|
103
138
|
return (0, import_react.useContext)(import_FormContext.FormContext);
|
|
104
139
|
};
|
|
@@ -122,6 +157,32 @@ const FormBuilder = import_react.default.forwardRef(function FormBuilder2({
|
|
|
122
157
|
grid = false,
|
|
123
158
|
...props
|
|
124
159
|
}, ref) {
|
|
160
|
+
const { screenSize } = (0, import_useScreen.useScreenSize)();
|
|
161
|
+
fields = fields.map((field) => {
|
|
162
|
+
const layout = field.layout;
|
|
163
|
+
if (!layout) {
|
|
164
|
+
return {
|
|
165
|
+
...field,
|
|
166
|
+
layout: DEFAULT_LAYOUT
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
...field,
|
|
171
|
+
layout: BREAKPOINTS.reduce(
|
|
172
|
+
(expandedLayout, breakpoint, breakpointIndex) => {
|
|
173
|
+
if (field?.layout?.[breakpoint]) {
|
|
174
|
+
expandedLayout[breakpoint] = field?.layout[breakpoint];
|
|
175
|
+
} else if (expandedLayout[BREAKPOINTS[breakpointIndex - 1]]) {
|
|
176
|
+
expandedLayout[breakpoint] = expandedLayout[BREAKPOINTS[breakpointIndex - 1]];
|
|
177
|
+
} else {
|
|
178
|
+
expandedLayout[breakpoint] = 12;
|
|
179
|
+
}
|
|
180
|
+
return expandedLayout;
|
|
181
|
+
},
|
|
182
|
+
{}
|
|
183
|
+
)
|
|
184
|
+
};
|
|
185
|
+
});
|
|
125
186
|
const fieldsState = (0, import_react.useRef)(fields);
|
|
126
187
|
const setFieldsState = (0, import_react.useCallback)((newFields) => {
|
|
127
188
|
fieldsState.current = newFields;
|
|
@@ -151,9 +212,27 @@ const FormBuilder = import_react.default.forwardRef(function FormBuilder2({
|
|
|
151
212
|
);
|
|
152
213
|
if (auto) {
|
|
153
214
|
if (fieldsets) {
|
|
154
|
-
fieldChildren = fieldsets.map((fieldset) => /* @__PURE__ */ import_react.default.createElement(
|
|
215
|
+
fieldChildren = fieldsets.map((fieldset) => /* @__PURE__ */ import_react.default.createElement(import_FieldsetWithContext.FieldsetWithContext, { key: fieldset.key, name: fieldset.key }));
|
|
155
216
|
} else if (fields) {
|
|
156
|
-
|
|
217
|
+
const fieldsByLayouts = groupFieldsByLayout(fields);
|
|
218
|
+
const fieldsByLayoutSize = fieldsByLayouts[screenSize];
|
|
219
|
+
fieldChildren = fieldsByLayoutSize.map((item, index) => {
|
|
220
|
+
if (Array.isArray(item)) {
|
|
221
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
222
|
+
import_ErrorGroup.ErrorGroup,
|
|
223
|
+
{
|
|
224
|
+
key: index,
|
|
225
|
+
screenSize,
|
|
226
|
+
fieldOrder: item.map((field) => field.key)
|
|
227
|
+
},
|
|
228
|
+
item.map((f) => {
|
|
229
|
+
return /* @__PURE__ */ import_react.default.createElement(import_Field.Field, { key: f.key, name: f.key });
|
|
230
|
+
})
|
|
231
|
+
);
|
|
232
|
+
} else {
|
|
233
|
+
return /* @__PURE__ */ import_react.default.createElement(import_Field.Field, { key: item.key, name: item.key });
|
|
234
|
+
}
|
|
235
|
+
});
|
|
157
236
|
}
|
|
158
237
|
}
|
|
159
238
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/FormBuilder/index.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useContext, useRef } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { Field } from '@digigov/form/Field';\nimport { ErrorGroup } from '@digigov/form/Field/ErrorGroup';\nimport { CONTROLLED_FIELD_COMPONENTS } from '@digigov/form/Field/utils';\nimport { FieldsetWithContext } from '@digigov/form/Fieldset/FieldsetWithContext';\nimport { FormContext } from '@digigov/form/FormContext';\nimport { FormBaseProps, FormData, FormBuilderProps } from '@digigov/form/types';\nimport { yupResolver } from '@digigov/form/utils';\nimport { useValidationSchema } from '@digigov/form/validators';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Form } from '@digigov/ui/form/Form';\nimport { useScreenSize } from '@digigov/ui/utils/hooks/useScreen';\n\nconst FormBase = React.forwardRef(function FormBase(\n {\n onSubmit,\n children,\n registerField,\n fieldsMap,\n fieldsetsMap,\n resolver,\n mode,\n initial,\n reValidateMode,\n shouldFocusError,\n criteriaMode,\n componentRegistry,\n grid,\n ...props\n }: FormBaseProps,\n ref: React.Ref<HTMLFormElement>\n) {\n const form = useForm({\n resolver,\n mode,\n defaultValues: initial,\n reValidateMode,\n shouldFocusError,\n criteriaMode,\n });\n\n const handleSubmit = useCallback(\n (data: FormData): void => {\n if (onSubmit) {\n form.reset(data);\n onSubmit(data);\n }\n },\n [onSubmit]\n );\n const submit = form.handleSubmit(handleSubmit);\n const ctx = {\n fieldsMap,\n fieldsetsMap,\n control: form.control,\n register: form.register,\n watch: form.watch,\n resetField: form.resetField,\n registerField: registerField,\n errors: form.formState.errors,\n formState: form.formState,\n reset: form.reset,\n trigger: form.trigger,\n getFieldState: form.getFieldState,\n setValue: form.setValue,\n clearErrors: form.clearErrors,\n getValues: form.getValues,\n unregister: form.unregister,\n componentRegistry,\n setError: form.setError,\n formRef: ref,\n submit,\n };\n return (\n <FormContext.Provider value={ctx}>\n <Form grid={grid} onSubmit={submit} ref={ref} {...props}>\n {children}\n </Form>\n </FormContext.Provider>\n );\n});\n\nconst DEFAULT_LAYOUT = {\n xs: 12,\n sm: 12,\n md: 12,\n lg: 12,\n xl: 12,\n};\n\nconst BREAKPOINTS = ['xs', 'sm', 'md', 'lg', 'xl'];\n\nconst groupFieldsByLayout = (fields) => {\n return BREAKPOINTS.reduce((sizes, size) => {\n sizes[size] = fields\n .reduce((acc, item) => {\n const layoutValue = item.layout?.[size] || 12;\n if (layoutValue === 0) {\n return [...acc, item];\n }\n const lastElement = acc[acc.length - 1];\n const currentSum = Array.isArray(lastElement)\n ? lastElement.reduce((sum, i) => sum + (i.layout?.[size] || 0), 0)\n : 0;\n if (!Array.isArray(lastElement) || currentSum + layoutValue > 12) {\n return layoutValue === 12 ? [...acc, item] : [...acc, [item]];\n }\n\n return [...acc.slice(0, -1), [...lastElement, item]];\n }, [])\n .map((item) => {\n if (Array.isArray(item) && item.length === 1) {\n return item[0];\n }\n return item;\n });\n return sizes;\n }, {});\n};\nconst useFormContext = () => {\n return useContext(FormContext);\n};\nconst useFormValues = () => {\n const ctx = useFormContext();\n return ctx.getValues();\n};\nconst FormBuilder = React.forwardRef(function FormBuilder(\n {\n fields = [],\n fieldsets,\n initial = {},\n onSubmit,\n children,\n reValidateMode = 'onSubmit',\n mode = 'onSubmit',\n shouldFocusError = true,\n criteriaMode = 'all',\n auto = false,\n validatorRegistry,\n componentRegistry,\n grid = false,\n ...props\n }: FormBuilderProps,\n ref: React.Ref<HTMLFormElement>\n): React.ReactElement {\n const { screenSize } = useScreenSize();\n fields = fields.map((field) => {\n const layout = field.layout;\n if (!layout) {\n return {\n ...field,\n layout: DEFAULT_LAYOUT,\n };\n }\n return {\n ...field,\n layout: BREAKPOINTS.reduce(\n (expandedLayout, breakpoint, breakpointIndex) => {\n if (field?.layout?.[breakpoint]) {\n expandedLayout[breakpoint] = field?.layout[breakpoint];\n } else if (expandedLayout[BREAKPOINTS[breakpointIndex - 1]]) {\n expandedLayout[breakpoint] =\n expandedLayout[BREAKPOINTS[breakpointIndex - 1]];\n } else {\n expandedLayout[breakpoint] = 12;\n }\n return expandedLayout;\n },\n {}\n ),\n };\n });\n\n const fieldsState = useRef(fields);\n const setFieldsState = useCallback((newFields) => {\n fieldsState.current = newFields;\n }, []);\n const schema = useValidationSchema(fieldsState, validatorRegistry);\n const registerField = useCallback((field) => {\n const fieldIndex = fieldsState.current.findIndex(\n (f) => f.key === field.key\n );\n if (fieldIndex > -1) {\n fieldsState.current[fieldIndex] = field;\n } else {\n fieldsState.current.push(field);\n }\n setFieldsState(fieldsState.current);\n }, []);\n let resolver;\n let fieldsMap;\n let fieldsetsMap;\n let fieldChildren;\n if (schema) {\n resolver = yupResolver(schema);\n fieldsMap = fields\n ? fields.reduce((map, field) => ({ ...map, [field.key]: field }), {})\n : {};\n fieldsetsMap =\n fieldsets &&\n fieldsets.reduce(\n (map, fieldset) => ({ ...map, [fieldset.key]: fieldset }),\n {}\n );\n\n if (auto) {\n if (fieldsets) {\n fieldChildren = fieldsets.map((fieldset) => (\n <FieldsetWithContext key={fieldset.key} name={fieldset.key} />\n ));\n } else if (fields) {\n const fieldsByLayouts = groupFieldsByLayout(fields);\n const fieldsByLayoutSize = fieldsByLayouts[screenSize];\n fieldChildren = fieldsByLayoutSize.map((item, index) => {\n if (Array.isArray(item)) {\n return (\n <ErrorGroup\n key={index}\n screenSize={screenSize}\n fieldOrder={item.map((field) => field.key)}\n >\n {item.map((f) => {\n return <Field key={f.key} name={f.key} />;\n })}\n </ErrorGroup>\n );\n } else {\n return <Field key={item.key} name={item.key} />;\n }\n });\n }\n }\n }\n return (\n <FormBase\n resolver={resolver}\n fieldsetsMap={fieldsetsMap}\n fieldsMap={fieldsMap}\n registerField={registerField}\n initial={initial}\n reValidateMode={reValidateMode}\n mode={mode}\n shouldFocusError={shouldFocusError}\n criteriaMode={criteriaMode}\n onSubmit={onSubmit}\n componentRegistry={componentRegistry}\n ref={ref}\n grid={grid}\n {...props}\n >\n {fieldChildren}\n {auto && <Button type=\"submit\">\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1</Button>}\n {children}\n </FormBase>\n );\n});\nexport const ControlledFormBuilder = (props) => {\n return (\n <FormBuilder {...props} componentRegistry={CONTROLLED_FIELD_COMPONENTS} />\n );\n};\nexport default FormBuilder;\n\nexport { useFormContext, useFormValues, FormBase };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_utils", "React", "FormBase", "FormBuilder"]
|
|
7
7
|
}
|
package/cjs/FormContext/index.js
CHANGED
|
@@ -20,8 +20,8 @@ __export(FormContext_exports, {
|
|
|
20
20
|
FormContext: () => FormContext
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(FormContext_exports);
|
|
23
|
-
var
|
|
24
|
-
const FormContext = (0,
|
|
23
|
+
var import_react = require("react");
|
|
24
|
+
const FormContext = (0, import_react.createContext)({
|
|
25
25
|
fieldsMap: {},
|
|
26
26
|
fieldsetsMap: {}
|
|
27
27
|
});
|
package/cjs/FormContext.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/FormContext.tsx"],
|
|
4
|
-
"sourcesContent": ["import React
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": [
|
|
4
|
+
"sourcesContent": ["import React, { createContext } from 'react';\nimport { FormContextProps } from '@digigov/form/types';\n\nexport const FormContext: React.Context<FormContextProps> = createContext({\n fieldsMap: {},\n fieldsetsMap: {},\n} as FormContextProps);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAqC;AAG9B,MAAM,kBAA+C,4BAAc;AAAA,EACxE,WAAW,CAAC;AAAA,EACZ,cAAc,CAAC;AACjB,CAAqB;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -110,8 +110,10 @@ const AddObjects = ({
|
|
|
110
110
|
(f) => `${currentName}.${f.key}`
|
|
111
111
|
);
|
|
112
112
|
const result = await trigger(nestedFields);
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
if (result) {
|
|
114
|
+
setValue("needs-more", "");
|
|
115
|
+
onStash(getValues(currentName));
|
|
116
|
+
}
|
|
115
117
|
}
|
|
116
118
|
},
|
|
117
119
|
extra?.label.object.add
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MultiplicityField/add-objects.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useMemo } from 'react';\nimport {\n ErrorOption,\n FieldArrayWithId,\n UseFieldArrayReturn,\n useWatch,\n} from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport { CalculatedField } from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\nimport { FieldObject } from '@digigov/form/FieldObject';\nimport { Fieldset } from '@digigov/form/Fieldset';\nimport type {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport { Button } from '@digigov/ui/form/Button';\nimport { RadioConditional } from '@digigov/ui/form/RadioContainer';\n\nexport interface AddObjectsProps\n extends Omit<MultiplicityProps, 'key' | 'component'> {\n fields: FieldArrayWithId[];\n error?: ErrorOption;\n append: UseFieldArrayReturn['append'];\n remove: UseFieldArrayReturn['remove'];\n stashedObjects: StashedObject[];\n onStash: (arg0: StashedObject) => void;\n children?: React.ReactNode;\n}\n\nexport const AddObjects: React.FC<AddObjectsProps> = ({\n name,\n fields,\n formState,\n extra,\n append,\n remove,\n trigger,\n clearErrors,\n children,\n setValue,\n stashedObjects,\n getValues,\n onStash,\n error,\n Field,\n}) => {\n const currentIndex = fields.length > 0 ? fields.length - 1 : fields.length;\n const currentName = `${name}.${currentIndex}`;\n const radioField: FieldSpec = {\n key: 'needs-more',\n type: 'choice:single',\n label: {\n primary: extra?.label.question.title,\n },\n required: true,\n validators: [\n {\n name: 'is-locked',\n message: 'form.error.needs-more',\n test: (data) => {\n return data === 'no';\n },\n },\n ],\n extra: {\n options: [\n {\n label: { primary: extra?.label.question.yes },\n id: `radio-input-${name}-yes`,\n value: 'yes',\n selected: function RadioSelected() {\n return (\n <RadioConditional\n hidden={\n needsMore !== 'yes' ||\n (extra?.max && extra?.max - stashedObjects.length === 0)\n }\n >\n {needsMore === 'yes' && fields.length > 0 && (\n <>\n <FieldObject\n name={currentName}\n error={error && error[currentIndex]}\n register={register}\n formState={formState}\n control={control}\n {...extra?.of}\n label={\n extra?.label.question.objectLabel || extra?.of.label\n }\n />\n <Button\n color=\"secondary\"\n name={`${currentName}-add-object`}\n onClick={async (e) => {\n e.preventDefault();\n const nestedFields = extra?.of.extra.fields.map(\n (f) => `${currentName}.${f.key}`\n );\n const result = await trigger(nestedFields);\n if (result) {\n setValue('needs-more', '');\n onStash(getValues(currentName));\n }\n }}\n >\n {extra?.label.object.add}\n </Button>\n </>\n )}\n </RadioConditional>\n );\n },\n },\n {\n label: { primary: extra?.label.question.no },\n id: `radio-input-${name}-no`,\n value: 'no',\n },\n ],\n },\n };\n\n const {\n field,\n control,\n register,\n reset,\n error: needsMoreError,\n } = useField(radioField.key, radioField?.type ? radioField : null);\n\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(children, field, FIELD_COMPONENTS, ALTERNATIVE_COMPONENTS),\n [field]\n );\n const needsMore = useWatch({ name: field.key, control });\n\n useEffect(() => {\n if (needsMore === 'yes') {\n append({ afm: '', firstName: '', lastName: '' });\n }\n if (needsMore === 'no' && stashedObjects.length < fields.length) {\n remove(currentIndex);\n }\n if (needsMore === '') clearErrors('needs-more');\n }, [needsMore]);\n\n // TODO: Refactor types so that label is always required, the following\n // assignment is a temp fix for typescript build to run\n calculatedField.label = calculatedField.label || {};\n if (extra?.length) {\n calculatedField.label.secondary = `\u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra.length - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n } else if (extra?.min && extra?.max) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03BA\u03B1\u03B9 \u03C4\u03BF \u03BC\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF ${\n extra?.max\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.min) {\n calculatedField.label.secondary = `\u03A4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BA\u03CC\u03BC\u03B1 ${\n extra?.min - stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2. \u03A0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03B3\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03B1\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u00AB\u039D\u03B1\u03B9\u00BB \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03CE\u03C4\u03B7\u03C3\u03B7.`;\n } else if (extra?.max) {\n calculatedField.label.secondary = ` \u0388\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03B9 ${\n stashedObjects.length\n } \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5\u03BD ${\n extra.max - stashedObjects.length\n } \u03B5\u03C0\u03B9\u03C0\u03BB\u03AD\u03BF\u03BD \u03B5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03C2.`;\n }\n return (\n <Fieldset>\n <FieldBase\n {...calculatedField}\n name={calculatedField.key}\n control={control}\n register={register}\n reset={reset}\n Field={Field}\n error={\n extra?.max - stashedObjects.length === 0 ||\n extra?.length - stashedObjects.length === 0\n ? error\n : needsMoreError\n }\n />\n </Fieldset>\n );\n};\n\nexport default AddObjects;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MultiplicityField/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { FieldBaseContainer } from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldObject } from '@digigov/form/FieldObject';\nimport { AddObjects } from '@digigov/form/MultiplicityField/add-objects';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport {\n Card,\n CardHeading,\n CardContent,\n CardAction,\n} from '@digigov/ui/content/Card';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Heading } from '@digigov/ui/typography/Heading';\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n Field,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n Field={Field}\n />\n </FieldBaseContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAChC,6BAA6C;AAC7C,gCAAmC;AACnC,yBAA4B;AAC5B,yBAA2B;AAK3B,kBAKO;AACP,oBAAuB;AACvB,qBAAwB;AAGjB,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,QAAI,sCAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAA0B,CAAC,CAAC;AACxE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO,KAAK;AAEZ,UAAM,oBAAoB,CAAC,GAAG,cAAc;AAC5C,sBAAkB,OAAO,OAAO,CAAC;AACjC,sBAAkB,iBAAiB;AAAA,EACrC;AACA,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,MAEN,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,eAAe,SAAS,IACvB,6BAAAA,QAAA,cAAC,aACC,6BAAAA,QAAA,cAAC,0BAAQ,MAAK,QAAM,OAAO,MAAM,OAAO,WAAY,GACnD,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA;AAAA,MACZ;AAAA,IAEJ,CAAC,CACH,IAEA;AAAA,IAEF,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,MAAM;AACJ,QAAM,cAAc,GAAG,IAAI,IAAI,KAAK;AACpC,SACE,6BAAAA,QAAA,cAAC,oBAAK,SAAS,OAAO,UAAU,YAC9B,6BAAAA,QAAA,cAAC,+BACE,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,CACxC,GACA,6BAAAA,QAAA,cAAC,+BACC,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,OAAO;AAAA;AAAA,EACb,CACF,GACA,6BAAAA,QAAA,cAAC,8BACC,6BAAAA,QAAA,cAAC,wBAAO,MAAK,UAAS,SAAQ,QAAO,SAAS,MAAM,SAAS,KAAK,KAC/D,OAAO,MAAM,OAAO,MACvB,CACF,CACF;AAEJ;",
|
|
4
|
+
"sourcesContent": ["import React, { useState } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { FieldBaseContainer } from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldObject } from '@digigov/form/FieldObject';\nimport { AddObjects } from '@digigov/form/MultiplicityField/add-objects';\nimport {\n MultiplicityProps,\n StashedObject,\n} from '@digigov/form/MultiplicityField/types';\nimport {\n Card,\n CardHeading,\n CardContent,\n CardAction,\n} from '@digigov/ui/content/Card';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Heading } from '@digigov/ui/typography/Heading';\n\n// epeidh einai forwardRef to ref mas to dinei xwrista apo ta props\nexport const Multiplicity: React.FC<MultiplicityProps> = ({\n extra,\n name,\n control,\n error,\n register,\n trigger,\n clearErrors,\n formState,\n label,\n layout,\n setValue,\n getValues,\n unregister,\n Field,\n}) => {\n const { fields, append, remove } = useFieldArray({\n control,\n name,\n });\n const [stashedObjects, setStashedObjects] = useState<StashedObject[]>([]);\n const handleStash = (data) => {\n setStashedObjects([...stashedObjects, data]);\n };\n const handleDelete = (index) => {\n remove(index);\n // creating a new array to maintain immutability\n const newStashedObjects = [...stashedObjects];\n newStashedObjects.splice(index, 1);\n setStashedObjects(newStashedObjects);\n };\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={\n formState.isSubmitted && !formState.isSubmitting && error?.message\n ? error\n : undefined\n }\n hasError={formState.isSubmitted && !formState.isSubmitting && !!error}\n wrapper=\"fieldset\"\n name={name}\n >\n {stashedObjects.length > 0 ? (\n <div>\n <Heading size=\"md\">{extra?.label.object.title_added}</Heading>\n {stashedObjects.map((_Object, index) => {\n return (\n <ListObject\n key={`${name}.${index}`}\n index={index}\n name={name}\n extra={extra}\n control={control}\n register={register}\n formState={formState}\n onDelete={handleDelete}\n />\n );\n })}\n </div>\n ) : (\n ''\n )}\n <AddObjects\n name={name}\n register={register}\n control={control}\n fields={fields}\n formState={formState}\n error={error}\n stashedObjects={stashedObjects}\n extra={extra}\n append={append}\n remove={remove}\n onStash={handleStash}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n trigger={trigger}\n clearErrors={clearErrors}\n Field={Field}\n />\n </FieldBaseContainer>\n );\n};\n\nexport default Multiplicity;\n\nexport interface ListObjectProps {\n index: number;\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n formState: UseFormReturn['formState'];\n onDelete: (index: number) => void;\n extra?: Record<string, any>;\n}\n\nexport const ListObject: React.FC<ListObjectProps> = ({\n index,\n name,\n extra,\n control,\n register,\n onDelete,\n formState,\n // onEdit,\n}) => {\n const currentName = `${name}.${index}`;\n return (\n <Card variant={extra?.border && 'border'}>\n <CardHeading>\n {extra?.label.object.title} #{index + 1}\n </CardHeading>\n <CardContent>\n <FieldObject\n name={currentName}\n formState={formState}\n register={register}\n control={control}\n {...extra?.of}\n />\n </CardContent>\n <CardAction>\n <Button type=\"button\" variant=\"link\" onClick={() => onDelete(index)}>\n {extra?.label.object.delete}\n </Button>\n </CardAction>\n </Card>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAChC,6BAA6C;AAC7C,gCAAmC;AACnC,yBAA4B;AAC5B,yBAA2B;AAK3B,kBAKO;AACP,oBAAuB;AACvB,qBAAwB;AAGjB,MAAM,eAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAO,QAAI,sCAAc;AAAA,IAC/C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAA0B,CAAC,CAAC;AACxE,QAAM,cAAc,CAAC,SAAS;AAC5B,sBAAkB,CAAC,GAAG,gBAAgB,IAAI,CAAC;AAAA,EAC7C;AACA,QAAM,eAAe,CAAC,UAAU;AAC9B,WAAO,KAAK;AAEZ,UAAM,oBAAoB,CAAC,GAAG,cAAc;AAC5C,sBAAkB,OAAO,OAAO,CAAC;AACjC,sBAAkB,iBAAiB;AAAA,EACrC;AACA,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OACE,UAAU,eAAe,CAAC,UAAU,gBAAgB,OAAO,UACvD,QACA;AAAA,MAEN,UAAU,UAAU,eAAe,CAAC,UAAU,gBAAgB,CAAC,CAAC;AAAA,MAChE,SAAQ;AAAA,MACR;AAAA;AAAA,IAEC,eAAe,SAAS,IACvB,6BAAAA,QAAA,cAAC,aACC,6BAAAA,QAAA,cAAC,0BAAQ,MAAK,QAAM,OAAO,MAAM,OAAO,WAAY,GACnD,eAAe,IAAI,CAAC,SAAS,UAAU;AACtC,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA;AAAA,MACZ;AAAA,IAEJ,CAAC,CACH,IAEA;AAAA,IAEF,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;AAYR,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,MAAM;AACJ,QAAM,cAAc,GAAG,IAAI,IAAI,KAAK;AACpC,SACE,6BAAAA,QAAA,cAAC,oBAAK,SAAS,OAAO,UAAU,YAC9B,6BAAAA,QAAA,cAAC,+BACE,OAAO,MAAM,OAAO,OAAM,MAAG,QAAQ,CACxC,GACA,6BAAAA,QAAA,cAAC,+BACC,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,OAAO;AAAA;AAAA,EACb,CACF,GACA,6BAAAA,QAAA,cAAC,8BACC,6BAAAA,QAAA,cAAC,wBAAO,MAAK,UAAS,SAAQ,QAAO,SAAS,MAAM,SAAS,KAAK,KAC/D,OAAO,MAAM,OAAO,MACvB,CACF,CACF;AAEJ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MultiplicityField/types.ts"],
|
|
4
|
-
"sourcesContent": ["import { ErrorOption, UseFormReturn } from 'react-hook-form';\nimport { FieldSpec
|
|
4
|
+
"sourcesContent": ["import { ErrorOption, UseFormReturn } from 'react-hook-form';\nimport { FieldSpec, ControlledFieldProps } from '@digigov/form/Field/types';\n\nexport interface MultiplicityProps\n extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {\n name: string;\n control: UseFormReturn['control'];\n register: UseFormReturn['register'];\n trigger: UseFormReturn['trigger'];\n clearErrors: UseFormReturn['clearErrors'];\n formState: UseFormReturn['formState'];\n setValue: UseFormReturn['setValue'];\n getValues: UseFormReturn['getValues'];\n unregister: UseFormReturn['unregister'];\n error?: ErrorOption;\n extra?: Record<string, any>;\n label?: FieldSpec['label'];\n layout?: FieldSpec['layout'];\n}\n\nexport type StashedObject = Record<string, any>;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -54,7 +54,7 @@ const Questions = ({
|
|
|
54
54
|
(0, import_react.useEffect)(() => {
|
|
55
55
|
if (forceStepName !== currentStep.name) {
|
|
56
56
|
const forceStep = steps.find(({ name: name2 }) => name2 === forceStepName);
|
|
57
|
-
forceStep
|
|
57
|
+
if (forceStep) setCurrentStep(forceStep);
|
|
58
58
|
}
|
|
59
59
|
}, [forceStepName]);
|
|
60
60
|
const localData = isBrowser && localDraft && window.localStorage.getItem(`questions-${name}`);
|
|
@@ -64,15 +64,16 @@ const Questions = ({
|
|
|
64
64
|
const submitStep = (stepName, stepData) => {
|
|
65
65
|
data[stepName] = stepData;
|
|
66
66
|
if (localDraft) {
|
|
67
|
-
|
|
67
|
+
if (isBrowser)
|
|
68
|
+
window.localStorage.setItem(`questions-${name}`, JSON.stringify(data));
|
|
68
69
|
}
|
|
69
70
|
if (onChange) {
|
|
70
|
-
onChange
|
|
71
|
+
onChange(data);
|
|
71
72
|
}
|
|
72
73
|
setData(data);
|
|
73
74
|
const nextStep = (0, import_getNextStep.getNextStep)(currentStep, steps, data);
|
|
74
75
|
if (nextStep) {
|
|
75
|
-
onActiveStep
|
|
76
|
+
if (onActiveStep) onActiveStep(nextStep);
|
|
76
77
|
setCurrentStep(nextStep);
|
|
77
78
|
} else {
|
|
78
79
|
onSubmit(data);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Questions/Questions.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState, useEffect } from 'react';\nimport { getNextStep } from '@digigov/form/Questions/getNextStep';\nimport { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';\nimport { StepInterface } from '@digigov/form/Questions/Step/types';\nimport { QuestionsInterface } from '@digigov/form/Questions/types';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * The Question component accepts question data as props\n * uses composable components to provide a wholesome UX\n *\n */\nexport const Questions: React.FC<QuestionsInterface> = ({\n name,\n steps,\n initialData = {},\n onChange,\n onSubmit,\n onActiveStep,\n forceStepName,\n localDraft = false,\n children,\n}) => {\n const [currentStep, setCurrentStep] = useState<StepInterface>({ name: '' });\n useEffect(() => {\n if (!forceStepName) {\n setCurrentStep(steps[0]);\n }\n }, [forceStepName, steps]);\n useEffect(() => {\n if (forceStepName !== currentStep.name) {\n const forceStep = steps.find(({ name }) => name === forceStepName);\n forceStep
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAC3C,yBAA4B;AAC5B,8BAAiC;AAIjC,MAAM,YAAY,OAAO,WAAW;AAO7B,MAAM,YAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,cAAc,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAwB,EAAE,MAAM,GAAG,CAAC;AAC1E,8BAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB,qBAAe,MAAM,CAAC,CAAC;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,eAAe,KAAK,CAAC;AACzB,8BAAU,MAAM;AACd,QAAI,kBAAkB,YAAY,MAAM;AACtC,YAAM,YAAY,MAAM,KAAK,CAAC,EAAE,MAAAA,MAAK,MAAMA,UAAS,aAAa;AACjE,
|
|
4
|
+
"sourcesContent": ["import React, { useState, useEffect } from 'react';\nimport { getNextStep } from '@digigov/form/Questions/getNextStep';\nimport { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';\nimport { StepInterface } from '@digigov/form/Questions/Step/types';\nimport { QuestionsInterface } from '@digigov/form/Questions/types';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * The Question component accepts question data as props\n * uses composable components to provide a wholesome UX\n *\n */\nexport const Questions: React.FC<QuestionsInterface> = ({\n name,\n steps,\n initialData = {},\n onChange,\n onSubmit,\n onActiveStep,\n forceStepName,\n localDraft = false,\n children,\n}) => {\n const [currentStep, setCurrentStep] = useState<StepInterface>({ name: '' });\n useEffect(() => {\n if (!forceStepName) {\n setCurrentStep(steps[0]);\n }\n }, [forceStepName, steps]);\n useEffect(() => {\n if (forceStepName !== currentStep.name) {\n const forceStep = steps.find(({ name }) => name === forceStepName);\n if (forceStep) setCurrentStep(forceStep);\n }\n }, [forceStepName]);\n const localData =\n isBrowser && localDraft && window.localStorage.getItem(`questions-${name}`);\n const [data, setData] = useState(\n (localData && JSON.parse(localData)) || initialData\n );\n const submitStep = (stepName, stepData): void => {\n data[stepName] = stepData;\n if (localDraft) {\n if (isBrowser)\n window.localStorage.setItem(`questions-${name}`, JSON.stringify(data));\n }\n if (onChange) {\n onChange(data);\n }\n setData(data);\n const nextStep = getNextStep(currentStep, steps, data);\n if (nextStep) {\n if (onActiveStep) onActiveStep(nextStep);\n setCurrentStep(nextStep);\n } else {\n onSubmit(data);\n }\n };\n\n return (\n <QuestionsContext.Provider\n value={{\n steps,\n currentStep,\n submitStep,\n data,\n onActiveStep,\n }}\n >\n {children}\n </QuestionsContext.Provider>\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAC3C,yBAA4B;AAC5B,8BAAiC;AAIjC,MAAM,YAAY,OAAO,WAAW;AAO7B,MAAM,YAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA,cAAc,CAAC;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAwB,EAAE,MAAM,GAAG,CAAC;AAC1E,8BAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB,qBAAe,MAAM,CAAC,CAAC;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,eAAe,KAAK,CAAC;AACzB,8BAAU,MAAM;AACd,QAAI,kBAAkB,YAAY,MAAM;AACtC,YAAM,YAAY,MAAM,KAAK,CAAC,EAAE,MAAAA,MAAK,MAAMA,UAAS,aAAa;AACjE,UAAI,UAAW,gBAAe,SAAS;AAAA,IACzC;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAClB,QAAM,YACJ,aAAa,cAAc,OAAO,aAAa,QAAQ,aAAa,IAAI,EAAE;AAC5E,QAAM,CAAC,MAAM,OAAO,QAAI;AAAA,IACrB,aAAa,KAAK,MAAM,SAAS,KAAM;AAAA,EAC1C;AACA,QAAM,aAAa,CAAC,UAAU,aAAmB;AAC/C,SAAK,QAAQ,IAAI;AACjB,QAAI,YAAY;AACd,UAAI;AACF,eAAO,aAAa,QAAQ,aAAa,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC;AAAA,IACzE;AACA,QAAI,UAAU;AACZ,eAAS,IAAI;AAAA,IACf;AACA,YAAQ,IAAI;AACZ,UAAM,eAAW,gCAAY,aAAa,OAAO,IAAI;AACrD,QAAI,UAAU;AACZ,UAAI,aAAc,cAAa,QAAQ;AACvC,qBAAe,QAAQ;AAAA,IACzB,OAAO;AACL,eAAS,IAAI;AAAA,IACf;AAAA,EACF;AAEA,SACE,6BAAAC,QAAA;AAAA,IAAC,yCAAiB;AAAA,IAAjB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IAEC;AAAA,EACH;AAEJ;",
|
|
6
6
|
"names": ["name", "React"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/Questions/Step/StepArrayReview.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext } from 'react';\nimport { Field } from '@digigov/form/Field';\nimport { Fieldset } from '@digigov/form/Fieldset';\nimport FormBuilder from '@digigov/form/FormBuilder';\nimport Label from '@digigov/form/inputs/Label';\nimport { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';\nimport { getAddMoreFields } from '@digigov/form/Questions/Step/getAddMoreFields';\nimport { StepArrayReviewInterface } from '@digigov/form/Questions/Step/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport PageTitleContainer, {\n PageTitleHeading,\n} from '@digigov/ui/app/PageTitleContainer';\nimport {\n SummaryList,\n SummaryListItem,\n SummaryListItemKey,\n SummaryListItemValue,\n SummaryListItemAction,\n} from '@digigov/ui/content/SummaryList';\nimport Button from '@digigov/ui/form/Button';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport const StepArrayReview: React.FC<StepArrayReviewInterface> = (props) => {\n const { t } = useTranslation();\n const { currentStep } = useContext(QuestionsContext);\n const fields = getAddMoreFields(currentStep);\n const primaryField =\n currentStep.fields.find(\n (field: { key: any }) => field.key === currentStep.review?.primaryFieldKey\n ) || {};\n return (\n <>\n <PageTitleContainer>\n <PageTitleHeading>\n {currentStep.review?.title && t(currentStep.review?.title)}\n </PageTitleHeading>\n </PageTitleContainer>\n <SummaryList>\n {props.array.map(\n (item:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,mBAAsB;AACtB,sBAAyB;AACzB,yBAAwB;AACxB,mBAAkB;AAClB,8BAAiC;AACjC,8BAAiC;AAGjC,gCAEO;AACP,yBAMO;AACP,oBAAmB;AACnB,kBAA+B;AAExB,MAAM,kBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,EAAE,QAAI,4BAAe;AAC7B,QAAM,EAAE,YAAY,QAAI,yBAAW,wCAAgB;AACnD,QAAM,aAAS,0CAAiB,WAAW;AAC3C,QAAM,eACJ,YAAY,OAAO;AAAA,IACjB,CAAC,UAAwB,MAAM,QAAQ,YAAY,QAAQ;AAAA,EAC7D,KAAK,CAAC;AACR,SACE,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,0BAAAC,SAAA,MACC,6BAAAD,QAAA,cAAC,kDACE,YAAY,QAAQ,SAAS,EAAE,YAAY,QAAQ,KAAK,CAC3D,CACF,GACA,6BAAAA,QAAA,cAAC,sCACE,MAAM,MAAM;AAAA,IACX,CAAC,
|
|
4
|
+
"sourcesContent": ["import React, { useContext } from 'react';\nimport { Field } from '@digigov/form/Field';\nimport { Fieldset } from '@digigov/form/Fieldset';\nimport FormBuilder from '@digigov/form/FormBuilder';\nimport Label from '@digigov/form/inputs/Label';\nimport { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';\nimport { getAddMoreFields } from '@digigov/form/Questions/Step/getAddMoreFields';\nimport { StepArrayReviewInterface } from '@digigov/form/Questions/Step/types';\nimport { FieldSpec } from '@digigov/form/types';\nimport PageTitleContainer, {\n PageTitleHeading,\n} from '@digigov/ui/app/PageTitleContainer';\nimport {\n SummaryList,\n SummaryListItem,\n SummaryListItemKey,\n SummaryListItemValue,\n SummaryListItemAction,\n} from '@digigov/ui/content/SummaryList';\nimport Button from '@digigov/ui/form/Button';\nimport { useTranslation } from '@digigov/ui/i18n';\n\nexport const StepArrayReview: React.FC<StepArrayReviewInterface> = (props) => {\n const { t } = useTranslation();\n const { currentStep } = useContext(QuestionsContext);\n const fields = getAddMoreFields(currentStep);\n const primaryField =\n currentStep.fields.find(\n (field: { key: any }) => field.key === currentStep.review?.primaryFieldKey\n ) || {};\n return (\n <>\n <PageTitleContainer>\n <PageTitleHeading>\n {currentStep.review?.title && t(currentStep.review?.title)}\n </PageTitleHeading>\n </PageTitleContainer>\n <SummaryList>\n {props.array.map(\n (item: Record<string, React.ReactNode>, idx: number) => (\n <SummaryListItem key={idx}>\n <SummaryListItemKey>\n {t(primaryField.label.primary)}\n </SummaryListItemKey>\n <SummaryListItemValue>\n {item[primaryField.key]}\n </SummaryListItemValue>\n <SummaryListItemAction\n onClick={(): void => props.handleDelete(idx)}\n >\n {t('button.delete')}\n </SummaryListItemAction>\n </SummaryListItem>\n )\n )}\n </SummaryList>\n <FormBuilder key=\"addmore\" fields={fields} onSubmit={props.handleSubmit}>\n <Fieldset>\n <Label label={currentStep.review?.addMore.title} />\n {fields.map((field: FieldSpec) => (\n <Field key={field.key} name={field.key} />\n ))}\n </Fieldset>\n <Button type=\"submit\">{t('button.submit')}</Button>\n </FormBuilder>\n </>\n );\n};\n\nexport default StepArrayReview;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,mBAAsB;AACtB,sBAAyB;AACzB,yBAAwB;AACxB,mBAAkB;AAClB,8BAAiC;AACjC,8BAAiC;AAGjC,gCAEO;AACP,yBAMO;AACP,oBAAmB;AACnB,kBAA+B;AAExB,MAAM,kBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,EAAE,QAAI,4BAAe;AAC7B,QAAM,EAAE,YAAY,QAAI,yBAAW,wCAAgB;AACnD,QAAM,aAAS,0CAAiB,WAAW;AAC3C,QAAM,eACJ,YAAY,OAAO;AAAA,IACjB,CAAC,UAAwB,MAAM,QAAQ,YAAY,QAAQ;AAAA,EAC7D,KAAK,CAAC;AACR,SACE,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,0BAAAC,SAAA,MACC,6BAAAD,QAAA,cAAC,kDACE,YAAY,QAAQ,SAAS,EAAE,YAAY,QAAQ,KAAK,CAC3D,CACF,GACA,6BAAAA,QAAA,cAAC,sCACE,MAAM,MAAM;AAAA,IACX,CAAC,MAAuC,QACtC,6BAAAA,QAAA,cAAC,sCAAgB,KAAK,OACpB,6BAAAA,QAAA,cAAC,6CACE,EAAE,aAAa,MAAM,OAAO,CAC/B,GACA,6BAAAA,QAAA,cAAC,+CACE,KAAK,aAAa,GAAG,CACxB,GACA,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAY,MAAM,aAAa,GAAG;AAAA;AAAA,MAE1C,EAAE,eAAe;AAAA,IACpB,CACF;AAAA,EAEJ,CACF,GACA,6BAAAA,QAAA,cAAC,mBAAAE,SAAA,EAAY,KAAI,WAAU,QAAgB,UAAU,MAAM,gBACzD,6BAAAF,QAAA,cAAC,gCACC,6BAAAA,QAAA,cAAC,aAAAG,SAAA,EAAM,OAAO,YAAY,QAAQ,QAAQ,OAAO,GAChD,OAAO,IAAI,CAAC,UACX,6BAAAH,QAAA,cAAC,sBAAM,KAAK,MAAM,KAAK,MAAM,MAAM,KAAK,CACzC,CACH,GACA,6BAAAA,QAAA,cAAC,cAAAI,SAAA,EAAO,MAAK,YAAU,EAAE,eAAe,CAAE,CAC5C,CACF;AAEJ;AAEA,IAAO,0BAAQ;",
|
|
6
6
|
"names": ["React", "PageTitleContainer", "FormBuilder", "Label", "Button"]
|
|
7
7
|
}
|
|
@@ -41,7 +41,6 @@ const AutoCompleteInput = ({
|
|
|
41
41
|
extra: { options },
|
|
42
42
|
onChange,
|
|
43
43
|
value,
|
|
44
|
-
error,
|
|
45
44
|
...props
|
|
46
45
|
}) => {
|
|
47
46
|
const suggest = (0, import_react.useCallback)(
|
|
@@ -62,7 +61,8 @@ const AutoCompleteInput = ({
|
|
|
62
61
|
onConfirm: (value2) => {
|
|
63
62
|
if (Array.isArray(value2)) {
|
|
64
63
|
const selectedValues = value2.map((item) => item.value);
|
|
65
|
-
selectedValues.length > 0
|
|
64
|
+
if (selectedValues.length > 0) onChange(selectedValues);
|
|
65
|
+
else onChange(void 0);
|
|
66
66
|
} else {
|
|
67
67
|
onChange(value2.value);
|
|
68
68
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/inputs/AutoCompleteInput/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback } from 'react';\nimport { ControlledFieldProps } from '@digigov/form/Field/types';\nimport { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport {\n AutoComplete,\n AutoCompleteProps as UIAutoCompleteProps,\n} from '@digigov/ui/form/AutoComplete';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface AutoCompleteInputExtra\n extends Omit<\n UIAutoCompleteProps,\n | 'source'\n | 'id'\n | 'templates'\n | 'defaultValue'\n | 'onConfirm'\n | 'dropdownArrow'\n > {\n options:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAGnC,0BAGO;AACP,kBAAqB;AACrB,kBAAqB;AAqBd,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,OAAO,EAAE,QAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA
|
|
4
|
+
"sourcesContent": ["import React, { useCallback } from 'react';\nimport { ControlledFieldProps } from '@digigov/form/Field/types';\nimport { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport {\n AutoComplete,\n AutoCompleteProps as UIAutoCompleteProps,\n} from '@digigov/ui/form/AutoComplete';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface AutoCompleteInputExtra\n extends Omit<\n UIAutoCompleteProps,\n | 'source'\n | 'id'\n | 'templates'\n | 'defaultValue'\n | 'onConfirm'\n | 'dropdownArrow'\n > {\n options: FieldOptionProps[];\n}\n\nexport interface AutoCompleteInputProps\n extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'extra'> {\n extra: AutoCompleteInputExtra;\n value: string;\n onChange: (v: string | string[] | undefined) => void;\n}\n\nexport const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({\n name,\n type,\n extra: { options },\n onChange,\n value,\n ...props\n}) => {\n const suggest = useCallback(\n function suggest(\n query: string,\n syncResults: (options: any[]) => void\n ): void {\n syncResults(\n query\n ? options.filter(function (option) {\n return (\n `${option.value} ${option.label?.primary || ''} ${\n option.label?.secondary || ''\n }`\n .toLowerCase()\n .indexOf(query.toLowerCase()) !== -1\n );\n })\n : options\n );\n },\n [options]\n );\n\n return (\n <AutoComplete\n multiple={type === 'choice:multiple' ? true : false}\n source={suggest}\n onConfirm={(value) => {\n if (Array.isArray(value)) {\n const selectedValues = value.map((item) => item.value);\n if (selectedValues.length > 0) onChange(selectedValues);\n else onChange(undefined);\n } else {\n onChange(value.value);\n }\n }}\n templates={{\n suggestion({ label, value }) {\n return (\n <Base as=\"div\">\n {(label && label.primary && label.primary) || value}\n {label && label.secondary && <Hint>{label.secondary}</Hint>}\n </Base>\n );\n },\n inputValue: (option) => {\n if (!option) {\n return '';\n }\n return option.label.primary || option.value;\n },\n }}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n }}\n name={name}\n id={`${name}-id`}\n defaultValue={value}\n />\n );\n};\n\nexport default AutoCompleteInput;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAGnC,0BAGO;AACP,kBAAqB;AACrB,kBAAqB;AAqBd,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,OAAO,EAAE,QAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,cAAU;AAAA,IACd,SAASA,SACP,OACA,aACM;AACN;AAAA,QACE,QACI,QAAQ,OAAO,SAAU,QAAQ;AAC/B,iBACE,GAAG,OAAO,KAAK,IAAI,OAAO,OAAO,WAAW,EAAE,IAC5C,OAAO,OAAO,aAAa,EAC7B,GACG,YAAY,EACZ,QAAQ,MAAM,YAAY,CAAC,MAAM;AAAA,QAExC,CAAC,IACD;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SACE,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,SAAS,oBAAoB,OAAO;AAAA,MAC9C,QAAQ;AAAA,MACR,WAAW,CAACC,WAAU;AACpB,YAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,gBAAM,iBAAiBA,OAAM,IAAI,CAAC,SAAS,KAAK,KAAK;AACrD,cAAI,eAAe,SAAS,EAAG,UAAS,cAAc;AAAA,cACjD,UAAS,MAAS;AAAA,QACzB,OAAO;AACL,mBAASA,OAAM,KAAK;AAAA,QACtB;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT,WAAW,EAAE,OAAO,OAAAA,OAAM,GAAG;AAC3B,iBACE,6BAAAD,QAAA,cAAC,oBAAK,IAAG,SACL,SAAS,MAAM,WAAW,MAAM,WAAYC,QAC7C,SAAS,MAAM,aAAa,6BAAAD,QAAA,cAAC,wBAAM,MAAM,SAAU,CACtD;AAAA,QAEJ;AAAA,QACA,YAAY,CAAC,WAAW;AACtB,cAAI,CAAC,QAAQ;AACX,mBAAO;AAAA,UACT;AACA,iBAAO,OAAO,MAAM,WAAW,OAAO;AAAA,QACxC;AAAA,MACF;AAAA,MACC,GAAG;AAAA,QACF,GAAG;AAAA,QACH,OAAO;AAAA,QACP,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA,IAAI,GAAG,IAAI;AAAA,MACX,cAAc;AAAA;AAAA,EAChB;AAEJ;AAEA,IAAO,4BAAQ;",
|
|
6
6
|
"names": ["suggest", "React", "value"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/inputs/Checkboxes/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState } from 'react';\nimport { ControlledFieldProps } from '@digigov/form/Field/types';\nimport { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport {\n Checkbox,\n CheckboxItem,\n CheckboxConditional,\n} from '@digigov/ui/form/Checkbox';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nexport interface CheckboxesProps\n extends Omit<ControlledFieldProps, 'extra' | 'value'> {\n value?: string[];\n extra: {\n className?: string;\n options:
|
|
4
|
+
"sourcesContent": ["import React, { useState } from 'react';\nimport { ControlledFieldProps } from '@digigov/form/Field/types';\nimport { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport {\n Checkbox,\n CheckboxItem,\n CheckboxConditional,\n} from '@digigov/ui/form/Checkbox';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nexport interface CheckboxesProps\n extends Omit<ControlledFieldProps, 'extra' | 'value'> {\n value?: string[];\n extra: {\n className?: string;\n options: FieldOptionProps[];\n };\n fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;\n}\n\nexport const Checkboxes: React.FC<CheckboxesProps> = ({\n name,\n onChange,\n value,\n extra: { options, className },\n disabled,\n Field,\n ...props\n}) => {\n if (!value) value = [];\n const handleChange =\n (optionValue, idx, show) =>\n (evt): void => {\n let newValue;\n if (evt.currentTarget.checked) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n newValue = value.concat([optionValue]);\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n newValue = value.filter((val) => val !== optionValue);\n }\n if (show && show.length > 0) {\n setChecked((items) =>\n items.map((item, index) => (index === idx ? !item : item))\n );\n }\n\n // reset value to undefined instead of an empty array\n // so the error state mechanism can throw validation errors\n if (newValue.length === 0) newValue = undefined;\n onChange(newValue);\n };\n const { t } = useTranslation();\n const [checked, setChecked] = useState(\n Array<boolean>(options.length).fill(false)\n );\n return (\n <Checkbox className={className}>\n {options.map(\n (\n {\n label,\n value: v,\n show,\n disabled: optionDisabled,\n selected,\n ...option\n },\n index\n ) => (\n <React.Fragment key={index}>\n <CheckboxItem\n key={`${name}.${index}`}\n name={`${name}.${v}`}\n value={v}\n disabled={disabled || optionDisabled}\n checked={value?.includes(v)}\n onChange={handleChange(v, index, show)}\n {...option}\n {...{\n ...props,\n reset: undefined,\n defaultValue: undefined,\n onBlur: undefined,\n required: undefined,\n 'aria-describedby': undefined,\n type: 'checkbox',\n }}\n >\n {(label && label.primary && t(label.primary)) || value}\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n </CheckboxItem>\n\n {!!checked[index] && show && Field && (\n <CheckboxConditional>\n {show.map((fieldName) => (\n <Field name={fieldName} key={fieldName} />\n ))}\n </CheckboxConditional>\n )}\n {selected && selected()}\n </React.Fragment>\n )\n )}\n </Checkbox>\n );\n};\n\nexport default Checkboxes;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAGhC,sBAIO;AACP,kBAA+B;AAC/B,kBAAqB;AAYd,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO,EAAE,SAAS,UAAU;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,CAAC,MAAO,SAAQ,CAAC;AACrB,QAAM,eACJ,CAAC,aAAa,KAAK,SACnB,CAAC,QAAc;AACb,QAAI;AACJ,QAAI,IAAI,cAAc,SAAS;AAG7B,iBAAW,MAAM,OAAO,CAAC,WAAW,CAAC;AAAA,IACvC,OAAO;AAGL,iBAAW,MAAM,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAAA,IACtD;AACA,QAAI,QAAQ,KAAK,SAAS,GAAG;AAC3B;AAAA,QAAW,CAAC,UACV,MAAM,IAAI,CAAC,MAAM,UAAW,UAAU,MAAM,CAAC,OAAO,IAAK;AAAA,MAC3D;AAAA,IACF;AAIA,QAAI,SAAS,WAAW,EAAG,YAAW;AACtC,aAAS,QAAQ;AAAA,EACnB;AACF,QAAM,EAAE,EAAE,QAAI,4BAAe;AAC7B,QAAM,CAAC,SAAS,UAAU,QAAI;AAAA,IAC5B,MAAe,QAAQ,MAAM,EAAE,KAAK,KAAK;AAAA,EAC3C;AACA,SACE,6BAAAA,QAAA,cAAC,4BAAS,aACP,QAAQ;AAAA,IACP,CACE;AAAA,MACE;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA,GAAG;AAAA,IACL,GACA,UAEA,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,EAAe,KAAK,SACnB,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,QACrB,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,QAClB,OAAO;AAAA,QACP,UAAU,YAAY;AAAA,QACtB,SAAS,OAAO,SAAS,CAAC;AAAA,QAC1B,UAAU,aAAa,GAAG,OAAO,IAAI;AAAA,QACpC,GAAG;AAAA,QACH,GAAG;AAAA,UACF,GAAG;AAAA,UACH,OAAO;AAAA,UACP,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,oBAAoB;AAAA,UACpB,MAAM;AAAA,QACR;AAAA;AAAA,MAEE,SAAS,MAAM,WAAW,EAAE,MAAM,OAAO,KAAM;AAAA,MAChD,SAAS,MAAM,aAAa,6BAAAA,QAAA,cAAC,wBAAM,EAAE,MAAM,SAAS,CAAE;AAAA,IACzD,GAEC,CAAC,CAAC,QAAQ,KAAK,KAAK,QAAQ,SAC3B,6BAAAA,QAAA,cAAC,2CACE,KAAK,IAAI,CAAC,cACT,6BAAAA,QAAA,cAAC,SAAM,MAAM,WAAW,KAAK,WAAW,CACzC,CACH,GAED,YAAY,SAAS,CACxB;AAAA,EAEJ,CACF;AAEJ;AAEA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -55,18 +55,18 @@ function useDate(value, onChange) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
function setYear(evt) {
|
|
58
|
-
const val = evt.target.value;
|
|
58
|
+
const val = evt.target.value.trim();
|
|
59
59
|
set(val, month, day);
|
|
60
60
|
}
|
|
61
61
|
function setMonth(evt, cast) {
|
|
62
|
-
let val = evt.target.value;
|
|
62
|
+
let val = evt.target.value.trim();
|
|
63
63
|
if (cast && val && val.length === 1) {
|
|
64
64
|
val = "0" + val;
|
|
65
65
|
}
|
|
66
66
|
set(year, val, day);
|
|
67
67
|
}
|
|
68
68
|
function setDay(evt, cast) {
|
|
69
|
-
let val = evt.target.value;
|
|
69
|
+
let val = evt.target.value.trim();
|
|
70
70
|
if (cast && val && val.length === 1) {
|
|
71
71
|
val = "0" + val;
|
|
72
72
|
}
|
|
@@ -92,7 +92,7 @@ const makeDate = (val) => {
|
|
|
92
92
|
const DatePart = ({ label, ...props }) => {
|
|
93
93
|
return /* @__PURE__ */ import_react.default.createElement(import_DateInputContainer.DateInputItem, { ...props }, label);
|
|
94
94
|
};
|
|
95
|
-
const DateInput = ({ name,
|
|
95
|
+
const DateInput = ({ name, ...props }) => {
|
|
96
96
|
const { t } = (0, import_i18n.useTranslation)();
|
|
97
97
|
const [initial] = (0, import_react.useState)(props.value);
|
|
98
98
|
const value = (0, import_react.useMemo)(() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/inputs/DateInput/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo, useState } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport {\n DateInputContainer,\n DateInputItem,\n} from '@digigov/ui/form/DateInputContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\ndayjs.extend(customParseFormat);\n\nexport interface DateInputProps extends Omit<UncontrolledFieldProps, 'extra'> {\n extra?: {\n max?: string;\n min?: string;\n };\n}\n\nfunction useDate(value, onChange) {\n const [year, month, day] = useMemo(() => {\n if (!value || value.length === 0) {\n onChange('');\n return ['', '', ''];\n }\n const [day, month, year] = value.split('/');\n return [year, month, day];\n }, [value]);\n\n function set(year, month, day) {\n const value = `${day || ''}/${month || ''}/${year || ''}`;\n if (!year && !month && !day) {\n onChange(null);\n } else {\n onChange(value);\n }\n }\n\n function setYear(evt) {\n const val = evt.target.value;\n set(val, month, day);\n }\n\n function setMonth(evt, cast) {\n let val = evt.target.value;\n if (cast && val && val.length === 1) {\n val = '0' + val;\n }\n set(year, val, day);\n }\n\n function setDay(evt, cast) {\n let val = evt.target.value;\n if (cast && val && val.length === 1) {\n val = '0' + val;\n }\n set(year, month, val);\n }\n\n return {\n day,\n month,\n year,\n setYear,\n setMonth,\n setDay,\n };\n}\n\nconst VALID_FORMATS = ['DD/MM/YYYY'];\n\nconst makeDate = (val) => {\n const date = dayjs(val, VALID_FORMATS, true);\n if (date.isValid()) {\n return date.format('DD/MM/YYYY');\n }\n return '';\n};\n\nconst DatePart = ({ label, ...props }) => {\n return <DateInputItem {...props}>{label}</DateInputItem>;\n};\n\nexport const DateInput = ({ name,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AACzC,mBAAkB;AAClB,+BAA8B;AAE9B,gCAGO;AACP,kBAA+B;AAC/B,aAAAA,QAAM,OAAO,yBAAAC,OAAiB;AAS9B,SAAS,QAAQ,OAAO,UAAU;AAChC,QAAM,CAAC,MAAM,OAAO,GAAG,QAAI,sBAAQ,MAAM;AACvC,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,eAAS,EAAE;AACX,aAAO,CAAC,IAAI,IAAI,EAAE;AAAA,IACpB;AACA,UAAM,CAACC,MAAKC,QAAOC,KAAI,IAAI,MAAM,MAAM,GAAG;AAC1C,WAAO,CAACA,OAAMD,QAAOD,IAAG;AAAA,EAC1B,GAAG,CAAC,KAAK,CAAC;AAEV,WAAS,IAAIE,OAAMD,QAAOD,MAAK;AAC7B,UAAMG,SAAQ,GAAGH,QAAO,EAAE,IAAIC,UAAS,EAAE,IAAIC,SAAQ,EAAE;AACvD,QAAI,CAACA,SAAQ,CAACD,UAAS,CAACD,MAAK;AAC3B,eAAS,IAAI;AAAA,IACf,OAAO;AACL,eAASG,MAAK;AAAA,IAChB;AAAA,EACF;AAEA,WAAS,QAAQ,KAAK;AACpB,UAAM,MAAM,IAAI,OAAO;
|
|
4
|
+
"sourcesContent": ["import React, { useMemo, useState } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport {\n DateInputContainer,\n DateInputItem,\n} from '@digigov/ui/form/DateInputContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\ndayjs.extend(customParseFormat);\n\nexport interface DateInputProps extends Omit<UncontrolledFieldProps, 'extra'> {\n extra?: {\n max?: string;\n min?: string;\n };\n}\n\nfunction useDate(value, onChange) {\n const [year, month, day] = useMemo(() => {\n if (!value || value.length === 0) {\n onChange('');\n return ['', '', ''];\n }\n const [day, month, year] = value.split('/');\n return [year, month, day];\n }, [value]);\n\n function set(year, month, day) {\n const value = `${day || ''}/${month || ''}/${year || ''}`;\n if (!year && !month && !day) {\n onChange(null);\n } else {\n onChange(value);\n }\n }\n\n function setYear(evt) {\n const val = evt.target.value.trim();\n set(val, month, day);\n }\n\n function setMonth(evt, cast) {\n let val = evt.target.value.trim();\n if (cast && val && val.length === 1) {\n val = '0' + val;\n }\n set(year, val, day);\n }\n\n function setDay(evt, cast) {\n let val = evt.target.value.trim();\n if (cast && val && val.length === 1) {\n val = '0' + val;\n }\n set(year, month, val);\n }\n\n return {\n day,\n month,\n year,\n setYear,\n setMonth,\n setDay,\n };\n}\n\nconst VALID_FORMATS = ['DD/MM/YYYY'];\n\nconst makeDate = (val) => {\n const date = dayjs(val, VALID_FORMATS, true);\n if (date.isValid()) {\n return date.format('DD/MM/YYYY');\n }\n return '';\n};\n\nconst DatePart = ({ label, ...props }) => {\n return <DateInputItem {...props}>{label}</DateInputItem>;\n};\n\nexport const DateInput = ({ name, ...props }) => {\n const { t } = useTranslation();\n const [initial] = useState(props.value);\n const value = useMemo(() => {\n if (initial === props.value) {\n return makeDate(props.value);\n }\n return props.value;\n }, [props.value, initial]);\n\n const date = useDate(value || makeDate(props.defaultValue), props.onChange);\n\n return (\n <DateInputContainer>\n <DatePart\n label={t('form.label.day')}\n onChange={date.setDay}\n onBlur={(e) => date.setDay(e, true)}\n value={date.day}\n width={2}\n name={`${name}-day`}\n maxLength=\"2\"\n disabled={props.disabled}\n aria-required={props['aria-required']}\n error={!date.day ? props.error : false}\n />\n <DatePart\n label={t('form.label.month')}\n onChange={date.setMonth}\n onBlur={(e) => date.setMonth(e, true)}\n value={date.month}\n width={2}\n name={`${name}-month`}\n maxLength=\"2\"\n disabled={props.disabled}\n aria-required={props['aria-required']}\n error={!date.month ? props.error : false}\n />\n <DatePart\n label={t('form.label.year')}\n onChange={date.setYear}\n value={date.year}\n width={4}\n name={`${name}-year`}\n maxLength=\"4\"\n disabled={props.disabled}\n aria-required={props['aria-required']}\n error={!date.year ? props.error : false}\n />\n </DateInputContainer>\n );\n};\n\nexport default DateInput;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["dayjs", "customParseFormat", "day", "month", "year", "value", "React"]
|
|
7
7
|
}
|
|
@@ -37,7 +37,7 @@ var import_FileUpload = require("@digigov/ui/form/FileUpload");
|
|
|
37
37
|
var import_i18n = require("@digigov/ui/i18n");
|
|
38
38
|
var import_Hint = require("@digigov/ui/typography/Hint");
|
|
39
39
|
var import_Paragraph = require("@digigov/ui/typography/Paragraph");
|
|
40
|
-
const FileInput = import_react.default.forwardRef(function FileInput2({ name,
|
|
40
|
+
const FileInput = import_react.default.forwardRef(function FileInput2({ name, disabled, reset, onChange, ...props }, ref) {
|
|
41
41
|
const { t } = (0, import_i18n.useTranslation)();
|
|
42
42
|
const [files, setFiles] = (0, import_react.useState)([]);
|
|
43
43
|
const handleChange = (e) => {
|