@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-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/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- 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 +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.scss +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.scss +1 -1
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +27 -40
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- 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 +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -4,63 +4,61 @@ var _setupFormData = _interopRequireDefault(require("./setupFormData"));
|
|
|
4
4
|
var _userProfile = _interopRequireDefault(require("../../json/userProfile.json"));
|
|
5
5
|
var _userProfileData = _interopRequireDefault(require("../../json/userProfile.data.json"));
|
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
describe('
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var PAGES = [];
|
|
18
|
-
var COMPONENTS = [{
|
|
7
|
+
/* eslint-disable import/no-named-default */
|
|
8
|
+
|
|
9
|
+
// Local imports
|
|
10
|
+
|
|
11
|
+
describe('utils', () => {
|
|
12
|
+
describe('Data', () => {
|
|
13
|
+
describe('setupFormData', () => {
|
|
14
|
+
it('should populate a simple form', () => {
|
|
15
|
+
const PAGES = [];
|
|
16
|
+
const COMPONENTS = [{
|
|
19
17
|
fieldId: 'testField',
|
|
20
18
|
source: {
|
|
21
19
|
field: 'sourceField'
|
|
22
20
|
}
|
|
23
21
|
}];
|
|
24
|
-
|
|
22
|
+
const DATA = {
|
|
25
23
|
sourceField: 'VALUE'
|
|
26
24
|
};
|
|
27
|
-
|
|
25
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
28
26
|
expect(RESULT).toEqual({
|
|
29
27
|
sourceField: 'VALUE',
|
|
30
28
|
testField: 'VALUE'
|
|
31
29
|
});
|
|
32
30
|
});
|
|
33
|
-
it('should handle a missing source field',
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
it('should handle a missing source field', () => {
|
|
32
|
+
const PAGES = [];
|
|
33
|
+
const COMPONENTS = [{
|
|
36
34
|
fieldId: 'testField',
|
|
37
35
|
source: {
|
|
38
36
|
field: 'otherSourceField'
|
|
39
37
|
}
|
|
40
38
|
}];
|
|
41
|
-
|
|
39
|
+
const DATA = {
|
|
42
40
|
sourceField: 'VALUE'
|
|
43
41
|
};
|
|
44
|
-
|
|
42
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
45
43
|
expect(RESULT).toEqual({
|
|
46
44
|
sourceField: 'VALUE',
|
|
47
45
|
testField: undefined
|
|
48
46
|
});
|
|
49
47
|
});
|
|
50
|
-
it('should handle a nested source field',
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
it('should handle a nested source field', () => {
|
|
49
|
+
const PAGES = [];
|
|
50
|
+
const COMPONENTS = [{
|
|
53
51
|
fieldId: 'testField',
|
|
54
52
|
source: {
|
|
55
53
|
field: 'nested.sourceField'
|
|
56
54
|
}
|
|
57
55
|
}];
|
|
58
|
-
|
|
56
|
+
const DATA = {
|
|
59
57
|
nested: {
|
|
60
58
|
sourceField: 'VALUE'
|
|
61
59
|
}
|
|
62
60
|
};
|
|
63
|
-
|
|
61
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
64
62
|
expect(RESULT).toEqual({
|
|
65
63
|
nested: {
|
|
66
64
|
sourceField: 'VALUE'
|
|
@@ -68,20 +66,20 @@ describe('utils', function () {
|
|
|
68
66
|
testField: 'VALUE'
|
|
69
67
|
});
|
|
70
68
|
});
|
|
71
|
-
it('should handle a missing nested source field',
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
it('should handle a missing nested source field', () => {
|
|
70
|
+
const PAGES = [];
|
|
71
|
+
const COMPONENTS = [{
|
|
74
72
|
fieldId: 'testField',
|
|
75
73
|
source: {
|
|
76
74
|
field: 'nested.otherSourceField'
|
|
77
75
|
}
|
|
78
76
|
}];
|
|
79
|
-
|
|
77
|
+
const DATA = {
|
|
80
78
|
nested: {
|
|
81
79
|
sourceField: 'VALUE'
|
|
82
80
|
}
|
|
83
81
|
};
|
|
84
|
-
|
|
82
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
85
83
|
expect(RESULT).toEqual({
|
|
86
84
|
nested: {
|
|
87
85
|
sourceField: 'VALUE'
|
|
@@ -89,20 +87,20 @@ describe('utils', function () {
|
|
|
89
87
|
testField: undefined
|
|
90
88
|
});
|
|
91
89
|
});
|
|
92
|
-
it('should handle an entirely missing nested source field',
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
it('should handle an entirely missing nested source field', () => {
|
|
91
|
+
const PAGES = [];
|
|
92
|
+
const COMPONENTS = [{
|
|
95
93
|
fieldId: 'testField',
|
|
96
94
|
source: {
|
|
97
95
|
field: 'otherNested.sourceField'
|
|
98
96
|
}
|
|
99
97
|
}];
|
|
100
|
-
|
|
98
|
+
const DATA = {
|
|
101
99
|
nested: {
|
|
102
100
|
sourceField: 'VALUE'
|
|
103
101
|
}
|
|
104
102
|
};
|
|
105
|
-
|
|
103
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
106
104
|
expect(RESULT).toEqual({
|
|
107
105
|
nested: {
|
|
108
106
|
sourceField: 'VALUE'
|
|
@@ -110,8 +108,8 @@ describe('utils', function () {
|
|
|
110
108
|
testField: undefined
|
|
111
109
|
});
|
|
112
110
|
});
|
|
113
|
-
it('should handle sources within pages',
|
|
114
|
-
|
|
111
|
+
it('should handle sources within pages', () => {
|
|
112
|
+
const PAGES = [{
|
|
115
113
|
components: [{
|
|
116
114
|
fieldId: 'pageField',
|
|
117
115
|
source: {
|
|
@@ -126,20 +124,20 @@ describe('utils', function () {
|
|
|
126
124
|
}
|
|
127
125
|
}]
|
|
128
126
|
}];
|
|
129
|
-
|
|
127
|
+
const COMPONENTS = [{
|
|
130
128
|
fieldId: 'testField',
|
|
131
129
|
source: {
|
|
132
130
|
field: 'nested.sourceField'
|
|
133
131
|
}
|
|
134
132
|
}];
|
|
135
|
-
|
|
133
|
+
const DATA = {
|
|
136
134
|
nested: {
|
|
137
135
|
sourceField: 'VALUE'
|
|
138
136
|
},
|
|
139
137
|
pageSourceField: 'PAGE 1',
|
|
140
138
|
secondPageSourceField: 'Bob'
|
|
141
139
|
};
|
|
142
|
-
|
|
140
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
143
141
|
expect(RESULT).toEqual({
|
|
144
142
|
nested: {
|
|
145
143
|
sourceField: 'VALUE'
|
|
@@ -151,8 +149,8 @@ describe('utils', function () {
|
|
|
151
149
|
secondPageField: 'Bob'
|
|
152
150
|
});
|
|
153
151
|
});
|
|
154
|
-
it('should ignore sources within pages that reference a top-level component',
|
|
155
|
-
|
|
152
|
+
it('should ignore sources within pages that reference a top-level component', () => {
|
|
153
|
+
const PAGES = [{
|
|
156
154
|
components: [{
|
|
157
155
|
fieldId: 'pageField',
|
|
158
156
|
use: 'testField',
|
|
@@ -168,20 +166,20 @@ describe('utils', function () {
|
|
|
168
166
|
}
|
|
169
167
|
}]
|
|
170
168
|
}];
|
|
171
|
-
|
|
169
|
+
const COMPONENTS = [{
|
|
172
170
|
fieldId: 'testField',
|
|
173
171
|
source: {
|
|
174
172
|
field: 'nested.sourceField'
|
|
175
173
|
}
|
|
176
174
|
}];
|
|
177
|
-
|
|
175
|
+
const DATA = {
|
|
178
176
|
nested: {
|
|
179
177
|
sourceField: 'VALUE'
|
|
180
178
|
},
|
|
181
179
|
pageSourceField: 'PAGE 1',
|
|
182
180
|
secondPageSourceField: 'Bob'
|
|
183
181
|
};
|
|
184
|
-
|
|
182
|
+
const RESULT = (0, _setupFormData.default)(PAGES, COMPONENTS, DATA);
|
|
185
183
|
expect(RESULT).toEqual({
|
|
186
184
|
nested: {
|
|
187
185
|
sourceField: 'VALUE'
|
|
@@ -192,21 +190,24 @@ describe('utils', function () {
|
|
|
192
190
|
secondPageField: 'Bob'
|
|
193
191
|
});
|
|
194
192
|
});
|
|
195
|
-
it('should populate data for the user profile configuration and source',
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
193
|
+
it('should populate data for the user profile configuration and source', () => {
|
|
194
|
+
const {
|
|
195
|
+
pages,
|
|
196
|
+
components
|
|
197
|
+
} = _userProfile.default;
|
|
198
|
+
const RESULT = (0, _setupFormData.default)(pages, components, _userProfileData.default);
|
|
199
199
|
|
|
200
200
|
// It should produce an aggregation of the original source data (USER_PROFILE_DATA)
|
|
201
201
|
// and data calculated for the fields, based on that source data.
|
|
202
|
-
expect(RESULT).toEqual(
|
|
202
|
+
expect(RESULT).toEqual({
|
|
203
|
+
..._userProfileData.default,
|
|
203
204
|
firstName: _userProfileData.default.currentUser.givenName,
|
|
204
205
|
surname: _userProfileData.default.currentUser.familyName,
|
|
205
206
|
team: _userProfileData.default.userDetails.defaultteam,
|
|
206
207
|
staffGradeId: _userProfileData.default.userDetails.gradeid,
|
|
207
208
|
linemanagerEmail: _userProfileData.default.userDetails.linemanagerEmail,
|
|
208
209
|
delegateEmails: _userProfileData.default.userDetails.delegateEmails
|
|
209
|
-
})
|
|
210
|
+
});
|
|
210
211
|
});
|
|
211
212
|
});
|
|
212
213
|
});
|
|
@@ -6,28 +6,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _models = require("../../models");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var setupRefDataUrlForComponents = function setupRefDataUrlForComponents(components, data) {
|
|
26
|
-
return components.map(function (component) {
|
|
27
|
-
return setupRefDataUrlForComponent(component, data);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component, data) {
|
|
9
|
+
/* eslint-disable no-use-before-define */
|
|
10
|
+
|
|
11
|
+
// Global imports
|
|
12
|
+
|
|
13
|
+
const setupRefDataForContainer = (container, data) => ({
|
|
14
|
+
...container,
|
|
15
|
+
components: setupRefDataUrlForComponents(container.components, data)
|
|
16
|
+
});
|
|
17
|
+
const setupRefDataForCollection = (collection, data) => ({
|
|
18
|
+
...collection,
|
|
19
|
+
item: setupRefDataUrlForComponents(collection.item, data)
|
|
20
|
+
});
|
|
21
|
+
const setupRefDataUrlForComponents = (components, data) => components.map(component => setupRefDataUrlForComponent(component, data));
|
|
22
|
+
const setupRefDataUrlForComponent = (component, data) => {
|
|
31
23
|
if (component) {
|
|
32
24
|
var _component$data, _component$data2;
|
|
33
25
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
@@ -40,11 +32,13 @@ var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component
|
|
|
40
32
|
return component;
|
|
41
33
|
}
|
|
42
34
|
if ((_component$data = component.data) !== null && _component$data !== void 0 && _component$data.url && !((_component$data2 = component.data) !== null && _component$data2 !== void 0 && _component$data2.skipUrlInterpolation)) {
|
|
43
|
-
return
|
|
44
|
-
|
|
35
|
+
return {
|
|
36
|
+
...component,
|
|
37
|
+
data: {
|
|
38
|
+
...component.data,
|
|
45
39
|
url: _copReactComponents.Utils.interpolateString(component.data.url, data)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
48
42
|
}
|
|
49
43
|
}
|
|
50
44
|
return component;
|
|
@@ -5,28 +5,28 @@ var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDat
|
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
|
@@ -6,24 +6,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _ = _interopRequireDefault(require(".."));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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); }
|
|
10
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
9
|
/**
|
|
16
10
|
* Apply properties to a page based on whether certain conditions are met.
|
|
17
11
|
* @param {object} page The page object.
|
|
18
12
|
* @returns A copy of the page object with any passing conditional
|
|
19
13
|
* properties applied.
|
|
20
14
|
*/
|
|
21
|
-
|
|
15
|
+
const applyConditionalProperties = page => {
|
|
22
16
|
if (!page.conditionalProperties) {
|
|
23
17
|
return page;
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
let pageWithProperties = {
|
|
20
|
+
...page
|
|
21
|
+
};
|
|
22
|
+
page.conditionalProperties.forEach(entry => {
|
|
27
23
|
if (_.default.Condition.met(entry.condition, page.formData[entry.condition.field])) {
|
|
28
24
|
pageWithProperties = Object.assign(pageWithProperties, entry.properties);
|
|
29
25
|
}
|
|
@@ -2,22 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var _applyConditionalProperties = _interopRequireDefault(require("./applyConditionalProperties"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
|
|
11
|
-
describe('utils.FormPage.applyConditionalProperties', function () {
|
|
12
|
-
it('should not change the page if there are no conditional properties', function () {
|
|
13
|
-
var PAGE = {
|
|
5
|
+
// Local imports
|
|
6
|
+
|
|
7
|
+
describe('utils.FormPage.applyConditionalProperties', () => {
|
|
8
|
+
it('should not change the page if there are no conditional properties', () => {
|
|
9
|
+
const PAGE = {
|
|
14
10
|
id: 'testPage'
|
|
15
11
|
};
|
|
16
|
-
|
|
12
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
17
13
|
expect(result).toEqual(PAGE);
|
|
18
14
|
});
|
|
19
|
-
it('should not apply properties with conditions that have not been met',
|
|
20
|
-
|
|
15
|
+
it('should not apply properties with conditions that have not been met', () => {
|
|
16
|
+
const PAGE = {
|
|
21
17
|
id: 'testPage',
|
|
22
18
|
conditionalProperties: [{
|
|
23
19
|
condition: {
|
|
@@ -33,11 +29,11 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
33
29
|
alpha: '012'
|
|
34
30
|
}
|
|
35
31
|
};
|
|
36
|
-
|
|
32
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
37
33
|
expect(result).toEqual(PAGE);
|
|
38
34
|
});
|
|
39
|
-
it('should apply properties with conditions that have been met',
|
|
40
|
-
|
|
35
|
+
it('should apply properties with conditions that have been met', () => {
|
|
36
|
+
const PAGE = {
|
|
41
37
|
id: 'testPage',
|
|
42
38
|
conditionalProperties: [{
|
|
43
39
|
condition: {
|
|
@@ -53,9 +49,10 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
53
49
|
alpha: '123'
|
|
54
50
|
}
|
|
55
51
|
};
|
|
56
|
-
|
|
57
|
-
expect(result).toEqual(
|
|
52
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
53
|
+
expect(result).toEqual({
|
|
54
|
+
...PAGE,
|
|
58
55
|
beta: '456'
|
|
59
|
-
})
|
|
56
|
+
});
|
|
60
57
|
});
|
|
61
58
|
});
|
|
@@ -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
|