@digigov/form 0.6.9 → 0.7.1
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/CHANGELOG.md +24 -1
- package/Field/FieldBase.js +110 -0
- package/Field/{ConditionalField.js → FieldConditional.js} +9 -29
- package/Field/FieldContainer.js +62 -0
- package/Field/index.js +11 -251
- package/Field/types.js +5 -0
- package/Field/utils.js +146 -0
- package/Fieldset/FieldsetWithContext.js +63 -0
- package/Fieldset/index.js +4 -63
- package/Fieldset/types.js +5 -0
- package/FormBuilder.js +178 -0
- package/FormContext.js +14 -0
- package/Questions/Questions.js +105 -0
- package/Questions/QuestionsContext.js +20 -0
- package/Questions/Step/ReviewStep.js +11 -7
- package/Questions/Step/Step.js +93 -0
- package/Questions/Step/StepArrayReview.js +79 -0
- package/Questions/Step/StepContext.js +37 -0
- package/Questions/Step/StepDescription.js +2 -2
- package/Questions/Step/StepForm.js +10 -6
- package/Questions/Step/StepTitle.js +2 -2
- package/Questions/Step/getAddMoreFields.js +31 -0
- package/Questions/Step/index.js +81 -200
- package/Questions/Step/types.js +5 -0
- package/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/Questions/getNextStep.js +30 -0
- package/Questions/index.js +4 -150
- package/Questions/types.js +5 -0
- package/es/Field/FieldBase.js +93 -0
- package/es/Field/{ConditionalField.js → FieldConditional.js} +5 -28
- package/es/Field/FieldContainer.js +40 -0
- package/es/Field/index.js +8 -233
- package/es/Field/types.js +1 -0
- package/es/Field/utils.js +122 -0
- package/es/Fieldset/FieldsetWithContext.js +41 -0
- package/es/Fieldset/index.js +3 -51
- package/es/Fieldset/types.js +1 -0
- package/es/FormBuilder.js +148 -0
- package/es/FormContext.js +5 -0
- package/es/Questions/Questions.js +84 -0
- package/es/Questions/QuestionsContext.js +11 -0
- package/es/Questions/Step/ReviewStep.js +5 -3
- package/es/Questions/Step/Step.js +69 -0
- package/es/Questions/Step/StepArrayReview.js +50 -0
- package/es/Questions/Step/StepContext.js +27 -0
- package/es/Questions/Step/StepDescription.js +1 -1
- package/es/Questions/Step/StepForm.js +4 -2
- package/es/Questions/Step/StepTitle.js +1 -1
- package/es/Questions/Step/getAddMoreFields.js +22 -0
- package/es/Questions/Step/index.js +13 -165
- package/es/Questions/Step/types.js +1 -0
- package/es/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/es/Questions/getNextStep.js +23 -0
- package/es/Questions/index.js +2 -119
- package/es/Questions/index.spec.js +2 -1
- package/es/Questions/types.js +1 -0
- package/es/index.js +2 -153
- package/es/inputs/index.js +5 -4
- package/es/internal.js +31 -0
- package/es/types.js +1 -0
- package/es/utils.js +5 -3
- package/es/validators/index.js +155 -0
- package/es/validators/types.js +1 -0
- package/es/validators/utils/afm.js +35 -0
- package/es/validators/utils/file.js +52 -0
- package/es/validators/utils/iban.js +123 -0
- package/es/validators/utils/index.js +105 -0
- package/es/validators/utils/phone.js +122 -0
- package/es/validators/utils/postal_code.js +29 -0
- package/es/validators/utils/uuid4.js +20 -0
- package/{esm → es/validators}/validators.spec.js +1 -1
- package/esm/Field/FieldBase.js +93 -0
- package/esm/Field/{ConditionalField.js → FieldConditional.js} +5 -28
- package/esm/Field/FieldContainer.js +40 -0
- package/esm/Field/index.js +8 -233
- package/esm/Field/types.js +1 -0
- package/esm/Field/utils.js +122 -0
- package/esm/Fieldset/FieldsetWithContext.js +41 -0
- package/esm/Fieldset/index.js +3 -51
- package/esm/Fieldset/types.js +1 -0
- package/esm/FormBuilder.js +148 -0
- package/esm/FormContext.js +5 -0
- package/esm/Questions/Questions.js +84 -0
- package/esm/Questions/QuestionsContext.js +11 -0
- package/esm/Questions/Step/ReviewStep.js +5 -3
- package/esm/Questions/Step/Step.js +69 -0
- package/esm/Questions/Step/StepArrayReview.js +50 -0
- package/esm/Questions/Step/StepContext.js +27 -0
- package/esm/Questions/Step/StepDescription.js +1 -1
- package/esm/Questions/Step/StepForm.js +4 -2
- package/esm/Questions/Step/StepTitle.js +1 -1
- package/esm/Questions/Step/getAddMoreFields.js +22 -0
- package/esm/Questions/Step/index.js +13 -165
- package/esm/Questions/Step/types.js +1 -0
- package/esm/Questions/__snapshots__/index.spec.tsx.snap +461 -2499
- package/esm/Questions/getNextStep.js +23 -0
- package/esm/Questions/index.js +2 -119
- package/esm/Questions/index.spec.js +2 -1
- package/esm/Questions/types.js +1 -0
- package/esm/index.js +3 -154
- package/esm/inputs/index.js +5 -4
- package/esm/internal.js +31 -0
- package/esm/types.js +1 -0
- package/esm/utils.js +5 -3
- package/esm/validators/index.js +155 -0
- package/esm/validators/types.js +1 -0
- package/esm/validators/utils/afm.js +35 -0
- package/esm/validators/utils/file.js +52 -0
- package/esm/validators/utils/iban.js +123 -0
- package/esm/validators/utils/index.js +105 -0
- package/esm/validators/utils/phone.js +122 -0
- package/esm/validators/utils/postal_code.js +29 -0
- package/esm/validators/utils/uuid4.js +20 -0
- package/{es → esm/validators}/validators.spec.js +1 -1
- package/index.js +8 -191
- package/inputs/index.js +13 -5
- package/internal.js +356 -0
- package/libs/form/src/Field/FieldBase.d.ts +3 -0
- package/libs/form/src/Field/FieldConditional.d.ts +4 -0
- package/libs/form/src/Field/FieldContainer.d.ts +4 -0
- package/libs/form/src/Field/index.d.ts +1 -62
- package/libs/form/src/Field/types.d.ts +75 -0
- package/libs/form/src/Field/utils.d.ts +5 -0
- package/libs/form/src/Fieldset/FieldsetWithContext.d.ts +4 -0
- package/libs/form/src/Fieldset/index.d.ts +2 -12
- package/libs/form/src/Fieldset/types.d.ts +6 -0
- package/libs/form/src/FormBuilder.d.ts +5 -0
- package/libs/form/src/FormContext.d.ts +3 -0
- package/libs/form/src/Questions/Questions.d.ts +8 -0
- package/libs/form/src/Questions/QuestionsContext.d.ts +3 -0
- package/libs/form/src/Questions/Step/ReviewStep.d.ts +1 -0
- package/libs/form/src/Questions/Step/Step.d.ts +9 -0
- package/libs/form/src/Questions/Step/StepArrayReview.d.ts +4 -0
- package/libs/form/src/Questions/Step/StepContext.d.ts +4 -0
- package/libs/form/src/Questions/Step/StepForm.d.ts +2 -1
- package/libs/form/src/Questions/Step/getAddMoreFields.d.ts +3 -0
- package/libs/form/src/Questions/Step/index.d.ts +12 -47
- package/libs/form/src/Questions/Step/types.d.ts +31 -0
- package/libs/form/src/Questions/getNextStep.d.ts +2 -0
- package/libs/form/src/Questions/index.d.ts +1 -28
- package/libs/form/src/Questions/types.d.ts +19 -0
- package/libs/form/src/index.d.ts +2 -73
- package/libs/form/src/inputs/Checkboxes/index.d.ts +1 -1
- package/libs/form/src/inputs/DateInput/index.d.ts +1 -2
- package/libs/form/src/inputs/FileInput/index.d.ts +1 -1
- package/libs/form/src/inputs/Input/index.d.ts +1 -1
- package/libs/form/src/inputs/Label/index.d.ts +2 -1
- package/libs/form/src/inputs/Radio/index.d.ts +1 -1
- package/libs/form/src/inputs/Select/index.d.ts +1 -1
- package/libs/form/src/inputs/index.d.ts +4 -3
- package/libs/form/src/internal.d.ts +31 -0
- package/libs/form/src/types.d.ts +70 -0
- package/libs/form/src/validators/index.d.ts +8 -0
- package/libs/form/src/validators/types.d.ts +2 -0
- package/libs/form/src/validators/utils/afm.d.ts +6 -0
- package/libs/form/src/validators/utils/file.d.ts +1 -0
- package/libs/form/src/validators/utils/iban.d.ts +2 -0
- package/libs/form/src/validators/utils/index.d.ts +12 -0
- package/libs/form/src/validators/utils/phone.d.ts +9 -0
- package/libs/form/src/validators/utils/postal_code.d.ts +2 -0
- package/libs/form/src/validators/utils/uuid4.d.ts +6 -0
- package/libs/form/src/{validators.spec.d.ts → validators/validators.spec.d.ts} +0 -0
- package/libs/ui/src/core/Accordion/index.d.ts +3 -3
- package/libs/ui/src/core/Base/index.d.ts +3 -0
- package/libs/ui/src/core/Blockquote/index.d.ts +1 -1
- package/libs/ui/src/core/Button/BackButton.d.ts +1 -1
- package/libs/ui/src/core/Button/ButtonLink.d.ts +1 -1
- package/libs/ui/src/core/Button/index.d.ts +1 -1
- package/libs/ui/src/core/Divider/index.d.ts +1 -1
- package/libs/ui/src/core/Form/index.d.ts +3 -0
- package/libs/ui/src/core/Label/index.d.ts +4 -0
- package/libs/ui/src/core/Link/index.d.ts +1 -0
- package/libs/ui/src/core/NavList/NavHorizontal.d.ts +3 -0
- package/libs/ui/src/core/NavList/NavHorizontalList.d.ts +3 -0
- package/libs/ui/src/core/NavList/NavHorizontalListItem.d.ts +3 -0
- package/libs/ui/src/core/NavList/NavList.d.ts +1 -14
- package/libs/ui/src/core/NavList/NavListBase.d.ts +4 -0
- package/libs/ui/src/core/NavList/NavListItem.d.ts +1 -0
- package/libs/ui/src/core/NavList/NavListItemBase.d.ts +2 -1
- package/libs/ui/src/core/NavList/NavListSubMenu.d.ts +1 -1
- package/libs/ui/src/core/NavList/NavVertical.d.ts +3 -0
- package/libs/ui/src/core/NavList/NavVerticalItem.d.ts +3 -0
- package/libs/ui/src/core/NavList/index.d.ts +5 -0
- package/libs/ui/src/core/NavList/types.d.ts +14 -0
- package/libs/ui/src/core/SkipLink/index.d.ts +3 -0
- package/libs/ui/src/core/SvgIcon/index.d.ts +1 -0
- package/libs/ui/src/core/Table/TableFloatingScroll.d.ts +2 -0
- package/libs/ui/src/core/Table/index.d.ts +1 -0
- package/libs/ui/src/core/index.d.ts +4 -0
- package/libs/ui/src/layouts/Grid/index.d.ts +1 -0
- package/libs/ui/src/typography/Caption/index.d.ts +3 -2
- package/libs/ui/src/typography/Title/index.d.ts +2 -1
- package/libs-ui/react-core/src/Accordion/index.d.ts +3 -3
- package/libs-ui/react-core/src/AccordionControls/index.d.ts +3 -3
- package/libs-ui/react-core/src/AccordionSection/index.d.ts +3 -3
- package/libs-ui/react-core/src/AccordionSectionContent/index.d.ts +3 -3
- package/libs-ui/react-core/src/AccordionSectionHeader/index.d.ts +3 -3
- package/libs-ui/react-core/src/AccordionSectionSummary/index.d.ts +4 -3
- package/libs-ui/react-core/src/AccordionSectionSummaryHeading/index.d.ts +3 -3
- package/libs-ui/react-core/src/BackLink/index.d.ts +3 -3
- package/libs-ui/react-core/src/Base/index.d.ts +43 -0
- package/libs-ui/react-core/src/Blockquote/index.d.ts +3 -3
- package/libs-ui/react-core/src/Breadcrumbs/index.d.ts +3 -3
- package/libs-ui/react-core/src/BreadcrumbsList/index.d.ts +3 -3
- package/libs-ui/react-core/src/BreadcrumbsListItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/Button/index.d.ts +3 -3
- package/libs-ui/react-core/src/ButtonGroup/index.d.ts +3 -3
- package/libs-ui/react-core/src/ButtonLink/index.d.ts +3 -3
- package/libs-ui/react-core/src/CallToAction/index.d.ts +1 -1
- package/libs-ui/react-core/src/Card/index.d.ts +3 -3
- package/libs-ui/react-core/src/CardAction/index.d.ts +3 -3
- package/libs-ui/react-core/src/CardHeading/index.d.ts +3 -3
- package/libs-ui/react-core/src/CardText/index.d.ts +3 -3
- package/libs-ui/react-core/src/CheckIcon/index.d.ts +15 -0
- package/libs-ui/react-core/src/Checkbox/index.d.ts +3 -3
- package/libs-ui/react-core/src/CheckboxItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/Confirmation/index.d.ts +3 -3
- package/libs-ui/react-core/src/ConfirmationBody/index.d.ts +3 -3
- package/libs-ui/react-core/src/ConfirmationTitle/index.d.ts +3 -3
- package/libs-ui/react-core/src/DateInput/index.d.ts +3 -3
- package/libs-ui/react-core/src/DateInputItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/Details/index.d.ts +3 -3
- package/libs-ui/react-core/src/DetailsContent/index.d.ts +3 -3
- package/libs-ui/react-core/src/DetailsSummary/index.d.ts +3 -3
- package/libs-ui/react-core/src/ErrorMessage/index.d.ts +3 -3
- package/libs-ui/react-core/src/ErrorSummary/index.d.ts +3 -3
- package/libs-ui/react-core/src/Field/index.d.ts +3 -3
- package/libs-ui/react-core/src/Fieldset/index.d.ts +3 -3
- package/libs-ui/react-core/src/FieldsetLegend/index.d.ts +3 -3
- package/libs-ui/react-core/src/FileUpload/index.d.ts +3 -3
- package/libs-ui/react-core/src/Form/index.d.ts +11 -0
- package/libs-ui/react-core/src/Grid/index.d.ts +3 -3
- package/libs-ui/react-core/src/Heading/index.d.ts +3 -3
- package/libs-ui/react-core/src/HeadingCaption/index.d.ts +3 -3
- package/libs-ui/react-core/src/Hidden/index.d.ts +3 -3
- package/libs-ui/react-core/src/Hint/index.d.ts +3 -3
- package/libs-ui/react-core/src/Label/index.d.ts +3 -3
- package/libs-ui/react-core/src/LabelTitle/index.d.ts +7 -7
- package/libs-ui/react-core/src/Link/index.d.ts +3 -3
- package/libs-ui/react-core/src/List/index.d.ts +3 -3
- package/libs-ui/react-core/src/ListItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/NavHorizontal/index.d.ts +16 -0
- package/libs-ui/react-core/src/NavHorizontalList/index.d.ts +10 -0
- package/libs-ui/react-core/src/NavHorizontalListItem/index.d.ts +18 -0
- package/libs-ui/react-core/src/NavVertical/index.d.ts +11 -0
- package/libs-ui/react-core/src/NavVerticalItem/index.d.ts +14 -0
- package/libs-ui/react-core/src/NormalText/index.d.ts +3 -3
- package/libs-ui/react-core/src/NotificationBanner/index.d.ts +3 -3
- package/libs-ui/react-core/src/NotificationBannerContent/index.d.ts +3 -3
- package/libs-ui/react-core/src/NotificationBannerHeader/index.d.ts +3 -3
- package/libs-ui/react-core/src/NotificationBannerHeading/index.d.ts +3 -3
- package/libs-ui/react-core/src/NotificationBannerLink/index.d.ts +3 -3
- package/libs-ui/react-core/src/Paragraph/index.d.ts +3 -3
- package/libs-ui/react-core/src/PhaseBanner/index.d.ts +3 -3
- package/libs-ui/react-core/src/PhaseBannerHeaderContainer/index.d.ts +3 -3
- package/libs-ui/react-core/src/PhaseBannerTag/index.d.ts +3 -3
- package/libs-ui/react-core/src/PhaseBannerText/index.d.ts +3 -3
- package/libs-ui/react-core/src/Radio/index.d.ts +3 -3
- package/libs-ui/react-core/src/RadioItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/SectionBreak/index.d.ts +3 -3
- package/libs-ui/react-core/src/Select/index.d.ts +3 -3
- package/libs-ui/react-core/src/SelectOption/index.d.ts +3 -3
- package/libs-ui/react-core/src/SkipLink/index.d.ts +10 -0
- package/libs-ui/react-core/src/SummaryList/index.d.ts +3 -3
- package/libs-ui/react-core/src/SummaryListItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/SummaryListItemAction/index.d.ts +3 -3
- package/libs-ui/react-core/src/SummaryListItemKey/index.d.ts +3 -3
- package/libs-ui/react-core/src/SummaryListItemValue/index.d.ts +3 -3
- package/libs-ui/react-core/src/SvgIcon/index.d.ts +3 -3
- package/libs-ui/react-core/src/Table/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableBody/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableCaption/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableContainer/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableDataCell/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableHead/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableHeadCell/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableNoDataRow/index.d.ts +3 -3
- package/libs-ui/react-core/src/TableRow/index.d.ts +3 -3
- package/libs-ui/react-core/src/Tabs/index.d.ts +3 -3
- package/libs-ui/react-core/src/TabsHeading/index.d.ts +3 -3
- package/libs-ui/react-core/src/TabsList/index.d.ts +3 -3
- package/libs-ui/react-core/src/TabsListItem/index.d.ts +3 -3
- package/libs-ui/react-core/src/TabsPanel/index.d.ts +3 -3
- package/libs-ui/react-core/src/TextArea/index.d.ts +3 -3
- package/libs-ui/react-core/src/TextInput/index.d.ts +3 -3
- package/libs-ui/react-core/src/UncheckIcon/index.d.ts +4 -4
- package/libs-ui/react-core/src/VisuallyHidden/index.d.ts +3 -3
- package/libs-ui/react-core/src/WarningText/index.d.ts +3 -3
- package/package.json +3 -2
- package/types.js +5 -0
- package/utils.js +6 -4
- package/validators/index.js +181 -0
- package/validators/types.js +5 -0
- package/validators/utils/afm.js +45 -0
- package/validators/utils/file.js +62 -0
- package/validators/utils/iban.js +134 -0
- package/validators/utils/index.js +210 -0
- package/validators/utils/phone.js +144 -0
- package/validators/utils/postal_code.js +40 -0
- package/validators/utils/uuid4.js +30 -0
- package/validators/validators.spec.js +88 -0
- package/es/validators.js +0 -626
- package/esm/validators.js +0 -626
- package/libs/form/src/Field/ConditionalField.d.ts +0 -17
- package/libs/form/src/validators.d.ts +0 -14
- package/validators.js +0 -662
- package/validators.spec.js +0 -88
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PHONE_NUMBER_VALIDATOR = exports.MOBILE_PHONE_VALIDATOR = void 0;
|
|
9
|
+
exports.matchTypeOfPhoneNumber = matchTypeOfPhoneNumber;
|
|
10
|
+
exports.validatePhoneNumber = validatePhoneNumber;
|
|
11
|
+
|
|
12
|
+
var gPhoneNumber = _interopRequireWildcard(require("google-libphonenumber"));
|
|
13
|
+
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
|
|
18
|
+
function validatePhoneNumber(phoneNumber) {
|
|
19
|
+
var countries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['gr'];
|
|
20
|
+
var typeOfPhoneNumber = arguments.length > 2 ? arguments[2] : undefined;
|
|
21
|
+
var phoneUtil = gPhoneNumber.PhoneNumberUtil.getInstance();
|
|
22
|
+
|
|
23
|
+
if (!countries || countries.length === 0) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return countries.some(function (country) {
|
|
28
|
+
try {
|
|
29
|
+
var phone = phoneUtil.parse(phoneNumber, country.toUpperCase());
|
|
30
|
+
|
|
31
|
+
if (phoneUtil.isValidNumber(phone)) {
|
|
32
|
+
if (typeOfPhoneNumber) {
|
|
33
|
+
if (matchTypeOfPhoneNumber(phone, typeOfPhoneNumber, phoneUtil)) {
|
|
34
|
+
return true;
|
|
35
|
+
} else {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return false;
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error(error);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var phoneNumberTypes = {
|
|
52
|
+
0: 'landline',
|
|
53
|
+
1: 'mobile',
|
|
54
|
+
2: 'landline_or_mobile'
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
function matchTypeOfPhoneNumber(phone, type, phoneUtil) {
|
|
58
|
+
try {
|
|
59
|
+
var phoneNumberType = phoneUtil.getNumberType(phone);
|
|
60
|
+
var numberType = phoneNumberTypes[phoneNumberType];
|
|
61
|
+
|
|
62
|
+
if (numberType === 'landline_or_mobile' || numberType === type) {
|
|
63
|
+
return true;
|
|
64
|
+
} else {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
} catch (error) {
|
|
68
|
+
console.error(error);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function validateMobile(value) {
|
|
74
|
+
var phoneUtil = gPhoneNumber.PhoneNumberUtil.getInstance();
|
|
75
|
+
var origValue = value; // probably catch all the cases with a regex instead of gphonenumber
|
|
76
|
+
|
|
77
|
+
if (!value.match(/^((\+|00){0,1}\d{1,3}[- ]?)?\d{10}$/)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
var phone;
|
|
83
|
+
|
|
84
|
+
try {
|
|
85
|
+
phone = phoneUtil.parse(value);
|
|
86
|
+
} catch (err) {
|
|
87
|
+
try {
|
|
88
|
+
value = '+' + value;
|
|
89
|
+
phone = phoneUtil.parse(value);
|
|
90
|
+
} catch (err) {
|
|
91
|
+
value = '+30' + origValue;
|
|
92
|
+
phone = phoneUtil.parse(value);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return phoneUtil.isValidNumber(phone);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
console.error(err);
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
var MOBILE_PHONE_VALIDATOR = {
|
|
104
|
+
name: 'mobile-phone-validator',
|
|
105
|
+
message: 'form.error.mobile_phone',
|
|
106
|
+
test: function test(value) {
|
|
107
|
+
if (value) {
|
|
108
|
+
return validateMobile(value);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.MOBILE_PHONE_VALIDATOR = MOBILE_PHONE_VALIDATOR;
|
|
115
|
+
|
|
116
|
+
var PHONE_NUMBER_VALIDATOR = function PHONE_NUMBER_VALIDATOR(field) {
|
|
117
|
+
var _field$extra, _field$extra2;
|
|
118
|
+
|
|
119
|
+
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.countries;
|
|
120
|
+
var typeOfPhone = field === null || field === void 0 ? void 0 : (_field$extra2 = field.extra) === null || _field$extra2 === void 0 ? void 0 : _field$extra2.phoneType;
|
|
121
|
+
return {
|
|
122
|
+
name: 'phone-number-validator',
|
|
123
|
+
message: function message() {
|
|
124
|
+
if (typeOfPhone === 'mobile') {
|
|
125
|
+
return 'form.error.mobile_phone';
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (typeOfPhone === 'landline') {
|
|
129
|
+
return 'form.error.landline';
|
|
130
|
+
} else {
|
|
131
|
+
return 'form.error.phone_number';
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
test: function test(value) {
|
|
135
|
+
if (!value) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return validatePhoneNumber(value, countryCode, typeOfPhone);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
exports.PHONE_NUMBER_VALIDATOR = PHONE_NUMBER_VALIDATOR;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.POSTALCODE_VALIDATOR = void 0;
|
|
7
|
+
exports.validatePostalCode = validatePostalCode;
|
|
8
|
+
var CODE_REGEX = /^[12345678][0-9]{4}$/;
|
|
9
|
+
|
|
10
|
+
function validatePostalCode(number, countries) {
|
|
11
|
+
if (!countries) {
|
|
12
|
+
return false;
|
|
13
|
+
} else {
|
|
14
|
+
if (countries.length === 1 && countries[0].toUpperCase() === 'GR') {
|
|
15
|
+
// Greek postal code must be 5 digits long and shouldn't start with 0 or 9.
|
|
16
|
+
return CODE_REGEX.test(number);
|
|
17
|
+
} else {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var POSTALCODE_VALIDATOR = function POSTALCODE_VALIDATOR(field) {
|
|
24
|
+
var _field$extra;
|
|
25
|
+
|
|
26
|
+
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.countries;
|
|
27
|
+
return {
|
|
28
|
+
name: 'postal-code-validator',
|
|
29
|
+
message: 'form.error.postalCode',
|
|
30
|
+
test: function test(value) {
|
|
31
|
+
if (!value) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return validatePostalCode(value, countryCode);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.POSTALCODE_VALIDATOR = POSTALCODE_VALIDATOR;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UUID4_VALIDATOR = void 0;
|
|
7
|
+
exports.validateUUID4 = validateUUID4;
|
|
8
|
+
var 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;
|
|
9
|
+
|
|
10
|
+
function validateUUID4(uuid4) {
|
|
11
|
+
if (uuid4.length !== 36) {
|
|
12
|
+
// This uuid4 should be 36 characters long
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return UUID4_PATTERN.test(uuid4);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var UUID4_VALIDATOR = {
|
|
20
|
+
name: 'uuid4-validator',
|
|
21
|
+
message: 'form.error.uuid4',
|
|
22
|
+
test: function test(value) {
|
|
23
|
+
if (value) {
|
|
24
|
+
return validateUUID4(value);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.UUID4_VALIDATOR = UUID4_VALIDATOR;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _utils = require("@digigov/form/validators/utils");
|
|
4
|
+
|
|
5
|
+
it('validates wrong uuid4 for empty value', function () {
|
|
6
|
+
expect((0, _utils.validateUUID4)('')).toBe(false);
|
|
7
|
+
});
|
|
8
|
+
it('validates wrong uuid4 because of length', function () {
|
|
9
|
+
expect((0, _utils.validateUUID4)('9e463bc44a294bab8ee23af6cc3cbbe3')).toBe(false);
|
|
10
|
+
});
|
|
11
|
+
it('validates wrong uuid4 with correct length and wrong form', function () {
|
|
12
|
+
expect((0, _utils.validateUUID4)('ab123cd1-1234-ad34-ad45-12345abcdefg')).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
it('validates correct uuid4 validator', function () {
|
|
15
|
+
expect((0, _utils.validateUUID4)('9e463bc4-4a29-4bab-8ee2-3af6cc3cbbe3')).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
it('validates correct gr iban', function () {
|
|
18
|
+
expect((0, _utils.validateIban)('GR7801100800000008009825202', 'GR')).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it('validates correct iban with spaces and dashes', function () {
|
|
21
|
+
expect((0, _utils.validateIban)('GR 7801-1008 0000-0008 0098-25202', 'GR')).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
it('validates correct foreign iban', function () {
|
|
24
|
+
expect((0, _utils.validateIban)('DE75512108001245126199', 'DE')).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
it('validates wrong iban for empty value', function () {
|
|
27
|
+
expect((0, _utils.validateIban)('', '')).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
it('validates wrong greek iban for wrong length', function () {
|
|
30
|
+
expect((0, _utils.validateIban)('GR78011008000000080098252020', 'gr')).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('validates wrong iban for non existing country code', function () {
|
|
33
|
+
expect((0, _utils.validateIban)('AAA78011008000000080098252020', 'aaa')).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
it('validates correct greek iban whithout country code', function () {
|
|
36
|
+
expect((0, _utils.validateIban)('7801100800000008009825202', '')).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it('validates wrong postal code without country code', function () {
|
|
39
|
+
expect((0, _utils.validatePostalCode)('123', [])).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
it('validates wrong postal code with wrong country code', function () {
|
|
42
|
+
expect((0, _utils.validatePostalCode)('123', ['FR'])).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
it('validates wrong postal code with greek country code', function () {
|
|
45
|
+
expect((0, _utils.validatePostalCode)('123', ['GR'])).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
it('validates postal code with greek country code', function () {
|
|
48
|
+
expect((0, _utils.validatePostalCode)('11143', ['GR'])).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it('validates phone number type landline with greek country code', function () {
|
|
51
|
+
expect((0, _utils.validatePhoneNumber)('2102934896', ['GR'], 'landline')).toBe(true);
|
|
52
|
+
});
|
|
53
|
+
it('validates phone number type landline with ch country code', function () {
|
|
54
|
+
expect((0, _utils.validatePhoneNumber)('2102934896', ['CH'], 'landline')).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
it('validates phone number type landline with ch and gr countries code', function () {
|
|
57
|
+
expect((0, _utils.validatePhoneNumber)('2102934896', ['GR', 'CH'], 'landline')).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it('validatesphone number type landline with ch and gr countries code', function () {
|
|
60
|
+
expect((0, _utils.validatePhoneNumber)('41446681800', ['GR', 'CH'], 'landline')).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it('validates phone number type landline with ch and gr countries code but phone number is mobile', function () {
|
|
63
|
+
expect((0, _utils.validatePhoneNumber)('2102934896', ['GR', 'CH'], 'mobile')).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it('validates phone number type mobile with ch and gr countries code', function () {
|
|
66
|
+
expect((0, _utils.validatePhoneNumber)('6934100982', ['GR', 'CH'], 'mobile')).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
it('validates phone number type mobile with gr country code', function () {
|
|
69
|
+
expect((0, _utils.validatePhoneNumber)('6934100982', ['GR'], 'mobile')).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
it('validates phone number type mobile with ch country code', function () {
|
|
72
|
+
expect((0, _utils.validatePhoneNumber)('6934100982', ['CH'], 'mobile')).toBe(false);
|
|
73
|
+
});
|
|
74
|
+
it('validates phone number with no type and ch country code', function () {
|
|
75
|
+
expect((0, _utils.validatePhoneNumber)('6934100982', ['CH'], null)).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
it('validates phone number with no type and gr country code', function () {
|
|
78
|
+
expect((0, _utils.validatePhoneNumber)('6934100982', ['gr'], null)).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
it('validates phone number with no type and ch country code', function () {
|
|
81
|
+
expect((0, _utils.validatePhoneNumber)('41446681800', ['CH'], null)).toBe(true);
|
|
82
|
+
});
|
|
83
|
+
it('validates phone number with no type and gr country code', function () {
|
|
84
|
+
expect((0, _utils.validatePhoneNumber)('41446681800', ['gr'], null)).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
it('validates phone number with no type and gr and ch countries code', function () {
|
|
87
|
+
expect((0, _utils.validatePhoneNumber)('41446681800', ['gr', 'ch'], null)).toBe(true);
|
|
88
|
+
});
|