@ukhomeoffice/cop-react-form-renderer 3.18.1 → 3.22.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.
Files changed (77) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +2 -2
  2. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +3 -3
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +3 -3
  4. package/dist/components/FormComponent/Collection.js +3 -3
  5. package/dist/components/FormComponent/Container.js +3 -3
  6. package/dist/components/FormComponent/Container.test.js +2 -2
  7. package/dist/components/FormComponent/FormComponent.js +4 -4
  8. package/dist/components/FormPage/FormPage.js +5 -4
  9. package/dist/components/FormPage/FormPage.test.js +1 -1
  10. package/dist/components/FormRenderer/FormRenderer.js +44 -17
  11. package/dist/components/FormRenderer/FormRenderer.test.js +2 -2
  12. package/dist/components/FormRenderer/helpers/getCYA.js +11 -1
  13. package/dist/components/FormRenderer/helpers/getCYA.test.js +13 -4
  14. package/dist/components/FormRenderer/helpers/getFormState.js +1 -1
  15. package/dist/components/FormRenderer/helpers/getNextPageId.js +20 -3
  16. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +62 -0
  17. package/dist/components/FormRenderer/helpers/getRelevantPages.js +27 -0
  18. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +71 -0
  19. package/dist/components/FormRenderer/helpers/index.js +3 -0
  20. package/dist/components/PageActions/ActionButton.js +1 -1
  21. package/dist/components/PageActions/ActionButton.test.js +1 -1
  22. package/dist/components/SummaryList/GroupAction.js +2 -2
  23. package/dist/components/SummaryList/RowAction.js +1 -1
  24. package/dist/components/SummaryList/SummaryList.js +1 -1
  25. package/dist/components/SummaryList/SummaryList.test.js +1 -1
  26. package/dist/components/TaskList/Task.js +1 -1
  27. package/dist/components/TaskList/TaskList.js +2 -2
  28. package/dist/context/HooksContext/HooksContext.js +3 -3
  29. package/dist/context/HooksContext/HooksContext.test.js +1 -1
  30. package/dist/context/HooksContext/index.js +1 -1
  31. package/dist/context/ValidationContext/ValidationContext.js +1 -1
  32. package/dist/context/ValidationContext/ValidationContext.test.js +1 -1
  33. package/dist/context/ValidationContext/index.js +1 -1
  34. package/dist/hooks/index.js +1 -1
  35. package/dist/hooks/useRefData.js +3 -3
  36. package/dist/models/FormPages.js +3 -1
  37. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +2 -2
  38. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +5 -3
  39. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +2 -2
  40. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +2 -2
  41. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +2 -2
  42. package/dist/utils/Component/cleanAttributes.js +1 -1
  43. package/dist/utils/Component/cleanAttributes.test.js +1 -1
  44. package/dist/utils/Component/getComponent.js +6 -2
  45. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +2 -2
  46. package/dist/utils/Component/isEditable.test.js +1 -1
  47. package/dist/utils/Component/wrapInFormGroup.js +1 -1
  48. package/dist/utils/Condition/meetsCondition.js +1 -1
  49. package/dist/utils/Condition/setupConditions.js +2 -2
  50. package/dist/utils/Container/setupNesting.js +2 -2
  51. package/dist/utils/Container/setupNesting.test.js +2 -2
  52. package/dist/utils/Data/applyFormula.js +2 -2
  53. package/dist/utils/Data/getOptions.js +2 -2
  54. package/dist/utils/Data/refDataToOptions.js +2 -2
  55. package/dist/utils/Data/setDataItem.js +1 -1
  56. package/dist/utils/Data/setupFormData.js +2 -2
  57. package/dist/utils/Data/setupFormData.test.js +2 -2
  58. package/dist/utils/Data/setupRefDataUrlForComponent.js +2 -2
  59. package/dist/utils/FormPage/getFormPage.js +2 -2
  60. package/dist/utils/FormPage/getFormPage.test.js +2 -2
  61. package/dist/utils/FormPage/getFormPages.js +2 -2
  62. package/dist/utils/FormPage/getFormPages.test.js +2 -2
  63. package/dist/utils/FormPage/getPageActions.js +3 -3
  64. package/dist/utils/FormPage/useComponent.js +2 -2
  65. package/dist/utils/FormPage/useComponent.test.js +2 -2
  66. package/dist/utils/Format/formatDataForComponent.test.js +1 -1
  67. package/dist/utils/Format/formatDataForForm.js +2 -2
  68. package/dist/utils/Format/formatDataForPage.test.js +1 -1
  69. package/dist/utils/Hub/getFormHub.test.js +2 -2
  70. package/dist/utils/Meta/documents/setDocumentForField.js +2 -2
  71. package/dist/utils/Validate/validateCollection.js +2 -2
  72. package/dist/utils/Validate/validateComponent.js +1 -1
  73. package/dist/utils/Validate/validateDate.test.js +1 -1
  74. package/dist/utils/Validate/validatePage.js +2 -2
  75. package/dist/utils/Validate/validatePage.test.js +2 -2
  76. package/dist/utils/index.js +2 -2
  77. package/package.json +2 -2
@@ -15,9 +15,9 @@ var _FormComponent = _interopRequireDefault(require("../FormComponent"));
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ 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; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ 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; }
21
21
 
22
22
  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; }
23
23
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -31,9 +31,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
34
+ 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; }
35
35
 
36
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+ 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; }
37
37
 
38
38
  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; }
39
39
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  var _axios = _interopRequireDefault(require("axios"));
6
6
 
@@ -56,9 +56,9 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
56
56
 
57
57
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
58
58
 
59
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
59
+ 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; }
60
60
 
61
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
61
+ 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; }
62
62
 
63
63
  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; }
64
64
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -27,9 +27,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
30
+ 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; }
31
31
 
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ 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; }
33
33
 
34
34
  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; }
35
35
 
@@ -19,11 +19,11 @@ var _excluded = ["container", "value", "formData", "onChange", "wrap"];
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
23
 
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24
+ 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; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ 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; }
27
27
 
28
28
  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; }
29
29
 
@@ -18,9 +18,9 @@ var _FormComponent = _interopRequireDefault(require("./FormComponent"));
18
18
 
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
 
21
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+ 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; }
22
22
 
23
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+ 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; }
24
24
 
25
25
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
26
26
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -31,13 +31,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
34
+ 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; }
35
35
 
36
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+ 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; }
37
37
 
38
38
  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; }
39
39
 
40
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
40
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
41
41
 
42
42
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
43
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -29,9 +29,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
29
29
 
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
31
 
32
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
32
+ 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; }
33
33
 
34
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
34
+ 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; }
35
35
 
36
36
  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; }
37
37
 
@@ -88,6 +88,7 @@ var FormPage = function FormPage(_ref) {
88
88
  label: _utils.default.interpolateString(action.label, page.formData)
89
89
  }) : action;
90
90
  });
91
+ page.formData = _objectSpread(_objectSpread({}, page.formData), patch);
91
92
  return /*#__PURE__*/_react.default.createElement("div", {
92
93
  className: classes('page'),
93
94
  key: page.id
@@ -101,7 +102,7 @@ var FormPage = function FormPage(_ref) {
101
102
  component: component,
102
103
  onChange: onPageChange,
103
104
  value: page.formData[component.fieldId] || patch[component.fieldId],
104
- formData: _objectSpread(_objectSpread({}, page.formData), patch)
105
+ formData: page.formData
105
106
  });
106
107
  }), /*#__PURE__*/_react.default.createElement(_PageActions.default, {
107
108
  actions: (_page$actions2 = page.actions) === null || _page$actions2 === void 0 ? void 0 : _page$actions2.filter(function (action) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  var _react = require("@testing-library/react");
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -39,11 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
39
 
40
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
41
 
42
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
42
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
43
43
 
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
44
+ 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; }
45
45
 
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
46
+ 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; }
47
47
 
48
48
  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; }
49
49
 
@@ -74,7 +74,8 @@ var FormRenderer = function FormRenderer(_ref) {
74
74
  hide_title = _ref.hide_title,
75
75
  summaryListClassModifiers = _ref.summaryListClassModifiers,
76
76
  noChangeAction = _ref.noChangeAction,
77
- newPageId = _ref.newPageId;
77
+ newPageId = _ref.newPageId,
78
+ viewOnly = _ref.viewOnly;
78
79
  return /*#__PURE__*/_react.default.createElement(_context.HooksContextProvider, {
79
80
  overrides: hooks
80
81
  }, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
@@ -91,7 +92,8 @@ var FormRenderer = function FormRenderer(_ref) {
91
92
  hide_title: hide_title,
92
93
  summaryListClassModifiers: summaryListClassModifiers,
93
94
  noChangeAction: noChangeAction,
94
- newPageId: newPageId
95
+ newPageId: newPageId,
96
+ viewOnly: viewOnly
95
97
  })));
96
98
  };
97
99
 
@@ -99,6 +101,8 @@ var DEFAULT_CLASS = 'hods-form';
99
101
  exports.DEFAULT_CLASS = DEFAULT_CLASS;
100
102
 
101
103
  var InternalFormRenderer = function InternalFormRenderer(_ref2) {
104
+ var _formState$page2;
105
+
102
106
  var title = _ref2.title,
103
107
  type = _ref2.type,
104
108
  components = _ref2.components,
@@ -112,7 +116,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
112
116
  hide_title = _ref2.hide_title,
113
117
  summaryListClassModifiers = _ref2.summaryListClassModifiers,
114
118
  noChangeAction = _ref2.noChangeAction,
115
- newPageId = _ref2.newPageId;
119
+ newPageId = _ref2.newPageId,
120
+ viewOnly = _ref2.viewOnly;
116
121
 
117
122
  // Set up the initial states.
118
123
  var _useState = (0, _react.useState)({}),
@@ -153,7 +158,12 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
153
158
  var _useState15 = (0, _react.useState)({}),
154
159
  _useState16 = _slicedToArray(_useState15, 2),
155
160
  hubDetails = _useState16[0],
156
- setHubDetails = _useState16[1]; // Set up hooks.
161
+ setHubDetails = _useState16[1];
162
+
163
+ var _useState17 = (0, _react.useState)('start'),
164
+ _useState18 = _slicedToArray(_useState17, 2),
165
+ pagePoint = _useState18[0],
166
+ setPagePoint = _useState18[1]; // Set up hooks.
157
167
 
158
168
 
159
169
  var _useHooks = (0, _hooks.useHooks)(),
@@ -167,7 +177,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
167
177
 
168
178
 
169
179
  (0, _react.useEffect)(function () {
170
- if (components && _pages && _data) {
180
+ if (components && _pages && _data && (['start', 'end'].includes(pagePoint) || viewOnly)) {
171
181
  var _data$formStatus;
172
182
 
173
183
  setData(_utils.default.Data.setupForm(_pages, components, _data));
@@ -176,7 +186,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
176
186
  setPageId(_data.formStatus.page);
177
187
  }
178
188
  }
179
- }, [components, _pages, _data, setData]); // Setup pages.
189
+ }, [components, _pages, _data, setData, pagePoint, viewOnly]); // Setup pages.
180
190
 
181
191
  (0, _react.useEffect)(function () {
182
192
  setPages(_utils.default.FormPage.getAll(_pages, components, _objectSpread({}, data)));
@@ -197,6 +207,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
197
207
  }, [pages, hub, pageId, setFormState]); // Call the onFormLoad hook just when this component first renders.
198
208
 
199
209
  (0, _react.useEffect)(function () {
210
+ setPagePoint(undefined);
200
211
  hooks.onFormLoad();
201
212
  }, [hooks]);
202
213
  (0, _react.useEffect)(function () {
@@ -267,11 +278,15 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
267
278
  if (action.type === _models.PageAction.TYPES.NAVIGATE) {
268
279
  _handlers.default.navigate(action, pageId, onPageChange);
269
280
  } else {
270
- // Save draft or submit.
281
+ if (action.type === 'submit') {
282
+ setPagePoint('end');
283
+ } // Save draft or submit.
284
+
285
+
271
286
  var submissionData = _utils.default.Format.form({
272
287
  pages: pages,
273
288
  components: components
274
- }, _objectSpread(_objectSpread({}, data), patch), _models.EventTypes.SUBMIT);
289
+ }, _objectSpread(_objectSpread(_objectSpread({}, data), patch), formState.page.formData), _models.EventTypes.SUBMIT);
275
290
 
276
291
  submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
277
292
 
@@ -343,6 +358,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
343
358
  // Check to see whether the action is able to proceed, which in
344
359
  // in the case of a submission will validate the fields in the page.
345
360
  if (action.type === _models.PageAction.TYPES.SUBMIT) {
361
+ setPagePoint('end');
362
+
346
363
  if (_helpers.default.canCYASubmit(pages, validate.pages)) {
347
364
  // Submit.
348
365
  var submissionData = _utils.default.Format.form({
@@ -399,6 +416,12 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
399
416
  }
400
417
  }
401
418
 
419
+ if (action.type === _models.PageAction.TYPES.NAVIGATE) {
420
+ var _formState$page;
421
+
422
+ onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.formData));
423
+ }
424
+
402
425
  if (action.type === _models.PageAction.TYPES.CANCEL) {
403
426
  hooks.onCancel();
404
427
  }
@@ -413,8 +436,10 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
413
436
  return /*#__PURE__*/_react.default.createElement("div", {
414
437
  className: classes()
415
438
  }, title && !hide_title && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
416
- pages: currentTask.fullPages ? currentTask.fullPages : pages
417
- }, cya, formState.cya, {
439
+ pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
440
+ }, cya, ((_formState$page2 = formState.page) === null || _formState$page2 === void 0 ? void 0 : _formState$page2.type) === _models.FormPages.PARTIAL_CYA && {
441
+ actions: formState.page.actions
442
+ }, formState.cya, {
418
443
  onAction: onCYAAction,
419
444
  onRowAction: onCYARowAction,
420
445
  summaryListClassModifiers: summaryListClassModifiers,
@@ -427,7 +452,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
427
452
  refNumber: data['businessKey'],
428
453
  refTitle: _hub.refTitle,
429
454
  onTaskAction: onTaskAction
430
- }), formState.page && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
455
+ }), formState.page && !formState.cya && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
431
456
  page: formState.page,
432
457
  onAction: onPageAction
433
458
  }));
@@ -449,7 +474,8 @@ FormRenderer.propTypes = InternalFormRenderer.propTypes = {
449
474
  className: _propTypes.default.string,
450
475
  hide_title: _propTypes.default.bool,
451
476
  summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
452
- noChangeAction: _propTypes.default.bool
477
+ noChangeAction: _propTypes.default.bool,
478
+ viewOnly: _propTypes.default.bool
453
479
  };
454
480
  FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
455
481
  type: _models.FormTypes.HUB,
@@ -459,7 +485,8 @@ FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
459
485
  classModifiers: [],
460
486
  hide_title: false,
461
487
  summaryListClassModifiers: [],
462
- noChangeAction: false
488
+ noChangeAction: false,
489
+ viewOnly: true
463
490
  };
464
491
  var _default = FormRenderer;
465
492
  exports.default = _default;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3
+ 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); }
4
4
 
5
5
  var _react = require("@testing-library/react");
6
6
 
@@ -40,7 +40,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
40
40
 
41
41
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
42
 
43
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
43
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
44
44
 
45
45
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
46
46
 
@@ -15,7 +15,7 @@ var _models = require("../../../models");
15
15
  * @param {object} hub The hub, if there is one.
16
16
  * @returns A configuration object for the Check your answers screen.
17
17
  */
18
- var getCYA = function getCYA(pageId, hub) {
18
+ var getCYA = function getCYA(pageId, pages, hub) {
19
19
  if (pageId === _models.FormPages.HUB && hub === _models.HubFormats.CYA) {
20
20
  return {
21
21
  title: ''
@@ -24,6 +24,16 @@ var getCYA = function getCYA(pageId, hub) {
24
24
  return {};
25
25
  }
26
26
 
27
+ var currentPage = pages === null || pages === void 0 ? void 0 : pages.find(function (p) {
28
+ return p.id === pageId;
29
+ });
30
+
31
+ if ((currentPage === null || currentPage === void 0 ? void 0 : currentPage.type) === _models.FormPages.PARTIAL_CYA) {
32
+ return {
33
+ title: currentPage.title
34
+ };
35
+ }
36
+
27
37
  return undefined;
28
38
  };
29
39
 
@@ -19,18 +19,27 @@ describe('components', function () {
19
19
  expect((0, _getCYA.default)(_models.FormPages.CYA)).toEqual({});
20
20
  });
21
21
  it('should give an object with a blank title if the pageId is "hub" and the hub is the CYA', function () {
22
- expect((0, _getCYA.default)(_models.FormPages.HUB, _models.HubFormats.CYA)).toEqual({
22
+ expect((0, _getCYA.default)(_models.FormPages.HUB, [], _models.HubFormats.CYA)).toEqual({
23
23
  title: ''
24
24
  });
25
25
  });
26
26
  it('should give undefined if pageId is "hub" and the hub is NOT the CYA', function () {
27
- expect((0, _getCYA.default)(_models.FormPages.HUB, HUB)).toBeUndefined();
27
+ expect((0, _getCYA.default)(_models.FormPages.HUB, [], HUB)).toBeUndefined();
28
28
  });
29
29
  it('should give undefined if pageId is NOT "hub" and the hub is NOT the CYA', function () {
30
- expect((0, _getCYA.default)(_models.FormPages.HUB, HUB)).toBeUndefined();
30
+ expect((0, _getCYA.default)(_models.FormPages.HUB, [], HUB)).toBeUndefined();
31
31
  });
32
32
  it('should give undefined if pageId is NOT "hub" and the hub is the CYA', function () {
33
- expect((0, _getCYA.default)('bob', _models.HubFormats.CYA)).toBeUndefined();
33
+ expect((0, _getCYA.default)('bob', [], _models.HubFormats.CYA)).toBeUndefined();
34
+ });
35
+ it('should return an object with a title if the current page has type partial-cya', function () {
36
+ expect((0, _getCYA.default)('pageId', [{
37
+ id: 'pageId',
38
+ type: 'partial-cya',
39
+ title: 'page title'
40
+ }], _models.HubFormats.CYA)).toEqual({
41
+ title: 'page title'
42
+ });
34
43
  });
35
44
  });
36
45
  });
@@ -23,7 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
  var getFormState = function getFormState(pageId, pages, hub) {
24
24
  return {
25
25
  pageId: pageId,
26
- cya: (0, _getCYA.default)(pageId, hub),
26
+ cya: (0, _getCYA.default)(pageId, pages, hub),
27
27
  page: (0, _getPage.default)(pageId, pages, hub)
28
28
  };
29
29
  };
@@ -11,8 +11,24 @@ var _FormPage = _interopRequireDefault(require("../../../utils/FormPage"));
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
- var getNextHubPageId = function getNextHubPageId(action) {
15
- return (action === null || action === void 0 ? void 0 : action.page) || _models.FormPages.HUB;
14
+ var getNextHubPageId = function getNextHubPageId(action, currentPageId, pages, formData, formType) {
15
+ var _action$pages;
16
+
17
+ if (!currentPageId && formType === _models.FormTypes.FORM_WITH_TASK) {
18
+ return pages.length > 0 ? pages[0].id : undefined;
19
+ }
20
+
21
+ var nextPage = undefined;
22
+ action === null || action === void 0 ? void 0 : (_action$pages = action.pages) === null || _action$pages === void 0 ? void 0 : _action$pages.forEach(function (page) {
23
+ if (_FormPage.default.show({
24
+ show_when: page.show_when
25
+ }, formData)) {
26
+ nextPage = page.pageId;
27
+ }
28
+
29
+ ;
30
+ });
31
+ return nextPage || (action === null || action === void 0 ? void 0 : action.page) || _models.FormPages.HUB;
16
32
  };
17
33
 
18
34
  var getNextCYAPageId = function getNextCYAPageId(pages, currentPageId, formData) {
@@ -60,8 +76,9 @@ var getNextPageId = function getNextPageId(formType, pages, currentPageId, actio
60
76
  case _models.FormTypes.CYA:
61
77
  return getNextCYAPageId(pages, currentPageId, formData);
62
78
 
79
+ case _models.FormTypes.FORM_WITH_TASK:
63
80
  case _models.FormTypes.TASK:
64
- return getNextHubPageId(action);
81
+ return getNextHubPageId(action, currentPageId, pages, formData, formType);
65
82
 
66
83
  case _models.FormTypes.WIZARD:
67
84
  return getNextWizardPageId(pages, currentPageId, formData);
@@ -172,6 +172,68 @@ describe('components', function () {
172
172
  expect((0, _getNextPageId.default)(FORM_TYPE, PAGES)).toEqual(_models.FormPages.HUB);
173
173
  });
174
174
  });
175
+ describe("when the form type is '".concat(_models.FormTypes.FORM_WITH_TASK, "'"), function () {
176
+ var FORM_TYPE = _models.FormTypes.FORM_WITH_TASK;
177
+ var FORM_WITH_TASK_PAGES = [{
178
+ id: 'alpha',
179
+ 'actions': [{
180
+ 'type': 'saveAndNavigate',
181
+ 'page': 'bravo'
182
+ }]
183
+ }, {
184
+ id: 'bravo',
185
+ 'actions': [{
186
+ 'type': 'irregularType',
187
+ 'pages': [{
188
+ 'pageId': 'charlie',
189
+ 'show_when': {
190
+ 'field': 'fieldOne',
191
+ 'op': '=',
192
+ 'value': 'valueOne'
193
+ }
194
+ }, {
195
+ 'pageId': 'delta',
196
+ 'show_when': {
197
+ 'field': 'fieldOne',
198
+ 'op': '=',
199
+ 'value': 'valueTwo'
200
+ }
201
+ }]
202
+ }]
203
+ }, {
204
+ id: 'charlie',
205
+ 'actions': [{
206
+ 'type': 'saveAndNavigate',
207
+ 'page': 'hub'
208
+ }]
209
+ }, {
210
+ id: 'delta',
211
+ 'actions': [{
212
+ 'type': 'saveAndNavigate',
213
+ 'page': 'hub'
214
+ }]
215
+ }, {
216
+ id: 'echo'
217
+ }, {
218
+ id: 'foxtrot'
219
+ }];
220
+ it("should return the first page by default", function () {
221
+ expect((0, _getNextPageId.default)(FORM_TYPE, PAGES)).toEqual(FORM_WITH_TASK_PAGES[0].id);
222
+ });
223
+ it("should then return the second page", function () {
224
+ expect((0, _getNextPageId.default)(FORM_TYPE, PAGES, FORM_WITH_TASK_PAGES[0].id, FORM_WITH_TASK_PAGES[0].actions[0])).toEqual(FORM_WITH_TASK_PAGES[1].id);
225
+ });
226
+ it("should then move to the next page based on the form data", function () {
227
+ expect((0, _getNextPageId.default)(FORM_TYPE, PAGES, FORM_WITH_TASK_PAGES[1].id, FORM_WITH_TASK_PAGES[1].actions[0], {
228
+ fieldOne: 'valueOne'
229
+ })).toEqual(FORM_WITH_TASK_PAGES[2].id);
230
+ });
231
+ it("should then move to the other page based on the form data", function () {
232
+ expect((0, _getNextPageId.default)(FORM_TYPE, PAGES, FORM_WITH_TASK_PAGES[1].id, FORM_WITH_TASK_PAGES[1].actions[0], {
233
+ fieldOne: 'valueTwo'
234
+ })).toEqual(FORM_WITH_TASK_PAGES[3].id);
235
+ });
236
+ });
175
237
  });
176
238
  });
177
239
  });
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _models = require("../../../models");
9
+
10
+ var slicePages = function slicePages(pages, currentPageId) {
11
+ return pages.slice(0, pages.findIndex(function (p) {
12
+ return p.pageId === currentPageId;
13
+ }));
14
+ };
15
+
16
+ var getRelevantPages = function getRelevantPages(formState, pages, currentTaskPages) {
17
+ var _formState$page;
18
+
19
+ if (((_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.type) === _models.FormPages.PARTIAL_CYA) {
20
+ return currentTaskPages ? slicePages(currentTaskPages, formState.pageId) : slicePages(pages, formState.pageId);
21
+ }
22
+
23
+ return currentTaskPages ? currentTaskPages : pages;
24
+ };
25
+
26
+ var _default = getRelevantPages;
27
+ exports.default = _default;