@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.12.0
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 +143 -105
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +942 -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 +131 -102
- package/dist/components/CollectionSummary/CollectionSummary.scss +5 -0
- package/dist/components/CollectionSummary/CollectionSummary.test.js +233 -173
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +57 -48
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +156 -112
- package/dist/components/CollectionSummary/SummaryCard.scss +6 -0
- package/dist/components/CollectionSummary/SummaryCard.test.js +1023 -934
- package/dist/components/CollectionSummary/SummaryCardDetails.js +138 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +15 -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 +73 -70
- 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 +93 -66
- 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 +39 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +74 -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 +44 -44
- 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/json/actions.json +17 -0
- package/dist/json/actionsNoSave.json +17 -0
- 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 +113 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +320 -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/deleteValues.js +22 -0
- package/dist/utils/Data/deleteValues.test.js +57 -0
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +100 -85
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +31 -24
- package/dist/utils/Data/getOptions.test.js +53 -35
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +3 -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/deleteValueInFormData.js +26 -0
- package/dist/utils/Operate/deleteValueInFormData.test.js +60 -0
- 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 +11 -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 +10 -7
- package/dist/utils/Validate/additional/index.test.js +78 -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/mustBeOneOf.js +21 -0
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +36 -0
- 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
|
@@ -2,164 +2,173 @@
|
|
|
2
2
|
|
|
3
3
|
var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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('Data', function () {
|
|
9
13
|
// test data
|
|
10
|
-
|
|
14
|
+
var gbCurrency = {
|
|
11
15
|
currencyName: 'Great British Pounds',
|
|
12
16
|
currencyCode: 'GBP',
|
|
17
|
+
hint: 'hint',
|
|
13
18
|
value: 'GBP',
|
|
14
19
|
label: 'GBP',
|
|
15
20
|
slangTerm: 'quid'
|
|
16
21
|
};
|
|
17
|
-
|
|
22
|
+
var usCurrency = {
|
|
18
23
|
currencyName: 'United States Dollars',
|
|
19
24
|
currencyCode: 'USD',
|
|
25
|
+
hint: 'hint',
|
|
20
26
|
value: 'USD',
|
|
21
27
|
label: 'USD',
|
|
22
28
|
slangTerm: 'bucks',
|
|
23
29
|
synonyms: ['greenbacks']
|
|
24
30
|
};
|
|
25
|
-
|
|
31
|
+
var options = {
|
|
26
32
|
alpha: {
|
|
27
33
|
value: 'a',
|
|
28
|
-
label: 'Alpha'
|
|
34
|
+
label: 'Alpha',
|
|
35
|
+
hint: 'hint'
|
|
29
36
|
},
|
|
30
37
|
bravo: {
|
|
31
38
|
value: 'b',
|
|
32
|
-
label: 'Bravo'
|
|
39
|
+
label: 'Bravo',
|
|
40
|
+
hint: 'hint'
|
|
33
41
|
},
|
|
34
42
|
alIncluded: {
|
|
35
43
|
value: 'c',
|
|
36
|
-
label: 'Call me alan'
|
|
44
|
+
label: 'Call me alan',
|
|
45
|
+
hint: 'hint'
|
|
37
46
|
},
|
|
38
47
|
alStart: {
|
|
39
48
|
value: 'd',
|
|
40
|
-
label: 'Word Alphabet'
|
|
49
|
+
label: 'Word Alphabet',
|
|
50
|
+
hint: 'hint'
|
|
41
51
|
}
|
|
42
52
|
};
|
|
43
|
-
|
|
44
|
-
describe('getAutocompleteSource', ()
|
|
45
|
-
it('should handle a null config', ()
|
|
46
|
-
|
|
53
|
+
var testCurrencies = [gbCurrency, usCurrency];
|
|
54
|
+
describe('getAutocompleteSource', function () {
|
|
55
|
+
it('should handle a null config', function () {
|
|
56
|
+
var SOURCE = (0, _getAutocompleteSource.default)(null);
|
|
47
57
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
48
|
-
SOURCE('query', results
|
|
58
|
+
SOURCE('query', function (results) {
|
|
49
59
|
expect(Array.isArray(results)).toBeTruthy();
|
|
50
60
|
expect(results.length).toEqual(0);
|
|
51
61
|
});
|
|
52
62
|
});
|
|
53
|
-
describe('without custom item labels', ()
|
|
54
|
-
it('should get any specified options from the config', ()
|
|
55
|
-
|
|
63
|
+
describe('without custom item labels', function () {
|
|
64
|
+
it('should get any specified options from the config', function () {
|
|
65
|
+
var CONFIG = {
|
|
56
66
|
data: {
|
|
57
67
|
options: [options.alpha, options.bravo]
|
|
58
68
|
}
|
|
59
69
|
};
|
|
60
|
-
|
|
70
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
61
71
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
62
|
-
SOURCE('a', results
|
|
72
|
+
SOURCE('a', function (results) {
|
|
63
73
|
expect(results.length).toEqual(2);
|
|
64
74
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
65
75
|
});
|
|
66
|
-
SOURCE('al', results
|
|
76
|
+
SOURCE('al', function (results) {
|
|
67
77
|
expect(results.length).toEqual(1);
|
|
68
78
|
expect(results).toEqual([{
|
|
69
79
|
value: 'a',
|
|
70
|
-
label: 'Alpha'
|
|
80
|
+
label: 'Alpha',
|
|
81
|
+
hint: 'hint'
|
|
71
82
|
}]);
|
|
72
83
|
});
|
|
73
84
|
});
|
|
74
|
-
it('should handle an empty query', ()
|
|
75
|
-
|
|
85
|
+
it('should handle an empty query', function () {
|
|
86
|
+
var CONFIG = {
|
|
76
87
|
data: {
|
|
77
88
|
options: [options.alpha, options.bravo]
|
|
78
89
|
}
|
|
79
90
|
};
|
|
80
|
-
|
|
81
|
-
SOURCE('', results
|
|
91
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
92
|
+
SOURCE('', function (results) {
|
|
82
93
|
expect(results.length).toEqual(2);
|
|
83
94
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
84
95
|
});
|
|
85
96
|
});
|
|
86
|
-
it('should handle an undefined query', ()
|
|
87
|
-
|
|
97
|
+
it('should handle an undefined query', function () {
|
|
98
|
+
var CONFIG = {
|
|
88
99
|
data: {
|
|
89
100
|
options: [options.alpha, options.bravo]
|
|
90
101
|
}
|
|
91
102
|
};
|
|
92
|
-
|
|
93
|
-
SOURCE(undefined, results
|
|
103
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
104
|
+
SOURCE(undefined, function (results) {
|
|
94
105
|
expect(results.length).toEqual(2);
|
|
95
106
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
96
107
|
});
|
|
97
108
|
});
|
|
98
|
-
it('should handle a null query', ()
|
|
99
|
-
|
|
109
|
+
it('should handle a null query', function () {
|
|
110
|
+
var CONFIG = {
|
|
100
111
|
data: {
|
|
101
112
|
options: [options.alpha, options.bravo]
|
|
102
113
|
}
|
|
103
114
|
};
|
|
104
|
-
|
|
105
|
-
SOURCE(null, results
|
|
115
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
116
|
+
SOURCE(null, function (results) {
|
|
106
117
|
expect(results.length).toEqual(2);
|
|
107
118
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
108
119
|
});
|
|
109
120
|
});
|
|
110
|
-
it('should handle a missing label on an option', ()
|
|
111
|
-
|
|
121
|
+
it('should handle a missing label on an option', function () {
|
|
122
|
+
var CONFIG = {
|
|
112
123
|
data: {
|
|
113
124
|
options: [options.alpha, {
|
|
114
125
|
value: 'b'
|
|
115
126
|
}]
|
|
116
127
|
}
|
|
117
128
|
};
|
|
118
|
-
|
|
129
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
119
130
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
120
|
-
SOURCE('a', results
|
|
131
|
+
SOURCE('a', function (results) {
|
|
121
132
|
expect(results.length).toEqual(1);
|
|
122
133
|
expect(results).toEqual([options.alpha]);
|
|
123
134
|
});
|
|
124
135
|
});
|
|
125
|
-
it('should return matches in the right order', ()
|
|
126
|
-
|
|
136
|
+
it('should return matches in the right order', function () {
|
|
137
|
+
var CONFIG = {
|
|
127
138
|
data: {
|
|
128
139
|
options: [options.alIncluded, options.alStart, options.bravo, options.alpha]
|
|
129
140
|
}
|
|
130
141
|
};
|
|
131
|
-
|
|
142
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
132
143
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
133
|
-
SOURCE('al', results
|
|
144
|
+
SOURCE('al', function (results) {
|
|
134
145
|
expect(results.length).toEqual(3);
|
|
135
146
|
expect(results).toEqual([options.alpha, options.alStart, options.alIncluded]);
|
|
136
147
|
});
|
|
137
148
|
});
|
|
138
|
-
it('should match options using a defined synonym', ()
|
|
139
|
-
|
|
149
|
+
it('should match options using a defined synonym', function () {
|
|
150
|
+
var CONFIG = {
|
|
140
151
|
data: {
|
|
141
|
-
options: [{
|
|
142
|
-
...options.alpha,
|
|
152
|
+
options: [_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
143
153
|
synonyms: ['first']
|
|
144
|
-
}, {
|
|
154
|
+
}), {
|
|
145
155
|
value: 'b'
|
|
146
156
|
}]
|
|
147
157
|
}
|
|
148
158
|
};
|
|
149
|
-
|
|
159
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
150
160
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
151
|
-
SOURCE('first', results
|
|
161
|
+
SOURCE('first', function (results) {
|
|
152
162
|
expect(results.length).toEqual(1);
|
|
153
|
-
expect(results).toEqual([{
|
|
154
|
-
...options.alpha,
|
|
163
|
+
expect(results).toEqual([_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
155
164
|
synonyms: ['first']
|
|
156
|
-
}]);
|
|
165
|
+
})]);
|
|
157
166
|
});
|
|
158
167
|
});
|
|
159
168
|
});
|
|
160
|
-
describe('with custom item labels', ()
|
|
161
|
-
it('should get any specified options from the config', ()
|
|
162
|
-
|
|
169
|
+
describe('with custom item labels', function () {
|
|
170
|
+
it('should get any specified options from the config', function () {
|
|
171
|
+
var CONFIG = {
|
|
163
172
|
item: {
|
|
164
173
|
value: 'currencyCode',
|
|
165
174
|
label: 'currencyCode',
|
|
@@ -170,19 +179,19 @@ describe('utils', () => {
|
|
|
170
179
|
options: testCurrencies
|
|
171
180
|
}
|
|
172
181
|
};
|
|
173
|
-
|
|
182
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
174
183
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
175
|
-
SOURCE('GB', results
|
|
184
|
+
SOURCE('GB', function (results) {
|
|
176
185
|
expect(results.length).toEqual(1);
|
|
177
186
|
expect(results).toEqual([gbCurrency]);
|
|
178
187
|
});
|
|
179
|
-
SOURCE(' (', results
|
|
188
|
+
SOURCE(' (', function (results) {
|
|
180
189
|
expect(results.length).toEqual(2);
|
|
181
190
|
expect(results).toEqual(testCurrencies);
|
|
182
191
|
});
|
|
183
192
|
});
|
|
184
|
-
it('should handle an empty query', ()
|
|
185
|
-
|
|
193
|
+
it('should handle an empty query', function () {
|
|
194
|
+
var CONFIG = {
|
|
186
195
|
item: {
|
|
187
196
|
value: 'currencyCode',
|
|
188
197
|
label: 'currencyCode',
|
|
@@ -193,14 +202,14 @@ describe('utils', () => {
|
|
|
193
202
|
options: testCurrencies
|
|
194
203
|
}
|
|
195
204
|
};
|
|
196
|
-
|
|
197
|
-
SOURCE('', results
|
|
205
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
206
|
+
SOURCE('', function (results) {
|
|
198
207
|
expect(results.length).toEqual(2);
|
|
199
208
|
expect(results).toEqual(testCurrencies);
|
|
200
209
|
});
|
|
201
210
|
});
|
|
202
|
-
it('should handle an undefined query', ()
|
|
203
|
-
|
|
211
|
+
it('should handle an undefined query', function () {
|
|
212
|
+
var CONFIG = {
|
|
204
213
|
item: {
|
|
205
214
|
value: 'currencyCode',
|
|
206
215
|
label: 'currencyCode',
|
|
@@ -211,14 +220,14 @@ describe('utils', () => {
|
|
|
211
220
|
options: testCurrencies
|
|
212
221
|
}
|
|
213
222
|
};
|
|
214
|
-
|
|
215
|
-
SOURCE(undefined, results
|
|
223
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
224
|
+
SOURCE(undefined, function (results) {
|
|
216
225
|
expect(results.length).toEqual(2);
|
|
217
226
|
expect(results).toEqual(testCurrencies);
|
|
218
227
|
});
|
|
219
228
|
});
|
|
220
|
-
it('should handle a null query', ()
|
|
221
|
-
|
|
229
|
+
it('should handle a null query', function () {
|
|
230
|
+
var CONFIG = {
|
|
222
231
|
item: {
|
|
223
232
|
value: 'currencyCode',
|
|
224
233
|
label: 'currencyCode',
|
|
@@ -229,14 +238,14 @@ describe('utils', () => {
|
|
|
229
238
|
options: testCurrencies
|
|
230
239
|
}
|
|
231
240
|
};
|
|
232
|
-
|
|
233
|
-
SOURCE(null, results
|
|
241
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
242
|
+
SOURCE(null, function (results) {
|
|
234
243
|
expect(results.length).toEqual(2);
|
|
235
244
|
expect(results).toEqual(testCurrencies);
|
|
236
245
|
});
|
|
237
246
|
});
|
|
238
|
-
it('should handle a missing label on an option', ()
|
|
239
|
-
|
|
247
|
+
it('should handle a missing label on an option', function () {
|
|
248
|
+
var CONFIG = {
|
|
240
249
|
item: {
|
|
241
250
|
value: 'currencyCode',
|
|
242
251
|
label: 'currencyCode',
|
|
@@ -247,13 +256,14 @@ describe('utils', () => {
|
|
|
247
256
|
options: [gbCurrency, {
|
|
248
257
|
currencyName: 'United States Dollars',
|
|
249
258
|
currencyCode: 'USD',
|
|
259
|
+
hint: 'hint',
|
|
250
260
|
value: 'USD'
|
|
251
261
|
}]
|
|
252
262
|
}
|
|
253
263
|
};
|
|
254
|
-
|
|
264
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
255
265
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
256
|
-
SOURCE('a', results
|
|
266
|
+
SOURCE('a', function (results) {
|
|
257
267
|
// We expect 2 results here instead of 1 because defining a custom
|
|
258
268
|
// format for item labels means the label is constructed upon processing
|
|
259
269
|
// a query - we're not relying on the 'label' field of the option.
|
|
@@ -261,13 +271,14 @@ describe('utils', () => {
|
|
|
261
271
|
expect(results).toEqual([gbCurrency, {
|
|
262
272
|
currencyName: 'United States Dollars',
|
|
263
273
|
currencyCode: 'USD',
|
|
274
|
+
hint: 'hint',
|
|
264
275
|
value: 'USD',
|
|
265
276
|
label: ''
|
|
266
277
|
}]);
|
|
267
278
|
});
|
|
268
279
|
});
|
|
269
|
-
it('should match options using a defined synonym', ()
|
|
270
|
-
|
|
280
|
+
it('should match options using a defined synonym', function () {
|
|
281
|
+
var CONFIG = {
|
|
271
282
|
item: {
|
|
272
283
|
value: 'currencyCode',
|
|
273
284
|
label: 'currencyCode',
|
|
@@ -278,15 +289,17 @@ describe('utils', () => {
|
|
|
278
289
|
options: testCurrencies
|
|
279
290
|
}
|
|
280
291
|
};
|
|
281
|
-
|
|
292
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
282
293
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
283
|
-
SOURCE('greenbacks', results
|
|
294
|
+
SOURCE('greenbacks', function (results) {
|
|
284
295
|
expect(results.length).toEqual(1);
|
|
285
|
-
expect(results).toEqual(testCurrencies.filter(
|
|
296
|
+
expect(results).toEqual(testCurrencies.filter(function (c) {
|
|
297
|
+
return c.currencyCode === 'USD';
|
|
298
|
+
}));
|
|
286
299
|
});
|
|
287
300
|
});
|
|
288
|
-
it('should match options using defined extra searchable fields', ()
|
|
289
|
-
|
|
301
|
+
it('should match options using defined extra searchable fields', function () {
|
|
302
|
+
var CONFIG = {
|
|
290
303
|
item: {
|
|
291
304
|
value: 'currencyCode',
|
|
292
305
|
label: 'currencyCode',
|
|
@@ -298,11 +311,13 @@ describe('utils', () => {
|
|
|
298
311
|
options: testCurrencies
|
|
299
312
|
}
|
|
300
313
|
};
|
|
301
|
-
|
|
314
|
+
var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
302
315
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
303
|
-
SOURCE('buc', results
|
|
316
|
+
SOURCE('buc', function (results) {
|
|
304
317
|
expect(results.length).toEqual(1);
|
|
305
|
-
expect(results).toEqual(testCurrencies.filter(
|
|
318
|
+
expect(results).toEqual(testCurrencies.filter(function (c) {
|
|
319
|
+
return c.currencyCode === 'USD';
|
|
320
|
+
}));
|
|
306
321
|
});
|
|
307
322
|
});
|
|
308
323
|
});
|
|
@@ -4,36 +4,46 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
var DOT = '.';
|
|
8
|
+
var SLASH = '/';
|
|
9
|
+
var DOT_DOT = "".concat(DOT).concat(DOT);
|
|
10
|
+
var PARENT_PATH = "".concat(DOT).concat(SLASH);
|
|
11
|
+
var toPath = function toPath(arr) {
|
|
12
|
+
return arr.join(DOT);
|
|
13
|
+
};
|
|
14
|
+
var toParts = function toParts(str) {
|
|
15
|
+
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
|
|
14
16
|
return str.split(separator);
|
|
15
17
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
var isDotDot = function isDotDot(str) {
|
|
19
|
+
return str === DOT_DOT;
|
|
20
|
+
};
|
|
21
|
+
var isDotOrDotDot = function isDotOrDotDot(str) {
|
|
22
|
+
return [DOT, DOT_DOT].indexOf(str) > -1;
|
|
23
|
+
};
|
|
24
|
+
var isRelativePath = function isRelativePath(path) {
|
|
25
|
+
return path && path.indexOf(DOT) === 0;
|
|
26
|
+
};
|
|
27
|
+
var standardiseRelativePath = function standardiseRelativePath(path) {
|
|
20
28
|
if (path.indexOf(PARENT_PATH) === 0) {
|
|
21
29
|
return path;
|
|
22
30
|
}
|
|
23
31
|
return "".concat(PARENT_PATH).concat(path);
|
|
24
32
|
};
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
var ascendPath = function ascendPath(startPath, ascent) {
|
|
34
|
+
var relativePath = standardiseRelativePath(ascent);
|
|
27
35
|
// Always add 1 because we're starting on a leaf node within a "directory".
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
var stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
|
|
37
|
+
var pathParts = startPath ? toParts(startPath) : [];
|
|
30
38
|
if (stepsToClimb >= pathParts.length) {
|
|
31
39
|
return '';
|
|
32
40
|
}
|
|
33
41
|
return toPath(pathParts.slice(0, -stepsToClimb));
|
|
34
42
|
};
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
var descendPath = function descendPath(startPath, descent) {
|
|
44
|
+
var stepsDown = toParts(descent, SLASH).filter(function (str) {
|
|
45
|
+
return !isDotOrDotDot(str);
|
|
46
|
+
});
|
|
37
47
|
return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
|
|
38
48
|
};
|
|
39
49
|
|
|
@@ -56,7 +66,7 @@ const descendPath = (startPath, descent) => {
|
|
|
56
66
|
* getDataPath('../../relative.path', 'this.is.the.current.path');
|
|
57
67
|
* // => 'this.is.relative.path'
|
|
58
68
|
*/
|
|
59
|
-
|
|
69
|
+
var getDataPath = function getDataPath(path, currentPath) {
|
|
60
70
|
if (isRelativePath(path)) {
|
|
61
71
|
return descendPath(ascendPath(currentPath, path), path);
|
|
62
72
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
var _getDataPath = _interopRequireDefault(require("./getDataPath"));
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('utils.Data.getDataPath', ()
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
describe('utils.Data.getDataPath', function () {
|
|
6
|
+
var CURRENT_PATH = 'this.is.the.current.path';
|
|
7
|
+
var RELATIVE = 'relative.path';
|
|
8
|
+
var ABSOLUTE = 'absolute.path';
|
|
9
|
+
var doTest = function doTest(path, currentPath, expected) {
|
|
10
10
|
expect((0, _getDataPath.default)(path, currentPath)).toEqual(expected);
|
|
11
11
|
};
|
|
12
|
-
it("should return an absolute path appropriately", ()
|
|
12
|
+
it("should return an absolute path appropriately", function () {
|
|
13
13
|
doTest(ABSOLUTE, CURRENT_PATH, ABSOLUTE);
|
|
14
14
|
});
|
|
15
|
-
it("should return an absolute path appropriately where the current path is null", ()
|
|
15
|
+
it("should return an absolute path appropriately where the current path is null", function () {
|
|
16
16
|
doTest(ABSOLUTE, null, ABSOLUTE);
|
|
17
17
|
});
|
|
18
18
|
[{
|
|
@@ -31,18 +31,18 @@ describe('utils.Data.getDataPath', () => {
|
|
|
31
31
|
p: "../../../../../../../".concat(RELATIVE),
|
|
32
32
|
e: RELATIVE,
|
|
33
33
|
d: 'an inappropriately nested node'
|
|
34
|
-
}].forEach(test
|
|
35
|
-
it("should return ".concat(test.d, " appropriately"), ()
|
|
34
|
+
}].forEach(function (test) {
|
|
35
|
+
it("should return ".concat(test.d, " appropriately"), function () {
|
|
36
36
|
doTest(test.p, CURRENT_PATH, test.e);
|
|
37
37
|
});
|
|
38
|
-
it("should return ".concat(test.d, " appropriately where the current path is null"), ()
|
|
38
|
+
it("should return ".concat(test.d, " appropriately where the current path is null"), function () {
|
|
39
39
|
doTest(test.p, null, RELATIVE);
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
|
-
it('should handle a null path and return null', ()
|
|
42
|
+
it('should handle a null path and return null', function () {
|
|
43
43
|
doTest(null, CURRENT_PATH, null);
|
|
44
44
|
});
|
|
45
|
-
it('should handle an undefined path and return undefined', ()
|
|
45
|
+
it('should handle an undefined path and return undefined', function () {
|
|
46
46
|
doTest(undefined, CURRENT_PATH, undefined);
|
|
47
47
|
});
|
|
48
48
|
});
|
|
@@ -8,35 +8,42 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
|
8
8
|
var _Condition = _interopRequireDefault(require("../Condition"));
|
|
9
9
|
var _nestInRefdataOptions = _interopRequireDefault(require("./nestInRefdataOptions"));
|
|
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
|
-
|
|
19
|
-
|
|
18
|
+
var interpolateOptions = function interpolateOptions(config, options) {
|
|
19
|
+
return options.map(function (opt) {
|
|
20
|
+
if (opt.show_when) {
|
|
21
|
+
var result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
|
|
22
|
+
if (!result) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
20
25
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
if (typeof opt === 'string') {
|
|
27
|
+
return opt;
|
|
28
|
+
}
|
|
29
|
+
if (config.alternativeHintField) {
|
|
30
|
+
// eslint-disable-next-line no-param-reassign
|
|
31
|
+
opt.hint = opt[config.alternativeHintField];
|
|
32
|
+
}
|
|
33
|
+
return _objectSpread(_objectSpread({}, opt), {}, {
|
|
34
|
+
value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
|
|
35
|
+
label: _copReactComponents.Utils.interpolateString(opt.label, config.formData),
|
|
36
|
+
hint: _copReactComponents.Utils.interpolateString(opt.hint, config.formData)
|
|
37
|
+
});
|
|
38
|
+
}).filter(function (n) {
|
|
39
|
+
return n;
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
var getOptions = function getOptions(config, callback) {
|
|
36
43
|
if (config) {
|
|
37
44
|
var _config$data, _config$data2;
|
|
38
45
|
if (config.options && config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.options && config !== null && config !== void 0 && (_config$data2 = config.data) !== null && _config$data2 !== void 0 && _config$data2.url) {
|
|
39
|
-
|
|
46
|
+
var combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
|
|
40
47
|
return callback(interpolateOptions(config, combinedOptions));
|
|
41
48
|
}
|
|
42
49
|
if (config.options) {
|