@ukhomeoffice/cop-react-form-renderer 4.65.0 → 4.66.0

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.
@@ -29,7 +29,7 @@ var meetsAllConditions = function meetsAllConditions(options, data) {
29
29
  return arr.every(function (condition) {
30
30
  var sourceDataValue = _Data.default.getSource(data, condition.field);
31
31
 
32
- return (0, _meetsCondition.default)(condition, sourceDataValue);
32
+ return (0, _meetsCondition.default)(condition, sourceDataValue, data);
33
33
  });
34
34
  }
35
35
 
@@ -5,11 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _Data = _interopRequireDefault(require("../Data"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
8
12
  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); }
9
13
 
10
- var getComparisonValue = function getComparisonValue(condition) {
14
+ var getComparisonValue = function getComparisonValue(condition, data) {
15
+ var _condition$value;
16
+
11
17
  if (['in', 'nin'].includes(condition.op)) {
12
18
  return condition.values;
19
+ } else if (typeof condition.value === 'string' && (_condition$value = condition.value) !== null && _condition$value !== void 0 && _condition$value.startsWith('field::')) {
20
+ var comparisonField = condition.value.replace('field::', '');
21
+ return _Data.default.getSource(data, comparisonField);
13
22
  }
14
23
 
15
24
  return condition.value;
@@ -28,9 +37,9 @@ var getComparisonValue = function getComparisonValue(condition) {
28
37
  */
29
38
 
30
39
 
31
- var meetsCondition = function meetsCondition(condition, value) {
40
+ var meetsCondition = function meetsCondition(condition, value, data) {
32
41
  if (condition && _typeof(condition) === 'object') {
33
- var compare = getComparisonValue(condition);
42
+ var compare = getComparisonValue(condition, data);
34
43
 
35
44
  switch (condition.op) {
36
45
  case '=':
@@ -64,6 +64,16 @@ describe('utils.Condition.meetsCondition', function () {
64
64
  var VALUE = false;
65
65
  var CONDITION = getCondition(op, false);
66
66
  expect((0, _meetsCondition.default)(CONDITION, VALUE)).toBeTruthy();
67
+ });
68
+ it('should match environmentContext value with data object', function () {
69
+ var VALUE = 'Bob';
70
+ var DATA = {
71
+ environmentContext: {
72
+ currentUser: 'Bob'
73
+ }
74
+ };
75
+ var CONDITION = getCondition(op, 'field::environmentContext.currentUser');
76
+ expect((0, _meetsCondition.default)(CONDITION, VALUE, DATA)).toBeTruthy();
67
77
  }); // Should reject...
68
78
 
69
79
  it('should reject a null and undefined', function () {
@@ -147,6 +157,16 @@ describe('utils.Condition.meetsCondition', function () {
147
157
  var VALUE = false;
148
158
  var CONDITION = getCondition(op, false);
149
159
  expect((0, _meetsCondition.default)(CONDITION, VALUE)).toBeFalsy();
160
+ });
161
+ it('should reject environmentContext value with data object', function () {
162
+ var VALUE = 'Bob';
163
+ var DATA = {
164
+ environmentContext: {
165
+ currentUser: 'Bob'
166
+ }
167
+ };
168
+ var CONDITION = getCondition(op, 'field::environmentContext.currentUser');
169
+ expect((0, _meetsCondition.default)(CONDITION, VALUE, DATA)).toBeFalsy();
150
170
  }); // Should match...
151
171
 
152
172
  it('should match a null and undefined', function () {
@@ -29,7 +29,7 @@ var meetsOneCondition = function meetsOneCondition(options, data) {
29
29
  return arr.some(function (condition) {
30
30
  var sourceDataValue = _Data.default.getSource(data, condition.field);
31
31
 
32
- return (0, _meetsCondition.default)(condition, sourceDataValue);
32
+ return (0, _meetsCondition.default)(condition, sourceDataValue, data);
33
33
  });
34
34
  }
35
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "4.65.0",
3
+ "version": "4.66.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",