@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
|
@@ -5,33 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _showComponentCYA = require("../CheckYourAnswers/showComponentCYA");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
+
var setupContainerComponentsPath = function setupContainerComponentsPath(container) {
|
|
15
|
+
return _objectSpread(_objectSpread({}, container), {}, {
|
|
16
|
+
components: container.components.map(function (component) {
|
|
17
|
+
if (Array.isArray(component.components)) {
|
|
18
|
+
return _objectSpread(_objectSpread({}, component), {}, {
|
|
19
|
+
components: component.components.map(function (c) {
|
|
20
|
+
if (!_showComponentCYA.EXCLUDE_FROM_CYA.includes(c.type)) {
|
|
21
|
+
return _objectSpread(_objectSpread({}, c), !c.full_path && {
|
|
19
22
|
full_path: "".concat(component.full_path || "".concat(container.full_path, ".").concat(component.fieldId), ".").concat(c.fieldId)
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
...(!component.full_path && {
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
;
|
|
26
|
+
return null;
|
|
27
|
+
}).filter(function (c) {
|
|
28
|
+
return !!c;
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
;
|
|
33
|
+
return _objectSpread(_objectSpread({}, component), !component.full_path && {
|
|
32
34
|
full_path: "".concat(container.full_path || container.fieldId, ".").concat(component.fieldId)
|
|
33
|
-
})
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
}
|
|
35
|
+
});
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
};
|
|
37
39
|
var _default = exports.default = setupContainerComponentsPath;
|
|
@@ -3,28 +3,28 @@
|
|
|
3
3
|
var _setupTests = require("../../setupTests");
|
|
4
4
|
var _setupContainerComponentsPath = _interopRequireDefault(require("./setupContainerComponentsPath"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
describe('utils.CheckYourAnswers.setupContainerComponentsPath', ()
|
|
7
|
-
it('should setup the full_path attribute for components within a container', ()
|
|
8
|
-
|
|
6
|
+
describe('utils.CheckYourAnswers.setupContainerComponentsPath', function () {
|
|
7
|
+
it('should setup the full_path attribute for components within a container', function () {
|
|
8
|
+
var COMPONENT_1 = {
|
|
9
9
|
id: 'checkboxes1',
|
|
10
10
|
fieldId: 'checkboxes1',
|
|
11
11
|
type: 'checkboxes',
|
|
12
12
|
label: 'Alpha'
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
var COMPONENT_2 = {
|
|
15
15
|
id: 'checkboxes2',
|
|
16
16
|
fieldId: 'checkboxes2',
|
|
17
17
|
type: 'checkboxes',
|
|
18
18
|
label: 'Bravo'
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
var CONTAINER = {
|
|
21
21
|
id: 'test-container',
|
|
22
22
|
fieldId: 'test-container',
|
|
23
23
|
type: 'container',
|
|
24
24
|
full_path: 'test-container',
|
|
25
25
|
components: [COMPONENT_1, COMPONENT_2]
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
var container = (0, _setupContainerComponentsPath.default)(CONTAINER);
|
|
28
28
|
(0, _setupTests.expectObjectLike)(container.components[0], {
|
|
29
29
|
id: COMPONENT_1.id,
|
|
30
30
|
fieldId: COMPONENT_1.fieldId,
|
|
@@ -40,26 +40,26 @@ describe('utils.CheckYourAnswers.setupContainerComponentsPath', () => {
|
|
|
40
40
|
label: COMPONENT_2.label
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
-
it('should setup the full_path attribute for components when the container full_path property is missing', ()
|
|
44
|
-
|
|
43
|
+
it('should setup the full_path attribute for components when the container full_path property is missing', function () {
|
|
44
|
+
var COMPONENT_1 = {
|
|
45
45
|
id: 'checkboxes1',
|
|
46
46
|
fieldId: 'checkboxes1',
|
|
47
47
|
type: 'checkboxes',
|
|
48
48
|
label: 'Alpha'
|
|
49
49
|
};
|
|
50
|
-
|
|
50
|
+
var COMPONENT_2 = {
|
|
51
51
|
id: 'checkboxes2',
|
|
52
52
|
fieldId: 'checkboxes2',
|
|
53
53
|
type: 'checkboxes',
|
|
54
54
|
label: 'Bravo'
|
|
55
55
|
};
|
|
56
|
-
|
|
56
|
+
var CONTAINER = {
|
|
57
57
|
id: 'test-container',
|
|
58
58
|
fieldId: 'test-container',
|
|
59
59
|
type: 'container',
|
|
60
60
|
components: [COMPONENT_1, COMPONENT_2]
|
|
61
61
|
};
|
|
62
|
-
|
|
62
|
+
var container = (0, _setupContainerComponentsPath.default)(CONTAINER);
|
|
63
63
|
(0, _setupTests.expectObjectLike)(container.components[0], {
|
|
64
64
|
id: COMPONENT_1.id,
|
|
65
65
|
fieldId: COMPONENT_1.fieldId,
|
|
@@ -8,7 +8,7 @@ var _Condition = _interopRequireDefault(require("../Condition"));
|
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
9
|
// Local imports
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
var showComponent = function showComponent(component, data) {
|
|
12
12
|
var _component$show_when;
|
|
13
13
|
if (!component) {
|
|
14
14
|
return false;
|
|
@@ -4,56 +4,56 @@ var _showComponent = _interopRequireDefault(require("./showComponent"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils', ()
|
|
8
|
-
describe('Component', ()
|
|
9
|
-
describe('show', ()
|
|
10
|
-
it('should not show when there are no options', ()
|
|
7
|
+
describe('utils', function () {
|
|
8
|
+
describe('Component', function () {
|
|
9
|
+
describe('show', function () {
|
|
10
|
+
it('should not show when there are no options', function () {
|
|
11
11
|
expect((0, _showComponent.default)(null, null)).toBeFalsy();
|
|
12
12
|
});
|
|
13
|
-
it('should not show when hidden and disabled', ()
|
|
13
|
+
it('should not show when hidden and disabled', function () {
|
|
14
14
|
expect((0, _showComponent.default)({
|
|
15
15
|
hidden: true,
|
|
16
16
|
disabled: true
|
|
17
17
|
}, null)).toBeFalsy();
|
|
18
18
|
});
|
|
19
|
-
it('should show when hidden but not disabled', ()
|
|
19
|
+
it('should show when hidden but not disabled', function () {
|
|
20
20
|
expect((0, _showComponent.default)({
|
|
21
21
|
hidden: true
|
|
22
22
|
}, null)).toBeTruthy();
|
|
23
23
|
});
|
|
24
|
-
it('should show when disabled but not hidden', ()
|
|
24
|
+
it('should show when disabled but not hidden', function () {
|
|
25
25
|
expect((0, _showComponent.default)({
|
|
26
26
|
disabled: true
|
|
27
27
|
}, null)).toBeTruthy();
|
|
28
28
|
});
|
|
29
|
-
it('should show when a single show_when condition is met', ()
|
|
30
|
-
|
|
29
|
+
it('should show when a single show_when condition is met', function () {
|
|
30
|
+
var COMPONENT = {
|
|
31
31
|
show_when: {
|
|
32
32
|
field: 'alpha',
|
|
33
33
|
op: 'eq',
|
|
34
34
|
value: 'bravo'
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
var DATA = {
|
|
38
38
|
alpha: 'bravo'
|
|
39
39
|
};
|
|
40
40
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeTruthy();
|
|
41
41
|
});
|
|
42
|
-
it('should not show when a single show_when condition is not met', ()
|
|
43
|
-
|
|
42
|
+
it('should not show when a single show_when condition is not met', function () {
|
|
43
|
+
var COMPONENT = {
|
|
44
44
|
show_when: {
|
|
45
45
|
field: 'alpha',
|
|
46
46
|
op: 'eq',
|
|
47
47
|
value: 'bravo'
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
|
|
50
|
+
var DATA = {
|
|
51
51
|
alpha: 'charlie'
|
|
52
52
|
};
|
|
53
53
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeFalsy();
|
|
54
54
|
});
|
|
55
|
-
it('should show when multiple show_when conditions are met', ()
|
|
56
|
-
|
|
55
|
+
it('should show when multiple show_when conditions are met', function () {
|
|
56
|
+
var COMPONENT = {
|
|
57
57
|
show_when: [{
|
|
58
58
|
field: 'alpha',
|
|
59
59
|
op: 'eq',
|
|
@@ -64,14 +64,14 @@ describe('utils', () => {
|
|
|
64
64
|
value: 'delta'
|
|
65
65
|
}]
|
|
66
66
|
};
|
|
67
|
-
|
|
67
|
+
var DATA = {
|
|
68
68
|
alpha: 'bravo',
|
|
69
69
|
charlie: 'delta'
|
|
70
70
|
};
|
|
71
71
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeTruthy();
|
|
72
72
|
});
|
|
73
|
-
it('should not show when one of multiple show_when conditions is not met', ()
|
|
74
|
-
|
|
73
|
+
it('should not show when one of multiple show_when conditions is not met', function () {
|
|
74
|
+
var COMPONENT = {
|
|
75
75
|
show_when: [{
|
|
76
76
|
field: 'alpha',
|
|
77
77
|
op: 'eq',
|
|
@@ -82,14 +82,14 @@ describe('utils', () => {
|
|
|
82
82
|
value: 'delta'
|
|
83
83
|
}]
|
|
84
84
|
};
|
|
85
|
-
|
|
85
|
+
var DATA = {
|
|
86
86
|
alpha: 'bravo',
|
|
87
87
|
charlie: 'echo'
|
|
88
88
|
};
|
|
89
89
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeFalsy();
|
|
90
90
|
});
|
|
91
|
-
it('SHOULD be shown when the component has multiple show_when conditions, with type "or" provided and ALL are matched', ()
|
|
92
|
-
|
|
91
|
+
it('SHOULD be shown when the component has multiple show_when conditions, with type "or" provided and ALL are matched', function () {
|
|
92
|
+
var COMPONENT = {
|
|
93
93
|
show_when: {
|
|
94
94
|
"type": "or",
|
|
95
95
|
"conditions": [{
|
|
@@ -103,14 +103,14 @@ describe('utils', () => {
|
|
|
103
103
|
}]
|
|
104
104
|
}
|
|
105
105
|
};
|
|
106
|
-
|
|
106
|
+
var DATA = {
|
|
107
107
|
alpha: 'Alpha',
|
|
108
108
|
bravo: 'Bravo'
|
|
109
109
|
};
|
|
110
110
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeTruthy();
|
|
111
111
|
});
|
|
112
|
-
it('SHOULD be shown when the component has multiple show_when conditions, with type "or" provided and at least ONE is matched', ()
|
|
113
|
-
|
|
112
|
+
it('SHOULD be shown when the component has multiple show_when conditions, with type "or" provided and at least ONE is matched', function () {
|
|
113
|
+
var COMPONENT = {
|
|
114
114
|
show_when: {
|
|
115
115
|
"type": "or",
|
|
116
116
|
"conditions": [{
|
|
@@ -124,14 +124,14 @@ describe('utils', () => {
|
|
|
124
124
|
}]
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
|
-
|
|
127
|
+
var DATA = {
|
|
128
128
|
alpha: 'Alpha',
|
|
129
129
|
bravo: 'Bravo'
|
|
130
130
|
};
|
|
131
131
|
expect((0, _showComponent.default)(COMPONENT, DATA)).toBeTruthy();
|
|
132
132
|
});
|
|
133
|
-
it('should NOT be shown when the component has multiple show_when conditions, with type "or" provided and NONE are matched', ()
|
|
134
|
-
|
|
133
|
+
it('should NOT be shown when the component has multiple show_when conditions, with type "or" provided and NONE are matched', function () {
|
|
134
|
+
var COMPONENT = {
|
|
135
135
|
show_when: {
|
|
136
136
|
"type": "or",
|
|
137
137
|
"conditions": [{
|
|
@@ -145,7 +145,7 @@ describe('utils', () => {
|
|
|
145
145
|
}]
|
|
146
146
|
}
|
|
147
147
|
};
|
|
148
|
-
|
|
148
|
+
var DATA = {
|
|
149
149
|
alpha: 'Alpha',
|
|
150
150
|
bravo: 'Bravo'
|
|
151
151
|
};
|
|
@@ -10,8 +10,8 @@ var _cleanAttributes = _interopRequireDefault(require("./cleanAttributes"));
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // Global imports
|
|
12
12
|
// Local imports
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
var wrapInFormGroup = function wrapInFormGroup(config, children) {
|
|
14
|
+
var attrs = (0, _cleanAttributes.default)(config, ['fieldId', 'displayMenu', 'showCharacterCount', 'readonly']);
|
|
15
15
|
return /*#__PURE__*/_react.default.createElement(_copReactComponents.FormGroup, _extends({}, attrs, {
|
|
16
16
|
onChange: null
|
|
17
17
|
}), children);
|
|
@@ -8,7 +8,7 @@ var _meetsAllConditions = _interopRequireDefault(require("./meetsAllConditions")
|
|
|
8
8
|
var _meetsCondition = _interopRequireDefault(require("./meetsCondition"));
|
|
9
9
|
var _meetsOneCondition = _interopRequireDefault(require("./meetsOneCondition"));
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
11
|
+
var Condition = {
|
|
12
12
|
meetsOne: _meetsOneCondition.default,
|
|
13
13
|
meetsAll: _meetsAllConditions.default,
|
|
14
14
|
met: _meetsCondition.default
|
|
@@ -13,15 +13,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
13
13
|
|
|
14
14
|
// Local imports
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
var testConditions = function testConditions(conditions, data) {
|
|
17
|
+
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'and';
|
|
18
|
+
var arr = Array.isArray(conditions) ? conditions : [conditions];
|
|
19
|
+
var testCallback = function testCallback(condition) {
|
|
20
20
|
if (Array.isArray(condition.conditions)) {
|
|
21
21
|
return testConditions(condition.conditions, data, condition.type);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
var field = condition.field.startsWith('interpolate::') ? _copReactComponents.Utils.interpolateString(condition.field, data).replace('interpolate::', '') : condition.field;
|
|
24
|
+
var sourceDataValue = _Data.default.getSource(data, field);
|
|
25
25
|
return (0, _meetsCondition.default)(condition, sourceDataValue, data);
|
|
26
26
|
};
|
|
27
27
|
return type === 'and' ? arr.every(testCallback) : arr.some(testCallback);
|
|
@@ -33,8 +33,8 @@ const testConditions = function (conditions, data) {
|
|
|
33
33
|
* @param {object} data The top-level form data.
|
|
34
34
|
* @returns Boolean true if all conditions are met; false otherwise.
|
|
35
35
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
var meetsAllConditions = function meetsAllConditions(options, data) {
|
|
37
|
+
var conditions = (0, _setupConditions.default)(options);
|
|
38
38
|
if (conditions) {
|
|
39
39
|
return testConditions(conditions, data);
|
|
40
40
|
}
|
|
@@ -4,38 +4,38 @@ var _meetsAllConditions = _interopRequireDefault(require("./meetsAllConditions")
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Condition.meetsAllConditions', ()
|
|
8
|
-
|
|
7
|
+
describe('utils.Condition.meetsAllConditions', function () {
|
|
8
|
+
var DATA = {
|
|
9
9
|
alpha: 'bravo',
|
|
10
10
|
charlie: 'delta'
|
|
11
11
|
};
|
|
12
|
-
it('should evaluate to true when conditions are null', ()
|
|
12
|
+
it('should evaluate to true when conditions are null', function () {
|
|
13
13
|
expect((0, _meetsAllConditions.default)(null, DATA)).toBeTruthy();
|
|
14
14
|
});
|
|
15
|
-
it('should evaluate to true when conditions are undefined', ()
|
|
15
|
+
it('should evaluate to true when conditions are undefined', function () {
|
|
16
16
|
expect((0, _meetsAllConditions.default)(undefined, DATA)).toBeTruthy();
|
|
17
17
|
});
|
|
18
|
-
it('should evaluate to true when conditions is an empty array', ()
|
|
18
|
+
it('should evaluate to true when conditions is an empty array', function () {
|
|
19
19
|
expect((0, _meetsAllConditions.default)([], DATA)).toBeTruthy();
|
|
20
20
|
});
|
|
21
|
-
it('should evaluate to true when a single condition is met', ()
|
|
22
|
-
|
|
21
|
+
it('should evaluate to true when a single condition is met', function () {
|
|
22
|
+
var CONDITION = {
|
|
23
23
|
field: 'alpha',
|
|
24
24
|
op: 'eq',
|
|
25
25
|
value: 'bravo'
|
|
26
26
|
};
|
|
27
27
|
expect((0, _meetsAllConditions.default)(CONDITION, DATA)).toBeTruthy();
|
|
28
28
|
});
|
|
29
|
-
it('should evaluate to false when a single condition is not met', ()
|
|
30
|
-
|
|
29
|
+
it('should evaluate to false when a single condition is not met', function () {
|
|
30
|
+
var CONDITION = {
|
|
31
31
|
field: 'alpha',
|
|
32
32
|
op: 'ne',
|
|
33
33
|
value: 'bravo'
|
|
34
34
|
};
|
|
35
35
|
expect((0, _meetsAllConditions.default)(CONDITION, DATA)).toBeFalsy();
|
|
36
36
|
});
|
|
37
|
-
it('should evaluate to true when all conditions are met', ()
|
|
38
|
-
|
|
37
|
+
it('should evaluate to true when all conditions are met', function () {
|
|
38
|
+
var CONDITIONS = [{
|
|
39
39
|
field: 'alpha',
|
|
40
40
|
op: 'eq',
|
|
41
41
|
value: 'bravo'
|
|
@@ -46,8 +46,8 @@ describe('utils.Condition.meetsAllConditions', () => {
|
|
|
46
46
|
}];
|
|
47
47
|
expect((0, _meetsAllConditions.default)(CONDITIONS, DATA)).toBeTruthy();
|
|
48
48
|
});
|
|
49
|
-
it('should evaluate to false when one of the conditions is not met', ()
|
|
50
|
-
|
|
49
|
+
it('should evaluate to false when one of the conditions is not met', function () {
|
|
50
|
+
var CONDITIONS = [{
|
|
51
51
|
field: 'alpha',
|
|
52
52
|
op: 'eq',
|
|
53
53
|
value: 'bravo'
|
|
@@ -58,18 +58,18 @@ describe('utils.Condition.meetsAllConditions', () => {
|
|
|
58
58
|
}];
|
|
59
59
|
expect((0, _meetsAllConditions.default)(CONDITIONS, DATA)).toBeFalsy();
|
|
60
60
|
});
|
|
61
|
-
it('should handle nested conditions', ()
|
|
62
|
-
|
|
61
|
+
it('should handle nested conditions', function () {
|
|
62
|
+
var VALID_DATA = {
|
|
63
63
|
shouldBeAlpha: 'alpha',
|
|
64
64
|
shouldBeBravo: 'bravo',
|
|
65
65
|
canBeCharlieOrDelta: 'charlie'
|
|
66
66
|
};
|
|
67
|
-
|
|
67
|
+
var INVALID_DATA = {
|
|
68
68
|
shouldBeAlpha: 'alpha',
|
|
69
69
|
shouldBeBravo: 'bravo',
|
|
70
70
|
canBeCharlieOrDelta: 'echo'
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
var CONDITIONS = [{
|
|
73
73
|
type: 'or',
|
|
74
74
|
conditions: [{
|
|
75
75
|
field: 'canBeCharlieOrDelta',
|
|
@@ -92,12 +92,12 @@ describe('utils.Condition.meetsAllConditions', () => {
|
|
|
92
92
|
expect((0, _meetsAllConditions.default)(CONDITIONS, VALID_DATA)).toBeTruthy();
|
|
93
93
|
expect((0, _meetsAllConditions.default)(CONDITIONS, INVALID_DATA)).toBeFalsy();
|
|
94
94
|
});
|
|
95
|
-
it('should evaluate conditions correctly using interpolated fields', ()
|
|
96
|
-
|
|
95
|
+
it('should evaluate conditions correctly using interpolated fields', function () {
|
|
96
|
+
var NEW_DATA = {
|
|
97
97
|
role: 'admin',
|
|
98
98
|
'admin_status': 'active'
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
var CONDITION = {
|
|
101
101
|
// eslint-disable-next-line no-template-curly-in-string
|
|
102
102
|
field: 'interpolate::${role}_status',
|
|
103
103
|
op: 'eq',
|
|
@@ -6,15 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _Data = _interopRequireDefault(require("../Data"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
// Local imports
|
|
10
|
-
|
|
11
|
-
const getComparisonValue = (condition, data) => {
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } // Local imports
|
|
10
|
+
var getComparisonValue = function getComparisonValue(condition, data) {
|
|
12
11
|
var _condition$value;
|
|
13
12
|
if (['in', 'nin', 'includesAllOf', '!includesAllOf'].includes(condition.op)) {
|
|
14
13
|
return condition.values;
|
|
15
14
|
}
|
|
16
15
|
if (typeof condition.value === 'string' && (_condition$value = condition.value) !== null && _condition$value !== void 0 && _condition$value.startsWith('field::')) {
|
|
17
|
-
|
|
16
|
+
var comparisonField = condition.value.replace('field::', '');
|
|
18
17
|
return _Data.default.getSource(data, comparisonField);
|
|
19
18
|
}
|
|
20
19
|
return condition.value;
|
|
@@ -32,9 +31,9 @@ const getComparisonValue = (condition, data) => {
|
|
|
32
31
|
*
|
|
33
32
|
* @returns A boolean indicating whether the value meets the condition.
|
|
34
33
|
*/
|
|
35
|
-
|
|
36
|
-
if (condition &&
|
|
37
|
-
|
|
34
|
+
var meetsCondition = function meetsCondition(condition, value, data) {
|
|
35
|
+
if (condition && _typeof(condition) === 'object') {
|
|
36
|
+
var compare = getComparisonValue(condition, data);
|
|
38
37
|
switch (condition.op) {
|
|
39
38
|
case '=':
|
|
40
39
|
case 'eq':
|
|
@@ -69,8 +68,8 @@ const meetsCondition = (condition, value, data) => {
|
|
|
69
68
|
if (!value || !compare) {
|
|
70
69
|
return false;
|
|
71
70
|
}
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
var valFloat = parseFloat(value.replace(',', ''));
|
|
72
|
+
var compareFloat = parseFloat(compare.replace(',', ''));
|
|
74
73
|
return valFloat < compareFloat;
|
|
75
74
|
}
|
|
76
75
|
case '>':
|
|
@@ -78,21 +77,23 @@ const meetsCondition = (condition, value, data) => {
|
|
|
78
77
|
if (!value || !compare) {
|
|
79
78
|
return false;
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return
|
|
80
|
+
var _valFloat = parseFloat(value.replace(/,/g, ''));
|
|
81
|
+
var _compareFloat = parseFloat(compare.replace(/,/g, ''));
|
|
82
|
+
return _valFloat > _compareFloat;
|
|
84
83
|
}
|
|
85
84
|
case 'contains':
|
|
86
85
|
{
|
|
87
86
|
return value === null || value === void 0 ? void 0 : value.toString().toLowerCase().includes(compare);
|
|
88
87
|
// If no value is provided, the field cannot contain it, so it must fail the condition.
|
|
89
88
|
}
|
|
89
|
+
|
|
90
90
|
case '!contains':
|
|
91
91
|
{
|
|
92
92
|
var _value$toString$toLow;
|
|
93
93
|
return (_value$toString$toLow = !(value !== null && value !== void 0 && value.toString().toLowerCase().includes(compare))) !== null && _value$toString$toLow !== void 0 ? _value$toString$toLow : true;
|
|
94
94
|
// If no value is provided, the field cannot contain it, so it must meet the condition.
|
|
95
95
|
}
|
|
96
|
+
|
|
96
97
|
case 'includes':
|
|
97
98
|
{
|
|
98
99
|
if (Array.isArray(value)) {
|
|
@@ -110,14 +111,18 @@ const meetsCondition = (condition, value, data) => {
|
|
|
110
111
|
case 'includesObjectProp':
|
|
111
112
|
{
|
|
112
113
|
if (Array.isArray(value)) {
|
|
113
|
-
return value.some(
|
|
114
|
+
return value.some(function (v) {
|
|
115
|
+
return v[condition.key] === compare;
|
|
116
|
+
});
|
|
114
117
|
}
|
|
115
118
|
return false;
|
|
116
119
|
}
|
|
117
120
|
case '!includesObjectProp':
|
|
118
121
|
{
|
|
119
122
|
if (Array.isArray(value)) {
|
|
120
|
-
return !value.some(
|
|
123
|
+
return !value.some(function (v) {
|
|
124
|
+
return v[condition.key] === compare;
|
|
125
|
+
});
|
|
121
126
|
}
|
|
122
127
|
return true;
|
|
123
128
|
}
|
|
@@ -127,7 +132,9 @@ const meetsCondition = (condition, value, data) => {
|
|
|
127
132
|
// This will break if compare is not an array, meaning
|
|
128
133
|
// the form JSON has been written incorrectly. Seemed silly
|
|
129
134
|
// to try and hide the configuration error with type checking.
|
|
130
|
-
return compare.every(
|
|
135
|
+
return compare.every(function (entry) {
|
|
136
|
+
return value.includes(entry);
|
|
137
|
+
});
|
|
131
138
|
}
|
|
132
139
|
return false;
|
|
133
140
|
}
|
|
@@ -137,7 +144,9 @@ const meetsCondition = (condition, value, data) => {
|
|
|
137
144
|
// This will break if compare is not an array, meaning
|
|
138
145
|
// the form JSON has been written incorrectly. Seemed silly
|
|
139
146
|
// to try and hide the configuration error with type checking.
|
|
140
|
-
return !compare.every(
|
|
147
|
+
return !compare.every(function (entry) {
|
|
148
|
+
return value.includes(entry);
|
|
149
|
+
});
|
|
141
150
|
}
|
|
142
151
|
return true;
|
|
143
152
|
}
|