@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
package/validators.js
DELETED
|
@@ -1,662 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.matchTypeOfPhoneNumber = matchTypeOfPhoneNumber;
|
|
11
|
-
exports.useValidationSchema = useValidationSchema;
|
|
12
|
-
exports.validateAFM = validateAFM;
|
|
13
|
-
exports.validateIban = validateIban;
|
|
14
|
-
exports.validatePhoneNumber = validatePhoneNumber;
|
|
15
|
-
exports.validatePostalCode = validatePostalCode;
|
|
16
|
-
exports.validateUUID4 = validateUUID4;
|
|
17
|
-
|
|
18
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
19
|
-
|
|
20
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
21
|
-
|
|
22
|
-
var yup = _interopRequireWildcard(require("yup"));
|
|
23
|
-
|
|
24
|
-
var gPhoneNumber = _interopRequireWildcard(require("google-libphonenumber"));
|
|
25
|
-
|
|
26
|
-
var _react = require("react");
|
|
27
|
-
|
|
28
|
-
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
29
|
-
|
|
30
|
-
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
31
|
-
|
|
32
|
-
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); }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
35
|
-
|
|
36
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
37
|
-
|
|
38
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
-
|
|
40
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
41
|
-
|
|
42
|
-
_dayjs["default"].extend(_customParseFormat["default"]);
|
|
43
|
-
|
|
44
|
-
var DEFAULT_FILE_MAX_SIZE = 10000000;
|
|
45
|
-
|
|
46
|
-
function validatePostalCode(number, countries) {
|
|
47
|
-
if (!countries) {
|
|
48
|
-
return false;
|
|
49
|
-
} else {
|
|
50
|
-
if (countries.length === 1 && countries[0].toUpperCase() === 'GR') {
|
|
51
|
-
// Greek postal code must be 5 digits long and shouldn't start with 0 or 9.
|
|
52
|
-
var CODE_REGEX = /^[12345678][0-9]{4}$/;
|
|
53
|
-
return CODE_REGEX.test(number);
|
|
54
|
-
} else {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function validateAFM(afm) {
|
|
61
|
-
if (afm.length !== 9) {
|
|
62
|
-
// "afm should be 9 digits"
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (!/^\d+$/.test(afm)) {
|
|
67
|
-
// "This is not a number"
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (afm === '0'.repeat(9)) {
|
|
72
|
-
// "This is zero number (000000000)"
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
var sum = afm.substring(0, 8).split('').reduce(function (s, v, i) {
|
|
77
|
-
return s + (parseInt(v) << 8 - i);
|
|
78
|
-
}, 0);
|
|
79
|
-
var calc = sum % 11;
|
|
80
|
-
var d9 = parseInt(afm[8]);
|
|
81
|
-
var valid = calc % 10 === d9;
|
|
82
|
-
return valid;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function validatePhoneNumber(phoneNumber) {
|
|
86
|
-
var countries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['gr'];
|
|
87
|
-
var typeOfPhoneNumber = arguments.length > 2 ? arguments[2] : undefined;
|
|
88
|
-
var phoneUtil = gPhoneNumber.PhoneNumberUtil.getInstance();
|
|
89
|
-
|
|
90
|
-
if (!countries || countries.length === 0) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return countries.some(function (country) {
|
|
95
|
-
try {
|
|
96
|
-
var phone = phoneUtil.parse(phoneNumber, country.toUpperCase());
|
|
97
|
-
|
|
98
|
-
if (phoneUtil.isValidNumber(phone)) {
|
|
99
|
-
if (typeOfPhoneNumber) {
|
|
100
|
-
if (matchTypeOfPhoneNumber(phone, typeOfPhoneNumber, phoneUtil)) {
|
|
101
|
-
return true;
|
|
102
|
-
} else {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
} else {
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return false;
|
|
111
|
-
} catch (error) {
|
|
112
|
-
console.error(error);
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var phoneNumberTypes = {
|
|
119
|
-
0: 'landline',
|
|
120
|
-
1: 'mobile',
|
|
121
|
-
2: 'landline_or_mobile'
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
function matchTypeOfPhoneNumber(phone, type, phoneUtil) {
|
|
125
|
-
try {
|
|
126
|
-
var phoneNumberType = phoneUtil.getNumberType(phone);
|
|
127
|
-
var numberType = phoneNumberTypes[phoneNumberType];
|
|
128
|
-
|
|
129
|
-
if (numberType === 'landline_or_mobile' || numberType === type) {
|
|
130
|
-
return true;
|
|
131
|
-
} else {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
} catch (error) {
|
|
135
|
-
console.error(error);
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function validateMobile(value) {
|
|
141
|
-
var phoneUtil = gPhoneNumber.PhoneNumberUtil.getInstance();
|
|
142
|
-
var origValue = value; // probably catch all the cases with a regex instead of gphonenumber
|
|
143
|
-
|
|
144
|
-
if (!value.match(/^((\+|00){0,1}\d{1,3}[- ]?)?\d{10}$/)) {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
try {
|
|
149
|
-
var phone;
|
|
150
|
-
|
|
151
|
-
try {
|
|
152
|
-
phone = phoneUtil.parse(value);
|
|
153
|
-
} catch (err) {
|
|
154
|
-
try {
|
|
155
|
-
value = '+' + value;
|
|
156
|
-
phone = phoneUtil.parse(value);
|
|
157
|
-
} catch (err) {
|
|
158
|
-
value = '+30' + origValue;
|
|
159
|
-
phone = phoneUtil.parse(value);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return phoneUtil.isValidNumber(phone);
|
|
164
|
-
} catch (err) {
|
|
165
|
-
console.error(err);
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
var POSTALCODE_VALIDATOR = function POSTALCODE_VALIDATOR(field) {
|
|
171
|
-
var _field$extra;
|
|
172
|
-
|
|
173
|
-
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.countries;
|
|
174
|
-
return {
|
|
175
|
-
name: 'postal-code-validator',
|
|
176
|
-
message: 'form.error.postalCode',
|
|
177
|
-
test: function test(value) {
|
|
178
|
-
if (!value) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return validatePostalCode(value, countryCode);
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
var MOBILE_PHONE_VALIDATOR = {
|
|
188
|
-
name: 'mobile-phone-validator',
|
|
189
|
-
message: 'form.error.mobile_phone',
|
|
190
|
-
test: function test(value) {
|
|
191
|
-
if (value) {
|
|
192
|
-
return validateMobile(value);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
var PHONE_NUMBER_VALIDATOR = function PHONE_NUMBER_VALIDATOR(field) {
|
|
200
|
-
var _field$extra2, _field$extra3;
|
|
201
|
-
|
|
202
|
-
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra2 = field.extra) === null || _field$extra2 === void 0 ? void 0 : _field$extra2.countries;
|
|
203
|
-
var typeOfPhone = field === null || field === void 0 ? void 0 : (_field$extra3 = field.extra) === null || _field$extra3 === void 0 ? void 0 : _field$extra3.phoneType;
|
|
204
|
-
return {
|
|
205
|
-
name: 'phone-number-validator',
|
|
206
|
-
message: function message() {
|
|
207
|
-
if (typeOfPhone === 'mobile') {
|
|
208
|
-
return 'form.error.mobile_phone';
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
if (typeOfPhone === 'landline') {
|
|
212
|
-
return 'form.error.landline';
|
|
213
|
-
} else {
|
|
214
|
-
return 'form.error.phone_number';
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
test: function test(value) {
|
|
218
|
-
if (!value) {
|
|
219
|
-
return true;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return validatePhoneNumber(value, countryCode, typeOfPhone);
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
};
|
|
226
|
-
|
|
227
|
-
var AFM_VALIDATOR = {
|
|
228
|
-
name: 'afm-validator',
|
|
229
|
-
message: 'form.error.afm',
|
|
230
|
-
test: function test(value) {
|
|
231
|
-
if (value) {
|
|
232
|
-
return validateAFM(value);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
return true;
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
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;
|
|
239
|
-
|
|
240
|
-
function validateUUID4(uuid4) {
|
|
241
|
-
if (uuid4.length !== 36) {
|
|
242
|
-
// This uuid4 should be 36 characters long
|
|
243
|
-
return false;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
return UUID4_PATTERN.test(uuid4);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
var UUID4_VALIDATOR = {
|
|
250
|
-
name: 'uuid4-validator',
|
|
251
|
-
message: 'form.error.uuid4',
|
|
252
|
-
test: function test(value) {
|
|
253
|
-
if (value) {
|
|
254
|
-
return validateUUID4(value);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
var FILE_MAX_SIZE = function FILE_MAX_SIZE(field) {
|
|
262
|
-
return {
|
|
263
|
-
name: 'file-max-size-validator',
|
|
264
|
-
message: 'form.error.file_size',
|
|
265
|
-
test: function test(value) {
|
|
266
|
-
if (field.extra && field.extra.maxSize && value) {
|
|
267
|
-
var _iterator = _createForOfIteratorHelper(value),
|
|
268
|
-
_step;
|
|
269
|
-
|
|
270
|
-
try {
|
|
271
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
272
|
-
var file = _step.value;
|
|
273
|
-
|
|
274
|
-
if (file.size >= field.extra.maxSize) {
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
} catch (err) {
|
|
279
|
-
_iterator.e(err);
|
|
280
|
-
} finally {
|
|
281
|
-
_iterator.f();
|
|
282
|
-
}
|
|
283
|
-
} else if (value) {
|
|
284
|
-
var _iterator2 = _createForOfIteratorHelper(value),
|
|
285
|
-
_step2;
|
|
286
|
-
|
|
287
|
-
try {
|
|
288
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
289
|
-
var _file = _step2.value;
|
|
290
|
-
|
|
291
|
-
if (_file.size >= DEFAULT_FILE_MAX_SIZE) {
|
|
292
|
-
return false;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
} catch (err) {
|
|
296
|
-
_iterator2.e(err);
|
|
297
|
-
} finally {
|
|
298
|
-
_iterator2.f();
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return true;
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
|
-
};
|
|
306
|
-
|
|
307
|
-
var ibanCountryCodesLengths = {
|
|
308
|
-
AD: 24,
|
|
309
|
-
AT: 20,
|
|
310
|
-
AZ: 28,
|
|
311
|
-
BH: 22,
|
|
312
|
-
BY: 28,
|
|
313
|
-
BE: 16,
|
|
314
|
-
BA: 20,
|
|
315
|
-
BR: 29,
|
|
316
|
-
BG: 22,
|
|
317
|
-
CR: 22,
|
|
318
|
-
HR: 21,
|
|
319
|
-
CY: 28,
|
|
320
|
-
CZ: 24,
|
|
321
|
-
DK: 18,
|
|
322
|
-
DO: 28,
|
|
323
|
-
EG: 29,
|
|
324
|
-
SV: 28,
|
|
325
|
-
EE: 20,
|
|
326
|
-
FO: 18,
|
|
327
|
-
FI: 18,
|
|
328
|
-
FR: 27,
|
|
329
|
-
GE: 22,
|
|
330
|
-
DE: 22,
|
|
331
|
-
GI: 23,
|
|
332
|
-
GR: 27,
|
|
333
|
-
GL: 18,
|
|
334
|
-
GT: 28,
|
|
335
|
-
VA: 22,
|
|
336
|
-
HU: 28,
|
|
337
|
-
IS: 26,
|
|
338
|
-
IQ: 23,
|
|
339
|
-
IE: 22,
|
|
340
|
-
IL: 23,
|
|
341
|
-
IT: 27,
|
|
342
|
-
JO: 30,
|
|
343
|
-
KZ: 20,
|
|
344
|
-
XK: 20,
|
|
345
|
-
KW: 30,
|
|
346
|
-
LV: 21,
|
|
347
|
-
LB: 28,
|
|
348
|
-
LI: 21,
|
|
349
|
-
LT: 20,
|
|
350
|
-
LU: 20,
|
|
351
|
-
MT: 31,
|
|
352
|
-
MR: 27,
|
|
353
|
-
MU: 30,
|
|
354
|
-
MD: 24,
|
|
355
|
-
MC: 27,
|
|
356
|
-
ME: 22,
|
|
357
|
-
NL: 18,
|
|
358
|
-
MK: 19,
|
|
359
|
-
NO: 15,
|
|
360
|
-
PK: 24,
|
|
361
|
-
PS: 29,
|
|
362
|
-
PL: 28,
|
|
363
|
-
PT: 25,
|
|
364
|
-
QA: 29,
|
|
365
|
-
RO: 24,
|
|
366
|
-
LC: 32,
|
|
367
|
-
SM: 27,
|
|
368
|
-
ST: 25,
|
|
369
|
-
SA: 24,
|
|
370
|
-
RS: 22,
|
|
371
|
-
SC: 31,
|
|
372
|
-
SK: 24,
|
|
373
|
-
SI: 19,
|
|
374
|
-
ES: 24,
|
|
375
|
-
SE: 24,
|
|
376
|
-
CH: 21,
|
|
377
|
-
TL: 23,
|
|
378
|
-
TN: 24,
|
|
379
|
-
TR: 26,
|
|
380
|
-
UA: 29,
|
|
381
|
-
AE: 23,
|
|
382
|
-
GB: 22,
|
|
383
|
-
VG: 24
|
|
384
|
-
};
|
|
385
|
-
|
|
386
|
-
function validateIban(value, countryCode) {
|
|
387
|
-
value = value.replace(/\s/g, '').replace(/-/g, '');
|
|
388
|
-
|
|
389
|
-
if (value.match(/^[0-9]*$/i)) {
|
|
390
|
-
// this is for greek iban without the country code
|
|
391
|
-
if (value.length !== 25) {
|
|
392
|
-
return false;
|
|
393
|
-
}
|
|
394
|
-
} else {
|
|
395
|
-
value = value.toUpperCase();
|
|
396
|
-
|
|
397
|
-
if (countryCode) {
|
|
398
|
-
if (!value.startsWith(countryCode.toUpperCase())) {
|
|
399
|
-
return false;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
if (value.length === ibanCountryCodesLengths[countryCode.toUpperCase()]) {
|
|
403
|
-
return true;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
if (value.length !== 27) {
|
|
408
|
-
// this is for greek iban
|
|
409
|
-
return false;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
return true;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
var IBAN_VALIDATOR = function IBAN_VALIDATOR(field) {
|
|
417
|
-
var _field$extra4;
|
|
418
|
-
|
|
419
|
-
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra4 = field.extra) === null || _field$extra4 === void 0 ? void 0 : _field$extra4.country;
|
|
420
|
-
return {
|
|
421
|
-
name: 'iban-validator',
|
|
422
|
-
message: 'form.error.iban',
|
|
423
|
-
test: function test(value) {
|
|
424
|
-
if (!value) {
|
|
425
|
-
return true;
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
return validateIban(value, countryCode);
|
|
429
|
-
}
|
|
430
|
-
};
|
|
431
|
-
};
|
|
432
|
-
|
|
433
|
-
var VALID_DATE_FORMATS = ['DD/MM/YYYY'];
|
|
434
|
-
var DATE_CACHE = {};
|
|
435
|
-
|
|
436
|
-
var getDate = function getDate(v) {
|
|
437
|
-
return DATE_CACHE[v] ? DATE_CACHE[v] : (0, _dayjs["default"])(v, VALID_DATE_FORMATS, true);
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
function getYupField(field, yupTypeMap) {
|
|
441
|
-
var yupField = yupTypeMap[field.type] || yupTypeMap.string;
|
|
442
|
-
return yupField(field);
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
function computeShape(fields, yupTypeMap, validatorRegistry) {
|
|
446
|
-
var fieldSchemas = {};
|
|
447
|
-
var objectFields = {};
|
|
448
|
-
fields.forEach(function (field) {
|
|
449
|
-
if (field.key.includes('.')) {
|
|
450
|
-
var _field$key$split = field.key.split(/\.(.+)/),
|
|
451
|
-
_field$key$split2 = (0, _slicedToArray2["default"])(_field$key$split, 2),
|
|
452
|
-
objectKey = _field$key$split2[0],
|
|
453
|
-
fieldKey = _field$key$split2[1];
|
|
454
|
-
|
|
455
|
-
if (!objectFields[objectKey]) {
|
|
456
|
-
objectFields[objectKey] = [];
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
objectFields[objectKey].push((0, _extends2["default"])({}, field, {
|
|
460
|
-
key: fieldKey
|
|
461
|
-
}));
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
var yupField = getYupField(field, yupTypeMap);
|
|
466
|
-
|
|
467
|
-
if (field.condition) {
|
|
468
|
-
for (var key in field.condition) {
|
|
469
|
-
var then = void 0,
|
|
470
|
-
otherwise = void 0;
|
|
471
|
-
|
|
472
|
-
if (field.condition[key].then) {
|
|
473
|
-
var _field$condition$key$, _field$condition$key$2;
|
|
474
|
-
|
|
475
|
-
if (((_field$condition$key$ = field.condition[key].then) === null || _field$condition$key$ === void 0 ? void 0 : _field$condition$key$.required) === false) {
|
|
476
|
-
then = yupField;
|
|
477
|
-
} else if (((_field$condition$key$2 = field.condition[key].then) === null || _field$condition$key$2 === void 0 ? void 0 : _field$condition$key$2.required) === true) {
|
|
478
|
-
then = yupField.required('form.error.required');
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
if (field.condition[key]["else"]) {
|
|
483
|
-
var _field$condition$key$3, _field$condition$key$4;
|
|
484
|
-
|
|
485
|
-
if (((_field$condition$key$3 = field.condition[key]["else"]) === null || _field$condition$key$3 === void 0 ? void 0 : _field$condition$key$3.required) === false) {
|
|
486
|
-
otherwise = yupField;
|
|
487
|
-
} else if (((_field$condition$key$4 = field.condition[key]["else"]) === null || _field$condition$key$4 === void 0 ? void 0 : _field$condition$key$4.required) === true) {
|
|
488
|
-
otherwise = yupField.required('form.error.required');
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
if (then || otherwise) {
|
|
493
|
-
yupField = yupField.when(key, {
|
|
494
|
-
is: field.condition[key].is,
|
|
495
|
-
then: then,
|
|
496
|
-
otherwise: otherwise
|
|
497
|
-
});
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
} else if (field.required) {
|
|
501
|
-
yupField = yupField.required('form.error.required');
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
if (validatorRegistry && field.type && validatorRegistry[field.type]) {
|
|
505
|
-
validatorRegistry[field.type].forEach(function (validator) {
|
|
506
|
-
yupField = yupField.test(validator);
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
if (field.validators) {
|
|
511
|
-
field.validators.forEach(function (validator) {
|
|
512
|
-
yupField = yupField.test(validator);
|
|
513
|
-
});
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
fieldSchemas[field.key] = yupField;
|
|
517
|
-
});
|
|
518
|
-
|
|
519
|
-
for (var objectKey in objectFields) {
|
|
520
|
-
fieldSchemas[objectKey] = getYupObjectShape(objectFields[objectKey], yupTypeMap, validatorRegistry);
|
|
521
|
-
}
|
|
522
|
-
|
|
523
|
-
return fieldSchemas;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
function getYupObjectShape( // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
527
|
-
fields, yupTypeMap, validatorRegistry) {
|
|
528
|
-
if (!fields.current) {
|
|
529
|
-
var fieldSchemas = computeShape(fields, yupTypeMap, validatorRegistry);
|
|
530
|
-
return yup.object().shape(fieldSchemas);
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
return yup.lazy(function () {
|
|
534
|
-
var fieldSchemas = computeShape(Object.values(fields.current), yupTypeMap, validatorRegistry);
|
|
535
|
-
return yup.object().shape(fieldSchemas);
|
|
536
|
-
});
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
var getYUPTypeMap = function getYUPTypeMap() {
|
|
540
|
-
var yupTypeMap = {
|
|
541
|
-
file: function file(field) {
|
|
542
|
-
return yup.mixed().transform(function (value) {
|
|
543
|
-
if (!value.length) {
|
|
544
|
-
return null;
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
return value;
|
|
548
|
-
}).nullable().test(FILE_MAX_SIZE(field));
|
|
549
|
-
},
|
|
550
|
-
string: yup.string,
|
|
551
|
-
text: yup.string,
|
|
552
|
-
"boolean": yup["boolean"],
|
|
553
|
-
"int": function int() {
|
|
554
|
-
return yup.number().typeError('form.error.number').positive('form.error.positive_number');
|
|
555
|
-
},
|
|
556
|
-
email: function email() {
|
|
557
|
-
return yup.string().email('form.error.email');
|
|
558
|
-
},
|
|
559
|
-
afm: function afm() {
|
|
560
|
-
return yup.string().test(AFM_VALIDATOR);
|
|
561
|
-
},
|
|
562
|
-
uuid4: function uuid4() {
|
|
563
|
-
return yup.string().test(UUID4_VALIDATOR);
|
|
564
|
-
},
|
|
565
|
-
iban: function iban(field) {
|
|
566
|
-
return yup.string().test(IBAN_VALIDATOR(field));
|
|
567
|
-
},
|
|
568
|
-
postal_code: function postal_code(field) {
|
|
569
|
-
return yup.string().test(POSTALCODE_VALIDATOR(field));
|
|
570
|
-
},
|
|
571
|
-
mobile_phone: function mobile_phone() {
|
|
572
|
-
return yup.string().test(MOBILE_PHONE_VALIDATOR);
|
|
573
|
-
},
|
|
574
|
-
phone_number: function phone_number(field) {
|
|
575
|
-
return yup.string().test(PHONE_NUMBER_VALIDATOR(field));
|
|
576
|
-
},
|
|
577
|
-
'choice:multiple': function choiceMultiple() {
|
|
578
|
-
return yup.array().of(yup.string()).nullable();
|
|
579
|
-
},
|
|
580
|
-
'choice:single': function choiceSingle() {
|
|
581
|
-
return yup.string().nullable();
|
|
582
|
-
},
|
|
583
|
-
date: function date(field) {
|
|
584
|
-
var simpleDate = yup.string().nullable(true).test('date', 'form.error.date.invalid', function (value) {
|
|
585
|
-
if (!value) return true;
|
|
586
|
-
value = getDate(value);
|
|
587
|
-
return value.isValid();
|
|
588
|
-
});
|
|
589
|
-
var params = field.extra || {};
|
|
590
|
-
|
|
591
|
-
if (params.max) {
|
|
592
|
-
var maxDate;
|
|
593
|
-
|
|
594
|
-
if (params.max === 'now') {
|
|
595
|
-
var today = new Date();
|
|
596
|
-
maxDate = new Date(today);
|
|
597
|
-
} else {
|
|
598
|
-
maxDate = getDate(params.max).toDate();
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
var maxNextDate = new Date(maxDate);
|
|
602
|
-
maxNextDate.setDate(maxDate.getDate() + 1);
|
|
603
|
-
simpleDate = simpleDate.test({
|
|
604
|
-
name: 'earlier-than',
|
|
605
|
-
message: {
|
|
606
|
-
key: 'form.error.date.earlier_than',
|
|
607
|
-
context: {
|
|
608
|
-
maxDate: maxNextDate.toLocaleDateString()
|
|
609
|
-
}
|
|
610
|
-
},
|
|
611
|
-
test: function test(value) {
|
|
612
|
-
if (!value) return true;
|
|
613
|
-
value = getDate(value);
|
|
614
|
-
var isValid = +value.toDate() < +maxDate;
|
|
615
|
-
return isValid;
|
|
616
|
-
}
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
if (params.min) {
|
|
621
|
-
var minDate;
|
|
622
|
-
|
|
623
|
-
if (params.min === 'now') {
|
|
624
|
-
var _today = new Date();
|
|
625
|
-
|
|
626
|
-
minDate = new Date(_today);
|
|
627
|
-
} else {
|
|
628
|
-
minDate = getDate(params.min).toDate();
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
var minPreviousDate = new Date(minDate);
|
|
632
|
-
minPreviousDate.setDate(minDate.getDate() - 1);
|
|
633
|
-
simpleDate = simpleDate.test({
|
|
634
|
-
name: 'later-than',
|
|
635
|
-
message: {
|
|
636
|
-
key: 'form.error.date.later_than',
|
|
637
|
-
context: {
|
|
638
|
-
minDate: minPreviousDate.toLocaleDateString()
|
|
639
|
-
}
|
|
640
|
-
},
|
|
641
|
-
test: function test(value) {
|
|
642
|
-
if (!value) return true;
|
|
643
|
-
value = getDate(value);
|
|
644
|
-
var isValid = +value.toDate() > +minDate;
|
|
645
|
-
return isValid;
|
|
646
|
-
}
|
|
647
|
-
});
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
return simpleDate;
|
|
651
|
-
}
|
|
652
|
-
};
|
|
653
|
-
return yupTypeMap;
|
|
654
|
-
};
|
|
655
|
-
|
|
656
|
-
// Create a yup validation schema from given fields input
|
|
657
|
-
function useValidationSchema(fields, validatorRegistry) {
|
|
658
|
-
return (0, _react.useMemo)(function () {
|
|
659
|
-
var yupTypeMap = getYUPTypeMap();
|
|
660
|
-
return getYupObjectShape(fields, yupTypeMap, validatorRegistry);
|
|
661
|
-
}, []);
|
|
662
|
-
}
|