@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.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/dist/components/CheckYourAnswers/Answer.js +22 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
- package/dist/components/CollectionPage/CollectionPage.js +63 -73
- package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
- package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
- package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +52 -46
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +152 -110
- package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
- package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
- package/dist/components/FormComponent/Collection.js +108 -74
- package/dist/components/FormComponent/Collection.test.js +1081 -909
- package/dist/components/FormComponent/Container.js +39 -40
- package/dist/components/FormComponent/Container.test.js +412 -312
- package/dist/components/FormComponent/FormComponent.js +72 -69
- package/dist/components/FormComponent/FormComponent.test.js +414 -353
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- 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 +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- 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 +80 -65
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +180 -143
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- 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 +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- 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 +97 -103
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +39 -43
- package/dist/components/FormRenderer/onPageAction.test.js +208 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +34 -21
- package/dist/components/SummaryList/SummaryList.scss +15 -0
- package/dist/components/SummaryList/SummaryList.test.js +226 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- 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 +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +92 -49
- package/dist/components/TaskList/TaskList.scss +24 -0
- package/dist/components/TaskList/TaskList.test.js +255 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +80 -57
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +94 -43
- package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- 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 +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
- 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 +18 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
- package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
- package/dist/utils/Component/getComponent.js +94 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +6 -1
- package/dist/utils/Component/optionIsSelected.test.js +35 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- 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 +25 -16
- 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 +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +30 -24
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +4 -2
- package/dist/utils/FormPage/showFormPage.js +7 -3
- 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 +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -77
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +16 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- 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 +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- 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 +52 -46
- package/dist/utils/Operate/getLength.js +50 -0
- package/dist/utils/Operate/getLength.test.js +89 -0
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
- package/dist/utils/Operate/runPageOperations.js +9 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- 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 +27 -21
- 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 +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- 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 +4 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- 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 +4 -3
- 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 +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +21 -18
- package/dist/utils/Validate/validateComponent.test.js +176 -166
- package/dist/utils/Validate/validateContainer.js +20 -15
- package/dist/utils/Validate/validateContainer.test.js +52 -58
- package/dist/utils/Validate/validateDate.js +21 -15
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +22 -19
- package/dist/utils/Validate/validatePage.test.js +203 -215
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +26 -11
- package/dist/utils/Validate/validateTime.test.js +62 -16
- package/dist/utils/index.js +9 -7
- package/package.json +2 -2
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
|
@@ -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
|
+
var meetsOneCondition = function meetsOneCondition(options, data) {
|
|
21
|
+
var conditions = (0, _setupConditions.default)(options);
|
|
22
22
|
if (conditions) {
|
|
23
|
-
|
|
24
|
-
return arr.some(condition
|
|
25
|
-
|
|
23
|
+
var arr = Array.isArray(conditions) ? conditions : [conditions];
|
|
24
|
+
return arr.some(function (condition) {
|
|
25
|
+
var 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', function () {
|
|
8
|
+
var 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', function () {
|
|
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', function () {
|
|
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', function () {
|
|
19
|
+
var 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', function () {
|
|
26
|
+
var CONDITION = {
|
|
27
27
|
"type": "or",
|
|
28
28
|
"conditions": [{
|
|
29
29
|
field: 'alpha',
|
|
@@ -33,8 +33,8 @@ describe('utils.Condition.meetsOneCondition', () => {
|
|
|
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', function () {
|
|
37
|
+
var CONDITION = {
|
|
38
38
|
"type": "or",
|
|
39
39
|
"conditions": [{
|
|
40
40
|
field: 'alpha',
|
|
@@ -48,8 +48,8 @@ describe('utils.Condition.meetsOneCondition', () => {
|
|
|
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', function () {
|
|
52
|
+
var CONDITION = {
|
|
53
53
|
"type": "or",
|
|
54
54
|
"conditions": [{
|
|
55
55
|
field: 'alpha',
|
|
@@ -67,8 +67,8 @@ describe('utils.Condition.meetsOneCondition', () => {
|
|
|
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', function () {
|
|
71
|
+
var CONDITION = {
|
|
72
72
|
"type": "or",
|
|
73
73
|
"conditions": [{
|
|
74
74
|
field: 'alpha',
|
|
@@ -82,8 +82,8 @@ describe('utils.Condition.meetsOneCondition', () => {
|
|
|
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', function () {
|
|
86
|
+
var CONDITION = {
|
|
87
87
|
"type": "or",
|
|
88
88
|
"conditions": [{
|
|
89
89
|
field: 'alpha',
|
|
@@ -6,25 +6,30 @@ 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
|
-
|
|
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); }
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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) {
|
|
12
16
|
if (component.show_when) {
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
var conditions = component.show_when.type ? component.show_when.conditions : component.show_when;
|
|
18
|
+
var fullPath = component.full_path;
|
|
15
19
|
conditions = Array.isArray(conditions) ? conditions : [conditions];
|
|
16
|
-
return conditions.map(condition
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
20
|
+
return conditions.map(function (condition) {
|
|
21
|
+
var field = _Data.default.getDataPath(condition.field, fullPath);
|
|
22
|
+
return _objectSpread(_objectSpread({}, condition), {}, {
|
|
23
|
+
field: field
|
|
24
|
+
});
|
|
22
25
|
});
|
|
23
26
|
}
|
|
24
27
|
return undefined;
|
|
25
28
|
};
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
var isCondition = function isCondition(options) {
|
|
30
|
+
return Array.isArray(options) || !!(options.field && options.op);
|
|
31
|
+
};
|
|
32
|
+
var setupConditions = function setupConditions(options) {
|
|
28
33
|
if (options && !isCondition(options)) {
|
|
29
34
|
return makeComponentFieldsAbsolute(options);
|
|
30
35
|
}
|
|
@@ -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', function () {
|
|
6
|
+
it('should return an array of conditions directly', function () {
|
|
7
|
+
var 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', function () {
|
|
15
|
+
var 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', function () {
|
|
23
|
+
var OPTIONS = {
|
|
24
24
|
id: 'field',
|
|
25
25
|
show_when: {
|
|
26
26
|
field: 'alpha',
|
|
@@ -14,14 +14,16 @@ 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
|
+
var getEditableComponents = function getEditableComponents(container) {
|
|
18
18
|
if (container && Array.isArray(container.components)) {
|
|
19
|
-
return container.components.flatMap(c
|
|
19
|
+
return container.components.flatMap(function (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(
|
|
24
|
+
}).filter(function (c) {
|
|
25
|
+
return !!c;
|
|
26
|
+
});
|
|
25
27
|
}
|
|
26
28
|
return [];
|
|
27
29
|
};
|
|
@@ -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', function () {
|
|
10
|
+
var HTML = {
|
|
11
11
|
type: 'html',
|
|
12
12
|
tagName: 'p',
|
|
13
13
|
content: 'Alpha'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
var INSET_TEXT = {
|
|
16
16
|
type: 'inset-text',
|
|
17
17
|
content: 'Bravo'
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
var 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', function () {
|
|
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', function () {
|
|
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', function () {
|
|
33
|
+
var 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', function () {
|
|
39
|
+
var COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
40
|
+
var INNER_CONTAINER = {
|
|
41
41
|
type: _models.ComponentTypes.CONTAINER,
|
|
42
42
|
components: COMPONENTS
|
|
43
43
|
};
|
|
@@ -45,22 +45,22 @@ describe('utils.Container.getEditableComponents', () => {
|
|
|
45
45
|
components: [INNER_CONTAINER]
|
|
46
46
|
})).toEqual([]);
|
|
47
47
|
});
|
|
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
|
-
|
|
51
|
-
type
|
|
48
|
+
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
49
|
+
it("should return just the \"".concat(type, "\" component if it exists in the components, but no non-editable ones"), function () {
|
|
50
|
+
var EDITABLE = {
|
|
51
|
+
type: type
|
|
52
52
|
};
|
|
53
|
-
|
|
53
|
+
var 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"), function () {
|
|
59
|
+
var EDITABLE = {
|
|
60
|
+
type: type
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
var COMPONENTS = [HTML, EDITABLE, INSET_TEXT, HEADING];
|
|
63
|
+
var INNER_CONTAINER = {
|
|
64
64
|
type: _models.ComponentTypes.CONTAINER,
|
|
65
65
|
components: COMPONENTS
|
|
66
66
|
};
|
|
@@ -68,16 +68,16 @@ describe('utils.Container.getEditableComponents', () => {
|
|
|
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"), function () {
|
|
72
|
+
var EDITABLE = {
|
|
73
|
+
type: type
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
var COMPONENTS = [HTML, EDITABLE, INSET_TEXT, HEADING];
|
|
76
|
+
var INNER_INNER_CONTAINER = {
|
|
77
77
|
type: _models.ComponentTypes.CONTAINER,
|
|
78
78
|
components: COMPONENTS
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
var INNER_CONTAINER = {
|
|
81
81
|
type: _models.ComponentTypes.CONTAINER,
|
|
82
82
|
components: [].concat(COMPONENTS, [INNER_INNER_CONTAINER])
|
|
83
83
|
};
|
|
@@ -86,29 +86,31 @@ describe('utils.Container.getEditableComponents', () => {
|
|
|
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(type
|
|
89
|
+
it('should return all editable components and no non-editable ones', function () {
|
|
90
|
+
var COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
91
|
+
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
92
92
|
COMPONENTS.push({
|
|
93
|
-
type
|
|
93
|
+
type: type
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
|
-
|
|
96
|
+
var 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(type
|
|
100
|
+
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
101
101
|
expect(RESULT).toContainEqual({
|
|
102
|
-
type
|
|
102
|
+
type: 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
|
-
|
|
106
|
+
it('should return all editable components and no non-editable ones, regardless of nesting level', function () {
|
|
107
|
+
var EDITABLE_COMPONENTS = _isEditable.EDITABLE_TYPES.map(function (type) {
|
|
108
|
+
return {
|
|
109
|
+
type: type
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
var NON_EDITABLE_COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
113
|
+
var COMPONENTS = [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
112
114
|
type: _models.ComponentTypes.CONTAINER,
|
|
113
115
|
id: 'inner',
|
|
114
116
|
components: [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
@@ -117,13 +119,13 @@ describe('utils.Container.getEditableComponents', () => {
|
|
|
117
119
|
components: [].concat(NON_EDITABLE_COMPONENTS, EDITABLE_COMPONENTS)
|
|
118
120
|
}])
|
|
119
121
|
}]);
|
|
120
|
-
|
|
122
|
+
var RESULT = (0, _getEditableComponents.default)({
|
|
121
123
|
components: COMPONENTS
|
|
122
124
|
});
|
|
123
125
|
expect(RESULT.length).toEqual(_isEditable.EDITABLE_TYPES.length * 3); // 1 each at top, inner, and inner-inner levels.
|
|
124
|
-
_isEditable.EDITABLE_TYPES.forEach(type
|
|
126
|
+
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
125
127
|
expect(RESULT).toContainEqual({
|
|
126
|
-
type
|
|
128
|
+
type: type
|
|
127
129
|
});
|
|
128
130
|
});
|
|
129
131
|
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
|
+
var Container = {
|
|
12
12
|
editableComponents: _getEditableComponents.default,
|
|
13
13
|
setup: _setupNesting.default,
|
|
14
14
|
show: _showContainer.default
|
|
@@ -5,15 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
+
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
|
+
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(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) {
|
|
11
17
|
// eslint-disable-next-line camelcase
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
18
|
+
var full_path = containerPath ? "".concat(containerPath, ".").concat(component.fieldId) : component.fieldId;
|
|
19
|
+
var ret = _objectSpread(_objectSpread({}, component), {}, {
|
|
20
|
+
full_path: full_path
|
|
21
|
+
});
|
|
17
22
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
18
23
|
return (
|
|
19
24
|
// eslint-disable-next-line no-use-before-define
|
|
@@ -22,9 +27,9 @@ const nestComponents = container => {
|
|
|
22
27
|
}
|
|
23
28
|
if (component.type === _models.ComponentTypes.RADIOS) {
|
|
24
29
|
var _ret$data;
|
|
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)
|
|
30
|
+
(_ret$data = ret.data) === null || _ret$data === void 0 || (_ret$data = _ret$data.options) === null || _ret$data === void 0 || _ret$data.forEach(function (option, optionIndex) {
|
|
26
31
|
var _option$nested;
|
|
27
|
-
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach((nest, nestIndex)
|
|
32
|
+
(_option$nested = option.nested) === null || _option$nested === void 0 || _option$nested.forEach(function (nest, nestIndex) {
|
|
28
33
|
if (nest.type === _models.ComponentTypes.CONTAINER) {
|
|
29
34
|
// eslint-disable-next-line no-use-before-define
|
|
30
35
|
ret.data.options[optionIndex].nested[nestIndex] = setupNesting(nest);
|
|
@@ -35,13 +40,12 @@ const nestComponents = container => {
|
|
|
35
40
|
return ret;
|
|
36
41
|
});
|
|
37
42
|
};
|
|
38
|
-
|
|
43
|
+
var setupNesting = function setupNesting(container) {
|
|
39
44
|
if (container) {
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
};
|
|
45
|
+
var components = nestComponents(container);
|
|
46
|
+
return _objectSpread(_objectSpread({}, container), {}, {
|
|
47
|
+
components: components
|
|
48
|
+
});
|
|
45
49
|
}
|
|
46
50
|
return container;
|
|
47
51
|
};
|
|
@@ -3,23 +3,30 @@
|
|
|
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
|
-
|
|
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); }
|
|
7
|
+
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
|
+
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(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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
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); }
|
|
12
|
+
describe('utils.Container.setupNesting', function () {
|
|
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 () {
|
|
13
21
|
expect((0, _setupNesting.default)(undefined)).toBeUndefined();
|
|
14
22
|
});
|
|
15
|
-
it('should handle a null container', ()
|
|
23
|
+
it('should handle a null container', function () {
|
|
16
24
|
expect((0, _setupNesting.default)(null)).toBeNull();
|
|
17
25
|
});
|
|
18
|
-
it('should handle a single level of nesting', ()
|
|
19
|
-
|
|
20
|
-
...getComponent('container', _models.ComponentTypes.CONTAINER),
|
|
26
|
+
it('should handle a single level of nesting', function () {
|
|
27
|
+
var CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
21
28
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
22
|
-
};
|
|
29
|
+
});
|
|
23
30
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
24
31
|
id: 'container',
|
|
25
32
|
fieldId: 'container',
|
|
@@ -37,14 +44,12 @@ describe('utils.Container.setupNesting', () => {
|
|
|
37
44
|
}]
|
|
38
45
|
});
|
|
39
46
|
});
|
|
40
|
-
it('should handle multiple levels of nesting', ()
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
components: [getComponent('text', _models.ComponentTypes.TEXT), {
|
|
44
|
-
...getComponent('inner', _models.ComponentTypes.CONTAINER),
|
|
47
|
+
it('should handle multiple levels of nesting', function () {
|
|
48
|
+
var CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
49
|
+
components: [getComponent('text', _models.ComponentTypes.TEXT), _objectSpread(_objectSpread({}, getComponent('inner', _models.ComponentTypes.CONTAINER)), {}, {
|
|
45
50
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
46
|
-
}, getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
47
|
-
};
|
|
51
|
+
}), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
52
|
+
});
|
|
48
53
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
49
54
|
id: 'container',
|
|
50
55
|
fieldId: 'container',
|
|
@@ -78,12 +83,11 @@ describe('utils.Container.setupNesting', () => {
|
|
|
78
83
|
}]
|
|
79
84
|
});
|
|
80
85
|
});
|
|
81
|
-
it('should handle a container under a radio button', ()
|
|
82
|
-
|
|
83
|
-
...getComponent('container', _models.ComponentTypes.CONTAINER),
|
|
86
|
+
it('should handle a container under a radio button', function () {
|
|
87
|
+
var CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
84
88
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
85
|
-
};
|
|
86
|
-
|
|
89
|
+
});
|
|
90
|
+
var RADIO = {
|
|
87
91
|
id: 'radio',
|
|
88
92
|
fieldId: 'radio',
|
|
89
93
|
type: 'radios',
|
|
@@ -98,10 +102,9 @@ describe('utils.Container.setupNesting', () => {
|
|
|
98
102
|
}]
|
|
99
103
|
}
|
|
100
104
|
};
|
|
101
|
-
|
|
102
|
-
...getComponent('topContainer', _models.ComponentTypes.CONTAINER),
|
|
105
|
+
var TOP_CONTAINER = _objectSpread(_objectSpread({}, getComponent('topContainer', _models.ComponentTypes.CONTAINER)), {}, {
|
|
103
106
|
components: [RADIO]
|
|
104
|
-
};
|
|
107
|
+
});
|
|
105
108
|
expect((0, _setupNesting.default)(TOP_CONTAINER)).toEqual({
|
|
106
109
|
id: 'topContainer',
|
|
107
110
|
fieldId: 'topContainer',
|
|
@@ -16,7 +16,11 @@ 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
|
-
|
|
19
|
+
var showEditableComponent = function showEditableComponent(editableComponents, data) {
|
|
20
|
+
return editableComponents.some(function (component) {
|
|
21
|
+
return _Component.default.show(component, data);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
20
24
|
|
|
21
25
|
/**
|
|
22
26
|
* Indicates whether or not a container should be shown.
|
|
@@ -24,7 +28,7 @@ const showEditableComponent = (editableComponents, data) => editableComponents.s
|
|
|
24
28
|
* @param {object} data The top-level form data.
|
|
25
29
|
* @returns Boolean true if the container should be shown; false if not.
|
|
26
30
|
*/
|
|
27
|
-
|
|
31
|
+
var showContainer = function showContainer(container, data) {
|
|
28
32
|
if (!container) {
|
|
29
33
|
return false;
|
|
30
34
|
}
|
|
@@ -39,7 +43,7 @@ const showContainer = (container, data) => {
|
|
|
39
43
|
|
|
40
44
|
// If the container itself doesn't have a show_when, we need to make sure that if it
|
|
41
45
|
// contains ANY editable components, at least one of them is shown.
|
|
42
|
-
|
|
46
|
+
var editableComponents = (0, _getEditableComponents.default)(container);
|
|
43
47
|
if (editableComponents.length > 0) {
|
|
44
48
|
return showEditableComponent(editableComponents, data);
|
|
45
49
|
}
|