@ukhomeoffice/cop-react-form-renderer 6.5.1-peter → 6.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CollectionSummary/RenderListView.js +1 -1
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/SummaryCard.js +2 -2
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +4 -4
- package/dist/components/FormRenderer/helpers/index.js +1 -3
- package/dist/components/FormRenderer/onPageAction.js +1 -8
- package/dist/components/FormRenderer/onPageAction.test.js +0 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +9 -1
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +26 -6
- package/dist/utils/CollectionPage/getQuickEditPage.js +7 -4
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +14 -29
- package/dist/utils/CollectionPage/mergeCollectionPages.js +0 -1
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -0
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +36 -0
- package/package.json +1 -1
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-after.json +0 -429
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test.json +0 -1605
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "deb97e25-c4e4-11ee-8f7e-2e10af5884e4",
|
|
3
|
-
"businessKey": "DEV-20240206-415",
|
|
4
|
-
"modeOfTransport": {
|
|
5
|
-
"id": 2,
|
|
6
|
-
"mode": "Scheduled Air Passenger",
|
|
7
|
-
"modecode": "airpass",
|
|
8
|
-
"crossingtype": [
|
|
9
|
-
"air"
|
|
10
|
-
],
|
|
11
|
-
"value": "Scheduled Air Passenger",
|
|
12
|
-
"label": "Scheduled Air Passenger"
|
|
13
|
-
},
|
|
14
|
-
"port": {
|
|
15
|
-
"id": 3415,
|
|
16
|
-
"name": "Luton",
|
|
17
|
-
"sea": false,
|
|
18
|
-
"air": true,
|
|
19
|
-
"land": false,
|
|
20
|
-
"rail": false,
|
|
21
|
-
"countryid": 234,
|
|
22
|
-
"iata": "LTN",
|
|
23
|
-
"value": "3415",
|
|
24
|
-
"label": "Luton"
|
|
25
|
-
},
|
|
26
|
-
"formStatus": {
|
|
27
|
-
"tasks": {
|
|
28
|
-
"undefined": {},
|
|
29
|
-
"Enter event details": {
|
|
30
|
-
"complete": true,
|
|
31
|
-
"currentPage": "eventDetailsCya"
|
|
32
|
-
},
|
|
33
|
-
"Enter item and storage details": {
|
|
34
|
-
"complete": true,
|
|
35
|
-
"currentPage": "whatHappensNext"
|
|
36
|
-
},
|
|
37
|
-
"Journey-details-item-abandoned": {
|
|
38
|
-
"complete": true,
|
|
39
|
-
"currentPage": "journeyCya"
|
|
40
|
-
},
|
|
41
|
-
"Accept and submit": {
|
|
42
|
-
"complete": false,
|
|
43
|
-
"currentPage": "submitForm"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"taskPage": "submitForm"
|
|
47
|
-
},
|
|
48
|
-
"formInstanceId": "bc81a157-cbd9-4c14-87fb-3b52d02bf71d",
|
|
49
|
-
"links": [
|
|
50
|
-
{
|
|
51
|
-
"method": "GET",
|
|
52
|
-
"href": "https://blue.dev.cop.homeoffice.gov.uk/camunda/engine-rest/process-instance/deb97e25-c4e4-11ee-8f7e-2e10af5884e4",
|
|
53
|
-
"rel": "self"
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"definitionId": "cop-addABorderEvent:9:113b6e67-b48d-11ee-8088-52b814b55f74",
|
|
57
|
-
"caseInstanceId": null,
|
|
58
|
-
"ended": false,
|
|
59
|
-
"suspended": false,
|
|
60
|
-
"tenantId": null,
|
|
61
|
-
"whatHappened": "items",
|
|
62
|
-
"eventDateTime": {
|
|
63
|
-
"eventDate": "06-02-2024",
|
|
64
|
-
"eventTime": "01:01"
|
|
65
|
-
},
|
|
66
|
-
"terminal": {
|
|
67
|
-
"id": 9,
|
|
68
|
-
"name": "Western Docks",
|
|
69
|
-
"validfrom": "2019-01-01T00:01:00.000Z",
|
|
70
|
-
"validto": null,
|
|
71
|
-
"updatedby": null,
|
|
72
|
-
"value": "9",
|
|
73
|
-
"label": "Western Docks"
|
|
74
|
-
},
|
|
75
|
-
"subLocation": {
|
|
76
|
-
"id": 10,
|
|
77
|
-
"sublocation": "Warehouse",
|
|
78
|
-
"description": null,
|
|
79
|
-
"validfrom": "2021-05-07T00:00:03.000Z",
|
|
80
|
-
"validto": null,
|
|
81
|
-
"updatedby": "BethStephenson",
|
|
82
|
-
"uoflocation": false,
|
|
83
|
-
"value": "10",
|
|
84
|
-
"label": "Warehouse"
|
|
85
|
-
},
|
|
86
|
-
"centaurReference": "E1234567",
|
|
87
|
-
"leadOfficerEmail": {
|
|
88
|
-
"email": "jyoti.shetty@digital.homeoffice.gov.uk",
|
|
89
|
-
"label": "jyoti.shetty@digital.homeoffice.gov.uk",
|
|
90
|
-
"value": "jyoti.shetty@digital.homeoffice.gov.uk",
|
|
91
|
-
"defaultteamid": "de8053bf-8ce6-4e60-a4a1-de6862fe158f"
|
|
92
|
-
},
|
|
93
|
-
"officerEmails": [],
|
|
94
|
-
"operationOrExercise": "no",
|
|
95
|
-
"itemsActiveId": "1707219813475",
|
|
96
|
-
"itemsNumberedIndex": 1,
|
|
97
|
-
"items": [
|
|
98
|
-
{
|
|
99
|
-
"id": "1707219813475",
|
|
100
|
-
"sealNumber": "876dsadadad",
|
|
101
|
-
"exhibitReference": "Exh123",
|
|
102
|
-
"itemCategory": {
|
|
103
|
-
"id": 8,
|
|
104
|
-
"category": "Firearms",
|
|
105
|
-
"description": "Both lethal and non-lethal firearms.",
|
|
106
|
-
"validfrom": "2023-01-10T00:00:01.000Z",
|
|
107
|
-
"validto": null,
|
|
108
|
-
"updatedby": "Mohammed Abdul Odud",
|
|
109
|
-
"synonyms": [
|
|
110
|
-
"'Guns'"
|
|
111
|
-
],
|
|
112
|
-
"value": "8",
|
|
113
|
-
"label": "Firearms"
|
|
114
|
-
},
|
|
115
|
-
"itemSubCategory": {
|
|
116
|
-
"id": 1426,
|
|
117
|
-
"name": "Military weapons component",
|
|
118
|
-
"description": null,
|
|
119
|
-
"itemcategoriesid": 8,
|
|
120
|
-
"cites": false,
|
|
121
|
-
"poao": false,
|
|
122
|
-
"cbrn": false,
|
|
123
|
-
"document": false,
|
|
124
|
-
"tobacco": false,
|
|
125
|
-
"alcohol": false,
|
|
126
|
-
"weapons": false,
|
|
127
|
-
"firearms": true,
|
|
128
|
-
"ipr": true,
|
|
129
|
-
"strategic": false,
|
|
130
|
-
"avtc": false,
|
|
131
|
-
"oils": false,
|
|
132
|
-
"commodity": false,
|
|
133
|
-
"good": false,
|
|
134
|
-
"plant": false,
|
|
135
|
-
"animal": false,
|
|
136
|
-
"drugs": false,
|
|
137
|
-
"financial": false,
|
|
138
|
-
"indecent": false,
|
|
139
|
-
"vehicle": false,
|
|
140
|
-
"medical": false,
|
|
141
|
-
"unitid": 5,
|
|
142
|
-
"seizureqty": null,
|
|
143
|
-
"ienqty": null,
|
|
144
|
-
"validfrom": "2023-01-10T00:00:01.000Z",
|
|
145
|
-
"validto": null,
|
|
146
|
-
"updatedby": "Mohammed Abdul Odud",
|
|
147
|
-
"uof": false,
|
|
148
|
-
"epmscode": 1024,
|
|
149
|
-
"epmscategory": "ARP",
|
|
150
|
-
"unitarray": [
|
|
151
|
-
5
|
|
152
|
-
],
|
|
153
|
-
"categoryarray": [
|
|
154
|
-
8,
|
|
155
|
-
9
|
|
156
|
-
],
|
|
157
|
-
"lethalfirearm": null,
|
|
158
|
-
"nonlethalfirearm": null,
|
|
159
|
-
"value": "1426",
|
|
160
|
-
"label": "Military weapons component"
|
|
161
|
-
},
|
|
162
|
-
"seizedOrDetained": "detained",
|
|
163
|
-
"legalReasonForDetaining": {
|
|
164
|
-
"id": 3,
|
|
165
|
-
"epmsvalue": 18,
|
|
166
|
-
"reason": "Immigration Act",
|
|
167
|
-
"description": "Immigration Act",
|
|
168
|
-
"validfrom": "2022-09-21T00:00:01.000Z",
|
|
169
|
-
"validto": null,
|
|
170
|
-
"updatedby": "Mohammed Abdul Odud",
|
|
171
|
-
"value": "3",
|
|
172
|
-
"label": "Immigration Act"
|
|
173
|
-
},
|
|
174
|
-
"whatIsTheInitialMovement?": {
|
|
175
|
-
"id": 3,
|
|
176
|
-
"epmscode": 5,
|
|
177
|
-
"description": "Sent For Forensic Examination",
|
|
178
|
-
"inuse": true,
|
|
179
|
-
"validfrom": "2022-08-18T00:00:01.000Z",
|
|
180
|
-
"validto": null,
|
|
181
|
-
"updatedby": "Mohammed Abdul Odud",
|
|
182
|
-
"value": "3",
|
|
183
|
-
"label": "Sent For Forensic Examination"
|
|
184
|
-
},
|
|
185
|
-
"giveAReason": "sadad"
|
|
186
|
-
}
|
|
187
|
-
],
|
|
188
|
-
"lockup": {
|
|
189
|
-
"value": "LTN",
|
|
190
|
-
"label": "Luton Airport Lockup",
|
|
191
|
-
"hidden": true
|
|
192
|
-
},
|
|
193
|
-
"epmsSubmitted": true,
|
|
194
|
-
"doYouHaveTheirFlightNumber": "no",
|
|
195
|
-
"form": {
|
|
196
|
-
"formVersionId": "ed41c96b78388228eb887927e45dc8a150a8b333",
|
|
197
|
-
"title": "Add a border event",
|
|
198
|
-
"name": "cop-addABorderEvent",
|
|
199
|
-
"submissionDate": "2024-02-06T11:53:56.499Z",
|
|
200
|
-
"submittedBy": "jyoti.shetty@digital.homeoffice.gov.uk",
|
|
201
|
-
"submittingUsersName": "Jyoti",
|
|
202
|
-
"submissionTeam": "de8053bf-8ce6-4e60-a4a1-de6862fe158f",
|
|
203
|
-
"formInstanceId": "bc81a157-cbd9-4c14-87fb-3b52d02bf71d"
|
|
204
|
-
}
|
|
205
|
-
}
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _mergeCollectionPages = _interopRequireDefault(require("../../../utils/CollectionPage/mergeCollectionPages"));
|
|
8
|
-
var _deleteNodeByPath = _interopRequireDefault(require("./deleteNodeByPath"));
|
|
9
|
-
var _optionIsSelected = _interopRequireDefault(require("../../../utils/Component/optionIsSelected"));
|
|
10
|
-
var _Condition = _interopRequireDefault(require("../../../utils/Condition"));
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
/* eslint-disable no-param-reassign */
|
|
13
|
-
|
|
14
|
-
var showComponentIncludeHiddenAndDisabled = function showComponentIncludeHiddenAndDisabled(component, data) {
|
|
15
|
-
var _component$show_when;
|
|
16
|
-
if (!component) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
if (((_component$show_when = component.show_when) === null || _component$show_when === void 0 ? void 0 : _component$show_when.type) === "or") {
|
|
20
|
-
return _Condition.default.meetsOne(component, data);
|
|
21
|
-
}
|
|
22
|
-
return _Condition.default.meetsAll(component, data);
|
|
23
|
-
};
|
|
24
|
-
var recurseCheckForHiddenComponents = function recurseCheckForHiddenComponents(component, formData, path, candidateComponentForDeletion) {
|
|
25
|
-
path = path ? "".concat(path, ".").concat(component.fieldId) : component.fieldId;
|
|
26
|
-
if (component) {
|
|
27
|
-
if (component.components) {
|
|
28
|
-
var _component$components;
|
|
29
|
-
(_component$components = component.components) === null || _component$components === void 0 || _component$components.forEach(function (c) {
|
|
30
|
-
recurseCheckForHiddenComponents(c, formData, path, candidateComponentForDeletion);
|
|
31
|
-
});
|
|
32
|
-
} else if (showComponentIncludeHiddenAndDisabled(component, formData)) {
|
|
33
|
-
var _component$data;
|
|
34
|
-
if (component !== null && component !== void 0 && (_component$data = component.data) !== null && _component$data !== void 0 && _component$data.options) {
|
|
35
|
-
var _component$data2;
|
|
36
|
-
component === null || component === void 0 || (_component$data2 = component.data) === null || _component$data2 === void 0 || (_component$data2 = _component$data2.options) === null || _component$data2 === void 0 || _component$data2.forEach(function (option) {
|
|
37
|
-
if (!(0, _optionIsSelected.default)(formData[component.id], option) && option.nested) {
|
|
38
|
-
option.nested.forEach(function (nested) {
|
|
39
|
-
path = nested.fieldId;
|
|
40
|
-
if (path) {
|
|
41
|
-
candidateComponentForDeletion.set(path, component);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
} else if (!showComponentIncludeHiddenAndDisabled(component, formData)) {
|
|
48
|
-
if (path) {
|
|
49
|
-
candidateComponentForDeletion.set(path, component);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var buildListOfComponentsUsedInVisiblePages = function buildListOfComponentsUsedInVisiblePages(page, form, formData, componentsUsedInVisiblePagesIds) {
|
|
55
|
-
var _page$components;
|
|
56
|
-
(_page$components = page.components) === null || _page$components === void 0 || _page$components.forEach(function (component) {
|
|
57
|
-
var _ref, _form$components$find;
|
|
58
|
-
var componentObj = (_ref = (_form$components$find = form.components.find(function (c) {
|
|
59
|
-
return c.fieldId === component.use;
|
|
60
|
-
})) !== null && _form$components$find !== void 0 ? _form$components$find : form.components.find(function (c) {
|
|
61
|
-
return c.id === component.use;
|
|
62
|
-
})) !== null && _ref !== void 0 ? _ref : component;
|
|
63
|
-
if (page && showComponentIncludeHiddenAndDisabled(page, formData)) {
|
|
64
|
-
if (componentObj && showComponentIncludeHiddenAndDisabled(componentObj, formData)) {
|
|
65
|
-
if (componentObj.fieldId) {
|
|
66
|
-
componentsUsedInVisiblePagesIds.push(componentObj.fieldId);
|
|
67
|
-
} else if (componentObj.id) {
|
|
68
|
-
componentsUsedInVisiblePagesIds.push(componentObj.id);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
var recursePopulateComponentPaths = function recursePopulateComponentPaths(component, formData, path, componentPaths, checkIfHidden) {
|
|
75
|
-
path = path ? "".concat(path, ".").concat(component.fieldId) : component.fieldId;
|
|
76
|
-
if (component) {
|
|
77
|
-
if (component.components) {
|
|
78
|
-
var _component$components2;
|
|
79
|
-
(_component$components2 = component.components) === null || _component$components2 === void 0 || _component$components2.forEach(function (c) {
|
|
80
|
-
recursePopulateComponentPaths(c, formData, path, componentPaths);
|
|
81
|
-
});
|
|
82
|
-
} else if (path) {
|
|
83
|
-
if (checkIfHidden) {
|
|
84
|
-
if (showComponentIncludeHiddenAndDisabled(component, formData)) {
|
|
85
|
-
componentPaths.push(path);
|
|
86
|
-
}
|
|
87
|
-
} else {
|
|
88
|
-
componentPaths.push(path);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
var markComponentsForDeletion = function markComponentsForDeletion(page, form, formData, candidateComponentForDeletion, componentsUsedInVisiblePages) {
|
|
94
|
-
var _page$components2;
|
|
95
|
-
if (page.disableClearWhenHidden) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
(_page$components2 = page.components) === null || _page$components2 === void 0 || _page$components2.forEach(function (component) {
|
|
99
|
-
var _ref2, _form$components$find2;
|
|
100
|
-
var componentObj = (_ref2 = (_form$components$find2 = form.components.find(function (c) {
|
|
101
|
-
return c.fieldId === component.use;
|
|
102
|
-
})) !== null && _form$components$find2 !== void 0 ? _form$components$find2 : form.components.find(function (c) {
|
|
103
|
-
return c.id === component.use;
|
|
104
|
-
})) !== null && _ref2 !== void 0 ? _ref2 : component;
|
|
105
|
-
if (page && showComponentIncludeHiddenAndDisabled(page, formData)) {
|
|
106
|
-
buildListOfComponentsUsedInVisiblePages(page, form, formData, componentsUsedInVisiblePages);
|
|
107
|
-
recurseCheckForHiddenComponents(componentObj, formData, null, candidateComponentForDeletion);
|
|
108
|
-
} else {
|
|
109
|
-
if (componentObj.fieldId) {
|
|
110
|
-
candidateComponentForDeletion.set(componentObj.fieldId, componentObj);
|
|
111
|
-
}
|
|
112
|
-
if (componentObj.id) {
|
|
113
|
-
candidateComponentForDeletion.set(componentObj.id, componentObj);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
var populateComponentPaths = function populateComponentPaths(page, form, collectionData, formData, nonDeleteComponentPaths, allComponentPaths) {
|
|
119
|
-
if (page) {
|
|
120
|
-
var _page$components4;
|
|
121
|
-
if (showComponentIncludeHiddenAndDisabled(page, formData) || showComponentIncludeHiddenAndDisabled(page, collectionData)) {
|
|
122
|
-
var _page$components3;
|
|
123
|
-
(_page$components3 = page.components) === null || _page$components3 === void 0 || _page$components3.forEach(function (component) {
|
|
124
|
-
var _ref3, _form$components$find3;
|
|
125
|
-
var componentObj = (_ref3 = (_form$components$find3 = form.components.find(function (c) {
|
|
126
|
-
return c.fieldId === component.use;
|
|
127
|
-
})) !== null && _form$components$find3 !== void 0 ? _form$components$find3 : form.components.find(function (c) {
|
|
128
|
-
return c.id === component.use;
|
|
129
|
-
})) !== null && _ref3 !== void 0 ? _ref3 : component;
|
|
130
|
-
recursePopulateComponentPaths(componentObj, collectionData, null, nonDeleteComponentPaths, true);
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
(_page$components4 = page.components) === null || _page$components4 === void 0 || _page$components4.forEach(function (component) {
|
|
134
|
-
var _ref4, _form$components$find4;
|
|
135
|
-
var componentObj = (_ref4 = (_form$components$find4 = form.components.find(function (c) {
|
|
136
|
-
return c.fieldId === component.use;
|
|
137
|
-
})) !== null && _form$components$find4 !== void 0 ? _form$components$find4 : form.components.find(function (c) {
|
|
138
|
-
return c.id === component.use;
|
|
139
|
-
})) !== null && _ref4 !== void 0 ? _ref4 : component;
|
|
140
|
-
recursePopulateComponentPaths(componentObj, collectionData, null, allComponentPaths, false);
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
function clearUncompletedRoutesForCollections(formData, page, form) {
|
|
145
|
-
var _page$collection;
|
|
146
|
-
var nonDeleteComponentPaths = [];
|
|
147
|
-
var allComponentPaths = [];
|
|
148
|
-
var collectionDatas = formData[page === null || page === void 0 || (_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name];
|
|
149
|
-
if (collectionDatas) {
|
|
150
|
-
collectionDatas.forEach(function (collectionData) {
|
|
151
|
-
var _page$childPages;
|
|
152
|
-
/* eslint-disable consistent-return */
|
|
153
|
-
(_page$childPages = page.childPages) === null || _page$childPages === void 0 || _page$childPages.forEach(function (childPage) {
|
|
154
|
-
if (childPage.disableClearWhenHidden) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
if (childPage.deleteCollectionWhenHidden) {
|
|
158
|
-
if (!showComponentIncludeHiddenAndDisabled(childPage, formData)) {
|
|
159
|
-
delete formData[childPage.collection.name];
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
populateComponentPaths(childPage, form, collectionData, formData, nonDeleteComponentPaths, allComponentPaths);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
nonDeleteComponentPaths = nonDeleteComponentPaths.filter(function (value, index, self) {
|
|
167
|
-
return self.indexOf(value) === index;
|
|
168
|
-
});
|
|
169
|
-
allComponentPaths = allComponentPaths.filter(function (value, index, self) {
|
|
170
|
-
return self.indexOf(value) === index;
|
|
171
|
-
});
|
|
172
|
-
// delete fields not visible
|
|
173
|
-
allComponentPaths.forEach(function (key) {
|
|
174
|
-
if (!nonDeleteComponentPaths.includes(key)) {
|
|
175
|
-
(0, _deleteNodeByPath.default)(collectionDatas, key);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
var clearOutUncompletedRoutes = function clearOutUncompletedRoutes(form, formData) {
|
|
181
|
-
if (form.disableClearWhenHidden) {
|
|
182
|
-
return formData;
|
|
183
|
-
}
|
|
184
|
-
var condensedPages = (0, _mergeCollectionPages.default)(form.pages);
|
|
185
|
-
var candidateComponentForDeletion = new Map();
|
|
186
|
-
var componentsUsedInVisiblePagesIds = [];
|
|
187
|
-
condensedPages === null || condensedPages === void 0 || condensedPages.forEach(function (page) {
|
|
188
|
-
var _page$collection2;
|
|
189
|
-
if (page !== null && page !== void 0 && (_page$collection2 = page.collection) !== null && _page$collection2 !== void 0 && _page$collection2.name) {
|
|
190
|
-
clearUncompletedRoutesForCollections(formData, page, form);
|
|
191
|
-
} else {
|
|
192
|
-
markComponentsForDeletion(page, form, formData, candidateComponentForDeletion, componentsUsedInVisiblePagesIds);
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
componentsUsedInVisiblePagesIds = componentsUsedInVisiblePagesIds.filter(function (value, index, self) {
|
|
196
|
-
return self.indexOf(value) === index;
|
|
197
|
-
});
|
|
198
|
-
componentsUsedInVisiblePagesIds.forEach(function (componentId) {
|
|
199
|
-
return candidateComponentForDeletion.delete(componentId);
|
|
200
|
-
});
|
|
201
|
-
candidateComponentForDeletion.forEach(function (val, key) {
|
|
202
|
-
(0, _deleteNodeByPath.default)(formData, key);
|
|
203
|
-
});
|
|
204
|
-
return formData;
|
|
205
|
-
};
|
|
206
|
-
var _default = exports.default = clearOutUncompletedRoutes;
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _index = _interopRequireDefault(require("./index"));
|
|
4
|
-
var _componentUsedInMultiplePagesForm = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json"));
|
|
5
|
-
var _componentUsedInMultiplePagesData = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json"));
|
|
6
|
-
var _formWithCollections = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-collections.json"));
|
|
7
|
-
var _formWithCollectionsDeleteEntire = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json"));
|
|
8
|
-
var _dataWithCollections = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-collections.json"));
|
|
9
|
-
var _dataWithEntireCollectionRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json"));
|
|
10
|
-
var _dataWithCollectionDataRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-collection-data-removed.json"));
|
|
11
|
-
var _formWithComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-components.json"));
|
|
12
|
-
var _dataWithComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-components.json"));
|
|
13
|
-
var _dataWithComponentsRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-components-removed.json"));
|
|
14
|
-
var _formForNestedComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-for-nested-components.json"));
|
|
15
|
-
var _dataWithNestedComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-nested-components.json"));
|
|
16
|
-
var _dataWithNestedComponentRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-nested-component-removed.json"));
|
|
17
|
-
var _copEab2Form = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-eab2-form.json"));
|
|
18
|
-
var _copEab2DataBefore = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-eab-2-data-before.json"));
|
|
19
|
-
var _copEab2DataAfter = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-eab-2-data-after.json"));
|
|
20
|
-
var _copMandecForm = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-mandec-form.json"));
|
|
21
|
-
var _copMandecDataBefore = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-mandec-data-before.json"));
|
|
22
|
-
var _copMandecDataAfter = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-mandec-data-after.json"));
|
|
23
|
-
var _copAirpaxBefore = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-airpax-before.json"));
|
|
24
|
-
var _copAirpaxAfter = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-airpax-after.json"));
|
|
25
|
-
var _copAirpaxForm = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/cop-airpax-form.json"));
|
|
26
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
describe('FormRenderer', function () {
|
|
28
|
-
describe('helpers', function () {
|
|
29
|
-
describe('clearOutUncompletedRoutes', function () {
|
|
30
|
-
it('should clear out for cop-eab 2 civil penalty', function () {
|
|
31
|
-
var form = JSON.parse(JSON.stringify(_copEab2Form.default));
|
|
32
|
-
var formData = JSON.parse(JSON.stringify(_copEab2DataBefore.default));
|
|
33
|
-
var clearedFormData = JSON.parse(JSON.stringify(_copEab2DataAfter.default));
|
|
34
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
35
|
-
expect(result).toEqual(clearedFormData);
|
|
36
|
-
});
|
|
37
|
-
it('should clear out for cop-eab 2 airpax', function () {
|
|
38
|
-
var form = JSON.parse(JSON.stringify(_copAirpaxForm.default));
|
|
39
|
-
var formData = JSON.parse(JSON.stringify(_copAirpaxBefore.default));
|
|
40
|
-
var clearedFormData = JSON.parse(JSON.stringify(_copAirpaxAfter.default));
|
|
41
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
42
|
-
expect(result).toEqual(clearedFormData);
|
|
43
|
-
});
|
|
44
|
-
it('should clear out for cop-mandec', function () {
|
|
45
|
-
var form = JSON.parse(JSON.stringify(_copMandecForm.default));
|
|
46
|
-
var formData = JSON.parse(JSON.stringify(_copMandecDataBefore.default));
|
|
47
|
-
var clearedFormData = JSON.parse(JSON.stringify(_copMandecDataAfter.default));
|
|
48
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
49
|
-
expect(result).toEqual(clearedFormData);
|
|
50
|
-
});
|
|
51
|
-
it('should not remove hidden component where it is visible in another page', function () {
|
|
52
|
-
var form = JSON.parse(JSON.stringify(_componentUsedInMultiplePagesForm.default));
|
|
53
|
-
var formData = JSON.parse(JSON.stringify(_componentUsedInMultiplePagesData.default));
|
|
54
|
-
expect(_index.default.clearOutUncompletedRoutes(form, formData)).toEqual(_componentUsedInMultiplePagesData.default);
|
|
55
|
-
});
|
|
56
|
-
it('should remove collection data when page hidden', function () {
|
|
57
|
-
var form = JSON.parse(JSON.stringify(_formWithCollections.default));
|
|
58
|
-
var formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
|
|
59
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
60
|
-
expect(result).toEqual(_dataWithCollectionDataRemoved.default);
|
|
61
|
-
formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
|
|
62
|
-
formData.componentA = true;
|
|
63
|
-
result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
64
|
-
var expected = JSON.parse(JSON.stringify(_dataWithCollections.default));
|
|
65
|
-
expected.componentA = true;
|
|
66
|
-
expect(result).toEqual(expected);
|
|
67
|
-
});
|
|
68
|
-
it('should remove entire collection data when page hidden', function () {
|
|
69
|
-
var form = JSON.parse(JSON.stringify(_formWithCollectionsDeleteEntire.default));
|
|
70
|
-
var formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
|
|
71
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
72
|
-
expect(result).toEqual(_dataWithEntireCollectionRemoved.default);
|
|
73
|
-
});
|
|
74
|
-
it('should remove hidden component', function () {
|
|
75
|
-
var form = JSON.parse(JSON.stringify(_formWithComponents.default));
|
|
76
|
-
var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
77
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
78
|
-
expect(result).toEqual(_dataWithComponents.default);
|
|
79
|
-
formData.componentA = "hide";
|
|
80
|
-
result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
81
|
-
expect(result).toEqual(_dataWithComponentsRemoved.default);
|
|
82
|
-
});
|
|
83
|
-
it('should not remove hidden component when disableClearWhenHidden attribute is true on component', function () {
|
|
84
|
-
var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
85
|
-
formData.componentA = "hide";
|
|
86
|
-
var form = JSON.parse(JSON.stringify(_formWithComponents.default));
|
|
87
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
88
|
-
expect(result).toEqual(_dataWithComponentsRemoved.default);
|
|
89
|
-
form.components[1].disableClearWhenHidden = true;
|
|
90
|
-
form.components[2].disableClearWhenHidden = true;
|
|
91
|
-
formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
92
|
-
result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
93
|
-
expect(result).toEqual(_dataWithComponents.default);
|
|
94
|
-
});
|
|
95
|
-
it('should not remove hidden component when disableClearWhenHidden attribute is true on page', function () {
|
|
96
|
-
var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
97
|
-
formData.componentA = "hide";
|
|
98
|
-
var form = JSON.parse(JSON.stringify(_formWithComponents.default));
|
|
99
|
-
var result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
100
|
-
expect(result).toEqual(_dataWithComponentsRemoved.default);
|
|
101
|
-
form.pages[0].disableClearWhenHidden = true;
|
|
102
|
-
formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
103
|
-
result = _index.default.clearOutUncompletedRoutes(form, formData);
|
|
104
|
-
expect(result).toEqual(_dataWithComponents.default);
|
|
105
|
-
});
|
|
106
|
-
it('should not remove hidden component when disableClearWhenHidden attribute is true on form', function () {
|
|
107
|
-
var submissionData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
108
|
-
var form = JSON.parse(JSON.stringify(_formWithComponents.default));
|
|
109
|
-
submissionData.componentA = "hide";
|
|
110
|
-
var result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
111
|
-
expect(result).toEqual(_dataWithComponentsRemoved.default);
|
|
112
|
-
form.disableClearWhenHidden = true;
|
|
113
|
-
submissionData = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
114
|
-
submissionData.componentA = "hide";
|
|
115
|
-
result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
116
|
-
var expected = JSON.parse(JSON.stringify(_dataWithComponents.default));
|
|
117
|
-
expected.componentA = "hide";
|
|
118
|
-
expect(result).toEqual(expected);
|
|
119
|
-
});
|
|
120
|
-
it('should remove nested hidden component', function () {
|
|
121
|
-
var submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
|
|
122
|
-
var form = JSON.parse(JSON.stringify(_formForNestedComponents.default));
|
|
123
|
-
var result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
124
|
-
expect(result).toEqual(_dataWithNestedComponentRemoved.default);
|
|
125
|
-
submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
|
|
126
|
-
submissionData.bravo = "another";
|
|
127
|
-
result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
128
|
-
var expected = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
|
|
129
|
-
delete expected.person.charlie;
|
|
130
|
-
expected.bravo = "another";
|
|
131
|
-
expect(result).toEqual(expected);
|
|
132
|
-
submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
|
|
133
|
-
submissionData.bravo = "notMatchAnything";
|
|
134
|
-
result = _index.default.clearOutUncompletedRoutes(form, submissionData);
|
|
135
|
-
expected = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
|
|
136
|
-
delete expected.person.charlie;
|
|
137
|
-
delete expected.person.delta;
|
|
138
|
-
expected.bravo = "notMatchAnything";
|
|
139
|
-
expect(result).toEqual(expected);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
/* eslint-disable consistent-return */
|
|
8
|
-
var deleteNodeByPath = function deleteNodeByPath(obj, path) {
|
|
9
|
-
if (Array.isArray(obj)) {
|
|
10
|
-
// If obj is an array, recursively call deleteNodeByPath on each element
|
|
11
|
-
for (var i = 0; i < obj.length; i += 1) {
|
|
12
|
-
deleteNodeByPath(obj[i], path);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
var keys = path.split('.');
|
|
16
|
-
var current = obj;
|
|
17
|
-
for (var _i = 0; _i < keys.length - 1; _i += 1) {
|
|
18
|
-
current = current[keys[_i]];
|
|
19
|
-
if (current === undefined) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
delete current[keys[keys.length - 1]];
|
|
24
|
-
return obj;
|
|
25
|
-
};
|
|
26
|
-
var _default = exports.default = deleteNodeByPath;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _deleteNodeByPath = _interopRequireDefault(require("./deleteNodeByPath"));
|
|
4
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
|
-
describe('Delete node based on path', function () {
|
|
6
|
-
it('delete where node is at parent level', function () {
|
|
7
|
-
var nested = {
|
|
8
|
-
type: "Example form",
|
|
9
|
-
alpha: "alpha",
|
|
10
|
-
bravo: "bravo",
|
|
11
|
-
person: {
|
|
12
|
-
charlie: "Smith",
|
|
13
|
-
delta: "Acme Inc"
|
|
14
|
-
},
|
|
15
|
-
gamma: "gamma",
|
|
16
|
-
epsilon: "epsilon"
|
|
17
|
-
};
|
|
18
|
-
var path = 'type';
|
|
19
|
-
var result = (0, _deleteNodeByPath.default)(nested, path);
|
|
20
|
-
expect(result).toEqual({
|
|
21
|
-
alpha: "alpha",
|
|
22
|
-
bravo: "bravo",
|
|
23
|
-
person: {
|
|
24
|
-
charlie: "Smith",
|
|
25
|
-
delta: "Acme Inc"
|
|
26
|
-
},
|
|
27
|
-
gamma: "gamma",
|
|
28
|
-
epsilon: "epsilon"
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
it('delete where node is at child level', function () {
|
|
32
|
-
var nested = {
|
|
33
|
-
type: "Example form",
|
|
34
|
-
alpha: "alpha",
|
|
35
|
-
bravo: "bravo",
|
|
36
|
-
person: {
|
|
37
|
-
charlie: "Smith",
|
|
38
|
-
delta: "Acme Inc"
|
|
39
|
-
},
|
|
40
|
-
gamma: "gamma",
|
|
41
|
-
epsilon: "epsilon"
|
|
42
|
-
};
|
|
43
|
-
var path = 'person.charlie';
|
|
44
|
-
var result = (0, _deleteNodeByPath.default)(nested, path);
|
|
45
|
-
expect(result).toEqual({
|
|
46
|
-
type: "Example form",
|
|
47
|
-
alpha: "alpha",
|
|
48
|
-
bravo: "bravo",
|
|
49
|
-
person: {
|
|
50
|
-
delta: "Acme Inc"
|
|
51
|
-
},
|
|
52
|
-
gamma: "gamma",
|
|
53
|
-
epsilon: "epsilon"
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
});
|