@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.2-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/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- 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 +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- 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 +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- 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 +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +72 -63
- package/dist/utils/Data/getAutocompleteSource.test.js +106 -98
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- 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 +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _CollectionPage = _interopRequireDefault(require("./CollectionPage"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
var _default = exports.default = _CollectionPage.default;
|
|
@@ -9,30 +9,30 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _utils = _interopRequireDefault(require("../../utils"));
|
|
11
11
|
require("./BannerStrip.scss");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
// Global imports.
|
|
14
14
|
|
|
15
15
|
// Local imports.
|
|
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,133 @@ 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" !=
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
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); }
|
|
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
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
11
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
-
function _defineProperty(
|
|
14
|
-
function _toPropertyKey(
|
|
15
|
-
function _toPrimitive(
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Global imports.
|
|
16
15
|
// Local imports.
|
|
17
|
-
describe('components.CollectionSummary.BannerStrip',
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
describe('components.CollectionSummary.BannerStrip', () => {
|
|
17
|
+
const ID = 'testBanner';
|
|
18
|
+
const BANNERS = ['Banner 1', 'Banner 2'];
|
|
19
|
+
const FORM_DATA = {
|
|
21
20
|
textField: 'banner'
|
|
22
21
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
|
|
23
|
+
const checkSetup = container => {
|
|
24
|
+
const bannerStripDiv = container.children[0];
|
|
26
25
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
27
26
|
expect(bannerStripDiv.id).toEqual(ID);
|
|
28
27
|
return bannerStripDiv;
|
|
29
28
|
};
|
|
30
|
-
it('should correctly render a BannerStrip component with plain-text banners',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
it('should correctly render a BannerStrip component with plain-text banners', () => {
|
|
30
|
+
const {
|
|
31
|
+
container
|
|
32
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
33
|
+
id: ID,
|
|
34
|
+
banners: BANNERS,
|
|
35
|
+
formData: FORM_DATA
|
|
36
|
+
}));
|
|
37
|
+
const bannerStripDiv = checkSetup(container);
|
|
38
38
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
39
39
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
40
40
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
43
43
|
expect(firstBanner.tagName).toEqual('DIV');
|
|
44
44
|
expect(firstBanner.classList).toContain(classes('banner'));
|
|
45
45
|
expect(firstBanner.textContent).toEqual(BANNERS[0]);
|
|
46
|
-
|
|
46
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
47
47
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
48
48
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
49
49
|
expect(secondBanner.textContent).toEqual(BANNERS[1]);
|
|
50
50
|
});
|
|
51
|
-
it('should correctly render a BannerStrip component with tag banners',
|
|
52
|
-
|
|
51
|
+
it('should correctly render a BannerStrip component with tag banners', () => {
|
|
52
|
+
const TAG_BANNERS = [{
|
|
53
53
|
text: 'Banner 1'
|
|
54
54
|
}, {
|
|
55
55
|
text: 'Banner 2'
|
|
56
56
|
}];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
const {
|
|
58
|
+
container
|
|
59
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
60
|
+
id: ID,
|
|
61
|
+
banners: TAG_BANNERS,
|
|
62
|
+
formData: FORM_DATA
|
|
63
|
+
}));
|
|
64
|
+
const bannerStripDiv = checkSetup(container);
|
|
64
65
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
65
66
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
66
67
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
69
70
|
expect(firstBanner.tagName).toEqual('STRONG');
|
|
70
71
|
expect(firstBanner.classList).toContain(classes('tag'));
|
|
71
72
|
expect(firstBanner.textContent).toEqual(BANNERS[0]);
|
|
72
|
-
|
|
73
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
73
74
|
expect(secondBanner.tagName).toEqual('STRONG');
|
|
74
75
|
expect(secondBanner.classList).toContain(classes('tag'));
|
|
75
76
|
expect(secondBanner.textContent).toEqual(BANNERS[1]);
|
|
76
77
|
});
|
|
77
|
-
it('should correctly interpolate banners',
|
|
78
|
-
|
|
78
|
+
it('should correctly interpolate banners', () => {
|
|
79
|
+
const INTERPOLATED_BANNERS = [{
|
|
79
80
|
// eslint-disable-next-line no-template-curly-in-string
|
|
80
81
|
text: 'An interpolated ${textField}'
|
|
81
82
|
},
|
|
82
83
|
// eslint-disable-next-line no-template-curly-in-string
|
|
83
84
|
'Another interpolated ${textField}'];
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
const {
|
|
86
|
+
container
|
|
87
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
88
|
+
id: ID,
|
|
89
|
+
banners: INTERPOLATED_BANNERS,
|
|
90
|
+
formData: FORM_DATA
|
|
91
|
+
}));
|
|
92
|
+
const bannerStripDiv = checkSetup(container);
|
|
91
93
|
expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
|
|
92
94
|
|
|
93
|
-
|
|
95
|
+
const firstBanner = bannerStripDiv.children[0];
|
|
94
96
|
expect(firstBanner.tagName).toEqual('STRONG');
|
|
95
97
|
expect(firstBanner.classList).toContain(classes('tag'));
|
|
96
98
|
expect(firstBanner.textContent).toEqual("An interpolated ".concat(FORM_DATA.textField));
|
|
97
|
-
|
|
99
|
+
const secondBanner = bannerStripDiv.children[1];
|
|
98
100
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
99
101
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
100
102
|
expect(secondBanner.textContent).toEqual("Another interpolated ".concat(FORM_DATA.textField));
|
|
101
103
|
});
|
|
102
|
-
it('should render no banners if none are provided',
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
it('should render no banners if none are provided', () => {
|
|
105
|
+
const {
|
|
106
|
+
container
|
|
107
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
108
|
+
id: ID,
|
|
109
|
+
formData: FORM_DATA
|
|
110
|
+
}));
|
|
111
|
+
const bannerStripDiv = checkSetup(container);
|
|
109
112
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
110
113
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
111
114
|
expect(bannerStripDiv.children.length).toEqual(0);
|
|
112
115
|
});
|
|
113
|
-
it('should correctly render a BannerStrip component with a plain string banner',
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
it('should correctly render a BannerStrip component with a plain string banner', () => {
|
|
117
|
+
const PLAIN_STRING_BANNER = 'banner';
|
|
118
|
+
const {
|
|
119
|
+
container
|
|
120
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
121
|
+
id: ID,
|
|
122
|
+
banners: [PLAIN_STRING_BANNER],
|
|
123
|
+
formData: FORM_DATA
|
|
124
|
+
}));
|
|
125
|
+
const bannerStripDiv = checkSetup(container);
|
|
122
126
|
expect(bannerStripDiv.children.length).toEqual(1); // One banner provided.
|
|
123
|
-
|
|
127
|
+
const plainStringBanner = bannerStripDiv.children[0];
|
|
124
128
|
expect(plainStringBanner.tagName).toEqual('DIV');
|
|
125
129
|
expect(plainStringBanner.classList.contains(classes('banner'))).toBe(true);
|
|
126
130
|
expect(plainStringBanner.textContent).toEqual(PLAIN_STRING_BANNER);
|
|
127
131
|
});
|
|
128
|
-
it('should correctly render banners based on their show_whens',
|
|
129
|
-
|
|
132
|
+
it('should correctly render banners based on their show_whens', () => {
|
|
133
|
+
const CUSTOM_BANNERS = [{
|
|
130
134
|
type: 'plain',
|
|
131
135
|
text: 'A banner',
|
|
132
136
|
show_when: [{
|
|
@@ -138,22 +142,23 @@ describe('components.CollectionSummary.BannerStrip', function () {
|
|
|
138
142
|
type: 'plain',
|
|
139
143
|
text: BANNERS[1]
|
|
140
144
|
}];
|
|
141
|
-
|
|
145
|
+
const CUSTOM_FORM_DATA = _objectSpread(_objectSpread({}, FORM_DATA), {}, {
|
|
142
146
|
testField: 'abc'
|
|
143
147
|
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
const {
|
|
149
|
+
container
|
|
150
|
+
} = (0, _setupTests.renderWithValidation)(/*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
|
|
151
|
+
id: ID,
|
|
152
|
+
banners: CUSTOM_BANNERS,
|
|
153
|
+
formData: CUSTOM_FORM_DATA
|
|
154
|
+
}));
|
|
155
|
+
const bannerStripDiv = checkSetup(container);
|
|
151
156
|
expect(bannerStripDiv.tagName).toEqual('DIV');
|
|
152
157
|
expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
|
|
153
158
|
expect(bannerStripDiv.children.length).toEqual(1); // One banner should be hidden.
|
|
154
159
|
|
|
155
160
|
// Only the second banner should be visible.
|
|
156
|
-
|
|
161
|
+
const secondBanner = bannerStripDiv.children[0];
|
|
157
162
|
expect(secondBanner.tagName).toEqual('DIV');
|
|
158
163
|
expect(secondBanner.classList).toContain(classes('banner'));
|
|
159
164
|
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,20 @@ 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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function
|
|
24
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
25
|
-
function _interopRequireDefault(
|
|
26
|
-
function _objectWithoutProperties(
|
|
27
|
-
function _objectWithoutPropertiesLoose(
|
|
21
|
+
const _excluded = ["isDuplicate"];
|
|
22
|
+
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); }
|
|
23
|
+
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; }
|
|
24
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
25
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
26
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
28
27
|
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
28
|
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(
|
|
31
|
-
function _toPropertyKey(
|
|
32
|
-
function _toPrimitive(
|
|
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.
|
|
29
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
30
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
31
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Global imports.
|
|
39
32
|
// Local imports.
|
|
40
33
|
// Styles.
|
|
41
|
-
|
|
34
|
+
const DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
|
|
42
35
|
|
|
43
36
|
// A note about validation.
|
|
44
37
|
//
|
|
@@ -52,31 +45,30 @@ var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
|
|
|
52
45
|
// errors found by the summary and allow the Summary Card to keep any Quick Edit
|
|
53
46
|
// errors local to the Quick Edit page.
|
|
54
47
|
|
|
55
|
-
|
|
48
|
+
const CollectionSummary = _ref => {
|
|
56
49
|
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
|
-
var toFocusOn = Array.isArray(data) && data.length > 0 ? data.reduce(function (acc, current) {
|
|
50
|
+
let {
|
|
51
|
+
config,
|
|
52
|
+
formData,
|
|
53
|
+
onAction,
|
|
54
|
+
onChange,
|
|
55
|
+
onTopLevelChange,
|
|
56
|
+
pages
|
|
57
|
+
} = _ref;
|
|
58
|
+
const {
|
|
59
|
+
hooks
|
|
60
|
+
} = (0, _hooks.useHooks)();
|
|
61
|
+
const {
|
|
62
|
+
errors,
|
|
63
|
+
addErrors,
|
|
64
|
+
clearErrors,
|
|
65
|
+
queuedErrors,
|
|
66
|
+
enqueueErrors,
|
|
67
|
+
dequeueErrors
|
|
68
|
+
} = (0, _hooks.useValidation)();
|
|
69
|
+
const [entryToDelete, setEntryToDelete] = (0, _react.useState)(null);
|
|
70
|
+
const data = (0, _react.useMemo)(() => _utils.default.CollectionPage.getData(config.collectionName, formData) || [], [formData]);
|
|
71
|
+
const toFocusOn = Array.isArray(data) && data.length > 0 ? data.reduce((acc, current) => {
|
|
80
72
|
if (current.isDuplicate) {
|
|
81
73
|
if (!acc || current.id > acc.id) {
|
|
82
74
|
return current;
|
|
@@ -85,47 +77,45 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
85
77
|
}
|
|
86
78
|
return acc;
|
|
87
79
|
}, null) : null;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return collectionNameParts.reduce(
|
|
80
|
+
const masterPage = (0, _react.useMemo)(() => {
|
|
81
|
+
const collectionNameParts = config.collectionName.split('.');
|
|
82
|
+
let childPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
|
|
83
|
+
return collectionNameParts.reduce((acc, current, index) => {
|
|
92
84
|
var _childPages$find;
|
|
93
|
-
|
|
85
|
+
const currentPath = index === 0 ? "".concat(acc).concat(current) : "".concat(acc, ".").concat(current);
|
|
94
86
|
if (index === collectionNameParts.length - 1) {
|
|
95
87
|
var _childPages;
|
|
96
|
-
return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(
|
|
88
|
+
return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(p => {
|
|
97
89
|
var _p$collection;
|
|
98
90
|
return ((_p$collection = p.collection) === null || _p$collection === void 0 ? void 0 : _p$collection.name) === currentPath;
|
|
99
91
|
})) || null;
|
|
100
92
|
}
|
|
101
|
-
childPages = ((_childPages$find = childPages.find(
|
|
93
|
+
childPages = ((_childPages$find = childPages.find(p => {
|
|
102
94
|
var _p$collection2;
|
|
103
95
|
return ((_p$collection2 = p.collection) === null || _p$collection2 === void 0 ? void 0 : _p$collection2.name) === currentPath;
|
|
104
96
|
})) === null || _childPages$find === void 0 ? void 0 : _childPages$find.childPages) || null;
|
|
105
97
|
return currentPath;
|
|
106
98
|
}, "");
|
|
107
99
|
}, [pages]);
|
|
108
|
-
|
|
100
|
+
const allComponents = (0, _react.useMemo)(() => {
|
|
109
101
|
if (config.card.listView) {
|
|
110
102
|
var _masterPage$childPage;
|
|
111
|
-
|
|
112
|
-
|
|
103
|
+
const components = (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.reduce((acc, page) => {
|
|
104
|
+
const elevatedComponents = (0, _elevateNestedComponents.default)(page.components, _objectSpread(_objectSpread({}, formData), entryToDelete));
|
|
113
105
|
return acc.concat(elevatedComponents);
|
|
114
106
|
}, []);
|
|
115
107
|
return components || [];
|
|
116
108
|
}
|
|
117
109
|
return [];
|
|
118
110
|
}, [masterPage, formData, entryToDelete, config.card.listView]);
|
|
119
|
-
|
|
111
|
+
const validateEntries = () => {
|
|
120
112
|
// We only clear queuedErrors if it's not empty to avoid
|
|
121
113
|
// triggering a race condition with the 'data' memo
|
|
122
114
|
// above.
|
|
123
115
|
if (queuedErrors.length > 0) {
|
|
124
|
-
dequeueErrors(
|
|
125
|
-
return e.raisedBy === config.id;
|
|
126
|
-
});
|
|
116
|
+
dequeueErrors(e => e.raisedBy === config.id);
|
|
127
117
|
}
|
|
128
|
-
|
|
118
|
+
const allErrors = (0, _getErrorsForCollection.default)(config, masterPage, formData, hooks);
|
|
129
119
|
|
|
130
120
|
// We only queue allErrors if it's not empty to avoid
|
|
131
121
|
// triggering a race condition with the 'data' memo
|
|
@@ -134,26 +124,26 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
134
124
|
enqueueErrors(allErrors);
|
|
135
125
|
}
|
|
136
126
|
};
|
|
137
|
-
(0, _react.useEffect)(
|
|
127
|
+
(0, _react.useEffect)(() => {
|
|
138
128
|
// An empty array here indicates nothing to validate, higher level validation
|
|
139
129
|
// such as 'required' is taken care of at the page level not here
|
|
140
130
|
if (Array.isArray(data) && data.length > 0) {
|
|
141
131
|
validateEntries();
|
|
142
132
|
}
|
|
143
133
|
}, [data]);
|
|
144
|
-
|
|
134
|
+
const onSummaryCardFullEdit = (page, entryId) => {
|
|
145
135
|
if (typeof onAction === 'function') {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
136
|
+
const newData = [].concat(data);
|
|
137
|
+
const entryIndex = data.findIndex(e => e.id === entryId);
|
|
138
|
+
const _data$entryIndex = data[entryIndex],
|
|
139
|
+
{
|
|
140
|
+
isDuplicate
|
|
141
|
+
} = _data$entryIndex,
|
|
152
142
|
newEntry = _objectWithoutProperties(_data$entryIndex, _excluded);
|
|
153
143
|
newData[entryIndex] = _objectSpread({}, newEntry);
|
|
154
144
|
onAction({
|
|
155
145
|
type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
|
|
156
|
-
page
|
|
146
|
+
page,
|
|
157
147
|
addToFormData: [{
|
|
158
148
|
field: "".concat(config.collectionName.split('.').pop(), "ActiveId"),
|
|
159
149
|
value: entryId
|
|
@@ -165,12 +155,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
165
155
|
});
|
|
166
156
|
}
|
|
167
157
|
};
|
|
168
|
-
|
|
158
|
+
const onDuplicate = entry => {
|
|
169
159
|
var _config$card;
|
|
170
160
|
_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) || [], {
|
|
171
161
|
isDuplicate: true
|
|
172
162
|
});
|
|
173
|
-
|
|
163
|
+
const topLevelCollectionName = config.collectionName.split('.').shift();
|
|
174
164
|
// Report the whole top-level collection as being changed. We have to do this
|
|
175
165
|
// because of how patch is applied to formData on a page submission.
|
|
176
166
|
if (typeof onTopLevelChange === 'function') {
|
|
@@ -183,12 +173,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
183
173
|
validateEntries();
|
|
184
174
|
}
|
|
185
175
|
};
|
|
186
|
-
|
|
176
|
+
const onDeleteConfirm = () => {
|
|
187
177
|
if (!entryToDelete) {
|
|
188
178
|
return;
|
|
189
179
|
}
|
|
190
180
|
_utils.default.CollectionPage.removeEntry(config.collectionName, formData, entryToDelete.id);
|
|
191
|
-
|
|
181
|
+
const topLevelCollectionName = config.collectionName.split('.').shift();
|
|
192
182
|
// Report the whole top-level collection as being changed. We have to do this
|
|
193
183
|
// because of how patch is applied to formData on a page submission.
|
|
194
184
|
if (typeof onTopLevelChange === 'function') {
|
|
@@ -202,12 +192,10 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
202
192
|
setEntryToDelete(null);
|
|
203
193
|
validateEntries();
|
|
204
194
|
};
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
return c.fieldId === field;
|
|
208
|
-
});
|
|
195
|
+
const renderFieldValue = field => {
|
|
196
|
+
const component = allComponents.find(c => c.fieldId === field);
|
|
209
197
|
if (!component) return null;
|
|
210
|
-
|
|
198
|
+
const row = (0, _getCYARow.default)(_objectSpread(_objectSpread({}, masterPage), {}, {
|
|
211
199
|
formData: _objectSpread(_objectSpread({}, formData), entryToDelete)
|
|
212
200
|
}), component);
|
|
213
201
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -228,9 +216,7 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
228
216
|
})) || null,
|
|
229
217
|
confirmLabel: _utils.default.interpolateString((_config$confirmation2 = config.confirmation) === null || _config$confirmation2 === void 0 ? void 0 : _config$confirmation2.label, entryToDelete) || null,
|
|
230
218
|
onConfirm: onDeleteConfirm,
|
|
231
|
-
onCancel:
|
|
232
|
-
return setEntryToDelete(null);
|
|
233
|
-
}
|
|
219
|
+
onCancel: () => setEntryToDelete(null)
|
|
234
220
|
}, config.card.listView ? /*#__PURE__*/_react.default.createElement("div", {
|
|
235
221
|
className: "confirmation-content"
|
|
236
222
|
}, (_config$confirmation3 = config.confirmation) === null || _config$confirmation3 === void 0 ? void 0 : _config$confirmation3.displayFields.map(renderFieldValue)) : /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
|
|
@@ -256,21 +242,17 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
256
242
|
onAction: onAction
|
|
257
243
|
}), /*#__PURE__*/_react.default.createElement("ul", {
|
|
258
244
|
className: "collection-summary-card-list"
|
|
259
|
-
}, data.map(
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}).length > 0;
|
|
263
|
-
var finalConfig = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, config.card), entry.isDuplicate && config.duplicatedCard ? config.duplicatedCard : {}), isInError && config.errorCard ? config.errorCard : {}), {}, {
|
|
245
|
+
}, data.map((entry, index) => {
|
|
246
|
+
const isInError = errors.filter(e => e.entryId === entry.id).length > 0;
|
|
247
|
+
const finalConfig = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, config.card), entry.isDuplicate && config.duplicatedCard ? config.duplicatedCard : {}), isInError && config.errorCard ? config.errorCard : {}), {}, {
|
|
264
248
|
focusOn: (toFocusOn === null || toFocusOn === void 0 ? void 0 : toFocusOn.id) === entry.id
|
|
265
249
|
});
|
|
266
|
-
|
|
250
|
+
const key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
|
|
267
251
|
return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_SummaryCardValidationContext.default, {
|
|
268
252
|
entryId: entry.id,
|
|
269
253
|
topLevelErrors: errors,
|
|
270
|
-
clearTopLevelErrorsForCard:
|
|
271
|
-
|
|
272
|
-
return e.entryId !== entry.id;
|
|
273
|
-
});
|
|
254
|
+
clearTopLevelErrorsForCard: () => {
|
|
255
|
+
const newErrors = errors.filter(e => e.entryId !== entry.id);
|
|
274
256
|
clearErrors();
|
|
275
257
|
addErrors(newErrors);
|
|
276
258
|
}
|
|
@@ -278,18 +260,16 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
278
260
|
id: key,
|
|
279
261
|
key: key,
|
|
280
262
|
entryData: _objectSpread(_objectSpread({}, entry), {}, {
|
|
281
|
-
index
|
|
263
|
+
index
|
|
282
264
|
}),
|
|
283
265
|
masterPage: masterPage,
|
|
284
266
|
config: finalConfig || {},
|
|
285
267
|
onFullEdit: onSummaryCardFullEdit,
|
|
286
268
|
onDuplicate: onDuplicate,
|
|
287
|
-
onDelete:
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
},
|
|
292
|
-
onQuickEdit: function onQuickEdit(target) {
|
|
269
|
+
onDelete: () => setEntryToDelete(_objectSpread(_objectSpread({}, entry), {}, {
|
|
270
|
+
index
|
|
271
|
+
})),
|
|
272
|
+
onQuickEdit: target => {
|
|
293
273
|
validateEntries();
|
|
294
274
|
return onChange(target);
|
|
295
275
|
},
|
|
@@ -297,9 +277,7 @@ var CollectionSummary = function CollectionSummary(_ref) {
|
|
|
297
277
|
childCollections: config.childCollections || [],
|
|
298
278
|
formData: formData,
|
|
299
279
|
classModifiers: entry.id === (entryToDelete === null || entryToDelete === void 0 ? void 0 : entryToDelete.id) ? ['deleting-summary-card'] : [''],
|
|
300
|
-
inError: errors.filter(
|
|
301
|
-
return e.entryId === entry.id;
|
|
302
|
-
}).length > 0
|
|
280
|
+
inError: errors.filter(e => e.entryId === entry.id).length > 0
|
|
303
281
|
})));
|
|
304
282
|
})), config.card.listView && config.addButton && /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
|
|
305
283
|
id: "".concat(config.fieldId, ".addButton"),
|