@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CheckYourAnswers/Answer.js +22 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
- package/dist/components/CollectionPage/CollectionPage.js +63 -73
- package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
- package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
- package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +52 -46
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +152 -110
- package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
- package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
- package/dist/components/FormComponent/Collection.js +108 -74
- package/dist/components/FormComponent/Collection.test.js +1081 -909
- package/dist/components/FormComponent/Container.js +39 -40
- package/dist/components/FormComponent/Container.test.js +412 -312
- package/dist/components/FormComponent/FormComponent.js +72 -69
- package/dist/components/FormComponent/FormComponent.test.js +414 -353
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +80 -65
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +180 -143
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +39 -43
- package/dist/components/FormRenderer/onPageAction.test.js +208 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +34 -21
- package/dist/components/SummaryList/SummaryList.scss +15 -0
- package/dist/components/SummaryList/SummaryList.test.js +226 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +92 -49
- package/dist/components/TaskList/TaskList.scss +24 -0
- package/dist/components/TaskList/TaskList.test.js +255 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +80 -57
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +94 -43
- package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
- package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
- package/dist/utils/Component/getComponent.js +94 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +6 -1
- package/dist/utils/Component/optionIsSelected.test.js +35 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +25 -16
- package/dist/utils/Condition/meetsCondition.test.js +402 -402
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +30 -24
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +4 -2
- package/dist/utils/FormPage/showFormPage.js +7 -3
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -77
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +16 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
- package/dist/utils/Operate/getLength.js +50 -0
- package/dist/utils/Operate/getLength.test.js +89 -0
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
- package/dist/utils/Operate/runPageOperations.js +9 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +27 -21
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +21 -18
- package/dist/utils/Validate/validateComponent.test.js +176 -166
- package/dist/utils/Validate/validateContainer.js +20 -15
- package/dist/utils/Validate/validateContainer.test.js +52 -58
- package/dist/utils/Validate/validateDate.js +21 -15
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +22 -19
- package/dist/utils/Validate/validatePage.test.js +203 -215
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +26 -11
- package/dist/utils/Validate/validateTime.test.js +62 -16
- package/dist/utils/index.js +9 -7
- package/package.json +2 -2
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
|
@@ -5,28 +5,28 @@ var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDat
|
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
6
|
// Local imports
|
|
7
7
|
|
|
8
|
-
describe('utils', ()
|
|
9
|
-
describe('Data', ()
|
|
10
|
-
describe('setupRefDataUrlForComponent', ()
|
|
11
|
-
|
|
8
|
+
describe('utils', function () {
|
|
9
|
+
describe('Data', function () {
|
|
10
|
+
describe('setupRefDataUrlForComponent', function () {
|
|
11
|
+
var DATA = {
|
|
12
12
|
urls: {
|
|
13
13
|
refData: '/ref-data'
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
it('can handle a null component', ()
|
|
16
|
+
it('can handle a null component', function () {
|
|
17
17
|
expect((0, _setupRefDataUrlForComponent.default)(null, DATA)).toBeNull();
|
|
18
18
|
});
|
|
19
|
-
it('can handle an undefined component', ()
|
|
19
|
+
it('can handle an undefined component', function () {
|
|
20
20
|
expect((0, _setupRefDataUrlForComponent.default)(undefined, DATA)).toBeUndefined();
|
|
21
21
|
});
|
|
22
|
-
it('can handle a component with no data property', ()
|
|
23
|
-
|
|
22
|
+
it('can handle a component with no data property', function () {
|
|
23
|
+
var COMPONENT = {
|
|
24
24
|
id: 'component'
|
|
25
25
|
};
|
|
26
26
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
27
27
|
});
|
|
28
|
-
it('can handle a component with no data.url property', ()
|
|
29
|
-
|
|
28
|
+
it('can handle a component with no data.url property', function () {
|
|
29
|
+
var COMPONENT = {
|
|
30
30
|
id: 'component',
|
|
31
31
|
data: {
|
|
32
32
|
options: []
|
|
@@ -34,8 +34,8 @@ describe('utils', () => {
|
|
|
34
34
|
};
|
|
35
35
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
36
36
|
});
|
|
37
|
-
it('should appropriately update the component URL', ()
|
|
38
|
-
|
|
37
|
+
it('should appropriately update the component URL', function () {
|
|
38
|
+
var COMPONENT = {
|
|
39
39
|
id: 'component',
|
|
40
40
|
// eslint-disable-next-line no-template-curly-in-string
|
|
41
41
|
data: {
|
|
@@ -49,8 +49,8 @@ describe('utils', () => {
|
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
|
-
it('should leave a URL alone that does not require replacement', ()
|
|
53
|
-
|
|
52
|
+
it('should leave a URL alone that does not require replacement', function () {
|
|
53
|
+
var COMPONENT = {
|
|
54
54
|
id: 'component',
|
|
55
55
|
data: {
|
|
56
56
|
url: '/somewhere-else/v1/teams'
|
|
@@ -63,8 +63,8 @@ describe('utils', () => {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
-
it('should appropriately handle a missing value in the data', ()
|
|
67
|
-
|
|
66
|
+
it('should appropriately handle a missing value in the data', function () {
|
|
67
|
+
var COMPONENT = {
|
|
68
68
|
id: 'component',
|
|
69
69
|
// eslint-disable-next-line no-template-curly-in-string
|
|
70
70
|
data: {
|
|
@@ -78,15 +78,15 @@ describe('utils', () => {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
-
it('should appropriately update the component URLs within a container', ()
|
|
82
|
-
|
|
81
|
+
it('should appropriately update the component URLs within a container', function () {
|
|
82
|
+
var COMPONENT = {
|
|
83
83
|
id: 'component',
|
|
84
84
|
// eslint-disable-next-line no-template-curly-in-string
|
|
85
85
|
data: {
|
|
86
86
|
url: '${urls.refData}/v1/teams'
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
var CONTAINER = {
|
|
90
90
|
id: 'container',
|
|
91
91
|
type: _models.ComponentTypes.CONTAINER,
|
|
92
92
|
components: [COMPONENT]
|
|
@@ -102,15 +102,15 @@ describe('utils', () => {
|
|
|
102
102
|
}]
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
|
-
it('should appropriately update the component URLs within a collection', ()
|
|
106
|
-
|
|
105
|
+
it('should appropriately update the component URLs within a collection', function () {
|
|
106
|
+
var COMPONENT = {
|
|
107
107
|
id: 'component',
|
|
108
108
|
// eslint-disable-next-line no-template-curly-in-string
|
|
109
109
|
data: {
|
|
110
110
|
url: '${urls.refData}/v1/teams'
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
|
-
|
|
113
|
+
var COLLECTION = {
|
|
114
114
|
id: 'container',
|
|
115
115
|
type: _models.ComponentTypes.COLLECTION,
|
|
116
116
|
item: [COMPONENT]
|
|
@@ -126,8 +126,8 @@ describe('utils', () => {
|
|
|
126
126
|
}]
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
|
-
it('should not update the component URL when skipUrlInterpolation prop is true', ()
|
|
130
|
-
|
|
129
|
+
it('should not update the component URL when skipUrlInterpolation prop is true', function () {
|
|
130
|
+
var COMPONENT = {
|
|
131
131
|
id: 'component',
|
|
132
132
|
data: {
|
|
133
133
|
// eslint-disable-next-line no-template-curly-in-string
|
|
@@ -6,20 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _ = _interopRequireDefault(require(".."));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
9
15
|
/**
|
|
10
16
|
* Apply properties to a page based on whether certain conditions are met.
|
|
11
17
|
* @param {object} page The page object.
|
|
12
18
|
* @returns A copy of the page object with any passing conditional
|
|
13
19
|
* properties applied.
|
|
14
20
|
*/
|
|
15
|
-
|
|
21
|
+
var applyConditionalProperties = function applyConditionalProperties(page) {
|
|
16
22
|
if (!page.conditionalProperties) {
|
|
17
23
|
return page;
|
|
18
24
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
page.conditionalProperties.forEach(entry => {
|
|
25
|
+
var pageWithProperties = _objectSpread({}, page);
|
|
26
|
+
page.conditionalProperties.forEach(function (entry) {
|
|
23
27
|
if (_.default.Condition.met(entry.condition, page.formData[entry.condition.field])) {
|
|
24
28
|
pageWithProperties = Object.assign(pageWithProperties, entry.properties);
|
|
25
29
|
}
|
|
@@ -2,18 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
var _applyConditionalProperties = _interopRequireDefault(require("./applyConditionalProperties"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
|
|
11
|
+
describe('utils.FormPage.applyConditionalProperties', function () {
|
|
12
|
+
it('should not change the page if there are no conditional properties', function () {
|
|
13
|
+
var PAGE = {
|
|
10
14
|
id: 'testPage'
|
|
11
15
|
};
|
|
12
|
-
|
|
16
|
+
var result = (0, _applyConditionalProperties.default)(PAGE);
|
|
13
17
|
expect(result).toEqual(PAGE);
|
|
14
18
|
});
|
|
15
|
-
it('should not apply properties with conditions that have not been met', ()
|
|
16
|
-
|
|
19
|
+
it('should not apply properties with conditions that have not been met', function () {
|
|
20
|
+
var PAGE = {
|
|
17
21
|
id: 'testPage',
|
|
18
22
|
conditionalProperties: [{
|
|
19
23
|
condition: {
|
|
@@ -29,11 +33,11 @@ describe('utils.FormPage.applyConditionalProperties', () => {
|
|
|
29
33
|
alpha: '012'
|
|
30
34
|
}
|
|
31
35
|
};
|
|
32
|
-
|
|
36
|
+
var result = (0, _applyConditionalProperties.default)(PAGE);
|
|
33
37
|
expect(result).toEqual(PAGE);
|
|
34
38
|
});
|
|
35
|
-
it('should apply properties with conditions that have been met', ()
|
|
36
|
-
|
|
39
|
+
it('should apply properties with conditions that have been met', function () {
|
|
40
|
+
var PAGE = {
|
|
37
41
|
id: 'testPage',
|
|
38
42
|
conditionalProperties: [{
|
|
39
43
|
condition: {
|
|
@@ -49,10 +53,9 @@ describe('utils.FormPage.applyConditionalProperties', () => {
|
|
|
49
53
|
alpha: '123'
|
|
50
54
|
}
|
|
51
55
|
};
|
|
52
|
-
|
|
53
|
-
expect(result).toEqual({
|
|
54
|
-
...PAGE,
|
|
56
|
+
var result = (0, _applyConditionalProperties.default)(PAGE);
|
|
57
|
+
expect(result).toEqual(_objectSpread(_objectSpread({}, PAGE), {}, {
|
|
55
58
|
beta: '456'
|
|
56
|
-
});
|
|
59
|
+
}));
|
|
57
60
|
});
|
|
58
61
|
});
|
|
@@ -32,15 +32,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
32
32
|
* @param {String} key The key to use to find the text to use in each option, defaults to 'text'.
|
|
33
33
|
* @returns The first string that passes its' conditions, or null if something went wrong.
|
|
34
34
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
var getConditionalText = function getConditionalText(options, formData) {
|
|
36
|
+
var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'text';
|
|
37
37
|
if (typeof options === 'string') {
|
|
38
38
|
return _copReactComponents.Utils.interpolateString(options, formData);
|
|
39
39
|
}
|
|
40
40
|
if (!Array.isArray(options) || Object.keys(formData).length === 0) {
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
var shownOption = options.find(function (option) {
|
|
44
44
|
if (typeof option === 'string') {
|
|
45
45
|
// This is intended to allow a plain string 'fallback' option in the array.
|
|
46
46
|
// As such, it should be the last option in the array as any options after
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
var _getConditionalText = _interopRequireDefault(require("./getConditionalText"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils.FormPage.getConditionalText', ()
|
|
6
|
-
|
|
5
|
+
describe('utils.FormPage.getConditionalText', function () {
|
|
6
|
+
var FORM_DATA = {
|
|
7
7
|
testField: 'Alpha',
|
|
8
8
|
testField2: 'yes'
|
|
9
9
|
};
|
|
10
|
-
it('should return null if no options are provided', ()
|
|
11
|
-
|
|
10
|
+
it('should return null if no options are provided', function () {
|
|
11
|
+
var result = (0, _getConditionalText.default)(null, FORM_DATA);
|
|
12
12
|
expect(result).toEqual(null);
|
|
13
13
|
});
|
|
14
|
-
it('should return the option if it\'s just a string', ()
|
|
15
|
-
|
|
14
|
+
it('should return the option if it\'s just a string', function () {
|
|
15
|
+
var result = (0, _getConditionalText.default)('abc123', FORM_DATA);
|
|
16
16
|
expect(result).toEqual('abc123');
|
|
17
17
|
});
|
|
18
|
-
it('should return a correctly interpolated string', ()
|
|
18
|
+
it('should return a correctly interpolated string', function () {
|
|
19
19
|
// eslint-disable-next-line no-template-curly-in-string
|
|
20
|
-
|
|
20
|
+
var result = (0, _getConditionalText.default)('${testField} string', FORM_DATA);
|
|
21
21
|
expect(result).toEqual("".concat(FORM_DATA.testField, " string"));
|
|
22
22
|
});
|
|
23
|
-
it('should return the option that has it\'s conditions met', ()
|
|
24
|
-
|
|
23
|
+
it('should return the option that has it\'s conditions met', function () {
|
|
24
|
+
var OPTIONS = [{
|
|
25
25
|
text: 'Text A',
|
|
26
26
|
show_when: [{
|
|
27
27
|
field: 'testField2',
|
|
@@ -36,11 +36,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
36
36
|
value: 'yes'
|
|
37
37
|
}]
|
|
38
38
|
}];
|
|
39
|
-
|
|
39
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
40
40
|
expect(result).toEqual('Text B');
|
|
41
41
|
});
|
|
42
|
-
it('should return a plain string option if one is encountered in the array', ()
|
|
43
|
-
|
|
42
|
+
it('should return a plain string option if one is encountered in the array', function () {
|
|
43
|
+
var OPTIONS = [{
|
|
44
44
|
text: 'Text A',
|
|
45
45
|
show_when: [{
|
|
46
46
|
field: 'testField2',
|
|
@@ -55,11 +55,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
55
55
|
value: 'notTheValue'
|
|
56
56
|
}]
|
|
57
57
|
}, "Default text"];
|
|
58
|
-
|
|
58
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
59
59
|
expect(result).toEqual('Default text');
|
|
60
60
|
});
|
|
61
|
-
it('should correctly interpolate a plain string option in the array', ()
|
|
62
|
-
|
|
61
|
+
it('should correctly interpolate a plain string option in the array', function () {
|
|
62
|
+
var OPTIONS = [{
|
|
63
63
|
text: 'Text A',
|
|
64
64
|
show_when: [{
|
|
65
65
|
field: 'testField2',
|
|
@@ -76,11 +76,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
76
76
|
},
|
|
77
77
|
// eslint-disable-next-line no-template-curly-in-string
|
|
78
78
|
"${testField} text"];
|
|
79
|
-
|
|
79
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
80
80
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
81
81
|
});
|
|
82
|
-
it('should correctly interpolate a conditional option', ()
|
|
83
|
-
|
|
82
|
+
it('should correctly interpolate a conditional option', function () {
|
|
83
|
+
var OPTIONS = [{
|
|
84
84
|
text: 'Text A',
|
|
85
85
|
show_when: [{
|
|
86
86
|
field: 'testField2',
|
|
@@ -96,11 +96,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
96
96
|
value: 'yes'
|
|
97
97
|
}]
|
|
98
98
|
}];
|
|
99
|
-
|
|
99
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
100
100
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
101
101
|
});
|
|
102
|
-
it('should correctly use a conditional option', ()
|
|
103
|
-
|
|
102
|
+
it('should correctly use a conditional option', function () {
|
|
103
|
+
var OPTIONS = [{
|
|
104
104
|
text: 'Text A',
|
|
105
105
|
show_when: [{
|
|
106
106
|
field: 'testField2',
|
|
@@ -116,11 +116,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
116
116
|
value: 'yes'
|
|
117
117
|
}]
|
|
118
118
|
}];
|
|
119
|
-
|
|
119
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
|
|
120
120
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
121
121
|
});
|
|
122
|
-
it('should correctly use a different key to find the text if one is provided', ()
|
|
123
|
-
|
|
122
|
+
it('should correctly use a different key to find the text if one is provided', function () {
|
|
123
|
+
var OPTIONS = [{
|
|
124
124
|
customKey: 'Text A',
|
|
125
125
|
show_when: [{
|
|
126
126
|
field: 'testField2',
|
|
@@ -136,11 +136,11 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
136
136
|
value: 'yes'
|
|
137
137
|
}]
|
|
138
138
|
}];
|
|
139
|
-
|
|
139
|
+
var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA, 'customKey');
|
|
140
140
|
expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
|
|
141
141
|
});
|
|
142
|
-
it('should return null for a conditional option if formData is empty', ()
|
|
143
|
-
|
|
142
|
+
it('should return null for a conditional option if formData is empty', function () {
|
|
143
|
+
var OPTIONS = [{
|
|
144
144
|
text: 'Text A',
|
|
145
145
|
show_when: [{
|
|
146
146
|
field: 'testField2',
|
|
@@ -156,7 +156,7 @@ describe('utils.FormPage.getConditionalText', () => {
|
|
|
156
156
|
value: 'yes'
|
|
157
157
|
}]
|
|
158
158
|
}];
|
|
159
|
-
|
|
159
|
+
var result = (0, _getConditionalText.default)(OPTIONS, {});
|
|
160
160
|
expect(result).toEqual(null);
|
|
161
161
|
});
|
|
162
162
|
});
|
|
@@ -10,8 +10,12 @@ var _getPageActions = _interopRequireDefault(require("./getPageActions"));
|
|
|
10
10
|
var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
|
|
11
11
|
var _useComponent = _interopRequireDefault(require("./useComponent"));
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
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); }
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
18
|
+
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); } // Local imports
|
|
15
19
|
/**
|
|
16
20
|
* Converts a page object defined in the JSON to a page object for rendering.
|
|
17
21
|
* @param {object} pageOptions The JSON page.
|
|
@@ -19,30 +23,27 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
23
|
* @param {object} formData The top-level form data, used for setting up components.
|
|
20
24
|
* @returns A page object for rendering.
|
|
21
25
|
*/
|
|
22
|
-
|
|
26
|
+
var getFormPage = function getFormPage(pageOptions, formComponents, formData) {
|
|
23
27
|
if (!pageOptions) {
|
|
24
28
|
return null;
|
|
25
29
|
}
|
|
26
|
-
|
|
30
|
+
var components = pageOptions.components.map(function (componentOptions) {
|
|
27
31
|
if (typeof componentOptions === 'string') {
|
|
28
32
|
return (0, _getParagraphFromText.default)(componentOptions);
|
|
29
33
|
}
|
|
30
|
-
|
|
34
|
+
var ret;
|
|
31
35
|
if (componentOptions.use) {
|
|
32
36
|
ret = (0, _useComponent.default)(componentOptions, formComponents);
|
|
33
37
|
} else {
|
|
34
|
-
ret = {
|
|
35
|
-
...componentOptions
|
|
36
|
-
};
|
|
38
|
+
ret = _objectSpread({}, componentOptions);
|
|
37
39
|
}
|
|
38
40
|
return formData ? _Data.default.refData.setupUrl(ret, formData) : ret;
|
|
39
41
|
});
|
|
40
|
-
|
|
41
|
-
return _Container.default.setup({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
42
|
+
var actions = (0, _getPageActions.default)(pageOptions);
|
|
43
|
+
return _Container.default.setup(_objectSpread(_objectSpread({}, pageOptions), {}, {
|
|
44
|
+
formData: formData,
|
|
45
|
+
components: components,
|
|
46
|
+
actions: actions
|
|
47
|
+
}));
|
|
47
48
|
};
|
|
48
49
|
var _default = exports.default = getFormPage;
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
6
|
+
function 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); } // Local imports
|
|
11
|
+
describe('utils', function () {
|
|
12
|
+
describe('FormPage', function () {
|
|
13
|
+
describe('getFormPage', function () {
|
|
14
|
+
var FORM_COMPONENTS = [{
|
|
11
15
|
id: 'a',
|
|
12
16
|
fieldId: 'a',
|
|
13
17
|
label: 'Alpha',
|
|
@@ -42,17 +46,17 @@ describe('utils', () => {
|
|
|
42
46
|
label: 'Bravo ${currentUser.surname}',
|
|
43
47
|
type: 'text'
|
|
44
48
|
}];
|
|
45
|
-
|
|
49
|
+
var FORM_DATA = {
|
|
46
50
|
urls: {
|
|
47
51
|
refData: 'https://ho.gov.uk/ref-data/'
|
|
48
52
|
}
|
|
49
53
|
};
|
|
50
|
-
it('should handle null or undefined pageOptions', ()
|
|
54
|
+
it('should handle null or undefined pageOptions', function () {
|
|
51
55
|
expect((0, _getFormPage.default)(null, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
52
56
|
expect((0, _getFormPage.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
53
57
|
});
|
|
54
|
-
it('should handle a page not using any form components', ()
|
|
55
|
-
|
|
58
|
+
it('should handle a page not using any form components', function () {
|
|
59
|
+
var PAGE = {
|
|
56
60
|
title: 'Page',
|
|
57
61
|
components: [{
|
|
58
62
|
type: 'heading',
|
|
@@ -66,8 +70,8 @@ describe('utils', () => {
|
|
|
66
70
|
formData: FORM_DATA
|
|
67
71
|
});
|
|
68
72
|
});
|
|
69
|
-
it('should handle a page with inline strings and convert them to paragraphs', ()
|
|
70
|
-
|
|
73
|
+
it('should handle a page with inline strings and convert them to paragraphs', function () {
|
|
74
|
+
var PAGE = {
|
|
71
75
|
title: 'Page',
|
|
72
76
|
components: ["Opening paragraph", {
|
|
73
77
|
type: 'heading',
|
|
@@ -81,10 +85,9 @@ describe('utils', () => {
|
|
|
81
85
|
type: 'html',
|
|
82
86
|
tagName: 'p',
|
|
83
87
|
content: PAGE.components[0]
|
|
84
|
-
}, {
|
|
85
|
-
...PAGE.components[1],
|
|
88
|
+
}, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
|
|
86
89
|
full_path: PAGE.components[1].fieldId
|
|
87
|
-
}, {
|
|
90
|
+
}), {
|
|
88
91
|
type: 'html',
|
|
89
92
|
tagName: 'p',
|
|
90
93
|
content: PAGE.components[2]
|
|
@@ -92,8 +95,8 @@ describe('utils', () => {
|
|
|
92
95
|
formData: FORM_DATA
|
|
93
96
|
});
|
|
94
97
|
});
|
|
95
|
-
it('should handle a page that references a form-level component', ()
|
|
96
|
-
|
|
98
|
+
it('should handle a page that references a form-level component', function () {
|
|
99
|
+
var PAGE = {
|
|
97
100
|
title: 'Page',
|
|
98
101
|
components: ["Opening paragraph", {
|
|
99
102
|
type: 'heading',
|
|
@@ -103,31 +106,30 @@ describe('utils', () => {
|
|
|
103
106
|
use: 'a'
|
|
104
107
|
}]
|
|
105
108
|
};
|
|
106
|
-
|
|
109
|
+
var A = FORM_COMPONENTS[0];
|
|
107
110
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
108
111
|
title: PAGE.title,
|
|
109
112
|
components: [{
|
|
110
113
|
type: 'html',
|
|
111
114
|
tagName: 'p',
|
|
112
115
|
content: PAGE.components[0]
|
|
113
|
-
}, {
|
|
114
|
-
...PAGE.components[1],
|
|
116
|
+
}, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
|
|
115
117
|
full_path: PAGE.components[1].fieldId
|
|
116
|
-
}, {
|
|
118
|
+
}), {
|
|
117
119
|
type: 'html',
|
|
118
120
|
tagName: 'p',
|
|
119
121
|
content: PAGE.components[2]
|
|
120
|
-
}, {
|
|
121
|
-
use: 'a'
|
|
122
|
-
|
|
122
|
+
}, _objectSpread(_objectSpread({
|
|
123
|
+
use: 'a'
|
|
124
|
+
}, A), {}, {
|
|
123
125
|
cya_label: A.label,
|
|
124
126
|
full_path: A.fieldId
|
|
125
|
-
}],
|
|
127
|
+
})],
|
|
126
128
|
formData: FORM_DATA
|
|
127
129
|
});
|
|
128
130
|
});
|
|
129
|
-
it('should handle a page that references a form-level component with a data url', ()
|
|
130
|
-
|
|
131
|
+
it('should handle a page that references a form-level component with a data url', function () {
|
|
132
|
+
var PAGE = {
|
|
131
133
|
title: 'Page',
|
|
132
134
|
components: ["Opening paragraph", {
|
|
133
135
|
type: 'heading',
|
|
@@ -137,34 +139,33 @@ describe('utils', () => {
|
|
|
137
139
|
use: 'c'
|
|
138
140
|
}]
|
|
139
141
|
};
|
|
140
|
-
|
|
142
|
+
var C = FORM_COMPONENTS[2];
|
|
141
143
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
142
144
|
title: PAGE.title,
|
|
143
145
|
components: [{
|
|
144
146
|
type: 'html',
|
|
145
147
|
tagName: 'p',
|
|
146
148
|
content: PAGE.components[0]
|
|
147
|
-
}, {
|
|
148
|
-
...PAGE.components[1],
|
|
149
|
+
}, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
|
|
149
150
|
full_path: PAGE.components[1].fieldId
|
|
150
|
-
}, {
|
|
151
|
+
}), {
|
|
151
152
|
type: 'html',
|
|
152
153
|
tagName: 'p',
|
|
153
154
|
content: PAGE.components[2]
|
|
154
|
-
}, {
|
|
155
|
-
use: 'c'
|
|
156
|
-
|
|
155
|
+
}, _objectSpread(_objectSpread({
|
|
156
|
+
use: 'c'
|
|
157
|
+
}, C), {}, {
|
|
157
158
|
cya_label: C.label,
|
|
158
159
|
data: {
|
|
159
160
|
url: "".concat(FORM_DATA.urls.refData, "/v3/charlies")
|
|
160
161
|
},
|
|
161
162
|
full_path: C.fieldId
|
|
162
|
-
}],
|
|
163
|
+
})],
|
|
163
164
|
formData: FORM_DATA
|
|
164
165
|
});
|
|
165
166
|
});
|
|
166
|
-
it('should handle a page that references a form-level component with a data url without an environment context', ()
|
|
167
|
-
|
|
167
|
+
it('should handle a page that references a form-level component with a data url without an environment context', function () {
|
|
168
|
+
var PAGE = {
|
|
168
169
|
title: 'Page',
|
|
169
170
|
components: ["Opening paragraph", {
|
|
170
171
|
type: 'heading',
|
|
@@ -174,31 +175,29 @@ describe('utils', () => {
|
|
|
174
175
|
use: 'c'
|
|
175
176
|
}]
|
|
176
177
|
};
|
|
177
|
-
|
|
178
|
+
var C = FORM_COMPONENTS[2];
|
|
178
179
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, {})).toEqual({
|
|
179
180
|
title: PAGE.title,
|
|
180
181
|
components: [{
|
|
181
182
|
type: 'html',
|
|
182
183
|
tagName: 'p',
|
|
183
184
|
content: PAGE.components[0]
|
|
184
|
-
}, {
|
|
185
|
-
...PAGE.components[1],
|
|
185
|
+
}, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
|
|
186
186
|
full_path: PAGE.components[1].fieldId
|
|
187
|
-
}, {
|
|
187
|
+
}), {
|
|
188
188
|
type: 'html',
|
|
189
189
|
tagName: 'p',
|
|
190
190
|
content: PAGE.components[2]
|
|
191
|
-
},
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
...C,
|
|
191
|
+
}, // eslint-disable-next-line no-template-curly-in-string
|
|
192
|
+
_objectSpread(_objectSpread({
|
|
193
|
+
use: 'c'
|
|
194
|
+
}, C), {}, {
|
|
196
195
|
cya_label: C.label,
|
|
197
196
|
full_path: C.fieldId,
|
|
198
197
|
data: {
|
|
199
198
|
url: '/v3/charlies'
|
|
200
199
|
}
|
|
201
|
-
}],
|
|
200
|
+
})],
|
|
202
201
|
formData: {}
|
|
203
202
|
});
|
|
204
203
|
});
|