@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.scss +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.scss +1 -1
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +27 -40
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -4,19 +4,16 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
4
4
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
5
5
|
var _setupTests = require("../../setupTests");
|
|
6
6
|
var _SummaryCardDetails = _interopRequireWildcard(require("./SummaryCardDetails"));
|
|
7
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function
|
|
8
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
7
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
8
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
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; }
|
|
13
|
-
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; }
|
|
14
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
-
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); } // Global imports.
|
|
10
|
+
// Global imports.
|
|
11
|
+
|
|
16
12
|
// Local imports.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
|
|
14
|
+
describe('components.CollectionSummary.SummaryCardDetails', () => {
|
|
15
|
+
const classes = _copReactComponents.Utils.classBuilder(_SummaryCardDetails.DEFAULT_CLASS, [], '');
|
|
16
|
+
const ENTRY = {
|
|
20
17
|
id: '001',
|
|
21
18
|
bannerText: 'A banner',
|
|
22
19
|
titleText: 'A title',
|
|
@@ -33,17 +30,21 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
33
30
|
childField2: 'bravo'
|
|
34
31
|
}]
|
|
35
32
|
};
|
|
36
|
-
it('should render sections and fields based on summaryLayout config',
|
|
37
|
-
|
|
33
|
+
it('should render sections and fields based on summaryLayout config', () => {
|
|
34
|
+
const CHILD_PAGES = [{
|
|
38
35
|
summaryLayout: {
|
|
39
36
|
sections: [{
|
|
40
37
|
title: 'Section 1',
|
|
41
|
-
columns:
|
|
42
|
-
|
|
38
|
+
columns: [{
|
|
39
|
+
fields: ['fieldA']
|
|
40
|
+
}, {
|
|
41
|
+
fields: ['fieldB']
|
|
42
|
+
}]
|
|
43
43
|
}, {
|
|
44
44
|
title: 'Section 2',
|
|
45
|
-
columns:
|
|
46
|
-
|
|
45
|
+
columns: [{
|
|
46
|
+
fields: ['fieldC']
|
|
47
|
+
}]
|
|
47
48
|
}]
|
|
48
49
|
},
|
|
49
50
|
components: [{
|
|
@@ -54,41 +55,112 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
54
55
|
fieldId: 'fieldC'
|
|
55
56
|
}]
|
|
56
57
|
}];
|
|
57
|
-
|
|
58
|
+
const MASTER_PAGE = {
|
|
58
59
|
childPages: CHILD_PAGES
|
|
59
60
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
61
|
+
const {
|
|
62
|
+
container
|
|
63
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
64
|
+
masterPage: MASTER_PAGE,
|
|
65
|
+
childMasterPages: [],
|
|
66
|
+
formData: {},
|
|
67
|
+
entryData: ENTRY
|
|
68
|
+
}));
|
|
67
69
|
|
|
68
70
|
// Function to find an element by its text content
|
|
69
71
|
function getByTextContent(parent, text) {
|
|
70
|
-
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(
|
|
71
|
-
return el.textContent === text;
|
|
72
|
-
});
|
|
72
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
// Check for section titles
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
77
|
+
const section2Title = getByTextContent(container, 'Section 2');
|
|
78
78
|
expect(section1Title).not.toBeUndefined();
|
|
79
79
|
expect(section2Title).not.toBeUndefined();
|
|
80
|
-
|
|
80
|
+
const section1Content = section1Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
81
81
|
expect(section1Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(2);
|
|
82
|
-
|
|
82
|
+
const section2Content = section2Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
83
83
|
expect(section2Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(1);
|
|
84
84
|
});
|
|
85
|
-
it('should render sections
|
|
86
|
-
|
|
85
|
+
it('should render sections containing containers based on summaryLayout config', () => {
|
|
86
|
+
const CHILD_PAGES = [{
|
|
87
87
|
summaryLayout: {
|
|
88
88
|
sections: [{
|
|
89
89
|
title: 'Section 1',
|
|
90
|
-
columns:
|
|
91
|
-
|
|
90
|
+
columns: [{
|
|
91
|
+
fields: ['containerComponent']
|
|
92
|
+
}]
|
|
93
|
+
}]
|
|
94
|
+
},
|
|
95
|
+
components: [{
|
|
96
|
+
fieldId: 'containerComponent',
|
|
97
|
+
type: 'container',
|
|
98
|
+
label: 'container',
|
|
99
|
+
components: [{
|
|
100
|
+
fieldId: 'subOne',
|
|
101
|
+
label: 'subOneLabel'
|
|
102
|
+
}, {
|
|
103
|
+
fieldId: 'subTwo',
|
|
104
|
+
label: 'subTwoLabel'
|
|
105
|
+
}, {
|
|
106
|
+
fieldId: 'subThree',
|
|
107
|
+
label: 'subThreeLabel'
|
|
108
|
+
}]
|
|
109
|
+
}]
|
|
110
|
+
}];
|
|
111
|
+
const CONTAINER_ENTRY = {
|
|
112
|
+
id: '001',
|
|
113
|
+
bannerText: 'A banner',
|
|
114
|
+
titleText: 'A title',
|
|
115
|
+
detailsText: 'Some details',
|
|
116
|
+
index: 0,
|
|
117
|
+
summaryText: 'Full details',
|
|
118
|
+
containerComponent: {
|
|
119
|
+
subOne: 'alpha',
|
|
120
|
+
subTwo: 'bravo',
|
|
121
|
+
subThree: 'charlie'
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const MASTER_PAGE = {
|
|
125
|
+
childPages: CHILD_PAGES
|
|
126
|
+
};
|
|
127
|
+
const {
|
|
128
|
+
container
|
|
129
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
130
|
+
masterPage: MASTER_PAGE,
|
|
131
|
+
childMasterPages: [],
|
|
132
|
+
formData: {},
|
|
133
|
+
entryData: CONTAINER_ENTRY
|
|
134
|
+
}));
|
|
135
|
+
|
|
136
|
+
// Function to find an element by its text content
|
|
137
|
+
function getByTextContent(parent, text) {
|
|
138
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Check for section title
|
|
142
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
143
|
+
expect(section1Title).not.toBeUndefined();
|
|
144
|
+
|
|
145
|
+
// All three subcomponents from the container should have labels and values displayed
|
|
146
|
+
const section1Content = section1Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
147
|
+
expect(section1Content.textContent).toContain('subOneLabel');
|
|
148
|
+
expect(section1Content.textContent).toContain('alpha');
|
|
149
|
+
expect(section1Content.textContent).toContain('subTwoLabel');
|
|
150
|
+
expect(section1Content.textContent).toContain('bravo');
|
|
151
|
+
expect(section1Content.textContent).toContain('subThreeLabel');
|
|
152
|
+
expect(section1Content.textContent).toContain('charlie');
|
|
153
|
+
});
|
|
154
|
+
it('should render sections if they have show_when checks and pass them', () => {
|
|
155
|
+
const CHILD_PAGES = [{
|
|
156
|
+
summaryLayout: {
|
|
157
|
+
sections: [{
|
|
158
|
+
title: 'Section 1',
|
|
159
|
+
columns: [{
|
|
160
|
+
fields: ['fieldA']
|
|
161
|
+
}, {
|
|
162
|
+
fields: ['fieldB']
|
|
163
|
+
}],
|
|
92
164
|
show_when: [{
|
|
93
165
|
field: 'showSection1',
|
|
94
166
|
op: "=",
|
|
@@ -96,8 +168,9 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
96
168
|
}]
|
|
97
169
|
}, {
|
|
98
170
|
title: 'Section 2',
|
|
99
|
-
columns:
|
|
100
|
-
|
|
171
|
+
columns: [{
|
|
172
|
+
fields: ['fieldC']
|
|
173
|
+
}]
|
|
101
174
|
}]
|
|
102
175
|
},
|
|
103
176
|
components: [{
|
|
@@ -108,44 +181,47 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
108
181
|
fieldId: 'fieldC'
|
|
109
182
|
}]
|
|
110
183
|
}];
|
|
111
|
-
|
|
184
|
+
const MASTER_PAGE = {
|
|
112
185
|
childPages: CHILD_PAGES
|
|
113
186
|
};
|
|
114
|
-
|
|
187
|
+
const CUSTOM_ENTRY = {
|
|
188
|
+
...ENTRY,
|
|
115
189
|
showSection1: true
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
190
|
+
};
|
|
191
|
+
const {
|
|
192
|
+
container
|
|
193
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
194
|
+
masterPage: MASTER_PAGE,
|
|
195
|
+
childMasterPages: [],
|
|
196
|
+
formData: {},
|
|
197
|
+
entryData: CUSTOM_ENTRY
|
|
198
|
+
}));
|
|
124
199
|
|
|
125
200
|
// Function to find an element by its text content
|
|
126
201
|
function getByTextContent(parent, text) {
|
|
127
|
-
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(
|
|
128
|
-
return el.textContent === text;
|
|
129
|
-
});
|
|
202
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
130
203
|
}
|
|
131
204
|
|
|
132
205
|
// Check for section titles
|
|
133
|
-
|
|
134
|
-
|
|
206
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
207
|
+
const section2Title = getByTextContent(container, 'Section 2');
|
|
135
208
|
expect(section1Title).not.toBeUndefined();
|
|
136
209
|
expect(section2Title).not.toBeUndefined();
|
|
137
|
-
|
|
210
|
+
const section1Content = section1Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
138
211
|
expect(section1Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(2);
|
|
139
|
-
|
|
212
|
+
const section2Content = section2Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
140
213
|
expect(section2Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(1);
|
|
141
214
|
});
|
|
142
|
-
it('should not render sections if they have show_when checks and fail them',
|
|
143
|
-
|
|
215
|
+
it('should not render sections if they have show_when checks and fail them', () => {
|
|
216
|
+
const CHILD_PAGES = [{
|
|
144
217
|
summaryLayout: {
|
|
145
218
|
sections: [{
|
|
146
219
|
title: 'Section 1',
|
|
147
|
-
columns:
|
|
148
|
-
|
|
220
|
+
columns: [{
|
|
221
|
+
fields: ['fieldA']
|
|
222
|
+
}, {
|
|
223
|
+
fields: ['fieldB']
|
|
224
|
+
}],
|
|
149
225
|
show_when: [{
|
|
150
226
|
field: 'showSection1',
|
|
151
227
|
op: "=",
|
|
@@ -153,8 +229,9 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
153
229
|
}]
|
|
154
230
|
}, {
|
|
155
231
|
title: 'Section 2',
|
|
156
|
-
columns:
|
|
157
|
-
|
|
232
|
+
columns: [{
|
|
233
|
+
fields: ['fieldC']
|
|
234
|
+
}]
|
|
158
235
|
}]
|
|
159
236
|
},
|
|
160
237
|
components: [{
|
|
@@ -165,37 +242,95 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
165
242
|
fieldId: 'fieldC'
|
|
166
243
|
}]
|
|
167
244
|
}];
|
|
168
|
-
|
|
245
|
+
const MASTER_PAGE = {
|
|
169
246
|
childPages: CHILD_PAGES
|
|
170
247
|
};
|
|
171
|
-
|
|
248
|
+
const CUSTOM_ENTRY = {
|
|
249
|
+
...ENTRY,
|
|
172
250
|
showSection1: false
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
|
|
251
|
+
};
|
|
252
|
+
const {
|
|
253
|
+
container
|
|
254
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
255
|
+
masterPage: MASTER_PAGE,
|
|
256
|
+
childMasterPages: [],
|
|
257
|
+
formData: {},
|
|
258
|
+
entryData: CUSTOM_ENTRY
|
|
259
|
+
}));
|
|
181
260
|
|
|
182
261
|
// Function to find an element by its text content
|
|
183
262
|
function getByTextContent(parent, text) {
|
|
184
|
-
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(
|
|
185
|
-
return el.textContent === text;
|
|
186
|
-
});
|
|
263
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
187
264
|
}
|
|
188
265
|
|
|
189
266
|
// Check for section titles
|
|
190
|
-
|
|
191
|
-
|
|
267
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
268
|
+
const section2Title = getByTextContent(container, 'Section 2');
|
|
192
269
|
expect(section1Title).toBeUndefined();
|
|
193
270
|
expect(section2Title).not.toBeUndefined();
|
|
194
|
-
|
|
271
|
+
const section2Content = section2Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
195
272
|
expect(section2Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(1);
|
|
196
273
|
});
|
|
197
|
-
it('should not render
|
|
198
|
-
|
|
274
|
+
it('should not render components that fail show_when checks', () => {
|
|
275
|
+
const CHILD_PAGES = [{
|
|
276
|
+
summaryLayout: {
|
|
277
|
+
sections: [{
|
|
278
|
+
title: 'Section 1',
|
|
279
|
+
columns: [{
|
|
280
|
+
fields: ['fieldA']
|
|
281
|
+
}, {
|
|
282
|
+
fields: ['fieldB']
|
|
283
|
+
}]
|
|
284
|
+
}, {
|
|
285
|
+
title: 'Section 2',
|
|
286
|
+
columns: [{
|
|
287
|
+
fields: ['fieldC']
|
|
288
|
+
}]
|
|
289
|
+
}]
|
|
290
|
+
},
|
|
291
|
+
components: [{
|
|
292
|
+
fieldId: 'fieldA'
|
|
293
|
+
}, {
|
|
294
|
+
fieldId: 'fieldB',
|
|
295
|
+
show_when: [{
|
|
296
|
+
field: 'fieldA',
|
|
297
|
+
op: '=',
|
|
298
|
+
value: 'notTheRightValue'
|
|
299
|
+
}]
|
|
300
|
+
}, {
|
|
301
|
+
fieldId: 'fieldC'
|
|
302
|
+
}]
|
|
303
|
+
}];
|
|
304
|
+
const MASTER_PAGE = {
|
|
305
|
+
childPages: CHILD_PAGES
|
|
306
|
+
};
|
|
307
|
+
const {
|
|
308
|
+
container
|
|
309
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
310
|
+
masterPage: MASTER_PAGE,
|
|
311
|
+
childMasterPages: [],
|
|
312
|
+
formData: {},
|
|
313
|
+
entryData: ENTRY
|
|
314
|
+
}));
|
|
315
|
+
|
|
316
|
+
// Function to find an element by its text content
|
|
317
|
+
function getByTextContent(parent, text) {
|
|
318
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// Check for section titles
|
|
322
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
323
|
+
const section2Title = getByTextContent(container, 'Section 2');
|
|
324
|
+
expect(section1Title).not.toBeUndefined();
|
|
325
|
+
expect(section2Title).not.toBeUndefined();
|
|
326
|
+
const section1Content = section1Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
327
|
+
expect(section1Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(1); // Just Field A, Field B should be hidden.
|
|
328
|
+
|
|
329
|
+
const section2Content = section2Title.parentNode.querySelector(".".concat(classes('section-content')));
|
|
330
|
+
expect(section2Content.querySelectorAll(".".concat(classes('field'))).length).toEqual(1);
|
|
331
|
+
});
|
|
332
|
+
it('should not render sections on pages that fail show_when checks', () => {
|
|
333
|
+
const CHILD_PAGES = [{
|
|
199
334
|
show_when: [{
|
|
200
335
|
field: 'testField',
|
|
201
336
|
op: '=',
|
|
@@ -204,8 +339,11 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
204
339
|
summaryLayout: {
|
|
205
340
|
sections: [{
|
|
206
341
|
title: 'Section 1',
|
|
207
|
-
columns:
|
|
208
|
-
|
|
342
|
+
columns: [{
|
|
343
|
+
fields: ['fieldA']
|
|
344
|
+
}, {
|
|
345
|
+
fields: ['fieldB']
|
|
346
|
+
}],
|
|
209
347
|
show_when: [{
|
|
210
348
|
field: 'showSection1',
|
|
211
349
|
op: "=",
|
|
@@ -213,8 +351,9 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
213
351
|
}]
|
|
214
352
|
}, {
|
|
215
353
|
title: 'Section 2',
|
|
216
|
-
columns:
|
|
217
|
-
|
|
354
|
+
columns: [{
|
|
355
|
+
fields: ['fieldC']
|
|
356
|
+
}]
|
|
218
357
|
}]
|
|
219
358
|
},
|
|
220
359
|
components: [{
|
|
@@ -225,37 +364,37 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
225
364
|
fieldId: 'fieldC'
|
|
226
365
|
}]
|
|
227
366
|
}];
|
|
228
|
-
|
|
367
|
+
const MASTER_PAGE = {
|
|
229
368
|
childPages: CHILD_PAGES
|
|
230
369
|
};
|
|
231
|
-
|
|
370
|
+
const CUSTOM_ENTRY = {
|
|
371
|
+
...ENTRY,
|
|
232
372
|
showSection1: false
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
|
|
373
|
+
};
|
|
374
|
+
const {
|
|
375
|
+
container
|
|
376
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
377
|
+
masterPage: MASTER_PAGE,
|
|
378
|
+
childMasterPages: [],
|
|
379
|
+
formData: {
|
|
380
|
+
testField: false
|
|
381
|
+
},
|
|
382
|
+
entryData: CUSTOM_ENTRY
|
|
383
|
+
}));
|
|
243
384
|
|
|
244
385
|
// Function to find an element by its text content
|
|
245
386
|
function getByTextContent(parent, text) {
|
|
246
|
-
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(
|
|
247
|
-
return el.textContent === text;
|
|
248
|
-
});
|
|
387
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
249
388
|
}
|
|
250
389
|
|
|
251
390
|
// Check for section titles
|
|
252
|
-
|
|
253
|
-
|
|
391
|
+
const section1Title = getByTextContent(container, 'Section 1');
|
|
392
|
+
const section2Title = getByTextContent(container, 'Section 2');
|
|
254
393
|
expect(section1Title).toBeUndefined();
|
|
255
394
|
expect(section2Title).toBeUndefined();
|
|
256
395
|
});
|
|
257
|
-
it('should render child collections',
|
|
258
|
-
|
|
396
|
+
it('should render child collections', () => {
|
|
397
|
+
const CHILD_MASTER_PAGES = [{
|
|
259
398
|
collection: {
|
|
260
399
|
name: 'childCollection'
|
|
261
400
|
},
|
|
@@ -268,13 +407,16 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
268
407
|
summaryLayout: {
|
|
269
408
|
sections: [{
|
|
270
409
|
title: 'Hidden Title',
|
|
271
|
-
columns:
|
|
272
|
-
|
|
410
|
+
columns: [{
|
|
411
|
+
fields: ['childfield1']
|
|
412
|
+
}, {
|
|
413
|
+
fields: ['childfield2']
|
|
414
|
+
}]
|
|
273
415
|
}]
|
|
274
416
|
}
|
|
275
417
|
}]
|
|
276
418
|
}];
|
|
277
|
-
|
|
419
|
+
const CHILD_PAGES = [{
|
|
278
420
|
summaryLayout: {
|
|
279
421
|
sections: [{
|
|
280
422
|
type: 'childCollection',
|
|
@@ -290,30 +432,29 @@ describe('components.CollectionSummary.SummaryCardDetails', function () {
|
|
|
290
432
|
fieldId: 'fieldC'
|
|
291
433
|
}]
|
|
292
434
|
}];
|
|
293
|
-
|
|
435
|
+
const MASTER_PAGE = {
|
|
294
436
|
childPages: [].concat(CHILD_PAGES, CHILD_MASTER_PAGES)
|
|
295
437
|
};
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
303
|
-
|
|
438
|
+
const CHILD_COLLECTIONS = ['childCollection'];
|
|
439
|
+
const {
|
|
440
|
+
container
|
|
441
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_SummaryCardDetails.default, {
|
|
442
|
+
masterPage: MASTER_PAGE,
|
|
443
|
+
childCollections: CHILD_COLLECTIONS,
|
|
444
|
+
formData: {},
|
|
445
|
+
entryData: ENTRY
|
|
446
|
+
}));
|
|
304
447
|
|
|
305
448
|
// Function to find an element by its text content
|
|
306
449
|
function getByTextContent(parent, text) {
|
|
307
|
-
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(
|
|
308
|
-
return el.textContent === text;
|
|
309
|
-
});
|
|
450
|
+
return Array.from(parent.getElementsByClassName(classes('section-title'))).find(el => el.textContent === text);
|
|
310
451
|
}
|
|
311
|
-
|
|
452
|
+
const childCollectionSectionTitle = getByTextContent(container, 'Children');
|
|
312
453
|
expect(childCollectionSectionTitle).not.toBeUndefined();
|
|
313
|
-
|
|
454
|
+
const childSectionTitles = getByTextContent(container, 'Hidden Title');
|
|
314
455
|
expect(childSectionTitles).toBeUndefined(); // Individual section title for child collections should be hidden.
|
|
315
456
|
|
|
316
|
-
|
|
457
|
+
const childFields = container.querySelectorAll(".".concat(classes('section')));
|
|
317
458
|
expect(childFields.length).toEqual(2); // One for each entry in the child collection.
|
|
318
459
|
});
|
|
319
460
|
});
|
|
@@ -1,62 +1,66 @@
|
|
|
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 _react = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _utils = _interopRequireDefault(require("../../utils"));
|
|
11
9
|
var _ValidationContext = require("../../context/ValidationContext");
|
|
10
|
+
var _hooks = require("../../hooks");
|
|
11
|
+
var _utils = _interopRequireDefault(require("../../utils"));
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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; } /* eslint-disable react/jsx-no-constructed-context-values, no-shadow */ // Global imports
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
/* eslint-disable react/jsx-no-constructed-context-values, no-shadow */
|
|
16
|
+
// Global imports
|
|
17
|
+
|
|
21
18
|
// Local imports
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
|
|
20
|
+
const SummaryCardValidationContextProvider = _ref => {
|
|
21
|
+
let {
|
|
22
|
+
entryId,
|
|
23
|
+
topLevelErrors,
|
|
24
|
+
clearTopLevelErrorsForCard,
|
|
25
|
+
children
|
|
26
|
+
} = _ref;
|
|
27
|
+
const {
|
|
28
|
+
hooks
|
|
29
|
+
} = (0, _hooks.useHooks)();
|
|
30
|
+
|
|
26
31
|
// Errors raised from the Collection Summary.
|
|
27
|
-
|
|
28
|
-
return e.entryId === entryId;
|
|
29
|
-
}) || [];
|
|
32
|
+
const initialErrors = topLevelErrors.filter(e => e.entryId === entryId) || [];
|
|
30
33
|
// Errors raised locally, via the Quick Edit page.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
errors = _useState2[0],
|
|
34
|
-
setErrors = _useState2[1];
|
|
35
|
-
var resetQuickEditErrors = function resetQuickEditErrors() {
|
|
34
|
+
const [errors, setErrors] = (0, _react.useState)(null);
|
|
35
|
+
const resetQuickEditErrors = () => {
|
|
36
36
|
// By setting errors to 'null' here we go back to using
|
|
37
37
|
// whatever topLevelErrors are passed in for us.
|
|
38
38
|
setErrors(null);
|
|
39
39
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
const addErrors = addedErrors => {
|
|
41
|
+
setErrors(prev => {
|
|
42
|
+
const newErrors = prev !== null && prev !== void 0 ? prev : [];
|
|
43
|
+
return newErrors.concat(addedErrors);
|
|
44
|
+
});
|
|
43
45
|
};
|
|
44
46
|
|
|
45
47
|
// This validate is only used by the Quick Edit page
|
|
46
48
|
// on the Summary Card.
|
|
47
|
-
|
|
48
|
-
page:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
const validate = {
|
|
50
|
+
page: page => {
|
|
51
|
+
const pageErrors = _utils.default.Validate.page(page);
|
|
52
|
+
const allErrors = hooks.onValidate(page, pageErrors);
|
|
53
|
+
setErrors(allErrors);
|
|
54
|
+
return allErrors;
|
|
52
55
|
}
|
|
53
56
|
};
|
|
54
57
|
return /*#__PURE__*/_react.default.createElement(_ValidationContext.ValidationContext.Provider, {
|
|
55
58
|
value: {
|
|
56
|
-
addErrors
|
|
59
|
+
addErrors,
|
|
57
60
|
errors: errors === null ? [].concat(initialErrors) : errors,
|
|
58
|
-
resetQuickEditErrors
|
|
59
|
-
|
|
61
|
+
resetQuickEditErrors,
|
|
62
|
+
clearTopLevelErrorsForCard,
|
|
63
|
+
validate
|
|
60
64
|
}
|
|
61
65
|
}, children);
|
|
62
66
|
};
|
|
@@ -64,6 +68,7 @@ var _default = exports.default = SummaryCardValidationContextProvider;
|
|
|
64
68
|
SummaryCardValidationContextProvider.propTypes = {
|
|
65
69
|
entryId: _propTypes.default.string.isRequired,
|
|
66
70
|
topLevelErrors: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
71
|
+
clearTopLevelErrorsForCard: _propTypes.default.func.isRequired,
|
|
67
72
|
children: _propTypes.default.node
|
|
68
73
|
};
|
|
69
74
|
SummaryCardValidationContextProvider.defaultProps = {
|