@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
|
@@ -4,20 +4,23 @@ var _react = require("@testing-library/react");
|
|
|
4
4
|
var _models = require("../../../models");
|
|
5
5
|
var _getComponent = _interopRequireDefault(require("../getComponent"));
|
|
6
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports
|
|
9
13
|
// Local imports
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const ON_CHANGE = e => {
|
|
14
|
+
describe('utils.Component.get', function () {
|
|
15
|
+
it('should return an appropriately rendered time component', function () {
|
|
16
|
+
var ID = 'test-id';
|
|
17
|
+
var FIELD_ID = 'field-id';
|
|
18
|
+
var LABEL = 'label';
|
|
19
|
+
var ON_CHANGE_CALLS = [];
|
|
20
|
+
var ON_CHANGE = function ON_CHANGE(e) {
|
|
18
21
|
ON_CHANGE_CALLS.push(e.target);
|
|
19
22
|
};
|
|
20
|
-
|
|
23
|
+
var COMPONENT = {
|
|
21
24
|
type: _models.ComponentTypes.TIME,
|
|
22
25
|
id: ID,
|
|
23
26
|
fieldId: FIELD_ID,
|
|
@@ -25,20 +28,24 @@ describe('utils.Component.get', () => {
|
|
|
25
28
|
onChange: ON_CHANGE,
|
|
26
29
|
'data-testid': ID
|
|
27
30
|
};
|
|
28
|
-
|
|
29
|
-
container
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
|
|
32
|
+
container = _render.container;
|
|
33
|
+
var _getAllByTestId = (0, _react.getAllByTestId)(container, ID),
|
|
34
|
+
_getAllByTestId2 = _slicedToArray(_getAllByTestId, 2),
|
|
35
|
+
formGroup = _getAllByTestId2[0],
|
|
36
|
+
timeInput = _getAllByTestId2[1];
|
|
32
37
|
expect(formGroup.tagName).toEqual('DIV');
|
|
33
38
|
expect(formGroup.classList).toContain('govuk-form-group');
|
|
34
|
-
|
|
39
|
+
var label = formGroup.childNodes[0];
|
|
35
40
|
expect(label.innerHTML).toContain(LABEL);
|
|
36
41
|
expect(label.getAttribute('for')).toEqual(ID);
|
|
37
42
|
expect(timeInput.tagName).toEqual('DIV');
|
|
38
43
|
expect(timeInput.classList).toContain('govuk-date-input');
|
|
39
44
|
expect(timeInput.id).toEqual(ID);
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
var onChangeCalls = ON_CHANGE_CALLS.length;
|
|
46
|
+
var _timeInput$childNodes = _slicedToArray(timeInput.childNodes, 2),
|
|
47
|
+
hourItem = _timeInput$childNodes[0],
|
|
48
|
+
minuteItem = _timeInput$childNodes[1];
|
|
42
49
|
[{
|
|
43
50
|
id: 'hour',
|
|
44
51
|
label: 'Hour',
|
|
@@ -51,10 +58,12 @@ describe('utils.Component.get', () => {
|
|
|
51
58
|
item: minuteItem,
|
|
52
59
|
value: '11',
|
|
53
60
|
expectedValue: '5:11'
|
|
54
|
-
}].forEach(part
|
|
61
|
+
}].forEach(function (part) {
|
|
55
62
|
expect(part.item.tagName).toEqual('DIV');
|
|
56
63
|
expect(part.item.classList).toContain('govuk-date-input__item');
|
|
57
|
-
|
|
64
|
+
var _part$item$childNodes = _slicedToArray(part.item.childNodes[0].childNodes, 2),
|
|
65
|
+
inputLabel = _part$item$childNodes[0],
|
|
66
|
+
input = _part$item$childNodes[1];
|
|
58
67
|
expect(inputLabel.tagName).toEqual('LABEL');
|
|
59
68
|
expect(inputLabel.classList).toContain('govuk-label');
|
|
60
69
|
expect(inputLabel.textContent).toEqual(part.label);
|
|
@@ -4,8 +4,8 @@ var _getComponent = _interopRequireDefault(require("../getComponent"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Component.get', ()
|
|
8
|
-
it('should return null for an unknown type', ()
|
|
7
|
+
describe('utils.Component.get', function () {
|
|
8
|
+
it('should return null for an unknown type', function () {
|
|
9
9
|
expect((0, _getComponent.default)({
|
|
10
10
|
type: 'unknown'
|
|
11
11
|
})).toBeNull();
|
|
@@ -8,19 +8,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
8
8
|
|
|
9
9
|
// Local imports
|
|
10
10
|
|
|
11
|
-
describe('utils.Component.get', ()
|
|
12
|
-
it('should return an appropriately rendered warning-text component', ()
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
describe('utils.Component.get', function () {
|
|
12
|
+
it('should return an appropriately rendered warning-text component', function () {
|
|
13
|
+
var ID = 'test-id';
|
|
14
|
+
var CONTENT = 'Warning Text';
|
|
15
|
+
var COMPONENT = {
|
|
16
16
|
type: _models.ComponentTypes.WARNING,
|
|
17
17
|
content: CONTENT,
|
|
18
18
|
'data-testid': ID
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
container
|
|
22
|
-
|
|
23
|
-
const warningText = (0, _react.getByTestId)(container, ID);
|
|
20
|
+
var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
|
|
21
|
+
container = _render.container;
|
|
22
|
+
var warningText = (0, _react.getByTestId)(container, ID);
|
|
24
23
|
expect(warningText.innerHTML).toContain(CONTENT);
|
|
25
24
|
expect(warningText.tagName).toEqual('DIV');
|
|
26
25
|
expect(warningText.classList).toContain('govuk-warning-text');
|
|
@@ -6,16 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _models = require("../../models");
|
|
8
8
|
var _getDefaultValueFromConfig = _interopRequireDefault(require("./getDefaultValueFromConfig"));
|
|
9
|
+
var _DEFAULT_VALUES;
|
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
11
|
+
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); }
|
|
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); }
|
|
15
|
+
var DEFAULT_VALUES = (_DEFAULT_VALUES = {}, _defineProperty(_DEFAULT_VALUES, _models.ComponentTypes.COLLECTION, []), _defineProperty(_DEFAULT_VALUES, _models.ComponentTypes.CONTAINER, {}), _DEFAULT_VALUES);
|
|
16
|
+
var getDefaultValue = function getDefaultValue(component, formData) {
|
|
15
17
|
if (!component) {
|
|
16
18
|
return '';
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
var defaultValue = (0, _getDefaultValueFromConfig.default)(component, formData);
|
|
19
21
|
return defaultValue || DEFAULT_VALUES[component.type] || '';
|
|
20
22
|
};
|
|
21
23
|
var _default = exports.default = getDefaultValue;
|
|
@@ -3,43 +3,43 @@
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _getDefaultValue = _interopRequireDefault(require("./getDefaultValue"));
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
describe('utils.Component.defaultValue', ()
|
|
7
|
-
it('should return an empty string if the component is undefined', ()
|
|
6
|
+
describe('utils.Component.defaultValue', function () {
|
|
7
|
+
it('should return an empty string if the component is undefined', function () {
|
|
8
8
|
expect((0, _getDefaultValue.default)(undefined)).toEqual('');
|
|
9
9
|
});
|
|
10
|
-
it('should return an empty string if the component is null', ()
|
|
10
|
+
it('should return an empty string if the component is null', function () {
|
|
11
11
|
expect((0, _getDefaultValue.default)(null)).toEqual('');
|
|
12
12
|
});
|
|
13
|
-
it('should return an empty string if the component has no type', ()
|
|
13
|
+
it('should return an empty string if the component has no type', function () {
|
|
14
14
|
expect((0, _getDefaultValue.default)({})).toEqual('');
|
|
15
15
|
});
|
|
16
|
-
it('should return an empty string if the component type is null', ()
|
|
16
|
+
it('should return an empty string if the component type is null', function () {
|
|
17
17
|
expect((0, _getDefaultValue.default)({
|
|
18
18
|
type: null
|
|
19
19
|
})).toEqual('');
|
|
20
20
|
});
|
|
21
|
-
it('should return an empty string if the component type is undefined', ()
|
|
21
|
+
it('should return an empty string if the component type is undefined', function () {
|
|
22
22
|
expect((0, _getDefaultValue.default)({
|
|
23
23
|
type: undefined
|
|
24
24
|
})).toEqual('');
|
|
25
25
|
});
|
|
26
|
-
it("should return an empty array if the component type is 'collection'", ()
|
|
26
|
+
it("should return an empty array if the component type is 'collection'", function () {
|
|
27
27
|
expect((0, _getDefaultValue.default)({
|
|
28
28
|
type: _models.ComponentTypes.COLLECTION
|
|
29
29
|
})).toEqual([]);
|
|
30
30
|
});
|
|
31
|
-
it("should return an empty object if the component type is 'container'", ()
|
|
31
|
+
it("should return an empty object if the component type is 'container'", function () {
|
|
32
32
|
expect((0, _getDefaultValue.default)({
|
|
33
33
|
type: _models.ComponentTypes.CONTAINER
|
|
34
34
|
})).toEqual({});
|
|
35
35
|
});
|
|
36
|
-
it('should return defaultValue if the component has defaultValue prop', ()
|
|
36
|
+
it('should return defaultValue if the component has defaultValue prop', function () {
|
|
37
37
|
expect((0, _getDefaultValue.default)({
|
|
38
38
|
type: _models.ComponentTypes.AUTOCOMPLETE,
|
|
39
39
|
defaultValue: 'test'
|
|
40
40
|
})).toEqual('test');
|
|
41
41
|
});
|
|
42
|
-
it('should return defaultObjectValue if the component has defaultObjectValue prop', ()
|
|
42
|
+
it('should return defaultObjectValue if the component has defaultObjectValue prop', function () {
|
|
43
43
|
expect((0, _getDefaultValue.default)({
|
|
44
44
|
type: _models.ComponentTypes.AUTOCOMPLETE,
|
|
45
45
|
defaultObjectValue: {
|
|
@@ -49,9 +49,9 @@ describe('utils.Component.defaultValue', () => {
|
|
|
49
49
|
testText: 'text'
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
|
-
Object.values(_models.ComponentTypes).forEach(value
|
|
52
|
+
Object.values(_models.ComponentTypes).forEach(function (value) {
|
|
53
53
|
if (![_models.ComponentTypes.COLLECTION, _models.ComponentTypes.CONTAINER, _models.ComponentTypes.FILE].includes(value)) {
|
|
54
|
-
it("should return an empty object if the component type is '".concat(value, "'"), ()
|
|
54
|
+
it("should return an empty object if the component type is '".concat(value, "'"), function () {
|
|
55
55
|
expect((0, _getDefaultValue.default)({
|
|
56
56
|
type: _models.ComponentTypes.TEXT
|
|
57
57
|
})).toEqual('');
|
|
@@ -8,14 +8,19 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
|
8
8
|
var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
|
|
9
9
|
var _models = require("../../models");
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
+
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); } // Global imports.
|
|
13
17
|
// Local imports.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
var hasDefaultValue = function hasDefaultValue(component) {
|
|
19
|
+
return component.defaultValue || component.defaultObjectValue;
|
|
20
|
+
};
|
|
21
|
+
var getDefaultForDate = function getDefaultForDate(date) {
|
|
22
|
+
var dateFormat = /^(\d{1,2})-\d{1,2}-(\d{4})$/;
|
|
23
|
+
var defaultDate = dateFormat.test(date.defaultValue) ? date.defaultValue : null;
|
|
19
24
|
return date.defaultValue === 'today' ? (0, _dayjs.default)().format('DD-MM-YYYY') : defaultDate;
|
|
20
25
|
};
|
|
21
26
|
|
|
@@ -56,33 +61,27 @@ const getDefaultForDate = date => {
|
|
|
56
61
|
* @param {object} data The current formData.
|
|
57
62
|
* @returns An object to be used as the component's default value.
|
|
58
63
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
let result = null;
|
|
64
|
+
var setupDefaultObjectValue = function setupDefaultObjectValue(defaultObject, data) {
|
|
65
|
+
var defaultObj = _objectSpread({}, defaultObject);
|
|
66
|
+
var result = null;
|
|
64
67
|
// This handles objects using the previous syntax where
|
|
65
68
|
// defaultObject.literal and defaultObject.sourced won't
|
|
66
69
|
// be defined.
|
|
67
70
|
if (!defaultObj.literal && !defaultObj.sourced) {
|
|
68
|
-
defaultObj.sourced = {
|
|
69
|
-
...defaultObj
|
|
70
|
-
};
|
|
71
|
+
defaultObj.sourced = _objectSpread({}, defaultObj);
|
|
71
72
|
}
|
|
72
73
|
// defaultObject.literal is an object with values that should
|
|
73
74
|
// be copied as-is to the result object.
|
|
74
75
|
if (defaultObj.literal) {
|
|
75
|
-
result = {
|
|
76
|
-
...defaultObj.literal
|
|
77
|
-
};
|
|
76
|
+
result = _objectSpread({}, defaultObj.literal);
|
|
78
77
|
}
|
|
79
78
|
// defaultObject.sourced is an object with values that should
|
|
80
79
|
// be used as field names to get values from data.
|
|
81
80
|
if (defaultObj.sourced) {
|
|
82
81
|
var _result;
|
|
83
82
|
result = (_result = result) !== null && _result !== void 0 ? _result : {};
|
|
84
|
-
Object.keys(defaultObj.sourced).every(key
|
|
85
|
-
|
|
83
|
+
Object.keys(defaultObj.sourced).every(function (key) {
|
|
84
|
+
var sourcedValue = typeof defaultObj.sourced[key] === 'string' && (0, _getSourceData.default)(data, defaultObj.sourced[key]);
|
|
86
85
|
if (sourcedValue === undefined && defaultObj.skipIfSourceInvalid) {
|
|
87
86
|
result = null;
|
|
88
87
|
return false;
|
|
@@ -93,7 +92,7 @@ const setupDefaultObjectValue = (defaultObject, data) => {
|
|
|
93
92
|
}
|
|
94
93
|
return result;
|
|
95
94
|
};
|
|
96
|
-
|
|
95
|
+
var getDefaultValueFromConfig = function getDefaultValueFromConfig(component, data) {
|
|
97
96
|
if (!hasDefaultValue(component)) {
|
|
98
97
|
return null;
|
|
99
98
|
}
|
|
@@ -102,7 +101,7 @@ const getDefaultValueFromConfig = (component, data) => {
|
|
|
102
101
|
return getDefaultForDate(component, data);
|
|
103
102
|
default:
|
|
104
103
|
{
|
|
105
|
-
|
|
104
|
+
var defaultValue = component.defaultObjectValue ? setupDefaultObjectValue(component.defaultObjectValue, data) : null;
|
|
106
105
|
return defaultValue || component.defaultValue || null;
|
|
107
106
|
}
|
|
108
107
|
}
|
|
@@ -8,65 +8,65 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
8
8
|
|
|
9
9
|
// Local imports.
|
|
10
10
|
|
|
11
|
-
describe('utils.component.defaultValueFromConfig', ()
|
|
12
|
-
it('should return null if a component has no default value defined', ()
|
|
13
|
-
|
|
11
|
+
describe('utils.component.defaultValueFromConfig', function () {
|
|
12
|
+
it('should return null if a component has no default value defined', function () {
|
|
13
|
+
var result = (0, _getDefaultValueFromConfig.default)({}, {});
|
|
14
14
|
expect(result).toEqual(null);
|
|
15
15
|
});
|
|
16
|
-
it('should return a normal default value if one is defined', ()
|
|
17
|
-
|
|
16
|
+
it('should return a normal default value if one is defined', function () {
|
|
17
|
+
var COMPONENT = {
|
|
18
18
|
defaultValue: 'value'
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
|
|
21
21
|
expect(result).toEqual('value');
|
|
22
22
|
});
|
|
23
|
-
it('should return an object default value if one is defined', ()
|
|
24
|
-
|
|
23
|
+
it('should return an object default value if one is defined', function () {
|
|
24
|
+
var COMPONENT = {
|
|
25
25
|
defaultObjectValue: {
|
|
26
26
|
alpha: 'one',
|
|
27
27
|
bravo: 'two'
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
|
|
31
31
|
expect(result).toEqual({
|
|
32
32
|
alpha: 'one',
|
|
33
33
|
bravo: 'two'
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
|
-
it('should return the defaultObjectValue if both defaultObjectValue and defaultValue are defined', ()
|
|
37
|
-
|
|
36
|
+
it('should return the defaultObjectValue if both defaultObjectValue and defaultValue are defined', function () {
|
|
37
|
+
var COMPONENT = {
|
|
38
38
|
defaultValue: 'zero',
|
|
39
39
|
defaultObjectValue: {
|
|
40
40
|
alpha: 'one',
|
|
41
41
|
bravo: 'two'
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
|
|
45
45
|
expect(result).toEqual({
|
|
46
46
|
alpha: 'one',
|
|
47
47
|
bravo: 'two'
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
-
it('should return an object default with interpolated fields if applicable', ()
|
|
51
|
-
|
|
50
|
+
it('should return an object default with interpolated fields if applicable', function () {
|
|
51
|
+
var COMPONENT = {
|
|
52
52
|
defaultObjectValue: {
|
|
53
53
|
alpha: 'testObject.testText',
|
|
54
54
|
bravo: 'testObject.testText'
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
|
-
|
|
57
|
+
var DATA = {
|
|
58
58
|
testObject: {
|
|
59
59
|
testText: 'value'
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
|
|
62
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
|
|
63
63
|
expect(result).toEqual({
|
|
64
64
|
alpha: 'value',
|
|
65
65
|
bravo: 'value'
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
-
it('should allow specific sourced and literal object values to be defined', ()
|
|
69
|
-
|
|
68
|
+
it('should allow specific sourced and literal object values to be defined', function () {
|
|
69
|
+
var COMPONENT = {
|
|
70
70
|
defaultObjectValue: {
|
|
71
71
|
sourced: {
|
|
72
72
|
value1: 'field1.value',
|
|
@@ -78,7 +78,7 @@ describe('utils.component.defaultValueFromConfig', () => {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
var DATA = {
|
|
82
82
|
field1: {
|
|
83
83
|
value: 'sourced text 1'
|
|
84
84
|
},
|
|
@@ -86,7 +86,7 @@ describe('utils.component.defaultValueFromConfig', () => {
|
|
|
86
86
|
value: 'sourced text 2'
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
|
|
90
90
|
expect(result).toMatchObject({
|
|
91
91
|
value1: 'sourced text 1',
|
|
92
92
|
value2: 'sourced text 2',
|
|
@@ -94,8 +94,8 @@ describe('utils.component.defaultValueFromConfig', () => {
|
|
|
94
94
|
value4: 'literal text 2'
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
|
-
it('should handle the skipIfSourceInvalid flag and return null if a sourced value cannot be found', ()
|
|
98
|
-
|
|
97
|
+
it('should handle the skipIfSourceInvalid flag and return null if a sourced value cannot be found', function () {
|
|
98
|
+
var COMPONENT = {
|
|
99
99
|
defaultObjectValue: {
|
|
100
100
|
skipIfSourceInvalid: true,
|
|
101
101
|
sourced: {
|
|
@@ -108,7 +108,7 @@ describe('utils.component.defaultValueFromConfig', () => {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
};
|
|
111
|
-
|
|
111
|
+
var DATA = {
|
|
112
112
|
field1: {
|
|
113
113
|
value: 'sourced text 1'
|
|
114
114
|
},
|
|
@@ -116,24 +116,24 @@ describe('utils.component.defaultValueFromConfig', () => {
|
|
|
116
116
|
value: 'sourced text 2'
|
|
117
117
|
}
|
|
118
118
|
};
|
|
119
|
-
|
|
119
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
|
|
120
120
|
expect(result).toEqual(null);
|
|
121
121
|
});
|
|
122
|
-
describe('for a date component', ()
|
|
123
|
-
it('should return a normal default value', ()
|
|
124
|
-
|
|
122
|
+
describe('for a date component', function () {
|
|
123
|
+
it('should return a normal default value', function () {
|
|
124
|
+
var COMPONENT = {
|
|
125
125
|
type: _models.ComponentTypes.DATE,
|
|
126
126
|
defaultValue: '01-01-2000'
|
|
127
127
|
};
|
|
128
|
-
|
|
128
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
|
|
129
129
|
expect(result).toEqual('01-01-2000');
|
|
130
130
|
});
|
|
131
|
-
it('should handle specific default values for date', ()
|
|
132
|
-
|
|
131
|
+
it('should handle specific default values for date', function () {
|
|
132
|
+
var COMPONENT = {
|
|
133
133
|
type: _models.ComponentTypes.DATE,
|
|
134
134
|
defaultValue: 'today'
|
|
135
135
|
};
|
|
136
|
-
|
|
136
|
+
var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
|
|
137
137
|
expect(result).toEqual((0, _dayjs.default)().format('DD-MM-YYYY'));
|
|
138
138
|
});
|
|
139
139
|
});
|
|
@@ -14,7 +14,7 @@ var _setupContainerComponentsPath = _interopRequireDefault(require("./setupConta
|
|
|
14
14
|
var _showComponent = _interopRequireDefault(require("./showComponent"));
|
|
15
15
|
var _wrapInFormGroup = _interopRequireDefault(require("./wrapInFormGroup"));
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
17
|
+
var Component = {
|
|
18
18
|
clean: _cleanAttributes.default,
|
|
19
19
|
defaultValue: _getDefaultValue.default,
|
|
20
20
|
defaultValueFromConfig: _getDefaultValueFromConfig.default,
|
|
@@ -7,6 +7,8 @@ exports.default = exports.EDITABLE_TYPES = void 0;
|
|
|
7
7
|
var _models = require("../../models");
|
|
8
8
|
// Local imports
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
var EDITABLE_TYPES = exports.EDITABLE_TYPES = [_models.ComponentTypes.AUTOCOMPLETE, _models.ComponentTypes.CALCULATION, _models.ComponentTypes.CHECKBOXES, _models.ComponentTypes.COLLECTION_SUMMARY, _models.ComponentTypes.DATE, _models.ComponentTypes.EMAIL, _models.ComponentTypes.FILE, _models.ComponentTypes.MULTI_FILE, _models.ComponentTypes.PHONE_NUMBER, _models.ComponentTypes.RADIOS, _models.ComponentTypes.SELECT, _models.ComponentTypes.TEXT, _models.ComponentTypes.TEXT_AREA, _models.ComponentTypes.TIME];
|
|
11
|
+
var isEditable = function isEditable(options) {
|
|
12
|
+
return EDITABLE_TYPES.includes(options === null || options === void 0 ? void 0 : options.type) || (options === null || options === void 0 ? void 0 : options.isEditable) || false;
|
|
13
|
+
};
|
|
12
14
|
var _default = exports.default = isEditable;
|
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
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); }
|
|
3
4
|
var _isEditable = _interopRequireWildcard(require("./isEditable"));
|
|
4
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
5
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" !=
|
|
5
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
6
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
6
7
|
// Local imports
|
|
7
8
|
|
|
8
|
-
describe('utils', ()
|
|
9
|
-
describe('Component', ()
|
|
10
|
-
describe('isEditable', ()
|
|
11
|
-
_isEditable.EDITABLE_TYPES.forEach(type
|
|
12
|
-
it("should return true for a type of '".concat(type, "'"), ()
|
|
13
|
-
|
|
14
|
-
type
|
|
9
|
+
describe('utils', function () {
|
|
10
|
+
describe('Component', function () {
|
|
11
|
+
describe('isEditable', function () {
|
|
12
|
+
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
13
|
+
it("should return true for a type of '".concat(type, "'"), function () {
|
|
14
|
+
var OPTIONS = {
|
|
15
|
+
type: type
|
|
15
16
|
};
|
|
16
17
|
expect((0, _isEditable.default)(OPTIONS)).toEqual(true);
|
|
17
18
|
});
|
|
18
19
|
});
|
|
19
|
-
it('should return false if options is undefined', ()
|
|
20
|
+
it('should return false if options is undefined', function () {
|
|
20
21
|
expect((0, _isEditable.default)(undefined)).toEqual(false);
|
|
21
22
|
});
|
|
22
|
-
it('should return false if options is null', ()
|
|
23
|
+
it('should return false if options is null', function () {
|
|
23
24
|
expect((0, _isEditable.default)(null)).toEqual(false);
|
|
24
25
|
});
|
|
25
|
-
it('should return false if options has no type', ()
|
|
26
|
+
it('should return false if options has no type', function () {
|
|
26
27
|
expect((0, _isEditable.default)({
|
|
27
28
|
bob: 'Bob'
|
|
28
29
|
})).toEqual(false);
|
|
29
30
|
});
|
|
30
|
-
it("should return false if options has a type of 'hidden'", ()
|
|
31
|
+
it("should return false if options has a type of 'hidden'", function () {
|
|
31
32
|
expect((0, _isEditable.default)({
|
|
32
33
|
type: 'hidden'
|
|
33
34
|
})).toEqual(false);
|
|
34
35
|
});
|
|
35
|
-
it("should return true if options has 'isEditable' set to true", ()
|
|
36
|
+
it("should return true if options has 'isEditable' set to true", function () {
|
|
36
37
|
expect((0, _isEditable.default)({
|
|
37
38
|
isEditable: true
|
|
38
39
|
})).toEqual(true);
|
|
@@ -12,8 +12,13 @@ exports.default = void 0;
|
|
|
12
12
|
*
|
|
13
13
|
* @returns A boolean of whether the option is selected.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
var optionIsSelected = function optionIsSelected(componentValue, option) {
|
|
16
16
|
if (Array.isArray(componentValue)) {
|
|
17
|
+
if (option.refdata_match) {
|
|
18
|
+
return componentValue.some(function (v) {
|
|
19
|
+
return v.id === option.refdata_match.id;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
17
22
|
return componentValue.includes(option.value);
|
|
18
23
|
}
|
|
19
24
|
return componentValue === option.value;
|
|
@@ -4,23 +4,37 @@ var _optionIsSelected = _interopRequireDefault(require("./optionIsSelected"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Component.isSelected', ()
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
describe('utils.Component.isSelected', function () {
|
|
8
|
+
var SELECTED_VALUE = 'selectedValue';
|
|
9
|
+
var NOT_SELECTED_VALUE = 'notSelectedValue';
|
|
10
|
+
var OPTIONS = [{
|
|
11
11
|
value: SELECTED_VALUE
|
|
12
12
|
}, {
|
|
13
13
|
value: NOT_SELECTED_VALUE
|
|
14
|
+
}, {
|
|
15
|
+
refdata_match: {
|
|
16
|
+
id: 99
|
|
17
|
+
},
|
|
18
|
+
nested: {
|
|
19
|
+
value: true
|
|
20
|
+
}
|
|
21
|
+
}, {
|
|
22
|
+
refdata_match: {
|
|
23
|
+
id: 100
|
|
24
|
+
},
|
|
25
|
+
nested: {
|
|
26
|
+
value: true
|
|
27
|
+
}
|
|
14
28
|
}];
|
|
15
|
-
|
|
29
|
+
var COMPONENT = {
|
|
16
30
|
id: 'a',
|
|
17
31
|
fieldId: 'a',
|
|
18
32
|
data: {
|
|
19
33
|
options: OPTIONS
|
|
20
34
|
}
|
|
21
35
|
};
|
|
22
|
-
it('should properly identify which option is selected for checkboxes', ()
|
|
23
|
-
|
|
36
|
+
it('should properly identify which option is selected for checkboxes', function () {
|
|
37
|
+
var PAGE = {
|
|
24
38
|
formData: {
|
|
25
39
|
a: [SELECTED_VALUE]
|
|
26
40
|
}
|
|
@@ -29,8 +43,20 @@ describe('utils.Component.isSelected', () => {
|
|
|
29
43
|
expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[0])).toEqual(true);
|
|
30
44
|
expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[1])).toEqual(false);
|
|
31
45
|
});
|
|
32
|
-
it('should properly identify which option is selected for
|
|
33
|
-
|
|
46
|
+
it('should properly identify which option is selected for checkboxes using refdata_match', function () {
|
|
47
|
+
var PAGE = {
|
|
48
|
+
formData: {
|
|
49
|
+
a: [{
|
|
50
|
+
id: 99
|
|
51
|
+
}]
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
COMPONENT.type = 'checkboxes';
|
|
55
|
+
expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[2])).toEqual(true);
|
|
56
|
+
expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[3])).toEqual(false);
|
|
57
|
+
});
|
|
58
|
+
it('should properly identify which option is selected for radios', function () {
|
|
59
|
+
var PAGE = {
|
|
34
60
|
formData: {
|
|
35
61
|
a: SELECTED_VALUE
|
|
36
62
|
}
|