@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
package/dist/setupTests.js
CHANGED
|
@@ -8,42 +8,41 @@ var _react = require("@testing-library/react");
|
|
|
8
8
|
var _reactHooks = require("@testing-library/react-hooks");
|
|
9
9
|
var _reactDom = require("react-dom");
|
|
10
10
|
var _context = require("./context");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var children = _ref.children;
|
|
11
|
+
const renderWithValidation = (ui, options) => (0, _react.render)( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
12
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
13
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
14
|
+
key: "vcp"
|
|
15
|
+
}, ui)), options);
|
|
16
|
+
exports.renderWithValidation = renderWithValidation;
|
|
17
|
+
const rerenderWithValidation = (rerenderCallback, ui, options) => rerenderCallback( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
18
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
19
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
20
|
+
key: "vcp"
|
|
21
|
+
}, ui)), options);
|
|
22
|
+
exports.rerenderWithValidation = rerenderWithValidation;
|
|
23
|
+
const renderDomWithValidation = (ui, container, options) => (0, _reactDom.render)( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
24
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
25
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
26
|
+
key: "vcp"
|
|
27
|
+
}, ui)), container);
|
|
28
|
+
exports.renderDomWithValidation = renderDomWithValidation;
|
|
29
|
+
const renderHookWithProvider = (hook, options) => {
|
|
30
|
+
const wrapper = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
children
|
|
33
|
+
} = _ref;
|
|
35
34
|
return /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
36
35
|
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
37
36
|
}, children);
|
|
38
37
|
};
|
|
39
|
-
return (0, _reactHooks.renderHook)(
|
|
40
|
-
|
|
41
|
-
}, {
|
|
42
|
-
wrapper: wrapper
|
|
38
|
+
return (0, _reactHooks.renderHook)(() => hook(), {
|
|
39
|
+
wrapper
|
|
43
40
|
});
|
|
44
41
|
};
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
exports.renderHookWithProvider = renderHookWithProvider;
|
|
43
|
+
const expectObjectLike = (received, expected) => {
|
|
44
|
+
Object.keys(expected).forEach(key => {
|
|
47
45
|
expect(received[key]).toEqual(expected[key]);
|
|
48
46
|
});
|
|
49
|
-
};
|
|
47
|
+
};
|
|
48
|
+
exports.expectObjectLike = expectObjectLike;
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
7
|
+
const getPageFromCYALink = link => {
|
|
8
8
|
if (link.page) {
|
|
9
9
|
return link.page;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
const url = link.href || link.url;
|
|
12
12
|
if (url) {
|
|
13
13
|
return url.split('/').pop();
|
|
14
14
|
}
|
|
@@ -28,14 +28,14 @@ var getPageFromCYALink = function getPageFromCYALink(link) {
|
|
|
28
28
|
* method will convert both by taking the final part of the relative path:
|
|
29
29
|
* - `href: '/bravo'` => `page: 'bravo'`
|
|
30
30
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
const getCYAAction = (readonly, page, onAction) => {
|
|
32
|
+
const cyaLink = page === null || page === void 0 ? void 0 : page.cya_link;
|
|
33
33
|
if (readonly !== true && cyaLink) {
|
|
34
34
|
return {
|
|
35
35
|
page: getPageFromCYALink(cyaLink) || page.id || '#',
|
|
36
36
|
label: cyaLink.label || 'Change',
|
|
37
37
|
aria_suffix: cyaLink.aria_suffix,
|
|
38
|
-
onAction
|
|
38
|
+
onAction
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
return null;
|
|
@@ -4,116 +4,114 @@ var _getCYAAction = _interopRequireDefault(require("./getCYAAction"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils',
|
|
8
|
-
describe('CheckYourAnswers',
|
|
9
|
-
describe('getCYAAction',
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
it('should return null if readonly', function () {
|
|
17
|
-
expect((0, _getCYAAction.default)(true, {}, function () {})).toBeNull();
|
|
7
|
+
describe('utils', () => {
|
|
8
|
+
describe('CheckYourAnswers', () => {
|
|
9
|
+
describe('getCYAAction', () => {
|
|
10
|
+
const getPage = (cyaLink, id) => ({
|
|
11
|
+
cya_link: cyaLink,
|
|
12
|
+
id
|
|
13
|
+
});
|
|
14
|
+
it('should return null if readonly', () => {
|
|
15
|
+
expect((0, _getCYAAction.default)(true, {}, () => {})).toBeNull();
|
|
18
16
|
});
|
|
19
|
-
it('should return null if there is no cya_link',
|
|
20
|
-
expect((0, _getCYAAction.default)(false, null,
|
|
17
|
+
it('should return null if there is no cya_link', () => {
|
|
18
|
+
expect((0, _getCYAAction.default)(false, null, () => {})).toBeNull();
|
|
21
19
|
});
|
|
22
|
-
it('should return a default action if the cya_link is empty and the page has no id',
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
it('should return a default action if the cya_link is empty and the page has no id', () => {
|
|
21
|
+
const cyaLink = {};
|
|
22
|
+
const onAction = () => {};
|
|
25
23
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
26
24
|
page: '#',
|
|
27
25
|
label: 'Change',
|
|
28
|
-
onAction
|
|
26
|
+
onAction
|
|
29
27
|
});
|
|
30
28
|
});
|
|
31
|
-
it('should return a default action if the cya_link is empty but the page has an id',
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
it('should return a default action if the cya_link is empty but the page has an id', () => {
|
|
30
|
+
const PAGE_ID = 'page-id';
|
|
31
|
+
const cyaLink = {};
|
|
32
|
+
const onAction = () => {};
|
|
35
33
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink, PAGE_ID), onAction)).toEqual({
|
|
36
34
|
page: PAGE_ID,
|
|
37
35
|
label: 'Change',
|
|
38
|
-
onAction
|
|
36
|
+
onAction
|
|
39
37
|
});
|
|
40
38
|
});
|
|
41
|
-
it('should use page specified in cya_link',
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
it('should use page specified in cya_link', () => {
|
|
40
|
+
const PAGE = 'alpha';
|
|
41
|
+
const cyaLink = {
|
|
44
42
|
page: PAGE
|
|
45
43
|
};
|
|
46
|
-
|
|
44
|
+
const onAction = () => {};
|
|
47
45
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
48
46
|
page: PAGE,
|
|
49
47
|
label: 'Change',
|
|
50
|
-
onAction
|
|
48
|
+
onAction
|
|
51
49
|
});
|
|
52
50
|
});
|
|
53
|
-
it('should convert an href specified in cya_link',
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
it('should convert an href specified in cya_link', () => {
|
|
52
|
+
const HREF = '/alpha/bravo';
|
|
53
|
+
const cyaLink = {
|
|
56
54
|
href: HREF
|
|
57
55
|
};
|
|
58
|
-
|
|
56
|
+
const onAction = () => {};
|
|
59
57
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
60
58
|
page: 'bravo',
|
|
61
59
|
label: 'Change',
|
|
62
|
-
onAction
|
|
60
|
+
onAction
|
|
63
61
|
});
|
|
64
62
|
});
|
|
65
|
-
it('should convert a url specified in cya_link',
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
it('should convert a url specified in cya_link', () => {
|
|
64
|
+
const URL = '/alpha/bravo';
|
|
65
|
+
const cyaLink = {
|
|
68
66
|
url: URL
|
|
69
67
|
};
|
|
70
|
-
|
|
68
|
+
const onAction = () => {};
|
|
71
69
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
72
70
|
page: 'bravo',
|
|
73
71
|
label: 'Change',
|
|
74
|
-
onAction
|
|
72
|
+
onAction
|
|
75
73
|
});
|
|
76
74
|
});
|
|
77
|
-
it('should use label specified in cya_link',
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
it('should use label specified in cya_link', () => {
|
|
76
|
+
const LABEL = 'Alpha Bravo Charlie';
|
|
77
|
+
const cyaLink = {
|
|
80
78
|
label: LABEL
|
|
81
79
|
};
|
|
82
|
-
|
|
80
|
+
const onAction = () => {};
|
|
83
81
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
84
82
|
page: '#',
|
|
85
83
|
label: LABEL,
|
|
86
|
-
onAction
|
|
84
|
+
onAction
|
|
87
85
|
});
|
|
88
86
|
});
|
|
89
|
-
it('should use aria_suffix specified in cya_link',
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
it('should use aria_suffix specified in cya_link', () => {
|
|
88
|
+
const ARIA_SUFFIX = 'This is hidden text';
|
|
89
|
+
const cyaLink = {
|
|
92
90
|
aria_suffix: ARIA_SUFFIX
|
|
93
91
|
};
|
|
94
|
-
|
|
92
|
+
const onAction = () => {};
|
|
95
93
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
96
94
|
page: '#',
|
|
97
95
|
label: 'Change',
|
|
98
96
|
aria_suffix: ARIA_SUFFIX,
|
|
99
|
-
onAction
|
|
97
|
+
onAction
|
|
100
98
|
});
|
|
101
99
|
});
|
|
102
|
-
it('should use all properties specified in cya_link',
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
it('should use all properties specified in cya_link', () => {
|
|
101
|
+
const PAGE = 'alpha';
|
|
102
|
+
const LABEL = 'Alpha Bravo Charlie';
|
|
103
|
+
const ARIA_SUFFIX = 'This is hidden text';
|
|
104
|
+
const cyaLink = {
|
|
107
105
|
label: LABEL,
|
|
108
106
|
page: PAGE,
|
|
109
107
|
aria_suffix: ARIA_SUFFIX
|
|
110
108
|
};
|
|
111
|
-
|
|
109
|
+
const onAction = () => {};
|
|
112
110
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
113
111
|
page: PAGE,
|
|
114
112
|
label: LABEL,
|
|
115
113
|
aria_suffix: ARIA_SUFFIX,
|
|
116
|
-
onAction
|
|
114
|
+
onAction
|
|
117
115
|
});
|
|
118
116
|
});
|
|
119
117
|
});
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
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
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
8
|
var _models = require("../../models");
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
16
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
18
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
19
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports
|
|
9
|
+
// Global imports
|
|
10
|
+
|
|
21
11
|
// Local imports
|
|
12
|
+
|
|
22
13
|
/**
|
|
23
14
|
* Gets an action object that triggers editing of an entry in a page collection.
|
|
24
15
|
*
|
|
@@ -30,35 +21,34 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global
|
|
|
30
21
|
* @param {array} activeIds A list of active Ids that must be set to make Item the active entry.
|
|
31
22
|
* @returns The resulting action object.
|
|
32
23
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
const getCYACollectionChangeAction = function (page, item, onAction, labelCount, action) {
|
|
25
|
+
let activeIds = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
26
|
+
const label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.change;
|
|
36
27
|
return {
|
|
37
28
|
pageId: page.id,
|
|
38
29
|
fieldId: "change".concat(labelCount).concat(action.page),
|
|
39
30
|
key: "change".concat(labelCount).concat(action.page),
|
|
40
31
|
type: 'action',
|
|
41
32
|
action: {
|
|
42
|
-
onAction:
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
onAction: row => {
|
|
34
|
+
const changeCallback = cyaData => {
|
|
35
|
+
const data = cyaData;
|
|
45
36
|
// Apply the activeIds to make sure we're editing the right item.
|
|
46
37
|
// Not using the spread syntax as data could be a huge object.
|
|
47
|
-
Object.entries(activeIds).forEach(
|
|
48
|
-
|
|
49
|
-
activeIdKey = _entry[0],
|
|
50
|
-
activeId = _entry[1];
|
|
38
|
+
Object.entries(activeIds).forEach(entry => {
|
|
39
|
+
const [activeIdKey, activeId] = entry;
|
|
51
40
|
data[activeIdKey] = activeId;
|
|
52
41
|
});
|
|
53
42
|
return data;
|
|
54
43
|
};
|
|
55
|
-
|
|
44
|
+
onAction(action.page ? {
|
|
56
45
|
pageId: action.page
|
|
57
46
|
} : row, changeCallback);
|
|
58
47
|
},
|
|
59
|
-
label: _copReactComponents.Utils.interpolateString(label,
|
|
48
|
+
label: _copReactComponents.Utils.interpolateString(label, {
|
|
49
|
+
...item,
|
|
60
50
|
index: labelCount
|
|
61
|
-
})
|
|
51
|
+
})
|
|
62
52
|
}
|
|
63
53
|
};
|
|
64
54
|
};
|
|
@@ -2,26 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
var _getCYACollectionChangeAction = _interopRequireDefault(require("./getCYACollectionChangeAction"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
describe('utils', function () {
|
|
12
|
-
describe('CheckYourAnswers', function () {
|
|
13
|
-
describe('getCYACollectionChangeAction', function () {
|
|
14
|
-
var PAGE = {
|
|
5
|
+
// Local imports
|
|
6
|
+
|
|
7
|
+
describe('utils', () => {
|
|
8
|
+
describe('CheckYourAnswers', () => {
|
|
9
|
+
describe('getCYACollectionChangeAction', () => {
|
|
10
|
+
const PAGE = {
|
|
15
11
|
id: 2,
|
|
16
12
|
collection: {
|
|
17
13
|
name: 'collectionName'
|
|
18
14
|
}
|
|
19
15
|
};
|
|
20
|
-
|
|
16
|
+
const ITEM = {
|
|
21
17
|
id: 2
|
|
22
18
|
};
|
|
23
|
-
|
|
24
|
-
page:
|
|
19
|
+
let TEST_DATA = {
|
|
20
|
+
page: {
|
|
21
|
+
...PAGE
|
|
22
|
+
},
|
|
25
23
|
collectionName: [{
|
|
26
24
|
id: 1
|
|
27
25
|
}, {
|
|
@@ -31,28 +29,28 @@ describe('utils', function () {
|
|
|
31
29
|
}],
|
|
32
30
|
collectionNameActiveId: 3
|
|
33
31
|
};
|
|
34
|
-
it('should change activeId to the selected item and call onAction with the correct page',
|
|
35
|
-
|
|
32
|
+
it('should change activeId to the selected item and call onAction with the correct page', () => {
|
|
33
|
+
const ON_ACTION = (row, callback) => {
|
|
36
34
|
expect(row.id).toEqual(2);
|
|
37
35
|
TEST_DATA = callback(TEST_DATA);
|
|
38
36
|
};
|
|
39
|
-
|
|
37
|
+
const action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, ON_ACTION, 0, {}, {
|
|
40
38
|
collectionNameActiveId: 2
|
|
41
39
|
});
|
|
42
40
|
action.action.onAction(PAGE);
|
|
43
41
|
expect(TEST_DATA.collectionNameActiveId).toEqual(2);
|
|
44
42
|
});
|
|
45
|
-
it('should change all necessary activeIds when moving to edit a nested collection entry',
|
|
46
|
-
|
|
43
|
+
it('should change all necessary activeIds when moving to edit a nested collection entry', () => {
|
|
44
|
+
const NESTED_COLLECTION_PAGE = {
|
|
47
45
|
id: 'pageid',
|
|
48
46
|
collection: {
|
|
49
47
|
name: 'parent.child.grandchild'
|
|
50
48
|
}
|
|
51
49
|
};
|
|
52
|
-
|
|
50
|
+
const NESTED_ITEM = {
|
|
53
51
|
id: '001'
|
|
54
52
|
};
|
|
55
|
-
|
|
53
|
+
let NESTED_TEST_DATA = {
|
|
56
54
|
parentActiveId: '000',
|
|
57
55
|
childActiveId: '000',
|
|
58
56
|
grandchildActiveId: '000',
|
|
@@ -72,32 +70,32 @@ describe('utils', function () {
|
|
|
72
70
|
}]
|
|
73
71
|
}]
|
|
74
72
|
};
|
|
75
|
-
|
|
73
|
+
const ACTIVE_IDS = {
|
|
76
74
|
parentActiveId: '001',
|
|
77
75
|
childActiveId: '001',
|
|
78
76
|
grandchildActiveId: '001'
|
|
79
77
|
};
|
|
80
|
-
|
|
78
|
+
const ON_ACTION = (row, callback) => {
|
|
81
79
|
expect(row.id).toEqual(2);
|
|
82
80
|
NESTED_TEST_DATA = callback(NESTED_TEST_DATA);
|
|
83
81
|
};
|
|
84
|
-
|
|
82
|
+
const action = (0, _getCYACollectionChangeAction.default)(NESTED_COLLECTION_PAGE, NESTED_ITEM, ON_ACTION, 0, {}, ACTIVE_IDS);
|
|
85
83
|
action.action.onAction(PAGE);
|
|
86
84
|
expect(NESTED_TEST_DATA.parentActiveId).toEqual('001');
|
|
87
85
|
expect(NESTED_TEST_DATA.childActiveId).toEqual('001');
|
|
88
86
|
expect(NESTED_TEST_DATA.grandchildActiveId).toEqual('001');
|
|
89
87
|
});
|
|
90
|
-
it('should not change any active IDs if they are not provided',
|
|
91
|
-
|
|
88
|
+
it('should not change any active IDs if they are not provided', () => {
|
|
89
|
+
const NESTED_COLLECTION_PAGE = {
|
|
92
90
|
id: 'pageid',
|
|
93
91
|
collection: {
|
|
94
92
|
name: 'parent.child.grandchild'
|
|
95
93
|
}
|
|
96
94
|
};
|
|
97
|
-
|
|
95
|
+
const NESTED_ITEM = {
|
|
98
96
|
id: '001'
|
|
99
97
|
};
|
|
100
|
-
|
|
98
|
+
let NESTED_TEST_DATA = {
|
|
101
99
|
parentActiveId: '000',
|
|
102
100
|
childActiveId: '000',
|
|
103
101
|
grandchildActiveId: '000',
|
|
@@ -117,26 +115,26 @@ describe('utils', function () {
|
|
|
117
115
|
}]
|
|
118
116
|
}]
|
|
119
117
|
};
|
|
120
|
-
|
|
118
|
+
const ON_ACTION = (row, callback) => {
|
|
121
119
|
expect(row.id).toEqual(2);
|
|
122
120
|
NESTED_TEST_DATA = callback(NESTED_TEST_DATA);
|
|
123
121
|
};
|
|
124
|
-
|
|
122
|
+
const action = (0, _getCYACollectionChangeAction.default)(NESTED_COLLECTION_PAGE, NESTED_ITEM, ON_ACTION, 0, {});
|
|
125
123
|
action.action.onAction(PAGE);
|
|
126
124
|
expect(NESTED_TEST_DATA.parentActiveId).toEqual('000');
|
|
127
125
|
expect(NESTED_TEST_DATA.childActiveId).toEqual('000');
|
|
128
126
|
expect(NESTED_TEST_DATA.grandchildActiveId).toEqual('000');
|
|
129
127
|
});
|
|
130
|
-
it('should get label to custom value',
|
|
131
|
-
|
|
128
|
+
it('should get label to custom value', () => {
|
|
129
|
+
const action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, () => {}, 0, {
|
|
132
130
|
label: 'customName'
|
|
133
131
|
}, {
|
|
134
132
|
collectionNameActiveId: 2
|
|
135
133
|
});
|
|
136
134
|
expect(action.action.label).toEqual('customName');
|
|
137
135
|
});
|
|
138
|
-
it('should call onAction with a custom page',
|
|
139
|
-
|
|
136
|
+
it('should call onAction with a custom page', () => {
|
|
137
|
+
const PAGE_WITH_CUSTOM_DESTINATION = {
|
|
140
138
|
id: 2,
|
|
141
139
|
collection: {
|
|
142
140
|
name: 'collectionName',
|
|
@@ -147,11 +145,11 @@ describe('utils', function () {
|
|
|
147
145
|
}]
|
|
148
146
|
}
|
|
149
147
|
};
|
|
150
|
-
|
|
148
|
+
const ON_ACTION = (page, callback) => {
|
|
151
149
|
expect(page.pageId).toEqual('confirmDelete');
|
|
152
150
|
TEST_DATA = callback(TEST_DATA);
|
|
153
151
|
};
|
|
154
|
-
|
|
152
|
+
const action = (0, _getCYACollectionChangeAction.default)(PAGE_WITH_CUSTOM_DESTINATION, ITEM, ON_ACTION, 0, PAGE_WITH_CUSTOM_DESTINATION.collection.actions[0], {
|
|
155
153
|
collectionNameActiveId: 2
|
|
156
154
|
});
|
|
157
155
|
action.action.onAction({});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
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
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -9,21 +8,11 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
9
8
|
var _CollectionPage = _interopRequireDefault(require("../CollectionPage"));
|
|
10
9
|
var _models = require("../../models");
|
|
11
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
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; }
|
|
15
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
-
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); }
|
|
17
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
18
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
20
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
21
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
22
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports
|
|
11
|
+
// Global imports
|
|
12
|
+
|
|
23
13
|
// Local imports
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
14
|
+
|
|
15
|
+
const isValidIndex = value => typeof value === 'number' && value >= 0;
|
|
27
16
|
|
|
28
17
|
/**
|
|
29
18
|
* Gets an action object that triggers the removal of an item from a page Collection.
|
|
@@ -36,42 +25,39 @@ var isValidIndex = function isValidIndex(value) {
|
|
|
36
25
|
* @param {array} activeIds A list of active Ids that must be set to make Item the active entry.
|
|
37
26
|
* @returns The resulting action object.
|
|
38
27
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
const getCYACollectionDeleteAction = (page, item, onAction, labelCount, action, activeIds) => {
|
|
29
|
+
const label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.remove;
|
|
41
30
|
return {
|
|
42
31
|
pageId: page.id,
|
|
43
32
|
fieldId: "delete".concat(labelCount),
|
|
44
33
|
key: "delete".concat(labelCount),
|
|
45
34
|
type: 'action',
|
|
46
35
|
action: {
|
|
47
|
-
onAction:
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
onAction: () => {
|
|
37
|
+
const deleteCallback = cyaData => {
|
|
38
|
+
const data = cyaData;
|
|
50
39
|
if (!activeIds) {
|
|
51
40
|
return data;
|
|
52
41
|
}
|
|
53
42
|
// Apply the activeIds to make sure we're deleting the right item.
|
|
54
43
|
// Not using the spread syntax as data could be a huge object.
|
|
55
|
-
Object.entries(activeIds).forEach(
|
|
56
|
-
|
|
57
|
-
activeIdKey = _entry[0],
|
|
58
|
-
activeId = _entry[1];
|
|
44
|
+
Object.entries(activeIds).forEach(entry => {
|
|
45
|
+
const [activeIdKey, activeId] = entry;
|
|
59
46
|
data[activeIdKey] = activeId;
|
|
60
47
|
});
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return entry.id === item.id;
|
|
64
|
-
});
|
|
48
|
+
const collectionData = _CollectionPage.default.getData(page.collection.name, data);
|
|
49
|
+
const indexToDelete = collectionData === null || collectionData === void 0 ? void 0 : collectionData.findIndex(entry => entry.id === item.id);
|
|
65
50
|
if (isValidIndex(indexToDelete)) {
|
|
66
51
|
collectionData.splice(indexToDelete, 1);
|
|
67
52
|
}
|
|
68
53
|
return data;
|
|
69
54
|
};
|
|
70
|
-
|
|
55
|
+
onAction(null, deleteCallback);
|
|
71
56
|
},
|
|
72
|
-
label: _copReactComponents.Utils.interpolateString(label,
|
|
57
|
+
label: _copReactComponents.Utils.interpolateString(label, {
|
|
58
|
+
...item,
|
|
73
59
|
index: labelCount
|
|
74
|
-
})
|
|
60
|
+
})
|
|
75
61
|
}
|
|
76
62
|
};
|
|
77
63
|
};
|