@ukhomeoffice/cop-react-form-renderer 4.67.0 → 4.69.0
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 +12 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +48 -11
- 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 +3 -11
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +60 -25
- 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 +13 -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/optionIsSelected.js +22 -0
- package/dist/utils/Component/optionIsSelected.test.js +42 -0
- 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 +5 -40
- package/dist/utils/Validate/validateComponent.test.js +120 -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,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _validateContainer = _interopRequireDefault(require("./validateContainer"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
9
|
+
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); }
|
|
12
10
|
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; }
|
|
13
|
-
|
|
14
11
|
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; }
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
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); }
|
|
18
15
|
/**
|
|
19
16
|
* Validates all of the items within a collection.
|
|
20
17
|
* @param {object} collection The collection to validate.
|
|
@@ -24,7 +21,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
24
21
|
*/
|
|
25
22
|
var validateCollection = function validateCollection(collection, items, formData) {
|
|
26
23
|
var errors = [];
|
|
27
|
-
|
|
28
24
|
if (collection && Array.isArray(collection.item) && Array.isArray(items)) {
|
|
29
25
|
items.forEach(function (item, index) {
|
|
30
26
|
var full_path = "".concat(collection.full_path || collection.fieldId, "[").concat(index, "]");
|
|
@@ -39,11 +35,9 @@ var validateCollection = function validateCollection(collection, items, formData
|
|
|
39
35
|
errors.push((0, _validateContainer.default)(container, item, formData));
|
|
40
36
|
});
|
|
41
37
|
}
|
|
42
|
-
|
|
43
38
|
return errors.filter(function (e) {
|
|
44
39
|
return !!e;
|
|
45
40
|
}).flat();
|
|
46
41
|
};
|
|
47
|
-
|
|
48
42
|
var _default = validateCollection;
|
|
49
43
|
exports.default = _default;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _validateCollection = _interopRequireDefault(require("./validateCollection"));
|
|
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.Collection', function () {
|
|
12
11
|
var setup = function setup(id, type, label, required, item) {
|
|
13
12
|
return {
|
|
@@ -19,7 +18,6 @@ describe('utils.Validate.Collection', function () {
|
|
|
19
18
|
item: item
|
|
20
19
|
};
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
it('should return an empty array when the component is null', function () {
|
|
24
22
|
expect((0, _validateCollection.default)(null, [])).toEqual([]);
|
|
25
23
|
});
|
|
@@ -4,35 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _models = require("../../models");
|
|
9
|
-
|
|
8
|
+
var _optionIsSelected = _interopRequireDefault(require("../Component/optionIsSelected"));
|
|
10
9
|
var _showComponent = _interopRequireDefault(require("../Component/showComponent"));
|
|
11
|
-
|
|
12
10
|
var _additional = _interopRequireDefault(require("./additional"));
|
|
13
|
-
|
|
14
11
|
var _validateCollection = _interopRequireDefault(require("./validateCollection"));
|
|
15
|
-
|
|
16
12
|
var _validateContainer = _interopRequireDefault(require("./validateContainer"));
|
|
17
|
-
|
|
18
13
|
var _validateDate = _interopRequireDefault(require("./validateDate"));
|
|
19
|
-
|
|
20
14
|
var _validateEmail = _interopRequireDefault(require("./validateEmail"));
|
|
21
|
-
|
|
22
15
|
var _validateMultifile = _interopRequireDefault(require("./validateMultifile"));
|
|
23
|
-
|
|
24
16
|
var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
25
|
-
|
|
26
17
|
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
27
|
-
|
|
28
18
|
var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
|
|
29
|
-
|
|
30
19
|
var _validateTime = _interopRequireDefault(require("./validateTime"));
|
|
31
|
-
|
|
32
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
21
|
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
22
|
/**
|
|
37
23
|
* Validates a single component.
|
|
38
24
|
* @param {object} component The component to validate.
|
|
@@ -42,82 +28,64 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
42
28
|
*/
|
|
43
29
|
var validateComponent = function validateComponent(component, outerData, formData) {
|
|
44
30
|
var _component$data$optio;
|
|
45
|
-
|
|
46
31
|
var fd = formData || outerData;
|
|
47
|
-
|
|
48
32
|
if (!(0, _showComponent.default)(component, fd)) {
|
|
49
33
|
return undefined;
|
|
50
34
|
}
|
|
51
|
-
|
|
52
35
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
53
36
|
return (0, _validateContainer.default)(component, outerData, fd);
|
|
54
37
|
}
|
|
55
|
-
|
|
56
38
|
var error = undefined;
|
|
57
39
|
var properties = undefined;
|
|
58
40
|
var data = outerData && _typeof(outerData) === 'object' ? outerData : {};
|
|
59
41
|
var value = data[component.fieldId];
|
|
60
|
-
|
|
61
42
|
if (component.required) {
|
|
62
43
|
error = (0, _validateRequired.default)(value, component.label, component.custom_errors);
|
|
63
44
|
}
|
|
64
|
-
|
|
65
45
|
if (!error) {
|
|
66
46
|
switch (component.type) {
|
|
67
47
|
case _models.ComponentTypes.COLLECTION:
|
|
68
48
|
return (0, _validateCollection.default)(component, value, fd);
|
|
69
|
-
|
|
70
49
|
case _models.ComponentTypes.EMAIL:
|
|
71
50
|
error = (0, _validateEmail.default)(value, component.label, component.custom_errors);
|
|
72
51
|
break;
|
|
73
|
-
|
|
74
52
|
case _models.ComponentTypes.DATE:
|
|
75
53
|
case _models.ComponentTypes.TIME:
|
|
76
54
|
var validator = component.type === _models.ComponentTypes.DATE ? _validateDate.default : _validateTime.default;
|
|
77
|
-
|
|
78
55
|
var _validator = validator(value),
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
56
|
+
message = _validator.message,
|
|
57
|
+
propsInError = _validator.propsInError;
|
|
82
58
|
properties = propsInError;
|
|
83
59
|
error = message;
|
|
84
60
|
break;
|
|
85
|
-
|
|
61
|
+
case _models.ComponentTypes.CHECKBOXES:
|
|
86
62
|
case _models.ComponentTypes.RADIOS:
|
|
87
63
|
var nestedErrors = [];
|
|
88
64
|
(_component$data$optio = component.data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
|
|
89
|
-
if (option.nested && formData[component.id]
|
|
65
|
+
if (option.nested && (0, _optionIsSelected.default)(formData[component.id], option)) {
|
|
90
66
|
nestedErrors = nestedErrors.concat((0, _validateContainer.default)({
|
|
91
67
|
components: option.nested
|
|
92
68
|
}, formData));
|
|
93
69
|
}
|
|
94
70
|
});
|
|
95
|
-
|
|
96
71
|
if (nestedErrors.length > 0) {
|
|
97
72
|
return nestedErrors;
|
|
98
73
|
}
|
|
99
|
-
|
|
100
74
|
break;
|
|
101
|
-
|
|
102
75
|
case _models.ComponentTypes.MULTI_FILE:
|
|
103
76
|
error = (0, _validateMultifile.default)(value, component.custom_errors);
|
|
104
77
|
break;
|
|
105
|
-
|
|
106
78
|
case _models.ComponentTypes.TEXT_AREA:
|
|
107
79
|
error = (0, _validateTextArea.default)(component.label, value, component.showCharacterCount, component.custom_errors, component.maxLength);
|
|
108
80
|
break;
|
|
109
|
-
|
|
110
81
|
default:
|
|
111
82
|
break;
|
|
112
83
|
}
|
|
113
|
-
|
|
114
84
|
if (!error && component.pattern) {
|
|
115
85
|
error = (0, _validateRegex.default)(value, component.label, component.pattern, component.custom_errors);
|
|
116
86
|
}
|
|
117
|
-
|
|
118
87
|
if (!error && component.additionalValidation) {
|
|
119
88
|
error = (0, _additional.default)(component, value);
|
|
120
|
-
|
|
121
89
|
if (component.type === _models.ComponentTypes.DATE && error) {
|
|
122
90
|
properties = {
|
|
123
91
|
day: true,
|
|
@@ -127,7 +95,6 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
127
95
|
}
|
|
128
96
|
}
|
|
129
97
|
}
|
|
130
|
-
|
|
131
98
|
if (error) {
|
|
132
99
|
return {
|
|
133
100
|
id: component.full_path || component.id,
|
|
@@ -135,9 +102,7 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
135
102
|
properties: properties
|
|
136
103
|
};
|
|
137
104
|
}
|
|
138
|
-
|
|
139
105
|
return undefined;
|
|
140
106
|
};
|
|
141
|
-
|
|
142
107
|
var _default = validateComponent;
|
|
143
108
|
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',
|
|
@@ -263,5 +245,121 @@ describe('utils.Validate.Component', function () {
|
|
|
263
245
|
};
|
|
264
246
|
expect((0, _validateComponent.default)(COMPONENT, undefined, {})).toBeUndefined();
|
|
265
247
|
});
|
|
248
|
+
it('should return no error when the checkbox component contains nested components without errors', function () {
|
|
249
|
+
var NESTED_ID = 'nestedId';
|
|
250
|
+
var NESTED_VALUE = 'nestedValue';
|
|
251
|
+
var FORMDATA = _defineProperty({}, NESTED_ID, NESTED_VALUE);
|
|
252
|
+
var COMPONENT = {
|
|
253
|
+
type: 'checkboxes',
|
|
254
|
+
id: 'a',
|
|
255
|
+
data: {
|
|
256
|
+
options: [{
|
|
257
|
+
nested: [{
|
|
258
|
+
type: 'text',
|
|
259
|
+
fieldId: NESTED_ID,
|
|
260
|
+
id: NESTED_ID,
|
|
261
|
+
required: true
|
|
262
|
+
}]
|
|
263
|
+
}]
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
|
|
267
|
+
});
|
|
268
|
+
it('should return an error when the checkbox component contains nested components with errors', function () {
|
|
269
|
+
var NESTED_ID = 'nestedId';
|
|
270
|
+
var OPTION_VALUE = 'optionValue';
|
|
271
|
+
var FORMDATA = {
|
|
272
|
+
'a': [OPTION_VALUE]
|
|
273
|
+
};
|
|
274
|
+
var COMPONENT = {
|
|
275
|
+
type: 'checkboxes',
|
|
276
|
+
id: 'a',
|
|
277
|
+
data: {
|
|
278
|
+
options: [{
|
|
279
|
+
value: OPTION_VALUE,
|
|
280
|
+
nested: [{
|
|
281
|
+
type: 'text',
|
|
282
|
+
fieldId: NESTED_ID,
|
|
283
|
+
id: NESTED_ID,
|
|
284
|
+
required: true
|
|
285
|
+
}]
|
|
286
|
+
}]
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toEqual([{
|
|
290
|
+
id: NESTED_ID,
|
|
291
|
+
error: "Field is required"
|
|
292
|
+
}]);
|
|
293
|
+
});
|
|
294
|
+
it('should return no error when a non selected checkbox component contains nested components with errors', function () {
|
|
295
|
+
var NESTED_ID_NOT_SELECTED = 'nestedIdNotSelected';
|
|
296
|
+
var NESTED_ID_SELECTED = 'nestedIdSelected';
|
|
297
|
+
var NESTED_VALUE_SELECTED = 'nestedValueSelected';
|
|
298
|
+
var FORMDATA = _defineProperty({
|
|
299
|
+
'a': ['optionValueSelected']
|
|
300
|
+
}, NESTED_ID_SELECTED, NESTED_VALUE_SELECTED);
|
|
301
|
+
var COMPONENT = {
|
|
302
|
+
type: 'checkboxes',
|
|
303
|
+
id: 'a',
|
|
304
|
+
data: {
|
|
305
|
+
options: [{
|
|
306
|
+
id: 'optionIdNotSelected',
|
|
307
|
+
value: 'optionValueNotSelected',
|
|
308
|
+
nested: [{
|
|
309
|
+
type: 'text',
|
|
310
|
+
fieldId: NESTED_ID_NOT_SELECTED,
|
|
311
|
+
id: NESTED_ID_NOT_SELECTED,
|
|
312
|
+
required: true
|
|
313
|
+
}]
|
|
314
|
+
}, {
|
|
315
|
+
id: 'optionIdSelected',
|
|
316
|
+
value: 'optionValueSelected',
|
|
317
|
+
nested: [{
|
|
318
|
+
type: 'text',
|
|
319
|
+
fieldId: NESTED_ID_SELECTED,
|
|
320
|
+
id: NESTED_ID_SELECTED,
|
|
321
|
+
required: true
|
|
322
|
+
}]
|
|
323
|
+
}]
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
|
|
327
|
+
});
|
|
328
|
+
it('should return no error when all selected checkbox components contains nested components without errors', function () {
|
|
329
|
+
var _FORMDATA4;
|
|
330
|
+
var NESTED_ID_SELECTED_1 = 'nestedIdSelected1';
|
|
331
|
+
var NESTED_ID_SELECTED_2 = 'nestedIdSelected2';
|
|
332
|
+
var NESTED_VALUE_SELECTED_1 = 'nestedValueSelected1';
|
|
333
|
+
var NESTED_VALUE_SELECTED_2 = 'nestedValueSelected2';
|
|
334
|
+
var FORMDATA = (_FORMDATA4 = {
|
|
335
|
+
'a': ['optionValueSelected1', 'optionValueSelected2']
|
|
336
|
+
}, _defineProperty(_FORMDATA4, NESTED_ID_SELECTED_1, NESTED_VALUE_SELECTED_1), _defineProperty(_FORMDATA4, NESTED_ID_SELECTED_2, NESTED_VALUE_SELECTED_2), _FORMDATA4);
|
|
337
|
+
var COMPONENT = {
|
|
338
|
+
type: 'checkboxes',
|
|
339
|
+
id: 'a',
|
|
340
|
+
data: {
|
|
341
|
+
options: [{
|
|
342
|
+
id: 'optionIdSelected1',
|
|
343
|
+
value: 'optionValueSelected1',
|
|
344
|
+
nested: [{
|
|
345
|
+
type: 'text',
|
|
346
|
+
fieldId: NESTED_ID_SELECTED_1,
|
|
347
|
+
id: NESTED_ID_SELECTED_1,
|
|
348
|
+
required: true
|
|
349
|
+
}]
|
|
350
|
+
}, {
|
|
351
|
+
id: 'optionIdSelected2',
|
|
352
|
+
value: 'optionValueSelected2',
|
|
353
|
+
nested: [{
|
|
354
|
+
type: 'text',
|
|
355
|
+
fieldId: NESTED_ID_SELECTED_2,
|
|
356
|
+
id: NESTED_ID_SELECTED_2,
|
|
357
|
+
required: true
|
|
358
|
+
}]
|
|
359
|
+
}]
|
|
360
|
+
}
|
|
361
|
+
};
|
|
362
|
+
expect((0, _validateComponent.default)(COMPONENT, undefined, FORMDATA)).toBeUndefined();
|
|
363
|
+
});
|
|
266
364
|
});
|
|
267
365
|
});
|
|
@@ -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")
|