@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -9,11 +9,11 @@ var _models = require("../../models");
|
|
|
9
9
|
var _FormPage = _interopRequireDefault(require("../FormPage"));
|
|
10
10
|
var _getCYARow = _interopRequireDefault(require("./getCYARow"));
|
|
11
11
|
var _getCYARowsForCollectionPage = _interopRequireDefault(require("./getCYARowsForCollectionPage"));
|
|
12
|
-
var
|
|
12
|
+
var _getCYARowForGroup = _interopRequireDefault(require("./getCYARowForGroup"));
|
|
13
13
|
var _getCYARowsForCollection = _interopRequireDefault(require("./getCYARowsForCollection"));
|
|
14
14
|
var _getCYARowsForContainer = _interopRequireDefault(require("./getCYARowsForContainer"));
|
|
15
15
|
var _showComponentCYA = _interopRequireDefault(require("./showComponentCYA"));
|
|
16
|
-
function _interopRequireDefault(
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
// Local imports
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -25,19 +25,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
25
25
|
*
|
|
26
26
|
* @returns An array of configuration objects for Check your answers rows.
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const getCYARowsForPage = function (page, onAction) {
|
|
29
|
+
let fnOverride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
30
30
|
if (_FormPage.default.showCYA(page, page.formData)) {
|
|
31
31
|
var _page$groups;
|
|
32
32
|
if (page.collection) {
|
|
33
33
|
return (0, _getCYARowsForCollectionPage.default)(page, onAction, fnOverride, page.formData);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return (0, _showComponentCYA.default)(c, page.formData);
|
|
38
|
-
}).flatMap(function (component) {
|
|
35
|
+
const allComponents = (0, _elevateNestedComponents.default)(page.components, page.formData);
|
|
36
|
+
const rows = allComponents.filter(c => (0, _showComponentCYA.default)(c, page.formData)).flatMap(component => {
|
|
39
37
|
if (typeof fnOverride === 'function') {
|
|
40
|
-
|
|
38
|
+
const overrideRows = fnOverride(page, component, onAction);
|
|
41
39
|
if (overrideRows) {
|
|
42
40
|
return overrideRows;
|
|
43
41
|
}
|
|
@@ -52,22 +50,19 @@ var getCYARowsForPage = function getCYARowsForPage(page, onAction) {
|
|
|
52
50
|
}
|
|
53
51
|
});
|
|
54
52
|
if (((_page$groups = page.groups) === null || _page$groups === void 0 ? void 0 : _page$groups.length) > 0) {
|
|
55
|
-
page.groups.forEach(
|
|
56
|
-
|
|
57
|
-
row
|
|
58
|
-
insertAt
|
|
53
|
+
page.groups.forEach(group => {
|
|
54
|
+
const {
|
|
55
|
+
row,
|
|
56
|
+
insertAt
|
|
57
|
+
} = (0, _getCYARowForGroup.default)(page, group, rows, onAction);
|
|
59
58
|
if (insertAt > -1) {
|
|
60
59
|
rows.splice(insertAt, 0, row);
|
|
61
60
|
} else {
|
|
62
61
|
rows.push(row);
|
|
63
62
|
}
|
|
64
63
|
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
return rows.filter(function (r) {
|
|
69
|
-
return !allReplacedIds.includes(r.id);
|
|
70
|
-
});
|
|
64
|
+
const allReplacedIds = page.groups.flatMap(g => g.components);
|
|
65
|
+
return rows.filter(r => !allReplacedIds.includes(r.id));
|
|
71
66
|
}
|
|
72
67
|
return rows;
|
|
73
68
|
}
|
|
@@ -3,35 +3,34 @@
|
|
|
3
3
|
var _setupTests = require("../../setupTests");
|
|
4
4
|
var _models = require("../../models");
|
|
5
5
|
var _getCYARowsForPage = _interopRequireDefault(require("./getCYARowsForPage"));
|
|
6
|
-
function _interopRequireDefault(
|
|
7
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
7
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
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; }
|
|
10
|
-
function _defineProperty(
|
|
11
|
-
function _toPropertyKey(
|
|
12
|
-
function _toPrimitive(
|
|
13
|
-
describe('utils',
|
|
14
|
-
describe('CheckYourAnswers',
|
|
15
|
-
describe('getCYARowsForPage',
|
|
16
|
-
it('should get a appropriate row for a page with a single readonly text component',
|
|
17
|
-
|
|
9
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
11
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
12
|
+
describe('utils', () => {
|
|
13
|
+
describe('CheckYourAnswers', () => {
|
|
14
|
+
describe('getCYARowsForPage', () => {
|
|
15
|
+
it('should get a appropriate row for a page with a single readonly text component', () => {
|
|
16
|
+
const COMPONENT = {
|
|
18
17
|
type: 'text',
|
|
19
18
|
readonly: true,
|
|
20
19
|
id: 'a',
|
|
21
20
|
fieldId: 'a',
|
|
22
21
|
label: 'Alpha'
|
|
23
22
|
};
|
|
24
|
-
|
|
23
|
+
const PAGE = {
|
|
25
24
|
id: 'page',
|
|
26
25
|
components: [COMPONENT],
|
|
27
26
|
formData: {
|
|
28
27
|
a: 'Bravo'
|
|
29
28
|
}
|
|
30
29
|
};
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const ON_ACTION = () => {};
|
|
31
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION);
|
|
33
32
|
expect(ROWS.length).toEqual(1);
|
|
34
|
-
ROWS.forEach(
|
|
33
|
+
ROWS.forEach((row, index) => {
|
|
35
34
|
(0, _setupTests.expectObjectLike)(row, {
|
|
36
35
|
pageId: PAGE.id,
|
|
37
36
|
fieldId: PAGE.components[index].fieldId,
|
|
@@ -42,20 +41,20 @@ describe('utils', function () {
|
|
|
42
41
|
});
|
|
43
42
|
});
|
|
44
43
|
});
|
|
45
|
-
it('should get appropriate rows for a page with two editable text components',
|
|
46
|
-
|
|
44
|
+
it('should get appropriate rows for a page with two editable text components', () => {
|
|
45
|
+
const COMPONENT_A = {
|
|
47
46
|
type: 'text',
|
|
48
47
|
id: 'a',
|
|
49
48
|
fieldId: 'a',
|
|
50
49
|
label: 'Alpha'
|
|
51
50
|
};
|
|
52
|
-
|
|
51
|
+
const COMPONENT_B = {
|
|
53
52
|
type: 'text',
|
|
54
53
|
id: 'b',
|
|
55
54
|
fieldId: 'b',
|
|
56
55
|
label: 'Bravo'
|
|
57
56
|
};
|
|
58
|
-
|
|
57
|
+
const PAGE = {
|
|
59
58
|
id: 'page',
|
|
60
59
|
components: [COMPONENT_A, COMPONENT_B],
|
|
61
60
|
formData: {
|
|
@@ -64,10 +63,10 @@ describe('utils', function () {
|
|
|
64
63
|
},
|
|
65
64
|
cya_link: {}
|
|
66
65
|
};
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
const ON_ACTION = () => {};
|
|
67
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION);
|
|
69
68
|
expect(ROWS.length).toEqual(2);
|
|
70
|
-
ROWS.forEach(
|
|
69
|
+
ROWS.forEach((row, index) => {
|
|
71
70
|
(0, _setupTests.expectObjectLike)(row, {
|
|
72
71
|
pageId: PAGE.id,
|
|
73
72
|
fieldId: PAGE.components[index].fieldId,
|
|
@@ -80,24 +79,24 @@ describe('utils', function () {
|
|
|
80
79
|
});
|
|
81
80
|
});
|
|
82
81
|
});
|
|
83
|
-
it("should filter out any components that shouldn't be shown",
|
|
84
|
-
|
|
82
|
+
it("should filter out any components that shouldn't be shown", () => {
|
|
83
|
+
const COMPONENT_A = {
|
|
85
84
|
type: 'text',
|
|
86
85
|
id: 'a',
|
|
87
86
|
fieldId: 'a',
|
|
88
87
|
label: 'Alpha'
|
|
89
88
|
};
|
|
90
|
-
|
|
89
|
+
const COMPONENT_B = {
|
|
91
90
|
type: 'text',
|
|
92
91
|
id: 'b',
|
|
93
92
|
fieldId: 'b',
|
|
94
93
|
label: 'Bravo'
|
|
95
94
|
};
|
|
96
|
-
|
|
95
|
+
const COMPONENT_C = {
|
|
97
96
|
type: 'heading',
|
|
98
97
|
content: 'Heading component'
|
|
99
98
|
};
|
|
100
|
-
|
|
99
|
+
const PAGE = {
|
|
101
100
|
id: 'page',
|
|
102
101
|
components: [COMPONENT_A, COMPONENT_B, COMPONENT_C],
|
|
103
102
|
formData: {
|
|
@@ -106,10 +105,10 @@ describe('utils', function () {
|
|
|
106
105
|
},
|
|
107
106
|
cya_link: {}
|
|
108
107
|
};
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
const ON_ACTION = () => {};
|
|
109
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION);
|
|
111
110
|
expect(ROWS.length).toEqual(2);
|
|
112
|
-
ROWS.forEach(
|
|
111
|
+
ROWS.forEach((row, index) => {
|
|
113
112
|
(0, _setupTests.expectObjectLike)(row, {
|
|
114
113
|
pageId: PAGE.id,
|
|
115
114
|
fieldId: PAGE.components[index].fieldId,
|
|
@@ -122,20 +121,20 @@ describe('utils', function () {
|
|
|
122
121
|
});
|
|
123
122
|
});
|
|
124
123
|
});
|
|
125
|
-
it('should get a appropriate row for a page with a single readonly text component inside of a container',
|
|
126
|
-
|
|
124
|
+
it('should get a appropriate row for a page with a single readonly text component inside of a container', () => {
|
|
125
|
+
const FORM_DATA = {
|
|
127
126
|
container: {
|
|
128
127
|
a: 'Bravo'
|
|
129
128
|
}
|
|
130
129
|
};
|
|
131
|
-
|
|
130
|
+
const COMPONENT = {
|
|
132
131
|
type: 'text',
|
|
133
132
|
readonly: true,
|
|
134
133
|
id: 'a',
|
|
135
134
|
fieldId: 'a',
|
|
136
135
|
label: 'Alpha'
|
|
137
136
|
};
|
|
138
|
-
|
|
137
|
+
const CONTAINER = {
|
|
139
138
|
id: 'container',
|
|
140
139
|
fieldId: 'container',
|
|
141
140
|
type: _models.ComponentTypes.CONTAINER,
|
|
@@ -143,15 +142,15 @@ describe('utils', function () {
|
|
|
143
142
|
value: FORM_DATA.container,
|
|
144
143
|
formData: FORM_DATA
|
|
145
144
|
};
|
|
146
|
-
|
|
145
|
+
const PAGE = {
|
|
147
146
|
id: 'page',
|
|
148
147
|
components: [CONTAINER],
|
|
149
148
|
formData: FORM_DATA
|
|
150
149
|
};
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
const ON_ACTION = () => {};
|
|
151
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION);
|
|
153
152
|
expect(ROWS.length).toEqual(1);
|
|
154
|
-
ROWS.forEach(
|
|
153
|
+
ROWS.forEach((row, index) => {
|
|
155
154
|
(0, _setupTests.expectObjectLike)(row, {
|
|
156
155
|
pageId: PAGE.id,
|
|
157
156
|
fieldId: CONTAINER.components[index].fieldId,
|
|
@@ -162,32 +161,32 @@ describe('utils', function () {
|
|
|
162
161
|
});
|
|
163
162
|
});
|
|
164
163
|
});
|
|
165
|
-
it('Add ability to display answers from multiple fields in a single row',
|
|
166
|
-
|
|
164
|
+
it('Add ability to display answers from multiple fields in a single row', () => {
|
|
165
|
+
const COMPONENT_ADDRESS = {
|
|
167
166
|
id: 'firstLineOfTheAddress',
|
|
168
167
|
fieldId: 'firstLineOfTheAddress',
|
|
169
168
|
label: 'address',
|
|
170
169
|
type: 'text'
|
|
171
170
|
};
|
|
172
|
-
|
|
171
|
+
const COMPONENT_TOWN = {
|
|
173
172
|
id: 'town',
|
|
174
173
|
fieldId: 'town',
|
|
175
174
|
label: 'Town',
|
|
176
175
|
type: 'text'
|
|
177
176
|
};
|
|
178
|
-
|
|
177
|
+
const COMPONENT_CITY = {
|
|
179
178
|
id: 'city',
|
|
180
179
|
fieldId: 'city',
|
|
181
180
|
label: 'City',
|
|
182
181
|
type: 'text'
|
|
183
182
|
};
|
|
184
|
-
|
|
183
|
+
const COMPONENT_POSTCODE = {
|
|
185
184
|
id: 'postCode',
|
|
186
185
|
fieldId: 'postCode',
|
|
187
186
|
label: 'postCode',
|
|
188
187
|
type: 'text'
|
|
189
188
|
};
|
|
190
|
-
|
|
189
|
+
const PAGE = {
|
|
191
190
|
components: [COMPONENT_ADDRESS, COMPONENT_TOWN, COMPONENT_CITY, COMPONENT_POSTCODE],
|
|
192
191
|
id: 'addressDetails',
|
|
193
192
|
fieldId: 'UK address',
|
|
@@ -205,36 +204,35 @@ describe('utils', function () {
|
|
|
205
204
|
postCode: 'SW1A 2AA'
|
|
206
205
|
}
|
|
207
206
|
};
|
|
208
|
-
|
|
207
|
+
const ON_ACTION = () => {};
|
|
209
208
|
// rows do not have defined keys which means cannot pass them to render as an array,
|
|
210
209
|
// so just pass the single row instead of array containing single row
|
|
211
|
-
|
|
212
|
-
return row.value;
|
|
213
|
-
});
|
|
210
|
+
const cyaRow = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION).map(row => row.value);
|
|
214
211
|
expect(cyaRow.length).toEqual(1);
|
|
215
|
-
|
|
216
|
-
container
|
|
212
|
+
const {
|
|
213
|
+
container
|
|
214
|
+
} = (0, _setupTests.renderWithValidation)(cyaRow[0]);
|
|
217
215
|
expect(container.childNodes.length).toEqual(4);
|
|
218
|
-
|
|
216
|
+
const addressValues = container.childNodes;
|
|
219
217
|
expect(addressValues[0].childNodes[0].textContent).toEqual('10 Downing Street');
|
|
220
218
|
expect(addressValues[1].childNodes[0].textContent).toEqual('City of Westminster');
|
|
221
219
|
expect(addressValues[2].childNodes[0].textContent).toEqual('London');
|
|
222
220
|
expect(addressValues[3].childNodes[0].textContent).toEqual('SW1A 2AA');
|
|
223
221
|
});
|
|
224
|
-
it('should get appropriate rows for a page with a single readonly text component within a collection',
|
|
225
|
-
|
|
222
|
+
it('should get appropriate rows for a page with a single readonly text component within a collection', () => {
|
|
223
|
+
const FORM_DATA = {
|
|
226
224
|
collection: [{
|
|
227
225
|
a: 'Bravo'
|
|
228
226
|
}]
|
|
229
227
|
};
|
|
230
|
-
|
|
228
|
+
const COMPONENT = {
|
|
231
229
|
type: 'text',
|
|
232
230
|
readonly: true,
|
|
233
231
|
id: 'a',
|
|
234
232
|
fieldId: 'a',
|
|
235
233
|
label: 'Alpha'
|
|
236
234
|
};
|
|
237
|
-
|
|
235
|
+
const COLLECTION = {
|
|
238
236
|
id: 'collection',
|
|
239
237
|
fieldId: 'collection',
|
|
240
238
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -242,13 +240,13 @@ describe('utils', function () {
|
|
|
242
240
|
value: FORM_DATA.collection,
|
|
243
241
|
formData: FORM_DATA
|
|
244
242
|
};
|
|
245
|
-
|
|
243
|
+
const PAGE = {
|
|
246
244
|
id: 'page',
|
|
247
245
|
components: [COLLECTION],
|
|
248
246
|
formData: FORM_DATA
|
|
249
247
|
};
|
|
250
|
-
|
|
251
|
-
|
|
248
|
+
const ON_ACTION = () => {};
|
|
249
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION);
|
|
252
250
|
expect(ROWS.length).toEqual(2); // Title and item row
|
|
253
251
|
(0, _setupTests.expectObjectLike)(ROWS[1], {
|
|
254
252
|
pageId: PAGE.id,
|
|
@@ -262,20 +260,20 @@ describe('utils', function () {
|
|
|
262
260
|
value: 'Bravo'
|
|
263
261
|
});
|
|
264
262
|
});
|
|
265
|
-
it('should ignore the result of the override function if it returns nullish',
|
|
266
|
-
|
|
263
|
+
it('should ignore the result of the override function if it returns nullish', () => {
|
|
264
|
+
const COMPONENT_A = {
|
|
267
265
|
type: 'text',
|
|
268
266
|
id: 'a',
|
|
269
267
|
fieldId: 'a',
|
|
270
268
|
label: 'Alpha'
|
|
271
269
|
};
|
|
272
|
-
|
|
270
|
+
const COMPONENT_B = {
|
|
273
271
|
type: 'text',
|
|
274
272
|
id: 'b',
|
|
275
273
|
fieldId: 'b',
|
|
276
274
|
label: 'Bravo'
|
|
277
275
|
};
|
|
278
|
-
|
|
276
|
+
const PAGE = {
|
|
279
277
|
id: 'page',
|
|
280
278
|
components: [COMPONENT_A, COMPONENT_B],
|
|
281
279
|
formData: {
|
|
@@ -284,12 +282,10 @@ describe('utils', function () {
|
|
|
284
282
|
},
|
|
285
283
|
cya_link: {}
|
|
286
284
|
};
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
return null;
|
|
290
|
-
});
|
|
285
|
+
const ON_ACTION = () => {};
|
|
286
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION, () => null);
|
|
291
287
|
expect(ROWS.length).toEqual(2);
|
|
292
|
-
ROWS.forEach(
|
|
288
|
+
ROWS.forEach((row, index) => {
|
|
293
289
|
(0, _setupTests.expectObjectLike)(row, {
|
|
294
290
|
pageId: PAGE.id,
|
|
295
291
|
fieldId: PAGE.components[index].fieldId,
|
|
@@ -302,20 +298,20 @@ describe('utils', function () {
|
|
|
302
298
|
});
|
|
303
299
|
});
|
|
304
300
|
});
|
|
305
|
-
it('should use rows produced by the override function if provided',
|
|
306
|
-
|
|
301
|
+
it('should use rows produced by the override function if provided', () => {
|
|
302
|
+
const COMPONENT_A = {
|
|
307
303
|
type: 'text',
|
|
308
304
|
id: 'a',
|
|
309
305
|
fieldId: 'a',
|
|
310
306
|
label: 'Alpha'
|
|
311
307
|
};
|
|
312
|
-
|
|
308
|
+
const COMPONENT_B = {
|
|
313
309
|
type: 'text',
|
|
314
310
|
id: 'b',
|
|
315
311
|
fieldId: 'b',
|
|
316
312
|
label: 'Bravo'
|
|
317
313
|
};
|
|
318
|
-
|
|
314
|
+
const PAGE = {
|
|
319
315
|
id: 'page',
|
|
320
316
|
components: [COMPONENT_A, COMPONENT_B],
|
|
321
317
|
formData: {
|
|
@@ -324,16 +320,16 @@ describe('utils', function () {
|
|
|
324
320
|
},
|
|
325
321
|
cya_link: {}
|
|
326
322
|
};
|
|
327
|
-
|
|
323
|
+
const ON_ACTION = () => {};
|
|
328
324
|
// eslint-disable-next-line arrow-body-style
|
|
329
|
-
|
|
325
|
+
const OVERRIDE = (page, comp) => {
|
|
330
326
|
// This will be called for each component on the page,
|
|
331
327
|
// returning a custom row object.
|
|
332
328
|
return {
|
|
333
329
|
key: "CustomRowFor".concat(comp.label)
|
|
334
330
|
};
|
|
335
331
|
};
|
|
336
|
-
|
|
332
|
+
const ROWS = (0, _getCYARowsForPage.default)(PAGE, ON_ACTION, OVERRIDE);
|
|
337
333
|
expect(ROWS.length).toEqual(2);
|
|
338
334
|
expect(ROWS).toEqual([{
|
|
339
335
|
key: 'CustomRowForAlpha'
|
|
@@ -9,18 +9,17 @@ var _Answer = _interopRequireDefault(require("../../components/CheckYourAnswers/
|
|
|
9
9
|
var _SummaryListRow = _interopRequireDefault(require("../../components/SummaryList/SummaryListRow"));
|
|
10
10
|
var _SummaryListTitleRow = _interopRequireDefault(require("../../components/SummaryList/SummaryListTitleRow"));
|
|
11
11
|
var _getCYARow = _interopRequireDefault(require("./getCYARow"));
|
|
12
|
-
function _interopRequireDefault(
|
|
13
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
14
|
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; }
|
|
16
|
-
function _defineProperty(
|
|
17
|
-
function _toPropertyKey(
|
|
18
|
-
function _toPrimitive(
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
18
|
+
const getSummaryListRowForDetails = (page, component, customClasses, entryData, optionalFieldPlaceholder) => {
|
|
19
|
+
const modifiedPage = _objectSpread(_objectSpread({}, page), {}, {
|
|
21
20
|
formData: _objectSpread(_objectSpread({}, page.formData), entryData)
|
|
22
21
|
});
|
|
23
|
-
|
|
22
|
+
const row = (0, _getCYARow.default)(modifiedPage, component);
|
|
24
23
|
return component.type === 'title' ? /*#__PURE__*/_react.default.createElement(_SummaryListTitleRow.default, {
|
|
25
24
|
title: component.key,
|
|
26
25
|
classes: customClasses
|
|
@@ -1,45 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getSummaryListRowForDetails = _interopRequireDefault(require("./getSummaryListRowForDetails"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
6
|
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; }
|
|
8
|
-
function _defineProperty(
|
|
9
|
-
function _toPropertyKey(
|
|
10
|
-
function _toPrimitive(
|
|
11
|
-
describe('utils.CheckYourAnswers.getSummaryListRowForDetails',
|
|
12
|
-
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
describe('utils.CheckYourAnswers.getSummaryListRowForDetails', () => {
|
|
11
|
+
const COMPONENT_A = {
|
|
13
12
|
type: 'text',
|
|
14
13
|
id: 'a',
|
|
15
14
|
fieldId: 'a',
|
|
16
15
|
label: 'Alpha'
|
|
17
16
|
};
|
|
18
|
-
|
|
17
|
+
const TITLE = {
|
|
19
18
|
type: 'title',
|
|
20
19
|
key: 'Bravo'
|
|
21
20
|
};
|
|
22
|
-
|
|
21
|
+
const PAGE = {
|
|
23
22
|
id: 'page',
|
|
24
23
|
components: [COMPONENT_A],
|
|
25
24
|
formData: {
|
|
26
25
|
a: 'Alpha Value'
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
|
-
it('should get a summary list row for a component',
|
|
30
|
-
|
|
28
|
+
it('should get a summary list row for a component', () => {
|
|
29
|
+
const row = (0, _getSummaryListRowForDetails.default)(PAGE, COMPONENT_A, null, {});
|
|
31
30
|
expect(row.props.row.key).toEqual(COMPONENT_A.label);
|
|
32
31
|
expect(row.props.row.value.props).toMatchObject({
|
|
33
32
|
component: COMPONENT_A,
|
|
34
33
|
value: PAGE.formData[COMPONENT_A.fieldId]
|
|
35
34
|
});
|
|
36
35
|
});
|
|
37
|
-
it('should get a summary list title row for a component with a type of title',
|
|
38
|
-
|
|
36
|
+
it('should get a summary list title row for a component with a type of title', () => {
|
|
37
|
+
const row = (0, _getSummaryListRowForDetails.default)(PAGE, TITLE, null, {});
|
|
39
38
|
expect(row.props.title).toEqual(TITLE.key);
|
|
40
39
|
});
|
|
41
|
-
it('should use a placeholder value for empty optional fields if one is provided',
|
|
42
|
-
|
|
40
|
+
it('should use a placeholder value for empty optional fields if one is provided', () => {
|
|
41
|
+
const CUSTOM_PAGE = _objectSpread(_objectSpread({}, PAGE), {}, {
|
|
43
42
|
components: [{
|
|
44
43
|
type: 'text',
|
|
45
44
|
fieldId: 'componentA',
|
|
@@ -47,7 +46,7 @@ describe('utils.CheckYourAnswers.getSummaryListRowForDetails', function () {
|
|
|
47
46
|
required: false
|
|
48
47
|
}]
|
|
49
48
|
});
|
|
50
|
-
|
|
49
|
+
const summaryListRow = (0, _getSummaryListRowForDetails.default)(CUSTOM_PAGE, CUSTOM_PAGE.components[0], null, {}, 'Not entered');
|
|
51
50
|
expect(summaryListRow.props.row.key).toEqual('Component A');
|
|
52
51
|
expect(summaryListRow.props.row.value.props).toMatchObject({
|
|
53
52
|
placeholder: 'Not entered'
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getCYARowsForPage = _interopRequireDefault(require("./getCYARowsForPage"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
// Local imports
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const CheckYourAnswers = {
|
|
12
12
|
getRows: _getCYARowsForPage.default
|
|
13
13
|
};
|
|
14
14
|
var _default = exports.default = CheckYourAnswers;
|
|
@@ -8,10 +8,10 @@ var _models = require("../../models");
|
|
|
8
8
|
var _Component = _interopRequireDefault(require("../Component"));
|
|
9
9
|
var _Container = _interopRequireDefault(require("../Container"));
|
|
10
10
|
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
11
|
-
function _interopRequireDefault(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
// Local imports
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const EXCLUDE_FROM_CYA = exports.EXCLUDE_FROM_CYA = [_models.ComponentTypes.ALERT, _models.ComponentTypes.COLLECTION_SUMMARY, _models.ComponentTypes.DETAILS, _models.ComponentTypes.HEADING, _models.ComponentTypes.HTML, _models.ComponentTypes.INSET_TEXT];
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Determines whether a given component should display on the Check your answers screen.
|
|
@@ -21,7 +21,7 @@ var EXCLUDE_FROM_CYA = exports.EXCLUDE_FROM_CYA = [_models.ComponentTypes.ALERT,
|
|
|
21
21
|
*
|
|
22
22
|
* @returns A boolean true if the component should show; otherwise false.
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
const showComponentCYA = (options, data) => {
|
|
25
25
|
if (!options) {
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
@@ -33,12 +33,12 @@ var showComponentCYA = function showComponentCYA(options, data) {
|
|
|
33
33
|
}
|
|
34
34
|
if (options.hideOnCyaWhenEmpty) {
|
|
35
35
|
if (options.type === _models.ComponentTypes.COLLECTION) {
|
|
36
|
-
|
|
36
|
+
const itemCollectionsData = (0, _getSourceData.default)(data, options.full_path || options.fieldId);
|
|
37
37
|
if (!(itemCollectionsData !== null && itemCollectionsData !== void 0 && itemCollectionsData.length)) {
|
|
38
38
|
return false;
|
|
39
39
|
}
|
|
40
40
|
} else {
|
|
41
|
-
|
|
41
|
+
const value = (0, _getSourceData.default)(data, options.fieldId);
|
|
42
42
|
if (!value && value !== false && value !== 0) {
|
|
43
43
|
return false;
|
|
44
44
|
}
|