@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +22 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +143 -105
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +942 -463
- package/dist/components/CollectionPage/CollectionPage.js +63 -73
- package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
- package/dist/components/CollectionSummary/CollectionSummary.js +131 -102
- package/dist/components/CollectionSummary/CollectionSummary.scss +5 -0
- package/dist/components/CollectionSummary/CollectionSummary.test.js +233 -173
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +57 -48
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +156 -112
- package/dist/components/CollectionSummary/SummaryCard.scss +6 -0
- package/dist/components/CollectionSummary/SummaryCard.test.js +1023 -934
- package/dist/components/CollectionSummary/SummaryCardDetails.js +138 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +15 -4
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
- package/dist/components/FormComponent/Collection.js +108 -74
- package/dist/components/FormComponent/Collection.test.js +1081 -909
- package/dist/components/FormComponent/Container.js +39 -40
- package/dist/components/FormComponent/Container.test.js +412 -312
- package/dist/components/FormComponent/FormComponent.js +73 -70
- package/dist/components/FormComponent/FormComponent.test.js +414 -353
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +93 -66
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +180 -143
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +39 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +74 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +44 -44
- package/dist/components/FormRenderer/onPageAction.test.js +208 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +34 -21
- package/dist/components/SummaryList/SummaryList.scss +15 -0
- package/dist/components/SummaryList/SummaryList.test.js +226 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +92 -49
- package/dist/components/TaskList/TaskList.scss +24 -0
- package/dist/components/TaskList/TaskList.test.js +255 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +80 -57
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +94 -43
- package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- package/dist/json/actions.json +17 -0
- package/dist/json/actionsNoSave.json +17 -0
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +113 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +320 -162
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
- package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
- package/dist/utils/Component/getComponent.js +94 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +6 -1
- package/dist/utils/Component/optionIsSelected.test.js +35 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +25 -16
- package/dist/utils/Condition/meetsCondition.test.js +402 -402
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/deleteValues.js +22 -0
- package/dist/utils/Data/deleteValues.test.js +57 -0
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +100 -85
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +31 -24
- package/dist/utils/Data/getOptions.test.js +53 -35
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +3 -1
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +4 -2
- package/dist/utils/FormPage/showFormPage.js +7 -3
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -77
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +16 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/deleteValueInFormData.js +26 -0
- package/dist/utils/Operate/deleteValueInFormData.test.js +60 -0
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
- package/dist/utils/Operate/getLength.js +50 -0
- package/dist/utils/Operate/getLength.test.js +89 -0
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
- package/dist/utils/Operate/runPageOperations.js +11 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +27 -21
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +10 -7
- package/dist/utils/Validate/additional/index.test.js +78 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeOneOf.js +21 -0
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +36 -0
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +21 -18
- package/dist/utils/Validate/validateComponent.test.js +176 -166
- package/dist/utils/Validate/validateContainer.js +20 -15
- package/dist/utils/Validate/validateContainer.test.js +52 -58
- package/dist/utils/Validate/validateDate.js +21 -15
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +22 -19
- package/dist/utils/Validate/validatePage.test.js +203 -215
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +26 -11
- package/dist/utils/Validate/validateTime.test.js +62 -16
- package/dist/utils/index.js +9 -7
- package/package.json +2 -2
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
package/dist/setupTests.js
CHANGED
|
@@ -8,41 +8,42 @@ 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
|
-
|
|
11
|
+
var renderWithValidation = exports.renderWithValidation = function renderWithValidation(ui, options) {
|
|
12
|
+
return (0, _react.render)( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
13
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
14
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
15
|
+
key: "vcp"
|
|
16
|
+
}, ui)), options);
|
|
17
|
+
};
|
|
18
|
+
var rerenderWithValidation = exports.rerenderWithValidation = function rerenderWithValidation(rerenderCallback, ui, options) {
|
|
19
|
+
return rerenderCallback( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
20
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
21
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
22
|
+
key: "vcp"
|
|
23
|
+
}, ui)), options);
|
|
24
|
+
};
|
|
25
|
+
var renderDomWithValidation = exports.renderDomWithValidation = function renderDomWithValidation(ui, container, options) {
|
|
26
|
+
return (0, _reactDom.render)( /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
27
|
+
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
28
|
+
}, /*#__PURE__*/React.createElement(_context.ValidationContextProvider, {
|
|
29
|
+
key: "vcp"
|
|
30
|
+
}, ui)), container);
|
|
31
|
+
};
|
|
32
|
+
var renderHookWithProvider = exports.renderHookWithProvider = function renderHookWithProvider(hook, options) {
|
|
33
|
+
var wrapper = function wrapper(_ref) {
|
|
34
|
+
var children = _ref.children;
|
|
34
35
|
return /*#__PURE__*/React.createElement(_context.HooksContextProvider, {
|
|
35
36
|
overrides: options === null || options === void 0 ? void 0 : options.hooks
|
|
36
37
|
}, children);
|
|
37
38
|
};
|
|
38
|
-
return (0, _reactHooks.renderHook)(
|
|
39
|
-
|
|
39
|
+
return (0, _reactHooks.renderHook)(function () {
|
|
40
|
+
return hook();
|
|
41
|
+
}, {
|
|
42
|
+
wrapper: wrapper
|
|
40
43
|
});
|
|
41
44
|
};
|
|
42
|
-
exports.
|
|
43
|
-
|
|
44
|
-
Object.keys(expected).forEach(key => {
|
|
45
|
+
var expectObjectLike = exports.expectObjectLike = function expectObjectLike(received, expected) {
|
|
46
|
+
Object.keys(expected).forEach(function (key) {
|
|
45
47
|
expect(received[key]).toEqual(expected[key]);
|
|
46
48
|
});
|
|
47
|
-
};
|
|
48
|
-
exports.expectObjectLike = expectObjectLike;
|
|
49
|
+
};
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
7
|
+
var getPageFromCYALink = function getPageFromCYALink(link) {
|
|
8
8
|
if (link.page) {
|
|
9
9
|
return link.page;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
var url = link.href || link.url;
|
|
12
12
|
if (url) {
|
|
13
13
|
return url.split('/').pop();
|
|
14
14
|
}
|
|
@@ -28,14 +28,14 @@ const 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
|
+
var getCYAAction = function getCYAAction(readonly, page, onAction) {
|
|
32
|
+
var 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: onAction
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
return null;
|
|
@@ -4,114 +4,116 @@ 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
|
-
|
|
7
|
+
describe('utils', function () {
|
|
8
|
+
describe('CheckYourAnswers', function () {
|
|
9
|
+
describe('getCYAAction', function () {
|
|
10
|
+
var getPage = function getPage(cyaLink, id) {
|
|
11
|
+
return {
|
|
12
|
+
cya_link: cyaLink,
|
|
13
|
+
id: id
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
it('should return null if readonly', function () {
|
|
17
|
+
expect((0, _getCYAAction.default)(true, {}, function () {})).toBeNull();
|
|
16
18
|
});
|
|
17
|
-
it('should return null if there is no cya_link', ()
|
|
18
|
-
expect((0, _getCYAAction.default)(false, null, ()
|
|
19
|
+
it('should return null if there is no cya_link', function () {
|
|
20
|
+
expect((0, _getCYAAction.default)(false, null, function () {})).toBeNull();
|
|
19
21
|
});
|
|
20
|
-
it('should return a default action if the cya_link is empty and the page has no id', ()
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
it('should return a default action if the cya_link is empty and the page has no id', function () {
|
|
23
|
+
var cyaLink = {};
|
|
24
|
+
var onAction = function onAction() {};
|
|
23
25
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
24
26
|
page: '#',
|
|
25
27
|
label: 'Change',
|
|
26
|
-
onAction
|
|
28
|
+
onAction: onAction
|
|
27
29
|
});
|
|
28
30
|
});
|
|
29
|
-
it('should return a default action if the cya_link is empty but the page has an id', ()
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
it('should return a default action if the cya_link is empty but the page has an id', function () {
|
|
32
|
+
var PAGE_ID = 'page-id';
|
|
33
|
+
var cyaLink = {};
|
|
34
|
+
var onAction = function onAction() {};
|
|
33
35
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink, PAGE_ID), onAction)).toEqual({
|
|
34
36
|
page: PAGE_ID,
|
|
35
37
|
label: 'Change',
|
|
36
|
-
onAction
|
|
38
|
+
onAction: onAction
|
|
37
39
|
});
|
|
38
40
|
});
|
|
39
|
-
it('should use page specified in cya_link', ()
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
it('should use page specified in cya_link', function () {
|
|
42
|
+
var PAGE = 'alpha';
|
|
43
|
+
var cyaLink = {
|
|
42
44
|
page: PAGE
|
|
43
45
|
};
|
|
44
|
-
|
|
46
|
+
var onAction = function onAction() {};
|
|
45
47
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
46
48
|
page: PAGE,
|
|
47
49
|
label: 'Change',
|
|
48
|
-
onAction
|
|
50
|
+
onAction: onAction
|
|
49
51
|
});
|
|
50
52
|
});
|
|
51
|
-
it('should convert an href specified in cya_link', ()
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
it('should convert an href specified in cya_link', function () {
|
|
54
|
+
var HREF = '/alpha/bravo';
|
|
55
|
+
var cyaLink = {
|
|
54
56
|
href: HREF
|
|
55
57
|
};
|
|
56
|
-
|
|
58
|
+
var onAction = function onAction() {};
|
|
57
59
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
58
60
|
page: 'bravo',
|
|
59
61
|
label: 'Change',
|
|
60
|
-
onAction
|
|
62
|
+
onAction: onAction
|
|
61
63
|
});
|
|
62
64
|
});
|
|
63
|
-
it('should convert a url specified in cya_link', ()
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
it('should convert a url specified in cya_link', function () {
|
|
66
|
+
var URL = '/alpha/bravo';
|
|
67
|
+
var cyaLink = {
|
|
66
68
|
url: URL
|
|
67
69
|
};
|
|
68
|
-
|
|
70
|
+
var onAction = function onAction() {};
|
|
69
71
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
70
72
|
page: 'bravo',
|
|
71
73
|
label: 'Change',
|
|
72
|
-
onAction
|
|
74
|
+
onAction: onAction
|
|
73
75
|
});
|
|
74
76
|
});
|
|
75
|
-
it('should use label specified in cya_link', ()
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
it('should use label specified in cya_link', function () {
|
|
78
|
+
var LABEL = 'Alpha Bravo Charlie';
|
|
79
|
+
var cyaLink = {
|
|
78
80
|
label: LABEL
|
|
79
81
|
};
|
|
80
|
-
|
|
82
|
+
var onAction = function onAction() {};
|
|
81
83
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
82
84
|
page: '#',
|
|
83
85
|
label: LABEL,
|
|
84
|
-
onAction
|
|
86
|
+
onAction: onAction
|
|
85
87
|
});
|
|
86
88
|
});
|
|
87
|
-
it('should use aria_suffix specified in cya_link', ()
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
it('should use aria_suffix specified in cya_link', function () {
|
|
90
|
+
var ARIA_SUFFIX = 'This is hidden text';
|
|
91
|
+
var cyaLink = {
|
|
90
92
|
aria_suffix: ARIA_SUFFIX
|
|
91
93
|
};
|
|
92
|
-
|
|
94
|
+
var onAction = function onAction() {};
|
|
93
95
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
94
96
|
page: '#',
|
|
95
97
|
label: 'Change',
|
|
96
98
|
aria_suffix: ARIA_SUFFIX,
|
|
97
|
-
onAction
|
|
99
|
+
onAction: onAction
|
|
98
100
|
});
|
|
99
101
|
});
|
|
100
|
-
it('should use all properties specified in cya_link', ()
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
it('should use all properties specified in cya_link', function () {
|
|
103
|
+
var PAGE = 'alpha';
|
|
104
|
+
var LABEL = 'Alpha Bravo Charlie';
|
|
105
|
+
var ARIA_SUFFIX = 'This is hidden text';
|
|
106
|
+
var cyaLink = {
|
|
105
107
|
label: LABEL,
|
|
106
108
|
page: PAGE,
|
|
107
109
|
aria_suffix: ARIA_SUFFIX
|
|
108
110
|
};
|
|
109
|
-
|
|
111
|
+
var onAction = function onAction() {};
|
|
110
112
|
expect((0, _getCYAAction.default)(false, getPage(cyaLink), onAction)).toEqual({
|
|
111
113
|
page: PAGE,
|
|
112
114
|
label: LABEL,
|
|
113
115
|
aria_suffix: ARIA_SUFFIX,
|
|
114
|
-
onAction
|
|
116
|
+
onAction: onAction
|
|
115
117
|
});
|
|
116
118
|
});
|
|
117
119
|
});
|
|
@@ -1,15 +1,24 @@
|
|
|
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
9
|
var _models = require("../../models");
|
|
9
|
-
|
|
10
|
-
|
|
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
|
+
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
|
|
11
21
|
// Local imports
|
|
12
|
-
|
|
13
22
|
/**
|
|
14
23
|
* Gets an action object that triggers editing of an entry in a page collection.
|
|
15
24
|
*
|
|
@@ -21,34 +30,35 @@ var _models = require("../../models");
|
|
|
21
30
|
* @param {array} activeIds A list of active Ids that must be set to make Item the active entry.
|
|
22
31
|
* @returns The resulting action object.
|
|
23
32
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
var getCYACollectionChangeAction = function getCYACollectionChangeAction(page, item, _onAction, labelCount, action) {
|
|
34
|
+
var activeIds = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
35
|
+
var label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.change;
|
|
27
36
|
return {
|
|
28
37
|
pageId: page.id,
|
|
29
38
|
fieldId: "change".concat(labelCount).concat(action.page),
|
|
30
39
|
key: "change".concat(labelCount).concat(action.page),
|
|
31
40
|
type: 'action',
|
|
32
41
|
action: {
|
|
33
|
-
onAction: row
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
onAction: function onAction(row) {
|
|
43
|
+
var changeCallback = function changeCallback(cyaData) {
|
|
44
|
+
var data = cyaData;
|
|
36
45
|
// Apply the activeIds to make sure we're editing the right item.
|
|
37
46
|
// Not using the spread syntax as data could be a huge object.
|
|
38
|
-
Object.entries(activeIds).forEach(entry
|
|
39
|
-
|
|
47
|
+
Object.entries(activeIds).forEach(function (entry) {
|
|
48
|
+
var _entry = _slicedToArray(entry, 2),
|
|
49
|
+
activeIdKey = _entry[0],
|
|
50
|
+
activeId = _entry[1];
|
|
40
51
|
data[activeIdKey] = activeId;
|
|
41
52
|
});
|
|
42
53
|
return data;
|
|
43
54
|
};
|
|
44
|
-
|
|
55
|
+
_onAction(action.page ? {
|
|
45
56
|
pageId: action.page
|
|
46
57
|
} : row, changeCallback);
|
|
47
58
|
},
|
|
48
|
-
label: _copReactComponents.Utils.interpolateString(label, {
|
|
49
|
-
...item,
|
|
59
|
+
label: _copReactComponents.Utils.interpolateString(label, _objectSpread(_objectSpread({}, item), {}, {
|
|
50
60
|
index: labelCount
|
|
51
|
-
})
|
|
61
|
+
}))
|
|
52
62
|
}
|
|
53
63
|
};
|
|
54
64
|
};
|
|
@@ -2,24 +2,26 @@
|
|
|
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
|
-
|
|
5
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(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; }
|
|
9
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
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', function () {
|
|
12
|
+
describe('CheckYourAnswers', function () {
|
|
13
|
+
describe('getCYACollectionChangeAction', function () {
|
|
14
|
+
var PAGE = {
|
|
11
15
|
id: 2,
|
|
12
16
|
collection: {
|
|
13
17
|
name: 'collectionName'
|
|
14
18
|
}
|
|
15
19
|
};
|
|
16
|
-
|
|
20
|
+
var ITEM = {
|
|
17
21
|
id: 2
|
|
18
22
|
};
|
|
19
|
-
|
|
20
|
-
page: {
|
|
21
|
-
...PAGE
|
|
22
|
-
},
|
|
23
|
+
var TEST_DATA = {
|
|
24
|
+
page: _objectSpread({}, PAGE),
|
|
23
25
|
collectionName: [{
|
|
24
26
|
id: 1
|
|
25
27
|
}, {
|
|
@@ -29,28 +31,28 @@ describe('utils', () => {
|
|
|
29
31
|
}],
|
|
30
32
|
collectionNameActiveId: 3
|
|
31
33
|
};
|
|
32
|
-
it('should change activeId to the selected item and call onAction with the correct page', ()
|
|
33
|
-
|
|
34
|
+
it('should change activeId to the selected item and call onAction with the correct page', function () {
|
|
35
|
+
var ON_ACTION = function ON_ACTION(row, callback) {
|
|
34
36
|
expect(row.id).toEqual(2);
|
|
35
37
|
TEST_DATA = callback(TEST_DATA);
|
|
36
38
|
};
|
|
37
|
-
|
|
39
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, ON_ACTION, 0, {}, {
|
|
38
40
|
collectionNameActiveId: 2
|
|
39
41
|
});
|
|
40
42
|
action.action.onAction(PAGE);
|
|
41
43
|
expect(TEST_DATA.collectionNameActiveId).toEqual(2);
|
|
42
44
|
});
|
|
43
|
-
it('should change all necessary activeIds when moving to edit a nested collection entry', ()
|
|
44
|
-
|
|
45
|
+
it('should change all necessary activeIds when moving to edit a nested collection entry', function () {
|
|
46
|
+
var NESTED_COLLECTION_PAGE = {
|
|
45
47
|
id: 'pageid',
|
|
46
48
|
collection: {
|
|
47
49
|
name: 'parent.child.grandchild'
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
|
-
|
|
52
|
+
var NESTED_ITEM = {
|
|
51
53
|
id: '001'
|
|
52
54
|
};
|
|
53
|
-
|
|
55
|
+
var NESTED_TEST_DATA = {
|
|
54
56
|
parentActiveId: '000',
|
|
55
57
|
childActiveId: '000',
|
|
56
58
|
grandchildActiveId: '000',
|
|
@@ -70,32 +72,32 @@ describe('utils', () => {
|
|
|
70
72
|
}]
|
|
71
73
|
}]
|
|
72
74
|
};
|
|
73
|
-
|
|
75
|
+
var ACTIVE_IDS = {
|
|
74
76
|
parentActiveId: '001',
|
|
75
77
|
childActiveId: '001',
|
|
76
78
|
grandchildActiveId: '001'
|
|
77
79
|
};
|
|
78
|
-
|
|
80
|
+
var ON_ACTION = function ON_ACTION(row, callback) {
|
|
79
81
|
expect(row.id).toEqual(2);
|
|
80
82
|
NESTED_TEST_DATA = callback(NESTED_TEST_DATA);
|
|
81
83
|
};
|
|
82
|
-
|
|
84
|
+
var action = (0, _getCYACollectionChangeAction.default)(NESTED_COLLECTION_PAGE, NESTED_ITEM, ON_ACTION, 0, {}, ACTIVE_IDS);
|
|
83
85
|
action.action.onAction(PAGE);
|
|
84
86
|
expect(NESTED_TEST_DATA.parentActiveId).toEqual('001');
|
|
85
87
|
expect(NESTED_TEST_DATA.childActiveId).toEqual('001');
|
|
86
88
|
expect(NESTED_TEST_DATA.grandchildActiveId).toEqual('001');
|
|
87
89
|
});
|
|
88
|
-
it('should not change any active IDs if they are not provided', ()
|
|
89
|
-
|
|
90
|
+
it('should not change any active IDs if they are not provided', function () {
|
|
91
|
+
var NESTED_COLLECTION_PAGE = {
|
|
90
92
|
id: 'pageid',
|
|
91
93
|
collection: {
|
|
92
94
|
name: 'parent.child.grandchild'
|
|
93
95
|
}
|
|
94
96
|
};
|
|
95
|
-
|
|
97
|
+
var NESTED_ITEM = {
|
|
96
98
|
id: '001'
|
|
97
99
|
};
|
|
98
|
-
|
|
100
|
+
var NESTED_TEST_DATA = {
|
|
99
101
|
parentActiveId: '000',
|
|
100
102
|
childActiveId: '000',
|
|
101
103
|
grandchildActiveId: '000',
|
|
@@ -115,26 +117,26 @@ describe('utils', () => {
|
|
|
115
117
|
}]
|
|
116
118
|
}]
|
|
117
119
|
};
|
|
118
|
-
|
|
120
|
+
var ON_ACTION = function ON_ACTION(row, callback) {
|
|
119
121
|
expect(row.id).toEqual(2);
|
|
120
122
|
NESTED_TEST_DATA = callback(NESTED_TEST_DATA);
|
|
121
123
|
};
|
|
122
|
-
|
|
124
|
+
var action = (0, _getCYACollectionChangeAction.default)(NESTED_COLLECTION_PAGE, NESTED_ITEM, ON_ACTION, 0, {});
|
|
123
125
|
action.action.onAction(PAGE);
|
|
124
126
|
expect(NESTED_TEST_DATA.parentActiveId).toEqual('000');
|
|
125
127
|
expect(NESTED_TEST_DATA.childActiveId).toEqual('000');
|
|
126
128
|
expect(NESTED_TEST_DATA.grandchildActiveId).toEqual('000');
|
|
127
129
|
});
|
|
128
|
-
it('should get label to custom value', ()
|
|
129
|
-
|
|
130
|
+
it('should get label to custom value', function () {
|
|
131
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE, ITEM, function () {}, 0, {
|
|
130
132
|
label: 'customName'
|
|
131
133
|
}, {
|
|
132
134
|
collectionNameActiveId: 2
|
|
133
135
|
});
|
|
134
136
|
expect(action.action.label).toEqual('customName');
|
|
135
137
|
});
|
|
136
|
-
it('should call onAction with a custom page', ()
|
|
137
|
-
|
|
138
|
+
it('should call onAction with a custom page', function () {
|
|
139
|
+
var PAGE_WITH_CUSTOM_DESTINATION = {
|
|
138
140
|
id: 2,
|
|
139
141
|
collection: {
|
|
140
142
|
name: 'collectionName',
|
|
@@ -145,11 +147,11 @@ describe('utils', () => {
|
|
|
145
147
|
}]
|
|
146
148
|
}
|
|
147
149
|
};
|
|
148
|
-
|
|
150
|
+
var ON_ACTION = function ON_ACTION(page, callback) {
|
|
149
151
|
expect(page.pageId).toEqual('confirmDelete');
|
|
150
152
|
TEST_DATA = callback(TEST_DATA);
|
|
151
153
|
};
|
|
152
|
-
|
|
154
|
+
var action = (0, _getCYACollectionChangeAction.default)(PAGE_WITH_CUSTOM_DESTINATION, ITEM, ON_ACTION, 0, PAGE_WITH_CUSTOM_DESTINATION.collection.actions[0], {
|
|
153
155
|
collectionNameActiveId: 2
|
|
154
156
|
});
|
|
155
157
|
action.action.onAction({});
|
|
@@ -1,5 +1,6 @@
|
|
|
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -8,11 +9,21 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
8
9
|
var _CollectionPage = _interopRequireDefault(require("../CollectionPage"));
|
|
9
10
|
var _models = require("../../models");
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
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
|
|
13
23
|
// Local imports
|
|
14
|
-
|
|
15
|
-
|
|
24
|
+
var isValidIndex = function isValidIndex(value) {
|
|
25
|
+
return typeof value === 'number' && value >= 0;
|
|
26
|
+
};
|
|
16
27
|
|
|
17
28
|
/**
|
|
18
29
|
* Gets an action object that triggers the removal of an item from a page Collection.
|
|
@@ -25,39 +36,42 @@ const isValidIndex = value => typeof value === 'number' && value >= 0;
|
|
|
25
36
|
* @param {array} activeIds A list of active Ids that must be set to make Item the active entry.
|
|
26
37
|
* @returns The resulting action object.
|
|
27
38
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
var getCYACollectionDeleteAction = function getCYACollectionDeleteAction(page, item, _onAction, labelCount, action, activeIds) {
|
|
40
|
+
var label = (action === null || action === void 0 ? void 0 : action.label) || _models.CollectionLabels.remove;
|
|
30
41
|
return {
|
|
31
42
|
pageId: page.id,
|
|
32
43
|
fieldId: "delete".concat(labelCount),
|
|
33
44
|
key: "delete".concat(labelCount),
|
|
34
45
|
type: 'action',
|
|
35
46
|
action: {
|
|
36
|
-
onAction: ()
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
onAction: function onAction() {
|
|
48
|
+
var deleteCallback = function deleteCallback(cyaData) {
|
|
49
|
+
var data = cyaData;
|
|
39
50
|
if (!activeIds) {
|
|
40
51
|
return data;
|
|
41
52
|
}
|
|
42
53
|
// Apply the activeIds to make sure we're deleting the right item.
|
|
43
54
|
// Not using the spread syntax as data could be a huge object.
|
|
44
|
-
Object.entries(activeIds).forEach(entry
|
|
45
|
-
|
|
55
|
+
Object.entries(activeIds).forEach(function (entry) {
|
|
56
|
+
var _entry = _slicedToArray(entry, 2),
|
|
57
|
+
activeIdKey = _entry[0],
|
|
58
|
+
activeId = _entry[1];
|
|
46
59
|
data[activeIdKey] = activeId;
|
|
47
60
|
});
|
|
48
|
-
|
|
49
|
-
|
|
61
|
+
var collectionData = _CollectionPage.default.getData(page.collection.name, data);
|
|
62
|
+
var indexToDelete = collectionData === null || collectionData === void 0 ? void 0 : collectionData.findIndex(function (entry) {
|
|
63
|
+
return entry.id === item.id;
|
|
64
|
+
});
|
|
50
65
|
if (isValidIndex(indexToDelete)) {
|
|
51
66
|
collectionData.splice(indexToDelete, 1);
|
|
52
67
|
}
|
|
53
68
|
return data;
|
|
54
69
|
};
|
|
55
|
-
|
|
70
|
+
_onAction(null, deleteCallback);
|
|
56
71
|
},
|
|
57
|
-
label: _copReactComponents.Utils.interpolateString(label, {
|
|
58
|
-
...item,
|
|
72
|
+
label: _copReactComponents.Utils.interpolateString(label, _objectSpread(_objectSpread({}, item), {}, {
|
|
59
73
|
index: labelCount
|
|
60
|
-
})
|
|
74
|
+
}))
|
|
61
75
|
}
|
|
62
76
|
};
|
|
63
77
|
};
|