@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.scss +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.scss +1 -1
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +27 -40
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -2,40 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
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; }
|
|
8
|
-
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; }
|
|
9
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
-
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); }
|
|
11
|
-
describe('Utils.Operate.runPageOperations', function () {
|
|
12
|
-
var DATA = {
|
|
5
|
+
describe('Utils.Operate.runPageOperations', () => {
|
|
6
|
+
const DATA = {
|
|
13
7
|
alpha: 'abc',
|
|
14
8
|
bravo: ['bcd', 'cde', 'charlie'],
|
|
15
9
|
charlie: 'def',
|
|
16
10
|
delta: 'root',
|
|
17
11
|
array: ['123', '234', '456']
|
|
18
12
|
};
|
|
19
|
-
it('Should return an empty object when no operations are specified',
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
it('Should return an empty object when no operations are specified', () => {
|
|
14
|
+
const PAGE = {};
|
|
15
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
22
16
|
expect(result).toEqual(DATA);
|
|
23
17
|
});
|
|
24
|
-
it('Should handle a single operation correctly',
|
|
25
|
-
|
|
18
|
+
it('Should handle a single operation correctly', () => {
|
|
19
|
+
const PAGE = {
|
|
26
20
|
operations: [{
|
|
27
21
|
output: 'firstOpResult',
|
|
28
22
|
function: 'setValueInFormData',
|
|
29
23
|
field: 'alpha'
|
|
30
24
|
}]
|
|
31
25
|
};
|
|
32
|
-
|
|
33
|
-
expect(result).toEqual(
|
|
26
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
27
|
+
expect(result).toEqual({
|
|
28
|
+
...DATA,
|
|
34
29
|
firstOpResult: 'abc'
|
|
35
|
-
})
|
|
30
|
+
});
|
|
36
31
|
});
|
|
37
|
-
it('Should handle a multiple operations correctly',
|
|
38
|
-
|
|
32
|
+
it('Should handle a multiple operations correctly', () => {
|
|
33
|
+
const PAGE = {
|
|
39
34
|
operations: [{
|
|
40
35
|
output: 'firstOpResult',
|
|
41
36
|
function: 'setValueInFormData',
|
|
@@ -46,14 +41,15 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
46
41
|
field: 'bravo[1]'
|
|
47
42
|
}]
|
|
48
43
|
};
|
|
49
|
-
|
|
50
|
-
expect(result).toEqual(
|
|
44
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
45
|
+
expect(result).toEqual({
|
|
46
|
+
...DATA,
|
|
51
47
|
firstOpResult: 'abc',
|
|
52
48
|
secondOpResult: 'cde'
|
|
53
|
-
})
|
|
49
|
+
});
|
|
54
50
|
});
|
|
55
|
-
it('Should handle chained operations correctly',
|
|
56
|
-
|
|
51
|
+
it('Should handle chained operations correctly', () => {
|
|
52
|
+
const PAGE = {
|
|
57
53
|
operations: [{
|
|
58
54
|
output: 'firstOpResult',
|
|
59
55
|
function: 'setValueInFormData',
|
|
@@ -65,14 +61,15 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
65
61
|
field: '${firstOpResult}'
|
|
66
62
|
}]
|
|
67
63
|
};
|
|
68
|
-
|
|
69
|
-
expect(result).toEqual(
|
|
64
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
65
|
+
expect(result).toEqual({
|
|
66
|
+
...DATA,
|
|
70
67
|
firstOpResult: 'charlie',
|
|
71
68
|
secondOpResult: 'def'
|
|
72
|
-
})
|
|
69
|
+
});
|
|
73
70
|
});
|
|
74
|
-
it('Should handle an interpolated output string correctly',
|
|
75
|
-
|
|
71
|
+
it('Should handle an interpolated output string correctly', () => {
|
|
72
|
+
const PAGE = {
|
|
76
73
|
operations: [{
|
|
77
74
|
function: 'setValueInFormData',
|
|
78
75
|
value: 'leaf',
|
|
@@ -80,26 +77,28 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
80
77
|
output: '${delta}.trunk.branch'
|
|
81
78
|
}]
|
|
82
79
|
};
|
|
83
|
-
|
|
84
|
-
expect(result).toEqual(
|
|
80
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
81
|
+
expect(result).toEqual({
|
|
82
|
+
...DATA,
|
|
85
83
|
root: {
|
|
86
84
|
trunk: {
|
|
87
85
|
branch: 'leaf'
|
|
88
86
|
}
|
|
89
87
|
}
|
|
90
|
-
})
|
|
88
|
+
});
|
|
91
89
|
});
|
|
92
|
-
it('Should handle an output string with array indeces in',
|
|
93
|
-
|
|
90
|
+
it('Should handle an output string with array indeces in', () => {
|
|
91
|
+
const PAGE = {
|
|
94
92
|
operations: [{
|
|
95
93
|
function: 'setValueInFormData',
|
|
96
94
|
value: '000',
|
|
97
95
|
output: 'array[1]'
|
|
98
96
|
}]
|
|
99
97
|
};
|
|
100
|
-
|
|
101
|
-
expect(result).toEqual(
|
|
98
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
99
|
+
expect(result).toEqual({
|
|
100
|
+
...DATA,
|
|
102
101
|
array: ['123', '000', '456']
|
|
103
|
-
})
|
|
102
|
+
});
|
|
104
103
|
});
|
|
105
104
|
});
|
|
@@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const setValueInFormData = (config, data) => {
|
|
15
15
|
if (config !== null && config !== void 0 && config.field) {
|
|
16
|
-
|
|
16
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
|
|
17
17
|
return (0, _getSourceData.default)(data, fieldPath) || null;
|
|
18
18
|
}
|
|
19
19
|
return (config === null || config === void 0 ? void 0 : config.value) || null;
|
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
var _setValueInFormData = _interopRequireDefault(require("./setValueInFormData"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.setValueInFormData',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.setValueInFormData', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
a: '1',
|
|
8
8
|
b: ['2', '3'],
|
|
9
9
|
indexOfThree: 1
|
|
10
10
|
};
|
|
11
|
-
it('Should return the value provided in config if no field is specified',
|
|
12
|
-
|
|
11
|
+
it('Should return the value provided in config if no field is specified', () => {
|
|
12
|
+
const CONFIG = {
|
|
13
13
|
value: '2'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
16
16
|
expect(result).toEqual(CONFIG.value);
|
|
17
17
|
});
|
|
18
|
-
it('Should return the value of the field given in config, if it exists',
|
|
19
|
-
|
|
18
|
+
it('Should return the value of the field given in config, if it exists', () => {
|
|
19
|
+
const CONFIG = {
|
|
20
20
|
field: 'a'
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
23
23
|
expect(result).toEqual(DATA.a);
|
|
24
24
|
});
|
|
25
|
-
it('Should handle interpolated field strings',
|
|
25
|
+
it('Should handle interpolated field strings', () => {
|
|
26
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
27
|
-
|
|
27
|
+
const CONFIG = {
|
|
28
28
|
field: 'b[${indexOfThree}]'
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
31
31
|
expect(result).toEqual(DATA.b[1]);
|
|
32
32
|
});
|
|
33
|
-
it('Should return null when an invalid config is used',
|
|
34
|
-
|
|
33
|
+
it('Should return null when an invalid config is used', () => {
|
|
34
|
+
const result = (0, _setValueInFormData.default)(null, DATA);
|
|
35
35
|
expect(result).toEqual(null);
|
|
36
36
|
});
|
|
37
|
-
it('Should return null when invalid data is used',
|
|
38
|
-
|
|
37
|
+
it('Should return null when invalid data is used', () => {
|
|
38
|
+
const CONFIG = {
|
|
39
39
|
field: 'a'
|
|
40
40
|
};
|
|
41
|
-
|
|
41
|
+
const result = (0, _setValueInFormData.default)(CONFIG, null);
|
|
42
42
|
expect(result).toEqual(null);
|
|
43
43
|
});
|
|
44
44
|
});
|
|
@@ -18,17 +18,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} data The page's formData.
|
|
19
19
|
* @returns
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
const shouldRun = (config, data) => {
|
|
22
22
|
if (config !== null && config !== void 0 && config.condition) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const configuration = config;
|
|
24
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(configuration.field, data);
|
|
25
|
+
const fieldValue = (0, _getSourceData.default)(data, fieldPath);
|
|
26
26
|
switch (configuration.condition) {
|
|
27
27
|
// Only run the operation if a given field's value has changed.
|
|
28
28
|
case 'changes':
|
|
29
29
|
{
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const lastPath = "".concat(fieldPath, "LastValue");
|
|
31
|
+
const lastValue = configuration[lastPath] || null;
|
|
32
32
|
if (lastValue === null) {
|
|
33
33
|
// If there isn't a last value then we assume
|
|
34
34
|
// that this is the first render.
|
|
@@ -2,65 +2,59 @@
|
|
|
2
2
|
|
|
3
3
|
var _shouldRun = _interopRequireDefault(require("./shouldRun"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
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; }
|
|
8
|
-
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; }
|
|
9
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
-
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); }
|
|
11
|
-
describe('Utils.Operate.shouldRun', function () {
|
|
12
|
-
var DATA = {
|
|
5
|
+
describe('Utils.Operate.shouldRun', () => {
|
|
6
|
+
const DATA = {
|
|
13
7
|
alpha: 'abc',
|
|
14
8
|
bravo: ''
|
|
15
9
|
};
|
|
16
|
-
it('Should return true if the run_when config is invalid',
|
|
10
|
+
it('Should return true if the run_when config is invalid', () => {
|
|
17
11
|
expect((0, _shouldRun.default)(null, DATA)).toEqual(true);
|
|
18
12
|
});
|
|
19
|
-
it('Should return true when the condition is \'changes\' and target value has changed',
|
|
20
|
-
|
|
13
|
+
it('Should return true when the condition is \'changes\' and target value has changed', () => {
|
|
14
|
+
const CONFIG = {
|
|
21
15
|
condition: 'changes',
|
|
22
16
|
field: 'alpha'
|
|
23
17
|
};
|
|
24
|
-
|
|
18
|
+
let result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
25
19
|
expect(result).toEqual(false); // Expect false as this is the first render.
|
|
26
20
|
result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
27
21
|
expect(result).toEqual(false); // Expect false as the field hasn't changed.
|
|
28
|
-
result = (0, _shouldRun.default)(CONFIG,
|
|
22
|
+
result = (0, _shouldRun.default)(CONFIG, {
|
|
23
|
+
...DATA,
|
|
29
24
|
alpha: 'bcd'
|
|
30
|
-
})
|
|
25
|
+
});
|
|
31
26
|
expect(result).toEqual(true); // Expect true as the field's value has been updated.
|
|
32
27
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var CONFIG = {
|
|
28
|
+
it('Should return true when the condition is \'isTruthy\' and target value is truthy', () => {
|
|
29
|
+
const CONFIG = {
|
|
36
30
|
condition: 'isTruthy',
|
|
37
31
|
field: 'alpha'
|
|
38
32
|
};
|
|
39
|
-
|
|
33
|
+
const result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
40
34
|
expect(result).toEqual(true);
|
|
41
35
|
});
|
|
42
|
-
it('Should return false when the condition is \'isTruthy\' and target value is falsy',
|
|
43
|
-
|
|
36
|
+
it('Should return false when the condition is \'isTruthy\' and target value is falsy', () => {
|
|
37
|
+
const CONFIG = {
|
|
44
38
|
condition: 'isTruthy',
|
|
45
39
|
field: 'bravo'
|
|
46
40
|
};
|
|
47
|
-
|
|
41
|
+
const result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
48
42
|
expect(result).toEqual(false);
|
|
49
43
|
});
|
|
50
|
-
it('Should return true when the condition is \'isFalsy\' and target value is falsy',
|
|
51
|
-
|
|
44
|
+
it('Should return true when the condition is \'isFalsy\' and target value is falsy', () => {
|
|
45
|
+
const CONFIG = {
|
|
52
46
|
condition: 'isFalsy',
|
|
53
47
|
field: 'bravo'
|
|
54
48
|
};
|
|
55
|
-
|
|
49
|
+
const result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
56
50
|
expect(result).toEqual(true);
|
|
57
51
|
});
|
|
58
|
-
it('Should return false when the condition is \'isFalsy\' and target value is truthy',
|
|
59
|
-
|
|
52
|
+
it('Should return false when the condition is \'isFalsy\' and target value is truthy', () => {
|
|
53
|
+
const CONFIG = {
|
|
60
54
|
condition: 'isFalsy',
|
|
61
55
|
field: 'alpha'
|
|
62
56
|
};
|
|
63
|
-
|
|
57
|
+
const result = (0, _shouldRun.default)(CONFIG, DATA);
|
|
64
58
|
expect(result).toEqual(false);
|
|
65
59
|
});
|
|
66
60
|
});
|
|
@@ -13,11 +13,11 @@ exports.default = void 0;
|
|
|
13
13
|
* @returns true if the user has entered data into the 'base' field or entered a value into the 'check' field to turn off the validation
|
|
14
14
|
* otherwise returns false
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
const conditionallyRequired = (data, config, component) => {
|
|
17
17
|
var _data$component$id, _data$component$id2;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const conditional = (_data$component$id = data[component.id]) === null || _data$component$id === void 0 ? void 0 : _data$component$id[config.base];
|
|
19
|
+
const checkFieldvalue = (_data$component$id2 = data[component.id]) === null || _data$component$id2 === void 0 ? void 0 : _data$component$id2[config.check];
|
|
20
|
+
const checkHasValue = checkFieldvalue && (checkFieldvalue === null || checkFieldvalue === void 0 ? void 0 : checkFieldvalue.length) > 0;
|
|
21
21
|
return !!(conditional || checkHasValue);
|
|
22
22
|
};
|
|
23
23
|
var _default = exports.default = conditionallyRequired;
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var _conditionallyRequired = _interopRequireDefault(require("./conditionallyRequired"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils',
|
|
6
|
-
describe('Validate',
|
|
7
|
-
describe('additional',
|
|
8
|
-
describe('conditionallyRequired',
|
|
9
|
-
|
|
5
|
+
describe('utils', () => {
|
|
6
|
+
describe('Validate', () => {
|
|
7
|
+
describe('additional', () => {
|
|
8
|
+
describe('conditionallyRequired', () => {
|
|
9
|
+
const CONFIG = {
|
|
10
10
|
base: 'componentOne',
|
|
11
11
|
check: 'componentTwo'
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
const COMPONENT = {
|
|
14
14
|
id: 'containerComponent',
|
|
15
15
|
fieldId: 'containerComponent',
|
|
16
16
|
type: 'container',
|
|
@@ -24,16 +24,16 @@ describe('utils', function () {
|
|
|
24
24
|
type: 'checkboxes'
|
|
25
25
|
}]
|
|
26
26
|
};
|
|
27
|
-
test('should pass if only the base field has a value',
|
|
28
|
-
|
|
27
|
+
test('should pass if only the base field has a value', () => {
|
|
28
|
+
const DATA = {
|
|
29
29
|
containerComponent: {
|
|
30
30
|
componentOne: 'value'
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(true);
|
|
34
34
|
});
|
|
35
|
-
test('should pass if the base and check fields have values',
|
|
36
|
-
|
|
35
|
+
test('should pass if the base and check fields have values', () => {
|
|
36
|
+
const DATA = {
|
|
37
37
|
containerComponent: {
|
|
38
38
|
componentOne: 'value',
|
|
39
39
|
componentTwo: 'value'
|
|
@@ -41,30 +41,30 @@ describe('utils', function () {
|
|
|
41
41
|
};
|
|
42
42
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(true);
|
|
43
43
|
});
|
|
44
|
-
test('should pass if only the check field has a value',
|
|
45
|
-
|
|
44
|
+
test('should pass if only the check field has a value', () => {
|
|
45
|
+
const DATA = {
|
|
46
46
|
containerComponent: {
|
|
47
47
|
componentTwo: 'value'
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
50
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(true);
|
|
51
51
|
});
|
|
52
|
-
test('should pass if only the check field has a value and that value is an array',
|
|
53
|
-
|
|
52
|
+
test('should pass if only the check field has a value and that value is an array', () => {
|
|
53
|
+
const DATA = {
|
|
54
54
|
containerComponent: {
|
|
55
55
|
componentTwo: ['value']
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(true);
|
|
59
59
|
});
|
|
60
|
-
test('should fail if neither field has a value',
|
|
61
|
-
|
|
60
|
+
test('should fail if neither field has a value', () => {
|
|
61
|
+
const DATA = {
|
|
62
62
|
containerComponent: {}
|
|
63
63
|
};
|
|
64
64
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(false);
|
|
65
65
|
});
|
|
66
|
-
test('should fail if there is no data',
|
|
67
|
-
|
|
66
|
+
test('should fail if there is no data', () => {
|
|
67
|
+
const DATA = {};
|
|
68
68
|
expect((0, _conditionallyRequired.default)(DATA, CONFIG, COMPONENT)).toEqual(false);
|
|
69
69
|
});
|
|
70
70
|
});
|
|
@@ -23,7 +23,7 @@ var _mustSelectOnlyOne = _interopRequireDefault(require("./mustSelectOnlyOne"));
|
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
24
|
// Local imports
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
const functions = {
|
|
27
27
|
conditionallyRequired: _conditionallyRequired.default,
|
|
28
28
|
mustBeAfter: _mustBeAfter.default,
|
|
29
29
|
mustBeBefore: _mustBeBefore.default,
|
|
@@ -41,20 +41,20 @@ var functions = {
|
|
|
41
41
|
mustNotContainSql: _mustNotContainSql.default,
|
|
42
42
|
mustSelectOnlyOne: _mustSelectOnlyOne.default
|
|
43
43
|
};
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const additionalValidation = (value, config, component, formData) => {
|
|
45
|
+
const fn = functions[config.function];
|
|
46
46
|
if (typeof fn === 'function') {
|
|
47
47
|
return fn(value, config, component, formData) ? undefined : config.message;
|
|
48
48
|
}
|
|
49
49
|
return undefined;
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
const runAdditionalComponentValidation = (component, value, formData) => {
|
|
52
52
|
// We only care when we have a value - if we don't have one but want one, set `required: true`.
|
|
53
53
|
// eslint-disable-next-line no-extra-boolean-cast
|
|
54
54
|
if (!!value) {
|
|
55
55
|
if (Array.isArray(component.additionalValidation)) {
|
|
56
|
-
|
|
57
|
-
component.additionalValidation.forEach(
|
|
56
|
+
let error;
|
|
57
|
+
component.additionalValidation.forEach(config => {
|
|
58
58
|
// If we've already encountered an error, don't run any more validators.
|
|
59
59
|
if (!error) {
|
|
60
60
|
error = additionalValidation(value, config, component, formData);
|
|
@@ -6,11 +6,11 @@ var _utils = require("./utils");
|
|
|
6
6
|
var _index = _interopRequireDefault(require("./index"));
|
|
7
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
8
|
_dayjs.default.extend(_customParseFormat.default);
|
|
9
|
-
describe('utils',
|
|
10
|
-
describe('Validate',
|
|
11
|
-
describe('additional',
|
|
12
|
-
it('should apply optional validators when specified',
|
|
13
|
-
|
|
9
|
+
describe('utils', () => {
|
|
10
|
+
describe('Validate', () => {
|
|
11
|
+
describe('additional', () => {
|
|
12
|
+
it('should apply optional validators when specified', () => {
|
|
13
|
+
const COMPONENT = {
|
|
14
14
|
additionalValidation: [{
|
|
15
15
|
function: 'mustBeAfter',
|
|
16
16
|
value: 3,
|
|
@@ -18,11 +18,11 @@ describe('utils', function () {
|
|
|
18
18
|
message: 'Date must be more than 3 days in the future'
|
|
19
19
|
}]
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
const VALUE = (0, _dayjs.default)().add(1, 'day').format(_utils.DATE_FORMAT);
|
|
22
22
|
expect((0, _index.default)(COMPONENT, VALUE)).toEqual('Date must be more than 3 days in the future');
|
|
23
23
|
});
|
|
24
|
-
it('should apply multiple optional validators when specified',
|
|
25
|
-
|
|
24
|
+
it('should apply multiple optional validators when specified', () => {
|
|
25
|
+
const COMPONENT = {
|
|
26
26
|
additionalValidation: [{
|
|
27
27
|
function: 'mustBeAfter',
|
|
28
28
|
value: 100,
|
|
@@ -35,11 +35,11 @@ describe('utils', function () {
|
|
|
35
35
|
message: 'Date must be less than 200 days in the future'
|
|
36
36
|
}]
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
const VALUE = (0, _dayjs.default)().add(250, 'day').format(_utils.DATE_FORMAT);
|
|
39
39
|
expect((0, _index.default)(COMPONENT, VALUE)).toEqual('Date must be less than 200 days in the future');
|
|
40
40
|
});
|
|
41
|
-
it('should apply multiple optional validators when specified and return undefined if all are passed',
|
|
42
|
-
|
|
41
|
+
it('should apply multiple optional validators when specified and return undefined if all are passed', () => {
|
|
42
|
+
const COMPONENT = {
|
|
43
43
|
additionalValidation: [{
|
|
44
44
|
function: 'mustBeAfter',
|
|
45
45
|
value: 100,
|
|
@@ -55,7 +55,7 @@ describe('utils', function () {
|
|
|
55
55
|
message: 'Date must be in the future'
|
|
56
56
|
}]
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
const VALUE = (0, _dayjs.default)().add(150, 'day').format(_utils.DATE_FORMAT);
|
|
59
59
|
expect((0, _index.default)(COMPONENT, VALUE)).toEqual(undefined);
|
|
60
60
|
});
|
|
61
61
|
});
|
|
@@ -26,8 +26,8 @@ _dayjs.default.extend(_customParseFormat.default);
|
|
|
26
26
|
* @param {number} config.value - number of the unit to be after
|
|
27
27
|
* @returns false if date is not after the given date/offset or true if it is.
|
|
28
28
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const mustBeAfter = (date, config) => {
|
|
30
|
+
const dateToCompare = config.date ? (0, _dayjs.default)((0, _utils.formatString)(config.date), _utils.DATE_FORMAT) : (0, _dayjs.default)().add(config.value, config.unit);
|
|
31
31
|
return (0, _dayjs.default)((0, _utils.formatString)(date), _utils.DATE_FORMAT).isAfter(dateToCompare);
|
|
32
32
|
};
|
|
33
33
|
var _default = exports.default = mustBeAfter;
|