@ukhomeoffice/cop-react-form-renderer 6.5.1-peter → 6.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +73 -63
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +80 -76
- package/dist/components/CollectionSummary/CollectionSummary.js +97 -107
- package/dist/components/CollectionSummary/CollectionSummary.test.js +152 -142
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +45 -51
- package/dist/components/CollectionSummary/RenderListView.test.js +78 -77
- package/dist/components/CollectionSummary/SummaryCard.js +104 -135
- package/dist/components/CollectionSummary/SummaryCard.test.js +930 -962
- package/dist/components/CollectionSummary/SummaryCardDetails.js +72 -71
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +128 -135
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +30 -35
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -74
- package/dist/components/FormComponent/Collection.js +74 -108
- package/dist/components/FormComponent/Collection.test.js +909 -1081
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +69 -72
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +143 -179
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +44 -47
- package/dist/components/FormRenderer/onPageAction.test.js +223 -213
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +43 -94
- package/dist/context/ValidationContext/ValidationContext.test.js +56 -68
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +26 -39
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -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 +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +18 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +55 -26
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +20 -22
- package/dist/utils/CollectionPage/getQuickEditPage.js +36 -28
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +16 -25
- 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 +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +24 -30
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +9 -16
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +15 -20
- package/dist/utils/Validate/validateContainer.test.js +58 -52
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +19 -22
- package/dist/utils/Validate/validatePage.test.js +215 -203
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +2 -2
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-after.json +0 -429
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test.json +0 -1605
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -2,41 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.checkValueIsTruthy',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.checkValueIsTruthy', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
alpha: 'abc',
|
|
8
8
|
bravo: ''
|
|
9
9
|
};
|
|
10
|
-
it('Should return true is the value of the field is truthy',
|
|
11
|
-
|
|
10
|
+
it('Should return true is the value of the field is truthy', () => {
|
|
11
|
+
const CONFIG = {
|
|
12
12
|
field: 'alpha'
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
15
15
|
expect(result).toEqual(true);
|
|
16
16
|
});
|
|
17
|
-
it('Should return false if the value of the field is falsy',
|
|
18
|
-
|
|
17
|
+
it('Should return false if the value of the field is falsy', () => {
|
|
18
|
+
const CONFIG = {
|
|
19
19
|
field: 'bravo'
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
22
22
|
expect(result).toEqual(false);
|
|
23
23
|
});
|
|
24
|
-
it('Should return false if the field does not exist',
|
|
25
|
-
|
|
24
|
+
it('Should return false if the field does not exist', () => {
|
|
25
|
+
const CONFIG = {
|
|
26
26
|
field: 'charlie'
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
|
|
29
29
|
expect(result).toEqual(false);
|
|
30
30
|
});
|
|
31
|
-
it('Should return false when an invalid config is used',
|
|
32
|
-
|
|
31
|
+
it('Should return false when an invalid config is used', () => {
|
|
32
|
+
const result = (0, _checkValueIsTruthy.default)(null, DATA);
|
|
33
33
|
expect(result).toEqual(false);
|
|
34
34
|
});
|
|
35
|
-
it('Should return false when invalid data is used',
|
|
36
|
-
|
|
35
|
+
it('Should return false when invalid data is used', () => {
|
|
36
|
+
const CONFIG = {
|
|
37
37
|
field: 'alpha'
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
const result = (0, _checkValueIsTruthy.default)(CONFIG, null);
|
|
40
40
|
expect(result).toEqual(false);
|
|
41
41
|
});
|
|
42
42
|
});
|
|
@@ -11,12 +11,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const getFirstOf = (config, data) => {
|
|
15
15
|
if (config !== null && config !== void 0 && config.fields) {
|
|
16
|
-
|
|
17
|
-
config.fields.find(
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
let fieldValue;
|
|
17
|
+
config.fields.find(field => {
|
|
18
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(field, data);
|
|
19
|
+
const foundValue = (0, _getSourceData.default)(data, fieldPath);
|
|
20
20
|
if (foundValue) {
|
|
21
21
|
fieldValue = foundValue;
|
|
22
22
|
return true;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.getFirstOf',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.getFirstOf', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
name: 'sam',
|
|
8
8
|
id: 1,
|
|
9
9
|
test: ['2', '3'],
|
|
@@ -12,75 +12,75 @@ describe('Utils.Operate.getFirstOf', function () {
|
|
|
12
12
|
otherIdDoc: '',
|
|
13
13
|
anotherMadeUpId: 789
|
|
14
14
|
};
|
|
15
|
-
it('Should handle interpolated field strings',
|
|
15
|
+
it('Should handle interpolated field strings', () => {
|
|
16
16
|
// eslint-disable-next-line no-template-curly-in-string
|
|
17
|
-
|
|
17
|
+
const CONFIG = {
|
|
18
18
|
fields: ['test[${id}]']
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
21
21
|
expect(result).toEqual(DATA.test[1]);
|
|
22
22
|
});
|
|
23
|
-
it('Should return the value provided in config if no field is specified',
|
|
24
|
-
|
|
23
|
+
it('Should return the value provided in config if no field is specified', () => {
|
|
24
|
+
const CONFIG = {
|
|
25
25
|
value: '2'
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
28
28
|
expect(result).toEqual(CONFIG.value);
|
|
29
29
|
});
|
|
30
|
-
it('Should return the fallback if the requested fields are not found',
|
|
30
|
+
it('Should return the fallback if the requested fields are not found', () => {
|
|
31
31
|
// eslint-disable-next-line no-template-curly-in-string
|
|
32
|
-
|
|
32
|
+
const CONFIG = {
|
|
33
33
|
value: '2',
|
|
34
34
|
fields: ['nonExistent'],
|
|
35
35
|
fallback: "Test ${name}"
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
38
38
|
expect(result).toEqual("Test ".concat(DATA.name));
|
|
39
39
|
});
|
|
40
|
-
it('Should return the value of the passportNumber field given in config',
|
|
41
|
-
|
|
40
|
+
it('Should return the value of the passportNumber field given in config', () => {
|
|
41
|
+
const CONFIG = {
|
|
42
42
|
fields: ['passportNumber', 'anotherMadeUpId', 'otherIdDoc']
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
45
45
|
expect(result).toEqual(DATA.passportNumber);
|
|
46
46
|
});
|
|
47
|
-
it('Should return the value of the anotherMadeUpId field given in config',
|
|
48
|
-
|
|
47
|
+
it('Should return the value of the anotherMadeUpId field given in config', () => {
|
|
48
|
+
const CONFIG = {
|
|
49
49
|
fields: ['anotherMadeUpId', 'passportNumber', 'otherIdDoc']
|
|
50
50
|
};
|
|
51
|
-
|
|
51
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
52
52
|
expect(result).toEqual(DATA.anotherMadeUpId);
|
|
53
53
|
});
|
|
54
|
-
it('Should return the value of the otherIdDoc field given in config',
|
|
55
|
-
|
|
54
|
+
it('Should return the value of the otherIdDoc field given in config', () => {
|
|
55
|
+
const CONFIG = {
|
|
56
56
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
59
59
|
expect(result).toEqual(DATA.passportNumber);
|
|
60
60
|
});
|
|
61
|
-
it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array',
|
|
62
|
-
|
|
61
|
+
it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array', () => {
|
|
62
|
+
const CONFIG = {
|
|
63
63
|
fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
66
66
|
expect(result).toEqual(DATA.passportNumber);
|
|
67
67
|
});
|
|
68
|
-
it('Should return no value if elements in config.fields are not found in data',
|
|
69
|
-
|
|
68
|
+
it('Should return no value if elements in config.fields are not found in data', () => {
|
|
69
|
+
const CONFIG = {
|
|
70
70
|
fields: ['otherIdDoc1', 'passportNumber1', 'anotherMadeUpId1']
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
const result = (0, _getFirstOf.default)(CONFIG, DATA);
|
|
73
73
|
expect(result).toEqual('');
|
|
74
74
|
});
|
|
75
|
-
it('Should return null when an invalid config is used',
|
|
76
|
-
|
|
75
|
+
it('Should return null when an invalid config is used', () => {
|
|
76
|
+
const result = (0, _getFirstOf.default)(null, DATA);
|
|
77
77
|
expect(result).toEqual(null);
|
|
78
78
|
});
|
|
79
|
-
it('Should return null when invalid data is used',
|
|
80
|
-
|
|
79
|
+
it('Should return null when invalid data is used', () => {
|
|
80
|
+
const CONFIG = {
|
|
81
81
|
field: 'a'
|
|
82
82
|
};
|
|
83
|
-
|
|
83
|
+
const result = (0, _getFirstOf.default)(CONFIG, null);
|
|
84
84
|
expect(result).toEqual(null);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
@@ -11,11 +11,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const getValueOrField = (config, data) => {
|
|
15
15
|
if (config !== null && config !== void 0 && config.value) {
|
|
16
16
|
return config.value;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
const path = _copReactComponents.Utils.interpolateString(config === null || config === void 0 ? void 0 : config.field, data);
|
|
19
19
|
return (0, _getSourceData.default)(data, path);
|
|
20
20
|
};
|
|
21
21
|
|
|
@@ -28,18 +28,18 @@ var getValueOrField = function getValueOrField(config, data) {
|
|
|
28
28
|
* @param {object} data A page's formData.
|
|
29
29
|
* @returns The index of the matching value if one exists, or null.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
const getIndexOfMatchingValueIn = (config, data) => {
|
|
32
32
|
if (!config || !data) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
const targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
|
|
36
|
+
const target = (0, _getSourceData.default)(data, targetPath);
|
|
37
|
+
const value = getValueOrField(config, data);
|
|
38
|
+
const cutoff = getValueOrField(config.cutoff, data);
|
|
39
|
+
const ignore = getValueOrField(config.ignore, data);
|
|
40
|
+
let result = null;
|
|
41
41
|
if (target && value && Array.isArray(target)) {
|
|
42
|
-
target.every(
|
|
42
|
+
target.every((entry, index) => {
|
|
43
43
|
if (index === cutoff) {
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _getIndexOfMatchingValueIn = _interopRequireDefault(require("./getIndexOfMatchingValueIn"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.getIndexOfPriorMatchingValueIn',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.getIndexOfPriorMatchingValueIn', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
|
|
8
8
|
root: {
|
|
9
9
|
branch: 'leaf'
|
|
@@ -17,147 +17,141 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
|
|
|
17
17
|
cutoffName: 'cutoffIndex',
|
|
18
18
|
ignoreName: 'ignoreIndex'
|
|
19
19
|
};
|
|
20
|
-
it('Should return the index of a matching value if one exists',
|
|
21
|
-
|
|
20
|
+
it('Should return the index of a matching value if one exists', () => {
|
|
21
|
+
const CONFIG = {
|
|
22
22
|
target: 'arrayOfValues',
|
|
23
23
|
value: 'cde'
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
26
26
|
expect(result).toEqual('2');
|
|
27
27
|
});
|
|
28
|
-
it('Should handle getting value from given field',
|
|
29
|
-
|
|
28
|
+
it('Should handle getting value from given field', () => {
|
|
29
|
+
const CONFIG = {
|
|
30
30
|
target: 'arrayOfValues',
|
|
31
31
|
field: 'valueToSearchFor'
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
34
34
|
expect(result).toEqual('2');
|
|
35
35
|
});
|
|
36
|
-
it('Should handle interpolated string for field',
|
|
36
|
+
it('Should handle interpolated string for field', () => {
|
|
37
37
|
// eslint-disable-next-line no-template-curly-in-string
|
|
38
|
-
|
|
38
|
+
const CONFIG = {
|
|
39
39
|
target: 'arrayOfValues',
|
|
40
40
|
field: '${fieldName}'
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
43
43
|
expect(result).toEqual('2');
|
|
44
44
|
});
|
|
45
|
-
it('Should handle interpolated string for key',
|
|
45
|
+
it('Should handle interpolated string for key', () => {
|
|
46
46
|
// eslint-disable-next-line no-template-curly-in-string
|
|
47
|
-
|
|
47
|
+
const CONFIG = {
|
|
48
48
|
target: 'arrayOfValues',
|
|
49
49
|
key: 'root.branch',
|
|
50
50
|
value: 'leaf'
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
53
53
|
expect(result).toEqual('4');
|
|
54
54
|
});
|
|
55
|
-
it('Should handle a cutoff value being specified',
|
|
56
|
-
|
|
55
|
+
it('Should handle a cutoff value being specified', () => {
|
|
56
|
+
const CONFIG = {
|
|
57
57
|
target: 'arrayOfValues',
|
|
58
58
|
value: 'cde',
|
|
59
59
|
cutoff: {
|
|
60
60
|
value: 1
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
64
64
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
65
65
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var CONFIG = {
|
|
66
|
+
it('Should handle a cutoff field being specified', () => {
|
|
67
|
+
const CONFIG = {
|
|
69
68
|
target: 'arrayOfValues',
|
|
70
69
|
value: 'cde',
|
|
71
70
|
cutoff: {
|
|
72
71
|
field: 'cutoffIndex'
|
|
73
72
|
}
|
|
74
73
|
};
|
|
75
|
-
|
|
74
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
76
75
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
77
76
|
});
|
|
78
|
-
|
|
79
|
-
it('Should handle interpolated string for cutoff.field', function () {
|
|
77
|
+
it('Should handle interpolated string for cutoff.field', () => {
|
|
80
78
|
// eslint-disable-next-line no-template-curly-in-string
|
|
81
|
-
|
|
79
|
+
const CONFIG = {
|
|
82
80
|
target: 'arrayOfValues',
|
|
83
81
|
value: 'cde',
|
|
84
82
|
cutoff: {
|
|
85
83
|
field: '${cutoffName}'
|
|
86
84
|
}
|
|
87
85
|
};
|
|
88
|
-
|
|
86
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
89
87
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
90
88
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var CONFIG = {
|
|
89
|
+
it('Should handle an ignore value being specified', () => {
|
|
90
|
+
const CONFIG = {
|
|
94
91
|
target: 'arrayOfValues',
|
|
95
92
|
value: 'cde',
|
|
96
93
|
ignore: {
|
|
97
94
|
value: 2
|
|
98
95
|
}
|
|
99
96
|
};
|
|
100
|
-
|
|
97
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
101
98
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
102
99
|
});
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var CONFIG = {
|
|
100
|
+
it('Should handle an ignore field being specified', () => {
|
|
101
|
+
const CONFIG = {
|
|
106
102
|
target: 'arrayOfValues',
|
|
107
103
|
value: 'cde',
|
|
108
104
|
ignore: {
|
|
109
105
|
field: 'ignoreIndex'
|
|
110
106
|
}
|
|
111
107
|
};
|
|
112
|
-
|
|
108
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
113
109
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
114
110
|
});
|
|
115
|
-
|
|
116
|
-
it('Should handle interpolated string for ignore.field', function () {
|
|
111
|
+
it('Should handle interpolated string for ignore.field', () => {
|
|
117
112
|
// eslint-disable-next-line no-template-curly-in-string
|
|
118
|
-
|
|
113
|
+
const CONFIG = {
|
|
119
114
|
target: 'arrayOfValues',
|
|
120
115
|
value: 'cde',
|
|
121
116
|
ignore: {
|
|
122
117
|
field: '${ignoreName}'
|
|
123
118
|
}
|
|
124
119
|
};
|
|
125
|
-
|
|
120
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
126
121
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
127
122
|
});
|
|
128
|
-
|
|
129
|
-
it('Should handle interpolated string for target', function () {
|
|
123
|
+
it('Should handle interpolated string for target', () => {
|
|
130
124
|
// eslint-disable-next-line no-template-curly-in-string
|
|
131
|
-
|
|
125
|
+
const CONFIG = {
|
|
132
126
|
target: '${targetName}',
|
|
133
127
|
value: 'cde'
|
|
134
128
|
};
|
|
135
|
-
|
|
129
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
136
130
|
expect(result).toEqual('2');
|
|
137
131
|
});
|
|
138
|
-
it('Should return null when the target does not exist',
|
|
139
|
-
|
|
132
|
+
it('Should return null when the target does not exist', () => {
|
|
133
|
+
const CONFIG = {
|
|
140
134
|
target: 'notARealTarget',
|
|
141
135
|
value: 'cde'
|
|
142
136
|
};
|
|
143
|
-
|
|
137
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
144
138
|
expect(result).toEqual(null);
|
|
145
139
|
});
|
|
146
|
-
it('Should return null when config is missing fields',
|
|
147
|
-
|
|
148
|
-
|
|
140
|
+
it('Should return null when config is missing fields', () => {
|
|
141
|
+
const CONFIG = {};
|
|
142
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
149
143
|
expect(result).toEqual(null);
|
|
150
144
|
});
|
|
151
|
-
it('Should return null when config is invalid',
|
|
152
|
-
|
|
145
|
+
it('Should return null when config is invalid', () => {
|
|
146
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(null, DATA);
|
|
153
147
|
expect(result).toEqual(null);
|
|
154
148
|
});
|
|
155
|
-
it('Should return null when data is invalid',
|
|
156
|
-
|
|
149
|
+
it('Should return null when data is invalid', () => {
|
|
150
|
+
const CONFIG = {
|
|
157
151
|
target: 'arrayOfValues',
|
|
158
152
|
value: 'cde'
|
|
159
153
|
};
|
|
160
|
-
|
|
154
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, null);
|
|
161
155
|
expect(result).toEqual(null);
|
|
162
156
|
});
|
|
163
157
|
});
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
|
|
9
|
+
const Operate = {
|
|
10
10
|
runPageOperations: _runPageOperations.default
|
|
11
11
|
};
|
|
12
12
|
var _default = exports.default = Operate;
|
|
@@ -18,10 +18,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} data The page's formData.
|
|
19
19
|
* @param {function} onChange The page's onChange handler.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const persistValueInFormData = (config, data, onChange) => {
|
|
22
|
+
let value;
|
|
23
23
|
if (config !== null && config !== void 0 && config.field) {
|
|
24
|
-
|
|
24
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
|
|
25
25
|
value = (0, _getSourceData.default)(data, fieldPath);
|
|
26
26
|
} else {
|
|
27
27
|
value = config === null || config === void 0 ? void 0 : config.value;
|
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
var _persistValueInFormData = _interopRequireDefault(require("./persistValueInFormData"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.persistValueInFormData',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.persistValueInFormData', () => {
|
|
6
|
+
let DATA = {
|
|
7
7
|
alpha: 'abc',
|
|
8
8
|
beta: 'charlie',
|
|
9
9
|
charlie: '123'
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
let ON_CHANGE_COUNT = 0;
|
|
12
|
+
const ON_CHANGE = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
target
|
|
15
|
+
} = _ref;
|
|
14
16
|
DATA[target.name] = target.value;
|
|
15
17
|
ON_CHANGE_COUNT += 1;
|
|
16
18
|
};
|
|
17
|
-
beforeEach(
|
|
19
|
+
beforeEach(() => {
|
|
18
20
|
DATA = {
|
|
19
21
|
alpha: 'abc',
|
|
20
22
|
beta: 'charlie',
|
|
@@ -22,8 +24,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
22
24
|
};
|
|
23
25
|
ON_CHANGE_COUNT = 0;
|
|
24
26
|
});
|
|
25
|
-
it('Should trigger a change correctly',
|
|
26
|
-
|
|
27
|
+
it('Should trigger a change correctly', () => {
|
|
28
|
+
const CONFIG = {
|
|
27
29
|
name: 'alpha',
|
|
28
30
|
value: 'bcd'
|
|
29
31
|
};
|
|
@@ -35,8 +37,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
35
37
|
});
|
|
36
38
|
expect(ON_CHANGE_COUNT).toEqual(1);
|
|
37
39
|
});
|
|
38
|
-
it('Should trigger a change correctly with boolean false',
|
|
39
|
-
|
|
40
|
+
it('Should trigger a change correctly with boolean false', () => {
|
|
41
|
+
const CONFIG = {
|
|
40
42
|
name: 'alpha',
|
|
41
43
|
value: false
|
|
42
44
|
};
|
|
@@ -48,8 +50,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
48
50
|
});
|
|
49
51
|
expect(ON_CHANGE_COUNT).toEqual(1);
|
|
50
52
|
});
|
|
51
|
-
it('Should not call onChange when value is unchanged',
|
|
52
|
-
|
|
53
|
+
it('Should not call onChange when value is unchanged', () => {
|
|
54
|
+
const CONFIG = {
|
|
53
55
|
name: 'alpha',
|
|
54
56
|
value: 'abc'
|
|
55
57
|
};
|
|
@@ -61,8 +63,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
61
63
|
});
|
|
62
64
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
63
65
|
});
|
|
64
|
-
it('Should not call onChange if no value or field is given',
|
|
65
|
-
|
|
66
|
+
it('Should not call onChange if no value or field is given', () => {
|
|
67
|
+
const CONFIG = {
|
|
66
68
|
name: 'alpha'
|
|
67
69
|
};
|
|
68
70
|
(0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
|
|
@@ -73,8 +75,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
73
75
|
});
|
|
74
76
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
75
77
|
});
|
|
76
|
-
it('Should not call onChange if no name is given',
|
|
77
|
-
|
|
78
|
+
it('Should not call onChange if no name is given', () => {
|
|
79
|
+
const CONFIG = {
|
|
78
80
|
field: 'charlie'
|
|
79
81
|
};
|
|
80
82
|
(0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
|
|
@@ -85,8 +87,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
85
87
|
});
|
|
86
88
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
87
89
|
});
|
|
88
|
-
it('Should not call onChange if field cannot be found',
|
|
89
|
-
|
|
90
|
+
it('Should not call onChange if field cannot be found', () => {
|
|
91
|
+
const CONFIG = {
|
|
90
92
|
name: 'alpha',
|
|
91
93
|
field: 'delta'
|
|
92
94
|
};
|
|
@@ -98,9 +100,9 @@ describe('Utils.Operate.persistValueInFormData', function () {
|
|
|
98
100
|
});
|
|
99
101
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
100
102
|
});
|
|
101
|
-
it('Should correctly interpolate a field value',
|
|
103
|
+
it('Should correctly interpolate a field value', () => {
|
|
102
104
|
// eslint-disable-next-line no-template-curly-in-string
|
|
103
|
-
|
|
105
|
+
const CONFIG = {
|
|
104
106
|
name: 'alpha',
|
|
105
107
|
field: '${beta}'
|
|
106
108
|
};
|
|
@@ -17,15 +17,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
17
|
|
|
18
18
|
// Local imports.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
const functions = {
|
|
21
21
|
checkValueIsTruthy: _checkValueIsTruthy.default,
|
|
22
22
|
getIndexOfMatchingValueIn: _getIndexOfMatchingValueIn.default,
|
|
23
23
|
persistValueInFormData: _persistValueInFormData.default,
|
|
24
24
|
setValueInFormData: _setValueInFormData.default,
|
|
25
25
|
getFirstOf: _getFirstOf.default
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const doOperation = (config, data, onChange) => {
|
|
28
|
+
const fn = functions[config.function];
|
|
29
29
|
if (typeof fn === 'function') {
|
|
30
30
|
return fn(config, data, onChange);
|
|
31
31
|
}
|
|
@@ -49,15 +49,15 @@ var doOperation = function doOperation(config, data, onChange) {
|
|
|
49
49
|
* @param {function} onChange The page's onChange handler.
|
|
50
50
|
* @returns data with the results of any operations included.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
const runPageOperations = (config, data, onChange) => {
|
|
53
53
|
if (config !== null && config !== void 0 && config.operations && data) {
|
|
54
|
-
config.operations.forEach(
|
|
54
|
+
config.operations.forEach(op => {
|
|
55
55
|
if ((0, _shouldRun.default)(op.run_when, data)) {
|
|
56
|
-
|
|
56
|
+
const result = doOperation(op, data, onChange);
|
|
57
57
|
if (op.output) {
|
|
58
58
|
// Remove array indexers and replace them with dot separators. This ensures that outputPath will
|
|
59
59
|
// work with setDataItem.
|
|
60
|
-
|
|
60
|
+
const outputPath = _copReactComponents.Utils.interpolateString(op.output, data).replace('[', '.').replace(']', '');
|
|
61
61
|
(0, _setDataItem.default)(data, outputPath, result);
|
|
62
62
|
}
|
|
63
63
|
}
|