@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
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
4
4
|
var _mustBeInTheFuture = _interopRequireDefault(require("./mustBeInTheFuture"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
describe('utils', ()
|
|
7
|
-
describe('Validate', ()
|
|
8
|
-
describe('additional', ()
|
|
9
|
-
describe('mustBeInTheFuture', ()
|
|
10
|
-
test('should return false given a date in the past', ()
|
|
11
|
-
|
|
6
|
+
describe('utils', function () {
|
|
7
|
+
describe('Validate', function () {
|
|
8
|
+
describe('additional', function () {
|
|
9
|
+
describe('mustBeInTheFuture', function () {
|
|
10
|
+
test('should return false given a date in the past', function () {
|
|
11
|
+
var result = (0, _mustBeInTheFuture.default)((0, _dayjs.default)().subtract(1, 'day').format('DD-MM-YYYY'));
|
|
12
12
|
expect(result).toEqual(false);
|
|
13
13
|
});
|
|
14
|
-
test('should return true given a date in the future', ()
|
|
15
|
-
|
|
14
|
+
test('should return true given a date in the future', function () {
|
|
15
|
+
var result = (0, _mustBeInTheFuture.default)((0, _dayjs.default)().add(1, 'day').format('DD-MM-YYYY'));
|
|
16
16
|
expect(result).toEqual(true);
|
|
17
17
|
});
|
|
18
|
-
test('should return false given todays date', ()
|
|
19
|
-
|
|
18
|
+
test('should return false given todays date', function () {
|
|
19
|
+
var result = (0, _mustBeInTheFuture.default)((0, _dayjs.default)().format('DD-MM-YYYY'));
|
|
20
20
|
expect(result).toEqual(false);
|
|
21
21
|
});
|
|
22
|
-
test('should return true given todays date if todayAllowed is true', ()
|
|
23
|
-
|
|
22
|
+
test('should return true given todays date if todayAllowed is true', function () {
|
|
23
|
+
var result = (0, _mustBeInTheFuture.default)((0, _dayjs.default)().format('DD-MM-YYYY'), {
|
|
24
24
|
todayAllowed: true
|
|
25
25
|
});
|
|
26
26
|
expect(result).toEqual(true);
|
|
@@ -23,9 +23,9 @@ _dayjs.default.extend(_isToday.default);
|
|
|
23
23
|
* @param {boolean} config.todayAllowed - true if today should be a valid date
|
|
24
24
|
* @returns true if date is before current date
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var mustBeInThePast = function mustBeInThePast(date, config) {
|
|
27
|
+
var beforeToday = (0, _dayjs.default)((0, _utils.formatString)(date), _utils.DATE_FORMAT).isBefore((0, _dayjs.default)());
|
|
28
|
+
var dateIsToday = (0, _dayjs.default)((0, _utils.formatString)(date), _utils.DATE_FORMAT).isToday();
|
|
29
29
|
// dayjs classifies the current day as in the past so exclude it here
|
|
30
30
|
if (beforeToday && !dateIsToday) {
|
|
31
31
|
return true;
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
4
4
|
var _mustBeInThePast = _interopRequireDefault(require("./mustBeInThePast"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
describe('utils', ()
|
|
7
|
-
describe('Validate', ()
|
|
8
|
-
describe('additional', ()
|
|
9
|
-
describe('mustBeInThePast', ()
|
|
10
|
-
test('should return true given a date in the past', ()
|
|
11
|
-
|
|
6
|
+
describe('utils', function () {
|
|
7
|
+
describe('Validate', function () {
|
|
8
|
+
describe('additional', function () {
|
|
9
|
+
describe('mustBeInThePast', function () {
|
|
10
|
+
test('should return true given a date in the past', function () {
|
|
11
|
+
var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().subtract(1, 'day').format('DD-MM-YYYY'));
|
|
12
12
|
expect(result).toEqual(true);
|
|
13
13
|
});
|
|
14
|
-
test('should return false given a date in the future', ()
|
|
15
|
-
|
|
14
|
+
test('should return false given a date in the future', function () {
|
|
15
|
+
var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().add(1, 'day').format('DD-MM-YYYY'));
|
|
16
16
|
expect(result).toEqual(false);
|
|
17
17
|
});
|
|
18
|
-
test('should return false given todays date', ()
|
|
19
|
-
|
|
18
|
+
test('should return false given todays date', function () {
|
|
19
|
+
var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'));
|
|
20
20
|
expect(result).toEqual(false);
|
|
21
21
|
});
|
|
22
|
-
test('should return true given todays date if todayAllowed is true', ()
|
|
23
|
-
|
|
22
|
+
test('should return true given todays date if todayAllowed is true', function () {
|
|
23
|
+
var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'), {
|
|
24
24
|
todayAllowed: true
|
|
25
25
|
});
|
|
26
26
|
expect(result).toEqual(true);
|
|
@@ -9,13 +9,13 @@ exports.default = void 0;
|
|
|
9
9
|
* @param {number} config.value - the value must be equal or less than config.value.
|
|
10
10
|
* @returns true if value is equal to or less then config.value, false if not.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
var mustBeLessThan = function mustBeLessThan(value, config) {
|
|
13
13
|
if (!value) {
|
|
14
14
|
// null, undefined and empty strings should be picked up by the required flag
|
|
15
15
|
// and not considered here as they would be valid for optional fields.
|
|
16
16
|
return true;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
var finalValue = typeof value === 'string' ? value.replace(/,/g, '') : value;
|
|
19
19
|
return parseFloat(finalValue) < config.value;
|
|
20
20
|
};
|
|
21
21
|
var _default = exports.default = mustBeLessThan;
|
|
@@ -2,46 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustBeLessThan = _interopRequireDefault(require("./mustBeLessThan"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils', ()
|
|
6
|
-
describe('Validate', ()
|
|
7
|
-
describe('additional', ()
|
|
8
|
-
describe('mustBeLessThan', ()
|
|
9
|
-
test('should return true given a number equal to or less than 1000000000', ()
|
|
10
|
-
|
|
5
|
+
describe('utils', function () {
|
|
6
|
+
describe('Validate', function () {
|
|
7
|
+
describe('additional', function () {
|
|
8
|
+
describe('mustBeLessThan', function () {
|
|
9
|
+
test('should return true given a number equal to or less than 1000000000', function () {
|
|
10
|
+
var result = (0, _mustBeLessThan.default)(999999999.999, {
|
|
11
11
|
value: 1000000000
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(true);
|
|
14
14
|
});
|
|
15
|
-
test('should return false if provided value greater than 1000000000', ()
|
|
16
|
-
|
|
15
|
+
test('should return false if provided value greater than 1000000000', function () {
|
|
16
|
+
var result = (0, _mustBeLessThan.default)('1000000000.9', {
|
|
17
17
|
value: 1000000000
|
|
18
18
|
});
|
|
19
19
|
expect(result).toBeFalsy();
|
|
20
20
|
});
|
|
21
|
-
test('should correctly handle numbers with commas in', ()
|
|
22
|
-
|
|
21
|
+
test('should correctly handle numbers with commas in', function () {
|
|
22
|
+
var result1 = (0, _mustBeLessThan.default)('999,999,999.99', {
|
|
23
23
|
value: 1000000000
|
|
24
24
|
});
|
|
25
25
|
expect(result1).toEqual(true);
|
|
26
|
-
|
|
26
|
+
var result2 = (0, _mustBeLessThan.default)('1,000,000,123', {
|
|
27
27
|
value: 1000000000
|
|
28
28
|
});
|
|
29
29
|
expect(result2).toEqual(false);
|
|
30
30
|
});
|
|
31
|
-
test('should return true when string is undefined', ()
|
|
32
|
-
|
|
31
|
+
test('should return true when string is undefined', function () {
|
|
32
|
+
var result = (0, _mustBeLessThan.default)(undefined, {
|
|
33
33
|
value: 3
|
|
34
34
|
});
|
|
35
35
|
expect(result).toEqual(true);
|
|
36
36
|
});
|
|
37
|
-
test('should return true when string is empty', ()
|
|
38
|
-
|
|
37
|
+
test('should return true when string is empty', function () {
|
|
38
|
+
var result = (0, _mustBeLessThan.default)('', {
|
|
39
39
|
value: 3
|
|
40
40
|
});
|
|
41
41
|
expect(result).toEqual(true);
|
|
42
42
|
});
|
|
43
|
-
test('should return true when string is null', ()
|
|
44
|
-
|
|
43
|
+
test('should return true when string is null', function () {
|
|
44
|
+
var result = (0, _mustBeLessThan.default)(null, {
|
|
45
45
|
value: 3
|
|
46
46
|
});
|
|
47
47
|
expect(result).toEqual(true);
|
|
@@ -11,7 +11,7 @@ exports.default = void 0;
|
|
|
11
11
|
* @param {number} config.value - the length that string.length must be greater than.
|
|
12
12
|
* @returns true if string.length is greater than config.value, false if not.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
var mustBeLongerThan = function mustBeLongerThan(string, config) {
|
|
15
15
|
if (!string) {
|
|
16
16
|
// null, undefined and empty strings should be picked up by the required flag
|
|
17
17
|
// and not considered here as they would be valid for optional fields.
|
|
@@ -2,42 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustBeLongerThan = _interopRequireDefault(require("./mustBeLongerThan"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils', ()
|
|
6
|
-
describe('Validate', ()
|
|
7
|
-
describe('additional', ()
|
|
8
|
-
describe('mustBeLongerThan', ()
|
|
9
|
-
test('should return true given a string longer than the given length', ()
|
|
10
|
-
|
|
5
|
+
describe('utils', function () {
|
|
6
|
+
describe('Validate', function () {
|
|
7
|
+
describe('additional', function () {
|
|
8
|
+
describe('mustBeLongerThan', function () {
|
|
9
|
+
test('should return true given a string longer than the given length', function () {
|
|
10
|
+
var result = (0, _mustBeLongerThan.default)('test', {
|
|
11
11
|
value: 3
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(true);
|
|
14
14
|
});
|
|
15
|
-
test('should return false given a string shorter than the given length', ()
|
|
16
|
-
|
|
15
|
+
test('should return false given a string shorter than the given length', function () {
|
|
16
|
+
var result = (0, _mustBeLongerThan.default)('to', {
|
|
17
17
|
value: 3
|
|
18
18
|
});
|
|
19
19
|
expect(result).toEqual(false);
|
|
20
20
|
});
|
|
21
|
-
test('should return false given a string equal to the given length', ()
|
|
22
|
-
|
|
21
|
+
test('should return false given a string equal to the given length', function () {
|
|
22
|
+
var result = (0, _mustBeLongerThan.default)('dog', {
|
|
23
23
|
value: 3
|
|
24
24
|
});
|
|
25
25
|
expect(result).toEqual(false);
|
|
26
26
|
});
|
|
27
|
-
test('should return true when string is undefined', ()
|
|
28
|
-
|
|
27
|
+
test('should return true when string is undefined', function () {
|
|
28
|
+
var result = (0, _mustBeLongerThan.default)(undefined, {
|
|
29
29
|
value: 3
|
|
30
30
|
});
|
|
31
31
|
expect(result).toEqual(true);
|
|
32
32
|
});
|
|
33
|
-
test('should return true when string is empty', ()
|
|
34
|
-
|
|
33
|
+
test('should return true when string is empty', function () {
|
|
34
|
+
var result = (0, _mustBeLongerThan.default)('', {
|
|
35
35
|
value: 3
|
|
36
36
|
});
|
|
37
37
|
expect(result).toEqual(true);
|
|
38
38
|
});
|
|
39
|
-
test('should return true when string is null', ()
|
|
40
|
-
|
|
39
|
+
test('should return true when string is null', function () {
|
|
40
|
+
var result = (0, _mustBeLongerThan.default)(null, {
|
|
41
41
|
value: 3
|
|
42
42
|
});
|
|
43
43
|
expect(result).toEqual(true);
|
|
@@ -11,13 +11,13 @@ exports.default = void 0;
|
|
|
11
11
|
* @param {object} config The config of the validation check.
|
|
12
12
|
* @returns true if value passes the regex, false if not.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
var mustBeNumbersOnly = function mustBeNumbersOnly(value, config) {
|
|
15
15
|
if (!value) {
|
|
16
16
|
// null, undefined and empty numbers should be picked up by the required flag
|
|
17
17
|
// and not considered here as they would be valid for optional fields.
|
|
18
18
|
return true;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
var regex = config !== null && config !== void 0 && config.allowCommas ? /^[0-9,]*\.?[0-9]*$/ : /^[0-9]*\.?[0-9]*$/;
|
|
21
21
|
return regex.test(value);
|
|
22
22
|
};
|
|
23
23
|
var _default = exports.default = mustBeNumbersOnly;
|
|
@@ -2,40 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustBeNumbersOnly = _interopRequireDefault(require("./mustBeNumbersOnly"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils', ()
|
|
6
|
-
describe('Validate', ()
|
|
7
|
-
describe('additional', ()
|
|
8
|
-
describe('mustBeNumbersOnly', ()
|
|
9
|
-
test('should return true given a string is number', ()
|
|
10
|
-
|
|
5
|
+
describe('utils', function () {
|
|
6
|
+
describe('Validate', function () {
|
|
7
|
+
describe('additional', function () {
|
|
8
|
+
describe('mustBeNumbersOnly', function () {
|
|
9
|
+
test('should return true given a string is number', function () {
|
|
10
|
+
var result = (0, _mustBeNumbersOnly.default)('349732');
|
|
11
11
|
expect(result).toEqual(true);
|
|
12
12
|
});
|
|
13
|
-
test('should return true given a string is numbers contains desimile', ()
|
|
14
|
-
|
|
13
|
+
test('should return true given a string is numbers contains desimile', function () {
|
|
14
|
+
var result = (0, _mustBeNumbersOnly.default)('123456.123');
|
|
15
15
|
expect(result).toEqual(true);
|
|
16
16
|
});
|
|
17
|
-
test('should return false if given number contains commas and config does not allow them', ()
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
test('should return false if given number contains commas and config does not allow them', function () {
|
|
18
|
+
var CONFIG = {};
|
|
19
|
+
var result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
|
|
20
20
|
expect(result).toEqual(false);
|
|
21
21
|
});
|
|
22
|
-
test('should return true if given number contains commas and config allows them', ()
|
|
23
|
-
|
|
22
|
+
test('should return true if given number contains commas and config allows them', function () {
|
|
23
|
+
var CONFIG = {
|
|
24
24
|
allowCommas: true
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
var result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
|
|
27
27
|
expect(result).toEqual(true);
|
|
28
28
|
});
|
|
29
|
-
test('should return true when string is undefined', ()
|
|
30
|
-
|
|
29
|
+
test('should return true when string is undefined', function () {
|
|
30
|
+
var result = (0, _mustBeNumbersOnly.default)(undefined);
|
|
31
31
|
expect(result).toEqual(true);
|
|
32
32
|
});
|
|
33
|
-
test('should return true when string is empty', ()
|
|
34
|
-
|
|
33
|
+
test('should return true when string is empty', function () {
|
|
34
|
+
var result = (0, _mustBeNumbersOnly.default)('');
|
|
35
35
|
expect(result).toEqual(true);
|
|
36
36
|
});
|
|
37
|
-
test('should return true when string is null', ()
|
|
38
|
-
|
|
37
|
+
test('should return true when string is null', function () {
|
|
38
|
+
var result = (0, _mustBeNumbersOnly.default)(null);
|
|
39
39
|
expect(result).toEqual(true);
|
|
40
40
|
});
|
|
41
41
|
});
|
|
@@ -11,7 +11,7 @@ exports.default = void 0;
|
|
|
11
11
|
* @param {number} config.value - the length that string.length must be less than.
|
|
12
12
|
* @returns true if string.length is greater than config.value, false if not.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
var mustBeShorterThan = function mustBeShorterThan(string, config) {
|
|
15
15
|
if (!string) {
|
|
16
16
|
// null, undefined and empty strings should be picked up by the required flag
|
|
17
17
|
// and not considered here as they would be valid for optional fields.
|
|
@@ -2,42 +2,42 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustBeShorterThan = _interopRequireDefault(require("./mustBeShorterThan"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils', ()
|
|
6
|
-
describe('Validate', ()
|
|
7
|
-
describe('additional', ()
|
|
8
|
-
describe('mustBeShorterThan', ()
|
|
9
|
-
test('should return true given a string shorter than the given length', ()
|
|
10
|
-
|
|
5
|
+
describe('utils', function () {
|
|
6
|
+
describe('Validate', function () {
|
|
7
|
+
describe('additional', function () {
|
|
8
|
+
describe('mustBeShorterThan', function () {
|
|
9
|
+
test('should return true given a string shorter than the given length', function () {
|
|
10
|
+
var result = (0, _mustBeShorterThan.default)('to', {
|
|
11
11
|
value: 3
|
|
12
12
|
});
|
|
13
13
|
expect(result).toEqual(true);
|
|
14
14
|
});
|
|
15
|
-
test('should return false given a string longer than the given length', ()
|
|
16
|
-
|
|
15
|
+
test('should return false given a string longer than the given length', function () {
|
|
16
|
+
var result = (0, _mustBeShorterThan.default)('test', {
|
|
17
17
|
value: 3
|
|
18
18
|
});
|
|
19
19
|
expect(result).toEqual(false);
|
|
20
20
|
});
|
|
21
|
-
test('should return false given a string equal to the given length', ()
|
|
22
|
-
|
|
21
|
+
test('should return false given a string equal to the given length', function () {
|
|
22
|
+
var result = (0, _mustBeShorterThan.default)('dog', {
|
|
23
23
|
value: 3
|
|
24
24
|
});
|
|
25
25
|
expect(result).toEqual(false);
|
|
26
26
|
});
|
|
27
|
-
test('should return true when string is undefined', ()
|
|
28
|
-
|
|
27
|
+
test('should return true when string is undefined', function () {
|
|
28
|
+
var result = (0, _mustBeShorterThan.default)(undefined, {
|
|
29
29
|
value: 3
|
|
30
30
|
});
|
|
31
31
|
expect(result).toEqual(true);
|
|
32
32
|
});
|
|
33
|
-
test('should return true when string is empty', ()
|
|
34
|
-
|
|
33
|
+
test('should return true when string is empty', function () {
|
|
34
|
+
var result = (0, _mustBeShorterThan.default)('', {
|
|
35
35
|
value: 3
|
|
36
36
|
});
|
|
37
37
|
expect(result).toEqual(true);
|
|
38
38
|
});
|
|
39
|
-
test('should return true when string is null', ()
|
|
40
|
-
|
|
39
|
+
test('should return true when string is null', function () {
|
|
40
|
+
var result = (0, _mustBeShorterThan.default)(null, {
|
|
41
41
|
value: 3
|
|
42
42
|
});
|
|
43
43
|
expect(result).toEqual(true);
|
|
@@ -15,15 +15,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
15
15
|
* @param {object} formData - the current form data
|
|
16
16
|
* @returns true if components value is not the same in any other entry in the collection
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
var mustBeUniqueInCollection = function mustBeUniqueInCollection(value, config, component, formData) {
|
|
19
19
|
if (!value || !formData) {
|
|
20
20
|
// null, undefined and empty strings should be picked up by the required flag
|
|
21
21
|
// and not considered here as they would be valid for optional fields.
|
|
22
22
|
return true;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
var activeId = (0, _getCollectionPageActiveId.default)(config.collectionPath, formData);
|
|
25
|
+
var collectionData = (0, _getCollectionPageData.default)(config.collectionPath, formData);
|
|
26
|
+
var result = collectionData === null || collectionData === void 0 ? void 0 : collectionData.some(function (entry) {
|
|
27
27
|
// Don't compare it to itself
|
|
28
28
|
if (entry.id === activeId) {
|
|
29
29
|
return false;
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustBeUniqueInCollection = _interopRequireDefault(require("./mustBeUniqueInCollection"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
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); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
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', function () {
|
|
12
|
+
describe('Validate', function () {
|
|
13
|
+
describe('additional', function () {
|
|
14
|
+
describe('mustBeUniqueInCollection', function () {
|
|
15
|
+
var COMPONENT = {
|
|
10
16
|
id: 'firstName',
|
|
11
17
|
type: 'text',
|
|
12
18
|
label: 'First name',
|
|
@@ -17,33 +23,33 @@ describe('utils', () => {
|
|
|
17
23
|
message: 'Should be unique'
|
|
18
24
|
}]
|
|
19
25
|
};
|
|
20
|
-
|
|
26
|
+
var CONFIG = {
|
|
21
27
|
function: 'mustBeUniqueInCollection',
|
|
22
28
|
collectionPath: 'names',
|
|
23
29
|
message: 'Should be unique'
|
|
24
30
|
};
|
|
25
|
-
|
|
26
|
-
test('should return true given no value', ()
|
|
27
|
-
|
|
31
|
+
var VALUE = 'NAME';
|
|
32
|
+
test('should return true given no value', function () {
|
|
33
|
+
var result = (0, _mustBeUniqueInCollection.default)(undefined, CONFIG, COMPONENT, {});
|
|
28
34
|
expect(result).toBeTruthy();
|
|
29
35
|
});
|
|
30
|
-
test('should return true given no formData', ()
|
|
31
|
-
|
|
36
|
+
test('should return true given no formData', function () {
|
|
37
|
+
var result = (0, _mustBeUniqueInCollection.default)(1, CONFIG, COMPONENT, undefined);
|
|
32
38
|
expect(result).toBeTruthy();
|
|
33
39
|
});
|
|
34
|
-
test('should return true for first entry in a collection', ()
|
|
35
|
-
|
|
40
|
+
test('should return true for first entry in a collection', function () {
|
|
41
|
+
var FORM_DATA = {
|
|
36
42
|
namesActiveId: 1,
|
|
37
43
|
names: [{
|
|
38
44
|
id: 1,
|
|
39
45
|
firstName: VALUE
|
|
40
46
|
}]
|
|
41
47
|
};
|
|
42
|
-
|
|
48
|
+
var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
43
49
|
expect(result).toBeTruthy();
|
|
44
50
|
});
|
|
45
|
-
test('should return true if other entries do not have the same value for this field', ()
|
|
46
|
-
|
|
51
|
+
test('should return true if other entries do not have the same value for this field', function () {
|
|
52
|
+
var FORM_DATA = {
|
|
47
53
|
namesActiveId: 3,
|
|
48
54
|
names: [{
|
|
49
55
|
id: 1,
|
|
@@ -56,11 +62,11 @@ describe('utils', () => {
|
|
|
56
62
|
firstName: VALUE
|
|
57
63
|
}]
|
|
58
64
|
};
|
|
59
|
-
|
|
65
|
+
var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
60
66
|
expect(result).toBeTruthy();
|
|
61
67
|
});
|
|
62
|
-
test('should return false if other entries do have the same value for this field', ()
|
|
63
|
-
|
|
68
|
+
test('should return false if other entries do have the same value for this field', function () {
|
|
69
|
+
var FORM_DATA = {
|
|
64
70
|
namesActiveId: 3,
|
|
65
71
|
names: [{
|
|
66
72
|
id: 1,
|
|
@@ -73,12 +79,12 @@ describe('utils', () => {
|
|
|
73
79
|
firstName: VALUE
|
|
74
80
|
}]
|
|
75
81
|
};
|
|
76
|
-
|
|
82
|
+
var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
|
|
77
83
|
expect(result).toBeFalsy();
|
|
78
84
|
});
|
|
79
|
-
test('should return false if other entries do have the same value for this field within a nested collection', ()
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
test('should return false if other entries do have the same value for this field within a nested collection', function () {
|
|
86
|
+
var NESTED_VALUE = 'delta';
|
|
87
|
+
var FORM_DATA = {
|
|
82
88
|
namesActiveId: 3,
|
|
83
89
|
names: [{
|
|
84
90
|
id: 1,
|
|
@@ -99,7 +105,7 @@ describe('utils', () => {
|
|
|
99
105
|
}]
|
|
100
106
|
}]
|
|
101
107
|
};
|
|
102
|
-
|
|
108
|
+
var COMPONENT_NESTED = {
|
|
103
109
|
id: 'surname',
|
|
104
110
|
type: 'text',
|
|
105
111
|
label: 'Surname',
|
|
@@ -110,14 +116,13 @@ describe('utils', () => {
|
|
|
110
116
|
message: 'Should be unique'
|
|
111
117
|
}]
|
|
112
118
|
};
|
|
113
|
-
|
|
114
|
-
...CONFIG,
|
|
119
|
+
var result = (0, _mustBeUniqueInCollection.default)(NESTED_VALUE, _objectSpread(_objectSpread({}, CONFIG), {}, {
|
|
115
120
|
collectionPath: 'names.surnames'
|
|
116
|
-
}, COMPONENT_NESTED, FORM_DATA);
|
|
121
|
+
}), COMPONENT_NESTED, FORM_DATA);
|
|
117
122
|
expect(result).toBeFalsy();
|
|
118
123
|
});
|
|
119
|
-
test('should return true if other entries have the same value for this field in a different case', ()
|
|
120
|
-
|
|
124
|
+
test('should return true if other entries have the same value for this field in a different case', function () {
|
|
125
|
+
var FORM_DATA = {
|
|
121
126
|
namesActiveId: 2,
|
|
122
127
|
names: [{
|
|
123
128
|
id: 1,
|
|
@@ -130,11 +135,11 @@ describe('utils', () => {
|
|
|
130
135
|
firstName: 'bravo'
|
|
131
136
|
}]
|
|
132
137
|
};
|
|
133
|
-
|
|
138
|
+
var result = (0, _mustBeUniqueInCollection.default)('alpha', CONFIG, COMPONENT, FORM_DATA);
|
|
134
139
|
expect(result).toBeTruthy();
|
|
135
140
|
});
|
|
136
|
-
test('should return false if other entries have the same value for this field in a different case and caseInsensitive is true', ()
|
|
137
|
-
|
|
141
|
+
test('should return false if other entries have the same value for this field in a different case and caseInsensitive is true', function () {
|
|
142
|
+
var FORM_DATA = {
|
|
138
143
|
namesActiveId: 2,
|
|
139
144
|
names: [{
|
|
140
145
|
id: 1,
|
|
@@ -147,10 +152,9 @@ describe('utils', () => {
|
|
|
147
152
|
firstName: 'bravo'
|
|
148
153
|
}]
|
|
149
154
|
};
|
|
150
|
-
|
|
151
|
-
...CONFIG,
|
|
155
|
+
var result = (0, _mustBeUniqueInCollection.default)('alpha', _objectSpread(_objectSpread({}, CONFIG), {}, {
|
|
152
156
|
caseInsensitive: true
|
|
153
|
-
}, COMPONENT, FORM_DATA);
|
|
157
|
+
}), COMPONENT, FORM_DATA);
|
|
154
158
|
expect(result).toBeFalsy();
|
|
155
159
|
});
|
|
156
160
|
});
|
|
@@ -12,9 +12,9 @@ exports.default = void 0;
|
|
|
12
12
|
* otherwise returns false
|
|
13
13
|
*/
|
|
14
14
|
// eslint-disable-next-line arrow-body-style
|
|
15
|
-
|
|
15
|
+
var mustEnterAtLeastOne = function mustEnterAtLeastOne(data, _, component) {
|
|
16
16
|
var _component$components;
|
|
17
|
-
return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(inner
|
|
17
|
+
return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(function (inner) {
|
|
18
18
|
var _data$component$id;
|
|
19
19
|
if ((_data$component$id = data[component.id]) !== null && _data$component$id !== void 0 && _data$component$id[inner.id]) {
|
|
20
20
|
return true;
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _mustEnterAtLeastOne = _interopRequireDefault(require("./mustEnterAtLeastOne"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
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); }
|
|
6
|
+
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; }
|
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
8
|
+
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); }
|
|
9
|
+
describe('utils', function () {
|
|
10
|
+
describe('Validate', function () {
|
|
11
|
+
describe('additional', function () {
|
|
12
|
+
describe('mustEnterAtLeastOne', function () {
|
|
13
|
+
var CONTAINER_ID = 'containerId';
|
|
14
|
+
var COMPONENT = {
|
|
11
15
|
id: CONTAINER_ID,
|
|
12
16
|
type: 'container',
|
|
13
17
|
components: [{
|
|
@@ -18,16 +22,14 @@ describe('utils', () => {
|
|
|
18
22
|
id: 'charlie'
|
|
19
23
|
}]
|
|
20
24
|
};
|
|
21
|
-
test('should return false if all components are empty', ()
|
|
22
|
-
|
|
25
|
+
test('should return false if all components are empty', function () {
|
|
26
|
+
var DATA = {};
|
|
23
27
|
expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(false);
|
|
24
28
|
});
|
|
25
|
-
test('should return true if one component has data', ()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
};
|
|
29
|
+
test('should return true if one component has data', function () {
|
|
30
|
+
var DATA = _defineProperty({}, CONTAINER_ID, {
|
|
31
|
+
alpha: 'text'
|
|
32
|
+
});
|
|
31
33
|
expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(true);
|
|
32
34
|
});
|
|
33
35
|
});
|