@ukhomeoffice/cop-react-form-renderer 4.36.0 → 4.36.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.
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ 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; }
9
+
10
+ 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; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
7
14
  var parentComponents = ['radios'];
8
15
 
9
16
  var cleanHiddenNestedData = function cleanHiddenNestedData(patch, page) {
@@ -17,6 +24,15 @@ var cleanHiddenNestedData = function cleanHiddenNestedData(patch, page) {
17
24
  delete patch[id];
18
25
  });
19
26
  });
27
+
28
+ if (page.collection && patch[page.collection.name]) {
29
+ patch[page.collection.name] = patch[page.collection.name].map(function (entry) {
30
+ return cleanHiddenNestedData(entry, _objectSpread(_objectSpread({}, page), {}, {
31
+ collection: undefined
32
+ }));
33
+ });
34
+ }
35
+
20
36
  return patch;
21
37
  };
22
38
 
@@ -44,6 +44,51 @@ describe('components', function () {
44
44
  expect(updatedPatch['nested1']).toBeFalsy();
45
45
  expect(updatedPatch['nested2']).toBeTruthy();
46
46
  });
47
+ it('remove data corresponding to hidden nested components within a collection', function () {
48
+ var patch = {
49
+ collectionName: [{
50
+ parent: 'option1',
51
+ nested1: 'should be included',
52
+ nested2: 'should not be included'
53
+ }, {
54
+ parent: 'option2',
55
+ nested1: 'should not be included',
56
+ nested2: 'should be included'
57
+ }]
58
+ };
59
+ var page = {
60
+ id: 'page',
61
+ name: 'page',
62
+ title: 'Page',
63
+ collection: {
64
+ name: 'collectionName'
65
+ },
66
+ components: [{
67
+ id: 'parent',
68
+ type: 'radios',
69
+ data: {
70
+ options: [{
71
+ value: 'option1',
72
+ nested: [{
73
+ id: 'nested1',
74
+ fieldId: 'nested1'
75
+ }]
76
+ }, {
77
+ value: 'option2',
78
+ nested: [{
79
+ id: 'nested2',
80
+ fieldId: 'nested2'
81
+ }]
82
+ }]
83
+ }
84
+ }]
85
+ };
86
+ var updatedPatch = (0, _cleanHiddenNestedData.default)(patch, page);
87
+ expect(updatedPatch['collectionName'][0]['nested1']).toBeTruthy();
88
+ expect(updatedPatch['collectionName'][0]['nested2']).toBeFalsy();
89
+ expect(updatedPatch['collectionName'][1]['nested1']).toBeFalsy();
90
+ expect(updatedPatch['collectionName'][1]['nested2']).toBeTruthy();
91
+ });
47
92
  });
48
93
  });
49
94
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "4.36.0",
3
+ "version": "4.36.1",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",