@ukhomeoffice/cop-react-form-renderer 4.66.1 → 4.68.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/dist/components/CheckYourAnswers/Answer.js +6 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +104 -129
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +26 -64
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +428 -555
- package/dist/components/CheckYourAnswers/index.js +0 -3
- package/dist/components/CollectionPage/CollectionPage.js +13 -42
- package/dist/components/CollectionPage/CollectionPage.test.js +160 -206
- package/dist/components/CollectionPage/index.js +0 -3
- package/dist/components/FormComponent/Collection.js +35 -79
- package/dist/components/FormComponent/Collection.test.js +340 -391
- package/dist/components/FormComponent/Container.js +10 -31
- package/dist/components/FormComponent/Container.test.js +304 -357
- package/dist/components/FormComponent/FormComponent.js +17 -60
- package/dist/components/FormComponent/FormComponent.test.js +190 -228
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -2
- package/dist/components/FormComponent/helpers/getComponentError.js +0 -6
- package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -2
- package/dist/components/FormComponent/helpers/index.js +0 -4
- package/dist/components/FormComponent/index.js +0 -3
- package/dist/components/FormPage/FormPage.js +21 -53
- package/dist/components/FormPage/FormPage.test.js +122 -160
- package/dist/components/FormPage/index.js +0 -3
- package/dist/components/FormRenderer/FormRenderer.js +106 -296
- package/dist/components/FormRenderer/FormRenderer.test.js +820 -1058
- package/dist/components/FormRenderer/handlers/cyaAction.js +0 -5
- package/dist/components/FormRenderer/handlers/getPageId.js +0 -2
- package/dist/components/FormRenderer/handlers/getPageId.test.js +1 -2
- package/dist/components/FormRenderer/handlers/handlers.test.js +1 -18
- package/dist/components/FormRenderer/handlers/index.js +0 -5
- package/dist/components/FormRenderer/handlers/navigate.js +0 -5
- package/dist/components/FormRenderer/handlers/submissionError.js +0 -2
- package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -2
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +1 -5
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +4 -12
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +1 -2
- package/dist/components/FormRenderer/helpers/getCYA.js +0 -9
- package/dist/components/FormRenderer/helpers/getCYA.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getFormState.js +0 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +1 -4
- package/dist/components/FormRenderer/helpers/getPage.js +0 -5
- package/dist/components/FormRenderer/helpers/getPage.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -6
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -10
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +4 -7
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +32 -41
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +122 -8
- package/dist/components/FormRenderer/helpers/index.js +1 -11
- package/dist/components/FormRenderer/index.js +0 -3
- package/dist/components/FormRenderer/onCYAAction.js +8 -30
- package/dist/components/FormRenderer/onCYAAction.test.js +54 -79
- package/dist/components/FormRenderer/onPageAction.js +123 -0
- package/dist/components/FormRenderer/onPageAction.test.js +632 -0
- package/dist/components/PageActions/ActionButton.js +2 -17
- package/dist/components/PageActions/ActionButton.test.js +58 -81
- package/dist/components/PageActions/PageActions.js +3 -10
- package/dist/components/PageActions/PageActions.test.js +95 -120
- package/dist/components/PageActions/index.js +0 -3
- package/dist/components/SummaryList/GroupAction.js +5 -26
- package/dist/components/SummaryList/GroupAction.test.js +14 -28
- package/dist/components/SummaryList/RowAction.js +5 -25
- package/dist/components/SummaryList/RowAction.test.js +14 -28
- package/dist/components/SummaryList/SummaryList.js +7 -31
- package/dist/components/SummaryList/SummaryList.test.js +69 -126
- package/dist/components/SummaryList/SummaryListHeadingRow.js +3 -8
- package/dist/components/SummaryList/SummaryListRow.js +4 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +2 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -6
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -6
- package/dist/components/SummaryList/helpers/index.js +0 -2
- package/dist/components/SummaryList/index.js +0 -3
- package/dist/components/TaskList/Task.js +9 -31
- package/dist/components/TaskList/Task.test.js +32 -59
- package/dist/components/TaskList/TaskList.js +32 -59
- package/dist/components/TaskList/TaskList.test.js +52 -90
- package/dist/components/TaskList/TaskState.js +2 -10
- package/dist/components/TaskList/TaskState.test.js +23 -41
- package/dist/components/TaskList/index.js +0 -3
- package/dist/components/index.js +0 -7
- package/dist/context/HooksContext/HooksContext.js +21 -39
- package/dist/context/HooksContext/HooksContext.test.js +18 -34
- package/dist/context/HooksContext/index.js +0 -5
- package/dist/context/ValidationContext/ValidationContext.js +26 -56
- package/dist/context/ValidationContext/ValidationContext.test.js +43 -64
- package/dist/context/ValidationContext/index.js +0 -5
- package/dist/context/index.js +0 -3
- package/dist/hooks/index.js +0 -9
- package/dist/hooks/useAxios.js +17 -36
- package/dist/hooks/useGetRequest.js +57 -93
- package/dist/hooks/useHooks.js +2 -4
- package/dist/hooks/useRefData.js +14 -41
- package/dist/hooks/useValidation.js +2 -4
- package/dist/index.js +0 -9
- package/dist/models/PageAction.js +4 -4
- package/dist/models/TaskStates.js +4 -4
- package/dist/models/index.js +1 -10
- package/dist/setupTests.js +0 -13
- package/dist/utils/CheckYourAnswers/getCYAAction.js +1 -9
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +1 -19
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +4 -11
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -9
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +4 -9
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +4 -8
- package/dist/utils/CheckYourAnswers/getCYARow.js +1 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +8 -23
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +6 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +2 -9
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +4 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +7 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +4 -32
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +4 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +4 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +4 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +2 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +7 -25
- package/dist/utils/CheckYourAnswers/index.js +1 -3
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +9 -12
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +41 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +5 -6
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -6
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +1 -2
- package/dist/utils/CollectionPage/index.js +1 -5
- package/dist/utils/CollectionPage/mergeCollectionPages.js +5 -11
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +1 -2
- package/dist/utils/Component/addShowWhen.js +4 -10
- package/dist/utils/Component/addShowWhen.test.js +1 -2
- package/dist/utils/Component/applyToComponentTree.js +4 -18
- package/dist/utils/Component/applyToComponentTree.test.js +4 -8
- package/dist/utils/Component/cleanAttributes.js +1 -8
- package/dist/utils/Component/cleanAttributes.test.js +15 -16
- package/dist/utils/Component/elevateNestedComponents.js +0 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +0 -2
- package/dist/utils/Component/getComponent.js +7 -86
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +6 -10
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +33 -51
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +8 -35
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +12 -29
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +6 -24
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +3 -7
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +3 -7
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +5 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +8 -35
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +10 -34
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +12 -31
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +1 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +3 -7
- package/dist/utils/Component/getDefaultValue.js +4 -8
- package/dist/utils/Component/getDefaultValue.test.js +0 -3
- package/dist/utils/Component/index.js +0 -10
- package/dist/utils/Component/isEditable.js +1 -4
- package/dist/utils/Component/isEditable.test.js +1 -5
- package/dist/utils/Component/setupContainerComponentsPath.js +4 -9
- package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -3
- package/dist/utils/Component/showComponent.js +1 -8
- package/dist/utils/Component/showComponent.test.js +1 -2
- package/dist/utils/Component/wrapInFormGroup.js +0 -7
- package/dist/utils/Condition/index.js +0 -5
- package/dist/utils/Condition/meetsAllConditions.js +0 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +1 -2
- package/dist/utils/Condition/meetsCondition.js +9 -34
- package/dist/utils/Condition/meetsCondition.test.js +21 -14
- package/dist/utils/Condition/meetsOneCondition.js +1 -9
- package/dist/utils/Condition/meetsOneCondition.test.js +1 -2
- package/dist/utils/Condition/setupConditions.js +4 -13
- package/dist/utils/Condition/setupConditions.test.js +0 -2
- package/dist/utils/Container/getEditableComponents.js +0 -7
- package/dist/utils/Container/getEditableComponents.test.js +1 -12
- package/dist/utils/Container/index.js +0 -5
- package/dist/utils/Container/setupNesting.js +4 -12
- package/dist/utils/Container/setupNesting.test.js +4 -10
- package/dist/utils/Container/showContainer.js +9 -18
- package/dist/utils/Container/showContainer.test.js +1 -2
- package/dist/utils/Data/applyFormula.js +6 -29
- package/dist/utils/Data/applyFormula.test.js +1 -2
- package/dist/utils/Data/getAutocompleteSource.js +1 -5
- package/dist/utils/Data/getAutocompleteSource.test.js +1 -2
- package/dist/utils/Data/getDataPath.js +3 -17
- package/dist/utils/Data/getDataPath.test.js +0 -4
- package/dist/utils/Data/getOptions.js +4 -14
- package/dist/utils/Data/getOptions.test.js +1 -2
- package/dist/utils/Data/getSourceData.js +6 -21
- package/dist/utils/Data/getSourceData.test.js +4 -6
- package/dist/utils/Data/index.js +1 -11
- package/dist/utils/Data/refDataToOptions.js +5 -13
- package/dist/utils/Data/refDataToOptions.test.js +1 -2
- package/dist/utils/Data/setDataItem.js +0 -5
- package/dist/utils/Data/setDataItem.test.js +0 -2
- package/dist/utils/Data/setupFormData.js +6 -25
- package/dist/utils/Data/setupFormData.test.js +8 -11
- package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -15
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +1 -3
- package/dist/utils/FormPage/applyConditionalProperties.js +4 -11
- package/dist/utils/FormPage/applyConditionalProperties.test.js +4 -6
- package/dist/utils/FormPage/getFormPage.js +4 -16
- package/dist/utils/FormPage/getFormPage.test.js +10 -9
- package/dist/utils/FormPage/getFormPages.js +4 -9
- package/dist/utils/FormPage/getFormPages.test.js +6 -7
- package/dist/utils/FormPage/getPageActions.js +6 -19
- package/dist/utils/FormPage/getPageActions.test.js +1 -3
- package/dist/utils/FormPage/getParagraphFromText.js +0 -3
- package/dist/utils/FormPage/getParagraphFromText.test.js +1 -3
- package/dist/utils/FormPage/index.js +0 -7
- package/dist/utils/FormPage/showFormPage.js +9 -18
- package/dist/utils/FormPage/showFormPage.test.js +0 -2
- package/dist/utils/FormPage/showFormPageCYA.js +0 -5
- package/dist/utils/FormPage/showFormPageCYA.test.js +0 -2
- package/dist/utils/FormPage/useComponent.js +7 -19
- package/dist/utils/FormPage/useComponent.test.js +4 -7
- package/dist/utils/Format/formatData.js +0 -5
- package/dist/utils/Format/formatData.test.js +1 -2
- package/dist/utils/Format/formatDataForComponent.js +1 -6
- package/dist/utils/Format/formatDataForComponent.test.js +28 -47
- package/dist/utils/Format/formatDataForForm.js +4 -9
- package/dist/utils/Format/formatDataForForm.test.js +14 -11
- package/dist/utils/Format/formatDataForPage.js +1 -5
- package/dist/utils/Format/formatDataForPage.test.js +15 -12
- package/dist/utils/Format/index.js +1 -6
- package/dist/utils/Hub/getFormHub.js +0 -8
- package/dist/utils/Hub/getFormHub.test.js +6 -8
- package/dist/utils/Hub/index.js +1 -3
- package/dist/utils/Meta/documents/getDocuments.js +1 -4
- package/dist/utils/Meta/documents/getDocuments.test.js +4 -10
- package/dist/utils/Meta/documents/index.js +1 -5
- package/dist/utils/Meta/documents/setDocumentsForField.js +4 -11
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +4 -16
- package/dist/utils/Meta/index.js +1 -4
- package/dist/utils/Operate/checkValueIsTruthy.js +1 -7
- package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -2
- package/dist/utils/Operate/getFirstOf.js +2 -9
- package/dist/utils/Operate/getFirstOf.test.js +0 -2
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +7 -21
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +6 -2
- package/dist/utils/Operate/index.js +0 -3
- package/dist/utils/Operate/persistValueInFormData.js +1 -8
- package/dist/utils/Operate/persistValueInFormData.test.js +0 -4
- package/dist/utils/Operate/runPageOperations.js +3 -19
- package/dist/utils/Operate/runPageOperations.test.js +4 -6
- package/dist/utils/Operate/setValueInFormData.js +2 -7
- package/dist/utils/Operate/setValueInFormData.test.js +0 -2
- package/dist/utils/Operate/shouldRun.js +1 -14
- package/dist/utils/Operate/shouldRun.test.js +5 -8
- package/dist/utils/Validate/additional/conditionallyRequired.js +0 -3
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -2
- package/dist/utils/Validate/additional/index.js +1 -22
- package/dist/utils/Validate/additional/index.test.js +0 -6
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -8
- package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -4
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -8
- package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -4
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +5 -16
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +4 -8
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -12
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -3
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -13
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -3
- package/dist/utils/Validate/additional/mustBeLessThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -3
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -5
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -3
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -6
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +4 -7
- package/dist/utils/Validate/additional/utils.js +10 -26
- package/dist/utils/Validate/index.js +1 -11
- package/dist/utils/Validate/validateCollection.js +4 -10
- package/dist/utils/Validate/validateCollection.test.js +4 -6
- package/dist/utils/Validate/validateComponent.js +2 -39
- package/dist/utils/Validate/validateComponent.test.js +4 -22
- package/dist/utils/Validate/validateContainer.js +4 -14
- package/dist/utils/Validate/validateContainer.test.js +4 -10
- package/dist/utils/Validate/validateDate.js +6 -38
- package/dist/utils/Validate/validateDate.test.js +0 -4
- package/dist/utils/Validate/validateEmail.js +1 -8
- package/dist/utils/Validate/validateEmail.test.js +5 -4
- package/dist/utils/Validate/validateMultifile.js +0 -7
- package/dist/utils/Validate/validateMultifile.test.js +5 -6
- package/dist/utils/Validate/validatePage.js +4 -16
- package/dist/utils/Validate/validatePage.test.js +30 -25
- package/dist/utils/Validate/validateRegex.js +0 -10
- package/dist/utils/Validate/validateRegex.test.js +5 -4
- package/dist/utils/Validate/validateRequired.js +0 -8
- package/dist/utils/Validate/validateRequired.test.js +5 -4
- package/dist/utils/Validate/validateTextArea.js +0 -8
- package/dist/utils/Validate/validateTextArea.test.js +0 -2
- package/dist/utils/Validate/validateTime.js +5 -22
- package/dist/utils/Validate/validateTime.test.js +0 -2
- package/dist/utils/index.js +4 -20
- package/package.json +2 -2
|
@@ -4,35 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _models = require("../../models");
|
|
9
|
-
|
|
10
8
|
var _showComponent = _interopRequireDefault(require("../Component/showComponent"));
|
|
11
|
-
|
|
12
9
|
var _additional = _interopRequireDefault(require("./additional"));
|
|
13
|
-
|
|
14
10
|
var _validateCollection = _interopRequireDefault(require("./validateCollection"));
|
|
15
|
-
|
|
16
11
|
var _validateContainer = _interopRequireDefault(require("./validateContainer"));
|
|
17
|
-
|
|
18
12
|
var _validateDate = _interopRequireDefault(require("./validateDate"));
|
|
19
|
-
|
|
20
13
|
var _validateEmail = _interopRequireDefault(require("./validateEmail"));
|
|
21
|
-
|
|
22
14
|
var _validateMultifile = _interopRequireDefault(require("./validateMultifile"));
|
|
23
|
-
|
|
24
15
|
var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
25
|
-
|
|
26
16
|
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
27
|
-
|
|
28
17
|
var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
|
|
29
|
-
|
|
30
18
|
var _validateTime = _interopRequireDefault(require("./validateTime"));
|
|
31
|
-
|
|
32
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
20
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
35
|
-
|
|
36
21
|
/**
|
|
37
22
|
* Validates a single component.
|
|
38
23
|
* @param {object} component The component to validate.
|
|
@@ -42,47 +27,36 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
42
27
|
*/
|
|
43
28
|
var validateComponent = function validateComponent(component, outerData, formData) {
|
|
44
29
|
var _component$data$optio;
|
|
45
|
-
|
|
46
30
|
var fd = formData || outerData;
|
|
47
|
-
|
|
48
31
|
if (!(0, _showComponent.default)(component, fd)) {
|
|
49
32
|
return undefined;
|
|
50
33
|
}
|
|
51
|
-
|
|
52
34
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
53
35
|
return (0, _validateContainer.default)(component, outerData, fd);
|
|
54
36
|
}
|
|
55
|
-
|
|
56
37
|
var error = undefined;
|
|
57
38
|
var properties = undefined;
|
|
58
39
|
var data = outerData && _typeof(outerData) === 'object' ? outerData : {};
|
|
59
40
|
var value = data[component.fieldId];
|
|
60
|
-
|
|
61
41
|
if (component.required) {
|
|
62
42
|
error = (0, _validateRequired.default)(value, component.label, component.custom_errors);
|
|
63
43
|
}
|
|
64
|
-
|
|
65
44
|
if (!error) {
|
|
66
45
|
switch (component.type) {
|
|
67
46
|
case _models.ComponentTypes.COLLECTION:
|
|
68
47
|
return (0, _validateCollection.default)(component, value, fd);
|
|
69
|
-
|
|
70
48
|
case _models.ComponentTypes.EMAIL:
|
|
71
49
|
error = (0, _validateEmail.default)(value, component.label, component.custom_errors);
|
|
72
50
|
break;
|
|
73
|
-
|
|
74
51
|
case _models.ComponentTypes.DATE:
|
|
75
52
|
case _models.ComponentTypes.TIME:
|
|
76
53
|
var validator = component.type === _models.ComponentTypes.DATE ? _validateDate.default : _validateTime.default;
|
|
77
|
-
|
|
78
54
|
var _validator = validator(value),
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
55
|
+
message = _validator.message,
|
|
56
|
+
propsInError = _validator.propsInError;
|
|
82
57
|
properties = propsInError;
|
|
83
58
|
error = message;
|
|
84
59
|
break;
|
|
85
|
-
|
|
86
60
|
case _models.ComponentTypes.RADIOS:
|
|
87
61
|
var nestedErrors = [];
|
|
88
62
|
(_component$data$optio = component.data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
|
|
@@ -92,32 +66,24 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
92
66
|
}, formData));
|
|
93
67
|
}
|
|
94
68
|
});
|
|
95
|
-
|
|
96
69
|
if (nestedErrors.length > 0) {
|
|
97
70
|
return nestedErrors;
|
|
98
71
|
}
|
|
99
|
-
|
|
100
72
|
break;
|
|
101
|
-
|
|
102
73
|
case _models.ComponentTypes.MULTI_FILE:
|
|
103
74
|
error = (0, _validateMultifile.default)(value, component.custom_errors);
|
|
104
75
|
break;
|
|
105
|
-
|
|
106
76
|
case _models.ComponentTypes.TEXT_AREA:
|
|
107
77
|
error = (0, _validateTextArea.default)(component.label, value, component.showCharacterCount, component.custom_errors, component.maxLength);
|
|
108
78
|
break;
|
|
109
|
-
|
|
110
79
|
default:
|
|
111
80
|
break;
|
|
112
81
|
}
|
|
113
|
-
|
|
114
82
|
if (!error && component.pattern) {
|
|
115
83
|
error = (0, _validateRegex.default)(value, component.label, component.pattern, component.custom_errors);
|
|
116
84
|
}
|
|
117
|
-
|
|
118
85
|
if (!error && component.additionalValidation) {
|
|
119
86
|
error = (0, _additional.default)(component, value);
|
|
120
|
-
|
|
121
87
|
if (component.type === _models.ComponentTypes.DATE && error) {
|
|
122
88
|
properties = {
|
|
123
89
|
day: true,
|
|
@@ -127,7 +93,6 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
127
93
|
}
|
|
128
94
|
}
|
|
129
95
|
}
|
|
130
|
-
|
|
131
96
|
if (error) {
|
|
132
97
|
return {
|
|
133
98
|
id: component.full_path || component.id,
|
|
@@ -135,9 +100,7 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
135
100
|
properties: properties
|
|
136
101
|
};
|
|
137
102
|
}
|
|
138
|
-
|
|
139
103
|
return undefined;
|
|
140
104
|
};
|
|
141
|
-
|
|
142
105
|
var _default = validateComponent;
|
|
143
106
|
exports.default = _default;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _validateComponent = _interopRequireDefault(require("./validateComponent"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
|
|
6
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
7
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
9
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
10
|
describe('utils.Validate.Component', function () {
|
|
12
11
|
var setup = function setup(id, type, label, required, additionalValidation) {
|
|
13
12
|
return {
|
|
@@ -19,7 +18,6 @@ describe('utils.Validate.Component', function () {
|
|
|
19
18
|
additionalValidation: additionalValidation
|
|
20
19
|
};
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
it('should return no error when the component is null', function () {
|
|
24
22
|
expect((0, _validateComponent.default)(null, {})).toBeUndefined();
|
|
25
23
|
});
|
|
@@ -57,9 +55,7 @@ describe('utils.Validate.Component', function () {
|
|
|
57
55
|
});
|
|
58
56
|
describe('when the value is fully valid', function () {
|
|
59
57
|
var ID = 'field';
|
|
60
|
-
|
|
61
58
|
var DATA = _defineProperty({}, ID, 'alpha.bravo@digital.homeoffice.gov.uk');
|
|
62
|
-
|
|
63
59
|
it('should return no error when the component is not required and not an email type', function () {
|
|
64
60
|
var LABEL = 'Field';
|
|
65
61
|
var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
|
|
@@ -83,9 +79,7 @@ describe('utils.Validate.Component', function () {
|
|
|
83
79
|
});
|
|
84
80
|
describe('when the value is an invalid email', function () {
|
|
85
81
|
var ID = 'field';
|
|
86
|
-
|
|
87
82
|
var DATA = _defineProperty({}, ID, 'alpha.bravo@hotmail.com');
|
|
88
|
-
|
|
89
83
|
it('should return no error when the component is not required and not an email type', function () {
|
|
90
84
|
var LABEL = 'Field';
|
|
91
85
|
var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
|
|
@@ -118,9 +112,7 @@ describe('utils.Validate.Component', function () {
|
|
|
118
112
|
it('should always reject invalid dates', function () {
|
|
119
113
|
var LABEL = 'Field';
|
|
120
114
|
var COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false);
|
|
121
|
-
|
|
122
115
|
var DATA = _defineProperty({}, ID, '25-45-2033');
|
|
123
|
-
|
|
124
116
|
expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
|
|
125
117
|
error: 'Month must be between 1 and 12',
|
|
126
118
|
id: ID,
|
|
@@ -131,9 +123,7 @@ describe('utils.Validate.Component', function () {
|
|
|
131
123
|
});
|
|
132
124
|
it('should apply optional validators when specified', function () {
|
|
133
125
|
var LABEL = 'Field';
|
|
134
|
-
|
|
135
126
|
var DATA = _defineProperty({}, ID, '25-3-3033');
|
|
136
|
-
|
|
137
127
|
var ADDITIONAL_VALIDATION = [{
|
|
138
128
|
function: 'mustBeBefore',
|
|
139
129
|
value: 3,
|
|
@@ -157,9 +147,7 @@ describe('utils.Validate.Component', function () {
|
|
|
157
147
|
it('should always reject invalid time', function () {
|
|
158
148
|
var LABEL = 'Field';
|
|
159
149
|
var COMPONENT = setup(ID, _models.ComponentTypes.TIME, LABEL, false);
|
|
160
|
-
|
|
161
150
|
var DATA = _defineProperty({}, ID, '25:45');
|
|
162
|
-
|
|
163
151
|
expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
|
|
164
152
|
error: 'Hour must be between 0 and 23',
|
|
165
153
|
id: ID,
|
|
@@ -178,9 +166,7 @@ describe('utils.Validate.Component', function () {
|
|
|
178
166
|
var LABEL = 'field';
|
|
179
167
|
var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
|
|
180
168
|
CONTAINER.components = [EMAIL];
|
|
181
|
-
|
|
182
169
|
var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
|
|
183
|
-
|
|
184
170
|
expect((0, _validateComponent.default)(CONTAINER, DATA)).toEqual([]);
|
|
185
171
|
});
|
|
186
172
|
});
|
|
@@ -193,9 +179,7 @@ describe('utils.Validate.Component', function () {
|
|
|
193
179
|
var LABEL = 'field';
|
|
194
180
|
var COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false);
|
|
195
181
|
COLLECTION.item = [EMAIL];
|
|
196
|
-
|
|
197
182
|
var DATA = _defineProperty({}, ID, [_defineProperty({}, EMAIL_ID, 'alpha.bravo@homeoffice.gov.uk'), _defineProperty({}, EMAIL_ID, 'charlie.delta@homeoffice.gov.uk')]);
|
|
198
|
-
|
|
199
183
|
expect((0, _validateComponent.default)(COLLECTION, DATA)).toEqual([]);
|
|
200
184
|
});
|
|
201
185
|
});
|
|
@@ -203,9 +187,7 @@ describe('utils.Validate.Component', function () {
|
|
|
203
187
|
it('should return no error when the radio component contains nested components without errors', function () {
|
|
204
188
|
var NESTED_ID = 'nestedId';
|
|
205
189
|
var NESTED_VALUE = 'nestedValue';
|
|
206
|
-
|
|
207
190
|
var FORMDATA = _defineProperty({}, NESTED_ID, NESTED_VALUE);
|
|
208
|
-
|
|
209
191
|
var COMPONENT = {
|
|
210
192
|
type: 'radios',
|
|
211
193
|
id: 'a',
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _validateComponent = _interopRequireDefault(require("./validateComponent"));
|
|
9
|
-
|
|
10
8
|
var _additional = _interopRequireDefault(require("./additional"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
10
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
14
11
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
-
|
|
16
12
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
16
|
/**
|
|
21
17
|
* Validates all components within a container.
|
|
22
18
|
* @param {object} container The container to validate.
|
|
@@ -28,19 +24,15 @@ var validateContainer = function validateContainer(container, outerData, formDat
|
|
|
28
24
|
if (!container) {
|
|
29
25
|
return [];
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
var fd = formData || outerData;
|
|
33
28
|
var error = (0, _additional.default)(container, fd);
|
|
34
|
-
|
|
35
29
|
if (error) {
|
|
36
30
|
return {
|
|
37
31
|
id: container.id,
|
|
38
32
|
error: error
|
|
39
33
|
};
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
var errors = [];
|
|
43
|
-
|
|
44
36
|
if (Array.isArray(container.components)) {
|
|
45
37
|
var containerData = outerData && container.fieldId ? outerData[container.fieldId] : outerData;
|
|
46
38
|
container.components.forEach(function (component) {
|
|
@@ -53,11 +45,9 @@ var validateContainer = function validateContainer(container, outerData, formDat
|
|
|
53
45
|
}), containerData, fd));
|
|
54
46
|
});
|
|
55
47
|
}
|
|
56
|
-
|
|
57
48
|
return errors.flat(1).filter(function (e) {
|
|
58
49
|
return !!e;
|
|
59
50
|
});
|
|
60
51
|
};
|
|
61
|
-
|
|
62
52
|
var _default = validateContainer;
|
|
63
53
|
exports.default = _default;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _validateContainer = _interopRequireDefault(require("./validateContainer"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
|
|
6
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
7
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
9
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
10
|
describe('utils.Validate.Container', function () {
|
|
12
11
|
var setup = function setup(id, type, label, required, additionalValidation) {
|
|
13
12
|
return {
|
|
@@ -19,7 +18,6 @@ describe('utils.Validate.Container', function () {
|
|
|
19
18
|
additionalValidation: additionalValidation
|
|
20
19
|
};
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
it('should return an empty array when the component is null', function () {
|
|
24
22
|
expect((0, _validateContainer.default)(null, {})).toEqual([]);
|
|
25
23
|
});
|
|
@@ -44,9 +42,7 @@ describe('utils.Validate.Container', function () {
|
|
|
44
42
|
var LABEL = 'field';
|
|
45
43
|
var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
|
|
46
44
|
CONTAINER.components = [EMAIL];
|
|
47
|
-
|
|
48
45
|
var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
|
|
49
|
-
|
|
50
46
|
expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([]);
|
|
51
47
|
});
|
|
52
48
|
it('should return an array containing an error when the container has an invalid component', function () {
|
|
@@ -57,9 +53,7 @@ describe('utils.Validate.Container', function () {
|
|
|
57
53
|
var LABEL = 'field';
|
|
58
54
|
var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
|
|
59
55
|
CONTAINER.components = [EMAIL];
|
|
60
|
-
|
|
61
56
|
var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.com'));
|
|
62
|
-
|
|
63
57
|
expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([{
|
|
64
58
|
id: "".concat(ID, ".").concat(EMAIL_ID),
|
|
65
59
|
error: "Enter ".concat(EMAIL_LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
|
|
@@ -4,49 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.maxMonthDays = exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
9
|
-
|
|
10
8
|
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
11
|
-
|
|
12
9
|
var _isToday = _interopRequireDefault(require("dayjs/plugin/isToday"));
|
|
13
|
-
|
|
14
10
|
var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
|
|
15
|
-
|
|
16
11
|
var _utils = require("./additional/utils");
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
|
|
22
14
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
15
|
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); }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
29
|
-
|
|
16
|
+
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; }
|
|
17
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
30
18
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
31
|
-
|
|
32
19
|
_dayjs.default.extend(_customParseFormat.default);
|
|
33
|
-
|
|
34
20
|
_dayjs.default.extend(_isToday.default);
|
|
35
|
-
|
|
36
21
|
_dayjs.default.extend(_isLeapYear.default);
|
|
37
|
-
|
|
38
22
|
var maxMonthDays = function maxMonthDays(month, year) {
|
|
39
23
|
if (month === '02') {
|
|
40
24
|
return (0, _dayjs.default)().year(year).isLeapYear() ? 29 : 28;
|
|
41
25
|
} else if (['04', '06', '09', '11'].includes(month)) {
|
|
42
26
|
return 30;
|
|
43
27
|
}
|
|
44
|
-
|
|
45
28
|
return 31;
|
|
46
29
|
};
|
|
47
|
-
|
|
48
30
|
exports.maxMonthDays = maxMonthDays;
|
|
49
|
-
|
|
50
31
|
/**
|
|
51
32
|
* Checks if a date passed is a valid date.
|
|
52
33
|
* This will validate for 'leap years', missing components, invalid day, monnth or year components.
|
|
@@ -66,18 +47,14 @@ var validateDate = function validateDate(date) {
|
|
|
66
47
|
propsInError: undefined
|
|
67
48
|
};
|
|
68
49
|
}
|
|
69
|
-
|
|
70
50
|
var formattedDate = (0, _utils.formatString)(date);
|
|
71
|
-
|
|
72
51
|
var _formattedDate$split = formattedDate.split('-'),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
52
|
+
_formattedDate$split2 = _slicedToArray(_formattedDate$split, 3),
|
|
53
|
+
day = _formattedDate$split2[0],
|
|
54
|
+
month = _formattedDate$split2[1],
|
|
55
|
+
year = _formattedDate$split2[2];
|
|
78
56
|
var intDay = parseInt(day, 10);
|
|
79
57
|
var intMonth = parseInt(month, 10);
|
|
80
|
-
|
|
81
58
|
if (year.length === 0) {
|
|
82
59
|
return {
|
|
83
60
|
message: 'Date must include a year',
|
|
@@ -86,7 +63,6 @@ var validateDate = function validateDate(date) {
|
|
|
86
63
|
}
|
|
87
64
|
};
|
|
88
65
|
}
|
|
89
|
-
|
|
90
66
|
if (year.length !== 4) {
|
|
91
67
|
return {
|
|
92
68
|
message: 'Year must be 4 numbers',
|
|
@@ -95,7 +71,6 @@ var validateDate = function validateDate(date) {
|
|
|
95
71
|
}
|
|
96
72
|
};
|
|
97
73
|
}
|
|
98
|
-
|
|
99
74
|
if (month.length === 0) {
|
|
100
75
|
return {
|
|
101
76
|
message: 'Date must include a month',
|
|
@@ -104,7 +79,6 @@ var validateDate = function validateDate(date) {
|
|
|
104
79
|
}
|
|
105
80
|
};
|
|
106
81
|
}
|
|
107
|
-
|
|
108
82
|
if (intMonth > 12 || intMonth < 1) {
|
|
109
83
|
return {
|
|
110
84
|
message: 'Month must be between 1 and 12',
|
|
@@ -113,7 +87,6 @@ var validateDate = function validateDate(date) {
|
|
|
113
87
|
}
|
|
114
88
|
};
|
|
115
89
|
}
|
|
116
|
-
|
|
117
90
|
if (day.length === 0) {
|
|
118
91
|
return {
|
|
119
92
|
message: 'Date must include a day',
|
|
@@ -122,9 +95,7 @@ var validateDate = function validateDate(date) {
|
|
|
122
95
|
}
|
|
123
96
|
};
|
|
124
97
|
}
|
|
125
|
-
|
|
126
98
|
var maxDays = maxMonthDays(month, year);
|
|
127
|
-
|
|
128
99
|
if (intDay > maxDays || intDay < 1) {
|
|
129
100
|
return {
|
|
130
101
|
message: "Day must be between 1 and ".concat(maxDays),
|
|
@@ -133,7 +104,6 @@ var validateDate = function validateDate(date) {
|
|
|
133
104
|
}
|
|
134
105
|
};
|
|
135
106
|
}
|
|
136
|
-
|
|
137
107
|
if ((0, _dayjs.default)(formattedDate, _utils.DATE_FORMAT).format(_utils.DATE_FORMAT) !== formattedDate) {
|
|
138
108
|
return {
|
|
139
109
|
message: 'Enter a valid date',
|
|
@@ -144,12 +114,10 @@ var validateDate = function validateDate(date) {
|
|
|
144
114
|
}
|
|
145
115
|
};
|
|
146
116
|
}
|
|
147
|
-
|
|
148
117
|
return {
|
|
149
118
|
message: undefined,
|
|
150
119
|
propsInError: undefined
|
|
151
120
|
};
|
|
152
121
|
};
|
|
153
|
-
|
|
154
122
|
var _default = validateDate;
|
|
155
123
|
exports.default = _default;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
4
|
var _validateDate = _interopRequireWildcard(require("./validateDate"));
|
|
6
|
-
|
|
7
5
|
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); }
|
|
8
|
-
|
|
9
6
|
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; }
|
|
10
|
-
|
|
11
7
|
describe('utils', function () {
|
|
12
8
|
describe('Validate', function () {
|
|
13
9
|
describe('date', function () {
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
// eslint-disable-next-line no-control-regex
|
|
8
8
|
// const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i;
|
|
9
9
|
var HODS_EMAIL_REGEX = /^[a-z0-9._-]+@(digital\.)?homeoffice.gov.uk$/i;
|
|
10
|
+
|
|
10
11
|
/**
|
|
11
12
|
* Validates an email address, ensuring it is in the correct domain and
|
|
12
13
|
* complies with the Home Office email address standards.
|
|
@@ -18,35 +19,27 @@ var HODS_EMAIL_REGEX = /^[a-z0-9._-]+@(digital\.)?homeoffice.gov.uk$/i;
|
|
|
18
19
|
* @param {array} customErrors The array of custom errors to use for format message.
|
|
19
20
|
* @returns An error if the email address is invalid.
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
22
|
var validateEmail = function validateEmail(value) {
|
|
23
23
|
var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
24
24
|
var customErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
25
|
-
|
|
26
25
|
if (!!value) {
|
|
27
26
|
var name = label ? label.toLowerCase() : 'email address';
|
|
28
|
-
|
|
29
27
|
if (typeof value === 'string') {
|
|
30
28
|
if (HODS_EMAIL_REGEX.test(value)) {
|
|
31
29
|
return undefined;
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
if (Array.isArray(customErrors)) {
|
|
36
33
|
var result = customErrors.filter(function (error) {
|
|
37
34
|
return error.type === 'format';
|
|
38
35
|
});
|
|
39
|
-
|
|
40
36
|
if (result && result.length > 0 && result[0].message) {
|
|
41
37
|
return result[0].message;
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
|
-
|
|
45
40
|
return "Enter ".concat(name, " in the correct format, like jane.doe@homeoffice.gov.uk");
|
|
46
41
|
}
|
|
47
|
-
|
|
48
42
|
return undefined;
|
|
49
43
|
};
|
|
50
|
-
|
|
51
44
|
var _default = validateEmail;
|
|
52
45
|
exports.default = _default;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _validateEmail = _interopRequireDefault(require("./validateEmail"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
// Local imports
|
|
6
|
+
|
|
8
7
|
describe('utils', function () {
|
|
9
8
|
describe('Validate', function () {
|
|
10
9
|
describe('email', function () {
|
|
11
10
|
var LABEL = 'Component';
|
|
12
|
-
var ERROR = "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk");
|
|
11
|
+
var ERROR = "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk");
|
|
13
12
|
|
|
13
|
+
// Valid values
|
|
14
14
|
it('should return no error when the value is a valid .gov.uk address', function () {
|
|
15
15
|
expect((0, _validateEmail.default)('alpha@homeoffice.gov.uk', LABEL)).toBeUndefined();
|
|
16
16
|
});
|
|
@@ -19,8 +19,9 @@ describe('utils', function () {
|
|
|
19
19
|
});
|
|
20
20
|
it('should return no error when the value is an empty string', function () {
|
|
21
21
|
expect((0, _validateEmail.default)('', LABEL)).toBeUndefined();
|
|
22
|
-
});
|
|
22
|
+
});
|
|
23
23
|
|
|
24
|
+
// Invalid values
|
|
24
25
|
it('should return an error when the value is an empty object', function () {
|
|
25
26
|
expect((0, _validateEmail.default)({}, LABEL)).toEqual(ERROR);
|
|
26
27
|
});
|
|
@@ -6,34 +6,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.DEFAULT_ERROR = void 0;
|
|
7
7
|
var DEFAULT_ERROR = 'Invalid files must be deleted';
|
|
8
8
|
exports.DEFAULT_ERROR = DEFAULT_ERROR;
|
|
9
|
-
|
|
10
9
|
var validateMultifile = function validateMultifile(value, customErrors) {
|
|
11
10
|
if (!value) {
|
|
12
11
|
return undefined;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
13
|
var inError = false;
|
|
16
14
|
value.every(function (entry) {
|
|
17
15
|
inError = entry.error;
|
|
18
16
|
return !inError;
|
|
19
17
|
});
|
|
20
|
-
|
|
21
18
|
if (inError) {
|
|
22
19
|
if (Array.isArray(customErrors)) {
|
|
23
20
|
var result = customErrors.filter(function (error) {
|
|
24
21
|
return error.type === 'invalidFile';
|
|
25
22
|
});
|
|
26
|
-
|
|
27
23
|
if (result && result.length > 0 && result[0].message) {
|
|
28
24
|
return result[0].message;
|
|
29
25
|
}
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
return DEFAULT_ERROR;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
return undefined;
|
|
36
30
|
};
|
|
37
|
-
|
|
38
31
|
var _default = validateMultifile;
|
|
39
32
|
exports.default = _default;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
4
|
var _validateMultifile = _interopRequireWildcard(require("./validateMultifile"));
|
|
6
|
-
|
|
7
5
|
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); }
|
|
8
|
-
|
|
9
6
|
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; }
|
|
10
|
-
|
|
11
7
|
// Local imports
|
|
8
|
+
|
|
12
9
|
describe('utils', function () {
|
|
13
10
|
describe('Validate', function () {
|
|
14
11
|
describe('multifile', function () {
|
|
@@ -16,8 +13,9 @@ describe('utils', function () {
|
|
|
16
13
|
var CUSTOM_ERRORS = [{
|
|
17
14
|
type: 'invalidFile',
|
|
18
15
|
message: ERROR_MSG
|
|
19
|
-
}];
|
|
16
|
+
}];
|
|
20
17
|
|
|
18
|
+
// Valid values.
|
|
21
19
|
it('should return no error when value is nullish', function () {
|
|
22
20
|
var VALUE = null;
|
|
23
21
|
expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
|
|
@@ -29,8 +27,9 @@ describe('utils', function () {
|
|
|
29
27
|
it('should return no error when value only contains valid files', function () {
|
|
30
28
|
var VALUE = [{}, {}];
|
|
31
29
|
expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
|
|
32
|
-
});
|
|
30
|
+
});
|
|
33
31
|
|
|
32
|
+
// Invalid values.
|
|
34
33
|
it('should return an error when valid contains invalid files', function () {
|
|
35
34
|
var VALUE = [{
|
|
36
35
|
error: 'This is an invalid file'
|