@ukhomeoffice/cop-react-form-renderer 5.45.2-alpha → 5.48.1-bravo
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 +127 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +131 -101
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +769 -464
- package/dist/components/CollectionPage/CollectionPage.js +58 -66
- package/dist/components/CollectionPage/CollectionPage.test.js +342 -300
- package/dist/components/CollectionSummary/BannerStrip.js +12 -12
- package/dist/components/CollectionSummary/BannerStrip.test.js +59 -63
- package/dist/components/CollectionSummary/CollectionSummary.js +88 -61
- package/dist/components/CollectionSummary/CollectionSummary.test.js +96 -102
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/SummaryCard.js +148 -109
- package/dist/components/CollectionSummary/SummaryCard.scss +1 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +927 -905
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +29 -23
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +73 -61
- package/dist/components/FormComponent/Collection.js +107 -73
- package/dist/components/FormComponent/Collection.test.js +945 -809
- package/dist/components/FormComponent/Container.js +38 -40
- package/dist/components/FormComponent/Container.test.js +345 -314
- package/dist/components/FormComponent/FormComponent.js +70 -67
- package/dist/components/FormComponent/FormComponent.test.js +342 -284
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +80 -65
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +181 -144
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +5 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +47 -11
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +91 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +73 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +40 -44
- package/dist/components/FormRenderer/onPageAction.test.js +206 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +26 -21
- package/dist/components/SummaryList/SummaryList.test.js +166 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +71 -45
- package/dist/components/TaskList/TaskList.test.js +111 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +79 -58
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +72 -32
- package/dist/context/ValidationContext/ValidationContext.test.js +59 -47
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +38 -44
- package/dist/models/TaskStates.js +28 -30
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +60 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +88 -79
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +124 -146
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/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 +18 -9
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +22 -27
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.js +19 -19
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +16 -12
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +30 -29
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +17 -17
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +17 -17
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +95 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +70 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -23
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +7 -7
- package/dist/utils/Condition/meetsAllConditions.test.js +17 -17
- package/dist/utils/Condition/meetsCondition.js +17 -14
- 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 +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +25 -19
- package/dist/utils/Data/getOptions.test.js +20 -20
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getPageTitle.js +2 -2
- package/dist/utils/FormPage/getPageTitle.test.js +22 -22
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +1 -1
- package/dist/utils/FormPage/showFormPage.js +7 -3
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -78
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +77 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +15 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +23 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +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 +20 -22
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +26 -21
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +10 -8
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +35 -0
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +127 -0
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +16 -18
- package/dist/utils/Validate/validateComponent.test.js +146 -167
- package/dist/utils/Validate/validateContainer.js +19 -14
- package/dist/utils/Validate/validateContainer.test.js +45 -49
- package/dist/utils/Validate/validateDate.js +17 -11
- package/dist/utils/Validate/validateDate.test.js +29 -28
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +18 -17
- package/dist/utils/Validate/validatePage.test.js +182 -185
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +14 -7
- package/dist/utils/Validate/validateTime.test.js +14 -14
- package/dist/utils/index.js +9 -7
- 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', function () {
|
|
6
|
+
var DATA = {
|
|
7
7
|
arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
|
|
8
8
|
root: {
|
|
9
9
|
branch: 'leaf'
|
|
@@ -17,147 +17,147 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', () => {
|
|
|
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', function () {
|
|
21
|
+
var CONFIG = {
|
|
22
22
|
target: 'arrayOfValues',
|
|
23
23
|
value: 'cde'
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
var 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', function () {
|
|
29
|
+
var CONFIG = {
|
|
30
30
|
target: 'arrayOfValues',
|
|
31
31
|
field: 'valueToSearchFor'
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
var 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', function () {
|
|
37
37
|
// eslint-disable-next-line no-template-curly-in-string
|
|
38
|
-
|
|
38
|
+
var CONFIG = {
|
|
39
39
|
target: 'arrayOfValues',
|
|
40
40
|
field: '${fieldName}'
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
var 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', function () {
|
|
46
46
|
// eslint-disable-next-line no-template-curly-in-string
|
|
47
|
-
|
|
47
|
+
var CONFIG = {
|
|
48
48
|
target: 'arrayOfValues',
|
|
49
49
|
key: 'root.branch',
|
|
50
50
|
value: 'leaf'
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
var 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', function () {
|
|
56
|
+
var CONFIG = {
|
|
57
57
|
target: 'arrayOfValues',
|
|
58
58
|
value: 'cde',
|
|
59
59
|
cutoff: {
|
|
60
60
|
value: 1
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
var 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', function () {
|
|
68
|
+
var CONFIG = {
|
|
69
69
|
target: 'arrayOfValues',
|
|
70
70
|
value: 'cde',
|
|
71
71
|
cutoff: {
|
|
72
72
|
field: 'cutoffIndex'
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
|
|
75
|
+
var 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', function () {
|
|
80
80
|
// eslint-disable-next-line no-template-curly-in-string
|
|
81
|
-
|
|
81
|
+
var CONFIG = {
|
|
82
82
|
target: 'arrayOfValues',
|
|
83
83
|
value: 'cde',
|
|
84
84
|
cutoff: {
|
|
85
85
|
field: '${cutoffName}'
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
|
-
|
|
88
|
+
var 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', function () {
|
|
93
|
+
var CONFIG = {
|
|
94
94
|
target: 'arrayOfValues',
|
|
95
95
|
value: 'cde',
|
|
96
96
|
ignore: {
|
|
97
97
|
value: 2
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
var 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', function () {
|
|
105
|
+
var CONFIG = {
|
|
106
106
|
target: 'arrayOfValues',
|
|
107
107
|
value: 'cde',
|
|
108
108
|
ignore: {
|
|
109
109
|
field: 'ignoreIndex'
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
-
|
|
112
|
+
var 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', function () {
|
|
117
117
|
// eslint-disable-next-line no-template-curly-in-string
|
|
118
|
-
|
|
118
|
+
var CONFIG = {
|
|
119
119
|
target: 'arrayOfValues',
|
|
120
120
|
value: 'cde',
|
|
121
121
|
ignore: {
|
|
122
122
|
field: '${ignoreName}'
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
-
|
|
125
|
+
var 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', function () {
|
|
130
130
|
// eslint-disable-next-line no-template-curly-in-string
|
|
131
|
-
|
|
131
|
+
var CONFIG = {
|
|
132
132
|
target: '${targetName}',
|
|
133
133
|
value: 'cde'
|
|
134
134
|
};
|
|
135
|
-
|
|
135
|
+
var 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', function () {
|
|
139
|
+
var CONFIG = {
|
|
140
140
|
target: 'notARealTarget',
|
|
141
141
|
value: 'cde'
|
|
142
142
|
};
|
|
143
|
-
|
|
143
|
+
var 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', function () {
|
|
147
|
+
var CONFIG = {};
|
|
148
|
+
var 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', function () {
|
|
152
|
+
var 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', function () {
|
|
156
|
+
var CONFIG = {
|
|
157
157
|
target: 'arrayOfValues',
|
|
158
158
|
value: 'cde'
|
|
159
159
|
};
|
|
160
|
-
|
|
160
|
+
var 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
|
+
var 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
|
+
var persistValueInFormData = function persistValueInFormData(config, data, onChange) {
|
|
22
|
+
var value;
|
|
23
23
|
if (config !== null && config !== void 0 && config.field) {
|
|
24
|
-
|
|
24
|
+
var 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,21 +2,19 @@
|
|
|
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', function () {
|
|
6
|
+
var DATA = {
|
|
7
7
|
alpha: 'abc',
|
|
8
8
|
beta: 'charlie',
|
|
9
9
|
charlie: '123'
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
target
|
|
15
|
-
} = _ref;
|
|
11
|
+
var ON_CHANGE_COUNT = 0;
|
|
12
|
+
var ON_CHANGE = function ON_CHANGE(_ref) {
|
|
13
|
+
var target = _ref.target;
|
|
16
14
|
DATA[target.name] = target.value;
|
|
17
15
|
ON_CHANGE_COUNT += 1;
|
|
18
16
|
};
|
|
19
|
-
beforeEach(()
|
|
17
|
+
beforeEach(function () {
|
|
20
18
|
DATA = {
|
|
21
19
|
alpha: 'abc',
|
|
22
20
|
beta: 'charlie',
|
|
@@ -24,8 +22,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
24
22
|
};
|
|
25
23
|
ON_CHANGE_COUNT = 0;
|
|
26
24
|
});
|
|
27
|
-
it('Should trigger a change correctly', ()
|
|
28
|
-
|
|
25
|
+
it('Should trigger a change correctly', function () {
|
|
26
|
+
var CONFIG = {
|
|
29
27
|
name: 'alpha',
|
|
30
28
|
value: 'bcd'
|
|
31
29
|
};
|
|
@@ -37,8 +35,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
37
35
|
});
|
|
38
36
|
expect(ON_CHANGE_COUNT).toEqual(1);
|
|
39
37
|
});
|
|
40
|
-
it('Should trigger a change correctly with boolean false', ()
|
|
41
|
-
|
|
38
|
+
it('Should trigger a change correctly with boolean false', function () {
|
|
39
|
+
var CONFIG = {
|
|
42
40
|
name: 'alpha',
|
|
43
41
|
value: false
|
|
44
42
|
};
|
|
@@ -50,8 +48,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
50
48
|
});
|
|
51
49
|
expect(ON_CHANGE_COUNT).toEqual(1);
|
|
52
50
|
});
|
|
53
|
-
it('Should not call onChange when value is unchanged', ()
|
|
54
|
-
|
|
51
|
+
it('Should not call onChange when value is unchanged', function () {
|
|
52
|
+
var CONFIG = {
|
|
55
53
|
name: 'alpha',
|
|
56
54
|
value: 'abc'
|
|
57
55
|
};
|
|
@@ -63,8 +61,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
63
61
|
});
|
|
64
62
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
65
63
|
});
|
|
66
|
-
it('Should not call onChange if no value or field is given', ()
|
|
67
|
-
|
|
64
|
+
it('Should not call onChange if no value or field is given', function () {
|
|
65
|
+
var CONFIG = {
|
|
68
66
|
name: 'alpha'
|
|
69
67
|
};
|
|
70
68
|
(0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
|
|
@@ -75,8 +73,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
75
73
|
});
|
|
76
74
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
77
75
|
});
|
|
78
|
-
it('Should not call onChange if no name is given', ()
|
|
79
|
-
|
|
76
|
+
it('Should not call onChange if no name is given', function () {
|
|
77
|
+
var CONFIG = {
|
|
80
78
|
field: 'charlie'
|
|
81
79
|
};
|
|
82
80
|
(0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
|
|
@@ -87,8 +85,8 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
87
85
|
});
|
|
88
86
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
89
87
|
});
|
|
90
|
-
it('Should not call onChange if field cannot be found', ()
|
|
91
|
-
|
|
88
|
+
it('Should not call onChange if field cannot be found', function () {
|
|
89
|
+
var CONFIG = {
|
|
92
90
|
name: 'alpha',
|
|
93
91
|
field: 'delta'
|
|
94
92
|
};
|
|
@@ -100,9 +98,9 @@ describe('Utils.Operate.persistValueInFormData', () => {
|
|
|
100
98
|
});
|
|
101
99
|
expect(ON_CHANGE_COUNT).toEqual(0);
|
|
102
100
|
});
|
|
103
|
-
it('Should correctly interpolate a field value', ()
|
|
101
|
+
it('Should correctly interpolate a field value', function () {
|
|
104
102
|
// eslint-disable-next-line no-template-curly-in-string
|
|
105
|
-
|
|
103
|
+
var CONFIG = {
|
|
106
104
|
name: 'alpha',
|
|
107
105
|
field: '${beta}'
|
|
108
106
|
};
|
|
@@ -17,15 +17,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
17
|
|
|
18
18
|
// Local imports.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
var 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
|
+
var doOperation = function doOperation(config, data, onChange) {
|
|
28
|
+
var fn = functions[config.function];
|
|
29
29
|
if (typeof fn === 'function') {
|
|
30
30
|
return fn(config, data, onChange);
|
|
31
31
|
}
|
|
@@ -49,15 +49,15 @@ const 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
|
+
var runPageOperations = function runPageOperations(config, data, onChange) {
|
|
53
53
|
if (config !== null && config !== void 0 && config.operations && data) {
|
|
54
|
-
config.operations.forEach(op
|
|
54
|
+
config.operations.forEach(function (op) {
|
|
55
55
|
if ((0, _shouldRun.default)(op.run_when, data)) {
|
|
56
|
-
|
|
56
|
+
var 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
|
+
var outputPath = _copReactComponents.Utils.interpolateString(op.output, data).replace('[', '.').replace(']', '');
|
|
61
61
|
(0, _setDataItem.default)(data, outputPath, result);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -2,35 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
+
describe('Utils.Operate.runPageOperations', function () {
|
|
12
|
+
var DATA = {
|
|
7
13
|
alpha: 'abc',
|
|
8
14
|
bravo: ['bcd', 'cde', 'charlie'],
|
|
9
15
|
charlie: 'def',
|
|
10
16
|
delta: 'root',
|
|
11
17
|
array: ['123', '234', '456']
|
|
12
18
|
};
|
|
13
|
-
it('Should return an empty object when no operations are specified', ()
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
it('Should return an empty object when no operations are specified', function () {
|
|
20
|
+
var PAGE = {};
|
|
21
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
16
22
|
expect(result).toEqual(DATA);
|
|
17
23
|
});
|
|
18
|
-
it('Should handle a single operation correctly', ()
|
|
19
|
-
|
|
24
|
+
it('Should handle a single operation correctly', function () {
|
|
25
|
+
var PAGE = {
|
|
20
26
|
operations: [{
|
|
21
27
|
output: 'firstOpResult',
|
|
22
28
|
function: 'setValueInFormData',
|
|
23
29
|
field: 'alpha'
|
|
24
30
|
}]
|
|
25
31
|
};
|
|
26
|
-
|
|
27
|
-
expect(result).toEqual({
|
|
28
|
-
...DATA,
|
|
32
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
33
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
|
|
29
34
|
firstOpResult: 'abc'
|
|
30
|
-
});
|
|
35
|
+
}));
|
|
31
36
|
});
|
|
32
|
-
it('Should handle a multiple operations correctly', ()
|
|
33
|
-
|
|
37
|
+
it('Should handle a multiple operations correctly', function () {
|
|
38
|
+
var PAGE = {
|
|
34
39
|
operations: [{
|
|
35
40
|
output: 'firstOpResult',
|
|
36
41
|
function: 'setValueInFormData',
|
|
@@ -41,15 +46,14 @@ describe('Utils.Operate.runPageOperations', () => {
|
|
|
41
46
|
field: 'bravo[1]'
|
|
42
47
|
}]
|
|
43
48
|
};
|
|
44
|
-
|
|
45
|
-
expect(result).toEqual({
|
|
46
|
-
...DATA,
|
|
49
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
50
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
|
|
47
51
|
firstOpResult: 'abc',
|
|
48
52
|
secondOpResult: 'cde'
|
|
49
|
-
});
|
|
53
|
+
}));
|
|
50
54
|
});
|
|
51
|
-
it('Should handle chained operations correctly', ()
|
|
52
|
-
|
|
55
|
+
it('Should handle chained operations correctly', function () {
|
|
56
|
+
var PAGE = {
|
|
53
57
|
operations: [{
|
|
54
58
|
output: 'firstOpResult',
|
|
55
59
|
function: 'setValueInFormData',
|
|
@@ -61,15 +65,14 @@ describe('Utils.Operate.runPageOperations', () => {
|
|
|
61
65
|
field: '${firstOpResult}'
|
|
62
66
|
}]
|
|
63
67
|
};
|
|
64
|
-
|
|
65
|
-
expect(result).toEqual({
|
|
66
|
-
...DATA,
|
|
68
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
69
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
|
|
67
70
|
firstOpResult: 'charlie',
|
|
68
71
|
secondOpResult: 'def'
|
|
69
|
-
});
|
|
72
|
+
}));
|
|
70
73
|
});
|
|
71
|
-
it('Should handle an interpolated output string correctly', ()
|
|
72
|
-
|
|
74
|
+
it('Should handle an interpolated output string correctly', function () {
|
|
75
|
+
var PAGE = {
|
|
73
76
|
operations: [{
|
|
74
77
|
function: 'setValueInFormData',
|
|
75
78
|
value: 'leaf',
|
|
@@ -77,28 +80,26 @@ describe('Utils.Operate.runPageOperations', () => {
|
|
|
77
80
|
output: '${delta}.trunk.branch'
|
|
78
81
|
}]
|
|
79
82
|
};
|
|
80
|
-
|
|
81
|
-
expect(result).toEqual({
|
|
82
|
-
...DATA,
|
|
83
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
84
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
|
|
83
85
|
root: {
|
|
84
86
|
trunk: {
|
|
85
87
|
branch: 'leaf'
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
|
-
});
|
|
90
|
+
}));
|
|
89
91
|
});
|
|
90
|
-
it('Should handle an output string with array indeces in', ()
|
|
91
|
-
|
|
92
|
+
it('Should handle an output string with array indeces in', function () {
|
|
93
|
+
var PAGE = {
|
|
92
94
|
operations: [{
|
|
93
95
|
function: 'setValueInFormData',
|
|
94
96
|
value: '000',
|
|
95
97
|
output: 'array[1]'
|
|
96
98
|
}]
|
|
97
99
|
};
|
|
98
|
-
|
|
99
|
-
expect(result).toEqual({
|
|
100
|
-
...DATA,
|
|
100
|
+
var result = (0, _runPageOperations.default)(PAGE, DATA);
|
|
101
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
|
|
101
102
|
array: ['123', '000', '456']
|
|
102
|
-
});
|
|
103
|
+
}));
|
|
103
104
|
});
|
|
104
105
|
});
|
|
@@ -11,9 +11,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
var setValueInFormData = function setValueInFormData(config, data) {
|
|
15
15
|
if (config !== null && config !== void 0 && config.field) {
|
|
16
|
-
|
|
16
|
+
var 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', function () {
|
|
6
|
+
var 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', function () {
|
|
12
|
+
var CONFIG = {
|
|
13
13
|
value: '2'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
var 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', function () {
|
|
19
|
+
var CONFIG = {
|
|
20
20
|
field: 'a'
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
var 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', function () {
|
|
26
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
27
|
-
|
|
27
|
+
var CONFIG = {
|
|
28
28
|
field: 'b[${indexOfThree}]'
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
var 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', function () {
|
|
34
|
+
var 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', function () {
|
|
38
|
+
var CONFIG = {
|
|
39
39
|
field: 'a'
|
|
40
40
|
};
|
|
41
|
-
|
|
41
|
+
var 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
|
+
var shouldRun = function shouldRun(config, data) {
|
|
22
22
|
if (config !== null && config !== void 0 && config.condition) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
var configuration = config;
|
|
24
|
+
var fieldPath = _copReactComponents.Utils.interpolateString(configuration.field, data);
|
|
25
|
+
var 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
|
+
var lastPath = "".concat(fieldPath, "LastValue");
|
|
31
|
+
var 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.
|