@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.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 +22 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
- package/dist/components/CollectionPage/CollectionPage.js +63 -73
- package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
- package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
- package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +52 -46
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +152 -110
- package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
- package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
- package/dist/components/FormComponent/Collection.js +108 -74
- package/dist/components/FormComponent/Collection.test.js +1081 -909
- package/dist/components/FormComponent/Container.js +39 -40
- package/dist/components/FormComponent/Container.test.js +412 -312
- package/dist/components/FormComponent/FormComponent.js +72 -69
- package/dist/components/FormComponent/FormComponent.test.js +414 -353
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +80 -65
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +180 -143
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- 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 +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +39 -43
- package/dist/components/FormRenderer/onPageAction.test.js +208 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +34 -21
- package/dist/components/SummaryList/SummaryList.scss +15 -0
- package/dist/components/SummaryList/SummaryList.test.js +226 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +92 -49
- package/dist/components/TaskList/TaskList.scss +24 -0
- package/dist/components/TaskList/TaskList.test.js +255 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +80 -57
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +94 -43
- package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- 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 +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
- package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
- package/dist/utils/Component/getComponent.js +94 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +6 -1
- package/dist/utils/Component/optionIsSelected.test.js +35 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +25 -16
- package/dist/utils/Condition/meetsCondition.test.js +402 -402
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +30 -24
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +4 -2
- package/dist/utils/FormPage/showFormPage.js +7 -3
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -77
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +16 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- package/dist/utils/Hub/index.js +1 -1
- 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 +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
- package/dist/utils/Operate/getLength.js +50 -0
- package/dist/utils/Operate/getLength.test.js +89 -0
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
- package/dist/utils/Operate/runPageOperations.js +9 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +27 -21
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +21 -18
- package/dist/utils/Validate/validateComponent.test.js +176 -166
- package/dist/utils/Validate/validateContainer.js +20 -15
- package/dist/utils/Validate/validateContainer.test.js +52 -58
- package/dist/utils/Validate/validateDate.js +21 -15
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +22 -19
- package/dist/utils/Validate/validatePage.test.js +203 -215
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +26 -11
- package/dist/utils/Validate/validateTime.test.js +62 -16
- package/dist/utils/index.js +9 -7
- package/package.json +2 -2
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
|
@@ -2,41 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.checkValueIsTruthy', ()
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.checkValueIsTruthy', function () {
|
|
6
|
+
var 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', function () {
|
|
11
|
+
var CONFIG = {
|
|
12
12
|
field: 'alpha'
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
var 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', function () {
|
|
18
|
+
var CONFIG = {
|
|
19
19
|
field: 'bravo'
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
var 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', function () {
|
|
25
|
+
var CONFIG = {
|
|
26
26
|
field: 'charlie'
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
var 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', function () {
|
|
32
|
+
var 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', function () {
|
|
36
|
+
var CONFIG = {
|
|
37
37
|
field: 'alpha'
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
var result = (0, _checkValueIsTruthy.default)(CONFIG, null);
|
|
40
40
|
expect(result).toEqual(false);
|
|
41
41
|
});
|
|
42
42
|
});
|
|
@@ -11,12 +11,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var getFirstOf = function getFirstOf(config, data) {
|
|
15
15
|
if (config !== null && config !== void 0 && config.fields) {
|
|
16
|
-
|
|
17
|
-
config.fields.find(field
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
var fieldValue;
|
|
17
|
+
config.fields.find(function (field) {
|
|
18
|
+
var fieldPath = _copReactComponents.Utils.interpolateString(field, data);
|
|
19
|
+
var foundValue = (0, _getSourceData.default)(data, fieldPath);
|
|
20
20
|
if (foundValue) {
|
|
21
21
|
fieldValue = foundValue;
|
|
22
22
|
return true;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.getFirstOf', ()
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.getFirstOf', function () {
|
|
6
|
+
var DATA = {
|
|
7
7
|
name: 'sam',
|
|
8
8
|
id: 1,
|
|
9
9
|
test: ['2', '3'],
|
|
@@ -12,75 +12,75 @@ describe('Utils.Operate.getFirstOf', () => {
|
|
|
12
12
|
otherIdDoc: '',
|
|
13
13
|
anotherMadeUpId: 789
|
|
14
14
|
};
|
|
15
|
-
it('Should handle interpolated field strings', ()
|
|
15
|
+
it('Should handle interpolated field strings', function () {
|
|
16
16
|
// eslint-disable-next-line no-template-curly-in-string
|
|
17
|
-
|
|
17
|
+
var CONFIG = {
|
|
18
18
|
fields: ['test[${id}]']
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
var 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', function () {
|
|
24
|
+
var CONFIG = {
|
|
25
25
|
value: '2'
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
var 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', function () {
|
|
31
31
|
// eslint-disable-next-line no-template-curly-in-string
|
|
32
|
-
|
|
32
|
+
var CONFIG = {
|
|
33
33
|
value: '2',
|
|
34
34
|
fields: ['nonExistent'],
|
|
35
35
|
fallback: "Test ${name}"
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
var result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
38
38
|
expect(result).toEqual("Test ".concat(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', function () {
|
|
41
|
+
var CONFIG = {
|
|
42
42
|
fields: ['passportNumber', 'anotherMadeUpId', 'otherIdDoc']
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
var 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', function () {
|
|
48
|
+
var CONFIG = {
|
|
49
49
|
fields: ['anotherMadeUpId', 'passportNumber', 'otherIdDoc']
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
var 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', function () {
|
|
55
|
+
var CONFIG = {
|
|
56
56
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
var 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', function () {
|
|
62
|
+
var CONFIG = {
|
|
63
63
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
var 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', function () {
|
|
69
|
+
var CONFIG = {
|
|
70
70
|
fields: ['otherIdDoc1', 'passportNumber1', 'anotherMadeUpId1']
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
var 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', function () {
|
|
76
|
+
var 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', function () {
|
|
80
|
+
var CONFIG = {
|
|
81
81
|
field: 'a'
|
|
82
82
|
};
|
|
83
|
-
|
|
83
|
+
var result = (0, _getFirstOf.default)(CONFIG, null);
|
|
84
84
|
expect(result).toEqual(null);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
@@ -11,11 +11,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var getValueOrField = function getValueOrField(config, data) {
|
|
15
15
|
if (config !== null && config !== void 0 && config.value) {
|
|
16
16
|
return config.value;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
var path = _copReactComponents.Utils.interpolateString(config === null || config === void 0 ? void 0 : config.field, data);
|
|
19
19
|
return (0, _getSourceData.default)(data, path);
|
|
20
20
|
};
|
|
21
21
|
|
|
@@ -28,18 +28,18 @@ const 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
|
+
var getIndexOfMatchingValueIn = function getIndexOfMatchingValueIn(config, data) {
|
|
32
32
|
if (!config || !data) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
var targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
|
|
36
|
+
var target = (0, _getSourceData.default)(data, targetPath);
|
|
37
|
+
var value = getValueOrField(config, data);
|
|
38
|
+
var cutoff = getValueOrField(config.cutoff, data);
|
|
39
|
+
var ignore = getValueOrField(config.ignore, data);
|
|
40
|
+
var result = null;
|
|
41
41
|
if (target && value && Array.isArray(target)) {
|
|
42
|
-
target.every((entry, index)
|
|
42
|
+
target.every(function (entry, index) {
|
|
43
43
|
if (index === cutoff) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _getIndexOfMatchingValueIn = _interopRequireDefault(require("./getIndexOfMatchingValueIn"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.getIndexOfPriorMatchingValueIn', ()
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
|
|
6
|
+
var DATA = {
|
|
7
7
|
arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
|
|
8
8
|
root: {
|
|
9
9
|
branch: 'leaf'
|
|
@@ -17,141 +17,147 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', () => {
|
|
|
17
17
|
cutoffName: 'cutoffIndex',
|
|
18
18
|
ignoreName: 'ignoreIndex'
|
|
19
19
|
};
|
|
20
|
-
it('Should return the index of a matching value if one exists', ()
|
|
21
|
-
|
|
20
|
+
it('Should return the index of a matching value if one exists', function () {
|
|
21
|
+
var CONFIG = {
|
|
22
22
|
target: 'arrayOfValues',
|
|
23
23
|
value: 'cde'
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
26
26
|
expect(result).toEqual('2');
|
|
27
27
|
});
|
|
28
|
-
it('Should handle getting value from given field', ()
|
|
29
|
-
|
|
28
|
+
it('Should handle getting value from given field', function () {
|
|
29
|
+
var CONFIG = {
|
|
30
30
|
target: 'arrayOfValues',
|
|
31
31
|
field: 'valueToSearchFor'
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
34
34
|
expect(result).toEqual('2');
|
|
35
35
|
});
|
|
36
|
-
it('Should handle interpolated string for field', ()
|
|
36
|
+
it('Should handle interpolated string for field', function () {
|
|
37
37
|
// eslint-disable-next-line no-template-curly-in-string
|
|
38
|
-
|
|
38
|
+
var CONFIG = {
|
|
39
39
|
target: 'arrayOfValues',
|
|
40
40
|
field: '${fieldName}'
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
43
43
|
expect(result).toEqual('2');
|
|
44
44
|
});
|
|
45
|
-
it('Should handle interpolated string for key', ()
|
|
45
|
+
it('Should handle interpolated string for key', function () {
|
|
46
46
|
// eslint-disable-next-line no-template-curly-in-string
|
|
47
|
-
|
|
47
|
+
var CONFIG = {
|
|
48
48
|
target: 'arrayOfValues',
|
|
49
49
|
key: 'root.branch',
|
|
50
50
|
value: 'leaf'
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
53
53
|
expect(result).toEqual('4');
|
|
54
54
|
});
|
|
55
|
-
it('Should handle a cutoff value being specified', ()
|
|
56
|
-
|
|
55
|
+
it('Should handle a cutoff value being specified', function () {
|
|
56
|
+
var CONFIG = {
|
|
57
57
|
target: 'arrayOfValues',
|
|
58
58
|
value: 'cde',
|
|
59
59
|
cutoff: {
|
|
60
60
|
value: 1
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
64
64
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
65
65
|
});
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
|
|
67
|
+
it('Should handle a cutoff field being specified', function () {
|
|
68
|
+
var CONFIG = {
|
|
68
69
|
target: 'arrayOfValues',
|
|
69
70
|
value: 'cde',
|
|
70
71
|
cutoff: {
|
|
71
72
|
field: 'cutoffIndex'
|
|
72
73
|
}
|
|
73
74
|
};
|
|
74
|
-
|
|
75
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
75
76
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
76
77
|
});
|
|
77
|
-
|
|
78
|
+
|
|
79
|
+
it('Should handle interpolated string for cutoff.field', function () {
|
|
78
80
|
// eslint-disable-next-line no-template-curly-in-string
|
|
79
|
-
|
|
81
|
+
var CONFIG = {
|
|
80
82
|
target: 'arrayOfValues',
|
|
81
83
|
value: 'cde',
|
|
82
84
|
cutoff: {
|
|
83
85
|
field: '${cutoffName}'
|
|
84
86
|
}
|
|
85
87
|
};
|
|
86
|
-
|
|
88
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
87
89
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
88
90
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
|
|
92
|
+
it('Should handle an ignore value being specified', function () {
|
|
93
|
+
var CONFIG = {
|
|
91
94
|
target: 'arrayOfValues',
|
|
92
95
|
value: 'cde',
|
|
93
96
|
ignore: {
|
|
94
97
|
value: 2
|
|
95
98
|
}
|
|
96
99
|
};
|
|
97
|
-
|
|
100
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
98
101
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
99
102
|
});
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
|
|
104
|
+
it('Should handle an ignore field being specified', function () {
|
|
105
|
+
var CONFIG = {
|
|
102
106
|
target: 'arrayOfValues',
|
|
103
107
|
value: 'cde',
|
|
104
108
|
ignore: {
|
|
105
109
|
field: 'ignoreIndex'
|
|
106
110
|
}
|
|
107
111
|
};
|
|
108
|
-
|
|
112
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
109
113
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
110
114
|
});
|
|
111
|
-
|
|
115
|
+
|
|
116
|
+
it('Should handle interpolated string for ignore.field', function () {
|
|
112
117
|
// eslint-disable-next-line no-template-curly-in-string
|
|
113
|
-
|
|
118
|
+
var CONFIG = {
|
|
114
119
|
target: 'arrayOfValues',
|
|
115
120
|
value: 'cde',
|
|
116
121
|
ignore: {
|
|
117
122
|
field: '${ignoreName}'
|
|
118
123
|
}
|
|
119
124
|
};
|
|
120
|
-
|
|
125
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
121
126
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
122
127
|
});
|
|
123
|
-
|
|
128
|
+
|
|
129
|
+
it('Should handle interpolated string for target', function () {
|
|
124
130
|
// eslint-disable-next-line no-template-curly-in-string
|
|
125
|
-
|
|
131
|
+
var CONFIG = {
|
|
126
132
|
target: '${targetName}',
|
|
127
133
|
value: 'cde'
|
|
128
134
|
};
|
|
129
|
-
|
|
135
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
130
136
|
expect(result).toEqual('2');
|
|
131
137
|
});
|
|
132
|
-
it('Should return null when the target does not exist', ()
|
|
133
|
-
|
|
138
|
+
it('Should return null when the target does not exist', function () {
|
|
139
|
+
var CONFIG = {
|
|
134
140
|
target: 'notARealTarget',
|
|
135
141
|
value: 'cde'
|
|
136
142
|
};
|
|
137
|
-
|
|
143
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
138
144
|
expect(result).toEqual(null);
|
|
139
145
|
});
|
|
140
|
-
it('Should return null when config is missing fields', ()
|
|
141
|
-
|
|
142
|
-
|
|
146
|
+
it('Should return null when config is missing fields', function () {
|
|
147
|
+
var CONFIG = {};
|
|
148
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
143
149
|
expect(result).toEqual(null);
|
|
144
150
|
});
|
|
145
|
-
it('Should return null when config is invalid', ()
|
|
146
|
-
|
|
151
|
+
it('Should return null when config is invalid', function () {
|
|
152
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(null, DATA);
|
|
147
153
|
expect(result).toEqual(null);
|
|
148
154
|
});
|
|
149
|
-
it('Should return null when data is invalid', ()
|
|
150
|
-
|
|
155
|
+
it('Should return null when data is invalid', function () {
|
|
156
|
+
var CONFIG = {
|
|
151
157
|
target: 'arrayOfValues',
|
|
152
158
|
value: 'cde'
|
|
153
159
|
};
|
|
154
|
-
|
|
160
|
+
var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, null);
|
|
155
161
|
expect(result).toEqual(null);
|
|
156
162
|
});
|
|
157
163
|
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
|
+
var _getCollectionPageActiveIndex = _interopRequireDefault(require("../CollectionPage/getCollectionPageActiveIndex"));
|
|
9
|
+
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
// Global imports.
|
|
12
|
+
|
|
13
|
+
// Local imports.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Finds a field within data and returns its length
|
|
17
|
+
* @param {object} config The config of the operation.
|
|
18
|
+
* @param {string} config.target The path to the target field. If the path
|
|
19
|
+
* goes through a collection this can be specified as 'collectionName[]'
|
|
20
|
+
* and this function will use the active entry within that collection.
|
|
21
|
+
* @param {object} data A page's formData.
|
|
22
|
+
* @returns The length of a field if found or 0
|
|
23
|
+
*/
|
|
24
|
+
var getLength = function getLength(config, data) {
|
|
25
|
+
if (!config || !data) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Replace any instances of 'collectionName[]' with 'collectionName[activeIndex]'
|
|
30
|
+
var pathParts = config.target.split('.');
|
|
31
|
+
var updatedPath = '';
|
|
32
|
+
pathParts.forEach(function (part) {
|
|
33
|
+
if (updatedPath !== '') {
|
|
34
|
+
updatedPath += '.';
|
|
35
|
+
}
|
|
36
|
+
if (part.slice(-2) === '[]') {
|
|
37
|
+
var collectionName = part.slice(0, -2);
|
|
38
|
+
var activeIndex = (0, _getCollectionPageActiveIndex.default)(collectionName, data);
|
|
39
|
+
updatedPath += "".concat(collectionName, "[").concat(activeIndex, "]");
|
|
40
|
+
} else {
|
|
41
|
+
updatedPath += part;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Get the field and return its length
|
|
46
|
+
var targetPath = _copReactComponents.Utils.interpolateString(updatedPath, data);
|
|
47
|
+
var target = (0, _getSourceData.default)(data, targetPath);
|
|
48
|
+
return (target === null || target === void 0 ? void 0 : target.length) || 0;
|
|
49
|
+
};
|
|
50
|
+
var _default = exports.default = getLength;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _getLength = _interopRequireDefault(require("./getLength"));
|
|
4
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
+
describe('Utils.Operate.getLength', function () {
|
|
6
|
+
it('returns null if config is not defined', function () {
|
|
7
|
+
expect((0, _getLength.default)(null, {})).toEqual(null);
|
|
8
|
+
});
|
|
9
|
+
it('returns null if data is not defined', function () {
|
|
10
|
+
expect((0, _getLength.default)({}, null)).toEqual(null);
|
|
11
|
+
});
|
|
12
|
+
it('returns the length of a top level string', function () {
|
|
13
|
+
var CONFIG = {
|
|
14
|
+
target: 'alpha'
|
|
15
|
+
};
|
|
16
|
+
var DATA = {
|
|
17
|
+
alpha: 'abcdef'
|
|
18
|
+
};
|
|
19
|
+
expect((0, _getLength.default)(CONFIG, DATA)).toEqual(6);
|
|
20
|
+
});
|
|
21
|
+
it('returns the length of a top level array', function () {
|
|
22
|
+
var CONFIG = {
|
|
23
|
+
target: 'alpha'
|
|
24
|
+
};
|
|
25
|
+
var DATA = {
|
|
26
|
+
alpha: [{
|
|
27
|
+
test: 'test'
|
|
28
|
+
}, {
|
|
29
|
+
test: 'test'
|
|
30
|
+
}, {
|
|
31
|
+
test: 'test'
|
|
32
|
+
}, {
|
|
33
|
+
test: 'test'
|
|
34
|
+
}]
|
|
35
|
+
};
|
|
36
|
+
expect((0, _getLength.default)(CONFIG, DATA)).toEqual(4);
|
|
37
|
+
});
|
|
38
|
+
it('returns 0 if the field cannot be found', function () {
|
|
39
|
+
var CONFIG = {
|
|
40
|
+
target: 'alpha'
|
|
41
|
+
};
|
|
42
|
+
var DATA = {
|
|
43
|
+
beta: [{
|
|
44
|
+
test: 'test'
|
|
45
|
+
}, {
|
|
46
|
+
test: 'test'
|
|
47
|
+
}, {
|
|
48
|
+
test: 'test'
|
|
49
|
+
}, {
|
|
50
|
+
test: 'test'
|
|
51
|
+
}]
|
|
52
|
+
};
|
|
53
|
+
expect((0, _getLength.default)(CONFIG, DATA)).toEqual(0);
|
|
54
|
+
});
|
|
55
|
+
it('returns the length of a field not on the top level', function () {
|
|
56
|
+
var CONFIG = {
|
|
57
|
+
target: 'alpha.beta'
|
|
58
|
+
};
|
|
59
|
+
var DATA = {
|
|
60
|
+
alphaActiveId: 3,
|
|
61
|
+
alpha: {
|
|
62
|
+
beta: 'qwerty'
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
expect((0, _getLength.default)(CONFIG, DATA)).toEqual(6);
|
|
66
|
+
});
|
|
67
|
+
it('returns the length of an array nested under an array', function () {
|
|
68
|
+
var CONFIG = {
|
|
69
|
+
target: 'alpha[].beta'
|
|
70
|
+
};
|
|
71
|
+
var DATA = {
|
|
72
|
+
alphaActiveId: 3,
|
|
73
|
+
alpha: [{
|
|
74
|
+
id: 1,
|
|
75
|
+
beta: ['test']
|
|
76
|
+
}, {
|
|
77
|
+
id: 2,
|
|
78
|
+
beta: ['test', 'test']
|
|
79
|
+
}, {
|
|
80
|
+
id: 3,
|
|
81
|
+
beta: ['test', 'test', 'test']
|
|
82
|
+
}, {
|
|
83
|
+
id: 4,
|
|
84
|
+
beta: ['test', 'test', 'test', 'test']
|
|
85
|
+
}]
|
|
86
|
+
};
|
|
87
|
+
expect((0, _getLength.default)(CONFIG, DATA)).toEqual(3);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
|
|
9
|
+
var Operate = {
|
|
10
10
|
runPageOperations: _runPageOperations.default
|
|
11
11
|
};
|
|
12
12
|
var _default = exports.default = Operate;
|
|
@@ -18,10 +18,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} data The page's formData.
|
|
19
19
|
* @param {function} onChange The page's onChange handler.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
var persistValueInFormData = function persistValueInFormData(config, data, onChange) {
|
|
22
|
+
var value;
|
|
23
23
|
if (config !== null && config !== void 0 && config.field) {
|
|
24
|
-
|
|
24
|
+
var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
|
|
25
25
|
value = (0, _getSourceData.default)(data, fieldPath);
|
|
26
26
|
} else {
|
|
27
27
|
value = config === null || config === void 0 ? void 0 : config.value;
|