@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,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.getYUPTypeMap = void 0;
|
|
11
|
+
exports.useValidationSchema = useValidationSchema;
|
|
12
|
+
|
|
13
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
14
|
+
|
|
15
|
+
var yup = _interopRequireWildcard(require("yup"));
|
|
16
|
+
|
|
17
|
+
var _react = require("react");
|
|
18
|
+
|
|
19
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
20
|
+
|
|
21
|
+
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
22
|
+
|
|
23
|
+
var _utils = require("@digigov/form/validators/utils");
|
|
24
|
+
|
|
25
|
+
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); }
|
|
26
|
+
|
|
27
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
|
|
28
|
+
|
|
29
|
+
_dayjs["default"].extend(_customParseFormat["default"]);
|
|
30
|
+
|
|
31
|
+
var VALID_DATE_FORMATS = ['DD/MM/YYYY'];
|
|
32
|
+
var DATE_CACHE = {};
|
|
33
|
+
|
|
34
|
+
var getDate = function getDate(v) {
|
|
35
|
+
return DATE_CACHE[v] ? DATE_CACHE[v] : (0, _dayjs["default"])(v, VALID_DATE_FORMATS, true);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var getYUPTypeMap = function getYUPTypeMap() {
|
|
39
|
+
var yupTypeMap = {
|
|
40
|
+
file: function file(field) {
|
|
41
|
+
return yup.mixed().transform(function (value) {
|
|
42
|
+
if (!value.length) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return value;
|
|
47
|
+
}).nullable().test((0, _utils.FILE_MAX_SIZE_VALIDATOR)(field));
|
|
48
|
+
},
|
|
49
|
+
string: yup.string,
|
|
50
|
+
text: yup.string,
|
|
51
|
+
"boolean": yup["boolean"],
|
|
52
|
+
object: function object(field) {
|
|
53
|
+
return (0, _utils.getYupObjectShape)(field.extra.fields, yupTypeMap);
|
|
54
|
+
},
|
|
55
|
+
array: function array(field) {
|
|
56
|
+
if ((0, _typeof2["default"])(field.extra.of) === 'object') {
|
|
57
|
+
// else if the field is an object then it is a scalar type
|
|
58
|
+
// eg. number, string etc.
|
|
59
|
+
return yup.array().of(yupTypeMap[field.extra.of.type](field.extra.of)); // .min(field.extra.min)
|
|
60
|
+
// .max(field.extra.max)
|
|
61
|
+
// .length(field.extra.length)
|
|
62
|
+
// .required(field.required);
|
|
63
|
+
} else if (typeof field.extra.of === 'string') {
|
|
64
|
+
return yup.array().of(yupTypeMap[field.extra.of]());
|
|
65
|
+
} else {
|
|
66
|
+
// in any other case it will be string
|
|
67
|
+
return yup.array().of(yup.string());
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"int": function int() {
|
|
71
|
+
return yup.number().typeError('form.error.number').positive('form.error.positive_number');
|
|
72
|
+
},
|
|
73
|
+
email: function email() {
|
|
74
|
+
return yup.string().email('form.error.email');
|
|
75
|
+
},
|
|
76
|
+
afm: function afm() {
|
|
77
|
+
return yup.string().test(_utils.AFM_VALIDATOR);
|
|
78
|
+
},
|
|
79
|
+
uuid4: function uuid4() {
|
|
80
|
+
return yup.string().test(_utils.UUID4_VALIDATOR);
|
|
81
|
+
},
|
|
82
|
+
iban: function iban(field) {
|
|
83
|
+
return yup.string().test((0, _utils.IBAN_VALIDATOR)(field));
|
|
84
|
+
},
|
|
85
|
+
postal_code: function postal_code(field) {
|
|
86
|
+
return yup.string().test((0, _utils.POSTALCODE_VALIDATOR)(field));
|
|
87
|
+
},
|
|
88
|
+
mobile_phone: function mobile_phone() {
|
|
89
|
+
return yup.string().test(_utils.MOBILE_PHONE_VALIDATOR);
|
|
90
|
+
},
|
|
91
|
+
phone_number: function phone_number(field) {
|
|
92
|
+
return yup.string().test((0, _utils.PHONE_NUMBER_VALIDATOR)(field));
|
|
93
|
+
},
|
|
94
|
+
'choice:multiple': function choiceMultiple() {
|
|
95
|
+
return yup.array().of(yup.string()).nullable();
|
|
96
|
+
},
|
|
97
|
+
'choice:single': function choiceSingle() {
|
|
98
|
+
return yup.string().nullable();
|
|
99
|
+
},
|
|
100
|
+
date: function date(field) {
|
|
101
|
+
var simpleDate = yup.string().nullable(true).test('date', 'form.error.date.invalid', function (value) {
|
|
102
|
+
if (!value) return true;
|
|
103
|
+
value = getDate(value);
|
|
104
|
+
return value.isValid();
|
|
105
|
+
});
|
|
106
|
+
var params = field.extra || {};
|
|
107
|
+
|
|
108
|
+
if (params.max) {
|
|
109
|
+
var maxDate;
|
|
110
|
+
|
|
111
|
+
if (params.max === 'now') {
|
|
112
|
+
var today = new Date();
|
|
113
|
+
maxDate = new Date(today);
|
|
114
|
+
} else {
|
|
115
|
+
maxDate = getDate(params.max).toDate();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
var maxNextDate = new Date(maxDate);
|
|
119
|
+
maxNextDate.setDate(maxDate.getDate() + 1);
|
|
120
|
+
simpleDate = simpleDate.test({
|
|
121
|
+
name: 'earlier-than',
|
|
122
|
+
message: {
|
|
123
|
+
key: 'form.error.date.earlier_than',
|
|
124
|
+
context: {
|
|
125
|
+
maxDate: maxNextDate.toLocaleDateString()
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
test: function test(value) {
|
|
129
|
+
if (!value) return true;
|
|
130
|
+
value = getDate(value);
|
|
131
|
+
var isValid = +value.toDate() < +maxDate;
|
|
132
|
+
return isValid;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (params.min) {
|
|
138
|
+
var minDate;
|
|
139
|
+
|
|
140
|
+
if (params.min === 'now') {
|
|
141
|
+
var _today = new Date();
|
|
142
|
+
|
|
143
|
+
minDate = new Date(_today);
|
|
144
|
+
} else {
|
|
145
|
+
minDate = getDate(params.min).toDate();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
var minPreviousDate = new Date(minDate);
|
|
149
|
+
minPreviousDate.setDate(minDate.getDate() - 1);
|
|
150
|
+
simpleDate = simpleDate.test({
|
|
151
|
+
name: 'later-than',
|
|
152
|
+
message: {
|
|
153
|
+
key: 'form.error.date.later_than',
|
|
154
|
+
context: {
|
|
155
|
+
minDate: minPreviousDate.toLocaleDateString()
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
test: function test(value) {
|
|
159
|
+
if (!value) return true;
|
|
160
|
+
value = getDate(value);
|
|
161
|
+
var isValid = +value.toDate() > +minDate;
|
|
162
|
+
return isValid;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return simpleDate;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
return yupTypeMap;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
exports.getYUPTypeMap = getYUPTypeMap;
|
|
174
|
+
|
|
175
|
+
// Create a yup validation schema from given fields input
|
|
176
|
+
function useValidationSchema(fields, validatorRegistry) {
|
|
177
|
+
return (0, _react.useMemo)(function () {
|
|
178
|
+
var yupTypeMap = getYUPTypeMap();
|
|
179
|
+
return (0, _utils.getYupObjectShape)(fields, yupTypeMap, validatorRegistry);
|
|
180
|
+
}, []);
|
|
181
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AFM_VALIDATOR = void 0;
|
|
7
|
+
exports.validateAFM = validateAFM;
|
|
8
|
+
|
|
9
|
+
function validateAFM(afm) {
|
|
10
|
+
if (afm.length !== 9) {
|
|
11
|
+
// "afm should be 9 digits"
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (!/^\d+$/.test(afm)) {
|
|
16
|
+
// "This is not a number"
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (afm === '0'.repeat(9)) {
|
|
21
|
+
// "This is zero number (000000000)"
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var sum = afm.substring(0, 8).split('').reduce(function (s, v, i) {
|
|
26
|
+
return s + (parseInt(v) << 8 - i);
|
|
27
|
+
}, 0);
|
|
28
|
+
var calc = sum % 11;
|
|
29
|
+
var d9 = parseInt(afm[8]);
|
|
30
|
+
var valid = calc % 10 === d9;
|
|
31
|
+
return valid;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var AFM_VALIDATOR = {
|
|
35
|
+
name: 'afm-validator',
|
|
36
|
+
message: 'form.error.afm',
|
|
37
|
+
test: function test(value) {
|
|
38
|
+
if (value) {
|
|
39
|
+
return validateAFM(value);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.AFM_VALIDATOR = AFM_VALIDATOR;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FILE_MAX_SIZE_VALIDATOR = void 0;
|
|
7
|
+
|
|
8
|
+
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; } } }; }
|
|
9
|
+
|
|
10
|
+
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); }
|
|
11
|
+
|
|
12
|
+
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; }
|
|
13
|
+
|
|
14
|
+
var DEFAULT_FILE_MAX_SIZE = 10000000;
|
|
15
|
+
|
|
16
|
+
var FILE_MAX_SIZE_VALIDATOR = function FILE_MAX_SIZE_VALIDATOR(field) {
|
|
17
|
+
return {
|
|
18
|
+
name: 'file-max-size-validator',
|
|
19
|
+
message: 'form.error.file_size',
|
|
20
|
+
test: function test(value) {
|
|
21
|
+
if (field.extra && field.extra.maxSize && value) {
|
|
22
|
+
var _iterator = _createForOfIteratorHelper(value),
|
|
23
|
+
_step;
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27
|
+
var file = _step.value;
|
|
28
|
+
|
|
29
|
+
if (file.size >= field.extra.maxSize) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
_iterator.e(err);
|
|
35
|
+
} finally {
|
|
36
|
+
_iterator.f();
|
|
37
|
+
}
|
|
38
|
+
} else if (value) {
|
|
39
|
+
var _iterator2 = _createForOfIteratorHelper(value),
|
|
40
|
+
_step2;
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
44
|
+
var _file = _step2.value;
|
|
45
|
+
|
|
46
|
+
if (_file.size >= DEFAULT_FILE_MAX_SIZE) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} catch (err) {
|
|
51
|
+
_iterator2.e(err);
|
|
52
|
+
} finally {
|
|
53
|
+
_iterator2.f();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.FILE_MAX_SIZE_VALIDATOR = FILE_MAX_SIZE_VALIDATOR;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IBAN_VALIDATOR = void 0;
|
|
7
|
+
exports.validateIban = validateIban;
|
|
8
|
+
|
|
9
|
+
function validateIban(value, countryCode) {
|
|
10
|
+
value = value.replace(/\s/g, '').replace(/-/g, '');
|
|
11
|
+
|
|
12
|
+
if (value.match(/^[0-9]*$/i)) {
|
|
13
|
+
// this is for greek iban without the country code
|
|
14
|
+
if (value.length !== 25) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
value = value.toUpperCase();
|
|
19
|
+
|
|
20
|
+
if (countryCode) {
|
|
21
|
+
if (!value.startsWith(countryCode.toUpperCase())) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (value.length === ibanCountryCodesLengths[countryCode.toUpperCase()]) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (value.length !== 27) {
|
|
31
|
+
// this is for greek iban
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var IBAN_VALIDATOR = function IBAN_VALIDATOR(field) {
|
|
40
|
+
var _field$extra;
|
|
41
|
+
|
|
42
|
+
var countryCode = field === null || field === void 0 ? void 0 : (_field$extra = field.extra) === null || _field$extra === void 0 ? void 0 : _field$extra.country;
|
|
43
|
+
return {
|
|
44
|
+
name: 'iban-validator',
|
|
45
|
+
message: 'form.error.iban',
|
|
46
|
+
test: function test(value) {
|
|
47
|
+
if (!value) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return validateIban(value, countryCode);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.IBAN_VALIDATOR = IBAN_VALIDATOR;
|
|
57
|
+
var ibanCountryCodesLengths = {
|
|
58
|
+
AD: 24,
|
|
59
|
+
AT: 20,
|
|
60
|
+
AZ: 28,
|
|
61
|
+
BH: 22,
|
|
62
|
+
BY: 28,
|
|
63
|
+
BE: 16,
|
|
64
|
+
BA: 20,
|
|
65
|
+
BR: 29,
|
|
66
|
+
BG: 22,
|
|
67
|
+
CR: 22,
|
|
68
|
+
HR: 21,
|
|
69
|
+
CY: 28,
|
|
70
|
+
CZ: 24,
|
|
71
|
+
DK: 18,
|
|
72
|
+
DO: 28,
|
|
73
|
+
EG: 29,
|
|
74
|
+
SV: 28,
|
|
75
|
+
EE: 20,
|
|
76
|
+
FO: 18,
|
|
77
|
+
FI: 18,
|
|
78
|
+
FR: 27,
|
|
79
|
+
GE: 22,
|
|
80
|
+
DE: 22,
|
|
81
|
+
GI: 23,
|
|
82
|
+
GR: 27,
|
|
83
|
+
GL: 18,
|
|
84
|
+
GT: 28,
|
|
85
|
+
VA: 22,
|
|
86
|
+
HU: 28,
|
|
87
|
+
IS: 26,
|
|
88
|
+
IQ: 23,
|
|
89
|
+
IE: 22,
|
|
90
|
+
IL: 23,
|
|
91
|
+
IT: 27,
|
|
92
|
+
JO: 30,
|
|
93
|
+
KZ: 20,
|
|
94
|
+
XK: 20,
|
|
95
|
+
KW: 30,
|
|
96
|
+
LV: 21,
|
|
97
|
+
LB: 28,
|
|
98
|
+
LI: 21,
|
|
99
|
+
LT: 20,
|
|
100
|
+
LU: 20,
|
|
101
|
+
MT: 31,
|
|
102
|
+
MR: 27,
|
|
103
|
+
MU: 30,
|
|
104
|
+
MD: 24,
|
|
105
|
+
MC: 27,
|
|
106
|
+
ME: 22,
|
|
107
|
+
NL: 18,
|
|
108
|
+
MK: 19,
|
|
109
|
+
NO: 15,
|
|
110
|
+
PK: 24,
|
|
111
|
+
PS: 29,
|
|
112
|
+
PL: 28,
|
|
113
|
+
PT: 25,
|
|
114
|
+
QA: 29,
|
|
115
|
+
RO: 24,
|
|
116
|
+
LC: 32,
|
|
117
|
+
SM: 27,
|
|
118
|
+
ST: 25,
|
|
119
|
+
SA: 24,
|
|
120
|
+
RS: 22,
|
|
121
|
+
SC: 31,
|
|
122
|
+
SK: 24,
|
|
123
|
+
SI: 19,
|
|
124
|
+
ES: 24,
|
|
125
|
+
SE: 24,
|
|
126
|
+
CH: 21,
|
|
127
|
+
TL: 23,
|
|
128
|
+
TN: 24,
|
|
129
|
+
TR: 26,
|
|
130
|
+
UA: 29,
|
|
131
|
+
AE: 23,
|
|
132
|
+
GB: 22,
|
|
133
|
+
VG: 24
|
|
134
|
+
};
|
|
@@ -0,0 +1,210 @@
|
|
|
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
|
+
var _exportNames = {
|
|
11
|
+
getYupField: true,
|
|
12
|
+
computeShape: true,
|
|
13
|
+
getYupObjectShape: true
|
|
14
|
+
};
|
|
15
|
+
exports.computeShape = computeShape;
|
|
16
|
+
exports.getYupField = getYupField;
|
|
17
|
+
exports.getYupObjectShape = getYupObjectShape;
|
|
18
|
+
|
|
19
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
20
|
+
|
|
21
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
22
|
+
|
|
23
|
+
var yup = _interopRequireWildcard(require("yup"));
|
|
24
|
+
|
|
25
|
+
var _afm = require("@digigov/form/validators/utils/afm");
|
|
26
|
+
|
|
27
|
+
Object.keys(_afm).forEach(function (key) {
|
|
28
|
+
if (key === "default" || key === "__esModule") return;
|
|
29
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
30
|
+
if (key in exports && exports[key] === _afm[key]) return;
|
|
31
|
+
Object.defineProperty(exports, key, {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function get() {
|
|
34
|
+
return _afm[key];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
var _file = require("@digigov/form/validators/utils/file");
|
|
40
|
+
|
|
41
|
+
Object.keys(_file).forEach(function (key) {
|
|
42
|
+
if (key === "default" || key === "__esModule") return;
|
|
43
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
44
|
+
if (key in exports && exports[key] === _file[key]) return;
|
|
45
|
+
Object.defineProperty(exports, key, {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function get() {
|
|
48
|
+
return _file[key];
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
var _iban = require("@digigov/form/validators/utils/iban");
|
|
54
|
+
|
|
55
|
+
Object.keys(_iban).forEach(function (key) {
|
|
56
|
+
if (key === "default" || key === "__esModule") return;
|
|
57
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
58
|
+
if (key in exports && exports[key] === _iban[key]) return;
|
|
59
|
+
Object.defineProperty(exports, key, {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function get() {
|
|
62
|
+
return _iban[key];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
var _phone = require("@digigov/form/validators/utils/phone");
|
|
68
|
+
|
|
69
|
+
Object.keys(_phone).forEach(function (key) {
|
|
70
|
+
if (key === "default" || key === "__esModule") return;
|
|
71
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
72
|
+
if (key in exports && exports[key] === _phone[key]) return;
|
|
73
|
+
Object.defineProperty(exports, key, {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function get() {
|
|
76
|
+
return _phone[key];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
var _postal_code = require("@digigov/form/validators/utils/postal_code");
|
|
82
|
+
|
|
83
|
+
Object.keys(_postal_code).forEach(function (key) {
|
|
84
|
+
if (key === "default" || key === "__esModule") return;
|
|
85
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
86
|
+
if (key in exports && exports[key] === _postal_code[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function get() {
|
|
90
|
+
return _postal_code[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
var _uuid = require("@digigov/form/validators/utils/uuid4");
|
|
96
|
+
|
|
97
|
+
Object.keys(_uuid).forEach(function (key) {
|
|
98
|
+
if (key === "default" || key === "__esModule") return;
|
|
99
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
100
|
+
if (key in exports && exports[key] === _uuid[key]) return;
|
|
101
|
+
Object.defineProperty(exports, key, {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
get: function get() {
|
|
104
|
+
return _uuid[key];
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
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); }
|
|
110
|
+
|
|
111
|
+
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; }
|
|
112
|
+
|
|
113
|
+
function getYupField(field, yupTypeMap) {
|
|
114
|
+
var yupField = yupTypeMap[field.type] || yupTypeMap.string;
|
|
115
|
+
return yupField(field);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function computeShape(fields, yupTypeMap, validatorRegistry) {
|
|
119
|
+
var fieldSchemas = {};
|
|
120
|
+
var objectFields = {};
|
|
121
|
+
fields.forEach(function (field) {
|
|
122
|
+
if (field.key.includes('.')) {
|
|
123
|
+
var _field$key$split = field.key.split(/\.(.+)/),
|
|
124
|
+
_field$key$split2 = (0, _slicedToArray2["default"])(_field$key$split, 2),
|
|
125
|
+
objectKey = _field$key$split2[0],
|
|
126
|
+
fieldKey = _field$key$split2[1];
|
|
127
|
+
|
|
128
|
+
if (!objectFields[objectKey]) {
|
|
129
|
+
objectFields[objectKey] = [];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
objectFields[objectKey].push((0, _extends2["default"])({}, field, {
|
|
133
|
+
key: fieldKey
|
|
134
|
+
}));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var yupField = getYupField(field, yupTypeMap);
|
|
139
|
+
|
|
140
|
+
if (field.condition) {
|
|
141
|
+
for (var key in field.condition) {
|
|
142
|
+
var then = void 0,
|
|
143
|
+
otherwise = void 0;
|
|
144
|
+
|
|
145
|
+
if (field.condition[key].then) {
|
|
146
|
+
var _field$condition$key$, _field$condition$key$2;
|
|
147
|
+
|
|
148
|
+
if (((_field$condition$key$ = field.condition[key].then) === null || _field$condition$key$ === void 0 ? void 0 : _field$condition$key$.required) === false) {
|
|
149
|
+
then = yupField;
|
|
150
|
+
} 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) {
|
|
151
|
+
then = yupField.required('form.error.required');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (field.condition[key]["else"]) {
|
|
156
|
+
var _field$condition$key$3, _field$condition$key$4;
|
|
157
|
+
|
|
158
|
+
if (((_field$condition$key$3 = field.condition[key]["else"]) === null || _field$condition$key$3 === void 0 ? void 0 : _field$condition$key$3.required) === false) {
|
|
159
|
+
otherwise = yupField;
|
|
160
|
+
} 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) {
|
|
161
|
+
otherwise = yupField.required('form.error.required');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (then || otherwise) {
|
|
166
|
+
yupField = yupField.when(key, {
|
|
167
|
+
is: field.condition[key].is,
|
|
168
|
+
then: then,
|
|
169
|
+
otherwise: otherwise
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
} else if (field.required) {
|
|
174
|
+
yupField = yupField.required('form.error.required');
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (validatorRegistry && field.type && validatorRegistry[field.type]) {
|
|
178
|
+
validatorRegistry[field.type].forEach(function (validator) {
|
|
179
|
+
yupField = yupField.test(validator);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (field.validators) {
|
|
184
|
+
field.validators.forEach(function (validator) {
|
|
185
|
+
yupField = yupField.test(validator);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
fieldSchemas[field.key] = yupField;
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
for (var objectKey in objectFields) {
|
|
193
|
+
fieldSchemas[objectKey] = getYupObjectShape(objectFields[objectKey], yupTypeMap, validatorRegistry);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return fieldSchemas;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function getYupObjectShape( // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
+
fields, yupTypeMap, validatorRegistry) {
|
|
201
|
+
if (!fields.current) {
|
|
202
|
+
var fieldSchemas = computeShape(fields, yupTypeMap, validatorRegistry);
|
|
203
|
+
return yup.object().shape(fieldSchemas);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return yup.lazy(function () {
|
|
207
|
+
var fieldSchemas = computeShape(Object.values(fields.current), yupTypeMap, validatorRegistry);
|
|
208
|
+
return yup.object().shape(fieldSchemas);
|
|
209
|
+
});
|
|
210
|
+
}
|