@ukhomeoffice/cop-react-form-renderer 6.15.10 → 6.15.11

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.
@@ -39,6 +39,7 @@ const FormRenderer = _ref => {
39
39
  let {
40
40
  title,
41
41
  type,
42
+ cleanseHiddenData,
42
43
  components,
43
44
  pages,
44
45
  hub,
@@ -61,6 +62,7 @@ const FormRenderer = _ref => {
61
62
  }, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
62
63
  title: title,
63
64
  type: type,
65
+ cleanseHiddenData: cleanseHiddenData,
64
66
  components: components,
65
67
  pages: pages,
66
68
  hub: hub,
@@ -84,6 +86,7 @@ const InternalFormRenderer = _ref2 => {
84
86
  let {
85
87
  title,
86
88
  type,
89
+ cleanseHiddenData,
87
90
  components,
88
91
  pages: _pages,
89
92
  hub: _hub,
@@ -295,7 +298,7 @@ const InternalFormRenderer = _ref2 => {
295
298
  actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(action => _utils.default.Component.show(action, data))
296
299
  }, formState.cya, {
297
300
  onAction: action => {
298
- (0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting);
301
+ (0, _onCYAAction.default)(setPagePoint, action, pages, validate, cleanseHiddenData, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting);
299
302
  },
300
303
  onRowAction: onCYARowAction,
301
304
  summaryListClassModifiers: summaryListClassModifiers,
@@ -316,7 +319,7 @@ const InternalFormRenderer = _ref2 => {
316
319
  page: formState.page,
317
320
  pages: [].concat(pages),
318
321
  onAction: (action, patch, patchLabel) => {
319
- (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
322
+ (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
320
323
  },
321
324
  onChange: onChange,
322
325
  hashLink: hashLink,
@@ -329,7 +332,7 @@ const InternalFormRenderer = _ref2 => {
329
332
  pages: pages,
330
333
  onCollectionChange: onChange,
331
334
  onAction: (action, patch, patchLabel) => {
332
- (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
335
+ (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
333
336
  },
334
337
  hashLink: hashLink,
335
338
  classModifiers: formState.page.classModifiers,
@@ -363,6 +366,7 @@ const propTypes = {
363
366
  pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
364
367
  summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
365
368
  title: _propTypes.default.string,
369
+ cleanseHiddenData: _propTypes.default.bool,
366
370
  /** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
367
371
  type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASK_CYA, _models.FormTypes.FORM_WITH_TASK]).isRequired,
368
372
  viewOnly: _propTypes.default.bool,
@@ -388,6 +392,7 @@ const defaultProps = {
388
392
  noChangeAction: false,
389
393
  summaryListClassModifiers: [],
390
394
  title: '',
395
+ cleanseHiddenData: false,
391
396
  viewOnly: true,
392
397
  hideBlankRows: false
393
398
  };
@@ -301,8 +301,8 @@ const cleanseCollectionData = (allCollections, formData, componentByIdMap, compo
301
301
  * @param {*} formData
302
302
  * @returns {*} cleansed form data
303
303
  */
304
- const clearOutUncompletedRoutes = (form, formData) => {
305
- if (!form.cleanseHiddenData) return formData;
304
+ const clearOutUncompletedRoutes = (cleanseHiddenData, form, formData) => {
305
+ if (!cleanseHiddenData) return formData;
306
306
 
307
307
  // Load components into maps keyed on id and field for subsequent performant access
308
308
  const componentByIdMap = new Map(form.components.map(c => [c.id, c]));
@@ -175,110 +175,110 @@ describe('FormRenderer', () => {
175
175
  it('should not remove upload files from variance breach.', () => {
176
176
  const submissionData = JSON.parse(JSON.stringify(_copVarianceBreachWithUploadFiles.default));
177
177
  const form = JSON.parse(JSON.stringify(_formVarianceBreach.default));
178
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
178
+ const result = _index.default.clearOutUncompletedRoutes(false, form, submissionData);
179
179
  expect(result).toEqual(_copVarianceBreachWithUploadFiles.default);
180
180
  });
181
181
  it('should remove hidden component.', () => {
182
182
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponent.default));
183
183
  const form = JSON.parse(JSON.stringify(_formHiddenComponent.default));
184
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
184
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
185
185
  expect(result).toEqual(_dataHiddenComponentRemoved.default);
186
186
  });
187
187
  it('should remove hidden component with show_when in page and component.', () => {
188
188
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentShowWhenInComponentAndPage.default));
189
189
  const form = JSON.parse(JSON.stringify(_formHiddenComponentShowWhenInComponentAndPage.default));
190
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
190
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
191
191
  expect(result).toEqual(_dataHiddenComponentShowWhenInComponentAndPageRemoved.default);
192
192
  });
193
193
  it('should remove hidden component embedded in page.', () => {
194
194
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenEmbeddedComponent.default));
195
195
  const form = JSON.parse(JSON.stringify(_formHiddenEmbeddedComponent.default));
196
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
196
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
197
197
  expect(result).toEqual(_dataHiddenEmbeddedComponentRemoved.default);
198
198
  });
199
199
  it('should remove hidden collection component.', () => {
200
200
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenCollectionComponent.default));
201
201
  const form = JSON.parse(JSON.stringify(_formHiddenCollectionComponent.default));
202
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
202
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
203
203
  expect(result).toEqual(_dataHiddenCollectionComponentRemoved.default);
204
204
  });
205
205
  it('should remove hidden embedded collection component.', () => {
206
206
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenEmbeddedCollectionComponent.default));
207
207
  const form = JSON.parse(JSON.stringify(_formHiddenEmbeddedCollectionComponent.default));
208
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
208
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
209
209
  expect(result).toEqual(_dataHiddenEmbeddedCollectionComponentRemoved.default);
210
210
  });
211
211
  it('should remove hidden containerised component.', () => {
212
212
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenContainerisedComponent.default));
213
213
  const form = JSON.parse(JSON.stringify(_formHiddenContainerisedComponent.default));
214
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
214
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
215
215
  expect(result).toEqual(_dataHiddenContainerisedComponentRemoved.default);
216
216
  });
217
217
  it('should remove hidden multi-level containerised components.', () => {
218
218
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenMultilevelContainerisedComponent.default));
219
219
  const form = JSON.parse(JSON.stringify(_formHiddenMultilevelContainerisedComponent.default));
220
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
220
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
221
221
  expect(result).toEqual(_dataHiddenMultilevelContainerisedComponentRemoved.default);
222
222
  });
223
223
  it('should remove hidden leaf-level in a multi-level containerised component.', () => {
224
224
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenMultilevelContainerisedComponentLeafHidden.default));
225
225
  const form = JSON.parse(JSON.stringify(_formHiddenMultilevelContainerisedComponentLeafHidden.default));
226
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
226
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
227
227
  expect(result).toEqual(_dataHiddenMultilevelContainerisedComponentLeafHiddenRemoved.default);
228
228
  });
229
229
  it('should remove hidden component with options.', () => {
230
230
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenOptions.default));
231
231
  const form = JSON.parse(JSON.stringify(_formHiddenOptions.default));
232
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
232
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
233
233
  expect(result).toEqual(_dataHiddenOptionsRemoved.default);
234
234
  });
235
235
  it('should remove hidden component with nested questions in options.', () => {
236
236
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentWithNestedQuestions.default));
237
237
  const form = JSON.parse(JSON.stringify(_formHiddenComponentWithNestedQuestions.default));
238
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
238
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
239
239
  expect(result).toEqual(_dataHiddenComponentWithNestedQuestionsRemoved.default);
240
240
  });
241
241
  it('should remove answers associated with unselected options in a containerised component.', () => {
242
242
  const submissionData = JSON.parse(JSON.stringify(_dataNestedAnswersHiddenByOption.default));
243
243
  const form = JSON.parse(JSON.stringify(_formNestedAnswersHiddenByOption.default));
244
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
244
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
245
245
  expect(result).toEqual(_dataNestedAnswersHiddenByOptionRemoved.default);
246
246
  });
247
247
  it('should remove hidden page.', () => {
248
248
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenPage.default));
249
249
  const form = JSON.parse(JSON.stringify(_formHiddenPage.default));
250
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
250
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
251
251
  expect(result).toEqual(_dataHiddenPageRemoved.default);
252
252
  });
253
253
  it('should remove hidden page with same component reused.', () => {
254
254
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageSameComponentReused.default));
255
255
  const form = JSON.parse(JSON.stringify(_formHiddenPageSameComponentReused.default));
256
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
256
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
257
257
  expect(result).toEqual(_dataHiddenPageSameComponentReusedRemoved.default);
258
258
  });
259
259
  it('should show component when reused but only one show_when true.', () => {
260
260
  const submissionData = JSON.parse(JSON.stringify(_dataPageSameComponentReusedOneShown.default));
261
261
  const form = JSON.parse(JSON.stringify(_formPageSameComponentReusedOneShown.default));
262
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
262
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
263
263
  expect(result).toEqual(_dataPageSameComponentReusedOneShownRemoved.default);
264
264
  });
265
265
  it('should remove a hidden collection on a page.', () => {
266
266
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageCollection.default));
267
267
  const form = JSON.parse(JSON.stringify(_formHiddenPageCollection.default));
268
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
268
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
269
269
  expect(result).toEqual(_dataHiddenPageCollectionRemoved.default);
270
270
  });
271
271
  it('hidden component with show_when rule referring to a collection.', () => {
272
272
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentReferringToCollection.default));
273
273
  const form = JSON.parse(JSON.stringify(_formHiddenComponentReferringToCollection.default));
274
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
274
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
275
275
  expect(result).toEqual(_dataHiddenComponentReferringToCollectionRemoved.default);
276
276
  });
277
277
  it('hidden component with show_when rule referring to a hidden collection.', () => {
278
278
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenComponentReferringToHiddenCollection.default));
279
279
  const form = JSON.parse(JSON.stringify(_formHiddenComponentReferringToHiddenCollection.default));
280
280
  try {
281
- _index.default.clearOutUncompletedRoutes(form, submissionData);
281
+ _index.default.clearOutUncompletedRoutes(true, form, submissionData);
282
282
  throw new Error('Expected myFunction to throw an error, but it did not');
283
283
  } catch (error) {
284
284
  expect(error.message).toContain('It is not possible to reliably clean hidden data when a component is dependent');
@@ -287,103 +287,103 @@ describe('FormRenderer', () => {
287
287
  it('should remove hidden collection components whether they are dependent on data inside or outside the collection.', () => {
288
288
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenCollectionComponentDependentOnExternalData.default));
289
289
  const form = JSON.parse(JSON.stringify(_formHiddenCollectionComponentDependentOnExternalData.default));
290
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
290
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
291
291
  expect(result).toEqual(_dataHiddenCollectionComponentDependentOnExternalDataRemoved.default);
292
292
  });
293
293
  it('should not remove component on hidden page if component used elsewhere.', () => {
294
294
  const submissionData = JSON.parse(JSON.stringify(_dataHiddenPageComponentUsedElsewhere.default));
295
295
  const form = JSON.parse(JSON.stringify(_formHiddenPageComponentUsedElsewhere.default));
296
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
296
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
297
297
  expect(result).toEqual(_dataHiddenPageComponentUsedElsewhereRemoved.default);
298
298
  });
299
299
  it('chained show_whens should be resolved from the end of the chain backup to the start.', () => {
300
300
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhens.default));
301
301
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhens.default));
302
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
302
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
303
303
  expect(result).toEqual(_dataChainedComponentShowWhensRemoved.default);
304
304
  });
305
305
  it('chained show_whens when top level dependency is field within refdata object.', () => {
306
306
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensRefdata.default));
307
307
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensRefdata.default));
308
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
308
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
309
309
  expect(result).toEqual(_dataChainedComponentShowWhensRefdataRemoved.default);
310
310
  });
311
311
  it('chained show_whens should be resolved from the end of the chain backup to the start, even if the target and dependent components are in containers thus having segmented paths.', () => {
312
312
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensContainerised.default));
313
313
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensContainerised.default));
314
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
314
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
315
315
  expect(result).toEqual(_dataChainedComponentShowWhensContainerisedRemoved.default);
316
316
  });
317
317
  it('chained show_whens when the component at the end of the chain is hidden indirectly via page show_when.', () => {
318
318
  const submissionData = JSON.parse(JSON.stringify(_dataChainedShowWhensPageHidden.default));
319
319
  const form = JSON.parse(JSON.stringify(_formChainedShowWhensPageHidden.default));
320
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
320
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
321
321
  expect(result).toEqual(_dataChainedShowWhensPageHiddenRemoved.default);
322
322
  });
323
323
  it('chained show_whens when the dependent component is nested single question.', () => {
324
324
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensDependentComponentNested.default));
325
325
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensDependentComponentNested.default));
326
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
326
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
327
327
  expect(result).toEqual(_dataChainedComponentShowWhensDependentComponentNestedRemoved.default);
328
328
  });
329
329
  it('chained show_whens when the target component is nested.', () => {
330
330
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensTargetComponentNested.default));
331
331
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensTargetComponentNested.default));
332
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
332
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
333
333
  expect(result).toEqual(_dataChainedComponentShowWhensTargetComponentNestedRemoved.default);
334
334
  });
335
335
  it('chained show_whens when the dependent component is nested entire block.', () => {
336
336
  const submissionData = JSON.parse(JSON.stringify(_dataChainedComponentShowWhensDependentComponentNestedBlock.default));
337
337
  const form = JSON.parse(JSON.stringify(_formChainedComponentShowWhensDependentComponentNestedBlock.default));
338
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
338
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
339
339
  expect(result).toEqual(_dataChainedComponentShowWhensDependentComponentNestedBlockRemoved.default);
340
340
  });
341
341
  it('business interests removed from mandec.', () => {
342
342
  const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveBusinessInterestsBefore.default));
343
343
  const form = JSON.parse(JSON.stringify(_formCopMandec.default));
344
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
344
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
345
345
  expect(result).toEqual(_copMandecRemoveBusinessInterestsAfter.default);
346
346
  });
347
347
  it('criminality removed from mandec.', () => {
348
348
  const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveCriminalityBefore.default));
349
349
  const form = JSON.parse(JSON.stringify(_formCopMandec.default));
350
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
350
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
351
351
  expect(result).toEqual(_copMandecRemoveCriminalityAfter.default);
352
352
  });
353
353
  it('Unspent convictions removed from mandec.', () => {
354
354
  const submissionData = JSON.parse(JSON.stringify(_copMandecRemoveUnspentConvictionsBefore.default));
355
355
  const form = JSON.parse(JSON.stringify(_formCopMandec.default));
356
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
356
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
357
357
  expect(result).toEqual(_copMandecRemoveUnspentConvictionsAfter.default);
358
358
  });
359
359
  it('Reassign to RCC form, preserved fields not cleansed.', () => {
360
360
  const submissionData = JSON.parse(JSON.stringify(_reassignToRcc.default));
361
361
  const form = JSON.parse(JSON.stringify(_copReassignTaskToRcc.default));
362
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
362
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
363
363
  expect(result).toEqual(_reassignToRcc.default);
364
364
  });
365
365
  it('photos removed from airpax.', () => {
366
366
  const submissionData = JSON.parse(JSON.stringify(_copAirpaxRemovePhotosBefore.default));
367
367
  const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
368
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
368
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
369
369
  expect(result).toEqual(_copAirpaxRemovePhotosAfter.default);
370
370
  });
371
371
  it('carrier not removed from airpax.', () => {
372
372
  const submissionData = JSON.parse(JSON.stringify(_copAirpaxCarrier.default));
373
373
  const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
374
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
374
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
375
375
  expect(result).toEqual(_copAirpaxCarrier.default);
376
376
  });
377
377
  it('airpax change whatHappened to hide whoDecidedSelection.', () => {
378
378
  const submissionData = JSON.parse(JSON.stringify(_copAirpaxChangeWhatHappenedBefore.default));
379
379
  const form = JSON.parse(JSON.stringify(_formCopAirpax.default));
380
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
380
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
381
381
  expect(result).toEqual(_copAirpaxChangeWhatHappenedAfter.default);
382
382
  });
383
383
  it('should handle nested option in container componet defined in the page.', () => {
384
384
  const submissionData = JSON.parse(JSON.stringify(_dataPageNestedRadioComponent.default));
385
385
  const form = JSON.parse(JSON.stringify(_formPageNestedRadioComponent.default));
386
- const result = _index.default.clearOutUncompletedRoutes(form, submissionData);
386
+ const result = _index.default.clearOutUncompletedRoutes(true, form, submissionData);
387
387
  expect(result).toEqual(_dataPageNestedRadioComponentRemoved.default);
388
388
  });
389
389
  });
@@ -18,7 +18,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
18
18
  *
19
19
  * @param {*} action
20
20
  */
21
- const onCYAAction = (setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting) => {
21
+ const onCYAAction = (setPagePoint, action, pages, validate, cleanseHiddenData, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting) => {
22
22
  // Check to see whether the action is able to proceed, which in
23
23
  // in the case of a submission will validate the fields in the page.
24
24
  if (action.type === _models.PageAction.TYPES.SUBMIT && hub !== _models.HubFormats.TASK) {
@@ -36,7 +36,7 @@ const onCYAAction = (setPagePoint, action, pages, validate, components, data, se
36
36
  pages,
37
37
  components
38
38
  };
39
- _helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
39
+ _helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
40
40
  submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
41
41
  setData(submissionData);
42
42
  // Now submit the data to the backend...
@@ -80,7 +80,7 @@ const onCYAAction = (setPagePoint, action, pages, validate, components, data, se
80
80
  pages,
81
81
  components
82
82
  };
83
- _helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
83
+ _helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
84
84
  submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
85
85
  setData(submissionData);
86
86
  // Now submit the data to the backend...
@@ -57,7 +57,7 @@ jest.mock('./helpers', () => ({
57
57
  this.getSubmissionStatusCalls = 0;
58
58
  },
59
59
  clearOutUncompletedRoutesCalls: 0,
60
- clearOutUncompletedRoutes(formPagesAndComponents, formData) {
60
+ clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, formData) {
61
61
  this.clearOutUncompletedRoutesCalls += 1;
62
62
  return formData;
63
63
  }
@@ -170,6 +170,7 @@ describe('components.FormRenderer.onCYAAction', () => {
170
170
  },
171
171
  pages: PAGES,
172
172
  validate: () => {},
173
+ cleanseHiddenData: true,
173
174
  components: COMPONENTS,
174
175
  data: {},
175
176
  setData: mockSetData,
@@ -19,7 +19,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
19
19
  // (patch captures payload-ready field name and value,
20
20
  // patchLabel captures non-ID values
21
21
  // for display purposes after submission.)
22
- const onPageAction = (action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, existingErrors) => {
22
+ const onPageAction = (action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, cleanseHiddenData, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, existingErrors) => {
23
23
  // Save a copy of data in case submit errors and we need to revert
24
24
  const preSubmitData = _objectSpread({}, data);
25
25
  const form = formState;
@@ -112,7 +112,7 @@ const onPageAction = (action, patch, patchLabel, hooks, data, formState, validat
112
112
  components
113
113
  };
114
114
  if (action.type === _models.PageAction.TYPES.SUBMIT) {
115
- _helpers.default.clearOutUncompletedRoutes(formPagesAndComponents, submissionData);
115
+ _helpers.default.clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, submissionData);
116
116
  }
117
117
 
118
118
  // In case of hub-and-spoke if patchLabel has changed then
@@ -47,7 +47,7 @@ jest.mock('./helpers', () => ({
47
47
  return patch;
48
48
  },
49
49
  clearOutUncompletedRoutesCalls: 0,
50
- clearOutUncompletedRoutes(formPagesAndComponents, formData) {
50
+ clearOutUncompletedRoutes(cleanseHiddenData, formPagesAndComponents, formData) {
51
51
  this.clearOutUncompletedRoutesCalls += 1;
52
52
  return formData;
53
53
  },
@@ -229,6 +229,7 @@ describe('components.FormRenderer.onPageAction', () => {
229
229
  validate: MOCK_VALIDATE,
230
230
  onPageChange: mockOnPageChange,
231
231
  type: _models.FormTypes.FORM_WITH_TASK,
232
+ cleanseHiddenData: true,
232
233
  pages: PAGES,
233
234
  components: COMPONENTS,
234
235
  pageId: 'alpha',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "6.15.10",
3
+ "version": "6.15.11",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",