@ukhomeoffice/cop-react-form-renderer 6.15.3-alpha → 6.15.4-alpha

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.
Files changed (105) hide show
  1. package/dist/components/CollectionSummary/BannerStrip.scss +4 -0
  2. package/dist/components/FormPage/FormPage.js +8 -10
  3. package/dist/components/FormRenderer/FormRenderer.js +11 -10
  4. package/dist/components/FormRenderer/helpers/index.js +1 -3
  5. package/dist/components/FormRenderer/onPageAction.js +0 -8
  6. package/dist/components/FormRenderer/onPageAction.test.js +0 -5
  7. package/dist/hooks/useGetRequest.js +15 -15
  8. package/dist/hooks/useRefData.js +3 -2
  9. package/dist/utils/CollectionPage/mergeCollectionPages.js +0 -1
  10. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +2 -1
  11. package/dist/utils/Component/getDefaultValueFromConfig.js +2 -1
  12. package/dist/utils/Condition/meetsCondition.js +26 -12
  13. package/dist/utils/Condition/meetsCondition.test.js +21 -0
  14. package/dist/utils/Data/getAutocompleteSource.js +68 -51
  15. package/dist/utils/Data/getAutocompleteSource.test.js +31 -18
  16. package/dist/utils/Operate/doesContainValue.js +34 -0
  17. package/dist/utils/Operate/doesContainValue.test.js +75 -0
  18. package/dist/utils/Operate/runPageOperations.js +2 -0
  19. package/dist/utils/Validate/validateOnPageLoad.js +23 -0
  20. package/dist/utils/Validate/validateOnPageLoad.test.js +88 -0
  21. package/package.json +4 -4
  22. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-containerised.json +0 -119
  23. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested-block.json +0 -112
  24. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested.json +0 -105
  25. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-refdata.json +0 -105
  26. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-target-component-nested.json +0 -98
  27. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens.json +0 -105
  28. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-show-whens-page-hidden.json +0 -112
  29. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-airpax.json +0 -26407
  30. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-mandec.json +0 -9404
  31. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component-dependent-on-external-data.json +0 -157
  32. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component.json +0 -85
  33. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-collection.json +0 -172
  34. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-hidden-collection.json +0 -201
  35. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions.json +0 -111
  36. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component.json +0 -57
  37. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-containerised-component.json +0 -96
  38. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-collection-component.json +0 -82
  39. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-component.json +0 -54
  40. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component-leaf-hidden.json +0 -105
  41. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component.json +0 -105
  42. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-options.json +0 -98
  43. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-collection.json +0 -127
  44. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-component-used-elsewhere.json +0 -108
  45. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page.json +0 -95
  46. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option.json +0 -111
  47. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-remove-photos-before.json +0 -384
  48. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-business-interests-before.json +0 -140
  49. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-criminality-before.json +0 -186
  50. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-unspent-convictions-before.json +0 -143
  51. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-containerised.json +0 -11
  52. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested-block.json +0 -10
  53. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested.json +0 -9
  54. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-refdata.json +0 -11
  55. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-target-component-nested.json +0 -9
  56. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens.json +0 -9
  57. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-show-whens-page-hidden.json +0 -9
  58. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component-dependent-on-external-data.json +0 -26
  59. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component.json +0 -15
  60. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-collection.json +0 -25
  61. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-hidden-collection.json +0 -26
  62. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-with-nested-questions.json +0 -12
  63. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component.json +0 -5
  64. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-containerised-component.json +0 -11
  65. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-collection-component.json +0 -15
  66. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-component.json +0 -5
  67. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component-leaf-hidden.json +0 -14
  68. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component.json +0 -14
  69. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-options.json +0 -10
  70. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-collection.json +0 -18
  71. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-component-used-elsewhere.json +0 -9
  72. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page.json +0 -9
  73. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-nested-answers-hidden-by-option.json +0 -12
  74. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-airpax-remove-photos-after.json +0 -355
  75. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-base-file.json +0 -80
  76. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-business-interests-after.json +0 -122
  77. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-criminality-after.json +0 -86
  78. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-unspent-convictions-after.json +0 -127
  79. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-containerised-removed.json +0 -11
  80. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-block-removed.json +0 -7
  81. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-removed.json +0 -7
  82. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-refdata-removed.json +0 -7
  83. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-removed.json +0 -7
  84. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-target-component-nested-removed.json +0 -6
  85. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-show-whens-page-hidden-removed.json +0 -6
  86. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-dependent-on-external-data-removed.json +0 -23
  87. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-removed.json +0 -4
  88. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-collection-removed.json +0 -21
  89. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-hidden-collection-removed.json +0 -6
  90. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-removed.json +0 -4
  91. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-with-nested-questions-removed.json +0 -10
  92. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-containerised-component-removed.json +0 -10
  93. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-collection-component-removed.json +0 -4
  94. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-component-removed.json +0 -4
  95. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-leaf-hidden-removed.json +0 -13
  96. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-removed.json +0 -10
  97. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-options-removed.json +0 -8
  98. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-collection-removed.json +0 -15
  99. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-component-used-elsewhere-removed.json +0 -5
  100. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-removed.json +0 -4
  101. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-nested-answers-hidden-by-option-removed.json +0 -11
  102. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -353
  103. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -308
  104. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -29
  105. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
+ var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ // Global imports.
11
+
12
+ // Local imports.
13
+
14
+ /**
15
+ * Returns if it can find a value in the form data. supports searching in arrays and objects
16
+ * @param {object} config The config of the operation.
17
+ * @param {string} config.target the JPath to the object/array that contains the data we want to checkon
18
+ * @param {string} config.key the JPath to the field we want to check
19
+ * @param {string} config.value the value that we want to check the the data against
20
+ * @param {object} data A page's formData.
21
+ * @returns The index of the matching value if one exists, or null.
22
+ */
23
+ const doesContainValue = (config, data) => {
24
+ const targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
25
+ const target = (0, _getSourceData.default)(data, targetPath);
26
+ if (target && Array.isArray(target)) {
27
+ return target.some(entry => config.key ? (0, _getSourceData.default)(entry, config.key) === config.value : entry === config.value);
28
+ }
29
+ if (target && typeof target === "object") {
30
+ return (0, _getSourceData.default)(target, config.key) === config.value;
31
+ }
32
+ return false;
33
+ };
34
+ var _default = exports.default = doesContainValue;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _doesContainValue = _interopRequireDefault(require("./doesContainValue"));
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('doesContainValue', () => {
6
+ const mockData = {
7
+ arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
8
+ root: {
9
+ branch: 'leaf'
10
+ }
11
+ }],
12
+ cutoffIndex: 1,
13
+ ignoreIndex: 2,
14
+ valueToSearchFor: 'cde',
15
+ targetName: 'arrayOfValues',
16
+ fieldName: 'valueToSearchFor',
17
+ cutoffName: 'cutoffIndex',
18
+ ignoreName: 'ignoreIndex'
19
+ };
20
+ test('returns true if value exists in array', () => {
21
+ const config = {
22
+ target: 'arrayOfValues',
23
+ value: 'cde'
24
+ };
25
+ const result = (0, _doesContainValue.default)(config, mockData);
26
+ expect(result).toBe(true);
27
+ });
28
+ test('returns false if value does not exist in array', () => {
29
+ const config = {
30
+ target: 'arrayOfValues',
31
+ value: 'xyz'
32
+ };
33
+ const result = (0, _doesContainValue.default)(config, mockData);
34
+ expect(result).toBe(false);
35
+ });
36
+ test('returns true if key-value pair matches in array object', () => {
37
+ const config = {
38
+ target: 'arrayOfValues',
39
+ key: 'root.branch',
40
+ value: 'leaf'
41
+ };
42
+ const result = (0, _doesContainValue.default)(config, mockData);
43
+ expect(result).toBe(true);
44
+ });
45
+ test('returns false if key-value pair does not match in array object', () => {
46
+ const config = {
47
+ target: 'arrayOfValues',
48
+ key: 'root.branch',
49
+ value: 'notLeaf'
50
+ };
51
+ const result = (0, _doesContainValue.default)(config, mockData);
52
+ expect(result).toBe(false);
53
+ });
54
+ test('handles non-array targets gracefully', () => {
55
+ const config = {
56
+ target: 'nonExistentTarget',
57
+ value: 'value'
58
+ };
59
+ const result = (0, _doesContainValue.default)(config, mockData);
60
+ expect(result).toBe(false);
61
+ });
62
+ test('handles objects as target correctly', () => {
63
+ const config = {
64
+ target: 'objectTarget',
65
+ key: 'key',
66
+ value: 'value'
67
+ };
68
+ const result = (0, _doesContainValue.default)(config, {
69
+ objectTarget: {
70
+ key: 'value'
71
+ }
72
+ });
73
+ expect(result).toBe(true);
74
+ });
75
+ });
@@ -14,6 +14,7 @@ var _shouldRun = _interopRequireDefault(require("./shouldRun"));
14
14
  var _setDataItem = _interopRequireDefault(require("../Data/setDataItem"));
15
15
  var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
16
16
  var _getLength = _interopRequireDefault(require("./getLength"));
17
+ var _doesContainValue = _interopRequireDefault(require("./doesContainValue"));
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
19
  // Global imports.
19
20
 
@@ -22,6 +23,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
22
23
  const functions = {
23
24
  checkValueIsTruthy: _checkValueIsTruthy.default,
24
25
  getIndexOfMatchingValueIn: _getIndexOfMatchingValueIn.default,
26
+ doesContainValue: _doesContainValue.default,
25
27
  persistValueInFormData: _persistValueInFormData.default,
26
28
  setValueInFormData: _setValueInFormData.default,
27
29
  deleteValueInFormData: _deleteValueInFormData.default,
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.doValidateOnPageLoad = void 0;
7
+ var _Condition = _interopRequireDefault(require("../Condition"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const doValidateOnPageLoad = page => {
10
+ var _validation$runWhen, _validation$runWhen2;
11
+ if (!(page !== null && page !== void 0 && page.customValidation)) return false;
12
+
13
+ // Find the validation with `onLoad` set to true
14
+ const validation = page === null || page === void 0 ? void 0 : page.customValidation.find(item => {
15
+ var _item$runWhen;
16
+ return ((_item$runWhen = item.runWhen) === null || _item$runWhen === void 0 ? void 0 : _item$runWhen.onLoad) === true;
17
+ });
18
+ if (!validation) return false;
19
+
20
+ // Check if the constraint is met using the condition
21
+ return (_validation$runWhen = validation.runWhen) !== null && _validation$runWhen !== void 0 && _validation$runWhen.constraint ? _Condition.default.meetsOne((_validation$runWhen2 = validation.runWhen) === null || _validation$runWhen2 === void 0 ? void 0 : _validation$runWhen2.constraint, page.formData) : false;
22
+ };
23
+ exports.doValidateOnPageLoad = doValidateOnPageLoad;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _Condition = _interopRequireDefault(require("../Condition"));
4
+ var _validateOnPageLoad = require("./validateOnPageLoad");
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
+ describe('doValidateOnPageLoad', () => {
7
+ const formData = {
8
+ people: [{
9
+ name: 'John Doe'
10
+ }, {
11
+ name: 'Jane Doe'
12
+ }]
13
+ };
14
+ it('should return false if page.customValidation is not defined', () => {
15
+ const page = {
16
+ formData
17
+ };
18
+ const result = (0, _validateOnPageLoad.doValidateOnPageLoad)(page);
19
+ expect(result).toBe(false);
20
+ });
21
+ it('should return false if no validation item has onLoad set to true', () => {
22
+ const page = {
23
+ customValidation: [{
24
+ message: "Validation without onLoad",
25
+ runWhen: {
26
+ onLoad: false
27
+ }
28
+ }],
29
+ formData
30
+ };
31
+ const result = (0, _validateOnPageLoad.doValidateOnPageLoad)(page);
32
+ expect(result).toBe(false);
33
+ });
34
+ it('should return false if validation constraint is not met', () => {
35
+ const page = {
36
+ customValidation: [{
37
+ message: "Update all people details before continuing",
38
+ runWhen: {
39
+ onLoad: true,
40
+ constraint: [{
41
+ field: 'people',
42
+ op: _Condition.default.GREATER_THAN,
43
+ value: 3 // Condition that will fail
44
+ }]
45
+ }
46
+ }],
47
+ formData
48
+ };
49
+ jest.spyOn(_Condition.default, 'meetsOne').mockImplementation(() => false);
50
+ const result = (0, _validateOnPageLoad.doValidateOnPageLoad)(page);
51
+ expect(result).toBe(false);
52
+ expect(_Condition.default.meetsOne).toHaveBeenCalledWith(page.customValidation[0].runWhen.constraint, formData);
53
+ });
54
+ it('should return true if validation constraint is met', () => {
55
+ const page = {
56
+ customValidation: [{
57
+ message: "Update all people details before continuing",
58
+ runWhen: {
59
+ onLoad: true,
60
+ constraint: [{
61
+ field: 'people',
62
+ op: _Condition.default.GREATER_THAN,
63
+ value: 0 // Condition that will pass
64
+ }]
65
+ }
66
+ }],
67
+ formData
68
+ };
69
+ jest.spyOn(_Condition.default, 'meetsOne').mockImplementation(() => true);
70
+ const result = (0, _validateOnPageLoad.doValidateOnPageLoad)(page);
71
+ expect(result).toBe(true);
72
+ expect(_Condition.default.meetsOne).toHaveBeenCalledWith(page.customValidation[0].runWhen.constraint, formData);
73
+ });
74
+ it('should return false if no matching validation is found', () => {
75
+ const page = {
76
+ customValidation: [{
77
+ message: "Validation without constraint",
78
+ runWhen: {
79
+ onLoad: true,
80
+ constraint: null
81
+ }
82
+ }],
83
+ formData
84
+ };
85
+ const result = (0, _validateOnPageLoad.doValidateOnPageLoad)(page);
86
+ expect(result).toBe(false);
87
+ });
88
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "6.15.3-alpha",
3
+ "version": "6.15.4-alpha",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",
@@ -16,12 +16,12 @@
16
16
  "yalc-publish": "yarn compile-with-maps && cp -r src dist/src && yalc publish --push"
17
17
  },
18
18
  "dependencies": {
19
- "@ukhomeoffice/cop-react-components": "4.7.4",
19
+ "@ukhomeoffice/cop-react-components": "4.7.15",
20
20
  "axios": "^0.23.0",
21
21
  "dayjs": "^1.11.0",
22
22
  "govuk-frontend": "^5.0.0",
23
- "web-vitals": "^1.0.1",
24
- "uuid": "^8.1.0"
23
+ "uuid": "^8.1.0",
24
+ "web-vitals": "^1.0.1"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/cli": "^7.15.4",
@@ -1,119 +0,0 @@
1
- {
2
- "id": "example-form",
3
- "version": "0.0.1",
4
- "name": "example-form",
5
- "title": "Example form",
6
- "type": "form",
7
- "components": [
8
- {
9
- "id": "alpha-parent",
10
- "fieldId": "alpha-parent",
11
- "type": "container",
12
- "components": [
13
- {
14
- "id": "alpha",
15
- "fieldId": "alpha",
16
- "label": "Alpha",
17
- "type": "text",
18
- "show_when": {
19
- "op": "=",
20
- "field": "bravo-parent.bravo",
21
- "value": "bravo-value"
22
- }
23
- }
24
- ]
25
- },
26
- {
27
- "id": "bravo-parent",
28
- "fieldId": "bravo-parent",
29
- "type": "container",
30
- "components": [
31
- {
32
- "id": "bravo",
33
- "fieldId": "bravo",
34
- "label": "Bravo",
35
- "type": "text",
36
- "show_when": {
37
- "op": "=",
38
- "field": "gamma-parent.gamma",
39
- "value": "gamma-value"
40
- }
41
- }
42
- ]
43
- },
44
- {
45
- "id": "personKnown",
46
- "fieldId": "personKnown",
47
- "type": "radios",
48
- "data": {
49
- "options": [
50
- {
51
- "value": "yes",
52
- "label": "Yes",
53
- "nested": [
54
- {
55
- "id": "telephone",
56
- "fieldId": "telephone",
57
- "type": "text",
58
- "label": "Telephone",
59
- "required": true
60
- }
61
- ]
62
- },
63
- {
64
- "value": "no",
65
- "label": "No"
66
- }
67
- ]
68
- }
69
- },
70
- {
71
- "id": "gamma-parent",
72
- "fieldId": "gamma-parent",
73
- "type": "container",
74
- "components": [
75
- {
76
- "id": "gamma",
77
- "fieldId": "gamma",
78
- "label": "Gamma",
79
- "type": "text",
80
- "show_when": {
81
- "op": "=",
82
- "field": "epsilon",
83
- "value": "epsilon-value"
84
- }
85
- }
86
- ]
87
- },
88
- {
89
- "id": "epsilon",
90
- "fieldId": "epsilon",
91
- "label": "Epsilon",
92
- "type": "text"
93
- }
94
- ],
95
- "pages": [
96
- {
97
- "id": "visiblePage",
98
- "name": "visiblePage",
99
- "title": "Visible Page",
100
- "components": [
101
- {
102
- "use": "alpha-parent"
103
- },
104
- {
105
- "use": "bravo-parent"
106
- },
107
- {
108
- "use": "personKnown"
109
- },
110
- {
111
- "use": "gamma-parent"
112
- },
113
- {
114
- "use": "epsilon"
115
- }
116
- ]
117
- }
118
- ]
119
- }
@@ -1,112 +0,0 @@
1
- {
2
- "id": "example-form",
3
- "version": "0.0.1",
4
- "name": "example-form",
5
- "title": "Example form",
6
- "type": "form",
7
- "components": [
8
- {
9
- "id": "alpha",
10
- "fieldId": "alpha",
11
- "label": "Alpha",
12
- "type": "text"
13
- },
14
- {
15
- "id": "bravo",
16
- "fieldId": "bravo",
17
- "label": "Bravo",
18
- "type": "text",
19
- "show_when": [
20
- {
21
- "type": "or",
22
- "conditions": [
23
- {
24
- "op": "=",
25
- "field": "gamma",
26
- "value": "NOT-gamma-value"
27
- },
28
- {
29
- "op": "=",
30
- "field": "epsilon",
31
- "value": "NOT-epsilon-value"
32
- }
33
- ]
34
- }
35
- ]
36
- },
37
- {
38
- "id": "personKnown",
39
- "fieldId": "personKnown",
40
- "type": "radios",
41
- "data": {
42
- "options": [
43
- {
44
- "value": "yes",
45
- "label": "Yes",
46
- "nested": [
47
- {
48
- "id": "telephone",
49
- "fieldId": "telephone",
50
- "type": "text",
51
- "label": "Telephone",
52
- "required": true
53
- },
54
- {
55
- "id": "address",
56
- "fieldId": "address",
57
- "type": "text",
58
- "label": "Address",
59
- "required": true
60
- }
61
- ],
62
- "show_when": {
63
- "op": "=",
64
- "field": "bravo",
65
- "value": "bravo-value"
66
- }
67
- },
68
- {
69
- "value": "no",
70
- "label": "No"
71
- }
72
- ]
73
- }
74
- },
75
- {
76
- "id": "gamma",
77
- "fieldId": "gamma",
78
- "label": "Gamma",
79
- "type": "text"
80
- },
81
- {
82
- "id": "epsilon",
83
- "fieldId": "epsilon",
84
- "label": "Epsilon",
85
- "type": "text"
86
- }
87
- ],
88
- "pages": [
89
- {
90
- "id": "visiblePage",
91
- "name": "visiblePage",
92
- "title": "Visible Page",
93
- "components": [
94
- {
95
- "use": "alpha"
96
- },
97
- {
98
- "use": "bravo"
99
- },
100
- {
101
- "use": "personKnown"
102
- },
103
- {
104
- "use": "gamma"
105
- },
106
- {
107
- "use": "epsilon"
108
- }
109
- ]
110
- }
111
- ]
112
- }
@@ -1,105 +0,0 @@
1
- {
2
- "id": "example-form",
3
- "version": "0.0.1",
4
- "name": "example-form",
5
- "title": "Example form",
6
- "type": "form",
7
- "components": [
8
- {
9
- "id": "alpha",
10
- "fieldId": "alpha",
11
- "label": "Alpha",
12
- "type": "text"
13
- },
14
- {
15
- "id": "bravo",
16
- "fieldId": "bravo",
17
- "label": "Bravo",
18
- "type": "text",
19
- "show_when": [
20
- {
21
- "type": "or",
22
- "conditions": [
23
- {
24
- "op": "=",
25
- "field": "gamma",
26
- "value": "NOT-gamma-value"
27
- },
28
- {
29
- "op": "=",
30
- "field": "epsilon",
31
- "value": "NOT-epsilon-value"
32
- }
33
- ]
34
- }
35
- ]
36
- },
37
- {
38
- "id": "personKnown",
39
- "fieldId": "personKnown",
40
- "type": "radios",
41
- "data": {
42
- "options": [
43
- {
44
- "value": "yes",
45
- "label": "Yes",
46
- "nested": [
47
- {
48
- "id": "telephone",
49
- "fieldId": "telephone",
50
- "type": "text",
51
- "label": "Telephone",
52
- "required": true,
53
- "show_when": {
54
- "op": "=",
55
- "field": "bravo",
56
- "value": "bravo-value"
57
- }
58
- }
59
- ]
60
- },
61
- {
62
- "value": "no",
63
- "label": "No"
64
- }
65
- ]
66
- }
67
- },
68
- {
69
- "id": "gamma",
70
- "fieldId": "gamma",
71
- "label": "Gamma",
72
- "type": "text"
73
- },
74
- {
75
- "id": "epsilon",
76
- "fieldId": "epsilon",
77
- "label": "Epsilon",
78
- "type": "text"
79
- }
80
- ],
81
- "pages": [
82
- {
83
- "id": "visiblePage",
84
- "name": "visiblePage",
85
- "title": "Visible Page",
86
- "components": [
87
- {
88
- "use": "alpha"
89
- },
90
- {
91
- "use": "bravo"
92
- },
93
- {
94
- "use": "personKnown"
95
- },
96
- {
97
- "use": "gamma"
98
- },
99
- {
100
- "use": "epsilon"
101
- }
102
- ]
103
- }
104
- ]
105
- }