@ukhomeoffice/cop-react-form-renderer 6.5.1-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.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +73 -63
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +80 -76
- package/dist/components/CollectionSummary/CollectionSummary.js +97 -107
- package/dist/components/CollectionSummary/CollectionSummary.test.js +152 -142
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +45 -51
- package/dist/components/CollectionSummary/RenderListView.test.js +78 -77
- package/dist/components/CollectionSummary/SummaryCard.js +104 -135
- package/dist/components/CollectionSummary/SummaryCard.test.js +930 -962
- package/dist/components/CollectionSummary/SummaryCardDetails.js +72 -71
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +128 -135
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +30 -35
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -74
- package/dist/components/FormComponent/Collection.js +74 -108
- package/dist/components/FormComponent/Collection.test.js +909 -1081
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +69 -72
- 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.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +143 -179
- 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 +44 -47
- package/dist/components/FormRenderer/onPageAction.test.js +223 -213
- 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.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.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 +43 -94
- package/dist/context/ValidationContext/ValidationContext.test.js +56 -68
- 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 +26 -39
- 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 -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 +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +18 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +55 -26
- 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 +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +20 -22
- package/dist/utils/CollectionPage/getQuickEditPage.js +36 -28
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +1 -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 +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- 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 +16 -25
- 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 +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 +24 -30
- package/dist/utils/Data/getOptions.test.js +27 -27
- 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 +9 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- 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 +15 -20
- package/dist/utils/Validate/validateContainer.test.js +58 -52
- 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 +19 -22
- package/dist/utils/Validate/validatePage.test.js +215 -203
- 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 +2 -2
- 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/cop-airpax-after.json +0 -429
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
- 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/clear-uncompleted-routes/test-data/test.json +0 -1605
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -16,23 +16,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
16
16
|
|
|
17
17
|
// Styles.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form-banner-strip';
|
|
20
|
+
const BannerStrip = _ref => {
|
|
21
|
+
let {
|
|
22
|
+
id,
|
|
23
|
+
banners,
|
|
24
|
+
formData,
|
|
25
|
+
classModifiers
|
|
26
|
+
} = _ref;
|
|
27
|
+
const classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers, '');
|
|
28
|
+
const filteredBanners = banners.filter(banner => _utils.default.Component.show(banner, formData));
|
|
29
29
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
30
30
|
id: id,
|
|
31
31
|
className: classes()
|
|
32
|
-
}, filteredBanners.map(
|
|
33
|
-
|
|
32
|
+
}, filteredBanners.map((banner, index) => {
|
|
33
|
+
const bannerId = "".concat(id, "-banner-").concat(index);
|
|
34
34
|
if (typeof banner === 'string' || banner.type === 'plain') {
|
|
35
|
-
|
|
35
|
+
const bannerText = typeof banner === 'string' ? banner : banner.text;
|
|
36
36
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
37
37
|
id: bannerId,
|
|
38
38
|
key: bannerId,
|
|
@@ -4,129 +4,131 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
4
4
|
var _react = _interopRequireDefault(require("react"));
|
|
5
5
|
var _setupTests = require("../../setupTests");
|
|
6
6
|
var _BannerStrip = _interopRequireWildcard(require("./BannerStrip"));
|
|
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
|
-
|
|
20
|
-
|
|
13
|
+
|
|
14
|
+
describe('components.CollectionSummary.BannerStrip', () => {
|
|
15
|
+
const ID = 'testBanner';
|
|
16
|
+
const BANNERS = ['Banner 1', 'Banner 2'];
|
|
17
|
+
const FORM_DATA = {
|
|
21
18
|
textField: 'banner'
|
|
22
19
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
const classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
|
|
21
|
+
const checkSetup = container => {
|
|
22
|
+
const bannerStripDiv = container.children[0];
|
|
26
23
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
27
24
|
expect(bannerStripDiv.id).toEqual(ID);
|
|
28
25
|
return bannerStripDiv;
|
|
29
26
|
};
|
|
30
|
-
it('should correctly render a BannerStrip component with plain-text banners',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
it('should correctly render a BannerStrip component with plain-text banners', () => {
|
|
28
|
+
const {
|
|
29
|
+
container
|
|
30
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
31
|
+
id: ID,
|
|
32
|
+
banners: BANNERS,
|
|
33
|
+
formData: FORM_DATA
|
|
34
|
+
}));
|
|
35
|
+
const bannerStripDiv = checkSetup(container);
|
|
38
36
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
39
37
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
40
38
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
41
39
|
|
|
42
|
-
|
|
40
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
43
41
|
expect(firstBanner.tagName).toEqual('DIV');
|
|
44
42
|
expect(firstBanner.classList).toContain(classes('banner'));
|
|
45
43
|
expect(firstBanner.textContent).toEqual(BANNERS[0]);
|
|
46
|
-
|
|
44
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
47
45
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
48
46
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
49
47
|
expect(secondBanner.textContent).toEqual(BANNERS[1]);
|
|
50
48
|
});
|
|
51
|
-
it('should correctly render a BannerStrip component with tag banners',
|
|
52
|
-
|
|
49
|
+
it('should correctly render a BannerStrip component with tag banners', () => {
|
|
50
|
+
const TAG_BANNERS = [{
|
|
53
51
|
text: 'Banner 1'
|
|
54
52
|
}, {
|
|
55
53
|
text: 'Banner 2'
|
|
56
54
|
}];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
const {
|
|
56
|
+
container
|
|
57
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
58
|
+
id: ID,
|
|
59
|
+
banners: TAG_BANNERS,
|
|
60
|
+
formData: FORM_DATA
|
|
61
|
+
}));
|
|
62
|
+
const bannerStripDiv = checkSetup(container);
|
|
64
63
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
65
64
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
66
65
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
69
68
|
expect(firstBanner.tagName).toEqual('STRONG');
|
|
70
69
|
expect(firstBanner.classList).toContain(classes('tag'));
|
|
71
70
|
expect(firstBanner.textContent).toEqual(BANNERS[0]);
|
|
72
|
-
|
|
71
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
73
72
|
expect(secondBanner.tagName).toEqual('STRONG');
|
|
74
73
|
expect(secondBanner.classList).toContain(classes('tag'));
|
|
75
74
|
expect(secondBanner.textContent).toEqual(BANNERS[1]);
|
|
76
75
|
});
|
|
77
|
-
it('should correctly interpolate banners',
|
|
78
|
-
|
|
76
|
+
it('should correctly interpolate banners', () => {
|
|
77
|
+
const INTERPOLATED_BANNERS = [{
|
|
79
78
|
// eslint-disable-next-line no-template-curly-in-string
|
|
80
79
|
text: 'An interpolated ${textField}'
|
|
81
80
|
},
|
|
82
81
|
// eslint-disable-next-line no-template-curly-in-string
|
|
83
82
|
'Another interpolated ${textField}'];
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
const {
|
|
84
|
+
container
|
|
85
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
86
|
+
id: ID,
|
|
87
|
+
banners: INTERPOLATED_BANNERS,
|
|
88
|
+
formData: FORM_DATA
|
|
89
|
+
}));
|
|
90
|
+
const bannerStripDiv = checkSetup(container);
|
|
91
91
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
94
94
|
expect(firstBanner.tagName).toEqual('STRONG');
|
|
95
95
|
expect(firstBanner.classList).toContain(classes('tag'));
|
|
96
96
|
expect(firstBanner.textContent).toEqual("An interpolated ".concat(FORM_DATA.textField));
|
|
97
|
-
|
|
97
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
98
98
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
99
99
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
100
100
|
expect(secondBanner.textContent).toEqual("Another interpolated ".concat(FORM_DATA.textField));
|
|
101
101
|
});
|
|
102
|
-
it('should render no banners if none are provided',
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
it('should render no banners if none are provided', () => {
|
|
103
|
+
const {
|
|
104
|
+
container
|
|
105
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
106
|
+
id: ID,
|
|
107
|
+
formData: FORM_DATA
|
|
108
|
+
}));
|
|
109
|
+
const bannerStripDiv = checkSetup(container);
|
|
109
110
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
110
111
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
111
112
|
expect(bannerStripDiv.children.length).toEqual(0);
|
|
112
113
|
});
|
|
113
|
-
it('should correctly render a BannerStrip component with a plain string banner',
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
it('should correctly render a BannerStrip component with a plain string banner', () => {
|
|
115
|
+
const PLAIN_STRING_BANNER = 'banner';
|
|
116
|
+
const {
|
|
117
|
+
container
|
|
118
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
119
|
+
id: ID,
|
|
120
|
+
banners: [PLAIN_STRING_BANNER],
|
|
121
|
+
formData: FORM_DATA
|
|
122
|
+
}));
|
|
123
|
+
const bannerStripDiv = checkSetup(container);
|
|
122
124
|
expect(bannerStripDiv.children.length).toEqual(1); // One banner provided.
|
|
123
|
-
|
|
125
|
+
const plainStringBanner = bannerStripDiv.children[0];
|
|
124
126
|
expect(plainStringBanner.tagName).toEqual('DIV');
|
|
125
127
|
expect(plainStringBanner.classList.contains(classes('banner'))).toBe(true);
|
|
126
128
|
expect(plainStringBanner.textContent).toEqual(PLAIN_STRING_BANNER);
|
|
127
129
|
});
|
|
128
|
-
it('should correctly render banners based on their show_whens',
|
|
129
|
-
|
|
130
|
+
it('should correctly render banners based on their show_whens', () => {
|
|
131
|
+
const CUSTOM_BANNERS = [{
|
|
130
132
|
type: 'plain',
|
|
131
133
|
text: 'A banner',
|
|
132
134
|
show_when: [{
|
|
@@ -138,22 +140,24 @@ describe('components.CollectionSummary.BannerStrip', function () {
|
|
|
138
140
|
type: 'plain',
|
|
139
141
|
text: BANNERS[1]
|
|
140
142
|
}];
|
|
141
|
-
|
|
143
|
+
const CUSTOM_FORM_DATA = {
|
|
144
|
+
...FORM_DATA,
|
|
142
145
|
testField: 'abc'
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
};
|
|
147
|
+
const {
|
|
148
|
+
container
|
|
149
|
+
} = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
150
|
+
id: ID,
|
|
151
|
+
banners: CUSTOM_BANNERS,
|
|
152
|
+
formData: CUSTOM_FORM_DATA
|
|
153
|
+
}));
|
|
154
|
+
const bannerStripDiv = checkSetup(container);
|
|
151
155
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
152
156
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
153
157
|
expect(bannerStripDiv.children.length).toEqual(1); // One banner should be hidden.
|
|
154
158
|
|
|
155
159
|
// Only the second banner should be visible.
|
|
156
|
-
|
|
160
|
+
const secondBanner = bannerStripDiv.children[0];
|
|
157
161
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
158
162
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
159
163
|
expect(secondBanner.textContent).toEqual(CUSTOM_BANNERS[1].text);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -19,26 +18,16 @@ var _Confirmation = _interopRequireDefault(require("./Confirmation"));
|
|
|
19
18
|
var _SummaryCard = _interopRequireDefault(require("./SummaryCard"));
|
|
20
19
|
var _SummaryCardValidationContext = _interopRequireDefault(require("./SummaryCardValidationContext"));
|
|
21
20
|
require("./CollectionSummary.scss");
|
|
22
|
-
|
|
23
|
-
function
|
|
24
|
-
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 && Object.prototype.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; }
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
25
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
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; }
|
|
30
|
-
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; }
|
|
31
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
32
|
-
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); }
|
|
33
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
34
|
-
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."); }
|
|
35
|
-
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); }
|
|
36
|
-
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; }
|
|
37
|
-
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; } }
|
|
38
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports.
|
|
24
|
+
// Global imports.
|
|
25
|
+
|
|
39
26
|
// Local imports.
|
|
27
|
+
|
|
40
28
|
// Styles.
|
|
41
|
-
|
|
29
|
+
|
|
30
|
+
const DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
|
|
42
31
|
|
|
43
32
|
// A note about validation.
|
|
44
33
|
//
|
|
@@ -52,71 +41,71 @@ var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
|
|
|
52
41
|
// errors found by the summary and allow the Summary Card to keep any Quick Edit
|
|
53
42
|
// errors local to the Quick Edit page.
|
|
54
43
|
|
|
55
|
-
|
|
44
|
+
const CollectionSummary = _ref => {
|
|
56
45
|
var _config$confirmation, _config$confirmation2, _config$confirmation3;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return collectionNameParts.reduce(function (acc, current, index) {
|
|
46
|
+
let {
|
|
47
|
+
config,
|
|
48
|
+
formData,
|
|
49
|
+
onAction,
|
|
50
|
+
onChange,
|
|
51
|
+
onTopLevelChange,
|
|
52
|
+
pages
|
|
53
|
+
} = _ref;
|
|
54
|
+
const {
|
|
55
|
+
hooks
|
|
56
|
+
} = (0, _hooks.useHooks)();
|
|
57
|
+
const {
|
|
58
|
+
errors,
|
|
59
|
+
addErrors,
|
|
60
|
+
clearErrors,
|
|
61
|
+
queuedErrors,
|
|
62
|
+
enqueueErrors,
|
|
63
|
+
dequeueErrors
|
|
64
|
+
} = (0, _hooks.useValidation)();
|
|
65
|
+
const [entryToDelete, setEntryToDelete] = (0, _react.useState)(null);
|
|
66
|
+
const data = (0, _react.useMemo)(() => _utils.default.CollectionPage.getData(config.collectionName, formData) || [], [formData]);
|
|
67
|
+
const masterPage = (0, _react.useMemo)(() => {
|
|
68
|
+
const collectionNameParts = config.collectionName.split('.');
|
|
69
|
+
let childPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
|
|
70
|
+
return collectionNameParts.reduce((acc, current, index) => {
|
|
83
71
|
var _childPages$find;
|
|
84
|
-
|
|
72
|
+
const currentPath = index === 0 ? "".concat(acc).concat(current) : "".concat(acc, ".").concat(current);
|
|
85
73
|
if (index === collectionNameParts.length - 1) {
|
|
86
74
|
var _childPages;
|
|
87
|
-
return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(
|
|
75
|
+
return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(p => {
|
|
88
76
|
var _p$collection;
|
|
89
77
|
return ((_p$collection = p.collection) === null || _p$collection === void 0 ? void 0 : _p$collection.name) === currentPath;
|
|
90
78
|
})) || null;
|
|
91
79
|
}
|
|
92
|
-
childPages = ((_childPages$find = childPages.find(
|
|
80
|
+
childPages = ((_childPages$find = childPages.find(p => {
|
|
93
81
|
var _p$collection2;
|
|
94
82
|
return ((_p$collection2 = p.collection) === null || _p$collection2 === void 0 ? void 0 : _p$collection2.name) === currentPath;
|
|
95
83
|
})) === null || _childPages$find === void 0 ? void 0 : _childPages$find.childPages) || null;
|
|
96
84
|
return currentPath;
|
|
97
85
|
}, "");
|
|
98
86
|
}, [pages]);
|
|
99
|
-
|
|
87
|
+
const allComponents = (0, _react.useMemo)(() => {
|
|
100
88
|
if (config.card.listView) {
|
|
101
89
|
var _masterPage$childPage;
|
|
102
|
-
|
|
103
|
-
|
|
90
|
+
const components = (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.reduce((acc, page) => {
|
|
91
|
+
const elevatedComponents = (0, _elevateNestedComponents.default)(page.components, {
|
|
92
|
+
...formData,
|
|
93
|
+
...entryToDelete
|
|
94
|
+
});
|
|
104
95
|
return acc.concat(elevatedComponents);
|
|
105
96
|
}, []);
|
|
106
97
|
return components || [];
|
|
107
98
|
}
|
|
108
99
|
return [];
|
|
109
100
|
}, [masterPage, formData, entryToDelete, config.card.listView]);
|
|
110
|
-
|
|
101
|
+
const validateEntries = () => {
|
|
111
102
|
// We only clear queuedErrors if it's not empty to avoid
|
|
112
103
|
// triggering a race condition with the 'data' memo
|
|
113
104
|
// above.
|
|
114
105
|
if (queuedErrors.length > 0) {
|
|
115
|
-
dequeueErrors(
|
|
116
|
-
return e.raisedBy === config.id;
|
|
117
|
-
});
|
|
106
|
+
dequeueErrors(e => e.raisedBy === config.id);
|
|
118
107
|
}
|
|
119
|
-
|
|
108
|
+
const allErrors = (0, _getErrorsForCollection.default)(config, masterPage, formData, hooks);
|
|
120
109
|
|
|
121
110
|
// We only queue allErrors if it's not empty to avoid
|
|
122
111
|
// triggering a race condition with the 'data' memo
|
|
@@ -125,26 +114,27 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
125
114
|
enqueueErrors(allErrors);
|
|
126
115
|
}
|
|
127
116
|
};
|
|
128
|
-
(0, _react.useEffect)(
|
|
117
|
+
(0, _react.useEffect)(() => {
|
|
129
118
|
// An empty array here indicates nothing to validate, higher level validation
|
|
130
119
|
// such as 'required' is taken care of at the page level not here
|
|
131
120
|
if (Array.isArray(data) && data.length > 0) {
|
|
132
121
|
validateEntries();
|
|
133
122
|
}
|
|
134
123
|
}, [data]);
|
|
135
|
-
|
|
124
|
+
const onSummaryCardFullEdit = (page, entryId) => {
|
|
136
125
|
if (typeof onAction === 'function') {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
126
|
+
const newData = [].concat(data);
|
|
127
|
+
const entryIndex = data.findIndex(e => e.id === entryId);
|
|
128
|
+
const {
|
|
129
|
+
isDuplicate,
|
|
130
|
+
...newEntry
|
|
131
|
+
} = data[entryIndex];
|
|
132
|
+
newData[entryIndex] = {
|
|
133
|
+
...newEntry
|
|
134
|
+
};
|
|
145
135
|
onAction({
|
|
146
136
|
type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
|
|
147
|
-
page
|
|
137
|
+
page,
|
|
148
138
|
addToFormData: [{
|
|
149
139
|
field: "".concat(config.collectionName.split('.').pop(), "ActiveId"),
|
|
150
140
|
value: entryId
|
|
@@ -156,12 +146,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
156
146
|
});
|
|
157
147
|
}
|
|
158
148
|
};
|
|
159
|
-
|
|
149
|
+
const onDuplicate = entry => {
|
|
160
150
|
var _config$card;
|
|
161
151
|
_utils.default.CollectionPage.duplicateEntry(config.collectionName, formData, entry.id, ((_config$card = config.card) === null || _config$card === void 0 || (_config$card = _config$card.duplicateAction) === null || _config$card === void 0 ? void 0 : _config$card.fieldsToIgnore) || [], {
|
|
162
152
|
isDuplicate: true
|
|
163
153
|
});
|
|
164
|
-
|
|
154
|
+
const topLevelCollectionName = config.collectionName.split('.').shift();
|
|
165
155
|
// Report the whole top-level collection as being changed. We have to do this
|
|
166
156
|
// because of how patch is applied to formData on a page submission.
|
|
167
157
|
if (typeof onTopLevelChange === 'function') {
|
|
@@ -174,12 +164,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
174
164
|
validateEntries();
|
|
175
165
|
}
|
|
176
166
|
};
|
|
177
|
-
|
|
167
|
+
const onDeleteConfirm = () => {
|
|
178
168
|
if (!entryToDelete) {
|
|
179
169
|
return;
|
|
180
170
|
}
|
|
181
171
|
_utils.default.CollectionPage.removeEntry(config.collectionName, formData, entryToDelete.id);
|
|
182
|
-
|
|
172
|
+
const topLevelCollectionName = config.collectionName.split('.').shift();
|
|
183
173
|
// Report the whole top-level collection as being changed. We have to do this
|
|
184
174
|
// because of how patch is applied to formData on a page submission.
|
|
185
175
|
if (typeof onTopLevelChange === 'function') {
|
|
@@ -193,14 +183,16 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
193
183
|
setEntryToDelete(null);
|
|
194
184
|
validateEntries();
|
|
195
185
|
};
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return c.fieldId === field;
|
|
199
|
-
});
|
|
186
|
+
const renderFieldValue = field => {
|
|
187
|
+
const component = allComponents.find(c => c.fieldId === field);
|
|
200
188
|
if (!component) return null;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
189
|
+
const row = (0, _getCYARow.default)({
|
|
190
|
+
...masterPage,
|
|
191
|
+
formData: {
|
|
192
|
+
...formData,
|
|
193
|
+
...entryToDelete
|
|
194
|
+
}
|
|
195
|
+
}, component);
|
|
204
196
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
205
197
|
key: field,
|
|
206
198
|
className: "confirmation-field-value"
|
|
@@ -214,22 +206,22 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
214
206
|
id: config.fieldId
|
|
215
207
|
}, entryToDelete && /*#__PURE__*/_react.default.createElement(_Confirmation.default, {
|
|
216
208
|
id: "".concat(config.fieldId, ".confirmation"),
|
|
217
|
-
message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message,
|
|
209
|
+
message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message, {
|
|
210
|
+
...entryToDelete,
|
|
218
211
|
index: entryToDelete.index + 1
|
|
219
|
-
})
|
|
212
|
+
}) || null,
|
|
220
213
|
confirmLabel: _utils.default.interpolateString((_config$confirmation2 = config.confirmation) === null || _config$confirmation2 === void 0 ? void 0 : _config$confirmation2.label, entryToDelete) || null,
|
|
221
214
|
onConfirm: onDeleteConfirm,
|
|
222
|
-
onCancel:
|
|
223
|
-
return setEntryToDelete(null);
|
|
224
|
-
}
|
|
215
|
+
onCancel: () => setEntryToDelete(null)
|
|
225
216
|
}, config.card.listView ? /*#__PURE__*/_react.default.createElement("div", {
|
|
226
217
|
className: "confirmation-content"
|
|
227
218
|
}, (_config$confirmation3 = config.confirmation) === null || _config$confirmation3 === void 0 ? void 0 : _config$confirmation3.displayFields.map(renderFieldValue)) : /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
|
|
228
219
|
id: "".concat(config.fieldId, ".confirmationChild"),
|
|
229
220
|
entryData: entryToDelete,
|
|
230
|
-
config: config.card ?
|
|
221
|
+
config: config.card ? {
|
|
222
|
+
...config.card,
|
|
231
223
|
quickEdit: null
|
|
232
|
-
}
|
|
224
|
+
} : {},
|
|
233
225
|
masterPage: masterPage,
|
|
234
226
|
classModifiers: "nested",
|
|
235
227
|
hideDetails: true
|
|
@@ -243,38 +235,38 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
243
235
|
classModifiers: ['secondary']
|
|
244
236
|
},
|
|
245
237
|
onAction: onAction
|
|
246
|
-
}), data.map(
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
238
|
+
}), data.map((entry, index) => {
|
|
239
|
+
const isInError = errors.filter(e => e.entryId === entry.id).length > 0;
|
|
240
|
+
const finalConfig = {
|
|
241
|
+
...config.card,
|
|
242
|
+
...(entry.isDuplicate && config.duplicatedCard ? config.duplicatedCard : {}),
|
|
243
|
+
...(isInError && config.errorCard ? config.errorCard : {})
|
|
244
|
+
};
|
|
245
|
+
const key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
|
|
252
246
|
return /*#__PURE__*/_react.default.createElement(_SummaryCardValidationContext.default, {
|
|
253
247
|
entryId: entry.id,
|
|
254
248
|
topLevelErrors: errors,
|
|
255
|
-
clearTopLevelErrorsForCard:
|
|
256
|
-
|
|
257
|
-
return e.entryId !== entry.id;
|
|
258
|
-
});
|
|
249
|
+
clearTopLevelErrorsForCard: () => {
|
|
250
|
+
const newErrors = errors.filter(e => e.entryId !== entry.id);
|
|
259
251
|
clearErrors();
|
|
260
252
|
addErrors(newErrors);
|
|
261
253
|
}
|
|
262
254
|
}, /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
|
|
263
255
|
id: key,
|
|
264
256
|
key: key,
|
|
265
|
-
entryData:
|
|
266
|
-
|
|
267
|
-
|
|
257
|
+
entryData: {
|
|
258
|
+
...entry,
|
|
259
|
+
index
|
|
260
|
+
},
|
|
268
261
|
masterPage: masterPage,
|
|
269
262
|
config: finalConfig || {},
|
|
270
263
|
onFullEdit: onSummaryCardFullEdit,
|
|
271
264
|
onDuplicate: onDuplicate,
|
|
272
|
-
onDelete:
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
onQuickEdit: function onQuickEdit(target) {
|
|
265
|
+
onDelete: () => setEntryToDelete({
|
|
266
|
+
...entry,
|
|
267
|
+
index
|
|
268
|
+
}),
|
|
269
|
+
onQuickEdit: target => {
|
|
278
270
|
validateEntries();
|
|
279
271
|
return onChange(target);
|
|
280
272
|
},
|
|
@@ -282,9 +274,7 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
282
274
|
childCollections: config.childCollections || [],
|
|
283
275
|
formData: formData,
|
|
284
276
|
classModifiers: entry.id === (entryToDelete === null || entryToDelete === void 0 ? void 0 : entryToDelete.id) ? ['deleting-summary-card'] : [''],
|
|
285
|
-
inError: errors.filter(
|
|
286
|
-
return e.entryId === entry.id;
|
|
287
|
-
}).length > 0
|
|
277
|
+
inError: errors.filter(e => e.entryId === entry.id).length > 0
|
|
288
278
|
}));
|
|
289
279
|
}), config.card.listView && config.addButton && /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
|
|
290
280
|
id: "".concat(config.fieldId, ".addButton"),
|