@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _Data = _interopRequireDefault(require("../Data"));
|
|
8
8
|
var _meetsCondition = _interopRequireDefault(require("./meetsCondition"));
|
|
9
9
|
var _setupConditions = _interopRequireDefault(require("./setupConditions"));
|
|
10
|
-
function _interopRequireDefault(
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
// Local imports
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -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
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _meetsOneCondition = _interopRequireDefault(require("./meetsOneCondition"));
|
|
4
|
-
function _interopRequireDefault(
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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',
|
|
@@ -5,31 +5,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _Data = _interopRequireDefault(require("../Data"));
|
|
8
|
-
function _interopRequireDefault(
|
|
9
|
-
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 _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
9
|
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; }
|
|
11
10
|
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; }
|
|
12
|
-
function _defineProperty(
|
|
13
|
-
function _toPropertyKey(
|
|
14
|
-
function _toPrimitive(
|
|
15
|
-
|
|
11
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
14
|
+
const makeComponentFieldsAbsolute = component => {
|
|
16
15
|
if (component.show_when) {
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
let conditions = component.show_when.type ? component.show_when.conditions : component.show_when;
|
|
17
|
+
const fullPath = component.full_path;
|
|
19
18
|
conditions = Array.isArray(conditions) ? conditions : [conditions];
|
|
20
|
-
return conditions.map(
|
|
21
|
-
|
|
19
|
+
return conditions.map(condition => {
|
|
20
|
+
const field = _Data.default.getDataPath(condition.field, fullPath);
|
|
22
21
|
return _objectSpread(_objectSpread({}, condition), {}, {
|
|
23
|
-
field
|
|
22
|
+
field
|
|
24
23
|
});
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
return undefined;
|
|
28
27
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
var setupConditions = function setupConditions(options) {
|
|
28
|
+
const isCondition = options => Array.isArray(options) || !!(options.field && options.op);
|
|
29
|
+
const setupConditions = options => {
|
|
33
30
|
if (options && !isCondition(options)) {
|
|
34
31
|
return makeComponentFieldsAbsolute(options);
|
|
35
32
|
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _setupConditions = _interopRequireDefault(require("./setupConditions"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils.Condition.setupConditions',
|
|
6
|
-
it('should return an array of conditions directly',
|
|
7
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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',
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
8
|
var _Component = _interopRequireDefault(require("../Component"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
// Local imports
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -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
|
};
|
|
@@ -3,41 +3,41 @@
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _isEditable = require("../Component/isEditable");
|
|
5
5
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
6
|
-
function _interopRequireDefault(
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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);
|
|
@@ -7,8 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
8
8
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
9
9
|
var _showContainer = _interopRequireDefault(require("./showContainer"));
|
|
10
|
-
function _interopRequireDefault(
|
|
11
|
-
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const Container = {
|
|
12
12
|
editableComponents: _getEditableComponents.default,
|
|
13
13
|
setup: _setupNesting.default,
|
|
14
14
|
show: _showContainer.default
|
|
@@ -5,19 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
|
-
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); }
|
|
9
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; }
|
|
10
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; }
|
|
11
|
-
function _defineProperty(
|
|
12
|
-
function _toPropertyKey(
|
|
13
|
-
function _toPrimitive(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return container.components.map(
|
|
10
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
const nestComponents = container => {
|
|
14
|
+
const containerPath = container.full_path || container.fieldId;
|
|
15
|
+
return container.components.map(component => {
|
|
17
16
|
// eslint-disable-next-line camelcase
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
full_path
|
|
17
|
+
const full_path = containerPath ? "".concat(containerPath, ".").concat(component.fieldId) : component.fieldId;
|
|
18
|
+
const ret = _objectSpread(_objectSpread({}, component), {}, {
|
|
19
|
+
full_path
|
|
21
20
|
});
|
|
22
21
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
23
22
|
return (
|
|
@@ -27,9 +26,9 @@ var nestComponents = function nestComponents(container) {
|
|
|
27
26
|
}
|
|
28
27
|
if (component.type === _models.ComponentTypes.RADIOS) {
|
|
29
28
|
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(
|
|
29
|
+
(_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
30
|
var _option$nested;
|
|
32
|
-
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach(
|
|
31
|
+
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach((nest, nestIndex) => {
|
|
33
32
|
if (nest.type === _models.ComponentTypes.CONTAINER) {
|
|
34
33
|
// eslint-disable-next-line no-use-before-define
|
|
35
34
|
ret.data.options[optionIndex].nested[nestIndex] = setupNesting(nest);
|
|
@@ -40,11 +39,11 @@ var nestComponents = function nestComponents(container) {
|
|
|
40
39
|
return ret;
|
|
41
40
|
});
|
|
42
41
|
};
|
|
43
|
-
|
|
42
|
+
const setupNesting = container => {
|
|
44
43
|
if (container) {
|
|
45
|
-
|
|
44
|
+
const components = nestComponents(container);
|
|
46
45
|
return _objectSpread(_objectSpread({}, container), {}, {
|
|
47
|
-
components
|
|
46
|
+
components
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
49
|
return container;
|
|
@@ -2,29 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
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); }
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
6
|
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; }
|
|
8
7
|
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; }
|
|
9
|
-
function _defineProperty(
|
|
10
|
-
function _toPropertyKey(
|
|
11
|
-
function _toPrimitive(
|
|
12
|
-
describe('utils.Container.setupNesting',
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
it('should handle an undefined container', function () {
|
|
8
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
11
|
+
describe('utils.Container.setupNesting', () => {
|
|
12
|
+
const getComponent = (id, type) => ({
|
|
13
|
+
id,
|
|
14
|
+
fieldId: id,
|
|
15
|
+
type
|
|
16
|
+
});
|
|
17
|
+
it('should handle an undefined container', () => {
|
|
21
18
|
expect((0, _setupNesting.default)(undefined)).toBeUndefined();
|
|
22
19
|
});
|
|
23
|
-
it('should handle a null container',
|
|
20
|
+
it('should handle a null container', () => {
|
|
24
21
|
expect((0, _setupNesting.default)(null)).toBeNull();
|
|
25
22
|
});
|
|
26
|
-
it('should handle a single level of nesting',
|
|
27
|
-
|
|
23
|
+
it('should handle a single level of nesting', () => {
|
|
24
|
+
const CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
28
25
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
29
26
|
});
|
|
30
27
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
@@ -44,8 +41,8 @@ describe('utils.Container.setupNesting', function () {
|
|
|
44
41
|
}]
|
|
45
42
|
});
|
|
46
43
|
});
|
|
47
|
-
it('should handle multiple levels of nesting',
|
|
48
|
-
|
|
44
|
+
it('should handle multiple levels of nesting', () => {
|
|
45
|
+
const CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
49
46
|
components: [getComponent('text', _models.ComponentTypes.TEXT), _objectSpread(_objectSpread({}, getComponent('inner', _models.ComponentTypes.CONTAINER)), {}, {
|
|
50
47
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
51
48
|
}), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
@@ -83,11 +80,11 @@ describe('utils.Container.setupNesting', function () {
|
|
|
83
80
|
}]
|
|
84
81
|
});
|
|
85
82
|
});
|
|
86
|
-
it('should handle a container under a radio button',
|
|
87
|
-
|
|
83
|
+
it('should handle a container under a radio button', () => {
|
|
84
|
+
const CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
88
85
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
89
86
|
});
|
|
90
|
-
|
|
87
|
+
const RADIO = {
|
|
91
88
|
id: 'radio',
|
|
92
89
|
fieldId: 'radio',
|
|
93
90
|
type: 'radios',
|
|
@@ -102,7 +99,7 @@ describe('utils.Container.setupNesting', function () {
|
|
|
102
99
|
}]
|
|
103
100
|
}
|
|
104
101
|
};
|
|
105
|
-
|
|
102
|
+
const TOP_CONTAINER = _objectSpread(_objectSpread({}, getComponent('topContainer', _models.ComponentTypes.CONTAINER)), {}, {
|
|
106
103
|
components: [RADIO]
|
|
107
104
|
});
|
|
108
105
|
expect((0, _setupNesting.default)(TOP_CONTAINER)).toEqual({
|
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _Component = _interopRequireDefault(require("../Component"));
|
|
8
8
|
var _Condition = _interopRequireDefault(require("../Condition"));
|
|
9
9
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
10
|
-
function _interopRequireDefault(
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
// Local imports
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -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
|
}
|