@ukhomeoffice/cop-react-form-renderer 6.5.1-peter → 6.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +73 -63
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +80 -76
- package/dist/components/CollectionSummary/CollectionSummary.js +97 -107
- package/dist/components/CollectionSummary/CollectionSummary.test.js +152 -142
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +45 -51
- package/dist/components/CollectionSummary/RenderListView.test.js +78 -77
- package/dist/components/CollectionSummary/SummaryCard.js +104 -135
- package/dist/components/CollectionSummary/SummaryCard.test.js +930 -962
- package/dist/components/CollectionSummary/SummaryCardDetails.js +72 -71
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +128 -135
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +30 -35
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -74
- package/dist/components/FormComponent/Collection.js +74 -108
- package/dist/components/FormComponent/Collection.test.js +909 -1081
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +69 -72
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +143 -179
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +44 -47
- package/dist/components/FormRenderer/onPageAction.test.js +223 -213
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +43 -94
- package/dist/context/ValidationContext/ValidationContext.test.js +56 -68
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +26 -39
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +18 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +55 -26
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +20 -22
- package/dist/utils/CollectionPage/getQuickEditPage.js +36 -28
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +16 -25
- package/dist/utils/Condition/meetsCondition.test.js +402 -402
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +24 -30
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +9 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +15 -20
- package/dist/utils/Validate/validateContainer.test.js +58 -52
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +19 -22
- package/dist/utils/Validate/validatePage.test.js +215 -203
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +2 -2
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-after.json +0 -429
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test.json +0 -1605
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -17,12 +17,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
17
|
* @returns Boolean true if at least one conditions is met; false otherwise.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const meetsOneCondition = (options, data) => {
|
|
21
|
+
const conditions = (0, _setupConditions.default)(options);
|
|
22
22
|
if (conditions) {
|
|
23
|
-
|
|
24
|
-
return arr.some(
|
|
25
|
-
|
|
23
|
+
const arr = Array.isArray(conditions) ? conditions : [conditions];
|
|
24
|
+
return arr.some(condition => {
|
|
25
|
+
const sourceDataValue = _Data.default.getSource(data, condition.field);
|
|
26
26
|
return (0, _meetsCondition.default)(condition, sourceDataValue, data);
|
|
27
27
|
});
|
|
28
28
|
}
|
|
@@ -4,26 +4,26 @@ var _meetsOneCondition = _interopRequireDefault(require("./meetsOneCondition"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Condition.meetsOneCondition',
|
|
8
|
-
|
|
7
|
+
describe('utils.Condition.meetsOneCondition', () => {
|
|
8
|
+
const DATA = {
|
|
9
9
|
alpha: 'bravo',
|
|
10
10
|
charlie: 'delta'
|
|
11
11
|
};
|
|
12
|
-
it('should evaluate to true when conditions are null',
|
|
12
|
+
it('should evaluate to true when conditions are null', () => {
|
|
13
13
|
expect((0, _meetsOneCondition.default)(null, DATA)).toBeTruthy();
|
|
14
14
|
});
|
|
15
|
-
it('should evaluate to true when conditions are undefined',
|
|
15
|
+
it('should evaluate to true when conditions are undefined', () => {
|
|
16
16
|
expect((0, _meetsOneCondition.default)(undefined, DATA)).toBeTruthy();
|
|
17
17
|
});
|
|
18
|
-
it('should evaluate to true when conditions is an empty array',
|
|
19
|
-
|
|
18
|
+
it('should evaluate to true when conditions is an empty array', () => {
|
|
19
|
+
const CONDITION = {
|
|
20
20
|
"type": "or",
|
|
21
21
|
"conditions": []
|
|
22
22
|
};
|
|
23
23
|
expect((0, _meetsOneCondition.default)(CONDITION, DATA)).toBeTruthy();
|
|
24
24
|
});
|
|
25
|
-
it('should evaluate to true when one condition is provided and one condition is met',
|
|
26
|
-
|
|
25
|
+
it('should evaluate to true when one condition is provided and one condition is met', () => {
|
|
26
|
+
const CONDITION = {
|
|
27
27
|
"type": "or",
|
|
28
28
|
"conditions": [{
|
|
29
29
|
field: 'alpha',
|
|
@@ -33,8 +33,8 @@ describe('utils.Condition.meetsOneCondition', function () {
|
|
|
33
33
|
};
|
|
34
34
|
expect((0, _meetsOneCondition.default)(CONDITION, DATA)).toBeTruthy();
|
|
35
35
|
});
|
|
36
|
-
it('should evaluate to true when two conditions are provided and one condition is met',
|
|
37
|
-
|
|
36
|
+
it('should evaluate to true when two conditions are provided and one condition is met', () => {
|
|
37
|
+
const CONDITION = {
|
|
38
38
|
"type": "or",
|
|
39
39
|
"conditions": [{
|
|
40
40
|
field: 'alpha',
|
|
@@ -48,8 +48,8 @@ describe('utils.Condition.meetsOneCondition', function () {
|
|
|
48
48
|
};
|
|
49
49
|
expect((0, _meetsOneCondition.default)(CONDITION, DATA)).toBeTruthy();
|
|
50
50
|
});
|
|
51
|
-
it('should evaluate to true when three conditions are provided and two conditions are met',
|
|
52
|
-
|
|
51
|
+
it('should evaluate to true when three conditions are provided and two conditions are met', () => {
|
|
52
|
+
const CONDITION = {
|
|
53
53
|
"type": "or",
|
|
54
54
|
"conditions": [{
|
|
55
55
|
field: 'alpha',
|
|
@@ -67,8 +67,8 @@ describe('utils.Condition.meetsOneCondition', function () {
|
|
|
67
67
|
};
|
|
68
68
|
expect((0, _meetsOneCondition.default)(CONDITION, DATA)).toBeTruthy();
|
|
69
69
|
});
|
|
70
|
-
it('should evaluate to true when all conditions are met',
|
|
71
|
-
|
|
70
|
+
it('should evaluate to true when all conditions are met', () => {
|
|
71
|
+
const CONDITION = {
|
|
72
72
|
"type": "or",
|
|
73
73
|
"conditions": [{
|
|
74
74
|
field: 'alpha',
|
|
@@ -82,8 +82,8 @@ describe('utils.Condition.meetsOneCondition', function () {
|
|
|
82
82
|
};
|
|
83
83
|
expect((0, _meetsOneCondition.default)(CONDITION, DATA)).toBeTruthy();
|
|
84
84
|
});
|
|
85
|
-
it('should evaluate to false when no conditions are met',
|
|
86
|
-
|
|
85
|
+
it('should evaluate to false when no conditions are met', () => {
|
|
86
|
+
const CONDITION = {
|
|
87
87
|
"type": "or",
|
|
88
88
|
"conditions": [{
|
|
89
89
|
field: 'alpha',
|
|
@@ -6,30 +6,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _Data = _interopRequireDefault(require("../Data"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
|
|
15
|
-
var makeComponentFieldsAbsolute = function makeComponentFieldsAbsolute(component) {
|
|
9
|
+
// Local imports
|
|
10
|
+
|
|
11
|
+
const makeComponentFieldsAbsolute = component => {
|
|
16
12
|
if (component.show_when) {
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
let conditions = component.show_when.type ? component.show_when.conditions : component.show_when;
|
|
14
|
+
const fullPath = component.full_path;
|
|
19
15
|
conditions = Array.isArray(conditions) ? conditions : [conditions];
|
|
20
|
-
return conditions.map(
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
return conditions.map(condition => {
|
|
17
|
+
const field = _Data.default.getDataPath(condition.field, fullPath);
|
|
18
|
+
return {
|
|
19
|
+
...condition,
|
|
20
|
+
field
|
|
21
|
+
};
|
|
25
22
|
});
|
|
26
23
|
}
|
|
27
24
|
return undefined;
|
|
28
25
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
var setupConditions = function setupConditions(options) {
|
|
26
|
+
const isCondition = options => Array.isArray(options) || !!(options.field && options.op);
|
|
27
|
+
const setupConditions = options => {
|
|
33
28
|
if (options && !isCondition(options)) {
|
|
34
29
|
return makeComponentFieldsAbsolute(options);
|
|
35
30
|
}
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
var _setupConditions = _interopRequireDefault(require("./setupConditions"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils.Condition.setupConditions',
|
|
6
|
-
it('should return an array of conditions directly',
|
|
7
|
-
|
|
5
|
+
describe('utils.Condition.setupConditions', () => {
|
|
6
|
+
it('should return an array of conditions directly', () => {
|
|
7
|
+
const OPTIONS = [{
|
|
8
8
|
field: 'alpha',
|
|
9
9
|
op: '=',
|
|
10
10
|
value: 'ALPHA'
|
|
11
11
|
}];
|
|
12
12
|
expect((0, _setupConditions.default)(OPTIONS)).toEqual(OPTIONS);
|
|
13
13
|
});
|
|
14
|
-
it('should return a condition directly',
|
|
15
|
-
|
|
14
|
+
it('should return a condition directly', () => {
|
|
15
|
+
const OPTIONS = {
|
|
16
16
|
field: 'alpha',
|
|
17
17
|
op: '=',
|
|
18
18
|
value: 'ALPHA'
|
|
19
19
|
};
|
|
20
20
|
expect((0, _setupConditions.default)(OPTIONS)).toEqual(OPTIONS);
|
|
21
21
|
});
|
|
22
|
-
it('should return the options on a component with untouched absolute path fields',
|
|
23
|
-
|
|
22
|
+
it('should return the options on a component with untouched absolute path fields', () => {
|
|
23
|
+
const OPTIONS = {
|
|
24
24
|
id: 'field',
|
|
25
25
|
show_when: {
|
|
26
26
|
field: 'alpha',
|
|
@@ -14,16 +14,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
14
14
|
* @param {object} container The container to consider.
|
|
15
15
|
* @returns An array of ONLY the editable components in a container.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
const getEditableComponents = container => {
|
|
18
18
|
if (container && Array.isArray(container.components)) {
|
|
19
|
-
return container.components.flatMap(
|
|
19
|
+
return container.components.flatMap(c => {
|
|
20
20
|
if (c.type === _models.ComponentTypes.CONTAINER) {
|
|
21
21
|
return getEditableComponents(c);
|
|
22
22
|
}
|
|
23
23
|
return _Component.default.editable(c) ? c : null;
|
|
24
|
-
}).filter(
|
|
25
|
-
return !!c;
|
|
26
|
-
});
|
|
24
|
+
}).filter(c => !!c);
|
|
27
25
|
}
|
|
28
26
|
return [];
|
|
29
27
|
};
|
|
@@ -6,38 +6,38 @@ var _getEditableComponents = _interopRequireDefault(require("./getEditableCompon
|
|
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
7
|
// Local imports
|
|
8
8
|
|
|
9
|
-
describe('utils.Container.getEditableComponents',
|
|
10
|
-
|
|
9
|
+
describe('utils.Container.getEditableComponents', () => {
|
|
10
|
+
const HTML = {
|
|
11
11
|
type: 'html',
|
|
12
12
|
tagName: 'p',
|
|
13
13
|
content: 'Alpha'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const INSET_TEXT = {
|
|
16
16
|
type: 'inset-text',
|
|
17
17
|
content: 'Bravo'
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
const HEADING = {
|
|
20
20
|
type: 'heading',
|
|
21
21
|
size: 'm',
|
|
22
22
|
content: 'Charlie'
|
|
23
23
|
};
|
|
24
|
-
it('should return an empty array for a null container',
|
|
24
|
+
it('should return an empty array for a null container', () => {
|
|
25
25
|
expect((0, _getEditableComponents.default)(null)).toEqual([]);
|
|
26
26
|
});
|
|
27
|
-
it('should return an empty array for a container with no components',
|
|
27
|
+
it('should return an empty array for a container with no components', () => {
|
|
28
28
|
expect((0, _getEditableComponents.default)({
|
|
29
29
|
components: []
|
|
30
30
|
})).toEqual([]);
|
|
31
31
|
});
|
|
32
|
-
it('should return an empty array for a container with only non-editable components',
|
|
33
|
-
|
|
32
|
+
it('should return an empty array for a container with only non-editable components', () => {
|
|
33
|
+
const COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
34
34
|
expect((0, _getEditableComponents.default)({
|
|
35
35
|
components: COMPONENTS
|
|
36
36
|
})).toEqual([]);
|
|
37
37
|
});
|
|
38
|
-
it('should return an empty array for a container that contains a container with only non-editable components',
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
it('should return an empty array for a container that contains a container with only non-editable components', () => {
|
|
39
|
+
const COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
40
|
+
const INNER_CONTAINER = {
|
|
41
41
|
type: _models.ComponentTypes.CONTAINER,
|
|
42
42
|
components: COMPONENTS
|
|
43
43
|
};
|
|
@@ -45,22 +45,22 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
45
45
|
components: [INNER_CONTAINER]
|
|
46
46
|
})).toEqual([]);
|
|
47
47
|
});
|
|
48
|
-
_isEditable.EDITABLE_TYPES.forEach(
|
|
49
|
-
it("should return just the \"".concat(type, "\" component if it exists in the components, but no non-editable ones"),
|
|
50
|
-
|
|
51
|
-
type
|
|
48
|
+
_isEditable.EDITABLE_TYPES.forEach(type => {
|
|
49
|
+
it("should return just the \"".concat(type, "\" component if it exists in the components, but no non-editable ones"), () => {
|
|
50
|
+
const EDITABLE = {
|
|
51
|
+
type
|
|
52
52
|
};
|
|
53
|
-
|
|
53
|
+
const COMPONENTS = [HTML, EDITABLE, INSET_TEXT, HEADING];
|
|
54
54
|
expect((0, _getEditableComponents.default)({
|
|
55
55
|
components: COMPONENTS
|
|
56
56
|
})).toEqual([EDITABLE]);
|
|
57
57
|
});
|
|
58
|
-
it("should return just the \"".concat(type, "\" component if it exists inside an inner container's components, but no non-editable ones"),
|
|
59
|
-
|
|
60
|
-
type
|
|
58
|
+
it("should return just the \"".concat(type, "\" component if it exists inside an inner container's components, but no non-editable ones"), () => {
|
|
59
|
+
const EDITABLE = {
|
|
60
|
+
type
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const COMPONENTS = [HTML, EDITABLE, INSET_TEXT, HEADING];
|
|
63
|
+
const INNER_CONTAINER = {
|
|
64
64
|
type: _models.ComponentTypes.CONTAINER,
|
|
65
65
|
components: COMPONENTS
|
|
66
66
|
};
|
|
@@ -68,16 +68,16 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
68
68
|
components: [INNER_CONTAINER]
|
|
69
69
|
})).toEqual([EDITABLE]);
|
|
70
70
|
});
|
|
71
|
-
it("should return just all \"".concat(type, "\" components that exists at any nested level within the container, but no non-editable ones"),
|
|
72
|
-
|
|
73
|
-
type
|
|
71
|
+
it("should return just all \"".concat(type, "\" components that exists at any nested level within the container, but no non-editable ones"), () => {
|
|
72
|
+
const EDITABLE = {
|
|
73
|
+
type
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const COMPONENTS = [HTML, EDITABLE, INSET_TEXT, HEADING];
|
|
76
|
+
const INNER_INNER_CONTAINER = {
|
|
77
77
|
type: _models.ComponentTypes.CONTAINER,
|
|
78
78
|
components: COMPONENTS
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
const INNER_CONTAINER = {
|
|
81
81
|
type: _models.ComponentTypes.CONTAINER,
|
|
82
82
|
components: [].concat(COMPONENTS, [INNER_INNER_CONTAINER])
|
|
83
83
|
};
|
|
@@ -86,31 +86,29 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
86
86
|
})).toEqual([EDITABLE, EDITABLE, EDITABLE]);
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
|
-
it('should return all editable components and no non-editable ones',
|
|
90
|
-
|
|
91
|
-
_isEditable.EDITABLE_TYPES.forEach(
|
|
89
|
+
it('should return all editable components and no non-editable ones', () => {
|
|
90
|
+
const COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
91
|
+
_isEditable.EDITABLE_TYPES.forEach(type => {
|
|
92
92
|
COMPONENTS.push({
|
|
93
|
-
type
|
|
93
|
+
type
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
|
-
|
|
96
|
+
const RESULT = (0, _getEditableComponents.default)({
|
|
97
97
|
components: COMPONENTS
|
|
98
98
|
});
|
|
99
99
|
expect(RESULT.length).toEqual(_isEditable.EDITABLE_TYPES.length);
|
|
100
|
-
_isEditable.EDITABLE_TYPES.forEach(
|
|
100
|
+
_isEditable.EDITABLE_TYPES.forEach(type => {
|
|
101
101
|
expect(RESULT).toContainEqual({
|
|
102
|
-
type
|
|
102
|
+
type
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
|
-
it('should return all editable components and no non-editable ones, regardless of nesting level',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var NON_EDITABLE_COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
113
|
-
var COMPONENTS = [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
106
|
+
it('should return all editable components and no non-editable ones, regardless of nesting level', () => {
|
|
107
|
+
const EDITABLE_COMPONENTS = _isEditable.EDITABLE_TYPES.map(type => ({
|
|
108
|
+
type
|
|
109
|
+
}));
|
|
110
|
+
const NON_EDITABLE_COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
111
|
+
const COMPONENTS = [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
114
112
|
type: _models.ComponentTypes.CONTAINER,
|
|
115
113
|
id: 'inner',
|
|
116
114
|
components: [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
@@ -119,13 +117,13 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
119
117
|
components: [].concat(NON_EDITABLE_COMPONENTS, EDITABLE_COMPONENTS)
|
|
120
118
|
}])
|
|
121
119
|
}]);
|
|
122
|
-
|
|
120
|
+
const RESULT = (0, _getEditableComponents.default)({
|
|
123
121
|
components: COMPONENTS
|
|
124
122
|
});
|
|
125
123
|
expect(RESULT.length).toEqual(_isEditable.EDITABLE_TYPES.length * 3); // 1 each at top, inner, and inner-inner levels.
|
|
126
|
-
_isEditable.EDITABLE_TYPES.forEach(
|
|
124
|
+
_isEditable.EDITABLE_TYPES.forEach(type => {
|
|
127
125
|
expect(RESULT).toContainEqual({
|
|
128
|
-
type
|
|
126
|
+
type
|
|
129
127
|
});
|
|
130
128
|
});
|
|
131
129
|
expect(RESULT).not.toContainEqual(HTML);
|
|
@@ -8,7 +8,7 @@ var _getEditableComponents = _interopRequireDefault(require("./getEditableCompon
|
|
|
8
8
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
9
9
|
var _showContainer = _interopRequireDefault(require("./showContainer"));
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
11
|
+
const Container = {
|
|
12
12
|
editableComponents: _getEditableComponents.default,
|
|
13
13
|
setup: _setupNesting.default,
|
|
14
14
|
show: _showContainer.default
|
|
@@ -5,20 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
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; }
|
|
12
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
-
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); }
|
|
14
|
-
var nestComponents = function nestComponents(container) {
|
|
15
|
-
var containerPath = container.full_path || container.fieldId;
|
|
16
|
-
return container.components.map(function (component) {
|
|
8
|
+
const nestComponents = container => {
|
|
9
|
+
const containerPath = container.full_path || container.fieldId;
|
|
10
|
+
return container.components.map(component => {
|
|
17
11
|
// eslint-disable-next-line camelcase
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
12
|
+
const full_path = containerPath ? "".concat(containerPath, ".").concat(component.fieldId) : component.fieldId;
|
|
13
|
+
const ret = {
|
|
14
|
+
...component,
|
|
15
|
+
full_path
|
|
16
|
+
};
|
|
22
17
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
23
18
|
return (
|
|
24
19
|
// eslint-disable-next-line no-use-before-define
|
|
@@ -27,9 +22,9 @@ var nestComponents = function nestComponents(container) {
|
|
|
27
22
|
}
|
|
28
23
|
if (component.type === _models.ComponentTypes.RADIOS) {
|
|
29
24
|
var _ret$data;
|
|
30
|
-
(_ret$data = ret.data) === null || _ret$data === void 0 || (_ret$data = _ret$data.options) === null || _ret$data === void 0 || _ret$data.forEach(
|
|
25
|
+
(_ret$data = ret.data) === null || _ret$data === void 0 || (_ret$data = _ret$data.options) === null || _ret$data === void 0 || _ret$data.forEach((option, optionIndex) => {
|
|
31
26
|
var _option$nested;
|
|
32
|
-
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach(
|
|
27
|
+
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach((nest, nestIndex) => {
|
|
33
28
|
if (nest.type === _models.ComponentTypes.CONTAINER) {
|
|
34
29
|
// eslint-disable-next-line no-use-before-define
|
|
35
30
|
ret.data.options[optionIndex].nested[nestIndex] = setupNesting(nest);
|
|
@@ -40,12 +35,13 @@ var nestComponents = function nestComponents(container) {
|
|
|
40
35
|
return ret;
|
|
41
36
|
});
|
|
42
37
|
};
|
|
43
|
-
|
|
38
|
+
const setupNesting = container => {
|
|
44
39
|
if (container) {
|
|
45
|
-
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
const components = nestComponents(container);
|
|
41
|
+
return {
|
|
42
|
+
...container,
|
|
43
|
+
components
|
|
44
|
+
};
|
|
49
45
|
}
|
|
50
46
|
return container;
|
|
51
47
|
};
|
|
@@ -3,30 +3,23 @@
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var getComponent = function getComponent(id, type) {
|
|
14
|
-
return {
|
|
15
|
-
id: id,
|
|
16
|
-
fieldId: id,
|
|
17
|
-
type: type
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
it('should handle an undefined container', function () {
|
|
6
|
+
describe('utils.Container.setupNesting', () => {
|
|
7
|
+
const getComponent = (id, type) => ({
|
|
8
|
+
id,
|
|
9
|
+
fieldId: id,
|
|
10
|
+
type
|
|
11
|
+
});
|
|
12
|
+
it('should handle an undefined container', () => {
|
|
21
13
|
expect((0, _setupNesting.default)(undefined)).toBeUndefined();
|
|
22
14
|
});
|
|
23
|
-
it('should handle a null container',
|
|
15
|
+
it('should handle a null container', () => {
|
|
24
16
|
expect((0, _setupNesting.default)(null)).toBeNull();
|
|
25
17
|
});
|
|
26
|
-
it('should handle a single level of nesting',
|
|
27
|
-
|
|
18
|
+
it('should handle a single level of nesting', () => {
|
|
19
|
+
const CONTAINER = {
|
|
20
|
+
...getComponent('container', _models.ComponentTypes.CONTAINER),
|
|
28
21
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
29
|
-
}
|
|
22
|
+
};
|
|
30
23
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
31
24
|
id: 'container',
|
|
32
25
|
fieldId: 'container',
|
|
@@ -44,12 +37,14 @@ describe('utils.Container.setupNesting', function () {
|
|
|
44
37
|
}]
|
|
45
38
|
});
|
|
46
39
|
});
|
|
47
|
-
it('should handle multiple levels of nesting',
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
it('should handle multiple levels of nesting', () => {
|
|
41
|
+
const CONTAINER = {
|
|
42
|
+
...getComponent('container', _models.ComponentTypes.CONTAINER),
|
|
43
|
+
components: [getComponent('text', _models.ComponentTypes.TEXT), {
|
|
44
|
+
...getComponent('inner', _models.ComponentTypes.CONTAINER),
|
|
50
45
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
51
|
-
}
|
|
52
|
-
}
|
|
46
|
+
}, getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
47
|
+
};
|
|
53
48
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
54
49
|
id: 'container',
|
|
55
50
|
fieldId: 'container',
|
|
@@ -83,11 +78,12 @@ describe('utils.Container.setupNesting', function () {
|
|
|
83
78
|
}]
|
|
84
79
|
});
|
|
85
80
|
});
|
|
86
|
-
it('should handle a container under a radio button',
|
|
87
|
-
|
|
81
|
+
it('should handle a container under a radio button', () => {
|
|
82
|
+
const CONTAINER = {
|
|
83
|
+
...getComponent('container', _models.ComponentTypes.CONTAINER),
|
|
88
84
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
89
|
-
}
|
|
90
|
-
|
|
85
|
+
};
|
|
86
|
+
const RADIO = {
|
|
91
87
|
id: 'radio',
|
|
92
88
|
fieldId: 'radio',
|
|
93
89
|
type: 'radios',
|
|
@@ -102,9 +98,10 @@ describe('utils.Container.setupNesting', function () {
|
|
|
102
98
|
}]
|
|
103
99
|
}
|
|
104
100
|
};
|
|
105
|
-
|
|
101
|
+
const TOP_CONTAINER = {
|
|
102
|
+
...getComponent('topContainer', _models.ComponentTypes.CONTAINER),
|
|
106
103
|
components: [RADIO]
|
|
107
|
-
}
|
|
104
|
+
};
|
|
108
105
|
expect((0, _setupNesting.default)(TOP_CONTAINER)).toEqual({
|
|
109
106
|
id: 'topContainer',
|
|
110
107
|
fieldId: 'topContainer',
|
|
@@ -16,11 +16,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
16
16
|
* @param {object} data The top-level form data.
|
|
17
17
|
* @returns Boolean true if ANY of the editable components should be shown; false otherwise.
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
return editableComponents.some(function (component) {
|
|
21
|
-
return _Component.default.show(component, data);
|
|
22
|
-
});
|
|
23
|
-
};
|
|
19
|
+
const showEditableComponent = (editableComponents, data) => editableComponents.some(component => _Component.default.show(component, data));
|
|
24
20
|
|
|
25
21
|
/**
|
|
26
22
|
* Indicates whether or not a container should be shown.
|
|
@@ -28,7 +24,7 @@ var showEditableComponent = function showEditableComponent(editableComponents, d
|
|
|
28
24
|
* @param {object} data The top-level form data.
|
|
29
25
|
* @returns Boolean true if the container should be shown; false if not.
|
|
30
26
|
*/
|
|
31
|
-
|
|
27
|
+
const showContainer = (container, data) => {
|
|
32
28
|
if (!container) {
|
|
33
29
|
return false;
|
|
34
30
|
}
|
|
@@ -43,7 +39,7 @@ var showContainer = function showContainer(container, data) {
|
|
|
43
39
|
|
|
44
40
|
// If the container itself doesn't have a show_when, we need to make sure that if it
|
|
45
41
|
// contains ANY editable components, at least one of them is shown.
|
|
46
|
-
|
|
42
|
+
const editableComponents = (0, _getEditableComponents.default)(container);
|
|
47
43
|
if (editableComponents.length > 0) {
|
|
48
44
|
return showEditableComponent(editableComponents, data);
|
|
49
45
|
}
|