@ukhomeoffice/cop-react-form-renderer 5.14.2 → 5.14.4
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 +15 -15
- package/dist/components/CheckYourAnswers/Answer.test.js +94 -128
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +99 -129
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +291 -501
- package/dist/components/CheckYourAnswers/index.js +2 -3
- package/dist/components/CollectionPage/CollectionPage.js +64 -58
- package/dist/components/CollectionPage/CollectionPage.test.js +212 -238
- package/dist/components/CollectionPage/index.js +2 -3
- package/dist/components/FormComponent/Collection.js +77 -113
- package/dist/components/FormComponent/Collection.test.js +688 -787
- package/dist/components/FormComponent/Container.js +44 -43
- package/dist/components/FormComponent/Container.test.js +316 -346
- package/dist/components/FormComponent/FormComponent.js +58 -64
- package/dist/components/FormComponent/FormComponent.test.js +180 -219
- package/dist/components/FormComponent/helpers/addLabel.js +5 -9
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +2 -3
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +2 -2
- 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 +2 -3
- package/dist/components/FormPage/FormPage.js +65 -79
- package/dist/components/FormPage/FormPage.test.js +134 -170
- package/dist/components/FormPage/index.js +2 -3
- package/dist/components/FormRenderer/FormRenderer.js +151 -193
- package/dist/components/FormRenderer/FormRenderer.test.js +598 -920
- package/dist/components/FormRenderer/handlers/cyaAction.js +4 -5
- package/dist/components/FormRenderer/handlers/getPageId.js +2 -5
- 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 +3 -4
- package/dist/components/FormRenderer/handlers/navigate.js +5 -6
- package/dist/components/FormRenderer/handlers/submissionError.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.js +2 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +10 -10
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +2 -5
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -27
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +17 -17
- package/dist/components/FormRenderer/helpers/getCYA.js +6 -9
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -10
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +19 -34
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +3 -6
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -13
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +98 -92
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +66 -66
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
- package/dist/components/FormRenderer/helpers/index.js +3 -4
- package/dist/components/FormRenderer/index.js +2 -3
- package/dist/components/FormRenderer/onCYAAction.js +52 -62
- package/dist/components/FormRenderer/onCYAAction.test.js +146 -138
- package/dist/components/FormRenderer/onPageAction.js +48 -47
- package/dist/components/FormRenderer/onPageAction.test.js +219 -205
- package/dist/components/FormRenderer/onTaskAction.js +12 -17
- package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
- package/dist/components/PageActions/ActionButton.js +15 -19
- package/dist/components/PageActions/ActionButton.test.js +58 -79
- package/dist/components/PageActions/PageActions.js +12 -13
- package/dist/components/PageActions/PageActions.test.js +88 -116
- package/dist/components/PageActions/index.js +2 -3
- package/dist/components/SummaryList/GroupAction.js +15 -23
- package/dist/components/SummaryList/GroupAction.test.js +41 -37
- package/dist/components/SummaryList/RowAction.js +14 -19
- package/dist/components/SummaryList/RowAction.test.js +41 -37
- package/dist/components/SummaryList/SummaryList.js +25 -30
- package/dist/components/SummaryList/SummaryList.test.js +160 -182
- package/dist/components/SummaryList/SummaryListHeadingRow.js +9 -8
- package/dist/components/SummaryList/SummaryListRow.js +9 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +8 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -8
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -8
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +2 -3
- package/dist/components/TaskList/Task.js +22 -33
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +46 -75
- package/dist/components/TaskList/TaskList.test.js +118 -113
- package/dist/components/TaskList/TaskState.js +9 -9
- package/dist/components/TaskList/TaskState.test.js +56 -49
- package/dist/components/TaskList/index.js +2 -3
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +59 -85
- package/dist/context/HooksContext/HooksContext.test.js +28 -36
- package/dist/context/HooksContext/index.js +4 -6
- package/dist/context/ValidationContext/ValidationContext.js +35 -76
- package/dist/context/ValidationContext/ValidationContext.test.js +50 -61
- package/dist/context/ValidationContext/index.js +4 -6
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +17 -43
- package/dist/hooks/useGetRequest.js +61 -106
- package/dist/hooks/useHooks.js +2 -5
- package/dist/hooks/useRefData.js +29 -45
- package/dist/hooks/useValidation.js +2 -5
- package/dist/index.js +15 -17
- package/dist/models/CollectionLabels.js +2 -3
- package/dist/models/ComponentTypes.js +25 -26
- package/dist/models/EventTypes.js +5 -6
- package/dist/models/FormPages.js +5 -6
- package/dist/models/FormTypes.js +9 -10
- package/dist/models/HubFormats.js +4 -5
- package/dist/models/PageAction.js +45 -42
- package/dist/models/TaskStates.js +30 -31
- package/dist/models/index.js +11 -12
- package/dist/setupTests.js +20 -24
- package/dist/utils/CheckYourAnswers/getCYAAction.js +6 -7
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +21 -23
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +18 -20
- package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +72 -72
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +20 -27
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +41 -47
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +71 -78
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +133 -114
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +27 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +16 -23
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
- package/dist/utils/CheckYourAnswers/index.js +3 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +7 -9
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +9 -16
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +19 -20
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +4 -8
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +15 -15
- package/dist/utils/CollectionPage/index.js +3 -4
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -29
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +15 -15
- package/dist/utils/Component/addShowWhen.js +5 -10
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +20 -22
- package/dist/utils/Component/applyToComponentTree.test.js +28 -33
- package/dist/utils/Component/cleanAttributes.js +11 -16
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +7 -9
- package/dist/utils/Component/elevateNestedComponents.test.js +19 -19
- package/dist/utils/Component/getComponent.js +91 -99
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +51 -63
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +41 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -37
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
- 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 +24 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +59 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +19 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +35 -41
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +24 -32
- 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 +14 -14
- package/dist/utils/Component/index.js +3 -4
- package/dist/utils/Component/isEditable.js +3 -7
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -3
- package/dist/utils/Component/optionIsSelected.test.js +10 -10
- package/dist/utils/Component/setupContainerComponentsPath.js +30 -33
- package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
- package/dist/utils/Component/showComponent.js +4 -6
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +6 -6
- package/dist/utils/Condition/index.js +3 -4
- package/dist/utils/Condition/meetsAllConditions.js +9 -10
- package/dist/utils/Condition/meetsAllConditions.test.js +18 -18
- package/dist/utils/Condition/meetsCondition.js +19 -27
- package/dist/utils/Condition/meetsCondition.test.js +377 -377
- package/dist/utils/Condition/meetsOneCondition.js +7 -8
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +15 -21
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +5 -8
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +3 -4
- package/dist/utils/Container/setupNesting.js +17 -24
- package/dist/utils/Container/setupNesting.test.js +28 -31
- package/dist/utils/Container/showContainer.js +5 -10
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +41 -52
- package/dist/utils/Data/applyFormula.test.js +26 -26
- package/dist/utils/Data/getAutocompleteSource.js +11 -14
- package/dist/utils/Data/getAutocompleteSource.test.js +59 -59
- package/dist/utils/Data/getDataPath.js +21 -32
- package/dist/utils/Data/getDataPath.test.js +20 -20
- package/dist/utils/Data/getOptions.js +22 -28
- package/dist/utils/Data/getOptions.test.js +21 -21
- package/dist/utils/Data/getSourceData.js +7 -21
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +3 -4
- package/dist/utils/Data/refDataToOptions.js +12 -17
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +8 -10
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +32 -48
- package/dist/utils/Data/setupFormData.test.js +99 -98
- package/dist/utils/Data/setupRefDataUrlForComponent.js +22 -30
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -12
- package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
- package/dist/utils/FormPage/getFormPage.js +17 -19
- package/dist/utils/FormPage/getFormPage.test.js +49 -48
- package/dist/utils/FormPage/getFormPages.js +9 -15
- package/dist/utils/FormPage/getFormPages.test.js +22 -25
- package/dist/utils/FormPage/getPageActions.js +11 -19
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +6 -9
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -4
- package/dist/utils/FormPage/showFormPage.js +5 -10
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +4 -5
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +21 -29
- package/dist/utils/FormPage/useComponent.test.js +71 -73
- package/dist/utils/Format/formatData.js +2 -3
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -9
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +7 -10
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -7
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +3 -4
- package/dist/utils/Hub/getFormHub.js +3 -4
- package/dist/utils/Hub/getFormHub.test.js +29 -32
- package/dist/utils/Hub/index.js +3 -4
- package/dist/utils/Meta/constants.js +2 -4
- package/dist/utils/Meta/documents/getDocuments.js +2 -6
- package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
- package/dist/utils/Meta/documents/index.js +3 -4
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -19
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
- package/dist/utils/Meta/index.js +3 -4
- package/dist/utils/Operate/checkValueIsTruthy.js +5 -6
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/getFirstOf.js +9 -10
- package/dist/utils/Operate/getFirstOf.test.js +33 -33
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +13 -14
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/index.js +3 -4
- package/dist/utils/Operate/persistValueInFormData.js +7 -8
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +10 -11
- package/dist/utils/Operate/runPageOperations.test.js +36 -37
- package/dist/utils/Operate/setValueInFormData.js +6 -7
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +9 -10
- package/dist/utils/Operate/shouldRun.test.js +22 -28
- package/dist/utils/Validate/additional/conditionallyRequired.js +5 -7
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -9
- package/dist/utils/Validate/additional/index.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeAfter.js +4 -5
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +4 -5
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -14
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +34 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +5 -6
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +6 -7
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +3 -4
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +3 -4
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeShorterThan.js +2 -3
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +4 -7
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +2 -3
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +4 -7
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -25
- package/dist/utils/Validate/index.js +3 -4
- package/dist/utils/Validate/validateCollection.js +22 -29
- package/dist/utils/Validate/validateCollection.test.js +85 -77
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +169 -147
- package/dist/utils/Validate/validateContainer.js +16 -22
- package/dist/utils/Validate/validateContainer.test.js +52 -48
- package/dist/utils/Validate/validateDate.js +14 -21
- package/dist/utils/Validate/validateDate.test.js +28 -29
- package/dist/utils/Validate/validateEmail.js +8 -11
- package/dist/utils/Validate/validateEmail.test.js +26 -26
- package/dist/utils/Validate/validateMultifile.js +6 -10
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +20 -22
- package/dist/utils/Validate/validatePage.test.js +146 -143
- package/dist/utils/Validate/validateRegex.js +6 -10
- package/dist/utils/Validate/validateRegex.test.js +17 -17
- package/dist/utils/Validate/validateRequired.js +6 -9
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +6 -9
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +8 -16
- package/dist/utils/Validate/validateTime.test.js +15 -15
- package/dist/utils/index.js +10 -12
- package/package.json +9 -6
|
@@ -6,30 +6,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
8
|
var _models = require("../../models");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var setupRefDataUrlForComponents = function setupRefDataUrlForComponents(components, data) {
|
|
26
|
-
return components.map(function (component) {
|
|
27
|
-
return setupRefDataUrlForComponent(component, data);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component, data) {
|
|
9
|
+
/* eslint-disable no-use-before-define */
|
|
10
|
+
|
|
11
|
+
// Global imports
|
|
12
|
+
|
|
13
|
+
const setupRefDataForContainer = (container, data) => ({
|
|
14
|
+
...container,
|
|
15
|
+
components: setupRefDataUrlForComponents(container.components, data)
|
|
16
|
+
});
|
|
17
|
+
const setupRefDataForCollection = (collection, data) => ({
|
|
18
|
+
...collection,
|
|
19
|
+
item: setupRefDataUrlForComponents(collection.item, data)
|
|
20
|
+
});
|
|
21
|
+
const setupRefDataUrlForComponents = (components, data) => components.map(component => setupRefDataUrlForComponent(component, data));
|
|
22
|
+
const setupRefDataUrlForComponent = (component, data) => {
|
|
31
23
|
if (component) {
|
|
32
|
-
var _component$data, _component$data2;
|
|
33
24
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
34
25
|
return setupRefDataForContainer(component, data);
|
|
35
26
|
}
|
|
@@ -39,15 +30,16 @@ var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component
|
|
|
39
30
|
if (component.type === _models.ComponentTypes.SELECT) {
|
|
40
31
|
return component;
|
|
41
32
|
}
|
|
42
|
-
if (
|
|
43
|
-
return
|
|
44
|
-
|
|
33
|
+
if (component.data?.url && !component.data?.skipUrlInterpolation) {
|
|
34
|
+
return {
|
|
35
|
+
...component,
|
|
36
|
+
data: {
|
|
37
|
+
...component.data,
|
|
45
38
|
url: _copReactComponents.Utils.interpolateString(component.data.url, data)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
48
41
|
}
|
|
49
42
|
}
|
|
50
43
|
return component;
|
|
51
44
|
};
|
|
52
|
-
var _default = setupRefDataUrlForComponent;
|
|
53
|
-
exports.default = _default;
|
|
45
|
+
var _default = exports.default = setupRefDataUrlForComponent;
|
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDataUrlForComponent"));
|
|
5
|
-
function _interopRequireDefault(
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
6
|
// Local imports
|
|
7
7
|
|
|
8
|
-
describe('utils',
|
|
9
|
-
describe('Data',
|
|
10
|
-
describe('setupRefDataUrlForComponent',
|
|
11
|
-
|
|
8
|
+
describe('utils', () => {
|
|
9
|
+
describe('Data', () => {
|
|
10
|
+
describe('setupRefDataUrlForComponent', () => {
|
|
11
|
+
const DATA = {
|
|
12
12
|
urls: {
|
|
13
13
|
refData: '/ref-data'
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
it('can handle a null component',
|
|
16
|
+
it('can handle a null component', () => {
|
|
17
17
|
expect((0, _setupRefDataUrlForComponent.default)(null, DATA)).toBeNull();
|
|
18
18
|
});
|
|
19
|
-
it('can handle an undefined component',
|
|
19
|
+
it('can handle an undefined component', () => {
|
|
20
20
|
expect((0, _setupRefDataUrlForComponent.default)(undefined, DATA)).toBeUndefined();
|
|
21
21
|
});
|
|
22
|
-
it('can handle a component with no data property',
|
|
23
|
-
|
|
22
|
+
it('can handle a component with no data property', () => {
|
|
23
|
+
const COMPONENT = {
|
|
24
24
|
id: 'component'
|
|
25
25
|
};
|
|
26
26
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
27
27
|
});
|
|
28
|
-
it('can handle a component with no data.url property',
|
|
29
|
-
|
|
28
|
+
it('can handle a component with no data.url property', () => {
|
|
29
|
+
const COMPONENT = {
|
|
30
30
|
id: 'component',
|
|
31
31
|
data: {
|
|
32
32
|
options: []
|
|
@@ -34,8 +34,8 @@ describe('utils', function () {
|
|
|
34
34
|
};
|
|
35
35
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
|
|
36
36
|
});
|
|
37
|
-
it('should appropriately update the component URL',
|
|
38
|
-
|
|
37
|
+
it('should appropriately update the component URL', () => {
|
|
38
|
+
const COMPONENT = {
|
|
39
39
|
id: 'component',
|
|
40
40
|
// eslint-disable-next-line no-template-curly-in-string
|
|
41
41
|
data: {
|
|
@@ -45,12 +45,12 @@ describe('utils', function () {
|
|
|
45
45
|
expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual({
|
|
46
46
|
id: COMPONENT.id,
|
|
47
47
|
data: {
|
|
48
|
-
url:
|
|
48
|
+
url: `${DATA.urls.refData}/v1/teams`
|
|
49
49
|
}
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
|
-
it('should leave a URL alone that does not require replacement',
|
|
53
|
-
|
|
52
|
+
it('should leave a URL alone that does not require replacement', () => {
|
|
53
|
+
const COMPONENT = {
|
|
54
54
|
id: 'component',
|
|
55
55
|
data: {
|
|
56
56
|
url: '/somewhere-else/v1/teams'
|
|
@@ -63,8 +63,8 @@ describe('utils', function () {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
-
it('should appropriately handle a missing value in the data',
|
|
67
|
-
|
|
66
|
+
it('should appropriately handle a missing value in the data', () => {
|
|
67
|
+
const COMPONENT = {
|
|
68
68
|
id: 'component',
|
|
69
69
|
// eslint-disable-next-line no-template-curly-in-string
|
|
70
70
|
data: {
|
|
@@ -78,15 +78,15 @@ describe('utils', function () {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
-
it('should appropriately update the component URLs within a container',
|
|
82
|
-
|
|
81
|
+
it('should appropriately update the component URLs within a container', () => {
|
|
82
|
+
const COMPONENT = {
|
|
83
83
|
id: 'component',
|
|
84
84
|
// eslint-disable-next-line no-template-curly-in-string
|
|
85
85
|
data: {
|
|
86
86
|
url: '${urls.refData}/v1/teams'
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
const CONTAINER = {
|
|
90
90
|
id: 'container',
|
|
91
91
|
type: _models.ComponentTypes.CONTAINER,
|
|
92
92
|
components: [COMPONENT]
|
|
@@ -97,20 +97,20 @@ describe('utils', function () {
|
|
|
97
97
|
components: [{
|
|
98
98
|
id: COMPONENT.id,
|
|
99
99
|
data: {
|
|
100
|
-
url:
|
|
100
|
+
url: `${DATA.urls.refData}/v1/teams`
|
|
101
101
|
}
|
|
102
102
|
}]
|
|
103
103
|
});
|
|
104
104
|
});
|
|
105
|
-
it('should appropriately update the component URLs within a collection',
|
|
106
|
-
|
|
105
|
+
it('should appropriately update the component URLs within a collection', () => {
|
|
106
|
+
const COMPONENT = {
|
|
107
107
|
id: 'component',
|
|
108
108
|
// eslint-disable-next-line no-template-curly-in-string
|
|
109
109
|
data: {
|
|
110
110
|
url: '${urls.refData}/v1/teams'
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
|
-
|
|
113
|
+
const COLLECTION = {
|
|
114
114
|
id: 'container',
|
|
115
115
|
type: _models.ComponentTypes.COLLECTION,
|
|
116
116
|
item: [COMPONENT]
|
|
@@ -121,13 +121,13 @@ describe('utils', function () {
|
|
|
121
121
|
item: [{
|
|
122
122
|
id: COMPONENT.id,
|
|
123
123
|
data: {
|
|
124
|
-
url:
|
|
124
|
+
url: `${DATA.urls.refData}/v1/teams`
|
|
125
125
|
}
|
|
126
126
|
}]
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
|
-
it('should not update the component URL when skipUrlInterpolation prop is true',
|
|
130
|
-
|
|
129
|
+
it('should not update the component URL when skipUrlInterpolation prop is true', () => {
|
|
130
|
+
const COMPONENT = {
|
|
131
131
|
id: 'component',
|
|
132
132
|
data: {
|
|
133
133
|
// eslint-disable-next-line no-template-curly-in-string
|
|
@@ -5,25 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _ = _interopRequireDefault(require(".."));
|
|
8
|
-
function _interopRequireDefault(
|
|
9
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
10
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
9
|
/**
|
|
16
10
|
* Apply properties to a page based on whether certain conditions are met.
|
|
17
11
|
* @param {object} page The page object.
|
|
18
12
|
* @returns A copy of the page object with any passing conditional
|
|
19
13
|
* properties applied.
|
|
20
14
|
*/
|
|
21
|
-
|
|
15
|
+
const applyConditionalProperties = page => {
|
|
22
16
|
if (!page.conditionalProperties) {
|
|
23
17
|
return page;
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
let pageWithProperties = {
|
|
20
|
+
...page
|
|
21
|
+
};
|
|
22
|
+
page.conditionalProperties.forEach(entry => {
|
|
27
23
|
if (_.default.Condition.met(entry.condition, page.formData[entry.condition.field])) {
|
|
28
24
|
pageWithProperties = Object.assign(pageWithProperties, entry.properties);
|
|
29
25
|
}
|
|
@@ -31,5 +27,4 @@ var applyConditionalProperties = function applyConditionalProperties(page) {
|
|
|
31
27
|
});
|
|
32
28
|
return pageWithProperties;
|
|
33
29
|
};
|
|
34
|
-
var _default = applyConditionalProperties;
|
|
35
|
-
exports.default = _default;
|
|
30
|
+
var _default = exports.default = applyConditionalProperties;
|
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _applyConditionalProperties = _interopRequireDefault(require("./applyConditionalProperties"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
-
describe('utils.FormPage.applyConditionalProperties', function () {
|
|
12
|
-
it('should not change the page if there are no conditional properties', function () {
|
|
13
|
-
var PAGE = {
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
// Local imports
|
|
6
|
+
|
|
7
|
+
describe('utils.FormPage.applyConditionalProperties', () => {
|
|
8
|
+
it('should not change the page if there are no conditional properties', () => {
|
|
9
|
+
const PAGE = {
|
|
14
10
|
id: 'testPage'
|
|
15
11
|
};
|
|
16
|
-
|
|
12
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
17
13
|
expect(result).toEqual(PAGE);
|
|
18
14
|
});
|
|
19
|
-
it('should not apply properties with conditions that have not been met',
|
|
20
|
-
|
|
15
|
+
it('should not apply properties with conditions that have not been met', () => {
|
|
16
|
+
const PAGE = {
|
|
21
17
|
id: 'testPage',
|
|
22
18
|
conditionalProperties: [{
|
|
23
19
|
condition: {
|
|
@@ -33,11 +29,11 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
33
29
|
alpha: '012'
|
|
34
30
|
}
|
|
35
31
|
};
|
|
36
|
-
|
|
32
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
37
33
|
expect(result).toEqual(PAGE);
|
|
38
34
|
});
|
|
39
|
-
it('should apply properties with conditions that have been met',
|
|
40
|
-
|
|
35
|
+
it('should apply properties with conditions that have been met', () => {
|
|
36
|
+
const PAGE = {
|
|
41
37
|
id: 'testPage',
|
|
42
38
|
conditionalProperties: [{
|
|
43
39
|
condition: {
|
|
@@ -53,9 +49,10 @@ describe('utils.FormPage.applyConditionalProperties', function () {
|
|
|
53
49
|
alpha: '123'
|
|
54
50
|
}
|
|
55
51
|
};
|
|
56
|
-
|
|
57
|
-
expect(result).toEqual(
|
|
52
|
+
const result = (0, _applyConditionalProperties.default)(PAGE);
|
|
53
|
+
expect(result).toEqual({
|
|
54
|
+
...PAGE,
|
|
58
55
|
beta: '456'
|
|
59
|
-
})
|
|
56
|
+
});
|
|
60
57
|
});
|
|
61
58
|
});
|
|
@@ -9,13 +9,9 @@ var _Data = _interopRequireDefault(require("../Data"));
|
|
|
9
9
|
var _getPageActions = _interopRequireDefault(require("./getPageActions"));
|
|
10
10
|
var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
|
|
11
11
|
var _useComponent = _interopRequireDefault(require("./useComponent"));
|
|
12
|
-
function _interopRequireDefault(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
18
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
// Local imports
|
|
14
|
+
|
|
19
15
|
/**
|
|
20
16
|
* Converts a page object defined in the JSON to a page object for rendering.
|
|
21
17
|
* @param {object} pageOptions The JSON page.
|
|
@@ -23,28 +19,30 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
23
19
|
* @param {object} formData The top-level form data, used for setting up components.
|
|
24
20
|
* @returns A page object for rendering.
|
|
25
21
|
*/
|
|
26
|
-
|
|
22
|
+
const getFormPage = (pageOptions, formComponents, formData) => {
|
|
27
23
|
if (!pageOptions) {
|
|
28
24
|
return null;
|
|
29
25
|
}
|
|
30
|
-
|
|
26
|
+
const components = pageOptions.components.map(componentOptions => {
|
|
31
27
|
if (typeof componentOptions === 'string') {
|
|
32
28
|
return (0, _getParagraphFromText.default)(componentOptions);
|
|
33
29
|
}
|
|
34
|
-
|
|
30
|
+
let ret;
|
|
35
31
|
if (componentOptions.use) {
|
|
36
32
|
ret = (0, _useComponent.default)(componentOptions, formComponents);
|
|
37
33
|
} else {
|
|
38
|
-
ret =
|
|
34
|
+
ret = {
|
|
35
|
+
...componentOptions
|
|
36
|
+
};
|
|
39
37
|
}
|
|
40
38
|
return formData ? _Data.default.refData.setupUrl(ret, formData) : ret;
|
|
41
39
|
});
|
|
42
|
-
|
|
43
|
-
return _Container.default.setup(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
const actions = (0, _getPageActions.default)(pageOptions);
|
|
41
|
+
return _Container.default.setup({
|
|
42
|
+
...pageOptions,
|
|
43
|
+
formData,
|
|
44
|
+
components,
|
|
45
|
+
actions
|
|
46
|
+
});
|
|
48
47
|
};
|
|
49
|
-
var _default = getFormPage;
|
|
50
|
-
exports.default = _default;
|
|
48
|
+
var _default = exports.default = getFormPage;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
describe('utils', function () {
|
|
12
|
-
describe('FormPage', function () {
|
|
13
|
-
describe('getFormPage', function () {
|
|
14
|
-
var FORM_COMPONENTS = [{
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
// Local imports
|
|
6
|
+
|
|
7
|
+
describe('utils', () => {
|
|
8
|
+
describe('FormPage', () => {
|
|
9
|
+
describe('getFormPage', () => {
|
|
10
|
+
const FORM_COMPONENTS = [{
|
|
15
11
|
id: 'a',
|
|
16
12
|
fieldId: 'a',
|
|
17
13
|
label: 'Alpha',
|
|
@@ -46,17 +42,17 @@ describe('utils', function () {
|
|
|
46
42
|
label: 'Bravo ${currentUser.surname}',
|
|
47
43
|
type: 'text'
|
|
48
44
|
}];
|
|
49
|
-
|
|
45
|
+
const FORM_DATA = {
|
|
50
46
|
urls: {
|
|
51
47
|
refData: 'https://ho.gov.uk/ref-data/'
|
|
52
48
|
}
|
|
53
49
|
};
|
|
54
|
-
it('should handle null or undefined pageOptions',
|
|
50
|
+
it('should handle null or undefined pageOptions', () => {
|
|
55
51
|
expect((0, _getFormPage.default)(null, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
56
52
|
expect((0, _getFormPage.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toBeNull();
|
|
57
53
|
});
|
|
58
|
-
it('should handle a page not using any form components',
|
|
59
|
-
|
|
54
|
+
it('should handle a page not using any form components', () => {
|
|
55
|
+
const PAGE = {
|
|
60
56
|
title: 'Page',
|
|
61
57
|
components: [{
|
|
62
58
|
type: 'heading',
|
|
@@ -70,8 +66,8 @@ describe('utils', function () {
|
|
|
70
66
|
formData: FORM_DATA
|
|
71
67
|
});
|
|
72
68
|
});
|
|
73
|
-
it('should handle a page with inline strings and convert them to paragraphs',
|
|
74
|
-
|
|
69
|
+
it('should handle a page with inline strings and convert them to paragraphs', () => {
|
|
70
|
+
const PAGE = {
|
|
75
71
|
title: 'Page',
|
|
76
72
|
components: ["Opening paragraph", {
|
|
77
73
|
type: 'heading',
|
|
@@ -85,9 +81,10 @@ describe('utils', function () {
|
|
|
85
81
|
type: 'html',
|
|
86
82
|
tagName: 'p',
|
|
87
83
|
content: PAGE.components[0]
|
|
88
|
-
},
|
|
84
|
+
}, {
|
|
85
|
+
...PAGE.components[1],
|
|
89
86
|
full_path: PAGE.components[1].fieldId
|
|
90
|
-
}
|
|
87
|
+
}, {
|
|
91
88
|
type: 'html',
|
|
92
89
|
tagName: 'p',
|
|
93
90
|
content: PAGE.components[2]
|
|
@@ -95,8 +92,8 @@ describe('utils', function () {
|
|
|
95
92
|
formData: FORM_DATA
|
|
96
93
|
});
|
|
97
94
|
});
|
|
98
|
-
it('should handle a page that references a form-level component',
|
|
99
|
-
|
|
95
|
+
it('should handle a page that references a form-level component', () => {
|
|
96
|
+
const PAGE = {
|
|
100
97
|
title: 'Page',
|
|
101
98
|
components: ["Opening paragraph", {
|
|
102
99
|
type: 'heading',
|
|
@@ -106,30 +103,31 @@ describe('utils', function () {
|
|
|
106
103
|
use: 'a'
|
|
107
104
|
}]
|
|
108
105
|
};
|
|
109
|
-
|
|
106
|
+
const A = FORM_COMPONENTS[0];
|
|
110
107
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
111
108
|
title: PAGE.title,
|
|
112
109
|
components: [{
|
|
113
110
|
type: 'html',
|
|
114
111
|
tagName: 'p',
|
|
115
112
|
content: PAGE.components[0]
|
|
116
|
-
},
|
|
113
|
+
}, {
|
|
114
|
+
...PAGE.components[1],
|
|
117
115
|
full_path: PAGE.components[1].fieldId
|
|
118
|
-
}
|
|
116
|
+
}, {
|
|
119
117
|
type: 'html',
|
|
120
118
|
tagName: 'p',
|
|
121
119
|
content: PAGE.components[2]
|
|
122
|
-
},
|
|
123
|
-
use: 'a'
|
|
124
|
-
|
|
120
|
+
}, {
|
|
121
|
+
use: 'a',
|
|
122
|
+
...A,
|
|
125
123
|
cya_label: A.label,
|
|
126
124
|
full_path: A.fieldId
|
|
127
|
-
}
|
|
125
|
+
}],
|
|
128
126
|
formData: FORM_DATA
|
|
129
127
|
});
|
|
130
128
|
});
|
|
131
|
-
it('should handle a page that references a form-level component with a data url',
|
|
132
|
-
|
|
129
|
+
it('should handle a page that references a form-level component with a data url', () => {
|
|
130
|
+
const PAGE = {
|
|
133
131
|
title: 'Page',
|
|
134
132
|
components: ["Opening paragraph", {
|
|
135
133
|
type: 'heading',
|
|
@@ -139,33 +137,34 @@ describe('utils', function () {
|
|
|
139
137
|
use: 'c'
|
|
140
138
|
}]
|
|
141
139
|
};
|
|
142
|
-
|
|
140
|
+
const C = FORM_COMPONENTS[2];
|
|
143
141
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
|
|
144
142
|
title: PAGE.title,
|
|
145
143
|
components: [{
|
|
146
144
|
type: 'html',
|
|
147
145
|
tagName: 'p',
|
|
148
146
|
content: PAGE.components[0]
|
|
149
|
-
},
|
|
147
|
+
}, {
|
|
148
|
+
...PAGE.components[1],
|
|
150
149
|
full_path: PAGE.components[1].fieldId
|
|
151
|
-
}
|
|
150
|
+
}, {
|
|
152
151
|
type: 'html',
|
|
153
152
|
tagName: 'p',
|
|
154
153
|
content: PAGE.components[2]
|
|
155
|
-
},
|
|
156
|
-
use: 'c'
|
|
157
|
-
|
|
154
|
+
}, {
|
|
155
|
+
use: 'c',
|
|
156
|
+
...C,
|
|
158
157
|
cya_label: C.label,
|
|
159
158
|
data: {
|
|
160
|
-
url:
|
|
159
|
+
url: `${FORM_DATA.urls.refData}/v3/charlies`
|
|
161
160
|
},
|
|
162
161
|
full_path: C.fieldId
|
|
163
|
-
}
|
|
162
|
+
}],
|
|
164
163
|
formData: FORM_DATA
|
|
165
164
|
});
|
|
166
165
|
});
|
|
167
|
-
it('should handle a page that references a form-level component with a data url without an environment context',
|
|
168
|
-
|
|
166
|
+
it('should handle a page that references a form-level component with a data url without an environment context', () => {
|
|
167
|
+
const PAGE = {
|
|
169
168
|
title: 'Page',
|
|
170
169
|
components: ["Opening paragraph", {
|
|
171
170
|
type: 'heading',
|
|
@@ -175,29 +174,31 @@ describe('utils', function () {
|
|
|
175
174
|
use: 'c'
|
|
176
175
|
}]
|
|
177
176
|
};
|
|
178
|
-
|
|
177
|
+
const C = FORM_COMPONENTS[2];
|
|
179
178
|
expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, {})).toEqual({
|
|
180
179
|
title: PAGE.title,
|
|
181
180
|
components: [{
|
|
182
181
|
type: 'html',
|
|
183
182
|
tagName: 'p',
|
|
184
183
|
content: PAGE.components[0]
|
|
185
|
-
},
|
|
184
|
+
}, {
|
|
185
|
+
...PAGE.components[1],
|
|
186
186
|
full_path: PAGE.components[1].fieldId
|
|
187
|
-
}
|
|
187
|
+
}, {
|
|
188
188
|
type: 'html',
|
|
189
189
|
tagName: 'p',
|
|
190
190
|
content: PAGE.components[2]
|
|
191
|
-
},
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
191
|
+
},
|
|
192
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
193
|
+
{
|
|
194
|
+
use: 'c',
|
|
195
|
+
...C,
|
|
195
196
|
cya_label: C.label,
|
|
196
197
|
full_path: C.fieldId,
|
|
197
198
|
data: {
|
|
198
199
|
url: '/v3/charlies'
|
|
199
200
|
}
|
|
200
|
-
}
|
|
201
|
+
}],
|
|
201
202
|
formData: {}
|
|
202
203
|
});
|
|
203
204
|
});
|
|
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getFormPage = _interopRequireDefault(require("./getFormPage"));
|
|
8
|
-
function _interopRequireDefault(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
// Local imports
|
|
10
|
+
|
|
15
11
|
/**
|
|
16
12
|
* Converts pages objects defined in the JSON to page objects for rendering.
|
|
17
13
|
* @param {Array} pages The JSON pages.
|
|
@@ -19,15 +15,13 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
19
15
|
* @param {object} formData The top-level form data, used for setting up components.
|
|
20
16
|
* @returns An array of page objects for rendering.
|
|
21
17
|
*/
|
|
22
|
-
|
|
18
|
+
const getFormPages = (pages, components, formData) => {
|
|
23
19
|
if (Array.isArray(pages)) {
|
|
24
|
-
return pages.map(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
});
|
|
20
|
+
return pages.map((options, index) => ({
|
|
21
|
+
...(0, _getFormPage.default)(options, components, formData),
|
|
22
|
+
index
|
|
23
|
+
}));
|
|
29
24
|
}
|
|
30
25
|
return [];
|
|
31
26
|
};
|
|
32
|
-
var _default = getFormPages;
|
|
33
|
-
exports.default = _default;
|
|
27
|
+
var _default = exports.default = getFormPages;
|