@ukhomeoffice/cop-react-form-renderer 5.90.0 → 5.90.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +15 -15
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +106 -142
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +563 -941
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +76 -66
- package/dist/components/CollectionPage/CollectionPage.test.js +318 -369
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +15 -15
- package/dist/components/CollectionSummary/BannerStrip.test.js +83 -79
- package/dist/components/CollectionSummary/CollectionSummary.js +109 -131
- package/dist/components/CollectionSummary/CollectionSummary.test.js +198 -180
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +47 -55
- package/dist/components/CollectionSummary/RenderListView.test.js +82 -81
- package/dist/components/CollectionSummary/SummaryCard.js +121 -157
- package/dist/components/CollectionSummary/SummaryCard.test.js +970 -1000
- package/dist/components/CollectionSummary/SummaryCardDetails.js +103 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +187 -195
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +64 -76
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +81 -117
- package/dist/components/FormComponent/Collection.test.js +910 -1082
- package/dist/components/FormComponent/Container.js +43 -38
- package/dist/components/FormComponent/Container.test.js +379 -411
- package/dist/components/FormComponent/FormComponent.js +71 -74
- 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 +71 -87
- package/dist/components/FormPage/FormPage.test.js +133 -170
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +153 -198
- package/dist/components/FormRenderer/FormRenderer.test.js +731 -1116
- 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 +27 -30
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -7
- 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 +18 -32
- 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 +8 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +65 -64
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +61 -54
- package/dist/components/FormRenderer/onCYAAction.test.js +165 -153
- package/dist/components/FormRenderer/onPageAction.js +45 -41
- package/dist/components/FormRenderer/onPageAction.test.js +225 -210
- package/dist/components/FormRenderer/onTaskAction.js +11 -15
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +13 -16
- 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 +13 -21
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +23 -28
- package/dist/components/SummaryList/SummaryList.test.js +179 -206
- package/dist/components/SummaryList/SummaryListHeadingRow.js +8 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +8 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +7 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +4 -6
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
- 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 +53 -84
- package/dist/components/TaskList/TaskList.test.js +150 -150
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +58 -81
- 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 +58 -70
- 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 +28 -41
- 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 +31 -32
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +17 -27
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +34 -36
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +20 -34
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +43 -45
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -25
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +39 -45
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +100 -105
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +218 -182
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +26 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +15 -21
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +13 -13
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +14 -19
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +6 -6
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -3
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +21 -22
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +15 -24
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +52 -43
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +3 -3
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -12
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -13
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +25 -26
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -32
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +18 -22
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +37 -42
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -22
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +13 -19
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +26 -26
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +19 -20
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -7
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +90 -97
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +50 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +30 -40
- 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 +22 -27
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
- 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 +155 -175
- 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 +34 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +23 -32
- 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 +24 -24
- 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 +29 -31
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +3 -4
- 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 +20 -31
- 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 +14 -19
- 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 +16 -22
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +40 -50
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +20 -29
- package/dist/utils/Data/getAutocompleteSource.test.js +81 -87
- package/dist/utils/Data/getDataPath.js +20 -30
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +27 -34
- package/dist/utils/Data/getOptions.test.js +28 -28
- 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 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +11 -15
- 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 +14 -22
- package/dist/utils/Data/setupFormData.test.js +52 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +21 -28
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +6 -10
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +35 -35
- package/dist/utils/FormPage/getFormPage.js +16 -17
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +8 -13
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +10 -17
- 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 +3 -3
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +78 -80
- 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 +6 -8
- 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 +29 -32
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -4
- 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 +15 -17
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +4 -4
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +3 -3
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +8 -8
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +12 -12
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +11 -11
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +6 -6
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +9 -9
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +5 -5
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +8 -8
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- 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 -5
- 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 +9 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +38 -42
- 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 +4 -4
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
- 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 +36 -40
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +3 -5
- 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 +3 -5
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +11 -24
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +21 -27
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +22 -23
- package/dist/utils/Validate/validateComponent.test.js +188 -165
- package/dist/utils/Validate/validateContainer.js +16 -21
- package/dist/utils/Validate/validateContainer.test.js +62 -56
- package/dist/utils/Validate/validateDate.js +17 -23
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -24
- package/dist/utils/Validate/validatePage.test.js +227 -215
- package/dist/utils/Validate/validateRegex.js +5 -8
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +5 -7
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +5 -7
- 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 +8 -10
- package/package.json +3 -2
|
@@ -2,36 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
var _constants = require("../constants");
|
|
4
4
|
var _getDocuments = _interopRequireDefault(require("./getDocuments"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
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); }
|
|
10
|
-
describe('Utils.Meta.documents.get', function () {
|
|
11
|
-
it('should return an empty array if formData is null', function () {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
describe('Utils.Meta.documents.get', () => {
|
|
7
|
+
it('should return an empty array if formData is null', () => {
|
|
12
8
|
expect((0, _getDocuments.default)(null)).toEqual([]);
|
|
13
9
|
});
|
|
14
|
-
it('should return an empty array if formData does not contain a meta property',
|
|
10
|
+
it('should return an empty array if formData does not contain a meta property', () => {
|
|
15
11
|
expect((0, _getDocuments.default)({})).toEqual([]);
|
|
16
12
|
});
|
|
17
|
-
it('should return an empty array if the meta property is undefined',
|
|
18
|
-
|
|
13
|
+
it('should return an empty array if the meta property is undefined', () => {
|
|
14
|
+
const FORM_DATA = {
|
|
15
|
+
[_constants.META_PROPERTY]: undefined
|
|
16
|
+
};
|
|
19
17
|
expect((0, _getDocuments.default)(FORM_DATA)).toEqual([]);
|
|
20
18
|
});
|
|
21
|
-
it('should return an empty array if the meta property contains no documents property',
|
|
22
|
-
|
|
19
|
+
it('should return an empty array if the meta property contains no documents property', () => {
|
|
20
|
+
const FORM_DATA = {
|
|
21
|
+
[_constants.META_PROPERTY]: {}
|
|
22
|
+
};
|
|
23
23
|
expect((0, _getDocuments.default)(FORM_DATA)).toEqual([]);
|
|
24
24
|
});
|
|
25
|
-
it('should return an empty array if the meta.documents property is undefined',
|
|
26
|
-
|
|
25
|
+
it('should return an empty array if the meta.documents property is undefined', () => {
|
|
26
|
+
const FORM_DATA = {
|
|
27
|
+
[_constants.META_PROPERTY]: {
|
|
28
|
+
[_constants.META_DOCUMENTS_PROPERTY]: undefined
|
|
29
|
+
}
|
|
30
|
+
};
|
|
27
31
|
expect((0, _getDocuments.default)(FORM_DATA)).toEqual([]);
|
|
28
32
|
});
|
|
29
|
-
it('should return the meta.documents property if it exists',
|
|
30
|
-
|
|
33
|
+
it('should return the meta.documents property if it exists', () => {
|
|
34
|
+
const DOCUMENTS = [{
|
|
31
35
|
field: 'alpha',
|
|
32
36
|
url: 'http://alpha-bravo.com/files/charlie'
|
|
33
37
|
}];
|
|
34
|
-
|
|
38
|
+
const FORM_DATA = {
|
|
39
|
+
[_constants.META_PROPERTY]: {
|
|
40
|
+
[_constants.META_DOCUMENTS_PROPERTY]: DOCUMENTS
|
|
41
|
+
}
|
|
42
|
+
};
|
|
35
43
|
expect((0, _getDocuments.default)(FORM_DATA)).toEqual(DOCUMENTS);
|
|
36
44
|
});
|
|
37
45
|
});
|
|
@@ -7,10 +7,10 @@ exports.default = void 0;
|
|
|
7
7
|
var _constants = require("../constants");
|
|
8
8
|
var _setDocumentsForField = _interopRequireDefault(require("./setDocumentsForField"));
|
|
9
9
|
var _getDocuments = _interopRequireDefault(require("./getDocuments"));
|
|
10
|
-
function _interopRequireDefault(
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
// Local imports
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const documents = {
|
|
14
14
|
setForField: _setDocumentsForField.default,
|
|
15
15
|
get: _getDocuments.default,
|
|
16
16
|
name: _constants.META_DOCUMENTS_PROPERTY
|
|
@@ -6,25 +6,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _constants = require("../constants");
|
|
8
8
|
var _getDocuments = _interopRequireDefault(require("./getDocuments"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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); } // Local imports
|
|
16
|
-
var setDocumentsForField = function setDocumentsForField(documents, formData, field, allowMultiple) {
|
|
17
|
-
var changedDocuments = allowMultiple ? (0, _getDocuments.default)(formData) : (0, _getDocuments.default)(formData).filter(function (d) {
|
|
18
|
-
return d.field !== field;
|
|
19
|
-
});
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
// Local imports
|
|
11
|
+
|
|
12
|
+
const setDocumentsForField = (documents, formData, field, allowMultiple) => {
|
|
13
|
+
const changedDocuments = allowMultiple ? (0, _getDocuments.default)(formData) : (0, _getDocuments.default)(formData).filter(d => d.field !== field);
|
|
20
14
|
if (Array.isArray(documents)) {
|
|
21
|
-
documents.forEach(
|
|
22
|
-
changedDocuments.push(
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
documents.forEach(document => {
|
|
16
|
+
changedDocuments.push({
|
|
17
|
+
...document,
|
|
18
|
+
field
|
|
19
|
+
});
|
|
25
20
|
});
|
|
26
21
|
}
|
|
27
|
-
|
|
28
|
-
return
|
|
22
|
+
const existing = formData ? formData[_constants.META_PROPERTY] : undefined;
|
|
23
|
+
return {
|
|
24
|
+
...existing,
|
|
25
|
+
[_constants.META_DOCUMENTS_PROPERTY]: changedDocuments
|
|
26
|
+
};
|
|
29
27
|
};
|
|
30
28
|
var _default = exports.default = setDocumentsForField;
|
|
@@ -2,58 +2,92 @@
|
|
|
2
2
|
|
|
3
3
|
var _constants = require("../constants");
|
|
4
4
|
var _setDocumentsForField = _interopRequireDefault(require("./setDocumentsForField"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
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; }
|
|
9
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
12
|
-
describe('Utils.Meta.documents.add', function () {
|
|
13
|
-
var ALPHA_DOCUMENT = {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
describe('Utils.Meta.documents.add', () => {
|
|
7
|
+
const ALPHA_DOCUMENT = {
|
|
14
8
|
field: 'alpha',
|
|
15
9
|
url: 'http://alpha-bravo.com/files/alpha'
|
|
16
10
|
};
|
|
17
|
-
|
|
11
|
+
const BRAVO_DOCUMENT = {
|
|
18
12
|
field: 'bravo',
|
|
19
13
|
url: 'http://alpha-bravo.com/files/bravo'
|
|
20
14
|
};
|
|
21
|
-
it('should return an appropriately set up object if formData is null',
|
|
22
|
-
expect((0, _setDocumentsForField.default)([ALPHA_DOCUMENT], null, ALPHA_DOCUMENT.field)).toEqual(
|
|
15
|
+
it('should return an appropriately set up object if formData is null', () => {
|
|
16
|
+
expect((0, _setDocumentsForField.default)([ALPHA_DOCUMENT], null, ALPHA_DOCUMENT.field)).toEqual({
|
|
17
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
18
|
+
});
|
|
23
19
|
});
|
|
24
|
-
it('should add a new document to the array',
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
it('should add a new document to the array', () => {
|
|
21
|
+
const FORM_DATA = {
|
|
22
|
+
[_constants.META_PROPERTY]: {
|
|
23
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
expect((0, _setDocumentsForField.default)([BRAVO_DOCUMENT], FORM_DATA, BRAVO_DOCUMENT.field)).toEqual({
|
|
27
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT, BRAVO_DOCUMENT]
|
|
28
|
+
});
|
|
27
29
|
});
|
|
28
|
-
it('should add multiple new documents to the array',
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
it('should add multiple new documents to the array', () => {
|
|
31
|
+
const FORM_DATA = {
|
|
32
|
+
[_constants.META_PROPERTY]: {
|
|
33
|
+
[_constants.META_DOCUMENTS_PROPERTY]: []
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const SECOND_DOCUMENT = {
|
|
37
|
+
...ALPHA_DOCUMENT
|
|
38
|
+
};
|
|
39
|
+
expect((0, _setDocumentsForField.default)([ALPHA_DOCUMENT, SECOND_DOCUMENT], FORM_DATA, ALPHA_DOCUMENT.field)).toEqual({
|
|
40
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT, SECOND_DOCUMENT]
|
|
41
|
+
});
|
|
32
42
|
});
|
|
33
|
-
it('should replace an existing document with the same field',
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
it('should replace an existing document with the same field', () => {
|
|
44
|
+
const NEW_URL = 'http://replacement.com/files/alpha';
|
|
45
|
+
const NEW_ALPHA = {
|
|
36
46
|
field: ALPHA_DOCUMENT.field,
|
|
37
47
|
url: NEW_URL
|
|
38
48
|
};
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
const FORM_DATA = {
|
|
50
|
+
[_constants.META_PROPERTY]: {
|
|
51
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
expect((0, _setDocumentsForField.default)([NEW_ALPHA], FORM_DATA, NEW_ALPHA.field)).toEqual({
|
|
55
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [NEW_ALPHA]
|
|
56
|
+
});
|
|
41
57
|
});
|
|
42
|
-
it('should add a document with the same field if allowMultiple is true',
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
it('should add a document with the same field if allowMultiple is true', () => {
|
|
59
|
+
const NEW_URL = 'http://replacement.com/files/alpha';
|
|
60
|
+
const NEW_ALPHA = {
|
|
45
61
|
field: ALPHA_DOCUMENT.field,
|
|
46
62
|
url: NEW_URL
|
|
47
63
|
};
|
|
48
|
-
|
|
49
|
-
|
|
64
|
+
const FORM_DATA = {
|
|
65
|
+
[_constants.META_PROPERTY]: {
|
|
66
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
expect((0, _setDocumentsForField.default)([NEW_ALPHA], FORM_DATA, NEW_ALPHA.field, true)).toEqual({
|
|
70
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT, NEW_ALPHA]
|
|
71
|
+
});
|
|
50
72
|
});
|
|
51
|
-
it('should handle a null document being passed where a document with that field already exists',
|
|
52
|
-
|
|
53
|
-
|
|
73
|
+
it('should handle a null document being passed where a document with that field already exists', () => {
|
|
74
|
+
const FORM_DATA = {
|
|
75
|
+
[_constants.META_PROPERTY]: {
|
|
76
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
expect((0, _setDocumentsForField.default)(null, FORM_DATA, ALPHA_DOCUMENT.field)).toEqual({
|
|
80
|
+
[_constants.META_DOCUMENTS_PROPERTY]: []
|
|
81
|
+
});
|
|
54
82
|
});
|
|
55
|
-
it('should handle a null document being passed where a document with that field does not already exist',
|
|
56
|
-
|
|
57
|
-
|
|
83
|
+
it('should handle a null document being passed where a document with that field does not already exist', () => {
|
|
84
|
+
const FORM_DATA = {
|
|
85
|
+
[_constants.META_PROPERTY]: {
|
|
86
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
expect((0, _setDocumentsForField.default)(null, FORM_DATA, BRAVO_DOCUMENT.field)).toEqual({
|
|
90
|
+
[_constants.META_DOCUMENTS_PROPERTY]: [ALPHA_DOCUMENT]
|
|
91
|
+
});
|
|
58
92
|
});
|
|
59
93
|
});
|
package/dist/utils/Meta/index.js
CHANGED
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _constants = require("./constants");
|
|
8
8
|
var _documents = _interopRequireDefault(require("./documents"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Local imports
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
const Meta = {
|
|
13
13
|
documents: _documents.default,
|
|
14
14
|
name: _constants.META_PROPERTY
|
|
15
15
|
};
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Global imports.
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
@@ -18,9 +18,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} data The page's formData.
|
|
19
19
|
* @returns true if the value is truthy, false if it isn't or doesn't exist.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
if (config
|
|
23
|
-
|
|
21
|
+
const checkValueIsTruthy = (config, data) => {
|
|
22
|
+
if (config?.field) {
|
|
23
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
|
|
24
24
|
return !!(0, _getSourceData.default)(data, fieldPath);
|
|
25
25
|
}
|
|
26
26
|
return false;
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('Utils.Operate.checkValueIsTruthy',
|
|
6
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('Utils.Operate.checkValueIsTruthy', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
alpha: 'abc',
|
|
8
8
|
bravo: ''
|
|
9
9
|
};
|
|
10
|
-
it('Should return true is the value of the field is truthy',
|
|
11
|
-
|
|
10
|
+
it('Should return true is the value of the field is truthy', () => {
|
|
11
|
+
const CONFIG = {
|
|
12
12
|
field: 'alpha'
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
15
15
|
expect(result).toEqual(true);
|
|
16
16
|
});
|
|
17
|
-
it('Should return false if the value of the field is falsy',
|
|
18
|
-
|
|
17
|
+
it('Should return false if the value of the field is falsy', () => {
|
|
18
|
+
const CONFIG = {
|
|
19
19
|
field: 'bravo'
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
22
22
|
expect(result).toEqual(false);
|
|
23
23
|
});
|
|
24
|
-
it('Should return false if the field does not exist',
|
|
25
|
-
|
|
24
|
+
it('Should return false if the field does not exist', () => {
|
|
25
|
+
const CONFIG = {
|
|
26
26
|
field: 'charlie'
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
29
29
|
expect(result).toEqual(false);
|
|
30
30
|
});
|
|
31
|
-
it('Should return false when an invalid config is used',
|
|
32
|
-
|
|
31
|
+
it('Should return false when an invalid config is used', () => {
|
|
32
|
+
const result = (0, _checkValueIsTruthy.default)(null, DATA);
|
|
33
33
|
expect(result).toEqual(false);
|
|
34
34
|
});
|
|
35
|
-
it('Should return false when invalid data is used',
|
|
36
|
-
|
|
35
|
+
it('Should return false when invalid data is used', () => {
|
|
36
|
+
const CONFIG = {
|
|
37
37
|
field: 'alpha'
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, null);
|
|
40
40
|
expect(result).toEqual(false);
|
|
41
41
|
});
|
|
42
42
|
});
|
|
@@ -10,9 +10,9 @@ exports.default = void 0;
|
|
|
10
10
|
* @param {object} data The page's formData.
|
|
11
11
|
* @param {function} onChange The page's onChange handler.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (config
|
|
13
|
+
const deleteValueInFormData = (config, data, onChange) => {
|
|
14
|
+
const node = data;
|
|
15
|
+
if (config?.field && config?.component) {
|
|
16
16
|
delete node[config.field];
|
|
17
17
|
onChange({
|
|
18
18
|
target: {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _deleteValueInFormData = _interopRequireDefault(require("./deleteValueInFormData"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('Utils.Operate.deleteValueInFormData',
|
|
6
|
-
|
|
7
|
-
it('Should delete value from data',
|
|
8
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('Utils.Operate.deleteValueInFormData', () => {
|
|
6
|
+
const ON_CHANGE = () => {};
|
|
7
|
+
it('Should delete value from data', () => {
|
|
8
|
+
const CONFIG = {
|
|
9
9
|
field: 'a',
|
|
10
10
|
component: 'A'
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
const DATA = {
|
|
13
13
|
a: '1',
|
|
14
14
|
b: '2'
|
|
15
15
|
};
|
|
@@ -18,12 +18,12 @@ describe('Utils.Operate.deleteValueInFormData', function () {
|
|
|
18
18
|
b: '2'
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
|
-
it('Should do nothing if value is absent',
|
|
22
|
-
|
|
21
|
+
it('Should do nothing if value is absent', () => {
|
|
22
|
+
const CONFIG = {
|
|
23
23
|
field: 'c',
|
|
24
24
|
component: 'C'
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
const DATA = {
|
|
27
27
|
a: '1',
|
|
28
28
|
b: '2'
|
|
29
29
|
};
|
|
@@ -33,9 +33,9 @@ describe('Utils.Operate.deleteValueInFormData', function () {
|
|
|
33
33
|
b: '2'
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
|
-
it('Should do nothing if config is null',
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
it('Should do nothing if config is null', () => {
|
|
37
|
+
const CONFIG = null;
|
|
38
|
+
const DATA = {
|
|
39
39
|
a: '1',
|
|
40
40
|
b: '2'
|
|
41
41
|
};
|
|
@@ -45,9 +45,9 @@ describe('Utils.Operate.deleteValueInFormData', function () {
|
|
|
45
45
|
b: '2'
|
|
46
46
|
});
|
|
47
47
|
});
|
|
48
|
-
it('Should do nothing if config is empty',
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
it('Should do nothing if config is empty', () => {
|
|
49
|
+
const CONFIG = {};
|
|
50
|
+
const DATA = {
|
|
51
51
|
a: '1',
|
|
52
52
|
b: '2'
|
|
53
53
|
};
|
|
@@ -6,17 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Global imports.
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
if (config
|
|
16
|
-
|
|
17
|
-
config.fields.find(
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const getFirstOf = (config, data) => {
|
|
15
|
+
if (config?.fields) {
|
|
16
|
+
let fieldValue;
|
|
17
|
+
config.fields.find(field => {
|
|
18
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(field, data);
|
|
19
|
+
const foundValue = (0, _getSourceData.default)(data, fieldPath);
|
|
20
20
|
if (foundValue) {
|
|
21
21
|
fieldValue = foundValue;
|
|
22
22
|
return true;
|
|
@@ -25,6 +25,6 @@ var getFirstOf = function getFirstOf(config, data) {
|
|
|
25
25
|
});
|
|
26
26
|
return fieldValue || (config.fallback ? _copReactComponents.Utils.interpolateString(config.fallback, data) : '');
|
|
27
27
|
}
|
|
28
|
-
return
|
|
28
|
+
return config?.value || null;
|
|
29
29
|
};
|
|
30
30
|
var _default = exports.default = getFirstOf;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('Utils.Operate.getFirstOf',
|
|
6
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('Utils.Operate.getFirstOf', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
name: 'sam',
|
|
8
8
|
id: 1,
|
|
9
9
|
test: ['2', '3'],
|
|
@@ -12,75 +12,75 @@ describe('Utils.Operate.getFirstOf', function () {
|
|
|
12
12
|
otherIdDoc: '',
|
|
13
13
|
anotherMadeUpId: 789
|
|
14
14
|
};
|
|
15
|
-
it('Should handle interpolated field strings',
|
|
15
|
+
it('Should handle interpolated field strings', () => {
|
|
16
16
|
// eslint-disable-next-line no-template-curly-in-string
|
|
17
|
-
|
|
17
|
+
const CONFIG = {
|
|
18
18
|
fields: ['test[${id}]']
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
21
21
|
expect(result).toEqual(DATA.test[1]);
|
|
22
22
|
});
|
|
23
|
-
it('Should return the value provided in config if no field is specified',
|
|
24
|
-
|
|
23
|
+
it('Should return the value provided in config if no field is specified', () => {
|
|
24
|
+
const CONFIG = {
|
|
25
25
|
value: '2'
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
28
28
|
expect(result).toEqual(CONFIG.value);
|
|
29
29
|
});
|
|
30
|
-
it('Should return the fallback if the requested fields are not found',
|
|
30
|
+
it('Should return the fallback if the requested fields are not found', () => {
|
|
31
31
|
// eslint-disable-next-line no-template-curly-in-string
|
|
32
|
-
|
|
32
|
+
const CONFIG = {
|
|
33
33
|
value: '2',
|
|
34
34
|
fields: ['nonExistent'],
|
|
35
35
|
fallback: "Test ${name}"
|
|
36
36
|
};
|
|
37
|
-
|
|
38
|
-
expect(result).toEqual(
|
|
37
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
38
|
+
expect(result).toEqual(`Test ${DATA.name}`);
|
|
39
39
|
});
|
|
40
|
-
it('Should return the value of the passportNumber field given in config',
|
|
41
|
-
|
|
40
|
+
it('Should return the value of the passportNumber field given in config', () => {
|
|
41
|
+
const CONFIG = {
|
|
42
42
|
fields: ['passportNumber', 'anotherMadeUpId', 'otherIdDoc']
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
45
45
|
expect(result).toEqual(DATA.passportNumber);
|
|
46
46
|
});
|
|
47
|
-
it('Should return the value of the anotherMadeUpId field given in config',
|
|
48
|
-
|
|
47
|
+
it('Should return the value of the anotherMadeUpId field given in config', () => {
|
|
48
|
+
const CONFIG = {
|
|
49
49
|
fields: ['anotherMadeUpId', 'passportNumber', 'otherIdDoc']
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
52
52
|
expect(result).toEqual(DATA.anotherMadeUpId);
|
|
53
53
|
});
|
|
54
|
-
it('Should return the value of the otherIdDoc field given in config',
|
|
55
|
-
|
|
54
|
+
it('Should return the value of the otherIdDoc field given in config', () => {
|
|
55
|
+
const CONFIG = {
|
|
56
56
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
59
59
|
expect(result).toEqual(DATA.passportNumber);
|
|
60
60
|
});
|
|
61
|
-
it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array',
|
|
62
|
-
|
|
61
|
+
it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array', () => {
|
|
62
|
+
const CONFIG = {
|
|
63
63
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
66
66
|
expect(result).toEqual(DATA.passportNumber);
|
|
67
67
|
});
|
|
68
|
-
it('Should return no value if elements in config.fields are not found in data',
|
|
69
|
-
|
|
68
|
+
it('Should return no value if elements in config.fields are not found in data', () => {
|
|
69
|
+
const CONFIG = {
|
|
70
70
|
fields: ['otherIdDoc1', 'passportNumber1', 'anotherMadeUpId1']
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
73
73
|
expect(result).toEqual('');
|
|
74
74
|
});
|
|
75
|
-
it('Should return null when an invalid config is used',
|
|
76
|
-
|
|
75
|
+
it('Should return null when an invalid config is used', () => {
|
|
76
|
+
const result = (0, _getFirstOf.default)(null, DATA);
|
|
77
77
|
expect(result).toEqual(null);
|
|
78
78
|
});
|
|
79
|
-
it('Should return null when invalid data is used',
|
|
80
|
-
|
|
79
|
+
it('Should return null when invalid data is used', () => {
|
|
80
|
+
const CONFIG = {
|
|
81
81
|
field: 'a'
|
|
82
82
|
};
|
|
83
|
-
|
|
83
|
+
const result = (0, _getFirstOf.default)(CONFIG, null);
|
|
84
84
|
expect(result).toEqual(null);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Global imports.
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
if (config
|
|
14
|
+
const getValueOrField = (config, data) => {
|
|
15
|
+
if (config?.value) {
|
|
16
16
|
return config.value;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
const path = _copReactComponents.Utils.interpolateString(config?.field, data);
|
|
19
19
|
return (0, _getSourceData.default)(data, path);
|
|
20
20
|
};
|
|
21
21
|
|
|
@@ -28,18 +28,18 @@ var getValueOrField = function getValueOrField(config, data) {
|
|
|
28
28
|
* @param {object} data A page's formData.
|
|
29
29
|
* @returns The index of the matching value if one exists, or null.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
const getIndexOfMatchingValueIn = (config, data) => {
|
|
32
32
|
if (!config || !data) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
const targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
|
|
36
|
+
const target = (0, _getSourceData.default)(data, targetPath);
|
|
37
|
+
const value = getValueOrField(config, data);
|
|
38
|
+
const cutoff = getValueOrField(config.cutoff, data);
|
|
39
|
+
const ignore = getValueOrField(config.ignore, data);
|
|
40
|
+
let result = null;
|
|
41
41
|
if (target && value && Array.isArray(target)) {
|
|
42
|
-
target.every(
|
|
42
|
+
target.every((entry, index) => {
|
|
43
43
|
if (index === cutoff) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|