@digigov/form 1.2.0-dcbd7ded → 2.0.0-7d9a8d86
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 +74 -68
- package/Field/FieldBase.js.map +7 -0
- package/Field/FieldBaseContainer/index.js +40 -34
- package/Field/FieldBaseContainer.js.map +7 -0
- package/Field/FieldConditional/index.js +48 -41
- package/Field/FieldConditional.js.map +7 -0
- package/Field/index.js +66 -61
- package/Field/index.js.map +7 -0
- package/Field/types/index.js +1 -1
- package/Field/types.js.map +7 -0
- package/Field/utils/index.js +84 -85
- package/Field/utils.js.map +7 -0
- package/FieldArray/FieldArray.stories/index.js +10 -6
- package/FieldArray/FieldArray.stories.js.map +7 -0
- package/FieldArray/__stories__/Default/index.js +90 -81
- package/FieldArray/__stories__/Default.js.map +7 -0
- package/FieldArray/__stories__/WithExactLength/index.js +90 -81
- package/FieldArray/__stories__/WithExactLength.js.map +7 -0
- package/FieldArray/index.js +49 -54
- package/FieldArray/index.js.map +7 -0
- package/FieldObject/index.js +52 -50
- package/FieldObject/index.js.map +7 -0
- package/Fieldset/FieldsetWithContext/index.js +28 -31
- package/Fieldset/FieldsetWithContext.js.map +7 -0
- package/Fieldset/index.js +33 -26
- package/Fieldset/index.js.map +7 -0
- package/Fieldset/types/index.js +1 -1
- package/Fieldset/types.js.map +7 -0
- package/Form.stories/index.js +7 -3
- package/Form.stories.js.map +7 -0
- package/FormBuilder/FormBuilder/index.js +99 -113
- package/FormBuilder/FormBuilder.js.map +7 -0
- package/FormBuilder/FormBuilder.stories/index.js +9 -5
- package/FormBuilder/FormBuilder.stories.js.map +7 -0
- package/FormBuilder/__stories__/Default/index.js +23 -23
- package/FormBuilder/__stories__/Default.js.map +7 -0
- package/FormBuilder/index.js +6 -2
- package/FormBuilder/index.js.map +7 -0
- package/FormContext/index.js +7 -3
- package/FormContext.js.map +7 -0
- package/MultiplicityField/MultiplicityField.stories/index.js +14 -10
- package/MultiplicityField/MultiplicityField.stories.js.map +7 -0
- package/MultiplicityField/__stories__/Default/index.js +94 -85
- package/MultiplicityField/__stories__/Default.js.map +7 -0
- package/MultiplicityField/__stories__/PreviewDisplay/index.js +84 -65
- package/MultiplicityField/__stories__/PreviewDisplay.js.map +7 -0
- package/MultiplicityField/__stories__/WithExactLength/index.js +91 -80
- package/MultiplicityField/__stories__/WithExactLength.js.map +7 -0
- package/MultiplicityField/__stories__/WithMaxLength/index.js +94 -83
- package/MultiplicityField/__stories__/WithMaxLength.js.map +7 -0
- package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +95 -84
- package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +7 -0
- package/MultiplicityField/__stories__/WithMinLength/index.js +94 -83
- package/MultiplicityField/__stories__/WithMinLength.js.map +7 -0
- package/MultiplicityField/add-objects/index.js +100 -131
- package/MultiplicityField/add-objects.js.map +7 -0
- package/MultiplicityField/index.js +94 -98
- package/MultiplicityField/index.js.map +7 -0
- package/Questions/Questions/index.js +35 -50
- package/Questions/Questions.js.map +7 -0
- package/Questions/Questions.stories/index.js +9 -5
- package/Questions/Questions.stories.js.map +7 -0
- package/Questions/QuestionsContext/index.js +9 -9
- package/Questions/QuestionsContext.js.map +7 -0
- package/Questions/Step/ReviewStep/index.js +40 -46
- package/Questions/Step/ReviewStep.js.map +7 -0
- package/Questions/Step/Step/index.js +29 -43
- package/Questions/Step/Step.js.map +7 -0
- package/Questions/Step/StepArrayReview/index.js +43 -42
- package/Questions/Step/StepArrayReview.js.map +7 -0
- package/Questions/Step/StepContext/index.js +15 -19
- package/Questions/Step/StepContext.js.map +7 -0
- package/Questions/Step/StepDescription/index.js +27 -22
- package/Questions/Step/StepDescription.js.map +7 -0
- package/Questions/Step/StepForm/index.js +32 -39
- package/Questions/Step/StepForm.js.map +7 -0
- package/Questions/Step/StepQuote/index.js +12 -9
- package/Questions/Step/StepQuote.js.map +7 -0
- package/Questions/Step/StepTitle/index.js +36 -36
- package/Questions/Step/StepTitle.js.map +7 -0
- package/Questions/Step/getAddMoreFields/index.js +28 -20
- package/Questions/Step/getAddMoreFields.js.map +7 -0
- package/Questions/Step/index.js +17 -13
- package/Questions/Step/index.js.map +7 -0
- package/Questions/Step/types/index.js +1 -1
- package/Questions/Step/types.js.map +7 -0
- package/Questions/__stories__/Default/index.js +111 -98
- package/Questions/__stories__/Default.js.map +7 -0
- package/Questions/getNextStep/index.js +10 -10
- package/Questions/getNextStep.js.map +7 -0
- package/Questions/index.js +7 -3
- package/Questions/index.js.map +7 -0
- package/Questions/index.spec/index.js +63 -57
- package/Questions/index.spec.js.map +7 -0
- package/Questions/types/index.js +1 -1
- package/Questions/types.js.map +7 -0
- package/cjs/Field/FieldBase/index.js +100 -74
- package/cjs/Field/FieldBase.js.map +7 -0
- package/cjs/Field/FieldBaseContainer/index.js +66 -40
- package/cjs/Field/FieldBaseContainer.js.map +7 -0
- package/cjs/Field/FieldConditional/index.js +74 -47
- package/cjs/Field/FieldConditional.js.map +7 -0
- package/cjs/Field/index.js +92 -70
- package/cjs/Field/index.js.map +7 -0
- package/cjs/Field/types/index.js +4 -5
- package/cjs/Field/types.js.map +7 -0
- package/cjs/Field/utils/index.js +120 -106
- package/cjs/Field/utils.js.map +7 -0
- package/cjs/FieldArray/FieldArray.stories/index.js +36 -37
- package/cjs/FieldArray/FieldArray.stories.js.map +7 -0
- package/cjs/FieldArray/__stories__/Default/index.js +116 -90
- package/cjs/FieldArray/__stories__/Default.js.map +7 -0
- package/cjs/FieldArray/__stories__/WithExactLength/index.js +116 -90
- package/cjs/FieldArray/__stories__/WithExactLength.js.map +7 -0
- package/cjs/FieldArray/index.js +75 -60
- package/cjs/FieldArray/index.js.map +7 -0
- package/cjs/FieldObject/index.js +78 -59
- package/cjs/FieldObject/index.js.map +7 -0
- package/cjs/Fieldset/FieldsetWithContext/index.js +49 -40
- package/cjs/Fieldset/FieldsetWithContext.js.map +7 -0
- package/cjs/Fieldset/index.js +61 -36
- package/cjs/Fieldset/index.js.map +7 -0
- package/cjs/Fieldset/types/index.js +4 -5
- package/cjs/Fieldset/types.js.map +7 -0
- package/cjs/Form.stories/index.js +15 -8
- package/cjs/Form.stories.js.map +7 -0
- package/cjs/FormBuilder/FormBuilder/index.js +127 -123
- package/cjs/FormBuilder/FormBuilder.js.map +7 -0
- package/cjs/FormBuilder/FormBuilder.stories/index.js +35 -25
- package/cjs/FormBuilder/FormBuilder.stories.js.map +7 -0
- package/cjs/FormBuilder/__stories__/Default/index.js +50 -33
- package/cjs/FormBuilder/__stories__/Default.js.map +7 -0
- package/cjs/FormBuilder/index.js +30 -7
- package/cjs/FormBuilder/index.js.map +7 -0
- package/cjs/FormContext/index.js +33 -8
- package/cjs/FormContext.js.map +7 -0
- package/cjs/MultiplicityField/MultiplicityField.stories/index.js +40 -85
- package/cjs/MultiplicityField/MultiplicityField.stories.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/Default/index.js +120 -94
- package/cjs/MultiplicityField/__stories__/Default.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +93 -74
- package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +117 -89
- package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +120 -92
- package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +121 -93
- package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +7 -0
- package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +120 -92
- package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +7 -0
- package/cjs/MultiplicityField/add-objects/index.js +124 -137
- package/cjs/MultiplicityField/add-objects.js.map +7 -0
- package/cjs/MultiplicityField/index.js +121 -107
- package/cjs/MultiplicityField/index.js.map +7 -0
- package/cjs/Questions/Questions/index.js +61 -59
- package/cjs/Questions/Questions.js.map +7 -0
- package/cjs/Questions/Questions.stories/index.js +35 -25
- package/cjs/Questions/Questions.stories.js.map +7 -0
- package/cjs/Questions/QuestionsContext/index.js +35 -14
- package/cjs/Questions/QuestionsContext.js.map +7 -0
- package/cjs/Questions/Step/ReviewStep/index.js +60 -55
- package/cjs/Questions/Step/ReviewStep.js.map +7 -0
- package/cjs/Questions/Step/Step/index.js +55 -52
- package/cjs/Questions/Step/Step.js.map +7 -0
- package/cjs/Questions/Step/StepArrayReview/index.js +61 -51
- package/cjs/Questions/Step/StepArrayReview.js.map +7 -0
- package/cjs/Questions/Step/StepContext/index.js +41 -24
- package/cjs/Questions/Step/StepContext.js.map +7 -0
- package/cjs/Questions/Step/StepDescription/index.js +54 -31
- package/cjs/Questions/Step/StepDescription.js.map +7 -0
- package/cjs/Questions/Step/StepForm/index.js +58 -48
- package/cjs/Questions/Step/StepForm.js.map +7 -0
- package/cjs/Questions/Step/StepQuote/index.js +38 -15
- package/cjs/Questions/Step/StepQuote.js.map +7 -0
- package/cjs/Questions/Step/StepTitle/index.js +62 -45
- package/cjs/Questions/Step/StepTitle.js.map +7 -0
- package/cjs/Questions/Step/getAddMoreFields/index.js +38 -25
- package/cjs/Questions/Step/getAddMoreFields.js.map +7 -0
- package/cjs/Questions/Step/index.js +42 -143
- package/cjs/Questions/Step/index.js.map +7 -0
- package/cjs/Questions/Step/types/index.js +4 -5
- package/cjs/Questions/Step/types.js.map +7 -0
- package/cjs/Questions/__stories__/Default/index.js +131 -107
- package/cjs/Questions/__stories__/Default.js.map +7 -0
- package/cjs/Questions/getNextStep/index.js +19 -14
- package/cjs/Questions/getNextStep.js.map +7 -0
- package/cjs/Questions/index.js +31 -20
- package/cjs/Questions/index.js.map +7 -0
- package/cjs/Questions/index.spec/index.js +81 -61
- package/cjs/Questions/index.spec.js.map +7 -0
- package/cjs/Questions/types/index.js +4 -5
- package/cjs/Questions/types.js.map +7 -0
- package/cjs/index.js +31 -21
- package/cjs/index.js.map +7 -0
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +36 -25
- package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +7 -0
- package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +70 -53
- package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +7 -0
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +72 -0
- package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +7 -0
- package/cjs/inputs/AutoCompleteInput/index.js +58 -40
- package/cjs/inputs/AutoCompleteInput/index.js.map +7 -0
- package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +37 -49
- package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +7 -0
- package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +113 -88
- package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +7 -0
- package/cjs/inputs/Checkboxes/__stories__/Default/index.js +63 -48
- package/cjs/inputs/Checkboxes/__stories__/Default.js.map +7 -0
- package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +64 -49
- package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +7 -0
- package/cjs/inputs/Checkboxes/index.js +96 -98
- package/cjs/inputs/Checkboxes/index.js.map +7 -0
- package/cjs/inputs/DateInput/DateInput.stories/index.js +35 -25
- package/cjs/inputs/DateInput/DateInput.stories.js.map +7 -0
- package/cjs/inputs/DateInput/__stories__/Default/index.js +50 -31
- package/cjs/inputs/DateInput/__stories__/Default.js.map +7 -0
- package/cjs/inputs/DateInput/index.js +90 -90
- package/cjs/inputs/DateInput/index.js.map +7 -0
- package/cjs/inputs/FileInput/FileInput.stories/index.js +35 -25
- package/cjs/inputs/FileInput/FileInput.stories.js.map +7 -0
- package/cjs/inputs/FileInput/__stories__/Default/index.js +46 -29
- package/cjs/inputs/FileInput/__stories__/Default.js.map +7 -0
- package/cjs/inputs/FileInput/index.js +58 -59
- package/cjs/inputs/FileInput/index.js.map +7 -0
- package/cjs/inputs/ImageInput/ImageInput.stories/index.js +37 -49
- package/cjs/inputs/ImageInput/ImageInput.stories.js.map +7 -0
- package/cjs/inputs/ImageInput/__stories__/Default/index.js +54 -35
- package/cjs/inputs/ImageInput/__stories__/Default.js.map +7 -0
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +61 -42
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +7 -0
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +58 -39
- package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +7 -0
- package/cjs/inputs/ImageInput/index.js +65 -64
- package/cjs/inputs/ImageInput/index.js.map +7 -0
- package/cjs/inputs/Input/Input.stories/index.js +45 -134
- package/cjs/inputs/Input/Input.stories.js.map +7 -0
- package/cjs/inputs/Input/__stories__/AFM/index.js +49 -30
- package/cjs/inputs/Input/__stories__/AFM.js.map +7 -0
- package/cjs/inputs/Input/__stories__/Boolean/index.js +50 -31
- package/cjs/inputs/Input/__stories__/Boolean.js.map +7 -0
- package/cjs/inputs/Input/__stories__/Default/index.js +50 -31
- package/cjs/inputs/Input/__stories__/Default.js.map +7 -0
- package/cjs/inputs/Input/__stories__/IBAN/index.js +50 -31
- package/cjs/inputs/Input/__stories__/IBAN.js.map +7 -0
- package/cjs/inputs/Input/__stories__/Integer/index.js +47 -26
- package/cjs/inputs/Input/__stories__/Integer.js.map +7 -0
- package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +53 -34
- package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +7 -0
- package/cjs/inputs/Input/__stories__/MobilePhone/index.js +53 -34
- package/cjs/inputs/Input/__stories__/MobilePhone.js.map +7 -0
- package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +52 -33
- package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +7 -0
- package/cjs/inputs/Input/__stories__/PostalCode/index.js +50 -33
- package/cjs/inputs/Input/__stories__/PostalCode.js.map +7 -0
- package/cjs/inputs/Input/__stories__/TextWithCharacterLimit/index.js +50 -37
- package/cjs/inputs/Input/__stories__/TextWithCharacterLimit.js.map +7 -0
- package/cjs/inputs/Input/index.js +69 -67
- package/cjs/inputs/Input/index.js.map +7 -0
- package/cjs/inputs/Label/Label.stories/index.js +35 -25
- package/cjs/inputs/Label/Label.stories.js.map +7 -0
- package/cjs/inputs/Label/__stories__/Default/index.js +52 -35
- package/cjs/inputs/Label/__stories__/Default.js.map +7 -0
- package/cjs/inputs/Label/index.js +41 -20
- package/cjs/inputs/Label/index.js.map +7 -0
- package/cjs/inputs/OtpInput/OtpInput.stories/index.js +35 -25
- package/cjs/inputs/OtpInput/OtpInput.stories.js.map +7 -0
- package/cjs/inputs/OtpInput/__stories__/Default/index.js +55 -36
- package/cjs/inputs/OtpInput/__stories__/Default.js.map +7 -0
- package/cjs/inputs/OtpInput/index.js +102 -96
- package/cjs/inputs/OtpInput/index.js.map +7 -0
- package/cjs/inputs/Radio/Radio.stories/index.js +37 -49
- package/cjs/inputs/Radio/Radio.stories.js.map +7 -0
- package/cjs/inputs/Radio/__stories__/Conditional/index.js +113 -88
- package/cjs/inputs/Radio/__stories__/Conditional.js.map +7 -0
- package/cjs/inputs/Radio/__stories__/Default/index.js +67 -53
- package/cjs/inputs/Radio/__stories__/Default.js.map +7 -0
- package/cjs/inputs/Radio/__stories__/WithDivider/index.js +68 -54
- package/cjs/inputs/Radio/__stories__/WithDivider.js.map +7 -0
- package/cjs/inputs/Radio/index.js +77 -60
- package/cjs/inputs/Radio/index.js.map +7 -0
- package/cjs/inputs/Select/Select.stories/index.js +35 -25
- package/cjs/inputs/Select/Select.stories.js.map +7 -0
- package/cjs/inputs/Select/__stories__/Default/index.js +72 -59
- package/cjs/inputs/Select/__stories__/Default.js.map +7 -0
- package/cjs/inputs/Select/index.js +46 -36
- package/cjs/inputs/Select/index.js.map +7 -0
- package/cjs/inputs/index.js +56 -69
- package/cjs/inputs/index.js.map +7 -0
- package/cjs/internal/index.js +89 -346
- package/cjs/internal.js.map +7 -0
- package/cjs/lazy/index.js +87 -516
- package/cjs/lazy.js.map +7 -0
- package/cjs/registry/index.js +156 -137
- package/cjs/registry.js.map +7 -0
- package/cjs/types/index.js +4 -5
- package/cjs/types.js.map +7 -0
- package/cjs/utils/index.js +61 -79
- package/cjs/utils.js.map +7 -0
- package/cjs/validators/index.js +129 -131
- package/cjs/validators/index.js.map +7 -0
- package/cjs/validators/types/index.js +4 -5
- package/cjs/validators/types.js.map +7 -0
- package/cjs/validators/utils/afm/index.js +26 -21
- package/cjs/validators/utils/afm.js.map +7 -0
- package/cjs/validators/utils/file/index.js +31 -46
- package/cjs/validators/utils/file.js.map +7 -0
- package/cjs/validators/utils/iban/index.js +24 -17
- package/cjs/validators/utils/iban.js.map +7 -0
- package/cjs/validators/utils/image/index.js +76 -112
- package/cjs/validators/utils/image.js.map +7 -0
- package/cjs/validators/utils/index.js +70 -158
- package/cjs/validators/utils/index.js.map +7 -0
- package/cjs/validators/utils/int/index.js +22 -12
- package/cjs/validators/utils/int.js.map +7 -0
- package/cjs/validators/utils/number/index.js +21 -11
- package/cjs/validators/utils/number.js.map +7 -0
- package/cjs/validators/utils/otp/index.js +23 -13
- package/cjs/validators/utils/otp.js.map +7 -0
- package/cjs/validators/utils/phone/index.js +94 -58
- package/cjs/validators/utils/phone.js.map +7 -0
- package/cjs/validators/utils/postal_code/index.js +24 -16
- package/cjs/validators/utils/postal_code.js.map +7 -0
- package/cjs/validators/utils/text_limit/index.js +28 -25
- package/cjs/validators/utils/text_limit.js.map +7 -0
- package/cjs/validators/utils/uuid4/index.js +22 -13
- package/cjs/validators/utils/uuid4.js.map +7 -0
- package/cjs/validators/validators.spec/index.js +77 -60
- package/cjs/validators/validators.spec.js.map +7 -0
- package/index.js +8 -4
- package/index.js.map +7 -0
- package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +10 -5
- package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +1 -0
- package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +7 -0
- package/inputs/AutoCompleteInput/__stories__/Default/index.js +44 -44
- package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -0
- package/inputs/AutoCompleteInput/__stories__/Default.js.map +7 -0
- package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +45 -0
- package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +6 -0
- package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +2 -0
- package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +7 -0
- package/inputs/AutoCompleteInput/index.js +32 -31
- package/inputs/AutoCompleteInput/index.js.map +7 -0
- package/inputs/Checkboxes/Checkboxes.stories/index.js +11 -7
- package/inputs/Checkboxes/Checkboxes.stories.js.map +7 -0
- package/inputs/Checkboxes/__stories__/Conditional/index.js +87 -79
- package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -0
- package/inputs/Checkboxes/__stories__/Conditional.js.map +7 -0
- package/inputs/Checkboxes/__stories__/Default/index.js +36 -38
- package/inputs/Checkboxes/__stories__/Default.js.map +7 -0
- package/inputs/Checkboxes/__stories__/WithDivider/index.js +37 -39
- package/inputs/Checkboxes/__stories__/WithDivider.js.map +7 -0
- package/inputs/Checkboxes/index.js +70 -89
- package/inputs/Checkboxes/index.js.map +7 -0
- package/inputs/DateInput/DateInput.stories/index.js +9 -5
- package/inputs/DateInput/DateInput.stories.js.map +7 -0
- package/inputs/DateInput/__stories__/Default/index.js +23 -21
- package/inputs/DateInput/__stories__/Default.js.map +7 -0
- package/inputs/DateInput/index.js +63 -80
- package/inputs/DateInput/index.js.map +7 -0
- package/inputs/FileInput/FileInput.stories/index.js +9 -5
- package/inputs/FileInput/FileInput.stories.js.map +7 -0
- package/inputs/FileInput/__stories__/Default/index.js +19 -19
- package/inputs/FileInput/__stories__/Default.js.map +7 -0
- package/inputs/FileInput/index.js +32 -50
- package/inputs/FileInput/index.js.map +7 -0
- package/inputs/ImageInput/ImageInput.stories/index.js +11 -7
- package/inputs/ImageInput/ImageInput.stories.js.map +7 -0
- package/inputs/ImageInput/__stories__/Default/index.js +27 -25
- package/inputs/ImageInput/__stories__/Default.js.map +7 -0
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +34 -32
- package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +7 -0
- package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +31 -29
- package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +7 -0
- package/inputs/ImageInput/index.js +38 -55
- package/inputs/ImageInput/index.js.map +7 -0
- package/inputs/Input/Input.stories/index.js +18 -14
- package/inputs/Input/Input.stories.js.map +7 -0
- package/inputs/Input/__stories__/AFM/index.js +22 -20
- package/inputs/Input/__stories__/AFM.js.map +7 -0
- package/inputs/Input/__stories__/Boolean/index.js +23 -21
- package/inputs/Input/__stories__/Boolean.js.map +7 -0
- package/inputs/Input/__stories__/Default/index.js +23 -21
- package/inputs/Input/__stories__/Default.js.map +7 -0
- package/inputs/Input/__stories__/IBAN/index.js +23 -21
- package/inputs/Input/__stories__/IBAN.js.map +7 -0
- package/inputs/Input/__stories__/Integer/index.js +21 -17
- package/inputs/Input/__stories__/Integer.js.map +7 -0
- package/inputs/Input/__stories__/LandlineNumber/index.js +26 -24
- package/inputs/Input/__stories__/LandlineNumber.js.map +7 -0
- package/inputs/Input/__stories__/MobilePhone/index.js +26 -24
- package/inputs/Input/__stories__/MobilePhone.js.map +7 -0
- package/inputs/Input/__stories__/PhoneNumber/index.js +25 -23
- package/inputs/Input/__stories__/PhoneNumber.js.map +7 -0
- package/inputs/Input/__stories__/PostalCode/index.js +23 -23
- package/inputs/Input/__stories__/PostalCode.js.map +7 -0
- package/inputs/Input/__stories__/TextWithCharacterLimit/index.js +23 -27
- package/inputs/Input/__stories__/TextWithCharacterLimit.js.map +7 -0
- package/inputs/Input/index.js +43 -61
- package/inputs/Input/index.js.map +7 -0
- package/inputs/Label/Label.stories/index.js +9 -5
- package/inputs/Label/Label.stories.js.map +7 -0
- package/inputs/Label/__stories__/Default/index.js +25 -25
- package/inputs/Label/__stories__/Default.js.map +7 -0
- package/inputs/Label/index.js +15 -14
- package/inputs/Label/index.js.map +7 -0
- package/inputs/OtpInput/OtpInput.stories/index.js +9 -5
- package/inputs/OtpInput/OtpInput.stories.js.map +7 -0
- package/inputs/OtpInput/__stories__/Default/index.js +28 -26
- package/inputs/OtpInput/__stories__/Default.js.map +7 -0
- package/inputs/OtpInput/index.js +76 -87
- package/inputs/OtpInput/index.js.map +7 -0
- package/inputs/Radio/Radio.stories/index.js +11 -7
- package/inputs/Radio/Radio.stories.js.map +7 -0
- package/inputs/Radio/__stories__/Conditional/index.js +87 -79
- package/inputs/Radio/__stories__/Conditional.d.ts +1 -0
- package/inputs/Radio/__stories__/Conditional.js.map +7 -0
- package/inputs/Radio/__stories__/Default/index.js +40 -43
- package/inputs/Radio/__stories__/Default.js.map +7 -0
- package/inputs/Radio/__stories__/WithDivider/index.js +41 -44
- package/inputs/Radio/__stories__/WithDivider.js.map +7 -0
- package/inputs/Radio/index.js +51 -54
- package/inputs/Radio/index.js.map +7 -0
- package/inputs/Select/Select.stories/index.js +9 -5
- package/inputs/Select/Select.stories.js.map +7 -0
- package/inputs/Select/__stories__/Default/index.js +45 -49
- package/inputs/Select/__stories__/Default.js.map +7 -0
- package/inputs/Select/index.js +20 -30
- package/inputs/Select/index.js.map +7 -0
- package/inputs/index.js +21 -9
- package/inputs/index.js.map +7 -0
- package/internal/index.js +51 -34
- package/internal.js.map +7 -0
- package/lazy/index.js +63 -395
- package/lazy.d.ts +1 -1
- package/lazy.js.map +7 -0
- package/package.json +6 -7
- package/registry/index.js +132 -129
- package/registry.js.map +7 -0
- package/src/Field/FieldBase.tsx +1 -0
- package/src/Field/utils.ts +4 -4
- package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +1 -0
- package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -0
- package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +46 -0
- package/src/inputs/AutoCompleteInput/index.mdx +23 -0
- package/src/inputs/AutoCompleteInput/index.tsx +3 -2
- package/src/inputs/Checkboxes/__stories__/Conditional.tsx +2 -3
- package/src/inputs/Checkboxes/index.mdx +33 -0
- package/src/inputs/Checkboxes/index.tsx +2 -2
- package/src/inputs/DateInput/index.mdx +23 -0
- package/src/inputs/DateInput/index.tsx +1 -1
- package/src/inputs/FileInput/index.mdx +19 -0
- package/src/inputs/ImageInput/index.mdx +19 -0
- package/src/inputs/Input/index.mdx +90 -3
- package/src/inputs/OtpInput/index.mdx +23 -0
- package/src/inputs/OtpInput/index.tsx +1 -1
- package/src/inputs/Radio/__stories__/Conditional.tsx +2 -0
- package/src/inputs/Radio/index.mdx +33 -0
- package/src/inputs/Select/index.mdx +17 -0
- package/types/index.js +1 -1
- package/types.js.map +7 -0
- package/utils/index.js +35 -73
- package/utils.js.map +7 -0
- package/validators/index.js +106 -113
- package/validators/index.js.map +7 -0
- package/validators/types/index.js +1 -1
- package/validators/types.js.map +7 -0
- package/validators/utils/afm/index.js +16 -16
- package/validators/utils/afm.js.map +7 -0
- package/validators/utils/file/index.js +21 -41
- package/validators/utils/file.js.map +7 -0
- package/validators/utils/iban/index.js +14 -12
- package/validators/utils/iban.js.map +7 -0
- package/validators/utils/image/index.js +66 -106
- package/validators/utils/image.js.map +7 -0
- package/validators/utils/index.js +45 -47
- package/validators/utils/index.js.map +7 -0
- package/validators/utils/int/index.js +12 -7
- package/validators/utils/int.js.map +7 -0
- package/validators/utils/number/index.js +11 -6
- package/validators/utils/number.js.map +7 -0
- package/validators/utils/otp/index.js +13 -8
- package/validators/utils/otp.js.map +7 -0
- package/validators/utils/phone/index.js +82 -51
- package/validators/utils/phone.js.map +7 -0
- package/validators/utils/postal_code/index.js +14 -11
- package/validators/utils/postal_code.js.map +7 -0
- package/validators/utils/text_limit/index.js +18 -20
- package/validators/utils/text_limit.js.map +7 -0
- package/validators/utils/uuid4/index.js +12 -8
- package/validators/utils/uuid4.js.map +7 -0
- package/validators/validators.spec/index.js +64 -58
- package/validators/validators.spec.js.map +7 -0
- package/Field/index.mdx +0 -6
- package/FieldArray/FieldArray.stories.playwright.json +0 -353
- package/FormBuilder/FormBuilder.mdx +0 -256
- package/FormBuilder/FormBuilder.stories.playwright.json +0 -52
- package/MultiplicityField/MultiplicityField.mdx +0 -590
- package/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
- package/Questions/__snapshots__/index.spec.tsx.snap +0 -596
- package/Questions/index.mdx +0 -415
- package/cjs/Field/index.mdx +0 -6
- package/cjs/FieldArray/FieldArray.stories.playwright.json +0 -353
- package/cjs/FormBuilder/FormBuilder.mdx +0 -256
- package/cjs/FormBuilder/FormBuilder.stories.playwright.json +0 -52
- package/cjs/MultiplicityField/MultiplicityField.mdx +0 -590
- package/cjs/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
- package/cjs/Questions/__snapshots__/index.spec.tsx.snap +0 -596
- package/cjs/Questions/index.mdx +0 -415
- package/cjs/create-simple-form.mdx +0 -539
- package/cjs/index.mdx +0 -51
- package/cjs/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
- package/cjs/inputs/Checkboxes/index.mdx +0 -0
- package/cjs/inputs/DateInput/DateInput.stories.playwright.json +0 -72
- package/cjs/inputs/FileInput/FileInput.stories.playwright.json +0 -75
- package/cjs/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
- package/cjs/inputs/Input/Input.stories.playwright.json +0 -376
- package/cjs/inputs/Input/index.mdx +0 -8
- package/cjs/inputs/Label/Label.stories.playwright.json +0 -40
- package/cjs/inputs/Label/index.mdx +0 -0
- package/cjs/inputs/Radio/Radio.stories.playwright.json +0 -73
- package/cjs/inputs/Radio/index.mdx +0 -0
- package/cjs/inputs/Select/Select.stories.playwright.json +0 -22
- package/cjs/installation.mdx +0 -68
- package/create-simple-form.mdx +0 -539
- package/index.mdx +0 -51
- package/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
- package/inputs/Checkboxes/index.mdx +0 -0
- package/inputs/DateInput/DateInput.stories.playwright.json +0 -72
- package/inputs/FileInput/FileInput.stories.playwright.json +0 -75
- package/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
- package/inputs/Input/Input.stories.playwright.json +0 -376
- package/inputs/Input/index.mdx +0 -8
- package/inputs/Label/Label.stories.playwright.json +0 -40
- package/inputs/Label/index.mdx +0 -0
- package/inputs/Radio/Radio.stories.playwright.json +0 -73
- package/inputs/Radio/index.mdx +0 -0
- package/inputs/Select/Select.stories.playwright.json +0 -22
- package/installation.mdx +0 -68
|
@@ -1,13 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const countryPhoneData = {
|
|
2
|
+
GR: [
|
|
3
|
+
"30",
|
|
4
|
+
"00",
|
|
5
|
+
"5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",
|
|
6
|
+
[10, 11, 12],
|
|
7
|
+
[
|
|
8
|
+
["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]],
|
|
9
|
+
[
|
|
10
|
+
"(\\d{4})(\\d{6})",
|
|
11
|
+
"$1 $2",
|
|
12
|
+
["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]
|
|
13
|
+
],
|
|
14
|
+
["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]],
|
|
15
|
+
["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]
|
|
16
|
+
],
|
|
17
|
+
0,
|
|
18
|
+
0,
|
|
19
|
+
0,
|
|
20
|
+
0,
|
|
21
|
+
0,
|
|
22
|
+
0,
|
|
23
|
+
[
|
|
24
|
+
[
|
|
25
|
+
"2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}",
|
|
26
|
+
[10]
|
|
27
|
+
],
|
|
28
|
+
["68[57-9]\\d{7}|(?:69|94)\\d{8}", [10]],
|
|
29
|
+
["800\\d{7,9}"],
|
|
30
|
+
["90[19]\\d{7}", [10]],
|
|
31
|
+
["70\\d{8}", [10]],
|
|
32
|
+
0,
|
|
33
|
+
["5005000\\d{3}", [10]],
|
|
34
|
+
0,
|
|
35
|
+
0,
|
|
36
|
+
["8(?:0[16]|12|[27]5|50)\\d{7}", [10]]
|
|
37
|
+
]
|
|
38
|
+
]
|
|
5
39
|
};
|
|
6
40
|
function expandPhoneNumberStructure(compressed) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
for (
|
|
10
|
-
var country = _countries[_i];
|
|
41
|
+
const countries = Object.keys(compressed);
|
|
42
|
+
const expanded = {};
|
|
43
|
+
for (const country of countries) {
|
|
11
44
|
expanded[country] = {
|
|
12
45
|
fixedLine: {
|
|
13
46
|
possibleLengths: {
|
|
@@ -40,40 +73,34 @@ function expandPhoneNumberStructure(compressed) {
|
|
|
40
73
|
}
|
|
41
74
|
return expanded;
|
|
42
75
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
76
|
+
const PHONENUMBER_SPEC = expandPhoneNumberStructure(countryPhoneData);
|
|
77
|
+
function discoverPhoneType(phoneNumber, config) {
|
|
78
|
+
const cleanNumber = phoneNumber.replace(/\D/g, "").replace(/\s/g, "").replace(/^\+/, "").replace(new RegExp("^" + config.internationalPrefix, ""), "").replace(new RegExp("^" + config.countryCode, ""), "");
|
|
79
|
+
const categories = {
|
|
80
|
+
landline: config.fixedLine,
|
|
48
81
|
mobile: config.mobile,
|
|
49
82
|
"toll-free": config.tollFree,
|
|
50
83
|
"premium-rate": config.premiumRate
|
|
51
84
|
};
|
|
52
|
-
for (
|
|
53
|
-
|
|
54
|
-
categoryName = _Object$entries$_i[0],
|
|
55
|
-
categoryDetails = _Object$entries$_i[1];
|
|
56
|
-
var pattern = new RegExp("^(" + categoryDetails.nationalNumberPattern.replace(/\s/g, "") + ")$", "");
|
|
85
|
+
for (const [categoryName, categoryDetails] of Object.entries(categories)) {
|
|
86
|
+
const pattern = new RegExp("^(" + categoryDetails.nationalNumberPattern.replace(/\s/g, "") + ")$", "");
|
|
57
87
|
if (cleanNumber.match(pattern)) {
|
|
58
|
-
return categoryName;
|
|
88
|
+
return categoryName;
|
|
59
89
|
}
|
|
60
90
|
}
|
|
61
|
-
|
|
62
|
-
// If no category matches, return 'Unknown'
|
|
63
91
|
return "unknown";
|
|
64
92
|
}
|
|
65
93
|
function getNumberType(phoneNumber, country) {
|
|
66
|
-
|
|
94
|
+
const spec = PHONENUMBER_SPEC[country.toUpperCase()];
|
|
67
95
|
if (!spec) {
|
|
68
|
-
throw new Error(
|
|
96
|
+
throw new Error(`Country ${country} is not supported`);
|
|
69
97
|
}
|
|
70
|
-
|
|
98
|
+
const type = discoverPhoneType(phoneNumber, spec);
|
|
71
99
|
return type;
|
|
72
100
|
}
|
|
73
|
-
function isPhoneNumberValid(phoneNumber, countries) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var numberType = getNumberType(phoneNumber, country);
|
|
101
|
+
function isPhoneNumberValid(phoneNumber, countries, types = ["mobile", "landline"]) {
|
|
102
|
+
return countries.some((country) => {
|
|
103
|
+
const numberType = getNumberType(phoneNumber, country);
|
|
77
104
|
if (numberType && types.includes(numberType)) {
|
|
78
105
|
return true;
|
|
79
106
|
}
|
|
@@ -81,54 +108,58 @@ function isPhoneNumberValid(phoneNumber, countries) {
|
|
|
81
108
|
});
|
|
82
109
|
}
|
|
83
110
|
function isNumberOfType(phoneNumber, country, type) {
|
|
84
|
-
|
|
111
|
+
const numberType = getNumberType(phoneNumber, country);
|
|
85
112
|
if (numberType === type) {
|
|
86
113
|
return true;
|
|
87
114
|
}
|
|
88
115
|
return false;
|
|
89
116
|
}
|
|
90
|
-
|
|
91
|
-
var countries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['gr'];
|
|
92
|
-
var typeOfPhoneNumber = arguments.length > 2 ? arguments[2] : undefined;
|
|
117
|
+
function validatePhoneNumber(phoneNumber, countries = ["gr"], typeOfPhoneNumber) {
|
|
93
118
|
if (!countries || countries.length === 0) {
|
|
94
119
|
return true;
|
|
95
120
|
}
|
|
96
|
-
return isPhoneNumberValid(phoneNumber, countries, typeOfPhoneNumber ? [typeOfPhoneNumber] :
|
|
121
|
+
return isPhoneNumberValid(phoneNumber, countries, typeOfPhoneNumber ? [typeOfPhoneNumber] : void 0);
|
|
97
122
|
}
|
|
98
123
|
function validateMobile(value) {
|
|
99
|
-
return isNumberOfType(value,
|
|
124
|
+
return isNumberOfType(value, "gr", "mobile");
|
|
100
125
|
}
|
|
101
|
-
|
|
102
|
-
name:
|
|
103
|
-
message:
|
|
104
|
-
test:
|
|
126
|
+
const MOBILE_PHONE_VALIDATOR = {
|
|
127
|
+
name: "mobile-phone-validator",
|
|
128
|
+
message: "form.error.mobile_phone",
|
|
129
|
+
test: (value) => {
|
|
105
130
|
if (value) {
|
|
106
131
|
return validateMobile(value);
|
|
107
132
|
}
|
|
108
133
|
return true;
|
|
109
134
|
}
|
|
110
135
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
var typeOfPhone = field === null || field === void 0 ? void 0 : (_field$extra2 = field.extra) === null || _field$extra2 === void 0 ? void 0 : _field$extra2.phoneType;
|
|
136
|
+
const PHONE_NUMBER_VALIDATOR = (field) => {
|
|
137
|
+
const countryCodes = field?.extra?.countries;
|
|
138
|
+
const typeOfPhone = field?.extra?.phoneType;
|
|
115
139
|
return {
|
|
116
|
-
name:
|
|
117
|
-
message:
|
|
118
|
-
if (typeOfPhone ===
|
|
119
|
-
return
|
|
140
|
+
name: "phone-number-validator",
|
|
141
|
+
message: () => {
|
|
142
|
+
if (typeOfPhone === "mobile") {
|
|
143
|
+
return "form.error.mobile_phone";
|
|
120
144
|
}
|
|
121
|
-
if (typeOfPhone ===
|
|
122
|
-
return
|
|
145
|
+
if (typeOfPhone === "landline") {
|
|
146
|
+
return "form.error.landline";
|
|
123
147
|
} else {
|
|
124
|
-
return
|
|
148
|
+
return "form.error.phone_number";
|
|
125
149
|
}
|
|
126
150
|
},
|
|
127
|
-
test:
|
|
151
|
+
test: (value) => {
|
|
128
152
|
if (!value) {
|
|
129
153
|
return true;
|
|
130
154
|
}
|
|
131
155
|
return validatePhoneNumber(value, countryCodes, typeOfPhone);
|
|
132
156
|
}
|
|
133
157
|
};
|
|
134
|
-
};
|
|
158
|
+
};
|
|
159
|
+
export {
|
|
160
|
+
MOBILE_PHONE_VALIDATOR,
|
|
161
|
+
PHONE_NUMBER_VALIDATOR,
|
|
162
|
+
discoverPhoneType,
|
|
163
|
+
validatePhoneNumber
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/validators/utils/phone.ts"],
|
|
4
|
+
"sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport type PhoneNumberType = 'landline' | 'mobile' | null;\n// add more countries from here libphonenumber-js/metadata.full.json\nconst countryPhoneData = {\n \"GR\": [\n \"30\",\n \"00\",\n \"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",\n [10, 11, 12],\n [\n [\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]],\n [\n \"(\\\\d{4})(\\\\d{6})\",\n \"$1 $2\",\n [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]\n ],\n [\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2689]\"]],\n [\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\", \"$1 $2 $3\", [\"8\"]]\n ],\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n [\n [\n \"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\",\n [10]\n ],\n [\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\", [10]],\n [\"800\\\\d{7,9}\"],\n [\"90[19]\\\\d{7}\", [10]],\n [\"70\\\\d{8}\", [10]],\n 0,\n [\"5005000\\\\d{3}\", [10]],\n 0,\n 0,\n [\"8(?:0[16]|12|[27]5|50)\\\\d{7}\", [10]]\n ]\n ]\n}\n\nfunction expandPhoneNumberStructure(compressed) {\n const countries = Object.keys(compressed);\n const expanded: any = {}\n for (const country of countries) {\n expanded[country] = {\n fixedLine: {\n possibleLengths: {\n _national:\n compressed[country][3].map(\n String\n ),\n },\n nationalNumberPattern:\n compressed[country][11][0][0],\n },\n mobile: {\n nationalNumberPattern:\n compressed[country][11][1][0],\n },\n tollFree: {\n nationalNumberPattern:\n compressed[country][11][2][0],\n },\n premiumRate: {\n nationalNumberPattern:\n compressed[country][11][3][0],\n },\n sharedCost: {\n nationalNumberPattern:\n compressed[country][11][9][0],\n },\n personalNumber: {\n nationalNumberPattern:\n compressed[country][11][4][0],\n },\n uan: {\n nationalNumberPattern:\n compressed[country][11][6][0],\n },\n id: country,\n countryCode:\n compressed[country][0],\n internationalPrefix:\n compressed[country][1],\n\n }\n }\n return expanded;\n}\nconst PHONENUMBER_SPEC = expandPhoneNumberStructure(countryPhoneData);\nexport function discoverPhoneType(\n phoneNumber: string,\n config: any\n): string {\n const cleanNumber = phoneNumber\n .replace(/\\D/g, \"\")\n .replace(/\\s/g, \"\")\n .replace(/^\\+/, \"\")\n .replace(new RegExp(\"^\" + config.internationalPrefix, \"\"), \"\")\n .replace(new RegExp(\"^\" + config.countryCode, \"\"), \"\");\n const categories = {\n \"landline\": config.fixedLine,\n mobile: config.mobile,\n \"toll-free\": config.tollFree,\n \"premium-rate\": config.premiumRate,\n };\n\n for (const [categoryName, categoryDetails] of Object.entries(categories)) {\n const pattern = new RegExp(\n \"^(\" + categoryDetails.nationalNumberPattern.replace(/\\s/g, \"\") + \")$\",\n \"\"\n );\n if (cleanNumber.match(pattern)) {\n return categoryName; // Returns the category name if the number matches the pattern\n }\n }\n\n // If no category matches, return 'Unknown'\n return \"unknown\";\n}\nfunction getNumberType(phoneNumber: string, country: string) {\n const spec = PHONENUMBER_SPEC[country.toUpperCase()];\n if(!spec) {\n throw new Error(`Country ${country} is not supported`);\n }\n const type = discoverPhoneType(phoneNumber, spec);\n return type;\n}\n\nfunction isPhoneNumberValid(phoneNumber: string, countries: string[], types=['mobile', 'landline']) {\n return countries.some((country) => {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType && types.includes(numberType)) {\n return true\n }\n return false\n })\n}\nfunction isNumberOfType(phoneNumber: string, country: string, type: string) {\n const numberType = getNumberType(phoneNumber, country);\n if (numberType === type) {\n return true\n }\n return false\n}\nexport function validatePhoneNumber(\n phoneNumber: string,\n countries: Array<string> = ['gr'],\n typeOfPhoneNumber?: PhoneNumberType\n): boolean {\n if (!countries || countries.length === 0) {\n return true;\n }\n return isPhoneNumberValid(phoneNumber, countries, typeOfPhoneNumber? [typeOfPhoneNumber] : undefined);\n}\n\n\nfunction validateMobile(value): boolean {\n return isNumberOfType(value, 'gr','mobile');\n}\n\nexport const MOBILE_PHONE_VALIDATOR = {\n name: 'mobile-phone-validator',\n message: 'form.error.mobile_phone',\n test: (value): boolean => {\n if (value) {\n return validateMobile(value);\n }\n return true;\n },\n};\n\nexport const PHONE_NUMBER_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCodes = field?.extra?.countries;\n const typeOfPhone: PhoneNumberType | null = field?.extra?.phoneType;\n return {\n name: 'phone-number-validator',\n message: (): string => {\n if (typeOfPhone === 'mobile') {\n return 'form.error.mobile_phone';\n }\n if (typeOfPhone === 'landline') {\n return 'form.error.landline';\n } else {\n return 'form.error.phone_number';\n }\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validatePhoneNumber(value, countryCodes, typeOfPhone);\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const CODE_REGEX = /^[12345678][0-9]{4}$/;
|
|
2
|
+
function validatePostalCode(number, countries) {
|
|
3
3
|
if (!countries) {
|
|
4
4
|
return false;
|
|
5
5
|
} else {
|
|
6
|
-
if (countries.length === 1 && countries[0].toUpperCase() ===
|
|
7
|
-
// Greek postal code must be 5 digits long and shouldn't start with 0 or 9.
|
|
6
|
+
if (countries.length === 1 && countries[0].toUpperCase() === "GR") {
|
|
8
7
|
return CODE_REGEX.test(number);
|
|
9
8
|
} else {
|
|
10
9
|
return true;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.countries;
|
|
13
|
+
const POSTALCODE_VALIDATOR = (field) => {
|
|
14
|
+
const countryCode = field?.extra?.countries;
|
|
17
15
|
return {
|
|
18
|
-
name:
|
|
19
|
-
message:
|
|
20
|
-
test:
|
|
16
|
+
name: "postal-code-validator",
|
|
17
|
+
message: "form.error.postalCode",
|
|
18
|
+
test: (value) => {
|
|
21
19
|
if (!value) {
|
|
22
20
|
return true;
|
|
23
21
|
}
|
|
24
22
|
return validatePostalCode(value, countryCode);
|
|
25
23
|
}
|
|
26
24
|
};
|
|
27
|
-
};
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
POSTALCODE_VALIDATOR,
|
|
28
|
+
validatePostalCode
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=postal_code.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/validators/utils/postal_code.ts"],
|
|
4
|
+
"sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nconst CODE_REGEX = /^[12345678][0-9]{4}$/;\nexport function validatePostalCode(\n number: string,\n countries: Array<string>\n): boolean {\n if (!countries) {\n return false;\n } else {\n if (countries.length === 1 && countries[0].toUpperCase() === 'GR') {\n // Greek postal code must be 5 digits long and shouldn't start with 0 or 9.\n return CODE_REGEX.test(number);\n } else {\n return true;\n }\n }\n}\n\nexport const POSTALCODE_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const countryCode = field?.extra?.countries;\n return {\n name: 'postal-code-validator',\n message: 'form.error.postalCode',\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validatePostalCode(value, countryCode);\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "AAGA,MAAM,aAAa;AACZ,4BACL,QACA,WACS;AACT,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,SACF;AACL,QAAI,UAAU,WAAW,KAAK,UAAU,GAAG,kBAAkB,MAAM;AAEjE,aAAO,WAAW,KAAK;AAAA,WAClB;AACL,aAAO;AAAA;AAAA;AAAA;AAKN,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,cAAc,OAAO,OAAO;AAClC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,mBAAmB,OAAO;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
function validateText(value, min, max) {
|
|
2
|
+
let validator;
|
|
3
3
|
if (min || max) {
|
|
4
4
|
if (value.length < min || value.length > max) {
|
|
5
5
|
return validator = false;
|
|
@@ -9,39 +9,37 @@ export function validateText(value, min, max) {
|
|
|
9
9
|
}
|
|
10
10
|
return validator;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var max = field === null || field === void 0 ? void 0 : (_field$extra2 = field.extra) === null || _field$extra2 === void 0 ? void 0 : (_field$extra2$limit = _field$extra2.limit) === null || _field$extra2$limit === void 0 ? void 0 : _field$extra2$limit.max;
|
|
12
|
+
const TEXT_LIMIT_VALIDATOR = (field) => {
|
|
13
|
+
const min = field?.extra?.limit?.min;
|
|
14
|
+
const max = field?.extra?.limit?.max;
|
|
16
15
|
return {
|
|
17
|
-
name:
|
|
18
|
-
message:
|
|
16
|
+
name: "text-limit-validator",
|
|
17
|
+
message: (v) => {
|
|
19
18
|
if (min || max) {
|
|
20
19
|
if (v.value.length < min) {
|
|
21
|
-
var _field$extra3, _field$extra3$limit;
|
|
22
20
|
return {
|
|
23
|
-
key:
|
|
24
|
-
context: {
|
|
25
|
-
min: field === null || field === void 0 ? void 0 : (_field$extra3 = field.extra) === null || _field$extra3 === void 0 ? void 0 : (_field$extra3$limit = _field$extra3.limit) === null || _field$extra3$limit === void 0 ? void 0 : _field$extra3$limit.min
|
|
26
|
-
}
|
|
21
|
+
key: "form.error.text.less_than",
|
|
22
|
+
context: {min: field?.extra?.limit?.min}
|
|
27
23
|
};
|
|
28
24
|
}
|
|
29
25
|
if (v.value.length > max) {
|
|
30
|
-
var _field$extra4, _field$extra4$limit;
|
|
31
26
|
return {
|
|
32
|
-
key:
|
|
33
|
-
context: {
|
|
34
|
-
max: field === null || field === void 0 ? void 0 : (_field$extra4 = field.extra) === null || _field$extra4 === void 0 ? void 0 : (_field$extra4$limit = _field$extra4.limit) === null || _field$extra4$limit === void 0 ? void 0 : _field$extra4$limit.max
|
|
35
|
-
}
|
|
27
|
+
key: "form.error.text.more_than",
|
|
28
|
+
context: {max: field?.extra?.limit?.max}
|
|
36
29
|
};
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
32
|
},
|
|
40
|
-
test:
|
|
33
|
+
test: (value) => {
|
|
41
34
|
if (!value) {
|
|
42
35
|
return true;
|
|
43
36
|
}
|
|
44
37
|
return validateText(value, min, max);
|
|
45
38
|
}
|
|
46
39
|
};
|
|
47
|
-
};
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
TEXT_LIMIT_VALIDATOR,
|
|
43
|
+
validateText
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=text_limit.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/validators/utils/text_limit.ts"],
|
|
4
|
+
"sourcesContent": ["import { FieldSpec } from '@digigov/form/types';\nimport { ValidatorSchema } from '@digigov/form/validators/types';\n\nexport function validateText(value: string, min: number, max: number): boolean {\n let validator;\n if (min || max) {\n if (value.length < min || value.length > max) {\n return (validator = false);\n } else {\n return (validator = true);\n }\n }\n return validator;\n}\n\nexport const TEXT_LIMIT_VALIDATOR = (field: FieldSpec): ValidatorSchema => {\n const min: number = field?.extra?.limit?.min;\n const max: number = field?.extra?.limit?.max;\n return {\n name: 'text-limit-validator',\n message: (v: any): any => {\n if (min || max) {\n if (v.value.length < min) {\n return {\n key: 'form.error.text.less_than',\n context: { min: field?.extra?.limit?.min },\n };\n }\n if (v.value.length > max) {\n return {\n key: 'form.error.text.more_than',\n context: { max: field?.extra?.limit?.max },\n };\n }\n }\n },\n test: (value: string): boolean => {\n if (!value) {\n return true;\n }\n return validateText(value, min as number, max as number);\n },\n };\n};\n"],
|
|
5
|
+
"mappings": "AAGO,sBAAsB,OAAe,KAAa,KAAsB;AAC7E,MAAI;AACJ,MAAI,OAAO,KAAK;AACd,QAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK;AAC5C,aAAQ,YAAY;AAAA,WACf;AACL,aAAQ,YAAY;AAAA;AAAA;AAGxB,SAAO;AAAA;AAGF,MAAM,uBAAuB,CAAC,UAAsC;AACzE,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,QAAM,MAAc,OAAO,OAAO,OAAO;AACzC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAAC,MAAgB;AACxB,UAAI,OAAO,KAAK;AACd,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,CAAE,KAAK,OAAO,OAAO,OAAO;AAAA;AAAA;AAGzC,YAAI,EAAE,MAAM,SAAS,KAAK;AACxB,iBAAO;AAAA,YACL,KAAK;AAAA,YACL,SAAS,CAAE,KAAK,OAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAK7C,MAAM,CAAC,UAA2B;AAChC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA;AAET,aAAO,aAAa,OAAO,KAAe;AAAA;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const UUID4_PATTERN = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
|
|
2
|
+
function validateUUID4(uuid4) {
|
|
3
3
|
if (uuid4.length !== 36) {
|
|
4
|
-
// This uuid4 should be 36 characters long
|
|
5
4
|
return false;
|
|
6
5
|
}
|
|
7
6
|
return UUID4_PATTERN.test(uuid4);
|
|
8
7
|
}
|
|
9
|
-
|
|
10
|
-
name:
|
|
11
|
-
message:
|
|
12
|
-
test:
|
|
8
|
+
const UUID4_VALIDATOR = {
|
|
9
|
+
name: "uuid4-validator",
|
|
10
|
+
message: "form.error.uuid4",
|
|
11
|
+
test: (value) => {
|
|
13
12
|
if (value) {
|
|
14
13
|
return validateUUID4(value);
|
|
15
14
|
}
|
|
16
15
|
return true;
|
|
17
16
|
}
|
|
18
|
-
};
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
UUID4_VALIDATOR,
|
|
20
|
+
validateUUID4
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=uuid4.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/validators/utils/uuid4.ts"],
|
|
4
|
+
"sourcesContent": ["const UUID4_PATTERN = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;\n\nexport function validateUUID4(uuid4: string): boolean {\n if (uuid4.length !== 36) {\n // This uuid4 should be 36 characters long\n return false;\n }\n\n return UUID4_PATTERN.test(uuid4);\n}\n\nexport const UUID4_VALIDATOR = {\n name: 'uuid4-validator',\n message: 'form.error.uuid4',\n test: (value): boolean => {\n if (value) {\n return validateUUID4(value);\n }\n return true;\n },\n};\n"],
|
|
5
|
+
"mappings": "AAAA,MAAM,gBAAgB;AAEf,uBAAuB,OAAwB;AACpD,MAAI,MAAM,WAAW,IAAI;AAEvB,WAAO;AAAA;AAGT,SAAO,cAAc,KAAK;AAAA;AAGrB,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,CAAC,UAAmB;AACxB,QAAI,OAAO;AACT,aAAO,cAAc;AAAA;AAEvB,WAAO;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,85 +1,91 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
validateUUID4,
|
|
3
|
+
validateIban,
|
|
4
|
+
validatePostalCode,
|
|
5
|
+
validatePhoneNumber
|
|
6
|
+
} from "@digigov/form/validators/utils";
|
|
7
|
+
it("validates wrong uuid4 for empty value", () => {
|
|
8
|
+
expect(validateUUID4("")).toBe(false);
|
|
4
9
|
});
|
|
5
|
-
it(
|
|
6
|
-
expect(validateUUID4(
|
|
10
|
+
it("validates wrong uuid4 because of length", () => {
|
|
11
|
+
expect(validateUUID4("9e463bc44a294bab8ee23af6cc3cbbe3")).toBe(false);
|
|
7
12
|
});
|
|
8
|
-
it(
|
|
9
|
-
expect(validateUUID4(
|
|
13
|
+
it("validates wrong uuid4 with correct length and wrong form", () => {
|
|
14
|
+
expect(validateUUID4("ab123cd1-1234-ad34-ad45-12345abcdefg")).toBe(false);
|
|
10
15
|
});
|
|
11
|
-
it(
|
|
12
|
-
expect(validateUUID4(
|
|
16
|
+
it("validates correct uuid4 validator", () => {
|
|
17
|
+
expect(validateUUID4("9e463bc4-4a29-4bab-8ee2-3af6cc3cbbe3")).toBe(true);
|
|
13
18
|
});
|
|
14
|
-
it(
|
|
15
|
-
expect(validateIban(
|
|
19
|
+
it("validates correct gr iban", () => {
|
|
20
|
+
expect(validateIban("GR7801100800000008009825202", "GR")).toBe(true);
|
|
16
21
|
});
|
|
17
|
-
it(
|
|
18
|
-
expect(validateIban(
|
|
22
|
+
it("validates correct iban with spaces and dashes", () => {
|
|
23
|
+
expect(validateIban("GR 7801-1008 0000-0008 0098-25202", "GR")).toBe(true);
|
|
19
24
|
});
|
|
20
|
-
it(
|
|
21
|
-
expect(validateIban(
|
|
25
|
+
it("validates correct foreign iban", () => {
|
|
26
|
+
expect(validateIban("DE75512108001245126199", "DE")).toBe(true);
|
|
22
27
|
});
|
|
23
|
-
it(
|
|
24
|
-
expect(validateIban(
|
|
28
|
+
it("validates wrong iban for empty value", () => {
|
|
29
|
+
expect(validateIban("", "")).toBe(false);
|
|
25
30
|
});
|
|
26
|
-
it(
|
|
27
|
-
expect(validateIban(
|
|
31
|
+
it("validates wrong greek iban for wrong length", () => {
|
|
32
|
+
expect(validateIban("GR78011008000000080098252020", "gr")).toBe(false);
|
|
28
33
|
});
|
|
29
|
-
it(
|
|
30
|
-
expect(validateIban(
|
|
34
|
+
it("validates wrong iban for non existing country code", () => {
|
|
35
|
+
expect(validateIban("AAA78011008000000080098252020", "aaa")).toBe(false);
|
|
31
36
|
});
|
|
32
|
-
it(
|
|
33
|
-
expect(validateIban(
|
|
37
|
+
it("validates correct greek iban whithout country code", () => {
|
|
38
|
+
expect(validateIban("7801100800000008009825202", "")).toBe(true);
|
|
34
39
|
});
|
|
35
|
-
it(
|
|
36
|
-
expect(validatePostalCode(
|
|
40
|
+
it("validates wrong postal code without country code", () => {
|
|
41
|
+
expect(validatePostalCode("123", [])).toBe(true);
|
|
37
42
|
});
|
|
38
|
-
it(
|
|
39
|
-
expect(validatePostalCode(
|
|
43
|
+
it("validates wrong postal code with wrong country code", () => {
|
|
44
|
+
expect(validatePostalCode("123", ["FR"])).toBe(true);
|
|
40
45
|
});
|
|
41
|
-
it(
|
|
42
|
-
expect(validatePostalCode(
|
|
46
|
+
it("validates wrong postal code with greek country code", () => {
|
|
47
|
+
expect(validatePostalCode("123", ["GR"])).toBe(false);
|
|
43
48
|
});
|
|
44
|
-
it(
|
|
45
|
-
expect(validatePostalCode(
|
|
49
|
+
it("validates postal code with greek country code", () => {
|
|
50
|
+
expect(validatePostalCode("11143", ["GR"])).toBe(true);
|
|
46
51
|
});
|
|
47
|
-
it(
|
|
48
|
-
expect(validatePhoneNumber(
|
|
52
|
+
it("validates phone number type landline with greek country code", () => {
|
|
53
|
+
expect(validatePhoneNumber("2102934896", ["GR"], "landline")).toBe(true);
|
|
49
54
|
});
|
|
50
|
-
it(
|
|
51
|
-
expect(validatePhoneNumber(
|
|
55
|
+
it("validates phone number type landline with ch country code", () => {
|
|
56
|
+
expect(validatePhoneNumber("2102934896", ["CH"], "landline")).toBe(false);
|
|
52
57
|
});
|
|
53
|
-
it(
|
|
54
|
-
expect(validatePhoneNumber(
|
|
58
|
+
it("validates phone number type landline with ch and gr countries code", () => {
|
|
59
|
+
expect(validatePhoneNumber("2102934896", ["GR", "CH"], "landline")).toBe(true);
|
|
55
60
|
});
|
|
56
|
-
it(
|
|
57
|
-
expect(validatePhoneNumber(
|
|
61
|
+
it("validatesphone number type landline with ch and gr countries code", () => {
|
|
62
|
+
expect(validatePhoneNumber("41446681800", ["GR", "CH"], "landline")).toBe(true);
|
|
58
63
|
});
|
|
59
|
-
it(
|
|
60
|
-
expect(validatePhoneNumber(
|
|
64
|
+
it("validates phone number type landline with ch and gr countries code but phone number is mobile", () => {
|
|
65
|
+
expect(validatePhoneNumber("2102934896", ["GR", "CH"], "mobile")).toBe(false);
|
|
61
66
|
});
|
|
62
|
-
it(
|
|
63
|
-
expect(validatePhoneNumber(
|
|
67
|
+
it("validates phone number type mobile with ch and gr countries code", () => {
|
|
68
|
+
expect(validatePhoneNumber("6934100982", ["GR", "CH"], "mobile")).toBe(true);
|
|
64
69
|
});
|
|
65
|
-
it(
|
|
66
|
-
expect(validatePhoneNumber(
|
|
70
|
+
it("validates phone number type mobile with gr country code", () => {
|
|
71
|
+
expect(validatePhoneNumber("6934100982", ["GR"], "mobile")).toBe(true);
|
|
67
72
|
});
|
|
68
|
-
it(
|
|
69
|
-
expect(validatePhoneNumber(
|
|
73
|
+
it("validates phone number type mobile with ch country code", () => {
|
|
74
|
+
expect(validatePhoneNumber("6934100982", ["CH"], "mobile")).toBe(false);
|
|
70
75
|
});
|
|
71
|
-
it(
|
|
72
|
-
expect(validatePhoneNumber(
|
|
76
|
+
it("validates phone number with no type and ch country code", () => {
|
|
77
|
+
expect(validatePhoneNumber("6934100982", ["CH"], null)).toBe(false);
|
|
73
78
|
});
|
|
74
|
-
it(
|
|
75
|
-
expect(validatePhoneNumber(
|
|
79
|
+
it("validates phone number with no type and gr country code", () => {
|
|
80
|
+
expect(validatePhoneNumber("6934100982", ["gr"], null)).toBe(true);
|
|
76
81
|
});
|
|
77
|
-
it(
|
|
78
|
-
expect(validatePhoneNumber(
|
|
82
|
+
it("validates phone number with no type and ch country code", () => {
|
|
83
|
+
expect(validatePhoneNumber("41446681800", ["CH"], null)).toBe(true);
|
|
79
84
|
});
|
|
80
|
-
it(
|
|
81
|
-
expect(validatePhoneNumber(
|
|
85
|
+
it("validates phone number with no type and gr country code", () => {
|
|
86
|
+
expect(validatePhoneNumber("41446681800", ["gr"], null)).toBe(false);
|
|
82
87
|
});
|
|
83
|
-
it(
|
|
84
|
-
expect(validatePhoneNumber(
|
|
85
|
-
});
|
|
88
|
+
it("validates phone number with no type and gr and ch countries code", () => {
|
|
89
|
+
expect(validatePhoneNumber("41446681800", ["gr", "ch"], null)).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=validators.spec.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/validators/validators.spec.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n validateUUID4,\n validateIban,\n validatePostalCode,\n validatePhoneNumber,\n} from '@digigov/form/validators/utils';\n\nit('validates wrong uuid4 for empty value', () => {\n expect(validateUUID4('')).toBe(false);\n});\n\nit('validates wrong uuid4 because of length', () => {\n expect(validateUUID4('9e463bc44a294bab8ee23af6cc3cbbe3')).toBe(false);\n});\n\nit('validates wrong uuid4 with correct length and wrong form', () => {\n expect(validateUUID4('ab123cd1-1234-ad34-ad45-12345abcdefg')).toBe(false);\n});\n\nit('validates correct uuid4 validator', () => {\n expect(validateUUID4('9e463bc4-4a29-4bab-8ee2-3af6cc3cbbe3')).toBe(true);\n});\n\nit('validates correct gr iban', () => {\n expect(validateIban('GR7801100800000008009825202', 'GR')).toBe(true);\n});\n\nit('validates correct iban with spaces and dashes', () => {\n expect(validateIban('GR 7801-1008 0000-0008 0098-25202', 'GR')).toBe(true);\n});\n\nit('validates correct foreign iban', () => {\n expect(validateIban('DE75512108001245126199', 'DE')).toBe(true);\n});\n\nit('validates wrong iban for empty value', () => {\n expect(validateIban('', '')).toBe(false);\n});\n\nit('validates wrong greek iban for wrong length', () => {\n expect(validateIban('GR78011008000000080098252020', 'gr')).toBe(false);\n});\n\nit('validates wrong iban for non existing country code', () => {\n expect(validateIban('AAA78011008000000080098252020', 'aaa')).toBe(false);\n});\n\nit('validates correct greek iban whithout country code', () => {\n expect(validateIban('7801100800000008009825202', '')).toBe(true);\n});\n\nit('validates wrong postal code without country code', () => {\n expect(validatePostalCode('123', [])).toBe(true);\n});\n\nit('validates wrong postal code with wrong country code', () => {\n expect(validatePostalCode('123', ['FR'])).toBe(true);\n});\n\nit('validates wrong postal code with greek country code', () => {\n expect(validatePostalCode('123', ['GR'])).toBe(false);\n});\n\nit('validates postal code with greek country code', () => {\n expect(validatePostalCode('11143', ['GR'])).toBe(true);\n});\n\nit('validates phone number type landline with greek country code', () => {\n expect(validatePhoneNumber('2102934896', ['GR'], 'landline')).toBe(true);\n});\n\nit('validates phone number type landline with ch country code', () => {\n expect(validatePhoneNumber('2102934896', ['CH'], 'landline')).toBe(false);\n});\n\nit('validates phone number type landline with ch and gr countries code', () => {\n expect(validatePhoneNumber('2102934896', ['GR', 'CH'], 'landline')).toBe(\n true\n );\n});\n\nit('validatesphone number type landline with ch and gr countries code', () => {\n expect(validatePhoneNumber('41446681800', ['GR', 'CH'], 'landline')).toBe(\n true\n );\n});\n\nit('validates phone number type landline with ch and gr countries code but phone number is mobile', () => {\n expect(validatePhoneNumber('2102934896', ['GR', 'CH'], 'mobile')).toBe(false);\n});\n\nit('validates phone number type mobile with ch and gr countries code', () => {\n expect(validatePhoneNumber('6934100982', ['GR', 'CH'], 'mobile')).toBe(true);\n});\n\nit('validates phone number type mobile with gr country code', () => {\n expect(validatePhoneNumber('6934100982', ['GR'], 'mobile')).toBe(true);\n});\n\nit('validates phone number type mobile with ch country code', () => {\n expect(validatePhoneNumber('6934100982', ['CH'], 'mobile')).toBe(false);\n});\n\nit('validates phone number with no type and ch country code', () => {\n expect(validatePhoneNumber('6934100982', ['CH'], null)).toBe(false);\n});\n\nit('validates phone number with no type and gr country code', () => {\n expect(validatePhoneNumber('6934100982', ['gr'], null)).toBe(true);\n});\n\nit('validates phone number with no type and ch country code', () => {\n expect(validatePhoneNumber('41446681800', ['CH'], null)).toBe(true);\n});\n\nit('validates phone number with no type and gr country code', () => {\n expect(validatePhoneNumber('41446681800', ['gr'], null)).toBe(false);\n});\n\nit('validates phone number with no type and gr and ch countries code', () => {\n expect(validatePhoneNumber('41446681800', ['gr', 'ch'], null)).toBe(true);\n});\n"],
|
|
5
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,GAAG,yCAAyC,MAAM;AAChD,SAAO,cAAc,KAAK,KAAK;AAAA;AAGjC,GAAG,2CAA2C,MAAM;AAClD,SAAO,cAAc,qCAAqC,KAAK;AAAA;AAGjE,GAAG,4DAA4D,MAAM;AACnE,SAAO,cAAc,yCAAyC,KAAK;AAAA;AAGrE,GAAG,qCAAqC,MAAM;AAC5C,SAAO,cAAc,yCAAyC,KAAK;AAAA;AAGrE,GAAG,6BAA6B,MAAM;AACpC,SAAO,aAAa,+BAA+B,OAAO,KAAK;AAAA;AAGjE,GAAG,iDAAiD,MAAM;AACxD,SAAO,aAAa,qCAAqC,OAAO,KAAK;AAAA;AAGvE,GAAG,kCAAkC,MAAM;AACzC,SAAO,aAAa,0BAA0B,OAAO,KAAK;AAAA;AAG5D,GAAG,wCAAwC,MAAM;AAC/C,SAAO,aAAa,IAAI,KAAK,KAAK;AAAA;AAGpC,GAAG,+CAA+C,MAAM;AACtD,SAAO,aAAa,gCAAgC,OAAO,KAAK;AAAA;AAGlE,GAAG,sDAAsD,MAAM;AAC7D,SAAO,aAAa,iCAAiC,QAAQ,KAAK;AAAA;AAGpE,GAAG,sDAAsD,MAAM;AAC7D,SAAO,aAAa,6BAA6B,KAAK,KAAK;AAAA;AAG7D,GAAG,oDAAoD,MAAM;AAC3D,SAAO,mBAAmB,OAAO,KAAK,KAAK;AAAA;AAG7C,GAAG,uDAAuD,MAAM;AAC9D,SAAO,mBAAmB,OAAO,CAAC,QAAQ,KAAK;AAAA;AAGjD,GAAG,uDAAuD,MAAM;AAC9D,SAAO,mBAAmB,OAAO,CAAC,QAAQ,KAAK;AAAA;AAGjD,GAAG,iDAAiD,MAAM;AACxD,SAAO,mBAAmB,SAAS,CAAC,QAAQ,KAAK;AAAA;AAGnD,GAAG,gEAAgE,MAAM;AACvE,SAAO,oBAAoB,cAAc,CAAC,OAAO,aAAa,KAAK;AAAA;AAGrE,GAAG,6DAA6D,MAAM;AACpE,SAAO,oBAAoB,cAAc,CAAC,OAAO,aAAa,KAAK;AAAA;AAGrE,GAAG,wEAAwE,MAAM;AAC/E,SAAO,oBAAoB,cAAc,CAAC,MAAM,OAAO,aAAa,KAClE;AAAA;AAIJ,GAAG,uEAAuE,MAAM;AAC9E,SAAO,oBAAoB,eAAe,CAAC,MAAM,OAAO,aAAa,KACnE;AAAA;AAIJ,GAAG,mGAAmG,MAAM;AAC1G,SAAO,oBAAoB,cAAc,CAAC,MAAM,OAAO,WAAW,KAAK;AAAA;AAGzE,GAAG,sEAAsE,MAAM;AAC7E,SAAO,oBAAoB,cAAc,CAAC,MAAM,OAAO,WAAW,KAAK;AAAA;AAGzE,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,cAAc,CAAC,OAAO,WAAW,KAAK;AAAA;AAGnE,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,cAAc,CAAC,OAAO,WAAW,KAAK;AAAA;AAGnE,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,cAAc,CAAC,OAAO,OAAO,KAAK;AAAA;AAG/D,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,cAAc,CAAC,OAAO,OAAO,KAAK;AAAA;AAG/D,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,eAAe,CAAC,OAAO,OAAO,KAAK;AAAA;AAGhE,GAAG,4DAA4D,MAAM;AACnE,SAAO,oBAAoB,eAAe,CAAC,OAAO,OAAO,KAAK;AAAA;AAGhE,GAAG,qEAAqE,MAAM;AAC5E,SAAO,oBAAoB,eAAe,CAAC,MAAM,OAAO,OAAO,KAAK;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|