@digigov/form 2.0.0-2a26e869 → 2.0.0-30d44ed9
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/FieldBase/index.js +7 -3
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +37 -18
- package/Field/FieldBaseContainer.d.ts +1 -1
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/FieldConditional/index.js +4 -0
- package/Field/FieldConditional.js.map +2 -2
- package/Field/index.js +15 -4
- package/Field/index.js.map +2 -2
- package/Field/types.d.ts +13 -3
- package/Field/utils/index.js +9 -1
- package/Field/utils/index.js.map +2 -2
- package/Field/utils/useField/index.js +14 -1
- package/Field/utils/useField.js.map +2 -2
- package/FieldArray/FieldArray.stories.d.ts +1 -0
- package/FieldArray/FormDialog/index.js +397 -0
- package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog}/package.json +1 -1
- package/FieldArray/FormDialog.d.ts +66 -0
- package/FieldArray/FormDialog.js.map +7 -0
- package/FieldArray/__stories__/Default.d.ts +1 -1
- package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
- package/FieldArray/__stories__/WithModal.d.ts +2 -0
- package/FieldArray/index.d.ts +6 -0
- package/FieldArray/index.js +82 -24
- package/FieldArray/index.js.map +2 -2
- package/FieldObject/index.d.ts +5 -0
- package/FieldObject/index.js +30 -15
- package/FieldObject/index.js.map +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
- package/FormBuilder/__stories__/Default.d.ts +1 -1
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
- package/FormBuilder/index.d.ts +1 -1
- package/FormBuilder/index.js +11 -7
- package/FormBuilder/index.js.map +2 -2
- package/FormContext/index.js +6 -2
- package/FormContext.d.ts +1 -0
- package/FormContext.js.map +2 -2
- package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
- package/MultiplicityField/__stories__/Default.d.ts +1 -1
- package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
- package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
- package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
- package/MultiplicityField/add-objects/index.js +2 -0
- package/MultiplicityField/add-objects.js.map +2 -2
- package/MultiplicityField/index.js +4 -1
- package/MultiplicityField/index.js.map +2 -2
- package/MultiplicityField/types.d.ts +1 -0
- package/Questions/Questions.stories.d.ts +2 -0
- package/Questions/__stories__/Default.d.ts +1 -1
- package/cjs/Field/FieldBase/index.js +7 -3
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +36 -17
- package/cjs/Field/FieldBaseContainer.js.map +3 -3
- package/cjs/Field/FieldConditional/index.js +4 -0
- package/cjs/Field/FieldConditional.js.map +2 -2
- package/cjs/Field/index.js +15 -4
- package/cjs/Field/index.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/Field/utils/index.js +9 -1
- package/cjs/Field/utils/index.js.map +3 -3
- package/cjs/Field/utils/useField/index.js +14 -1
- package/cjs/Field/utils/useField.js.map +2 -2
- package/cjs/FieldArray/FormDialog/index.js +416 -0
- package/cjs/FieldArray/FormDialog.js.map +7 -0
- package/cjs/FieldArray/index.js +81 -23
- package/cjs/FieldArray/index.js.map +2 -2
- package/cjs/FieldObject/index.js +30 -15
- package/cjs/FieldObject/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +11 -7
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/FormContext/index.js +7 -2
- package/cjs/FormContext.js.map +2 -2
- package/cjs/MultiplicityField/add-objects/index.js +2 -0
- package/cjs/MultiplicityField/add-objects.js.map +2 -2
- package/cjs/MultiplicityField/index.js +4 -1
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/MultiplicityField/types.js.map +1 -1
- package/cjs/inputs/AutoCompleteInput/index.js +2 -1
- package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
- package/cjs/inputs/Checkboxes/index.js +3 -1
- package/cjs/inputs/Checkboxes/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +44 -14
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/DateTimeInput/index.js +245 -0
- package/cjs/inputs/DateTimeInput/index.js.map +7 -0
- package/cjs/inputs/FileInput/index.js +68 -30
- package/cjs/inputs/FileInput/index.js.map +2 -2
- package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/cjs/inputs/ImageInput/index.js +48 -11
- package/cjs/inputs/ImageInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +8 -1
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/inputs/OtpInput/index.js +1 -0
- package/cjs/inputs/OtpInput/index.js.map +2 -2
- package/cjs/inputs/Radio/index.js +1 -0
- package/cjs/inputs/Radio/index.js.map +2 -2
- package/cjs/inputs/Select/index.js +9 -2
- package/cjs/inputs/Select/index.js.map +2 -2
- package/cjs/inputs/inputsScenarios/index.js +2 -2
- package/cjs/inputs/inputsScenarios.js.map +2 -2
- package/cjs/lazy/index.js +10 -1
- package/cjs/lazy.js.map +2 -2
- package/cjs/registry/index.js +12 -6
- package/cjs/registry.js.map +2 -2
- package/cjs/types.js.map +1 -1
- package/cjs/utils/index.js +20 -6
- package/cjs/utils.js.map +2 -2
- package/cjs/validators/index.js +21 -7
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/amka/index.js +60 -0
- package/cjs/validators/utils/amka.js.map +7 -0
- package/cjs/validators/utils/date/index.js +26 -3
- package/cjs/validators/utils/date.js.map +2 -2
- package/cjs/validators/utils/datetime/index.js +245 -0
- package/cjs/validators/utils/datetime.js.map +7 -0
- package/cjs/validators/utils/file/index.js +30 -17
- package/cjs/validators/utils/file.js.map +2 -2
- package/cjs/validators/utils/index.js +8 -2
- package/cjs/validators/utils/index.js.map +2 -2
- package/index.js +1 -1
- package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
- package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
- package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
- package/inputs/AutoCompleteInput/index.js +2 -1
- package/inputs/AutoCompleteInput/index.js.map +2 -2
- package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
- package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
- package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Checkboxes/index.js +3 -1
- package/inputs/Checkboxes/index.js.map +2 -2
- package/inputs/DateInput/DateInput.stories.d.ts +6 -0
- package/inputs/DateInput/__stories__/Default.d.ts +1 -1
- package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateInput/index.js +45 -15
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +14 -0
- package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
- package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
- package/inputs/DateTimeInput/index.d.ts +13 -0
- package/inputs/DateTimeInput/index.js +215 -0
- package/inputs/DateTimeInput/index.js.map +7 -0
- package/inputs/DateTimeInput/index.test.d.ts +1 -0
- package/inputs/DateTimeInput/package.json +6 -0
- package/inputs/FileInput/FileInput.stories.d.ts +3 -0
- package/inputs/FileInput/__stories__/Default.d.ts +1 -1
- package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
- package/inputs/FileInput/index.d.ts +17 -1
- package/inputs/FileInput/index.js +73 -32
- package/inputs/FileInput/index.js.map +2 -2
- package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
- package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
- package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
- package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
- package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
- package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
- package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
- package/inputs/ImageInput/index.d.ts +9 -1
- package/inputs/ImageInput/index.js +49 -12
- package/inputs/ImageInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +4 -0
- package/inputs/Input/__stories__/AFM.d.ts +1 -1
- package/inputs/Input/__stories__/AMKA.d.ts +3 -0
- package/inputs/Input/__stories__/Boolean.d.ts +1 -1
- package/inputs/Input/__stories__/Email.d.ts +3 -0
- package/inputs/Input/__stories__/IBAN.d.ts +1 -1
- package/inputs/Input/__stories__/Integer.d.ts +1 -1
- package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
- package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
- package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
- package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
- package/inputs/Input/__stories__/String.d.ts +1 -1
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
- package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
- package/inputs/Input/index.d.ts +2 -1
- package/inputs/Input/index.js +8 -1
- package/inputs/Input/index.js.map +2 -2
- package/inputs/Label/Label.stories.d.ts +2 -0
- package/inputs/Label/__stories__/Default.d.ts +1 -1
- package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
- package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
- package/inputs/OtpInput/index.js +1 -0
- package/inputs/OtpInput/index.js.map +2 -2
- package/inputs/Radio/Radio.stories.d.ts +2 -0
- package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
- package/inputs/Radio/__stories__/Default.d.ts +1 -1
- package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
- package/inputs/Radio/index.js +1 -0
- package/inputs/Radio/index.js.map +2 -2
- package/inputs/Select/Select.stories.d.ts +2 -0
- package/inputs/Select/__stories__/Default.d.ts +1 -1
- package/inputs/Select/index.d.ts +2 -1
- package/inputs/Select/index.js +9 -2
- package/inputs/Select/index.js.map +2 -2
- package/inputs/inputsScenarios/index.js +2 -2
- package/inputs/inputsScenarios.d.ts +1 -1
- package/inputs/inputsScenarios.js.map +2 -2
- package/lazy/index.js +10 -1
- package/package.json +8 -8
- package/registry/index.js +12 -6
- package/src/Field/FieldBase.tsx +6 -2
- package/src/Field/FieldBaseContainer.tsx +68 -46
- package/src/Field/FieldConditional.tsx +4 -0
- package/src/Field/doc.mdx +202 -1
- package/src/Field/index.tsx +20 -5
- package/src/Field/types.tsx +15 -3
- package/src/Field/utils/index.ts +8 -0
- package/src/Field/utils/useField.ts +14 -2
- package/src/FieldArray/FieldArray.stories.js +1 -0
- package/src/FieldArray/FormDialog.tsx +565 -0
- package/src/FieldArray/__stories__/Default.tsx +2 -1
- package/src/FieldArray/__stories__/WithExactLength.tsx +2 -1
- package/src/FieldArray/__stories__/WithModal.tsx +160 -0
- package/src/FieldArray/index.test.tsx +8 -0
- package/src/FieldArray/index.tsx +112 -48
- package/src/FieldObject/index.tsx +39 -18
- package/src/FormBuilder/FormBuilder.stories.js +3 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
- package/src/FormBuilder/__stories__/Default.tsx +1 -1
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
- package/src/FormBuilder/doc.mdx +9 -4
- package/src/FormBuilder/index.test.tsx +20 -17
- package/src/FormBuilder/index.tsx +12 -7
- package/src/FormBuilder/interaction.test.tsx +8 -0
- package/src/FormBuilder/scenarios.test.tsx +771 -6
- package/src/FormContext.tsx +5 -1
- package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
- package/src/MultiplicityField/__stories__/Default.tsx +1 -1
- package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
- package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
- package/src/MultiplicityField/add-objects.tsx +2 -0
- package/src/MultiplicityField/doc.mdx +101 -83
- package/src/MultiplicityField/index.test.tsx +4 -0
- package/src/MultiplicityField/index.tsx +3 -0
- package/src/MultiplicityField/types.ts +1 -0
- package/src/Questions/Questions.stories.js +3 -0
- package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
- package/src/Questions/__stories__/Default.tsx +1 -1
- package/src/Questions/doc.mdx +21 -41
- package/src/Questions/index.test.tsx +4 -0
- package/src/doc.mdx +26 -11
- package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
- package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
- package/src/inputs/AutoCompleteInput/index.tsx +1 -0
- package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
- package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
- package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Checkboxes/index.test.tsx +4 -0
- package/src/inputs/Checkboxes/index.tsx +3 -5
- package/src/inputs/DateInput/DateInput.stories.js +7 -0
- package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
- package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateInput/index.test.tsx +20 -0
- package/src/inputs/DateInput/index.tsx +49 -14
- package/src/inputs/DateTimeInput/DateTimeInput.stories.js +14 -0
- package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
- package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
- package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
- package/src/inputs/DateTimeInput/doc.mdx +16 -0
- package/src/inputs/DateTimeInput/index.test.tsx +40 -0
- package/src/inputs/DateTimeInput/index.tsx +233 -0
- package/src/inputs/FileInput/FileInput.stories.js +4 -0
- package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
- package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
- package/src/inputs/FileInput/index.test.tsx +8 -0
- package/src/inputs/FileInput/index.tsx +104 -38
- package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
- package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
- package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
- package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
- package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
- package/src/inputs/ImageInput/__stories__/logo.png +0 -0
- package/src/inputs/ImageInput/index.test.tsx +8 -4
- package/src/inputs/ImageInput/index.tsx +100 -42
- package/src/inputs/Input/Input.stories.js +5 -0
- package/src/inputs/Input/__stories__/AFM.tsx +1 -1
- package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
- package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
- package/src/inputs/Input/__stories__/Email.tsx +23 -0
- package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
- package/src/inputs/Input/__stories__/Integer.tsx +1 -1
- package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
- package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
- package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
- package/src/inputs/Input/__stories__/String.tsx +1 -1
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
- package/src/inputs/Input/index.test.tsx +12 -0
- package/src/inputs/Input/index.tsx +11 -2
- package/src/inputs/Label/Label.stories.js +3 -0
- package/src/inputs/Label/__stories__/Default.tsx +1 -1
- package/src/inputs/Label/index.test.tsx +4 -0
- package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
- package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
- package/src/inputs/OtpInput/index.test.tsx +4 -0
- package/src/inputs/OtpInput/index.tsx +1 -0
- package/src/inputs/Radio/Radio.stories.js +3 -0
- package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
- package/src/inputs/Radio/__stories__/Default.tsx +1 -1
- package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
- package/src/inputs/Radio/index.test.tsx +4 -0
- package/src/inputs/Radio/index.tsx +1 -0
- package/src/inputs/Select/Select.stories.js +3 -0
- package/src/inputs/Select/__stories__/Default.tsx +1 -1
- package/src/inputs/Select/index.test.tsx +4 -0
- package/src/inputs/Select/index.tsx +13 -4
- package/src/inputs/inputsScenarios.ts +2 -2
- package/src/lazy.js +10 -1
- package/src/registry.js +12 -6
- package/src/types.tsx +2 -1
- package/src/utils.ts +27 -6
- package/src/validators/index.ts +30 -7
- package/src/validators/utils/amka.ts +39 -0
- package/src/validators/utils/date.ts +28 -4
- package/src/validators/utils/datetime.ts +222 -0
- package/src/validators/utils/file.ts +33 -19
- package/src/validators/utils/index.ts +5 -1
- package/types.d.ts +2 -1
- package/types.js.map +1 -1
- package/utils/index.js +20 -6
- package/utils.d.ts +2 -0
- package/utils.js.map +2 -2
- package/validators/index.d.ts +1 -1
- package/validators/index.js +26 -8
- package/validators/index.js.map +2 -2
- package/validators/utils/amka/index.js +36 -0
- package/validators/utils/amka/package.json +6 -0
- package/validators/utils/amka.d.ts +6 -0
- package/validators/utils/amka.js.map +7 -0
- package/validators/utils/date/index.js +26 -3
- package/validators/utils/date.d.ts +1 -1
- package/validators/utils/date.js.map +2 -2
- package/validators/utils/datetime/index.js +210 -0
- package/validators/utils/datetime/package.json +6 -0
- package/validators/utils/datetime.d.ts +9 -0
- package/validators/utils/datetime.js.map +7 -0
- package/validators/utils/file/index.js +30 -17
- package/validators/utils/file.js.map +2 -2
- package/validators/utils/index.d.ts +2 -0
- package/validators/utils/index.js +5 -1
- package/validators/utils/index.js.map +2 -2
- package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
- package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
- package/inputs/Input/inputsInputScenarios/index.js +0 -406
- package/inputs/Input/inputsInputScenarios.d.ts +0 -57
- package/inputs/Input/inputsInputScenarios.js.map +0 -7
- package/src/inputs/Input/inputsInputScenarios.ts +0 -404
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import FormBuilder, { Field } from '@digigov/form';
|
|
3
3
|
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
|
-
export const StringWithTrimValidation = () => (
|
|
5
|
+
export const StringWithTrimValidation = (_: any) => (
|
|
6
6
|
<FormBuilder
|
|
7
7
|
onSubmit={(data) => {
|
|
8
8
|
console.log(data);
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import FormBuilder, { Field } from '@digigov/form';
|
|
3
3
|
import { Button } from '@digigov/ui/form';
|
|
4
4
|
|
|
5
|
-
export const TextWithLimit = () => (
|
|
5
|
+
export const TextWithLimit = (_: any) => (
|
|
6
6
|
<FormBuilder
|
|
7
7
|
onSubmit={(data) => {
|
|
8
8
|
console.log(data);
|
|
@@ -2,7 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
3
|
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
4
4
|
import { AFM } from '@digigov/form/inputs/Input/__stories__/AFM';
|
|
5
|
+
import { AMKA } from '@digigov/form/inputs/Input/__stories__/AMKA';
|
|
5
6
|
import { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
|
|
7
|
+
import { Email } from '@digigov/form/inputs/Input/__stories__/Email';
|
|
6
8
|
import { IBAN } from '@digigov/form/inputs/Input/__stories__/IBAN';
|
|
7
9
|
import { Integer } from '@digigov/form/inputs/Input/__stories__/Integer';
|
|
8
10
|
import { LandlineNumber } from '@digigov/form/inputs/Input/__stories__/LandlineNumber';
|
|
@@ -20,9 +22,15 @@ test('renders the All Input variants', async ({ mount, page }) => {
|
|
|
20
22
|
<TestVariant title="AFM">
|
|
21
23
|
<AFM />
|
|
22
24
|
</TestVariant>
|
|
25
|
+
<TestVariant title="AMKA">
|
|
26
|
+
<AMKA />
|
|
27
|
+
</TestVariant>
|
|
23
28
|
<TestVariant title="Boolean">
|
|
24
29
|
<Boolean />
|
|
25
30
|
</TestVariant>
|
|
31
|
+
<TestVariant title="Email">
|
|
32
|
+
<Email />
|
|
33
|
+
</TestVariant>
|
|
26
34
|
<TestVariant title="IBAN">
|
|
27
35
|
<IBAN />
|
|
28
36
|
</TestVariant>
|
|
@@ -54,6 +62,10 @@ test('renders the All Input variants', async ({ mount, page }) => {
|
|
|
54
62
|
)
|
|
55
63
|
await page.evaluate(() => document.fonts.ready);
|
|
56
64
|
|
|
65
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
66
|
+
await page.mouse.move(0, 0);
|
|
67
|
+
|
|
68
|
+
|
|
57
69
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
58
70
|
expect(screenshot).toMatchSnapshot();
|
|
59
71
|
});
|
|
@@ -8,12 +8,14 @@ import { Hint } from '@digigov/ui/typography/Hint';
|
|
|
8
8
|
|
|
9
9
|
const TYPES_MAP = {
|
|
10
10
|
string: 'text',
|
|
11
|
+
password: 'password',
|
|
11
12
|
int: 'text',
|
|
12
13
|
text: 'text',
|
|
13
14
|
date: 'date',
|
|
14
15
|
};
|
|
15
16
|
|
|
16
|
-
export interface InputProps
|
|
17
|
+
export interface InputProps
|
|
18
|
+
extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {
|
|
17
19
|
extra?: {
|
|
18
20
|
fullWidth?: boolean;
|
|
19
21
|
multiline?: boolean;
|
|
@@ -25,10 +27,12 @@ export interface InputProps extends Omit<UncontrolledFieldProps, 'extra'> {
|
|
|
25
27
|
max?: number;
|
|
26
28
|
};
|
|
27
29
|
};
|
|
30
|
+
Field?: UncontrolledFieldProps['Field'];
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
31
34
|
function WrappedInput({ name, control, type, extra, ...props }, ref: never) {
|
|
35
|
+
delete props['Field'];
|
|
32
36
|
// eslint-disable-next-line prefer-const
|
|
33
37
|
let { multiline = false, rows, limit } = extra || {};
|
|
34
38
|
const { className } = extra || {};
|
|
@@ -69,6 +73,7 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
|
69
73
|
className={className}
|
|
70
74
|
rows={rows}
|
|
71
75
|
ref={ref}
|
|
76
|
+
id={name}
|
|
72
77
|
{...{
|
|
73
78
|
...props,
|
|
74
79
|
reset: undefined,
|
|
@@ -97,7 +102,11 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
|
|
|
97
102
|
data-type={type}
|
|
98
103
|
className={className}
|
|
99
104
|
ref={ref}
|
|
100
|
-
{...{
|
|
105
|
+
{...{
|
|
106
|
+
...props,
|
|
107
|
+
reset: undefined,
|
|
108
|
+
required: undefined,
|
|
109
|
+
}}
|
|
101
110
|
/>
|
|
102
111
|
);
|
|
103
112
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import Label from '@digigov/form/inputs/Label';
|
|
2
|
+
import doc from './doc.mdx?raw';
|
|
2
3
|
export default {
|
|
3
4
|
title: 'Digigov Form/inputs/Label',
|
|
4
5
|
component: Label,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
markdown: doc,
|
|
5
8
|
displayName: 'Label',
|
|
6
9
|
};
|
|
7
10
|
export { Default } from '@digigov/form/inputs/Label/__stories__/Default';
|
|
@@ -4,7 +4,7 @@ import Field from '@digigov/form/Field';
|
|
|
4
4
|
import Label from '@digigov/form/inputs/Label';
|
|
5
5
|
import { Button } from '@digigov/ui/form/Button';
|
|
6
6
|
|
|
7
|
-
export const Default = () => (
|
|
7
|
+
export const Default = (_: any) => (
|
|
8
8
|
<FormBuilder
|
|
9
9
|
onSubmit={(data) => {
|
|
10
10
|
console.log(data);
|
|
@@ -14,6 +14,10 @@ test('renders the All Label variants', async ({ mount, page }) => {
|
|
|
14
14
|
)
|
|
15
15
|
await page.evaluate(() => document.fonts.ready);
|
|
16
16
|
|
|
17
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
18
|
+
await page.mouse.move(0, 0);
|
|
19
|
+
|
|
20
|
+
|
|
17
21
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
18
22
|
expect(screenshot).toMatchSnapshot();
|
|
19
23
|
});
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import OtpInput from '@digigov/form/inputs/OtpInput';
|
|
2
|
+
import doc from './doc.mdx?raw';
|
|
2
3
|
export default {
|
|
3
4
|
title: 'Digigov Form/inputs/OtpInput',
|
|
4
5
|
component: OtpInput,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
markdown: doc,
|
|
5
8
|
displayName: 'OtpInput',
|
|
6
9
|
};
|
|
7
10
|
export { Default } from '@digigov/form/inputs/OtpInput/__stories__/Default';
|
|
@@ -14,6 +14,10 @@ test('renders the All OtpInput variants', async ({ mount, page }) => {
|
|
|
14
14
|
)
|
|
15
15
|
await page.evaluate(() => document.fonts.ready);
|
|
16
16
|
|
|
17
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
18
|
+
await page.mouse.move(0, 0);
|
|
19
|
+
|
|
20
|
+
|
|
17
21
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
18
22
|
expect(screenshot).toMatchSnapshot();
|
|
19
23
|
});
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import Radio from '@digigov/form/inputs/Radio';
|
|
2
|
+
import doc from './doc.mdx?raw';
|
|
2
3
|
export default {
|
|
3
4
|
title: 'Digigov Form/inputs/Radio',
|
|
4
5
|
component: Radio,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
markdown: doc,
|
|
5
8
|
displayName: 'Radio',
|
|
6
9
|
};
|
|
7
10
|
export { Default } from '@digigov/form/inputs/Radio/__stories__/Default';
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import FormBuilder, { Field } from '@digigov/form';
|
|
3
3
|
import { Button } from '@digigov/ui/form/Button';
|
|
4
4
|
|
|
5
|
-
export const WithDivider = () => (
|
|
5
|
+
export const WithDivider = (_: any) => (
|
|
6
6
|
<FormBuilder
|
|
7
7
|
onSubmit={(data) => {
|
|
8
8
|
console.log(data);
|
|
@@ -22,6 +22,10 @@ test('renders the All Radio variants', async ({ mount, page }) => {
|
|
|
22
22
|
)
|
|
23
23
|
await page.evaluate(() => document.fonts.ready);
|
|
24
24
|
|
|
25
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
26
|
+
await page.mouse.move(0, 0);
|
|
27
|
+
|
|
28
|
+
|
|
25
29
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
26
30
|
expect(screenshot).toMatchSnapshot();
|
|
27
31
|
});
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import Select from '@digigov/form/inputs/Select';
|
|
2
|
+
import doc from './doc.mdx?raw';
|
|
2
3
|
export default {
|
|
3
4
|
title: 'Digigov Form/inputs/Select',
|
|
4
5
|
component: Select,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
markdown: doc,
|
|
5
8
|
displayName: 'Select',
|
|
6
9
|
};
|
|
7
10
|
export { Default } from '@digigov/form/inputs/Select/__stories__/Default';
|
|
@@ -14,6 +14,10 @@ test('renders the All Select variants', async ({ mount, page }) => {
|
|
|
14
14
|
)
|
|
15
15
|
await page.evaluate(() => document.fonts.ready);
|
|
16
16
|
|
|
17
|
+
// Move the mouse to the top-left corner to avoid random hover issues
|
|
18
|
+
await page.mouse.move(0, 0);
|
|
19
|
+
|
|
20
|
+
|
|
17
21
|
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
18
22
|
expect(screenshot).toMatchSnapshot();
|
|
19
23
|
});
|
|
@@ -6,11 +6,13 @@ import {
|
|
|
6
6
|
SelectOption,
|
|
7
7
|
} from '@digigov/ui/form/SelectContainer';
|
|
8
8
|
|
|
9
|
-
export interface SelectProps
|
|
9
|
+
export interface SelectProps
|
|
10
|
+
extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {
|
|
10
11
|
extra: {
|
|
11
12
|
className?: string;
|
|
12
13
|
options: FieldOptionProps[];
|
|
13
14
|
};
|
|
15
|
+
Field?: UncontrolledFieldProps['Field'];
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
|
|
@@ -18,16 +20,23 @@ export const Select: React.ExoticComponent<SelectProps> = React.forwardRef(
|
|
|
18
20
|
{ name, extra: { options, className }, disabled, ...props },
|
|
19
21
|
ref: never
|
|
20
22
|
) {
|
|
23
|
+
delete props.Field;
|
|
21
24
|
return (
|
|
22
25
|
<SelectContainer
|
|
23
26
|
className={className}
|
|
24
27
|
ref={ref}
|
|
25
28
|
name={name}
|
|
29
|
+
id={name}
|
|
26
30
|
disabled={disabled}
|
|
27
|
-
{...{
|
|
31
|
+
{...{
|
|
32
|
+
...props,
|
|
33
|
+
reset: undefined,
|
|
34
|
+
error: undefined,
|
|
35
|
+
required: undefined,
|
|
36
|
+
}}
|
|
28
37
|
>
|
|
29
|
-
{options.map(({ value, label }) => (
|
|
30
|
-
<SelectOption key={
|
|
38
|
+
{options.map(({ value, label }, index) => (
|
|
39
|
+
<SelectOption key={index} value={value}>
|
|
31
40
|
{label && label.primary ? label.primary : value}
|
|
32
41
|
</SelectOption>
|
|
33
42
|
))}
|
|
@@ -432,7 +432,7 @@ export const scenarios = [
|
|
|
432
432
|
type: 'error',
|
|
433
433
|
fieldKey: 'image',
|
|
434
434
|
args: {
|
|
435
|
-
|
|
435
|
+
maxSize: 0.0003,
|
|
436
436
|
},
|
|
437
437
|
text: el.form.error.file_size,
|
|
438
438
|
},
|
|
@@ -440,7 +440,7 @@ export const scenarios = [
|
|
|
440
440
|
type: 'error',
|
|
441
441
|
fieldKey: 'file',
|
|
442
442
|
args: {
|
|
443
|
-
|
|
443
|
+
maxSize: 0.0003,
|
|
444
444
|
},
|
|
445
445
|
text: el.form.error.file_size,
|
|
446
446
|
},
|
package/src/lazy.js
CHANGED
|
@@ -9,8 +9,12 @@ export default {
|
|
|
9
9
|
'FieldBase': lazy(() => import('@digigov/form/Field/FieldBase').then((module) => ({ default: module['FieldBase'] }))),
|
|
10
10
|
'FieldBaseContainer': lazy(() => import('@digigov/form/Field/FieldBaseContainer').then((module) => ({ default: module['FieldBaseContainer'] }))),
|
|
11
11
|
'FieldConditional': lazy(() => import('@digigov/form/Field/FieldConditional').then((module) => ({ default: module['FieldConditional'] }))),
|
|
12
|
-
'
|
|
12
|
+
'FormDialog': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['FormDialog'] }))),
|
|
13
|
+
'ArrayItemModal': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemModal'] }))),
|
|
14
|
+
'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemHeader'] }))),
|
|
15
|
+
'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemDisplay'] }))),
|
|
13
16
|
'FieldArray': lazy(() => import('@digigov/form/FieldArray').then((module) => ({ default: module['FieldArray'] }))),
|
|
17
|
+
'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
|
|
14
18
|
'FieldsetWithContext': lazy(() => import('@digigov/form/Fieldset/FieldsetWithContext').then((module) => ({ default: module['FieldsetWithContext'] }))),
|
|
15
19
|
'FieldsetLabel': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetLabel'] }))),
|
|
16
20
|
'FieldsetCaption': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetCaption'] }))),
|
|
@@ -46,15 +50,20 @@ export default {
|
|
|
46
50
|
'ALTERNATIVE_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['ALTERNATIVE_COMPONENTS'] }))),
|
|
47
51
|
'CONTROLLED_FIELD_COMPONENTS': lazy(() => import('@digigov/form/Field/utils').then((module) => ({ default: module['CONTROLLED_FIELD_COMPONENTS'] }))),
|
|
48
52
|
'AutoCompleteInput': lazy(() => import('@digigov/form/inputs/AutoCompleteInput').then((module) => ({ default: module['AutoCompleteInput'] }))),
|
|
53
|
+
'DateTimeInput': lazy(() => import('@digigov/form/inputs/DateTimeInput').then((module) => ({ default: module['DateTimeInput'] }))),
|
|
49
54
|
'Image': lazy(() => import('@digigov/form/inputs/ImageInput').then((module) => ({ default: module['Image'] }))),
|
|
50
55
|
'RE_DIGIT': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['RE_DIGIT'] }))),
|
|
51
56
|
'REMOVE_SPACES': lazy(() => import('@digigov/form/inputs/OtpInput').then((module) => ({ default: module['REMOVE_SPACES'] }))),
|
|
52
57
|
'RadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['RadioButtonsGroup'] }))),
|
|
53
58
|
'ControlledRadioButtonsGroup': lazy(() => import('@digigov/form/inputs/Radio').then((module) => ({ default: module['ControlledRadioButtonsGroup'] }))),
|
|
54
59
|
'AFM_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AFM_VALIDATOR'] }))),
|
|
60
|
+
'AMKA_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['AMKA_VALIDATOR'] }))),
|
|
55
61
|
'LATER_THAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_VALIDATOR'] }))),
|
|
56
62
|
'EARLIER_THAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['EARLIER_THAN_VALIDATOR'] }))),
|
|
57
63
|
'DATE_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['DATE_VALIDATOR'] }))),
|
|
64
|
+
'LATER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['LATER_THAN_DATETIME_VALIDATOR'] }))),
|
|
65
|
+
'EARLIER_THAN_DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['EARLIER_THAN_DATETIME_VALIDATOR'] }))),
|
|
66
|
+
'DATETIME_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['DATETIME_VALIDATOR'] }))),
|
|
58
67
|
'FILE_MAX_SIZE_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['FILE_MAX_SIZE_VALIDATOR'] }))),
|
|
59
68
|
'IBAN_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IBAN_VALIDATOR'] }))),
|
|
60
69
|
'IMAGE_DIMENSION_VALIDATOR': lazy(() => import('@digigov/form/validators/utils').then((module) => ({ default: module['IMAGE_DIMENSION_VALIDATOR'] }))),
|
package/src/registry.js
CHANGED
|
@@ -10,8 +10,9 @@ import * as _digigov_form_Field_FieldBaseContainer from "@digigov/form/Field/Fie
|
|
|
10
10
|
import * as _digigov_form_Field_FieldConditional from "@digigov/form/Field/FieldConditional";
|
|
11
11
|
import * as _digigov_form_Field from "@digigov/form/Field";
|
|
12
12
|
import * as _digigov_form_Field_types from "@digigov/form/Field/types";
|
|
13
|
-
import * as
|
|
13
|
+
import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
|
|
14
14
|
import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
|
|
15
|
+
import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
|
|
15
16
|
import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
|
|
16
17
|
import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
|
|
17
18
|
import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
|
|
@@ -46,17 +47,19 @@ import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
|
|
|
46
47
|
import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
|
|
47
48
|
import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
|
|
48
49
|
import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
|
|
49
|
-
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
50
50
|
import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
|
|
51
|
+
import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
|
|
51
52
|
import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
|
|
53
|
+
import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
|
|
52
54
|
import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
|
|
53
|
-
import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
|
|
54
55
|
import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
|
|
55
56
|
import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
|
|
56
57
|
import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
|
|
57
58
|
import * as _digigov_form_inputs_Select from "@digigov/form/inputs/Select";
|
|
58
59
|
import * as _digigov_form_validators_utils_afm from "@digigov/form/validators/utils/afm";
|
|
60
|
+
import * as _digigov_form_validators_utils_amka from "@digigov/form/validators/utils/amka";
|
|
59
61
|
import * as _digigov_form_validators_utils_date from "@digigov/form/validators/utils/date";
|
|
62
|
+
import * as _digigov_form_validators_utils_datetime from "@digigov/form/validators/utils/datetime";
|
|
60
63
|
import * as _digigov_form_validators_utils_file from "@digigov/form/validators/utils/file";
|
|
61
64
|
import * as _digigov_form_validators_utils_iban from "@digigov/form/validators/utils/iban";
|
|
62
65
|
import * as _digigov_form_validators_utils_image from "@digigov/form/validators/utils/image";
|
|
@@ -98,8 +101,9 @@ export default {
|
|
|
98
101
|
'@digigov/form/Field/FieldConditional': lazyImport(_digigov_form_Field_FieldConditional),
|
|
99
102
|
'@digigov/form/Field': lazyImport(_digigov_form_Field),
|
|
100
103
|
'@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
|
|
101
|
-
'@digigov/form/
|
|
104
|
+
'@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
|
|
102
105
|
'@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
|
|
106
|
+
'@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
|
|
103
107
|
'@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
|
|
104
108
|
'@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
|
|
105
109
|
'@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
|
|
@@ -134,17 +138,19 @@ export default {
|
|
|
134
138
|
'@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
|
|
135
139
|
'@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
|
|
136
140
|
'@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
|
|
137
|
-
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
138
141
|
'@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
|
|
142
|
+
'@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
|
|
139
143
|
'@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
|
|
144
|
+
'@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
|
|
140
145
|
'@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
|
|
141
|
-
'@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
|
|
142
146
|
'@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
|
|
143
147
|
'@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
|
|
144
148
|
'@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
|
|
145
149
|
'@digigov/form/inputs/Select': lazyImport(_digigov_form_inputs_Select),
|
|
146
150
|
'@digigov/form/validators/utils/afm': lazyImport(_digigov_form_validators_utils_afm),
|
|
151
|
+
'@digigov/form/validators/utils/amka': lazyImport(_digigov_form_validators_utils_amka),
|
|
147
152
|
'@digigov/form/validators/utils/date': lazyImport(_digigov_form_validators_utils_date),
|
|
153
|
+
'@digigov/form/validators/utils/datetime': lazyImport(_digigov_form_validators_utils_datetime),
|
|
148
154
|
'@digigov/form/validators/utils/file': lazyImport(_digigov_form_validators_utils_file),
|
|
149
155
|
'@digigov/form/validators/utils/iban': lazyImport(_digigov_form_validators_utils_iban),
|
|
150
156
|
'@digigov/form/validators/utils/image': lazyImport(_digigov_form_validators_utils_image),
|
package/src/types.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UseFormReturn, UseFormProps } from 'react-hook-form';
|
|
1
|
+
import { UseFormReturn, UseFormProps, ErrorOption } from 'react-hook-form';
|
|
2
2
|
import {
|
|
3
3
|
FieldComponentRegistry,
|
|
4
4
|
FieldLabelProps,
|
|
@@ -54,6 +54,7 @@ export interface FormBuilderProps {
|
|
|
54
54
|
componentRegistry?: FieldComponentRegistry;
|
|
55
55
|
grid?: boolean;
|
|
56
56
|
controlledFieldsOnly?: boolean;
|
|
57
|
+
errors?: ErrorOption;
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
export interface FormBaseProps
|
package/src/utils.ts
CHANGED
|
@@ -13,6 +13,7 @@ const parseErrorSchema = (
|
|
|
13
13
|
return (error.inner || []).reduce<Record<string, FieldError>>(
|
|
14
14
|
(previous, error) => {
|
|
15
15
|
error.path = error.path?.replace(/\[([0-9]+)\]/g, '.$1');
|
|
16
|
+
// error.path = error.path?.replace(/\["(.*?)"\]/g, '$1');
|
|
16
17
|
if (!previous[error.path!]) {
|
|
17
18
|
previous[error.path!] = { message: error.message, type: error.type! };
|
|
18
19
|
}
|
|
@@ -37,6 +38,26 @@ const parseErrorSchema = (
|
|
|
37
38
|
{}
|
|
38
39
|
);
|
|
39
40
|
};
|
|
41
|
+
function isPlainObject(obj) {
|
|
42
|
+
return (
|
|
43
|
+
typeof obj === 'object' &&
|
|
44
|
+
obj !== null &&
|
|
45
|
+
Object.prototype.toString.call(obj) === '[object Object]'
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
function flattenObject(obj, prefix = '') {
|
|
49
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
50
|
+
const prefixedKey = prefix ? `${prefix}.${key}` : key;
|
|
51
|
+
|
|
52
|
+
if (isPlainObject(obj[key])) {
|
|
53
|
+
Object.assign(acc, flattenObject(obj[key], prefixedKey));
|
|
54
|
+
} else {
|
|
55
|
+
acc[prefixedKey] = obj[key];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return acc;
|
|
59
|
+
}, {});
|
|
60
|
+
}
|
|
40
61
|
|
|
41
62
|
export const yupResolver =
|
|
42
63
|
(schema: any, schemaOptions: any = {}, resolverOptions: any = {}) =>
|
|
@@ -51,7 +72,7 @@ export const yupResolver =
|
|
|
51
72
|
const result = await schema[
|
|
52
73
|
resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'
|
|
53
74
|
](
|
|
54
|
-
values,
|
|
75
|
+
flattenObject(values),
|
|
55
76
|
Object.assign({ abortEarly: false }, schemaOptions, { context })
|
|
56
77
|
);
|
|
57
78
|
|
|
@@ -67,13 +88,13 @@ export const yupResolver =
|
|
|
67
88
|
throw e;
|
|
68
89
|
}
|
|
69
90
|
|
|
70
|
-
const parsed = parseErrorSchema(
|
|
71
|
-
e,
|
|
72
|
-
!options.shouldUseNativeValidation && options.criteriaMode === 'all'
|
|
73
|
-
);
|
|
74
91
|
return {
|
|
75
92
|
values: {},
|
|
76
|
-
errors:
|
|
93
|
+
errors: parseErrorSchema(
|
|
94
|
+
e,
|
|
95
|
+
!options.shouldUseNativeValidation && options.criteriaMode === 'all'
|
|
96
|
+
),
|
|
97
|
+
options,
|
|
77
98
|
};
|
|
78
99
|
}
|
|
79
100
|
};
|
package/src/validators/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { ValidatorSchema } from '@digigov/form/validators/types';
|
|
|
11
11
|
import {
|
|
12
12
|
getYupObjectShape,
|
|
13
13
|
AFM_VALIDATOR,
|
|
14
|
+
AMKA_VALIDATOR,
|
|
14
15
|
FILE_MAX_SIZE_VALIDATOR,
|
|
15
16
|
IBAN_VALIDATOR,
|
|
16
17
|
OTP_VALIDATOR,
|
|
@@ -23,17 +24,22 @@ import {
|
|
|
23
24
|
DATE_VALIDATOR,
|
|
24
25
|
LATER_THAN_VALIDATOR,
|
|
25
26
|
EARLIER_THAN_VALIDATOR,
|
|
27
|
+
DATETIME_VALIDATOR,
|
|
28
|
+
LATER_THAN_DATETIME_VALIDATOR,
|
|
29
|
+
EARLIER_THAN_DATETIME_VALIDATOR,
|
|
26
30
|
} from '@digigov/form/validators/utils';
|
|
27
31
|
import { INT_VALIDATOR } from '@digigov/form/validators/utils/int';
|
|
28
32
|
import { NUMBER_VALIDATOR } from '@digigov/form/validators/utils/number';
|
|
29
33
|
|
|
30
|
-
export const getYUPTypeMap = (
|
|
34
|
+
export const getYUPTypeMap = (
|
|
35
|
+
validatorRegistry?: Record<string, any>
|
|
36
|
+
): Record<string, any> => {
|
|
31
37
|
const yupTypeMap = {
|
|
32
38
|
file: (field): MixedSchema => {
|
|
33
39
|
return yup
|
|
34
40
|
.mixed()
|
|
35
41
|
.transform((value) => {
|
|
36
|
-
if (!value.length) {
|
|
42
|
+
if (!value || value.length === 0) {
|
|
37
43
|
return null;
|
|
38
44
|
}
|
|
39
45
|
return value;
|
|
@@ -43,7 +49,7 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
43
49
|
},
|
|
44
50
|
string: (field): yup.StringSchema => {
|
|
45
51
|
if (field.trim) {
|
|
46
|
-
return yup.string().trim()
|
|
52
|
+
return yup.string().trim();
|
|
47
53
|
} else {
|
|
48
54
|
return yup.string();
|
|
49
55
|
}
|
|
@@ -78,10 +84,13 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
78
84
|
if (typeof field.extra.of === 'object') {
|
|
79
85
|
// else if the field is an object then it is a scalar type
|
|
80
86
|
// eg. number, string etc.
|
|
87
|
+
if (field.required) {
|
|
88
|
+
field.extra.min = 1;
|
|
89
|
+
}
|
|
81
90
|
let arrayValidator = yup
|
|
82
91
|
.array()
|
|
83
|
-
.
|
|
84
|
-
.
|
|
92
|
+
.nullable()
|
|
93
|
+
.of(yupTypeMap[field.extra.of.type](field.extra.of));
|
|
85
94
|
if (field.extra.length)
|
|
86
95
|
arrayValidator = arrayValidator.length(field.extra.length, {
|
|
87
96
|
key: 'form.error.array.length',
|
|
@@ -130,6 +139,10 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
130
139
|
field.trim
|
|
131
140
|
? yup.string().trim().test(AFM_VALIDATOR)
|
|
132
141
|
: yup.string().test(AFM_VALIDATOR),
|
|
142
|
+
amka: (field): yup.StringSchema =>
|
|
143
|
+
field.trim
|
|
144
|
+
? yup.string().trim().test(AMKA_VALIDATOR)
|
|
145
|
+
: yup.string().test(AMKA_VALIDATOR),
|
|
133
146
|
uuid4: (field): yup.StringSchema =>
|
|
134
147
|
field.trim
|
|
135
148
|
? yup.string().trim().test(UUID4_VALIDATOR)
|
|
@@ -203,6 +216,16 @@ export const getYUPTypeMap = (): Record<string, any> => {
|
|
|
203
216
|
}
|
|
204
217
|
return schema;
|
|
205
218
|
},
|
|
219
|
+
datetime: (field): yup.StringSchema => {
|
|
220
|
+
if (field?.extra?.min) {
|
|
221
|
+
return yup.string().test(LATER_THAN_DATETIME_VALIDATOR(field));
|
|
222
|
+
}
|
|
223
|
+
if (field?.extra?.max) {
|
|
224
|
+
return yup.string().test(EARLIER_THAN_DATETIME_VALIDATOR(field));
|
|
225
|
+
}
|
|
226
|
+
return yup.string().test(DATETIME_VALIDATOR);
|
|
227
|
+
},
|
|
228
|
+
...validatorRegistry,
|
|
206
229
|
};
|
|
207
230
|
return yupTypeMap;
|
|
208
231
|
};
|
|
@@ -214,7 +237,7 @@ export function useValidationSchema(
|
|
|
214
237
|
validatorRegistry?: Record<string, ValidatorSchema[]>
|
|
215
238
|
): Lazy<any, unknown> | AnyObjectSchema | void {
|
|
216
239
|
return useMemo(() => {
|
|
217
|
-
const yupTypeMap = getYUPTypeMap();
|
|
240
|
+
const yupTypeMap = getYUPTypeMap(validatorRegistry);
|
|
218
241
|
return getYupObjectShape(fields, yupTypeMap, validatorRegistry);
|
|
219
|
-
}, []);
|
|
242
|
+
}, [fields, validatorRegistry]);
|
|
220
243
|
}
|