@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.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/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -4,15 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.formattedTime = exports.formatString = exports.DATE_FORMAT = void 0;
|
|
7
|
-
|
|
8
|
-
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."); }
|
|
9
|
-
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); }
|
|
10
|
-
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; }
|
|
11
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
-
var isNumeric = function isNumeric(value) {
|
|
14
|
-
return /^-?\d+$/.test(value);
|
|
15
|
-
};
|
|
7
|
+
const isNumeric = value => /^-?\d+$/.test(value);
|
|
16
8
|
|
|
17
9
|
/**
|
|
18
10
|
|
|
@@ -23,25 +15,20 @@ var isNumeric = function isNumeric(value) {
|
|
|
23
15
|
* @param {string} dateComponent - the value representing a day or month.
|
|
24
16
|
* @returns the value (appended with a leading zero, if the value passed in was a single digit)
|
|
25
17
|
*/
|
|
26
|
-
|
|
18
|
+
const formatInTwoDigits = dateComponent => {
|
|
27
19
|
if (isNumeric(dateComponent)) {
|
|
28
20
|
return dateComponent.padStart(2, '0');
|
|
29
21
|
}
|
|
30
22
|
return '';
|
|
31
23
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
_date$split2 = _slicedToArray(_date$split, 3),
|
|
35
|
-
day = _date$split2[0],
|
|
36
|
-
month = _date$split2[1],
|
|
37
|
-
year = _date$split2[2];
|
|
24
|
+
const formatString = date => {
|
|
25
|
+
const [day, month, year] = date.split('-');
|
|
38
26
|
return "".concat(formatInTwoDigits(day), "-").concat(formatInTwoDigits(month), "-").concat(year);
|
|
39
27
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
hour = _time$split2[0],
|
|
44
|
-
minute = _time$split2[1];
|
|
28
|
+
exports.formatString = formatString;
|
|
29
|
+
const formattedTime = time => {
|
|
30
|
+
const [hour, minute] = time.split(':');
|
|
45
31
|
return "".concat(formatInTwoDigits(hour), ":").concat(formatInTwoDigits(minute));
|
|
46
32
|
};
|
|
47
|
-
|
|
33
|
+
exports.formattedTime = formattedTime;
|
|
34
|
+
const DATE_FORMAT = exports.DATE_FORMAT = 'DD-MM-YYYY';
|
|
@@ -14,10 +14,10 @@ var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
|
14
14
|
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
15
15
|
var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
|
|
16
16
|
var _validateTime = _interopRequireDefault(require("./validateTime"));
|
|
17
|
-
function _interopRequireDefault(
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
18
|
// Local imports
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
const Validate = {
|
|
21
21
|
component: _validateComponent.default,
|
|
22
22
|
container: _validateContainer.default,
|
|
23
23
|
email: _validateEmail.default,
|
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _validateContainer = _interopRequireDefault(require("./validateContainer"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
function _defineProperty(
|
|
14
|
-
function _toPropertyKey(
|
|
15
|
-
function _toPrimitive(
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
16
15
|
/**
|
|
17
16
|
* Validates all of the items within a collection.
|
|
18
17
|
* @param {object} collection The collection to validate.
|
|
@@ -20,26 +19,24 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
20
19
|
* @param {object} formData The data at the top level of the form.
|
|
21
20
|
* @returns Errors for all components for all items within the collection.
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const validateCollection = (collection, items, formData) => {
|
|
23
|
+
const errors = [];
|
|
25
24
|
if (collection && Array.isArray(collection.item) && Array.isArray(items)) {
|
|
26
|
-
items.forEach(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
items.forEach((item, index) => {
|
|
26
|
+
const labelCount = (collection.countOffset || 0) + index + 1;
|
|
27
|
+
const fullPath = "".concat(collection.full_path || collection.fieldId, "[").concat(index, "]");
|
|
28
|
+
const container = {
|
|
30
29
|
full_path: fullPath,
|
|
31
|
-
components: collection.item.map(
|
|
32
|
-
|
|
30
|
+
components: collection.item.map(component => {
|
|
31
|
+
const newComponent = _objectSpread(_objectSpread({}, component), {}, {
|
|
33
32
|
full_path: "".concat(fullPath, ".").concat(component.fieldId)
|
|
34
33
|
});
|
|
35
34
|
if (component.custom_errors && Array.isArray(component.custom_errors)) {
|
|
36
|
-
newComponent.custom_errors = component.custom_errors.map(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
-
});
|
|
35
|
+
newComponent.custom_errors = component.custom_errors.map(error => _objectSpread(_objectSpread({}, error), {}, {
|
|
36
|
+
message: _copReactComponents.Utils.interpolateString(index === 0 && error.firstOnlyMessage ? error.firstOnlyMessage : error.message, {
|
|
37
|
+
index: labelCount
|
|
38
|
+
})
|
|
39
|
+
}));
|
|
43
40
|
}
|
|
44
41
|
return newComponent;
|
|
45
42
|
})
|
|
@@ -47,8 +44,6 @@ var validateCollection = function validateCollection(collection, items, formData
|
|
|
47
44
|
errors.push((0, _validateContainer.default)(container, item, formData));
|
|
48
45
|
});
|
|
49
46
|
}
|
|
50
|
-
return errors.filter(
|
|
51
|
-
return !!e;
|
|
52
|
-
}).flat();
|
|
47
|
+
return errors.filter(e => !!e).flat();
|
|
53
48
|
};
|
|
54
49
|
var _default = exports.default = validateCollection;
|
|
@@ -2,120 +2,128 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _validateCollection = _interopRequireDefault(require("./validateCollection"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
item: item
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
it('should return an empty array when the component is null', function () {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
// Local imports
|
|
7
|
+
|
|
8
|
+
describe('utils.Validate.Collection', () => {
|
|
9
|
+
const setup = (id, type, label, required, item) => ({
|
|
10
|
+
id,
|
|
11
|
+
fieldId: id,
|
|
12
|
+
type,
|
|
13
|
+
label,
|
|
14
|
+
required,
|
|
15
|
+
item
|
|
16
|
+
});
|
|
17
|
+
it('should return an empty array when the component is null', () => {
|
|
22
18
|
expect((0, _validateCollection.default)(null, [])).toEqual([]);
|
|
23
19
|
});
|
|
24
|
-
it('should return an empty array when the collection has an undefined item array',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
it('should return an empty array when the collection has an undefined item array', () => {
|
|
21
|
+
const ID = 'collection';
|
|
22
|
+
const LABEL = 'field';
|
|
23
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, undefined);
|
|
28
24
|
expect((0, _validateCollection.default)(COLLECTION, [])).toEqual([]);
|
|
29
25
|
});
|
|
30
|
-
it('should return an empty array when the collection has an empty item array',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
it('should return an empty array when the collection has an empty item array', () => {
|
|
27
|
+
const ID = 'collection';
|
|
28
|
+
const LABEL = 'field';
|
|
29
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, []);
|
|
34
30
|
expect((0, _validateCollection.default)(COLLECTION, [])).toEqual([]);
|
|
35
31
|
});
|
|
36
|
-
it('should return an empty array when the collection has only valid items',
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
it('should return an empty array when the collection has only valid items', () => {
|
|
33
|
+
const EMAIL_ID = 'email';
|
|
34
|
+
const EMAIL_LABEL = 'Email';
|
|
35
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
36
|
+
const ID = 'collection';
|
|
37
|
+
const LABEL = 'field';
|
|
38
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false, [EMAIL]);
|
|
39
|
+
const ITEMS = [{
|
|
40
|
+
[EMAIL_ID]: 'alpha.bravo@homeoffice.gov.uk'
|
|
41
|
+
}, {
|
|
42
|
+
[EMAIL_ID]: 'charlie.delta@homeoffice.gov.uk'
|
|
43
|
+
}];
|
|
44
44
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([]);
|
|
45
45
|
});
|
|
46
|
-
it('should return an array containing an error when the collection has an invalid first item',
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
it('should return an array containing an error when the collection has an invalid first item', () => {
|
|
47
|
+
const EMAIL_ID = 'email';
|
|
48
|
+
const EMAIL_LABEL = 'Email';
|
|
49
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
50
|
+
const ID = 'container';
|
|
51
|
+
const LABEL = 'field';
|
|
52
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [EMAIL]);
|
|
53
|
+
const ITEMS = [{
|
|
54
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.com'
|
|
55
|
+
}, {
|
|
56
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
|
|
57
|
+
}];
|
|
54
58
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([{
|
|
55
59
|
id: "".concat(ID, "[0].").concat(EMAIL_ID),
|
|
56
60
|
error: "Enter ".concat(EMAIL_LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
|
|
57
61
|
}]);
|
|
58
62
|
});
|
|
59
|
-
it('should return an array containing an error when the collection has an invalid second item',
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
it('should return an array containing an error when the collection has an invalid second item', () => {
|
|
64
|
+
const EMAIL_ID = 'email';
|
|
65
|
+
const EMAIL_LABEL = 'Email';
|
|
66
|
+
const EMAIL = setup(EMAIL_ID, _models.ComponentTypes.EMAIL, EMAIL_LABEL, false);
|
|
67
|
+
const ID = 'container';
|
|
68
|
+
const LABEL = 'field';
|
|
69
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [EMAIL]);
|
|
70
|
+
const ITEMS = [{
|
|
71
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.gov.uk'
|
|
72
|
+
}, {
|
|
73
|
+
[EMAIL_ID]: 'alpha.bravo@digital.homeoffice.com'
|
|
74
|
+
}];
|
|
67
75
|
expect((0, _validateCollection.default)(COLLECTION, ITEMS)).toEqual([{
|
|
68
76
|
id: "".concat(ID, "[1].").concat(EMAIL_ID),
|
|
69
77
|
error: "Enter ".concat(EMAIL_LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")
|
|
70
78
|
}]);
|
|
71
79
|
});
|
|
72
|
-
it('should correctly interpolate error messages using collection\'s index',
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
it('should correctly interpolate error messages using collection\'s index', () => {
|
|
81
|
+
const ID = 'container';
|
|
82
|
+
const LABEL = 'field';
|
|
83
|
+
const TYPE = 'autocomplete';
|
|
84
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
77
85
|
ITEM.custom_errors = [{
|
|
78
86
|
"type": "required",
|
|
79
87
|
// eslint-disable-next-line no-template-curly-in-string
|
|
80
88
|
"message": "Test to check that ${index} is 1"
|
|
81
89
|
}];
|
|
82
|
-
|
|
90
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
83
91
|
COLLECTION.countOffset = 0;
|
|
84
92
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
85
93
|
error: "Test to check that 1 is 1",
|
|
86
94
|
id: "".concat(ID, "[0].").concat(COLLECTION.type)
|
|
87
95
|
}]);
|
|
88
96
|
});
|
|
89
|
-
it('should correctly display firstOnlyMessage error message',
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
it('should correctly display firstOnlyMessage error message', () => {
|
|
98
|
+
const ID = 'container';
|
|
99
|
+
const LABEL = 'field';
|
|
100
|
+
const TYPE = 'autocomplete';
|
|
101
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
94
102
|
ITEM.custom_errors = [{
|
|
95
103
|
"type": "required",
|
|
96
104
|
// eslint-disable-next-line no-template-curly-in-string
|
|
97
105
|
"message": "Test to check that ${index} is 1",
|
|
98
106
|
"firstOnlyMessage": "Test for first message"
|
|
99
107
|
}];
|
|
100
|
-
|
|
108
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
101
109
|
COLLECTION.countOffset = 0;
|
|
102
110
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
103
111
|
error: "Test for first message",
|
|
104
112
|
id: "".concat(ID, "[0].").concat(COLLECTION.type)
|
|
105
113
|
}]);
|
|
106
114
|
});
|
|
107
|
-
it('should correctly display message if firstOnlyMessage is undefined',
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
115
|
+
it('should correctly display message if firstOnlyMessage is undefined', () => {
|
|
116
|
+
const ID = 'container';
|
|
117
|
+
const LABEL = 'field';
|
|
118
|
+
const TYPE = 'autocomplete';
|
|
119
|
+
const ITEM = setup(ID, TYPE, LABEL, true, []);
|
|
112
120
|
ITEM.custom_errors = [{
|
|
113
121
|
"type": "required",
|
|
114
122
|
// eslint-disable-next-line no-template-curly-in-string
|
|
115
123
|
"message": "Test to check that ${index} is 1",
|
|
116
124
|
"firstOnlyMessage": undefined
|
|
117
125
|
}];
|
|
118
|
-
|
|
126
|
+
const COLLECTION = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false, [ITEM]);
|
|
119
127
|
COLLECTION.countOffset = 0;
|
|
120
128
|
expect((0, _validateCollection.default)(COLLECTION, ITEM.custom_errors)).toEqual([{
|
|
121
129
|
error: "Test to check that 1 is 1",
|
|
@@ -18,13 +18,12 @@ var _validateRegex = _interopRequireDefault(require("./validateRegex"));
|
|
|
18
18
|
var _validateRequired = _interopRequireDefault(require("./validateRequired"));
|
|
19
19
|
var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
|
|
20
20
|
var _validateTime = _interopRequireDefault(require("./validateTime"));
|
|
21
|
-
function _interopRequireDefault(
|
|
22
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
23
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
25
|
-
function _defineProperty(
|
|
26
|
-
function _toPropertyKey(
|
|
27
|
-
function _toPrimitive(
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
28
27
|
/**
|
|
29
28
|
* Validates a single component.
|
|
30
29
|
* @param {object} component The component to validate.
|
|
@@ -32,18 +31,18 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
32
31
|
* @param {object} formData The data at the top level of the form.
|
|
33
32
|
* @returns The first encountered error with the component.
|
|
34
33
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
const validateComponent = (component, outerData, formData) => {
|
|
35
|
+
const fd = formData || outerData;
|
|
37
36
|
if (!(0, _showComponent.default)(component, _objectSpread(_objectSpread({}, fd), outerData))) {
|
|
38
37
|
return undefined;
|
|
39
38
|
}
|
|
40
39
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
41
40
|
return (0, _validateContainer.default)(component, outerData, fd);
|
|
42
41
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
let error;
|
|
43
|
+
let properties;
|
|
44
|
+
const data = outerData && typeof outerData === 'object' ? outerData : {};
|
|
45
|
+
let value = data[component.fieldId];
|
|
47
46
|
if (component.type === _models.ComponentTypes.COLLECTION_SUMMARY) {
|
|
48
47
|
value = (0, _getCollectionPageData.default)(component.collectionName, fd);
|
|
49
48
|
}
|
|
@@ -60,10 +59,11 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
60
59
|
case _models.ComponentTypes.DATE:
|
|
61
60
|
case _models.ComponentTypes.TIME:
|
|
62
61
|
{
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
message
|
|
66
|
-
propsInError
|
|
62
|
+
const validator = component.type === _models.ComponentTypes.DATE ? _validateDate.default : _validateTime.default;
|
|
63
|
+
const {
|
|
64
|
+
message,
|
|
65
|
+
propsInError
|
|
66
|
+
} = validator(value);
|
|
67
67
|
properties = propsInError;
|
|
68
68
|
error = message;
|
|
69
69
|
break;
|
|
@@ -73,8 +73,8 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
73
73
|
case _models.ComponentTypes.RADIOS:
|
|
74
74
|
{
|
|
75
75
|
var _component$data$optio;
|
|
76
|
-
|
|
77
|
-
(_component$data$optio = component.data.options) === null || _component$data$optio === void 0 || _component$data$optio.forEach(
|
|
76
|
+
let nestedErrors = [];
|
|
77
|
+
(_component$data$optio = component.data.options) === null || _component$data$optio === void 0 || _component$data$optio.forEach(option => {
|
|
78
78
|
if (option.nested && (0, _optionIsSelected.default)(formData[component.id], option)) {
|
|
79
79
|
nestedErrors = nestedErrors.concat((0, _validateContainer.default)({
|
|
80
80
|
components: option.nested
|
|
@@ -113,8 +113,8 @@ var validateComponent = function validateComponent(component, outerData, formDat
|
|
|
113
113
|
if (error) {
|
|
114
114
|
return {
|
|
115
115
|
id: component.full_path || component.id,
|
|
116
|
-
error
|
|
117
|
-
properties
|
|
116
|
+
error,
|
|
117
|
+
properties
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
return undefined;
|