@ukhomeoffice/cop-react-form-renderer 5.45.1 → 5.45.2-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 +464 -769
- package/dist/components/CollectionPage/CollectionPage.js +66 -58
- package/dist/components/CollectionPage/CollectionPage.test.js +300 -342
- package/dist/components/CollectionSummary/BannerStrip.js +12 -12
- package/dist/components/CollectionSummary/BannerStrip.test.js +63 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +60 -75
- package/dist/components/CollectionSummary/CollectionSummary.test.js +102 -96
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/SummaryCard.js +93 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +902 -924
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +23 -29
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +61 -73
- package/dist/components/FormComponent/Collection.js +73 -107
- package/dist/components/FormComponent/Collection.test.js +809 -945
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +67 -70
- package/dist/components/FormComponent/FormComponent.test.js +284 -342
- 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 +142 -178
- 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 +9 -9
- 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 +97 -91
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -73
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +43 -39
- package/dist/components/FormRenderer/onPageAction.test.js +223 -206
- 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 +58 -79
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +32 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +47 -59
- 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 +30 -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 -60
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +79 -88
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +146 -124
- 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/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +24 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +1 -1
- 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 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +9 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +27 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +12 -16
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +29 -30
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +17 -17
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +17 -17
- 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 -70
- 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 +7 -7
- package/dist/utils/Condition/meetsAllConditions.test.js +17 -17
- package/dist/utils/Condition/meetsCondition.js +14 -17
- package/dist/utils/Condition/meetsCondition.test.js +376 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +19 -25
- package/dist/utils/Data/getOptions.test.js +20 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/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/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/getPageTitle.js +2 -2
- package/dist/utils/FormPage/getPageTitle.test.js +22 -22
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +1 -1
- 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 +78 -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 -77
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -15
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -23
- 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 -46
- 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 -26
- 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/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 +14 -19
- package/dist/utils/Validate/validateContainer.test.js +49 -45
- package/dist/utils/Validate/validateDate.js +11 -17
- package/dist/utils/Validate/validateDate.test.js +28 -29
- 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 +17 -18
- package/dist/utils/Validate/validatePage.test.js +185 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +7 -14
- package/dist/utils/Validate/validateTime.test.js +14 -14
- package/dist/utils/index.js +7 -9
- package/package.json +1 -1
|
@@ -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,147 @@ 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
66
|
|
|
67
|
-
it('Should handle a cutoff field being specified',
|
|
68
|
-
|
|
67
|
+
it('Should handle a cutoff field being specified', () => {
|
|
68
|
+
const CONFIG = {
|
|
69
69
|
target: 'arrayOfValues',
|
|
70
70
|
value: 'cde',
|
|
71
71
|
cutoff: {
|
|
72
72
|
field: 'cutoffIndex'
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
76
76
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
77
77
|
});
|
|
78
78
|
|
|
79
|
-
it('Should handle interpolated string for cutoff.field',
|
|
79
|
+
it('Should handle interpolated string for cutoff.field', () => {
|
|
80
80
|
// eslint-disable-next-line no-template-curly-in-string
|
|
81
|
-
|
|
81
|
+
const CONFIG = {
|
|
82
82
|
target: 'arrayOfValues',
|
|
83
83
|
value: 'cde',
|
|
84
84
|
cutoff: {
|
|
85
85
|
field: '${cutoffName}'
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
|
-
|
|
88
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
89
89
|
expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
-
it('Should handle an ignore value being specified',
|
|
93
|
-
|
|
92
|
+
it('Should handle an ignore value being specified', () => {
|
|
93
|
+
const CONFIG = {
|
|
94
94
|
target: 'arrayOfValues',
|
|
95
95
|
value: 'cde',
|
|
96
96
|
ignore: {
|
|
97
97
|
value: 2
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
101
101
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
-
it('Should handle an ignore field being specified',
|
|
105
|
-
|
|
104
|
+
it('Should handle an ignore field being specified', () => {
|
|
105
|
+
const CONFIG = {
|
|
106
106
|
target: 'arrayOfValues',
|
|
107
107
|
value: 'cde',
|
|
108
108
|
ignore: {
|
|
109
109
|
field: 'ignoreIndex'
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
-
|
|
112
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
113
113
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
114
114
|
});
|
|
115
115
|
|
|
116
|
-
it('Should handle interpolated string for ignore.field',
|
|
116
|
+
it('Should handle interpolated string for ignore.field', () => {
|
|
117
117
|
// eslint-disable-next-line no-template-curly-in-string
|
|
118
|
-
|
|
118
|
+
const CONFIG = {
|
|
119
119
|
target: 'arrayOfValues',
|
|
120
120
|
value: 'cde',
|
|
121
121
|
ignore: {
|
|
122
122
|
field: '${ignoreName}'
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
-
|
|
125
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
126
126
|
expect(result).toEqual(null); // Should ignore the matching value.
|
|
127
127
|
});
|
|
128
128
|
|
|
129
|
-
it('Should handle interpolated string for target',
|
|
129
|
+
it('Should handle interpolated string for target', () => {
|
|
130
130
|
// eslint-disable-next-line no-template-curly-in-string
|
|
131
|
-
|
|
131
|
+
const CONFIG = {
|
|
132
132
|
target: '${targetName}',
|
|
133
133
|
value: 'cde'
|
|
134
134
|
};
|
|
135
|
-
|
|
135
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
136
136
|
expect(result).toEqual('2');
|
|
137
137
|
});
|
|
138
|
-
it('Should return null when the target does not exist',
|
|
139
|
-
|
|
138
|
+
it('Should return null when the target does not exist', () => {
|
|
139
|
+
const CONFIG = {
|
|
140
140
|
target: 'notARealTarget',
|
|
141
141
|
value: 'cde'
|
|
142
142
|
};
|
|
143
|
-
|
|
143
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
144
144
|
expect(result).toEqual(null);
|
|
145
145
|
});
|
|
146
|
-
it('Should return null when config is missing fields',
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
it('Should return null when config is missing fields', () => {
|
|
147
|
+
const CONFIG = {};
|
|
148
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
|
|
149
149
|
expect(result).toEqual(null);
|
|
150
150
|
});
|
|
151
|
-
it('Should return null when config is invalid',
|
|
152
|
-
|
|
151
|
+
it('Should return null when config is invalid', () => {
|
|
152
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(null, DATA);
|
|
153
153
|
expect(result).toEqual(null);
|
|
154
154
|
});
|
|
155
|
-
it('Should return null when data is invalid',
|
|
156
|
-
|
|
155
|
+
it('Should return null when data is invalid', () => {
|
|
156
|
+
const CONFIG = {
|
|
157
157
|
target: 'arrayOfValues',
|
|
158
158
|
value: 'cde'
|
|
159
159
|
};
|
|
160
|
-
|
|
160
|
+
const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, null);
|
|
161
161
|
expect(result).toEqual(null);
|
|
162
162
|
});
|
|
163
163
|
});
|
|
@@ -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
|
}
|
|
@@ -2,40 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
-
describe('Utils.Operate.runPageOperations', function () {
|
|
12
|
-
var DATA = {
|
|
5
|
+
describe('Utils.Operate.runPageOperations', () => {
|
|
6
|
+
const DATA = {
|
|
13
7
|
alpha: 'abc',
|
|
14
8
|
bravo: ['bcd', 'cde', 'charlie'],
|
|
15
9
|
charlie: 'def',
|
|
16
10
|
delta: 'root',
|
|
17
11
|
array: ['123', '234', '456']
|
|
18
12
|
};
|
|
19
|
-
it('Should return an empty object when no operations are specified',
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
it('Should return an empty object when no operations are specified', () => {
|
|
14
|
+
const PAGE = {};
|
|
15
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
22
16
|
expect(result).toEqual(DATA);
|
|
23
17
|
});
|
|
24
|
-
it('Should handle a single operation correctly',
|
|
25
|
-
|
|
18
|
+
it('Should handle a single operation correctly', () => {
|
|
19
|
+
const PAGE = {
|
|
26
20
|
operations: [{
|
|
27
21
|
output: 'firstOpResult',
|
|
28
22
|
function: 'setValueInFormData',
|
|
29
23
|
field: 'alpha'
|
|
30
24
|
}]
|
|
31
25
|
};
|
|
32
|
-
|
|
33
|
-
expect(result).toEqual(
|
|
26
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
27
|
+
expect(result).toEqual({
|
|
28
|
+
...DATA,
|
|
34
29
|
firstOpResult: 'abc'
|
|
35
|
-
})
|
|
30
|
+
});
|
|
36
31
|
});
|
|
37
|
-
it('Should handle a multiple operations correctly',
|
|
38
|
-
|
|
32
|
+
it('Should handle a multiple operations correctly', () => {
|
|
33
|
+
const PAGE = {
|
|
39
34
|
operations: [{
|
|
40
35
|
output: 'firstOpResult',
|
|
41
36
|
function: 'setValueInFormData',
|
|
@@ -46,14 +41,15 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
46
41
|
field: 'bravo[1]'
|
|
47
42
|
}]
|
|
48
43
|
};
|
|
49
|
-
|
|
50
|
-
expect(result).toEqual(
|
|
44
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
45
|
+
expect(result).toEqual({
|
|
46
|
+
...DATA,
|
|
51
47
|
firstOpResult: 'abc',
|
|
52
48
|
secondOpResult: 'cde'
|
|
53
|
-
})
|
|
49
|
+
});
|
|
54
50
|
});
|
|
55
|
-
it('Should handle chained operations correctly',
|
|
56
|
-
|
|
51
|
+
it('Should handle chained operations correctly', () => {
|
|
52
|
+
const PAGE = {
|
|
57
53
|
operations: [{
|
|
58
54
|
output: 'firstOpResult',
|
|
59
55
|
function: 'setValueInFormData',
|
|
@@ -65,14 +61,15 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
65
61
|
field: '${firstOpResult}'
|
|
66
62
|
}]
|
|
67
63
|
};
|
|
68
|
-
|
|
69
|
-
expect(result).toEqual(
|
|
64
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
65
|
+
expect(result).toEqual({
|
|
66
|
+
...DATA,
|
|
70
67
|
firstOpResult: 'charlie',
|
|
71
68
|
secondOpResult: 'def'
|
|
72
|
-
})
|
|
69
|
+
});
|
|
73
70
|
});
|
|
74
|
-
it('Should handle an interpolated output string correctly',
|
|
75
|
-
|
|
71
|
+
it('Should handle an interpolated output string correctly', () => {
|
|
72
|
+
const PAGE = {
|
|
76
73
|
operations: [{
|
|
77
74
|
function: 'setValueInFormData',
|
|
78
75
|
value: 'leaf',
|
|
@@ -80,26 +77,28 @@ describe('Utils.Operate.runPageOperations', function () {
|
|
|
80
77
|
output: '${delta}.trunk.branch'
|
|
81
78
|
}]
|
|
82
79
|
};
|
|
83
|
-
|
|
84
|
-
expect(result).toEqual(
|
|
80
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
81
|
+
expect(result).toEqual({
|
|
82
|
+
...DATA,
|
|
85
83
|
root: {
|
|
86
84
|
trunk: {
|
|
87
85
|
branch: 'leaf'
|
|
88
86
|
}
|
|
89
87
|
}
|
|
90
|
-
})
|
|
88
|
+
});
|
|
91
89
|
});
|
|
92
|
-
it('Should handle an output string with array indeces in',
|
|
93
|
-
|
|
90
|
+
it('Should handle an output string with array indeces in', () => {
|
|
91
|
+
const PAGE = {
|
|
94
92
|
operations: [{
|
|
95
93
|
function: 'setValueInFormData',
|
|
96
94
|
value: '000',
|
|
97
95
|
output: 'array[1]'
|
|
98
96
|
}]
|
|
99
97
|
};
|
|
100
|
-
|
|
101
|
-
expect(result).toEqual(
|
|
98
|
+
const result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
99
|
+
expect(result).toEqual({
|
|
100
|
+
...DATA,
|
|
102
101
|
array: ['123', '000', '456']
|
|
103
|
-
})
|
|
102
|
+
});
|
|
104
103
|
});
|
|
105
104
|
});
|
|
@@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const setValueInFormData = (config, data) => {
|
|
15
15
|
if (config !== null && config !== void 0 && config.field) {
|
|
16
|
-
|
|
16
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
|
|
17
17
|
return (0, _getSourceData.default)(data, fieldPath) || null;
|
|
18
18
|
}
|
|
19
19
|
return (config === null || config === void 0 ? void 0 : config.value) || null;
|
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
var _setValueInFormData = _interopRequireDefault(require("./setValueInFormData"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Utils.Operate.setValueInFormData',
|
|
6
|
-
|
|
5
|
+
describe('Utils.Operate.setValueInFormData', () => {
|
|
6
|
+
const DATA = {
|
|
7
7
|
a: '1',
|
|
8
8
|
b: ['2', '3'],
|
|
9
9
|
indexOfThree: 1
|
|
10
10
|
};
|
|
11
|
-
it('Should return the value provided in config if no field is specified',
|
|
12
|
-
|
|
11
|
+
it('Should return the value provided in config if no field is specified', () => {
|
|
12
|
+
const CONFIG = {
|
|
13
13
|
value: '2'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
16
16
|
expect(result).toEqual(CONFIG.value);
|
|
17
17
|
});
|
|
18
|
-
it('Should return the value of the field given in config, if it exists',
|
|
19
|
-
|
|
18
|
+
it('Should return the value of the field given in config, if it exists', () => {
|
|
19
|
+
const CONFIG = {
|
|
20
20
|
field: 'a'
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
23
23
|
expect(result).toEqual(DATA.a);
|
|
24
24
|
});
|
|
25
|
-
it('Should handle interpolated field strings',
|
|
25
|
+
it('Should handle interpolated field strings', () => {
|
|
26
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
27
|
-
|
|
27
|
+
const CONFIG = {
|
|
28
28
|
field: 'b[${indexOfThree}]'
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
const result = (0, _setValueInFormData.default)(CONFIG, DATA);
|
|
31
31
|
expect(result).toEqual(DATA.b[1]);
|
|
32
32
|
});
|
|
33
|
-
it('Should return null when an invalid config is used',
|
|
34
|
-
|
|
33
|
+
it('Should return null when an invalid config is used', () => {
|
|
34
|
+
const result = (0, _setValueInFormData.default)(null, DATA);
|
|
35
35
|
expect(result).toEqual(null);
|
|
36
36
|
});
|
|
37
|
-
it('Should return null when invalid data is used',
|
|
38
|
-
|
|
37
|
+
it('Should return null when invalid data is used', () => {
|
|
38
|
+
const CONFIG = {
|
|
39
39
|
field: 'a'
|
|
40
40
|
};
|
|
41
|
-
|
|
41
|
+
const result = (0, _setValueInFormData.default)(CONFIG, null);
|
|
42
42
|
expect(result).toEqual(null);
|
|
43
43
|
});
|
|
44
44
|
});
|
|
@@ -18,17 +18,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} data The page's formData.
|
|
19
19
|
* @returns
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
const shouldRun = (config, data) => {
|
|
22
22
|
if (config !== null && config !== void 0 && config.condition) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const configuration = config;
|
|
24
|
+
const fieldPath = _copReactComponents.Utils.interpolateString(configuration.field, data);
|
|
25
|
+
const fieldValue = (0, _getSourceData.default)(data, fieldPath);
|
|
26
26
|
switch (configuration.condition) {
|
|
27
27
|
// Only run the operation if a given field's value has changed.
|
|
28
28
|
case 'changes':
|
|
29
29
|
{
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const lastPath = "".concat(fieldPath, "LastValue");
|
|
31
|
+
const lastValue = configuration[lastPath] || null;
|
|
32
32
|
if (lastValue === null) {
|
|
33
33
|
// If there isn't a last value then we assume
|
|
34
34
|
// that this is the first render.
|