@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.2-alpha
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 +72 -63
- package/dist/utils/Data/getAutocompleteSource.test.js +106 -98
- 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
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDataUrlForComponent"));
|
|
5
|
-
function _interopRequireDefault(
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
6
|
// Local imports
|
|
7
7
|
|
|
8
|
-
describe('utils',
|
|
9
|
-
describe('Data',
|
|
10
|
-
describe('setupRefDataUrlForComponent',
|
|
11
|
-
|
|
8
|
+
describe('utils', () => {
|
|
9
|
+
describe('Data', () => {
|
|
10
|
+
describe('setupRefDataUrlForComponent', () => {
|
|
11
|
+
const DATA = {
|
|
12
12
|
urls: {
|
|
13
13
|
refData: '/ref-data'
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
it('can handle a null component',
|
|
16
|
+
it('can handle a null component', () => {
|
|
17
17
|
expect((0, _setupRefDataUrlForComponent.default)(null, DATA)).toBeNull();
|
|
18
18
|
});
|
|
19
|
-
it('can handle an undefined component',
|
|
19
|
+
it('can handle an undefined component', () => {
|
|
20
20
|
expect((0, _setupRefDataUrlForComponent.default)(undefined, DATA)).toBeUndefined();
|
|
21
21
|
});
|
|
22
|
-
it('can handle a component with no data property',
|
|
23
|
-
|
|
22
|
+
it('can handle a component with no data property', () => {
|
|
23
|
+
const COMPONENT = {
|
|
24
24
|
id: 'component'
|
|
25
25
|
};
|
|
26
26
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
27
27
|
});
|
|
28
|
-
it('can handle a component with no data.url property',
|
|
29
|
-
|
|
28
|
+
it('can handle a component with no data.url property', () => {
|
|
29
|
+
const COMPONENT = {
|
|
30
30
|
id: 'component',
|
|
31
31
|
data: {
|
|
32
32
|
options: []
|
|
@@ -34,8 +34,8 @@ describe('utils', function () {
|
|
|
34
34
|
};
|
|
35
35
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
36
36
|
});
|
|
37
|
-
it('should appropriately update the component URL',
|
|
38
|
-
|
|
37
|
+
it('should appropriately update the component URL', () => {
|
|
38
|
+
const COMPONENT = {
|
|
39
39
|
id: 'component',
|
|
40
40
|
// eslint-disable-next-line no-template-curly-in-string
|
|
41
41
|
data: {
|
|
@@ -49,8 +49,8 @@ describe('utils', function () {
|
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
|
-
it('should leave a URL alone that does not require replacement',
|
|
53
|
-
|
|
52
|
+
it('should leave a URL alone that does not require replacement', () => {
|
|
53
|
+
const COMPONENT = {
|
|
54
54
|
id: 'component',
|
|
55
55
|
data: {
|
|
56
56
|
url: '/somewhere-else/v1/teams'
|
|
@@ -63,8 +63,8 @@ describe('utils', function () {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
-
it('should appropriately handle a missing value in the data',
|
|
67
|
-
|
|
66
|
+
it('should appropriately handle a missing value in the data', () => {
|
|
67
|
+
const COMPONENT = {
|
|
68
68
|
id: 'component',
|
|
69
69
|
// eslint-disable-next-line no-template-curly-in-string
|
|
70
70
|
data: {
|
|
@@ -78,15 +78,15 @@ describe('utils', function () {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
-
it('should appropriately update the component URLs within a container',
|
|
82
|
-
|
|
81
|
+
it('should appropriately update the component URLs within a container', () => {
|
|
82
|
+
const COMPONENT = {
|
|
83
83
|
id: 'component',
|
|
84
84
|
// eslint-disable-next-line no-template-curly-in-string
|
|
85
85
|
data: {
|
|
86
86
|
url: '${urls.refData}/v1/teams'
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
const CONTAINER = {
|
|
90
90
|
id: 'container',
|
|
91
91
|
type: _models.ComponentTypes.CONTAINER,
|
|
92
92
|
components: [COMPONENT]
|
|
@@ -102,15 +102,15 @@ describe('utils', function () {
|
|
|
102
102
|
}]
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
|
-
it('should appropriately update the component URLs within a collection',
|
|
106
|
-
|
|
105
|
+
it('should appropriately update the component URLs within a collection', () => {
|
|
106
|
+
const COMPONENT = {
|
|
107
107
|
id: 'component',
|
|
108
108
|
// eslint-disable-next-line no-template-curly-in-string
|
|
109
109
|
data: {
|
|
110
110
|
url: '${urls.refData}/v1/teams'
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
|
-
|
|
113
|
+
const COLLECTION = {
|
|
114
114
|
id: 'container',
|
|
115
115
|
type: _models.ComponentTypes.COLLECTION,
|
|
116
116
|
item: [COMPONENT]
|
|
@@ -126,8 +126,8 @@ describe('utils', function () {
|
|
|
126
126
|
}]
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
|
-
it('should not update the component URL when skipUrlInterpolation prop is true',
|
|
130
|
-
|
|
129
|
+
it('should not update the component URL when skipUrlInterpolation prop is true', () => {
|
|
130
|
+
const COMPONENT = {
|
|
131
131
|
id: 'component',
|
|
132
132
|
data: {
|
|
133
133
|
// eslint-disable-next-line no-template-curly-in-string
|
|
@@ -5,25 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _ = _interopRequireDefault(require(".."));
|
|
8
|
-
function _interopRequireDefault(
|
|
9
|
-
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); }
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
9
|
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; }
|
|
11
10
|
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; }
|
|
12
|
-
function _defineProperty(
|
|
13
|
-
function _toPropertyKey(
|
|
14
|
-
function _toPrimitive(
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13
|
+
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); }
|
|
15
14
|
/**
|
|
16
15
|
* Apply properties to a page based on whether certain conditions are met.
|
|
17
16
|
* @param {object} page The page object.
|
|
18
17
|
* @returns A copy of the page object with any passing conditional
|
|
19
18
|
* properties applied.
|
|
20
19
|
*/
|
|
21
|
-
|
|
20
|
+
const applyConditionalProperties = page => {
|
|
22
21
|
if (!page.conditionalProperties) {
|
|
23
22
|
return page;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
page.conditionalProperties.forEach(
|
|
24
|
+
let pageWithProperties = _objectSpread({}, page);
|
|
25
|
+
page.conditionalProperties.forEach(entry => {
|
|
27
26
|
if (_.default.Condition.met(entry.condition, page.formData[entry.condition.field])) {
|
|
28
27
|
pageWithProperties = Object.assign(pageWithProperties, entry.properties);
|
|
29
28
|
}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _applyConditionalProperties = _interopRequireDefault(require("./applyConditionalProperties"));
|
|
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.FormPage.applyConditionalProperties',
|
|
12
|
-
it('should not change the page if there are no conditional properties',
|
|
13
|
-
|
|
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); } // Local imports
|
|
10
|
+
describe('utils.FormPage.applyConditionalProperties', () => {
|
|
11
|
+
it('should not change the page if there are no conditional properties', () => {
|
|
12
|
+
const PAGE = {
|
|
14
13
|
id: 'testPage'
|
|
15
14
|
};
|
|
16
|
-
|
|
15
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
17
16
|
expect(result).toEqual(PAGE);
|
|
18
17
|
});
|
|
19
|
-
it('should not apply properties with conditions that have not been met',
|
|
20
|
-
|
|
18
|
+
it('should not apply properties with conditions that have not been met', () => {
|
|
19
|
+
const PAGE = {
|
|
21
20
|
id: 'testPage',
|
|
22
21
|
conditionalProperties: [{
|
|
23
22
|
condition: {
|
|
@@ -33,11 +32,11 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
33
32
|
alpha: '012'
|
|
34
33
|
}
|
|
35
34
|
};
|
|
36
|
-
|
|
35
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
37
36
|
expect(result).toEqual(PAGE);
|
|
38
37
|
});
|
|
39
|
-
it('should apply properties with conditions that have been met',
|
|
40
|
-
|
|
38
|
+
it('should apply properties with conditions that have been met', () => {
|
|
39
|
+
const PAGE = {
|
|
41
40
|
id: 'testPage',
|
|
42
41
|
conditionalProperties: [{
|
|
43
42
|
condition: {
|
|
@@ -53,7 +52,7 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
53
52
|
alpha: '123'
|
|
54
53
|
}
|
|
55
54
|
};
|
|
56
|
-
|
|
55
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
57
56
|
expect(result).toEqual(_objectSpread(_objectSpread({}, PAGE), {}, {
|
|
58
57
|
beta: '456'
|
|
59
58
|
}));
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _meetsAllConditions = _interopRequireDefault(require("../Condition/meetsAllConditions"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Global imports.
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
@@ -32,15 +32,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
32
32
|
* @param {String} key The key to use to find the text to use in each option, defaults to 'text'.
|
|
33
33
|
* @returns The first string that passes its' conditions, or null if something went wrong.
|
|
34
34
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const getConditionalText = function (options, formData) {
|
|
36
|
+
let key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'text';
|
|
37
37
|
if (typeof options === 'string') {
|
|
38
38
|
return _copReactComponents.Utils.interpolateString(options, formData);
|
|
39
39
|
}
|
|
40
40
|
if (!Array.isArray(options) || Object.keys(formData).length === 0) {
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
const shownOption = options.find(option => {
|
|
44
44
|
if (typeof option === 'string') {
|
|
45
45
|
// This is intended to allow a plain string 'fallback' option in the array.
|
|
46
46
|
// As such, it should be the last option in the array as any options after
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getConditionalText = _interopRequireDefault(require("./getConditionalText"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils.FormPage.getConditionalText',
|
|
6
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils.FormPage.getConditionalText', () => {
|
|
6
|
+
const FORM_DATA = {
|
|
7
7
|
testField: 'Alpha',
|
|
8
8
|
testField2: 'yes'
|
|
9
9
|
};
|
|
10
|
-
it('should return null if no options are provided',
|
|
11
|
-
|
|
10
|
+
it('should return null if no options are provided', () => {
|
|
11
|
+
const result = (0, _getConditionalText.default)(null, FORM_DATA);
|
|
12
12
|
expect(result).toEqual(null);
|
|
13
13
|
});
|
|
14
|
-
it('should return the option if it\'s just a string',
|
|
15
|
-
|
|
14
|
+
it('should return the option if it\'s just a string', () => {
|
|
15
|
+
const result = (0, _getConditionalText.default)('abc123', FORM_DATA);
|
|
16
16
|
expect(result).toEqual('abc123');
|
|
17
17
|
});
|
|
18
|
-
it('should return a correctly interpolated string',
|
|
18
|
+
it('should return a correctly interpolated string', () => {
|
|
19
19
|
// eslint-disable-next-line no-template-curly-in-string
|
|
20
|
-
|
|
20
|
+
const result = (0, _getConditionalText.default)('${testField} string', FORM_DATA);
|
|
21
21
|
expect(result).toEqual("".concat(FORM_DATA.testField, " string"));
|
|
22
22
|
});
|
|
23
|
-
it('should return the option that has it\'s conditions met',
|
|
24
|
-
|
|
23
|
+
it('should return the option that has it\'s conditions met', () => {
|
|
24
|
+
const OPTIONS = [{
|
|
25
25
|
text: 'Text A',
|
|
26
26
|
show_when: [{
|
|
27
27
|
field: 'testField2',
|
|
@@ -36,11 +36,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
36
36
|
value: 'yes'
|
|
37
37
|
}]
|
|
38
38
|
}];
|
|
39
|
-
|
|
39
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
40
40
|
expect(result).toEqual('Text B');
|
|
41
41
|
});
|
|
42
|
-
it('should return a plain string option if one is encountered in the array',
|
|
43
|
-
|
|
42
|
+
it('should return a plain string option if one is encountered in the array', () => {
|
|
43
|
+
const OPTIONS = [{
|
|
44
44
|
text: 'Text A',
|
|
45
45
|
show_when: [{
|
|
46
46
|
field: 'testField2',
|
|
@@ -55,11 +55,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
55
55
|
value: 'notTheValue'
|
|
56
56
|
}]
|
|
57
57
|
}, "Default text"];
|
|
58
|
-
|
|
58
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
59
59
|
expect(result).toEqual('Default text');
|
|
60
60
|
});
|
|
61
|
-
it('should correctly interpolate a plain string option in the array',
|
|
62
|
-
|
|
61
|
+
it('should correctly interpolate a plain string option in the array', () => {
|
|
62
|
+
const OPTIONS = [{
|
|
63
63
|
text: 'Text A',
|
|
64
64
|
show_when: [{
|
|
65
65
|
field: 'testField2',
|
|
@@ -76,11 +76,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
76
76
|
},
|
|
77
77
|
// eslint-disable-next-line no-template-curly-in-string
|
|
78
78
|
"${testField} text"];
|
|
79
|
-
|
|
79
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
80
80
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
81
81
|
});
|
|
82
|
-
it('should correctly interpolate a conditional option',
|
|
83
|
-
|
|
82
|
+
it('should correctly interpolate a conditional option', () => {
|
|
83
|
+
const OPTIONS = [{
|
|
84
84
|
text: 'Text A',
|
|
85
85
|
show_when: [{
|
|
86
86
|
field: 'testField2',
|
|
@@ -96,11 +96,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
96
96
|
value: 'yes'
|
|
97
97
|
}]
|
|
98
98
|
}];
|
|
99
|
-
|
|
99
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
100
100
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
101
101
|
});
|
|
102
|
-
it('should correctly use a conditional option',
|
|
103
|
-
|
|
102
|
+
it('should correctly use a conditional option', () => {
|
|
103
|
+
const OPTIONS = [{
|
|
104
104
|
text: 'Text A',
|
|
105
105
|
show_when: [{
|
|
106
106
|
field: 'testField2',
|
|
@@ -116,11 +116,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
116
116
|
value: 'yes'
|
|
117
117
|
}]
|
|
118
118
|
}];
|
|
119
|
-
|
|
119
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
120
120
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
121
121
|
});
|
|
122
|
-
it('should correctly use a different key to find the text if one is provided',
|
|
123
|
-
|
|
122
|
+
it('should correctly use a different key to find the text if one is provided', () => {
|
|
123
|
+
const OPTIONS = [{
|
|
124
124
|
customKey: 'Text A',
|
|
125
125
|
show_when: [{
|
|
126
126
|
field: 'testField2',
|
|
@@ -136,11 +136,11 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
136
136
|
value: 'yes'
|
|
137
137
|
}]
|
|
138
138
|
}];
|
|
139
|
-
|
|
139
|
+
const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA, 'customKey');
|
|
140
140
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
141
141
|
});
|
|
142
|
-
it('should return null for a conditional option if formData is empty',
|
|
143
|
-
|
|
142
|
+
it('should return null for a conditional option if formData is empty', () => {
|
|
143
|
+
const OPTIONS = [{
|
|
144
144
|
text: 'Text A',
|
|
145
145
|
show_when: [{
|
|
146
146
|
field: 'testField2',
|
|
@@ -156,7 +156,7 @@ describe('utils.FormPage.getConditionalText', function () {
|
|
|
156
156
|
value: 'yes'
|
|
157
157
|
}]
|
|
158
158
|
}];
|
|
159
|
-
|
|
159
|
+
const result = (0, _getConditionalText.default)(OPTIONS, {});
|
|
160
160
|
expect(result).toEqual(null);
|
|
161
161
|
});
|
|
162
162
|
});
|
|
@@ -10,13 +10,12 @@ var _getPageActions = _interopRequireDefault(require("./getPageActions"));
|
|
|
10
10
|
var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
|
|
11
11
|
var _useComponent = _interopRequireDefault(require("./useComponent"));
|
|
12
12
|
var _models = require("../../models");
|
|
13
|
-
function _interopRequireDefault(
|
|
14
|
-
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); }
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
14
|
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; }
|
|
16
15
|
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; }
|
|
17
|
-
function _defineProperty(
|
|
18
|
-
function _toPropertyKey(
|
|
19
|
-
function _toPrimitive(
|
|
16
|
+
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; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18
|
+
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
|
|
20
19
|
/**
|
|
21
20
|
* Converts a page object defined in the JSON to a page object for rendering.
|
|
22
21
|
* @param {object} pageOptions The JSON page.
|
|
@@ -24,20 +23,18 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
24
23
|
* @param {object} formData The top-level form data, used for setting up components.
|
|
25
24
|
* @returns A page object for rendering.
|
|
26
25
|
*/
|
|
27
|
-
|
|
26
|
+
const getFormPage = (pageOptions, formComponents, formData) => {
|
|
28
27
|
if (!pageOptions) {
|
|
29
28
|
return null;
|
|
30
29
|
}
|
|
31
|
-
|
|
30
|
+
const components = pageOptions.components.map(componentOptions => {
|
|
32
31
|
if (typeof componentOptions === 'string') {
|
|
33
32
|
return (0, _getParagraphFromText.default)(componentOptions);
|
|
34
33
|
}
|
|
35
|
-
|
|
34
|
+
let ret;
|
|
36
35
|
if (componentOptions.type === _models.ComponentTypes.CONTAINER) {
|
|
37
36
|
// eslint-disable-next-line no-param-reassign
|
|
38
|
-
componentOptions.components = componentOptions.components.map(
|
|
39
|
-
return cmp.use ? (0, _useComponent.default)(cmp, formComponents) : cmp;
|
|
40
|
-
});
|
|
37
|
+
componentOptions.components = componentOptions.components.map(cmp => cmp.use ? (0, _useComponent.default)(cmp, formComponents) : cmp);
|
|
41
38
|
}
|
|
42
39
|
if (componentOptions.use) {
|
|
43
40
|
ret = (0, _useComponent.default)(componentOptions, formComponents);
|
|
@@ -46,11 +43,11 @@ var getFormPage = function getFormPage(pageOptions, formComponents, formData) {
|
|
|
46
43
|
}
|
|
47
44
|
return formData ? _Data.default.refData.setupUrl(ret, formData) : ret;
|
|
48
45
|
});
|
|
49
|
-
|
|
46
|
+
const actions = (0, _getPageActions.default)(pageOptions);
|
|
50
47
|
return _Container.default.setup(_objectSpread(_objectSpread({}, pageOptions), {}, {
|
|
51
|
-
formData
|
|
52
|
-
components
|
|
53
|
-
actions
|
|
48
|
+
formData,
|
|
49
|
+
components,
|
|
50
|
+
actions
|
|
54
51
|
}));
|
|
55
52
|
};
|
|
56
53
|
var _default = exports.default = getFormPage;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
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',
|
|
12
|
-
describe('FormPage',
|
|
13
|
-
describe('getFormPage',
|
|
14
|
-
|
|
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); } // Local imports
|
|
10
|
+
describe('utils', () => {
|
|
11
|
+
describe('FormPage', () => {
|
|
12
|
+
describe('getFormPage', () => {
|
|
13
|
+
const FORM_COMPONENTS = [{
|
|
15
14
|
id: 'a',
|
|
16
15
|
fieldId: 'a',
|
|
17
16
|
label: 'Alpha',
|
|
@@ -46,17 +45,17 @@ describe('utils', function () {
|
|
|
46
45
|
label: 'Bravo ${currentUser.surname}',
|
|
47
46
|
type: 'text'
|
|
48
47
|
}];
|
|
49
|
-
|
|
48
|
+
const FORM_DATA = {
|
|
50
49
|
urls: {
|
|
51
50
|
refData: 'https://ho.gov.uk/ref-data/'
|
|
52
51
|
}
|
|
53
52
|
};
|
|
54
|
-
it('should handle null or undefined pageOptions',
|
|
53
|
+
it('should handle null or undefined pageOptions', () => {
|
|
55
54
|
expect((0, _getFormPage.default)(null, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
56
55
|
expect((0, _getFormPage.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
57
56
|
});
|
|
58
|
-
it('should handle a page not using any form components',
|
|
59
|
-
|
|
57
|
+
it('should handle a page not using any form components', () => {
|
|
58
|
+
const PAGE = {
|
|
60
59
|
title: 'Page',
|
|
61
60
|
components: [{
|
|
62
61
|
type: 'heading',
|
|
@@ -70,8 +69,8 @@ describe('utils', function () {
|
|
|
70
69
|
formData: FORM_DATA
|
|
71
70
|
});
|
|
72
71
|
});
|
|
73
|
-
it('should handle a page with inline strings and convert them to paragraphs',
|
|
74
|
-
|
|
72
|
+
it('should handle a page with inline strings and convert them to paragraphs', () => {
|
|
73
|
+
const PAGE = {
|
|
75
74
|
title: 'Page',
|
|
76
75
|
components: ["Opening paragraph", {
|
|
77
76
|
type: 'heading',
|
|
@@ -95,8 +94,8 @@ describe('utils', function () {
|
|
|
95
94
|
formData: FORM_DATA
|
|
96
95
|
});
|
|
97
96
|
});
|
|
98
|
-
it('should handle a page that references a form-level component',
|
|
99
|
-
|
|
97
|
+
it('should handle a page that references a form-level component', () => {
|
|
98
|
+
const PAGE = {
|
|
100
99
|
title: 'Page',
|
|
101
100
|
components: ["Opening paragraph", {
|
|
102
101
|
type: 'heading',
|
|
@@ -106,7 +105,7 @@ describe('utils', function () {
|
|
|
106
105
|
use: 'a'
|
|
107
106
|
}]
|
|
108
107
|
};
|
|
109
|
-
|
|
108
|
+
const A = FORM_COMPONENTS[0];
|
|
110
109
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
111
110
|
title: PAGE.title,
|
|
112
111
|
components: [{
|
|
@@ -128,8 +127,8 @@ describe('utils', function () {
|
|
|
128
127
|
formData: FORM_DATA
|
|
129
128
|
});
|
|
130
129
|
});
|
|
131
|
-
it('should handle a page that references a form-level component with a data url',
|
|
132
|
-
|
|
130
|
+
it('should handle a page that references a form-level component with a data url', () => {
|
|
131
|
+
const PAGE = {
|
|
133
132
|
title: 'Page',
|
|
134
133
|
components: ["Opening paragraph", {
|
|
135
134
|
type: 'heading',
|
|
@@ -139,7 +138,7 @@ describe('utils', function () {
|
|
|
139
138
|
use: 'c'
|
|
140
139
|
}]
|
|
141
140
|
};
|
|
142
|
-
|
|
141
|
+
const C = FORM_COMPONENTS[2];
|
|
143
142
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
144
143
|
title: PAGE.title,
|
|
145
144
|
components: [{
|
|
@@ -164,8 +163,8 @@ describe('utils', function () {
|
|
|
164
163
|
formData: FORM_DATA
|
|
165
164
|
});
|
|
166
165
|
});
|
|
167
|
-
it('should handle a page that references a form-level component with a data url without an environment context',
|
|
168
|
-
|
|
166
|
+
it('should handle a page that references a form-level component with a data url without an environment context', () => {
|
|
167
|
+
const PAGE = {
|
|
169
168
|
title: 'Page',
|
|
170
169
|
components: ["Opening paragraph", {
|
|
171
170
|
type: 'heading',
|
|
@@ -175,7 +174,7 @@ describe('utils', function () {
|
|
|
175
174
|
use: 'c'
|
|
176
175
|
}]
|
|
177
176
|
};
|
|
178
|
-
|
|
177
|
+
const C = FORM_COMPONENTS[2];
|
|
179
178
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, {})).toEqual({
|
|
180
179
|
title: PAGE.title,
|
|
181
180
|
components: [{
|
|
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
8
|
-
function _interopRequireDefault(
|
|
9
|
-
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); }
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
9
|
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; }
|
|
11
10
|
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; }
|
|
12
|
-
function _defineProperty(
|
|
13
|
-
function _toPropertyKey(
|
|
14
|
-
function _toPrimitive(
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13
|
+
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
|
|
15
14
|
/**
|
|
16
15
|
* Converts pages objects defined in the JSON to page objects for rendering.
|
|
17
16
|
* @param {Array} pages The JSON pages.
|
|
@@ -19,13 +18,11 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
19
18
|
* @param {object} formData The top-level form data, used for setting up components.
|
|
20
19
|
* @returns An array of page objects for rendering.
|
|
21
20
|
*/
|
|
22
|
-
|
|
21
|
+
const getFormPages = (pages, components, formData) => {
|
|
23
22
|
if (Array.isArray(pages)) {
|
|
24
|
-
return pages.map(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
});
|
|
23
|
+
return pages.map((options, index) => _objectSpread(_objectSpread({}, (0, _getFormPage.default)(options, components, formData)), {}, {
|
|
24
|
+
index
|
|
25
|
+
}));
|
|
29
26
|
}
|
|
30
27
|
return [];
|
|
31
28
|
};
|