@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.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/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- 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 +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- 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 +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
|
|
4
|
-
function _interopRequireDefault(
|
|
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); }
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
5
|
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
6
|
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(
|
|
9
|
-
function _toPropertyKey(
|
|
10
|
-
function _toPrimitive(
|
|
11
|
-
describe('utils',
|
|
12
|
-
describe('Data',
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
|
|
10
|
+
describe('utils', () => {
|
|
11
|
+
describe('Data', () => {
|
|
13
12
|
// test data
|
|
14
|
-
|
|
13
|
+
const gbCurrency = {
|
|
15
14
|
currencyName: 'Great British Pounds',
|
|
16
15
|
currencyCode: 'GBP',
|
|
17
16
|
hint: 'hint',
|
|
@@ -19,7 +18,7 @@ describe('utils', function () {
|
|
|
19
18
|
label: 'GBP',
|
|
20
19
|
slangTerm: 'quid'
|
|
21
20
|
};
|
|
22
|
-
|
|
21
|
+
const usCurrency = {
|
|
23
22
|
currencyName: 'United States Dollars',
|
|
24
23
|
currencyCode: 'USD',
|
|
25
24
|
hint: 'hint',
|
|
@@ -28,7 +27,7 @@ describe('utils', function () {
|
|
|
28
27
|
slangTerm: 'bucks',
|
|
29
28
|
synonyms: ['greenbacks']
|
|
30
29
|
};
|
|
31
|
-
|
|
30
|
+
const options = {
|
|
32
31
|
alpha: {
|
|
33
32
|
value: 'a',
|
|
34
33
|
label: 'Alpha',
|
|
@@ -50,30 +49,30 @@ describe('utils', function () {
|
|
|
50
49
|
hint: 'hint'
|
|
51
50
|
}
|
|
52
51
|
};
|
|
53
|
-
|
|
54
|
-
describe('getAutocompleteSource',
|
|
55
|
-
it('should handle a null config',
|
|
56
|
-
|
|
52
|
+
const testCurrencies = [gbCurrency, usCurrency];
|
|
53
|
+
describe('getAutocompleteSource', () => {
|
|
54
|
+
it('should handle a null config', () => {
|
|
55
|
+
const SOURCE = (0, _getAutocompleteSource.default)(null);
|
|
57
56
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
58
|
-
SOURCE('query',
|
|
57
|
+
SOURCE('query', results => {
|
|
59
58
|
expect(Array.isArray(results)).toBeTruthy();
|
|
60
59
|
expect(results.length).toEqual(0);
|
|
61
60
|
});
|
|
62
61
|
});
|
|
63
|
-
describe('without custom item labels',
|
|
64
|
-
it('should get any specified options from the config',
|
|
65
|
-
|
|
62
|
+
describe('without custom item labels', () => {
|
|
63
|
+
it('should get any specified options from the config', () => {
|
|
64
|
+
const CONFIG = {
|
|
66
65
|
data: {
|
|
67
66
|
options: [options.alpha, options.bravo]
|
|
68
67
|
}
|
|
69
68
|
};
|
|
70
|
-
|
|
69
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
71
70
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
72
|
-
SOURCE('a',
|
|
71
|
+
SOURCE('a', results => {
|
|
73
72
|
expect(results.length).toEqual(2);
|
|
74
73
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
75
74
|
});
|
|
76
|
-
SOURCE('al',
|
|
75
|
+
SOURCE('al', results => {
|
|
77
76
|
expect(results.length).toEqual(1);
|
|
78
77
|
expect(results).toEqual([{
|
|
79
78
|
value: 'a',
|
|
@@ -82,72 +81,72 @@ describe('utils', function () {
|
|
|
82
81
|
}]);
|
|
83
82
|
});
|
|
84
83
|
});
|
|
85
|
-
it('should handle an empty query',
|
|
86
|
-
|
|
84
|
+
it('should handle an empty query', () => {
|
|
85
|
+
const CONFIG = {
|
|
87
86
|
data: {
|
|
88
87
|
options: [options.alpha, options.bravo]
|
|
89
88
|
}
|
|
90
89
|
};
|
|
91
|
-
|
|
92
|
-
SOURCE('',
|
|
90
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
91
|
+
SOURCE('', results => {
|
|
93
92
|
expect(results.length).toEqual(2);
|
|
94
93
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
95
94
|
});
|
|
96
95
|
});
|
|
97
|
-
it('should handle an undefined query',
|
|
98
|
-
|
|
96
|
+
it('should handle an undefined query', () => {
|
|
97
|
+
const CONFIG = {
|
|
99
98
|
data: {
|
|
100
99
|
options: [options.alpha, options.bravo]
|
|
101
100
|
}
|
|
102
101
|
};
|
|
103
|
-
|
|
104
|
-
SOURCE(undefined,
|
|
102
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
103
|
+
SOURCE(undefined, results => {
|
|
105
104
|
expect(results.length).toEqual(2);
|
|
106
105
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
107
106
|
});
|
|
108
107
|
});
|
|
109
|
-
it('should handle a null query',
|
|
110
|
-
|
|
108
|
+
it('should handle a null query', () => {
|
|
109
|
+
const CONFIG = {
|
|
111
110
|
data: {
|
|
112
111
|
options: [options.alpha, options.bravo]
|
|
113
112
|
}
|
|
114
113
|
};
|
|
115
|
-
|
|
116
|
-
SOURCE(null,
|
|
114
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
115
|
+
SOURCE(null, results => {
|
|
117
116
|
expect(results.length).toEqual(2);
|
|
118
117
|
expect(results).toEqual([options.alpha, options.bravo]);
|
|
119
118
|
});
|
|
120
119
|
});
|
|
121
|
-
it('should handle a missing label on an option',
|
|
122
|
-
|
|
120
|
+
it('should handle a missing label on an option', () => {
|
|
121
|
+
const CONFIG = {
|
|
123
122
|
data: {
|
|
124
123
|
options: [options.alpha, {
|
|
125
124
|
value: 'b'
|
|
126
125
|
}]
|
|
127
126
|
}
|
|
128
127
|
};
|
|
129
|
-
|
|
128
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
130
129
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
131
|
-
SOURCE('a',
|
|
130
|
+
SOURCE('a', results => {
|
|
132
131
|
expect(results.length).toEqual(1);
|
|
133
132
|
expect(results).toEqual([options.alpha]);
|
|
134
133
|
});
|
|
135
134
|
});
|
|
136
|
-
it('should return matches in the right order',
|
|
137
|
-
|
|
135
|
+
it('should return matches in the right order', () => {
|
|
136
|
+
const CONFIG = {
|
|
138
137
|
data: {
|
|
139
138
|
options: [options.alIncluded, options.alStart, options.bravo, options.alpha]
|
|
140
139
|
}
|
|
141
140
|
};
|
|
142
|
-
|
|
141
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
143
142
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
144
|
-
SOURCE('al',
|
|
143
|
+
SOURCE('al', results => {
|
|
145
144
|
expect(results.length).toEqual(3);
|
|
146
145
|
expect(results).toEqual([options.alpha, options.alStart, options.alIncluded]);
|
|
147
146
|
});
|
|
148
147
|
});
|
|
149
|
-
it('should match options using a defined synonym',
|
|
150
|
-
|
|
148
|
+
it('should match options using a defined synonym', () => {
|
|
149
|
+
const CONFIG = {
|
|
151
150
|
data: {
|
|
152
151
|
options: [_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
153
152
|
synonyms: ['first']
|
|
@@ -156,9 +155,9 @@ describe('utils', function () {
|
|
|
156
155
|
}]
|
|
157
156
|
}
|
|
158
157
|
};
|
|
159
|
-
|
|
158
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
160
159
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
161
|
-
SOURCE('first',
|
|
160
|
+
SOURCE('first', results => {
|
|
162
161
|
expect(results.length).toEqual(1);
|
|
163
162
|
expect(results).toEqual([_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
164
163
|
synonyms: ['first']
|
|
@@ -166,9 +165,9 @@ describe('utils', function () {
|
|
|
166
165
|
});
|
|
167
166
|
});
|
|
168
167
|
});
|
|
169
|
-
describe('with custom item labels',
|
|
170
|
-
it('should get any specified options from the config',
|
|
171
|
-
|
|
168
|
+
describe('with custom item labels', () => {
|
|
169
|
+
it('should get any specified options from the config', () => {
|
|
170
|
+
const CONFIG = {
|
|
172
171
|
item: {
|
|
173
172
|
value: 'currencyCode',
|
|
174
173
|
label: 'currencyCode',
|
|
@@ -179,19 +178,19 @@ describe('utils', function () {
|
|
|
179
178
|
options: testCurrencies
|
|
180
179
|
}
|
|
181
180
|
};
|
|
182
|
-
|
|
181
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
183
182
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
184
|
-
SOURCE('GB',
|
|
183
|
+
SOURCE('GB', results => {
|
|
185
184
|
expect(results.length).toEqual(1);
|
|
186
185
|
expect(results).toEqual([gbCurrency]);
|
|
187
186
|
});
|
|
188
|
-
SOURCE(' (',
|
|
187
|
+
SOURCE(' (', results => {
|
|
189
188
|
expect(results.length).toEqual(2);
|
|
190
189
|
expect(results).toEqual(testCurrencies);
|
|
191
190
|
});
|
|
192
191
|
});
|
|
193
|
-
it('should handle an empty query',
|
|
194
|
-
|
|
192
|
+
it('should handle an empty query', () => {
|
|
193
|
+
const CONFIG = {
|
|
195
194
|
item: {
|
|
196
195
|
value: 'currencyCode',
|
|
197
196
|
label: 'currencyCode',
|
|
@@ -202,14 +201,14 @@ describe('utils', function () {
|
|
|
202
201
|
options: testCurrencies
|
|
203
202
|
}
|
|
204
203
|
};
|
|
205
|
-
|
|
206
|
-
SOURCE('',
|
|
204
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
205
|
+
SOURCE('', results => {
|
|
207
206
|
expect(results.length).toEqual(2);
|
|
208
207
|
expect(results).toEqual(testCurrencies);
|
|
209
208
|
});
|
|
210
209
|
});
|
|
211
|
-
it('should handle an undefined query',
|
|
212
|
-
|
|
210
|
+
it('should handle an undefined query', () => {
|
|
211
|
+
const CONFIG = {
|
|
213
212
|
item: {
|
|
214
213
|
value: 'currencyCode',
|
|
215
214
|
label: 'currencyCode',
|
|
@@ -220,14 +219,14 @@ describe('utils', function () {
|
|
|
220
219
|
options: testCurrencies
|
|
221
220
|
}
|
|
222
221
|
};
|
|
223
|
-
|
|
224
|
-
SOURCE(undefined,
|
|
222
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
223
|
+
SOURCE(undefined, results => {
|
|
225
224
|
expect(results.length).toEqual(2);
|
|
226
225
|
expect(results).toEqual(testCurrencies);
|
|
227
226
|
});
|
|
228
227
|
});
|
|
229
|
-
it('should handle a null query',
|
|
230
|
-
|
|
228
|
+
it('should handle a null query', () => {
|
|
229
|
+
const CONFIG = {
|
|
231
230
|
item: {
|
|
232
231
|
value: 'currencyCode',
|
|
233
232
|
label: 'currencyCode',
|
|
@@ -238,14 +237,14 @@ describe('utils', function () {
|
|
|
238
237
|
options: testCurrencies
|
|
239
238
|
}
|
|
240
239
|
};
|
|
241
|
-
|
|
242
|
-
SOURCE(null,
|
|
240
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
241
|
+
SOURCE(null, results => {
|
|
243
242
|
expect(results.length).toEqual(2);
|
|
244
243
|
expect(results).toEqual(testCurrencies);
|
|
245
244
|
});
|
|
246
245
|
});
|
|
247
|
-
it('should handle a missing label on an option',
|
|
248
|
-
|
|
246
|
+
it('should handle a missing label on an option', () => {
|
|
247
|
+
const CONFIG = {
|
|
249
248
|
item: {
|
|
250
249
|
value: 'currencyCode',
|
|
251
250
|
label: 'currencyCode',
|
|
@@ -261,9 +260,9 @@ describe('utils', function () {
|
|
|
261
260
|
}]
|
|
262
261
|
}
|
|
263
262
|
};
|
|
264
|
-
|
|
263
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
265
264
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
266
|
-
SOURCE('a',
|
|
265
|
+
SOURCE('a', results => {
|
|
267
266
|
// We expect 2 results here instead of 1 because defining a custom
|
|
268
267
|
// format for item labels means the label is constructed upon processing
|
|
269
268
|
// a query - we're not relying on the 'label' field of the option.
|
|
@@ -277,8 +276,8 @@ describe('utils', function () {
|
|
|
277
276
|
}]);
|
|
278
277
|
});
|
|
279
278
|
});
|
|
280
|
-
it('should match options using a defined synonym',
|
|
281
|
-
|
|
279
|
+
it('should match options using a defined synonym', () => {
|
|
280
|
+
const CONFIG = {
|
|
282
281
|
item: {
|
|
283
282
|
value: 'currencyCode',
|
|
284
283
|
label: 'currencyCode',
|
|
@@ -289,17 +288,15 @@ describe('utils', function () {
|
|
|
289
288
|
options: testCurrencies
|
|
290
289
|
}
|
|
291
290
|
};
|
|
292
|
-
|
|
291
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
293
292
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
294
|
-
SOURCE('greenbacks',
|
|
293
|
+
SOURCE('greenbacks', results => {
|
|
295
294
|
expect(results.length).toEqual(1);
|
|
296
|
-
expect(results).toEqual(testCurrencies.filter(
|
|
297
|
-
return c.currencyCode === 'USD';
|
|
298
|
-
}));
|
|
295
|
+
expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
|
|
299
296
|
});
|
|
300
297
|
});
|
|
301
|
-
it('should match options using defined extra searchable fields',
|
|
302
|
-
|
|
298
|
+
it('should match options using defined extra searchable fields', () => {
|
|
299
|
+
const CONFIG = {
|
|
303
300
|
item: {
|
|
304
301
|
value: 'currencyCode',
|
|
305
302
|
label: 'currencyCode',
|
|
@@ -311,13 +308,11 @@ describe('utils', function () {
|
|
|
311
308
|
options: testCurrencies
|
|
312
309
|
}
|
|
313
310
|
};
|
|
314
|
-
|
|
311
|
+
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
315
312
|
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
316
|
-
SOURCE('buc',
|
|
313
|
+
SOURCE('buc', results => {
|
|
317
314
|
expect(results.length).toEqual(1);
|
|
318
|
-
expect(results).toEqual(testCurrencies.filter(
|
|
319
|
-
return c.currencyCode === 'USD';
|
|
320
|
-
}));
|
|
315
|
+
expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
|
|
321
316
|
});
|
|
322
317
|
});
|
|
323
318
|
});
|
|
@@ -4,46 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var toParts = function toParts(str) {
|
|
15
|
-
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
|
|
7
|
+
const DOT = '.';
|
|
8
|
+
const SLASH = '/';
|
|
9
|
+
const DOT_DOT = "".concat(DOT).concat(DOT);
|
|
10
|
+
const PARENT_PATH = "".concat(DOT).concat(SLASH);
|
|
11
|
+
const toPath = arr => arr.join(DOT);
|
|
12
|
+
const toParts = function (str) {
|
|
13
|
+
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
|
|
16
14
|
return str.split(separator);
|
|
17
15
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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) {
|
|
16
|
+
const isDotDot = str => str === DOT_DOT;
|
|
17
|
+
const isDotOrDotDot = str => [DOT, DOT_DOT].indexOf(str) > -1;
|
|
18
|
+
const isRelativePath = path => path && path.indexOf(DOT) === 0;
|
|
19
|
+
const standardiseRelativePath = path => {
|
|
28
20
|
if (path.indexOf(PARENT_PATH) === 0) {
|
|
29
21
|
return path;
|
|
30
22
|
}
|
|
31
23
|
return "".concat(PARENT_PATH).concat(path);
|
|
32
24
|
};
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const ascendPath = (startPath, ascent) => {
|
|
26
|
+
const relativePath = standardiseRelativePath(ascent);
|
|
35
27
|
// Always add 1 because we're starting on a leaf node within a "directory".
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
const stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
|
|
29
|
+
const pathParts = startPath ? toParts(startPath) : [];
|
|
38
30
|
if (stepsToClimb >= pathParts.length) {
|
|
39
31
|
return '';
|
|
40
32
|
}
|
|
41
33
|
return toPath(pathParts.slice(0, -stepsToClimb));
|
|
42
34
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return !isDotOrDotDot(str);
|
|
46
|
-
});
|
|
35
|
+
const descendPath = (startPath, descent) => {
|
|
36
|
+
const stepsDown = toParts(descent, SLASH).filter(str => !isDotOrDotDot(str));
|
|
47
37
|
return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
|
|
48
38
|
};
|
|
49
39
|
|
|
@@ -66,7 +56,7 @@ var descendPath = function descendPath(startPath, descent) {
|
|
|
66
56
|
* getDataPath('../../relative.path', 'this.is.the.current.path');
|
|
67
57
|
* // => 'this.is.relative.path'
|
|
68
58
|
*/
|
|
69
|
-
|
|
59
|
+
const getDataPath = (path, currentPath) => {
|
|
70
60
|
if (isRelativePath(path)) {
|
|
71
61
|
return descendPath(ascendPath(currentPath, path), path);
|
|
72
62
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getDataPath = _interopRequireDefault(require("./getDataPath"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('utils.Data.getDataPath',
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('utils.Data.getDataPath', () => {
|
|
6
|
+
const CURRENT_PATH = 'this.is.the.current.path';
|
|
7
|
+
const RELATIVE = 'relative.path';
|
|
8
|
+
const ABSOLUTE = 'absolute.path';
|
|
9
|
+
const 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", () => {
|
|
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", () => {
|
|
16
16
|
doTest(ABSOLUTE, null, ABSOLUTE);
|
|
17
17
|
});
|
|
18
18
|
[{
|
|
@@ -31,18 +31,18 @@ describe('utils.Data.getDataPath', function () {
|
|
|
31
31
|
p: "../../../../../../../".concat(RELATIVE),
|
|
32
32
|
e: RELATIVE,
|
|
33
33
|
d: 'an inappropriately nested node'
|
|
34
|
-
}].forEach(
|
|
35
|
-
it("should return ".concat(test.d, " appropriately"),
|
|
34
|
+
}].forEach(test => {
|
|
35
|
+
it("should return ".concat(test.d, " appropriately"), () => {
|
|
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"), () => {
|
|
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', () => {
|
|
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', () => {
|
|
46
46
|
doTest(undefined, CURRENT_PATH, undefined);
|
|
47
47
|
});
|
|
48
48
|
});
|
|
@@ -7,41 +7,36 @@ exports.default = void 0;
|
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _Condition = _interopRequireDefault(require("../Condition"));
|
|
9
9
|
var _nestInRefdataOptions = _interopRequireDefault(require("./nestInRefdataOptions"));
|
|
10
|
-
function _interopRequireDefault(
|
|
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); }
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
11
|
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
12
|
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(
|
|
15
|
-
function _toPropertyKey(
|
|
16
|
-
function _toPrimitive(
|
|
13
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Global Imports
|
|
17
16
|
// Local Imports
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
17
|
+
const interpolateOptions = (config, options) => options.map(opt => {
|
|
18
|
+
if (opt.show_when) {
|
|
19
|
+
const result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
|
|
20
|
+
if (!result) {
|
|
21
|
+
return null;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}).filter(function (n) {
|
|
42
|
-
return n;
|
|
23
|
+
}
|
|
24
|
+
if (typeof opt === 'string') {
|
|
25
|
+
return opt;
|
|
26
|
+
}
|
|
27
|
+
if (!opt.value) {
|
|
28
|
+
return opt.label;
|
|
29
|
+
}
|
|
30
|
+
if (config.alternativeHintField) {
|
|
31
|
+
// eslint-disable-next-line no-param-reassign
|
|
32
|
+
opt.hint = opt[config.alternativeHintField];
|
|
33
|
+
}
|
|
34
|
+
return _objectSpread(_objectSpread({}, opt), {}, {
|
|
35
|
+
value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
|
|
36
|
+
label: _copReactComponents.Utils.interpolateString(opt.label, config.formData),
|
|
37
|
+
hint: _copReactComponents.Utils.interpolateString(opt.hint, config.formData)
|
|
43
38
|
});
|
|
44
|
-
};
|
|
39
|
+
}).filter(n => n);
|
|
45
40
|
|
|
46
41
|
/**
|
|
47
42
|
* Returns a list of options templated from a collection specified.
|
|
@@ -55,30 +50,28 @@ var interpolateOptions = function interpolateOptions(config, options) {
|
|
|
55
50
|
* @param {*} collectionName
|
|
56
51
|
* @returns
|
|
57
52
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
});
|
|
53
|
+
const getCollectionOptions = (config, collectionName) => {
|
|
54
|
+
const collectionOptions = config.formData[collectionName].map(collection => ({
|
|
55
|
+
value: _copReactComponents.Utils.interpolateString(config.item.value, collection),
|
|
56
|
+
label: _copReactComponents.Utils.interpolateString(config.item.label, collection),
|
|
57
|
+
hint: _copReactComponents.Utils.interpolateString(config.item.hint, collection)
|
|
58
|
+
}));
|
|
66
59
|
if (config.data.options) {
|
|
67
60
|
return [].concat(collectionOptions, config.data.options);
|
|
68
61
|
}
|
|
69
62
|
return collectionOptions;
|
|
70
63
|
};
|
|
71
|
-
|
|
64
|
+
const getOptions = (config, callback) => {
|
|
72
65
|
if (config) {
|
|
73
66
|
var _config$data, _config$data3, _config$data4;
|
|
74
67
|
if (config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.collection && config !== null && config !== void 0 && config.item) {
|
|
75
68
|
var _config$data2;
|
|
76
|
-
|
|
69
|
+
const combinedOptions = getCollectionOptions(config, config === null || config === void 0 || (_config$data2 = config.data) === null || _config$data2 === void 0 ? void 0 : _config$data2.collection);
|
|
77
70
|
return callback(interpolateOptions(config, combinedOptions));
|
|
78
71
|
}
|
|
79
72
|
if (config.options && config !== null && config !== void 0 && (_config$data3 = config.data) !== null && _config$data3 !== void 0 && _config$data3.options && config !== null && config !== void 0 && (_config$data4 = config.data) !== null && _config$data4 !== void 0 && _config$data4.url) {
|
|
80
|
-
|
|
81
|
-
return callback(interpolateOptions(config,
|
|
73
|
+
const combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
|
|
74
|
+
return callback(interpolateOptions(config, combinedOptions));
|
|
82
75
|
}
|
|
83
76
|
if (config.options) {
|
|
84
77
|
return callback(interpolateOptions(config, config.options));
|