@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.scss +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.scss +1 -1
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +27 -40
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _ = _interopRequireDefault(require(".."));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const getErrorsForCollection = function (config, masterPage, formData, hooks) {
|
|
10
|
+
let activeIds = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
11
|
+
if (!masterPage) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
// Get data for current collection
|
|
15
|
+
const collectionData = _.default.CollectionPage.getData(masterPage.collection.name, masterPage.formData) || [];
|
|
16
|
+
let allErrors = [];
|
|
17
|
+
|
|
18
|
+
// Loop over each entry in the collection data
|
|
19
|
+
collectionData.forEach(entry => {
|
|
20
|
+
var _masterPage$childPage;
|
|
21
|
+
// eslint-disable-next-line no-param-reassign
|
|
22
|
+
activeIds = {
|
|
23
|
+
...activeIds,
|
|
24
|
+
["".concat(masterPage.collection.name.split('.').pop(), "ActiveId")]: entry.id
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// Loop over child pages and validate each one
|
|
28
|
+
const allPagesErrors = (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.flatMap(page => {
|
|
29
|
+
const pageWithIds = {
|
|
30
|
+
...page,
|
|
31
|
+
formData: {
|
|
32
|
+
...formData,
|
|
33
|
+
...activeIds
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// Handle nested collections
|
|
38
|
+
if (page.childPages) {
|
|
39
|
+
return getErrorsForCollection(config, pageWithIds, formData, hooks, activeIds);
|
|
40
|
+
}
|
|
41
|
+
const pageErrors = _.default.Validate.page(pageWithIds);
|
|
42
|
+
return hooks.onValidate(pageWithIds, pageErrors);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// For each error add the entryId so we know what Summary Card we have to pass it to.
|
|
46
|
+
allErrors = allErrors.concat(allPagesErrors.map(e => ({
|
|
47
|
+
...e,
|
|
48
|
+
entryId: entry.id,
|
|
49
|
+
showFor: config.id,
|
|
50
|
+
raisedBy: config.id
|
|
51
|
+
})));
|
|
52
|
+
});
|
|
53
|
+
return allErrors;
|
|
54
|
+
};
|
|
55
|
+
var _default = exports.default = getErrorsForCollection;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _getErrorsForCollection = _interopRequireDefault(require("./getErrorsForCollection"));
|
|
4
|
+
var _models = require("../../models");
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
describe('Utils.CollectionPage.getErrorsForCollection', () => {
|
|
7
|
+
const HOOKS = {
|
|
8
|
+
onValidate: (_, errors) => errors
|
|
9
|
+
};
|
|
10
|
+
const CONFIG = {
|
|
11
|
+
id: 'testId'
|
|
12
|
+
};
|
|
13
|
+
const FORM_DATA = {
|
|
14
|
+
collection: [{
|
|
15
|
+
id: 22,
|
|
16
|
+
item1: 'blue',
|
|
17
|
+
child: [{
|
|
18
|
+
id: 11,
|
|
19
|
+
item4: 'red'
|
|
20
|
+
}]
|
|
21
|
+
}]
|
|
22
|
+
};
|
|
23
|
+
const FORM_DATA_MISSING_TOP = {
|
|
24
|
+
collection: [{
|
|
25
|
+
id: 22,
|
|
26
|
+
item2: 'blue',
|
|
27
|
+
child: [{
|
|
28
|
+
id: 11,
|
|
29
|
+
item4: 'red'
|
|
30
|
+
}]
|
|
31
|
+
}]
|
|
32
|
+
};
|
|
33
|
+
const FORM_DATA_MISSING_NESTED = {
|
|
34
|
+
collection: [{
|
|
35
|
+
id: 22,
|
|
36
|
+
item1: 'blue',
|
|
37
|
+
child: [{
|
|
38
|
+
id: 11,
|
|
39
|
+
item9: 'red'
|
|
40
|
+
}]
|
|
41
|
+
}]
|
|
42
|
+
};
|
|
43
|
+
const FORM_DATA_MISSING_BOTH = {
|
|
44
|
+
collection: [{
|
|
45
|
+
id: 22,
|
|
46
|
+
item9: 'blue',
|
|
47
|
+
child: [{
|
|
48
|
+
id: 11,
|
|
49
|
+
item9: 'red'
|
|
50
|
+
}]
|
|
51
|
+
}]
|
|
52
|
+
};
|
|
53
|
+
const MASTER_PAGE = {
|
|
54
|
+
id: 'masterPage',
|
|
55
|
+
collection: {
|
|
56
|
+
name: 'collection',
|
|
57
|
+
masterPage: true
|
|
58
|
+
},
|
|
59
|
+
formData: FORM_DATA,
|
|
60
|
+
childPages: [{
|
|
61
|
+
id: 'page1',
|
|
62
|
+
collection: {
|
|
63
|
+
name: 'collection'
|
|
64
|
+
},
|
|
65
|
+
formData: FORM_DATA,
|
|
66
|
+
components: [{
|
|
67
|
+
id: 'item1',
|
|
68
|
+
fieldId: 'item1',
|
|
69
|
+
label: 'Item 1',
|
|
70
|
+
required: true,
|
|
71
|
+
type: _models.ComponentTypes.TEXT
|
|
72
|
+
}, {
|
|
73
|
+
id: 'item2',
|
|
74
|
+
fieldId: 'item2',
|
|
75
|
+
label: 'Item 2',
|
|
76
|
+
type: _models.ComponentTypes.TEXT
|
|
77
|
+
}]
|
|
78
|
+
}]
|
|
79
|
+
};
|
|
80
|
+
const MASTER_PAGE_WITH_NESTED = {
|
|
81
|
+
id: 'masterPage',
|
|
82
|
+
collection: {
|
|
83
|
+
name: 'collection',
|
|
84
|
+
masterPage: true
|
|
85
|
+
},
|
|
86
|
+
formData: FORM_DATA,
|
|
87
|
+
childPages: [{
|
|
88
|
+
id: 'page1',
|
|
89
|
+
collection: {
|
|
90
|
+
name: 'collection'
|
|
91
|
+
},
|
|
92
|
+
formData: FORM_DATA,
|
|
93
|
+
components: [{
|
|
94
|
+
id: 'item1',
|
|
95
|
+
fieldId: 'item1',
|
|
96
|
+
label: 'Item 1',
|
|
97
|
+
required: true,
|
|
98
|
+
type: _models.ComponentTypes.TEXT
|
|
99
|
+
}, {
|
|
100
|
+
id: 'item2',
|
|
101
|
+
fieldId: 'item2',
|
|
102
|
+
label: 'Item 2',
|
|
103
|
+
type: _models.ComponentTypes.TEXT
|
|
104
|
+
}]
|
|
105
|
+
}, {
|
|
106
|
+
id: 'page2',
|
|
107
|
+
formData: FORM_DATA,
|
|
108
|
+
collection: {
|
|
109
|
+
name: 'collection.child',
|
|
110
|
+
masterPage: true
|
|
111
|
+
},
|
|
112
|
+
childPages: [{
|
|
113
|
+
id: 'nestedPage',
|
|
114
|
+
formData: FORM_DATA,
|
|
115
|
+
collection: {
|
|
116
|
+
name: 'collection.child'
|
|
117
|
+
},
|
|
118
|
+
components: [{
|
|
119
|
+
id: 'item4',
|
|
120
|
+
fieldId: 'item4',
|
|
121
|
+
label: 'Item 4',
|
|
122
|
+
required: true,
|
|
123
|
+
type: _models.ComponentTypes.TEXT
|
|
124
|
+
}, {
|
|
125
|
+
id: 'item5',
|
|
126
|
+
fieldId: 'item5',
|
|
127
|
+
label: 'Item 5',
|
|
128
|
+
type: _models.ComponentTypes.TEXT
|
|
129
|
+
}]
|
|
130
|
+
}]
|
|
131
|
+
}]
|
|
132
|
+
};
|
|
133
|
+
it('should return nothing for a master page without errors', () => {
|
|
134
|
+
const errors = (0, _getErrorsForCollection.default)(CONFIG, MASTER_PAGE, FORM_DATA, HOOKS);
|
|
135
|
+
expect(errors.length).toEqual(0);
|
|
136
|
+
});
|
|
137
|
+
it('should return erorrs for a master page with errors', () => {
|
|
138
|
+
const errors = (0, _getErrorsForCollection.default)(CONFIG, MASTER_PAGE, FORM_DATA_MISSING_TOP, HOOKS);
|
|
139
|
+
expect(errors.length).toEqual(1);
|
|
140
|
+
});
|
|
141
|
+
it('should return nothing for a master page with a nested master page without errors', () => {
|
|
142
|
+
const errors = (0, _getErrorsForCollection.default)(CONFIG, MASTER_PAGE_WITH_NESTED, FORM_DATA, HOOKS);
|
|
143
|
+
expect(errors.length).toEqual(0);
|
|
144
|
+
});
|
|
145
|
+
it('should return errors for a master page with a nested master page without errors', () => {
|
|
146
|
+
const errors = (0, _getErrorsForCollection.default)(CONFIG, MASTER_PAGE_WITH_NESTED, FORM_DATA_MISSING_NESTED, HOOKS);
|
|
147
|
+
expect(errors.length).toEqual(1);
|
|
148
|
+
});
|
|
149
|
+
it('should return errors for a master page with errors with a nested master page with errors', () => {
|
|
150
|
+
const errors = (0, _getErrorsForCollection.default)(CONFIG, MASTER_PAGE_WITH_NESTED, FORM_DATA_MISSING_BOTH, HOOKS);
|
|
151
|
+
expect(errors.length).toEqual(2);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
@@ -7,12 +7,6 @@ exports.default = void 0;
|
|
|
7
7
|
var _meetsAllConditions = _interopRequireDefault(require("../Condition/meetsAllConditions"));
|
|
8
8
|
var _showFormPage = _interopRequireDefault(require("../FormPage/showFormPage"));
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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); }
|
|
11
|
-
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
|
-
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); }
|
|
16
10
|
/**
|
|
17
11
|
* Generates a new page to be used in a SumaryCard's quick edit section.
|
|
18
12
|
* The page is a standard form page that has all the components that are
|
|
@@ -47,41 +41,50 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
47
41
|
* editable or not.
|
|
48
42
|
*
|
|
49
43
|
* @param {object} masterPage The master page for the collection.
|
|
44
|
+
* @param {object} formData The top-level formData object.
|
|
50
45
|
* @param {object} entryData The data for the current collection entry.
|
|
51
46
|
* @returns Page suitble for rendering in a QuickEdit
|
|
52
47
|
*/
|
|
53
|
-
|
|
48
|
+
const getQuickEditPage = (masterPage, formData, entryData) => {
|
|
54
49
|
if (!masterPage) {
|
|
55
50
|
return null;
|
|
56
51
|
}
|
|
57
|
-
|
|
58
|
-
masterPage.childPages.forEach(
|
|
59
|
-
if (!page.summaryQuickEdit || !(0, _showFormPage.default)(page,
|
|
52
|
+
const fullComponents = [];
|
|
53
|
+
masterPage.childPages.forEach(page => {
|
|
54
|
+
if (!page.summaryQuickEdit || !(0, _showFormPage.default)(page, {
|
|
55
|
+
...formData,
|
|
56
|
+
...entryData
|
|
57
|
+
})) {
|
|
60
58
|
return;
|
|
61
59
|
}
|
|
62
|
-
page.summaryQuickEdit.forEach(
|
|
60
|
+
page.summaryQuickEdit.forEach(quickEditComponent => {
|
|
63
61
|
if (typeof quickEditComponent === 'string') {
|
|
64
|
-
fullComponents.push(
|
|
65
|
-
|
|
66
|
-
})
|
|
62
|
+
fullComponents.push({
|
|
63
|
+
...page.components.find(c => c.id === quickEditComponent)
|
|
64
|
+
});
|
|
67
65
|
return;
|
|
68
66
|
}
|
|
69
|
-
|
|
70
|
-
return c.id === quickEditComponent.use;
|
|
71
|
-
});
|
|
67
|
+
const originalComponent = page.components.find(c => c.id === quickEditComponent.use);
|
|
72
68
|
if (!originalComponent) {
|
|
73
69
|
return;
|
|
74
70
|
}
|
|
75
|
-
|
|
71
|
+
const mergedComponent = {
|
|
72
|
+
...originalComponent,
|
|
73
|
+
...quickEditComponent
|
|
74
|
+
};
|
|
76
75
|
|
|
77
76
|
// If there's a show_when in the quick edit config, then we treat
|
|
78
77
|
// that as a specific test for when the component should be quick
|
|
79
78
|
// editable - it doesn't get spread to the merged object.
|
|
80
79
|
if (quickEditComponent.show_when) {
|
|
81
|
-
if ((0, _meetsAllConditions.default)(quickEditComponent.show_when,
|
|
82
|
-
|
|
80
|
+
if ((0, _meetsAllConditions.default)(quickEditComponent.show_when, {
|
|
81
|
+
...formData,
|
|
82
|
+
...entryData
|
|
83
|
+
})) {
|
|
84
|
+
fullComponents.push({
|
|
85
|
+
...mergedComponent,
|
|
83
86
|
show_when: originalComponent.show_when || []
|
|
84
|
-
})
|
|
87
|
+
});
|
|
85
88
|
}
|
|
86
89
|
return;
|
|
87
90
|
}
|
|
@@ -90,7 +93,10 @@ var getQuickEditPage = function getQuickEditPage(masterPage, entryData) {
|
|
|
90
93
|
});
|
|
91
94
|
|
|
92
95
|
// Put components and actions onto page object
|
|
93
|
-
|
|
96
|
+
const pageToReturn = {
|
|
97
|
+
...masterPage.childPages[0],
|
|
98
|
+
formData
|
|
99
|
+
};
|
|
94
100
|
pageToReturn.components = fullComponents;
|
|
95
101
|
pageToReturn.actions = [{
|
|
96
102
|
type: 'save',
|
|
@@ -104,7 +110,15 @@ var getQuickEditPage = function getQuickEditPage(masterPage, entryData) {
|
|
|
104
110
|
}];
|
|
105
111
|
|
|
106
112
|
// Need to have the collection data at the top level
|
|
107
|
-
|
|
113
|
+
// Remove ID to stop overwriting top-level form ID.
|
|
114
|
+
const {
|
|
115
|
+
id,
|
|
116
|
+
...entryWithNoId
|
|
117
|
+
} = entryData;
|
|
118
|
+
pageToReturn.formData = {
|
|
119
|
+
...pageToReturn.formData,
|
|
120
|
+
...entryWithNoId
|
|
121
|
+
};
|
|
108
122
|
delete pageToReturn.title;
|
|
109
123
|
delete pageToReturn.collection;
|
|
110
124
|
return pageToReturn;
|
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
var _getQuickEditPage = _interopRequireDefault(require("./getQuickEditPage"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
describe('Utils.CollectionPage.getQuickEditPage', () => {
|
|
6
|
+
const FORM_DATA = {
|
|
7
|
+
items: [{
|
|
8
|
+
id: '123',
|
|
9
|
+
testText1: 'value 1',
|
|
10
|
+
testText2: 'value 2',
|
|
11
|
+
conditionText: 'true',
|
|
12
|
+
testText3: 'value 3'
|
|
13
|
+
}]
|
|
14
|
+
};
|
|
15
|
+
const MASTER_PAGE = {
|
|
13
16
|
childPages: [{
|
|
14
17
|
id: 'firstPage',
|
|
15
18
|
name: 'firstPage',
|
|
@@ -44,15 +47,7 @@ describe('Utils.CollectionPage.getQuickEditPage', function () {
|
|
|
44
47
|
fieldId: 'testText2',
|
|
45
48
|
required: true
|
|
46
49
|
}],
|
|
47
|
-
formData:
|
|
48
|
-
items: [{
|
|
49
|
-
id: '123',
|
|
50
|
-
testText1: 'value 1',
|
|
51
|
-
testText2: 'value 2',
|
|
52
|
-
conditionText: 'true',
|
|
53
|
-
testText3: 'value 3'
|
|
54
|
-
}]
|
|
55
|
-
},
|
|
50
|
+
formData: FORM_DATA,
|
|
56
51
|
summaryQuickEdit: [{
|
|
57
52
|
use: "testText2",
|
|
58
53
|
show_when: {
|
|
@@ -69,19 +64,11 @@ describe('Utils.CollectionPage.getQuickEditPage', function () {
|
|
|
69
64
|
fieldId: 'testText3',
|
|
70
65
|
required: true
|
|
71
66
|
}],
|
|
72
|
-
formData:
|
|
73
|
-
items: [{
|
|
74
|
-
id: '123',
|
|
75
|
-
testText1: 'value 1',
|
|
76
|
-
testText2: 'value 2',
|
|
77
|
-
conditionText: 'true',
|
|
78
|
-
testText3: 'value 3'
|
|
79
|
-
}]
|
|
80
|
-
},
|
|
67
|
+
formData: FORM_DATA,
|
|
81
68
|
summaryQuickEdit: ["testText3"]
|
|
82
69
|
}]
|
|
83
70
|
};
|
|
84
|
-
|
|
71
|
+
const EXPECTED_OUTPUT = {
|
|
85
72
|
id: 'firstPage',
|
|
86
73
|
name: 'firstPage',
|
|
87
74
|
components: [{
|
|
@@ -103,15 +90,7 @@ describe('Utils.CollectionPage.getQuickEditPage', function () {
|
|
|
103
90
|
fieldId: 'testText3',
|
|
104
91
|
required: true
|
|
105
92
|
}],
|
|
106
|
-
formData:
|
|
107
|
-
items: [{
|
|
108
|
-
id: '123',
|
|
109
|
-
testText1: 'value 1',
|
|
110
|
-
testText2: 'value 2',
|
|
111
|
-
conditionText: 'true',
|
|
112
|
-
testText3: 'value 3'
|
|
113
|
-
}]
|
|
114
|
-
},
|
|
93
|
+
formData: FORM_DATA,
|
|
115
94
|
actions: [{
|
|
116
95
|
type: 'save',
|
|
117
96
|
label: 'Save',
|
|
@@ -123,28 +102,30 @@ describe('Utils.CollectionPage.getQuickEditPage', function () {
|
|
|
123
102
|
classModifiers: 'secondary'
|
|
124
103
|
}]
|
|
125
104
|
};
|
|
126
|
-
|
|
105
|
+
const ENTRY_DATA = {
|
|
127
106
|
id: '123',
|
|
128
107
|
testText1: 'value 1',
|
|
129
108
|
testText2: 'value 2',
|
|
130
109
|
conditionText: 'true',
|
|
131
110
|
testText3: 'value 3'
|
|
132
111
|
};
|
|
133
|
-
it('should return a quick edit page',
|
|
134
|
-
|
|
112
|
+
it('should return a quick edit page', () => {
|
|
113
|
+
const createdPage = (0, _getQuickEditPage.default)(MASTER_PAGE, FORM_DATA, ENTRY_DATA);
|
|
135
114
|
expect(createdPage).toMatchObject(EXPECTED_OUTPUT);
|
|
136
115
|
});
|
|
137
|
-
it('should return a quick edit page without components that fail the quick edit show_when',
|
|
138
|
-
|
|
116
|
+
it('should return a quick edit page without components that fail the quick edit show_when', () => {
|
|
117
|
+
const CUSTOM_OUTPUT = {
|
|
118
|
+
...EXPECTED_OUTPUT,
|
|
139
119
|
components: [EXPECTED_OUTPUT.components[0],
|
|
140
120
|
// The second component should fail the show when
|
|
141
121
|
// and not be included in the quick edit page.
|
|
142
122
|
EXPECTED_OUTPUT.components[2]]
|
|
143
|
-
}
|
|
144
|
-
|
|
123
|
+
};
|
|
124
|
+
const CUSTOM_ENTRY_DATA = {
|
|
125
|
+
...ENTRY_DATA,
|
|
145
126
|
conditionText: 'false'
|
|
146
|
-
}
|
|
147
|
-
|
|
127
|
+
};
|
|
128
|
+
const createdPage = (0, _getQuickEditPage.default)(MASTER_PAGE, FORM_DATA, CUSTOM_ENTRY_DATA);
|
|
148
129
|
expect(createdPage).toMatchObject(CUSTOM_OUTPUT);
|
|
149
130
|
});
|
|
150
131
|
});
|
|
@@ -10,19 +10,21 @@ var _duplicateCollectionPageEntry = _interopRequireDefault(require("./duplicateC
|
|
|
10
10
|
var _getCollectionPageActiveId = _interopRequireDefault(require("./getCollectionPageActiveId"));
|
|
11
11
|
var _getCollectionPageActiveIndex = _interopRequireDefault(require("./getCollectionPageActiveIndex"));
|
|
12
12
|
var _getCollectionPageData = _interopRequireDefault(require("./getCollectionPageData"));
|
|
13
|
+
var _getErrorsForCollection = _interopRequireDefault(require("./getErrorsForCollection"));
|
|
13
14
|
var _mergeCollectionPages = _interopRequireDefault(require("./mergeCollectionPages"));
|
|
14
15
|
var _removeCollectionPageEntry = _interopRequireDefault(require("./removeCollectionPageEntry"));
|
|
15
16
|
var _setCollectionPageData = _interopRequireDefault(require("./setCollectionPageData"));
|
|
16
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
18
|
// Local imports
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
const CollectionPage = {
|
|
20
21
|
addEntry: _addCollectionPageEntry.default,
|
|
21
22
|
duplicateActiveEntry: _duplicateCollectionPageActiveEntry.default,
|
|
22
23
|
duplicateEntry: _duplicateCollectionPageEntry.default,
|
|
23
24
|
getActiveId: _getCollectionPageActiveId.default,
|
|
24
25
|
getActiveIndex: _getCollectionPageActiveIndex.default,
|
|
25
26
|
getData: _getCollectionPageData.default,
|
|
27
|
+
getErrorsForCollection: _getErrorsForCollection.default,
|
|
26
28
|
mergePages: _mergeCollectionPages.default,
|
|
27
29
|
removeEntry: _removeCollectionPageEntry.default,
|
|
28
30
|
setData: _setCollectionPageData.default
|
|
@@ -4,12 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
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); }
|
|
8
|
-
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; }
|
|
9
|
-
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; }
|
|
10
|
-
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; }
|
|
11
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
|
-
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); }
|
|
13
7
|
/* eslint-disable no-param-reassign */
|
|
14
8
|
|
|
15
9
|
/*
|
|
@@ -28,21 +22,27 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
28
22
|
* - The master page for a child collection, with its own array of child pages.
|
|
29
23
|
*/
|
|
30
24
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
collection
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
25
|
+
const createMasterPage = page => ({
|
|
26
|
+
id: page.id,
|
|
27
|
+
name: page.name,
|
|
28
|
+
collection: {
|
|
29
|
+
masterPage: true,
|
|
30
|
+
...page.collection
|
|
31
|
+
},
|
|
32
|
+
formData: {
|
|
33
|
+
...page.formData
|
|
34
|
+
},
|
|
35
|
+
childPages: [page]
|
|
36
|
+
});
|
|
37
|
+
const mergeIntoMasterPage = (page, masterPage) => {
|
|
38
|
+
masterPage.collection = {
|
|
39
|
+
...masterPage.collection,
|
|
40
|
+
...page.collection
|
|
41
|
+
};
|
|
42
|
+
masterPage.formData = {
|
|
43
|
+
...masterPage.formData,
|
|
44
|
+
...page.formData
|
|
41
45
|
};
|
|
42
|
-
};
|
|
43
|
-
var mergeIntoMasterPage = function mergeIntoMasterPage(page, masterPage) {
|
|
44
|
-
masterPage.collection = _objectSpread(_objectSpread({}, masterPage.collection), page.collection);
|
|
45
|
-
masterPage.formData = _objectSpread(_objectSpread({}, masterPage.formData), page.formData);
|
|
46
46
|
masterPage.childPages = [].concat(masterPage.childPages, [page]);
|
|
47
47
|
};
|
|
48
48
|
|
|
@@ -54,14 +54,14 @@ var mergeIntoMasterPage = function mergeIntoMasterPage(page, masterPage) {
|
|
|
54
54
|
* @returns true if page belonged to a child collection and was successfully
|
|
55
55
|
* nested. false if it isn't in a child collection or failed to be nested.
|
|
56
56
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
const nestUnderParent = (childPage, masterPages) => {
|
|
58
|
+
const names = childPage.collection.name.split('.');
|
|
59
59
|
if (names.length === 1) {
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
names.pop();
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const parentName = names.join('.');
|
|
64
|
+
const parentPage = masterPages[parentName] || null;
|
|
65
65
|
if (!parentPage) {
|
|
66
66
|
// Something had gone wrong if we're here - parent collection pages
|
|
67
67
|
// should always be defined before their children, so the parent master
|
|
@@ -83,15 +83,15 @@ var nestUnderParent = function nestUnderParent(childPage, masterPages) {
|
|
|
83
83
|
* @param { array } pages Array of pages in the form.
|
|
84
84
|
* @returns An array of the same pages, with a master page for each collection.
|
|
85
85
|
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
const mergeCollectionPages = pages => {
|
|
87
|
+
const masterPages = {};
|
|
88
|
+
const pagesWithMasters = pages.map(page => {
|
|
89
89
|
var _page$collection;
|
|
90
90
|
if (page !== null && page !== void 0 && (_page$collection = page.collection) !== null && _page$collection !== void 0 && _page$collection.name) {
|
|
91
91
|
if (!masterPages[page.collection.name]) {
|
|
92
92
|
// If no master page exists for this collection.name, then
|
|
93
93
|
// we kick one off using this page as a template.
|
|
94
|
-
|
|
94
|
+
const newMasterPage = createMasterPage(page);
|
|
95
95
|
masterPages[page.collection.name] = newMasterPage;
|
|
96
96
|
return newMasterPage;
|
|
97
97
|
}
|
|
@@ -102,20 +102,16 @@ var mergeCollectionPages = function mergeCollectionPages(pages) {
|
|
|
102
102
|
return null;
|
|
103
103
|
}
|
|
104
104
|
return page;
|
|
105
|
-
}).filter(
|
|
106
|
-
return !!page;
|
|
107
|
-
});
|
|
105
|
+
}).filter(page => !!page);
|
|
108
106
|
// We nest any child master pages under their parents here to
|
|
109
107
|
// ensure that all parent master pages have been created by the
|
|
110
108
|
// above code first.
|
|
111
|
-
return pagesWithMasters.map(
|
|
109
|
+
return pagesWithMasters.map(page => {
|
|
112
110
|
var _page$collection2;
|
|
113
111
|
if ((_page$collection2 = page.collection) !== null && _page$collection2 !== void 0 && _page$collection2.masterPage) {
|
|
114
112
|
return nestUnderParent(page, masterPages) ? null : page;
|
|
115
113
|
}
|
|
116
114
|
return page;
|
|
117
|
-
}).filter(
|
|
118
|
-
return !!e;
|
|
119
|
-
});
|
|
115
|
+
}).filter(e => !!e);
|
|
120
116
|
};
|
|
121
117
|
var _default = exports.default = mergeCollectionPages;
|