@ukhomeoffice/cop-react-form-renderer 4.67.0 → 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 +2 -15
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +1 -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,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'
|
|
@@ -4,23 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
-
|
|
10
8
|
var _validateComponent = _interopRequireDefault(require("./validateComponent"));
|
|
11
|
-
|
|
12
9
|
var _CollectionPage = _interopRequireDefault(require("../CollectionPage"));
|
|
13
|
-
|
|
14
10
|
var _showFormPage = _interopRequireDefault(require("../FormPage/showFormPage"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
12
|
+
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); }
|
|
18
13
|
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; }
|
|
19
|
-
|
|
20
14
|
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; }
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
15
|
+
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; }
|
|
16
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
17
|
+
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); }
|
|
24
18
|
/**
|
|
25
19
|
* Validate all of the components on a page.
|
|
26
20
|
* @param {object} page The page to validate
|
|
@@ -28,17 +22,13 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
28
22
|
*/
|
|
29
23
|
var validatePage = function validatePage(page) {
|
|
30
24
|
var data = page.formData;
|
|
31
|
-
|
|
32
25
|
if (page.collection) {
|
|
33
26
|
var activeIndex = _CollectionPage.default.getActiveIndex(page.collection.name, page.formData);
|
|
34
|
-
|
|
35
27
|
if (activeIndex !== null) {
|
|
36
28
|
var _page$formData$page$c;
|
|
37
|
-
|
|
38
29
|
data = _objectSpread(_objectSpread({}, page.formData), (_page$formData$page$c = page.formData[page.collection.name]) === null || _page$formData$page$c === void 0 ? void 0 : _page$formData$page$c[activeIndex]);
|
|
39
30
|
}
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
if ((0, _showFormPage.default)(page, data) && Array.isArray(page.components)) {
|
|
43
33
|
var errs = page.components.reduce(function (errors, component) {
|
|
44
34
|
var componentErrors = (0, _validateComponent.default)(component, data, data);
|
|
@@ -52,9 +42,7 @@ var validatePage = function validatePage(page) {
|
|
|
52
42
|
}).flat();
|
|
53
43
|
return errs;
|
|
54
44
|
}
|
|
55
|
-
|
|
56
45
|
return [];
|
|
57
46
|
};
|
|
58
|
-
|
|
59
47
|
var _default = validatePage;
|
|
60
48
|
exports.default = _default;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _validatePage = _interopRequireDefault(require("./validatePage"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
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); }
|
|
9
7
|
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; }
|
|
10
|
-
|
|
11
8
|
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; }
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
9
|
+
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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
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); }
|
|
15
12
|
describe('utils.Validate.Page', function () {
|
|
16
13
|
describe('with FormPage', function () {
|
|
17
14
|
var setup = function setup(id, type, label, required) {
|
|
@@ -23,7 +20,6 @@ describe('utils.Validate.Page', function () {
|
|
|
23
20
|
required: required
|
|
24
21
|
};
|
|
25
22
|
};
|
|
26
|
-
|
|
27
23
|
it('should return no error when the components array is null', function () {
|
|
28
24
|
var PAGE = {
|
|
29
25
|
components: null,
|
|
@@ -48,7 +44,8 @@ describe('utils.Validate.Page', function () {
|
|
|
48
44
|
expect((0, _validatePage.default)(PAGE).length).toEqual(0);
|
|
49
45
|
});
|
|
50
46
|
it('should return an error for each required component', function () {
|
|
51
|
-
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
47
|
+
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
48
|
+
// The only unrequired one
|
|
52
49
|
setup('d', _models.ComponentTypes.TEXT, 'Delta', true), setup('e', _models.ComponentTypes.TEXT, 'Echo', true)];
|
|
53
50
|
var PAGE = {
|
|
54
51
|
components: COMPONENTS,
|
|
@@ -74,7 +71,8 @@ describe('utils.Validate.Page', function () {
|
|
|
74
71
|
});
|
|
75
72
|
});
|
|
76
73
|
it('should return an error for each required component on a collection page', function () {
|
|
77
|
-
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
74
|
+
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
75
|
+
// The only unrequired one
|
|
78
76
|
setup('d', _models.ComponentTypes.TEXT, 'Delta', true), setup('e', _models.ComponentTypes.TEXT, 'Echo', true)];
|
|
79
77
|
var PAGE = {
|
|
80
78
|
components: COMPONENTS,
|
|
@@ -103,11 +101,16 @@ describe('utils.Validate.Page', function () {
|
|
|
103
101
|
});
|
|
104
102
|
});
|
|
105
103
|
it('should return an error for each required component with interpolated label', function () {
|
|
106
|
-
var COMPONENTS = [
|
|
107
|
-
|
|
108
|
-
setup('
|
|
109
|
-
|
|
110
|
-
setup('
|
|
104
|
+
var COMPONENTS = [
|
|
105
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
106
|
+
setup('a', _models.ComponentTypes.TEXT, 'Alpha ${tiger}', true),
|
|
107
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
108
|
+
setup('b', _models.ComponentTypes.EMAIL, 'Bravo ${panther}', true),
|
|
109
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
110
|
+
setup('c', _models.ComponentTypes.AUTOCOMPLETE, 'Charlie ${eagle}', true),
|
|
111
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
112
|
+
setup('d', _models.ComponentTypes.CHECKBOXES, 'Delta ${lion}', true),
|
|
113
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
111
114
|
setup('e', _models.ComponentTypes.FILE, 'Echo ${zoo}', true)];
|
|
112
115
|
var PAGE = {
|
|
113
116
|
components: COMPONENTS,
|
|
@@ -238,8 +241,10 @@ describe('utils.Validate.Page', function () {
|
|
|
238
241
|
});
|
|
239
242
|
});
|
|
240
243
|
it('should return an interpolated error for both invalid fields when all are required and email types', function () {
|
|
241
|
-
var COMPONENTS = [setup('alpha', _models.ComponentTypes.EMAIL, 'Alpha', true),
|
|
242
|
-
|
|
244
|
+
var COMPONENTS = [setup('alpha', _models.ComponentTypes.EMAIL, 'Alpha', true),
|
|
245
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
246
|
+
setup('bravo', _models.ComponentTypes.EMAIL, 'Bravo ${lion}', true),
|
|
247
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
243
248
|
setup('charlie', _models.ComponentTypes.EMAIL, 'Charlie ${panther}', true)];
|
|
244
249
|
var PAGE = {
|
|
245
250
|
components: COMPONENTS,
|
|
@@ -265,7 +270,6 @@ describe('utils.Validate.Page', function () {
|
|
|
265
270
|
var COLLECTION = {
|
|
266
271
|
name: 'pageCollection'
|
|
267
272
|
};
|
|
268
|
-
|
|
269
273
|
var setup = function setup(id, type, label, required) {
|
|
270
274
|
return {
|
|
271
275
|
id: id,
|
|
@@ -275,10 +279,8 @@ describe('utils.Validate.Page', function () {
|
|
|
275
279
|
required: required
|
|
276
280
|
};
|
|
277
281
|
};
|
|
278
|
-
|
|
279
282
|
describe('when the form data is fully valid', function () {
|
|
280
283
|
var _DATA;
|
|
281
|
-
|
|
282
284
|
var DATA = (_DATA = {}, _defineProperty(_DATA, "".concat(COLLECTION.name, "ActiveId"), '01'), _defineProperty(_DATA, COLLECTION.name, [{
|
|
283
285
|
id: '01',
|
|
284
286
|
alpha: 'alpha.smith@digital.homeoffice.gov.uk',
|
|
@@ -321,7 +323,8 @@ describe('utils.Validate.Page', function () {
|
|
|
321
323
|
expect((0, _validatePage.default)(PAGE).length).toEqual(0);
|
|
322
324
|
});
|
|
323
325
|
it('should return an error for each required component on a collection page with a show_when that is true', function () {
|
|
324
|
-
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
326
|
+
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
327
|
+
// The only unrequired one
|
|
325
328
|
setup('d', _models.ComponentTypes.TEXT, 'Delta', true), setup('e', _models.ComponentTypes.TEXT, 'Echo', true)];
|
|
326
329
|
var PAGE = {
|
|
327
330
|
components: COMPONENTS,
|
|
@@ -361,7 +364,8 @@ describe('utils.Validate.Page', function () {
|
|
|
361
364
|
});
|
|
362
365
|
});
|
|
363
366
|
it('should return no errors on a collection page with a show_when that is false', function () {
|
|
364
|
-
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
367
|
+
var COMPONENTS = [setup('a', _models.ComponentTypes.TEXT, 'Alpha', true), setup('b', _models.ComponentTypes.TEXT, 'Bravo', true), setup('c', _models.ComponentTypes.TEXT, 'Charlie', false),
|
|
368
|
+
// The only unrequired one
|
|
365
369
|
setup('d', _models.ComponentTypes.TEXT, 'Delta', true), setup('e', _models.ComponentTypes.TEXT, 'Echo', true)];
|
|
366
370
|
var PAGE = {
|
|
367
371
|
components: COMPONENTS,
|
|
@@ -387,7 +391,6 @@ describe('utils.Validate.Page', function () {
|
|
|
387
391
|
});
|
|
388
392
|
describe('when the form data has one field missing and includes an invalid email', function () {
|
|
389
393
|
var _DATA2;
|
|
390
|
-
|
|
391
394
|
var DATA = (_DATA2 = {}, _defineProperty(_DATA2, "".concat(COLLECTION.name, "ActiveId"), '01'), _defineProperty(_DATA2, COLLECTION.name, [{
|
|
392
395
|
id: '01',
|
|
393
396
|
alpha: 'alpha.smith@digital.homeoffice.gov.uk',
|
|
@@ -449,8 +452,10 @@ describe('utils.Validate.Page', function () {
|
|
|
449
452
|
});
|
|
450
453
|
});
|
|
451
454
|
it('should return an interpolated error for both invalid fields when all are required and email types', function () {
|
|
452
|
-
var COMPONENTS = [setup('alpha', _models.ComponentTypes.EMAIL, 'Alpha', true),
|
|
453
|
-
|
|
455
|
+
var COMPONENTS = [setup('alpha', _models.ComponentTypes.EMAIL, 'Alpha', true),
|
|
456
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
457
|
+
setup('bravo', _models.ComponentTypes.EMAIL, 'Bravo ${lion}', true),
|
|
458
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
454
459
|
setup('charlie', _models.ComponentTypes.EMAIL, 'Charlie ${panther}', true)];
|
|
455
460
|
var PAGE = {
|
|
456
461
|
collection: COLLECTION,
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Validates an components value against a given regex pattern.
|
|
10
9
|
*
|
|
@@ -20,37 +19,28 @@ var validateRegex = function validateRegex(value) {
|
|
|
20
19
|
var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
21
20
|
var pattern = arguments.length > 2 ? arguments[2] : undefined;
|
|
22
21
|
var customErrors = arguments.length > 3 ? arguments[3] : undefined;
|
|
23
|
-
|
|
24
22
|
if (!value) {
|
|
25
23
|
return undefined;
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
if (typeof value === 'string') {
|
|
29
26
|
var regex = new RegExp(pattern);
|
|
30
|
-
|
|
31
27
|
if (regex.test(value)) {
|
|
32
28
|
return undefined;
|
|
33
29
|
}
|
|
34
|
-
|
|
35
30
|
if (Array.isArray(customErrors)) {
|
|
36
31
|
var _result$;
|
|
37
|
-
|
|
38
32
|
var result = customErrors.filter(function (error) {
|
|
39
33
|
return error.type === 'pattern';
|
|
40
34
|
});
|
|
41
|
-
|
|
42
35
|
if (result !== null && result !== void 0 && (_result$ = result[0]) !== null && _result$ !== void 0 && _result$.message) {
|
|
43
36
|
return result[0].message;
|
|
44
37
|
}
|
|
45
38
|
}
|
|
46
39
|
}
|
|
47
|
-
|
|
48
40
|
if (label === '') {
|
|
49
41
|
return 'Component failed regex validation';
|
|
50
42
|
}
|
|
51
|
-
|
|
52
43
|
return "".concat(label, " failed regex validation");
|
|
53
44
|
};
|
|
54
|
-
|
|
55
45
|
var _default = validateRegex;
|
|
56
46
|
exports.default = _default;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
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('regex', function () {
|
|
@@ -18,15 +17,17 @@ describe('utils', function () {
|
|
|
18
17
|
}];
|
|
19
18
|
var DEFAULT_ERROR = [{
|
|
20
19
|
"type": "pattern"
|
|
21
|
-
}];
|
|
20
|
+
}];
|
|
22
21
|
|
|
22
|
+
// Valid values
|
|
23
23
|
it('should return no error when the value matches the regex pattern', function () {
|
|
24
24
|
expect((0, _validateRegex.default)(GOOD_VALUE, LABEL, PATTERN, CUSTOM_ERRORS)).toBeUndefined();
|
|
25
25
|
});
|
|
26
26
|
it('should return no error when the value is an empty string', function () {
|
|
27
27
|
expect((0, _validateRegex.default)('', LABEL, PATTERN, CUSTOM_ERRORS)).toBeUndefined();
|
|
28
|
-
});
|
|
28
|
+
});
|
|
29
29
|
|
|
30
|
+
// Invalid values
|
|
30
31
|
it('should return a custom error when the value does not match the regex pattern and one is specified', function () {
|
|
31
32
|
expect((0, _validateRegex.default)(BAD_VALUE, LABEL, PATTERN, CUSTOM_ERRORS)).toEqual(CUSTOM_ERRORS[0].message);
|
|
32
33
|
});
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Validates that a value is not nullish, which includes ensuring
|
|
10
9
|
* a string isn't just whitespace, an array is not empty, etc.
|
|
@@ -16,34 +15,27 @@ var validateRequired = function validateRequired(value) {
|
|
|
16
15
|
var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
17
16
|
var customErrors = arguments.length > 2 ? arguments[2] : undefined;
|
|
18
17
|
var hasValue = false;
|
|
19
|
-
|
|
20
18
|
if (!!value || value === false || value === 0) {
|
|
21
19
|
hasValue = true;
|
|
22
|
-
|
|
23
20
|
if (typeof value === 'string') {
|
|
24
21
|
hasValue = value.trim().length > 0;
|
|
25
22
|
} else if (Array.isArray(value)) {
|
|
26
23
|
hasValue = value.length > 0;
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
|
|
30
26
|
if (!hasValue) {
|
|
31
27
|
if (Array.isArray(customErrors)) {
|
|
32
28
|
var result = customErrors.filter(function (error) {
|
|
33
29
|
return error.type === 'required';
|
|
34
30
|
});
|
|
35
|
-
|
|
36
31
|
if (result && result.length > 0 && result[0].message) {
|
|
37
32
|
return result[0].message;
|
|
38
33
|
}
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
var name = label ? label : 'Field';
|
|
42
36
|
return "".concat(name, " is required");
|
|
43
37
|
}
|
|
44
|
-
|
|
45
38
|
return undefined;
|
|
46
39
|
};
|
|
47
|
-
|
|
48
40
|
var _default = validateRequired;
|
|
49
41
|
exports.default = _default;
|