@ukhomeoffice/cop-react-form-renderer 5.0.0-alpha → 5.0.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.
Files changed (277) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +18 -7
  2. package/dist/components/CheckYourAnswers/Answer.test.js +137 -0
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +70 -46
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +410 -0
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +551 -0
  6. package/dist/components/CollectionPage/CollectionPage.js +15 -10
  7. package/dist/components/CollectionPage/CollectionPage.test.js +382 -0
  8. package/dist/components/FormComponent/Collection.js +91 -48
  9. package/dist/components/FormComponent/Collection.scss +2 -1
  10. package/dist/components/FormComponent/Collection.test.js +807 -0
  11. package/dist/components/FormComponent/Container.js +35 -16
  12. package/dist/components/FormComponent/Container.test.js +370 -0
  13. package/dist/components/FormComponent/FormComponent.js +39 -13
  14. package/dist/components/FormComponent/FormComponent.stories.mdx +184 -0
  15. package/dist/components/FormComponent/FormComponent.test.js +226 -0
  16. package/dist/components/FormComponent/helpers/addLabel.js +5 -4
  17. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +16 -0
  18. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +29 -0
  19. package/dist/components/FormComponent/helpers/index.js +8 -1
  20. package/dist/components/FormPage/FormPage.js +69 -30
  21. package/dist/components/FormPage/FormPage.stories.mdx +155 -0
  22. package/dist/components/FormPage/FormPage.test.js +330 -0
  23. package/dist/components/FormRenderer/FormRenderer.js +142 -228
  24. package/dist/components/FormRenderer/FormRenderer.stories.mdx +183 -0
  25. package/dist/components/FormRenderer/FormRenderer.test.js +968 -0
  26. package/dist/components/FormRenderer/handlers/index.js +1 -2
  27. package/dist/components/FormRenderer/handlers/navigate.js +3 -1
  28. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +35 -14
  29. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +88 -5
  30. package/dist/components/FormRenderer/helpers/getCYA.js +11 -2
  31. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -7
  32. package/dist/components/FormRenderer/helpers/getRelevantPages.js +10 -2
  33. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -1
  34. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +2 -2
  35. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +6 -2
  36. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +171 -51
  37. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +307 -24
  38. package/dist/components/FormRenderer/helpers/index.js +1 -2
  39. package/dist/components/FormRenderer/onCYAAction.js +108 -0
  40. package/dist/components/FormRenderer/onCYAAction.test.js +583 -0
  41. package/dist/components/FormRenderer/onPageAction.js +145 -0
  42. package/dist/components/FormRenderer/onPageAction.test.js +678 -0
  43. package/dist/components/FormRenderer/onTaskAction.js +48 -0
  44. package/dist/components/FormRenderer/onTaskAction.test.js +217 -0
  45. package/dist/components/PageActions/ActionButton.js +0 -3
  46. package/dist/components/PageActions/ActionButton.test.js +93 -0
  47. package/dist/components/PageActions/PageActions.js +2 -2
  48. package/dist/components/PageActions/PageActions.stories.mdx +74 -0
  49. package/dist/components/PageActions/PageActions.test.js +132 -0
  50. package/dist/components/SummaryList/GroupAction.js +2 -2
  51. package/dist/components/SummaryList/GroupAction.test.js +80 -0
  52. package/dist/components/SummaryList/RowAction.js +2 -2
  53. package/dist/components/SummaryList/RowAction.test.js +80 -0
  54. package/dist/components/SummaryList/SummaryList.js +29 -12
  55. package/dist/components/SummaryList/SummaryList.scss +19 -0
  56. package/dist/components/SummaryList/SummaryList.stories.mdx +90 -0
  57. package/dist/components/SummaryList/SummaryList.test.js +400 -0
  58. package/dist/components/SummaryList/SummaryListHeadingRow.js +30 -0
  59. package/dist/components/SummaryList/SummaryListRow.js +5 -2
  60. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +2 -1
  61. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +2 -1
  62. package/dist/components/TaskList/Task.js +3 -3
  63. package/dist/components/TaskList/Task.test.js +167 -0
  64. package/dist/components/TaskList/TaskList.js +73 -22
  65. package/dist/components/TaskList/TaskList.stories.mdx +164 -0
  66. package/dist/components/TaskList/TaskList.test.js +389 -0
  67. package/dist/components/TaskList/TaskState.js +2 -2
  68. package/dist/components/TaskList/TaskState.test.js +86 -0
  69. package/dist/components/index.js +14 -0
  70. package/dist/context/HooksContext/HooksContext.js +72 -8
  71. package/dist/context/HooksContext/HooksContext.test.js +44 -0
  72. package/dist/context/ValidationContext/ValidationContext.js +38 -28
  73. package/dist/context/ValidationContext/ValidationContext.test.js +84 -0
  74. package/dist/hooks/useAxios.js +10 -12
  75. package/dist/hooks/useGetRequest.js +48 -49
  76. package/dist/hooks/useRefData.js +7 -4
  77. package/dist/index.js +34 -1
  78. package/dist/json/addressDetails.json +149 -0
  79. package/dist/json/areYouACivilServant.json +7 -0
  80. package/dist/json/firstForm.json +94 -0
  81. package/dist/json/grade.json +108 -0
  82. package/dist/json/group.data.json +21 -0
  83. package/dist/json/group.json +402 -0
  84. package/dist/json/groupOfRow.json +137 -0
  85. package/dist/json/groupOfRowData.json +15 -0
  86. package/dist/json/port.json +346 -0
  87. package/dist/json/saveAndContinue.json +98 -0
  88. package/dist/json/sublocation.json +859 -0
  89. package/dist/json/taskList.json +265 -0
  90. package/dist/json/team.json +17351 -0
  91. package/dist/json/terminal.json +81 -0
  92. package/dist/json/userProfile.data.json +21 -0
  93. package/dist/json/userProfile.json +276 -0
  94. package/dist/models/ComponentTypes.js +8 -0
  95. package/dist/models/PageAction.js +4 -1
  96. package/dist/models/TaskStates.js +10 -2
  97. package/dist/models/index.js +16 -1
  98. package/dist/setupTests.js +46 -0
  99. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  100. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +121 -0
  101. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +6 -2
  102. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +71 -0
  103. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +6 -2
  104. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +55 -0
  105. package/dist/utils/CheckYourAnswers/getCYARow.js +14 -11
  106. package/dist/utils/CheckYourAnswers/getCYARow.test.js +291 -0
  107. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +4 -1
  108. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +70 -0
  109. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +15 -10
  110. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +288 -0
  111. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +94 -36
  112. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +414 -0
  113. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +21 -7
  114. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +486 -0
  115. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +11 -3
  116. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +346 -0
  117. package/dist/utils/CheckYourAnswers/showComponentCYA.js +19 -3
  118. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +143 -0
  119. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +5 -1
  120. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +40 -0
  121. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +53 -0
  122. package/dist/utils/CollectionPage/mergeCollectionPages.js +25 -17
  123. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +130 -0
  124. package/dist/utils/Component/addShowWhen.js +44 -0
  125. package/dist/utils/Component/addShowWhen.test.js +216 -0
  126. package/dist/utils/Component/applyToComponentTree.js +71 -0
  127. package/dist/utils/Component/applyToComponentTree.test.js +127 -0
  128. package/dist/utils/Component/cleanAttributes.js +8 -2
  129. package/dist/utils/Component/cleanAttributes.test.js +68 -0
  130. package/dist/utils/Component/elevateNestedComponents.js +4 -1
  131. package/dist/utils/Component/elevateNestedComponents.test.js +122 -0
  132. package/dist/utils/Component/getComponent.js +80 -11
  133. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +4 -4
  134. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +25 -24
  135. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +66 -5
  136. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +2 -2
  137. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +9 -7
  138. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +3 -3
  139. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +3 -3
  140. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +44 -0
  141. package/dist/utils/Component/getComponentTests/{getComponent.textarea.test.js → getComponent.multifile.test.js} +29 -21
  142. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +159 -83
  143. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +43 -0
  144. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +3 -3
  145. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +55 -5
  146. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +3 -9
  147. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +3 -3
  148. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +109 -0
  149. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +7 -7
  150. package/dist/utils/Component/getDefaultValue.js +4 -1
  151. package/dist/utils/Component/getDefaultValue.test.js +50 -0
  152. package/dist/utils/Component/index.js +2 -0
  153. package/dist/utils/Component/isEditable.js +2 -2
  154. package/dist/utils/Component/isEditable.test.js +43 -0
  155. package/dist/utils/Component/optionIsSelected.js +22 -0
  156. package/dist/utils/Component/optionIsSelected.test.js +42 -0
  157. package/dist/utils/Component/setupContainerComponentsPath.js +40 -0
  158. package/dist/utils/Component/setupContainerComponentsPath.test.js +78 -0
  159. package/dist/utils/Component/showComponent.test.js +156 -0
  160. package/dist/utils/Component/wrapInFormGroup.js +1 -1
  161. package/dist/utils/Condition/meetsAllConditions.js +1 -1
  162. package/dist/utils/Condition/meetsAllConditions.test.js +61 -0
  163. package/dist/utils/Condition/meetsCondition.js +74 -4
  164. package/dist/utils/Condition/meetsCondition.test.js +763 -0
  165. package/dist/utils/Condition/meetsOneCondition.js +1 -1
  166. package/dist/utils/Condition/meetsOneCondition.test.js +100 -0
  167. package/dist/utils/Condition/setupConditions.js +6 -3
  168. package/dist/utils/Condition/setupConditions.test.js +33 -0
  169. package/dist/utils/Container/getEditableComponents.test.js +135 -0
  170. package/dist/utils/Container/setupNesting.js +21 -2
  171. package/dist/utils/Container/setupNesting.test.js +145 -0
  172. package/dist/utils/Container/showContainer.test.js +178 -0
  173. package/dist/utils/Data/applyFormula.js +20 -11
  174. package/dist/utils/Data/applyFormula.test.js +263 -0
  175. package/dist/utils/Data/getAutocompleteSource.js +6 -2
  176. package/dist/utils/Data/getAutocompleteSource.test.js +352 -0
  177. package/dist/utils/Data/getDataPath.test.js +48 -0
  178. package/dist/utils/Data/getOptions.js +17 -3
  179. package/dist/utils/Data/getOptions.test.js +140 -0
  180. package/dist/utils/Data/getSourceData.js +2 -2
  181. package/dist/utils/Data/getSourceData.test.js +153 -0
  182. package/dist/utils/Data/refDataToOptions.js +4 -1
  183. package/dist/utils/Data/refDataToOptions.test.js +196 -0
  184. package/dist/utils/Data/setDataItem.test.js +110 -0
  185. package/dist/utils/Data/setupFormData.js +39 -16
  186. package/dist/utils/Data/setupFormData.test.js +410 -0
  187. package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -1
  188. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +131 -0
  189. package/dist/utils/FormPage/applyConditionalProperties.js +35 -0
  190. package/dist/utils/FormPage/applyConditionalProperties.test.js +61 -0
  191. package/dist/utils/FormPage/getFormPage.js +5 -2
  192. package/dist/utils/FormPage/getFormPage.test.js +206 -0
  193. package/dist/utils/FormPage/getFormPages.js +4 -1
  194. package/dist/utils/FormPage/getFormPages.test.js +97 -0
  195. package/dist/utils/FormPage/getPageActions.js +8 -4
  196. package/dist/utils/FormPage/getPageActions.test.js +114 -0
  197. package/dist/utils/FormPage/getParagraphFromText.test.js +27 -0
  198. package/dist/utils/FormPage/index.js +2 -0
  199. package/dist/utils/FormPage/showFormPage.js +2 -2
  200. package/dist/utils/FormPage/showFormPage.test.js +180 -0
  201. package/dist/utils/FormPage/showFormPageCYA.js +1 -0
  202. package/dist/utils/FormPage/showFormPageCYA.test.js +28 -0
  203. package/dist/utils/FormPage/useComponent.js +29 -14
  204. package/dist/utils/FormPage/useComponent.test.js +167 -0
  205. package/dist/utils/Format/formatData.test.js +45 -0
  206. package/dist/utils/Format/formatDataForComponent.js +2 -1
  207. package/dist/utils/Format/formatDataForComponent.test.js +142 -0
  208. package/dist/utils/Format/formatDataForForm.js +4 -1
  209. package/dist/utils/Format/formatDataForForm.test.js +81 -0
  210. package/dist/utils/Format/formatDataForPage.test.js +99 -0
  211. package/dist/utils/Hub/getFormHub.test.js +105 -0
  212. package/dist/utils/Meta/documents/getDocuments.test.js +4 -1
  213. package/dist/utils/Meta/documents/index.js +2 -2
  214. package/dist/utils/Meta/documents/setDocumentsForField.js +31 -0
  215. package/dist/utils/Meta/documents/setDocumentsForField.test.js +59 -0
  216. package/dist/utils/Operate/checkValueIsTruthy.test.js +42 -0
  217. package/dist/utils/Operate/getFirstOf.js +31 -0
  218. package/dist/utils/Operate/getFirstOf.test.js +86 -0
  219. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +163 -0
  220. package/dist/utils/Operate/persistValueInFormData.js +2 -1
  221. package/dist/utils/Operate/persistValueInFormData.test.js +115 -0
  222. package/dist/utils/Operate/runPageOperations.js +3 -1
  223. package/dist/utils/Operate/runPageOperations.test.js +105 -0
  224. package/dist/utils/Operate/setValueInFormData.test.js +44 -0
  225. package/dist/utils/Operate/shouldRun.js +16 -13
  226. package/dist/utils/Operate/shouldRun.test.js +66 -0
  227. package/dist/utils/Validate/additional/conditionallyRequired.js +24 -0
  228. package/dist/utils/Validate/additional/conditionallyRequired.test.js +73 -0
  229. package/dist/utils/Validate/additional/index.js +13 -4
  230. package/dist/utils/Validate/additional/mustBeAfter.js +8 -6
  231. package/dist/utils/Validate/additional/mustBeAfter.test.js +15 -1
  232. package/dist/utils/Validate/additional/mustBeBefore.js +9 -5
  233. package/dist/utils/Validate/additional/mustBeBefore.test.js +14 -0
  234. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +1 -1
  235. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +6 -3
  236. package/dist/utils/Validate/additional/mustBeGreaterThan.js +22 -0
  237. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +56 -0
  238. package/dist/utils/Validate/additional/mustBeInTheFuture.js +1 -1
  239. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
  240. package/dist/utils/Validate/additional/mustBeLessThan.js +7 -6
  241. package/dist/utils/Validate/additional/mustBeLessThan.test.js +11 -1
  242. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +9 -5
  243. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +10 -2
  244. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +1 -0
  245. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -1
  246. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +19 -0
  247. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +36 -0
  248. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +29 -0
  249. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +52 -0
  250. package/dist/utils/Validate/additional/utils.js +18 -18
  251. package/dist/utils/Validate/index.js +6 -0
  252. package/dist/utils/Validate/validateCollection.js +20 -5
  253. package/dist/utils/Validate/validateCollection.test.js +125 -0
  254. package/dist/utils/Validate/validateComponent.js +36 -20
  255. package/dist/utils/Validate/validateComponent.test.js +365 -0
  256. package/dist/utils/Validate/validateContainer.js +9 -3
  257. package/dist/utils/Validate/validateContainer.test.js +75 -0
  258. package/dist/utils/Validate/validateDate.js +4 -3
  259. package/dist/utils/Validate/validateDate.test.js +114 -0
  260. package/dist/utils/Validate/validateEmail.js +14 -1
  261. package/dist/utils/Validate/validateEmail.test.js +74 -0
  262. package/dist/utils/Validate/validateMultifile.js +32 -0
  263. package/dist/utils/Validate/validateMultifile.test.js +47 -0
  264. package/dist/utils/Validate/validatePage.js +12 -6
  265. package/dist/utils/Validate/validatePage.test.js +472 -0
  266. package/dist/utils/Validate/validateRegex.js +2 -5
  267. package/dist/utils/Validate/validateRegex.test.js +42 -0
  268. package/dist/utils/Validate/validateRequired.js +2 -4
  269. package/dist/utils/Validate/validateRequired.test.js +63 -0
  270. package/dist/utils/Validate/validateTextArea.js +37 -0
  271. package/dist/utils/Validate/validateTextArea.test.js +42 -0
  272. package/dist/utils/Validate/validateTime.js +2 -2
  273. package/dist/utils/Validate/validateTime.test.js +59 -0
  274. package/dist/utils/index.js +4 -1
  275. package/package.json +35 -50
  276. package/dist/utils/Meta/documents/setDocumentForField.js +0 -29
  277. package/dist/utils/Meta/documents/setDocumentForField.test.js +0 -49
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.DEFAULT_CLASS = void 0;
8
8
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _context = require("../../context");
12
12
  var _hooks = require("../../hooks");
13
13
  var _models = require("../../models");
@@ -18,19 +18,27 @@ var _FormPage = _interopRequireDefault(require("../FormPage"));
18
18
  var _TaskList = _interopRequireDefault(require("../TaskList"));
19
19
  var _handlers = _interopRequireDefault(require("./handlers"));
20
20
  var _helpers = _interopRequireDefault(require("./helpers"));
21
+ var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
22
+ var _onPageAction = _interopRequireDefault(require("./onPageAction"));
23
+ var _onTaskAction2 = _interopRequireDefault(require("./onTaskAction"));
21
24
  require("./FormRenderer.scss");
25
+ var _excluded = ["noTaskCYAs", "nonSequential"];
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
29
  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); }
30
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
31
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
26
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; }
27
33
  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; }
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; }
34
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
36
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
29
37
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
30
38
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
39
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
32
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
40
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
41
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
34
42
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
43
  var FormRenderer = function FormRenderer(_ref) {
36
44
  var title = _ref.title,
@@ -40,11 +48,12 @@ var FormRenderer = function FormRenderer(_ref) {
40
48
  hub = _ref.hub,
41
49
  cya = _ref.cya,
42
50
  data = _ref.data,
51
+ hashLink = _ref.hashLink,
43
52
  hooks = _ref.hooks,
44
53
  classBlock = _ref.classBlock,
45
54
  classModifiers = _ref.classModifiers,
46
55
  className = _ref.className,
47
- hide_title = _ref.hide_title,
56
+ hideTitle = _ref.hide_title,
48
57
  summaryListClassModifiers = _ref.summaryListClassModifiers,
49
58
  noChangeAction = _ref.noChangeAction,
50
59
  newPageId = _ref.newPageId,
@@ -62,7 +71,8 @@ var FormRenderer = function FormRenderer(_ref) {
62
71
  classBlock: classBlock,
63
72
  classModifiers: classModifiers,
64
73
  className: className,
65
- hide_title: hide_title,
74
+ hashLink: hashLink,
75
+ hide_title: hideTitle,
66
76
  summaryListClassModifiers: summaryListClassModifiers,
67
77
  noChangeAction: noChangeAction,
68
78
  newPageId: newPageId,
@@ -72,7 +82,7 @@ var FormRenderer = function FormRenderer(_ref) {
72
82
  var DEFAULT_CLASS = 'hods-form';
73
83
  exports.DEFAULT_CLASS = DEFAULT_CLASS;
74
84
  var InternalFormRenderer = function InternalFormRenderer(_ref2) {
75
- var _formState$page4;
85
+ var _formState$page4, _formState$page$actio, _formState$cya$hideCh, _formState$cya$hideGr;
76
86
  var title = _ref2.title,
77
87
  type = _ref2.type,
78
88
  components = _ref2.components,
@@ -83,7 +93,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
83
93
  classBlock = _ref2.classBlock,
84
94
  classModifiers = _ref2.classModifiers,
85
95
  className = _ref2.className,
86
- hide_title = _ref2.hide_title,
96
+ hashLink = _ref2.hashLink,
97
+ hideTitle = _ref2.hide_title,
87
98
  summaryListClassModifiers = _ref2.summaryListClassModifiers,
88
99
  noChangeAction = _ref2.noChangeAction,
89
100
  newPageId = _ref2.newPageId,
@@ -141,10 +152,21 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
141
152
  validate = _useValidation.validate;
142
153
 
143
154
  // Need to set submission data when going back
144
- window.onpopstate = function () {
155
+ window.onpopstate = function (e) {
145
156
  var _formState$page;
157
+ if (document.location.hash) {
158
+ return;
159
+ }
160
+ if (e.state && e.state.fullPages !== undefined) {
161
+ setCurrentTask(function (prev) {
162
+ var _e$state;
163
+ return _objectSpread(_objectSpread({}, prev), {}, {
164
+ fullPages: (_e$state = e.state) === null || _e$state === void 0 ? void 0 : _e$state.fullPages
165
+ });
166
+ });
167
+ }
146
168
  setGoingBack(true);
147
- hooks.onGoingBack();
169
+ hooks.onGoingBack(e.state ? e.state : null);
148
170
  clearErrors();
149
171
  if (components && pages && data && (_formState$page = formState.page) !== null && _formState$page !== void 0 && _formState$page.formData && pagePoint === undefined) {
150
172
  var submissionData = _utils.default.Format.form({
@@ -197,14 +219,17 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
197
219
  // Call the onFormLoad hook just when this component first renders.
198
220
  (0, _react.useEffect)(function () {
199
221
  setPagePoint(undefined);
200
- hooks.onFormLoad();
222
+ // In case of refresh the current task needs to be reset
223
+ hooks.onFormLoad(function (currentTask) {
224
+ setCurrentTask(currentTask);
225
+ });
201
226
  }, [hooks]);
202
227
  (0, _react.useEffect)(function () {
203
228
  setHubDetails(_hub);
204
229
  }, [_hub]);
205
230
 
206
231
  // Calling setData directly within the hooks.onSubmit success handler
207
- // resulted in a sychronisation error. Handling it in a useEffect appears
232
+ // resulted in a synchronisation error. Handling it in a useEffect appears
208
233
  // to be the way to deal with this... and it certainly seems to work.
209
234
  (0, _react.useEffect)(function () {
210
235
  if (submitted !== null && submitted !== void 0 && submitted.data) {
@@ -212,13 +237,17 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
212
237
  setSubmitted(undefined);
213
238
  }
214
239
  }, [submitted, setData, setSubmitted]);
215
-
240
+ var theSections = _hub === null || _hub === void 0 ? void 0 : _hub.sections;
241
+ var nonSequential = _hub === null || _hub === void 0 ? void 0 : _hub.nonSequential;
216
242
  // Update task list pages with form data and update states
217
243
  (0, _react.useEffect)(function () {
218
244
  var pages = currentTask.fullPages;
219
245
  if (pages) {
220
246
  pages.forEach(function (page) {
221
- page.formData = data;
247
+ var p = page;
248
+ if (p) {
249
+ p.formData = data;
250
+ }
222
251
  });
223
252
  setCurrentTask(function (prev) {
224
253
  return _objectSpread(_objectSpread({}, prev), {}, {
@@ -226,280 +255,165 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
226
255
  });
227
256
  });
228
257
  }
229
- if (hubDetails !== null && hubDetails !== void 0 && hubDetails.sections) {
258
+ if (theSections) {
230
259
  var _data$formStatus2;
231
260
  var tasks = (data === null || data === void 0 ? void 0 : (_data$formStatus2 = data.formStatus) === null || _data$formStatus2 === void 0 ? void 0 : _data$formStatus2.tasks) || {};
232
- var updatedSections = _helpers.default.getUpdatedSectionStates(hubDetails.sections, tasks, hubDetails.nonSequential);
261
+ var updatedSections = _helpers.default.getUpdatedSectionStates(theSections, tasks, nonSequential, data);
233
262
  setHubDetails(function (prev) {
234
- return _objectSpread(_objectSpread({}, prev), updatedSections);
263
+ return _objectSpread(_objectSpread({}, prev), {}, {
264
+ sections: [].concat(updatedSections)
265
+ });
235
266
  });
236
267
  }
237
- }, [currentTask.fullPages, data, hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.sections, hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.nonSequential]);
268
+ }, [currentTask.fullPages, data, theSections, nonSequential]);
238
269
  var onPageChange = function onPageChange(newPageId) {
270
+ var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
239
271
  clearErrors();
240
272
  setPageId(newPageId);
241
- hooks.onPageChange(newPageId);
273
+ hooks.onPageChange(newPageId, state);
242
274
  };
243
275
  (0, _react.useEffect)(function () {
244
276
  if (newPageId !== undefined) setPageId(newPageId);
245
277
  }, [newPageId]);
246
278
 
247
- // Handle actions from pages.
248
- // (patch captures payload ready field name and value,
249
- // patchLabel captures non ID values
250
- // for display purposes after submission.)
251
- var onPageAction = function onPageAction(action, patch, patchLabel) {
252
- if (action.type === _models.PageAction.TYPES.CANCEL) {
253
- hooks.onCancel();
254
- return;
255
- }
256
- // Re-apply the patch to the page's formData.
257
- // This should normally have no effect but will prevent issues
258
- // with validation if formData happens to have been wiped.
259
- formState.page.formData = _objectSpread(_objectSpread({}, formState.page.formData), patch);
260
- // Check to see whether the action is able to proceed, which in
261
- // in the case of a submission will validate the fields in the page.
262
- if (_helpers.default.canActionProceed(action, formState.page, validate.page)) {
263
- patch = _helpers.default.cleanHiddenNestedData(patch, formState.page);
264
- if (action.addToFormData) {
265
- formState.page.formData[action.addToFormData.field] = action.addToFormData.value;
266
- }
267
- if (action.type === _models.PageAction.TYPES.NAVIGATE) {
268
- _handlers.default.navigate(action, pageId, onPageChange);
269
- } else {
270
- var pageUpdate = function pageUpdate(next) {
271
- return onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, next));
272
- };
273
- switch (action.type) {
274
- case _models.PageAction.TYPES.SUBMIT:
275
- setPagePoint('submit');
276
- break;
277
- case _models.PageAction.TYPES.SAVE_AND_NAVIGATE:
278
- pageUpdate = function pageUpdate() {
279
- return _handlers.default.navigate(action, pageId, onPageChange);
280
- };
281
- break;
282
- case _models.PageAction.TYPES.COLLECTION_ADD:
283
- formState.page.formData["".concat(action.collection, "ActiveId")] = Date.now().toString();
284
- pageUpdate = function pageUpdate() {
285
- return _handlers.default.navigate(action, pageId, onPageChange);
286
- };
287
- break;
288
- case _models.PageAction.TYPES.COLLECTION_DUPLICATE:
289
- if (_utils.default.CollectionPage.duplicateActiveEntry(action.collection, formState.page.formData)) {
290
- pageUpdate = function pageUpdate() {
291
- return _handlers.default.navigate(action, pageId, onPageChange);
292
- };
293
- }
294
- break;
295
- case _models.PageAction.TYPES.COLLECTION_REMOVE:
296
- var activeId = formState.page.formData["".concat(action.collection, "ActiveId")];
297
- formState.page.formData["".concat(action.collection)] = formState.page.formData["".concat(action.collection)].filter(function (entry) {
298
- return entry.id !== activeId;
299
- });
300
- break;
301
- default:
302
- break;
303
- }
304
- // Save draft or submit.
305
- var submissionData = _utils.default.Format.form({
306
- pages: pages,
307
- components: components
308
- }, _objectSpread(_objectSpread(_objectSpread({}, data), patch), formState.page.formData), _models.EventTypes.SUBMIT);
309
- submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true, hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.sections);
310
- if (patch) {
311
- setData(submissionData);
312
- }
313
-
314
- // In case of hub-and-spoke if patchLabel has changed then
315
- // save name and value to variables for call to onSubmit hook
316
- var changedFieldName;
317
- var changedFieldValue;
318
- if (type === _models.FormTypes.HUB && Object.keys(patchLabel).length > 0) {
319
- changedFieldName = Object.keys(patchLabel)[0];
320
- changedFieldValue = Object.values(patchLabel)[0];
321
- }
322
-
323
- // Now submit the data to the backend...
324
- hooks.onSubmit(action.type, submissionData, function (response) {
325
- // The backend response may well contain data we need so apply it...
326
- // ... but this needs to happen in a useEffect, not right away.
327
- var sData = _objectSpread(_objectSpread({}, submissionData), response);
328
- setSubmitted({
329
- data: sData
330
- });
331
- pageUpdate(sData);
332
- }, function (errors) {
333
- _handlers.default.submissionError(errors, addErrors);
334
- }, changedFieldName, changedFieldValue);
335
- }
336
- }
279
+ // Handle change to form data in pages.
280
+ var onChange = function onChange(data) {
281
+ hooks.onChange(data);
337
282
  };
338
283
 
339
284
  // Handle navigation from "Check your answers".
340
285
  // Passing a dataCallback allows changes to formData from the
341
- // CYA screen. This is necessary to alow changing the active
286
+ // CYA screen. This is necessary to allow changing the active
342
287
  // entry in page collections.
343
288
  var onCYARowAction = function onCYARowAction(page, dataCallback) {
289
+ var _formState$page3;
344
290
  if (typeof dataCallback === 'function') {
345
291
  var newData = dataCallback(_objectSpread({}, data));
346
292
  if (newData) {
347
293
  setData(newData);
348
294
  }
349
295
  }
350
- if (page) {
351
- _handlers.default.cyaAction(page, pageId, onPageChange);
352
- }
353
- };
354
-
355
- //Kick off a task, gather required pages and move to the correct point
356
- var onTaskAction = function onTaskAction(currentTask) {
357
- if (currentTask) {
358
- currentTask.fullPages = [];
359
- currentTask.pages.forEach(function (page) {
360
- currentTask.fullPages.push(_helpers.default.getPage(page, pages));
361
- });
362
- setCurrentTask(currentTask);
363
- if (currentTask.state === _models.TaskStates.TYPES.COMPLETE) {
364
- if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
365
- var currentPage = data.formStatus.tasks[currentTask.name].currentPage;
366
- onPageChange(currentPage || currentTask.pages[0]);
367
- } else {
368
- onPageChange(_models.FormPages.CYA);
369
- }
370
- } else if (currentTask.state === _models.TaskStates.TYPES.IN_PROGRESS) {
371
- var _currentPage = data.formStatus.tasks[currentTask.name].currentPage;
372
- onPageChange(_currentPage || currentTask.pages[0]);
373
- } else if (currentTask.firstPage) {
374
- var _currentPage2 = currentTask.firstPage;
375
- onPageChange(_currentPage2 || currentTask.pages[0]);
376
- } else {
377
- onPageChange(currentTask.pages[0]);
378
- }
379
- }
380
- };
381
-
382
- // Handle actions from "Check your answers".
383
- var onCYAAction = function onCYAAction(action) {
384
- // Check to see whether the action is able to proceed, which in
385
- // in the case of a submission will validate the fields in the page.
386
- if (action.type === _models.PageAction.TYPES.SUBMIT) {
387
- setPagePoint('submit');
388
- if (_helpers.default.canCYASubmit(pages, validate.pages)) {
389
- // Submit.
390
- var submissionData = _utils.default.Format.form({
391
- pages: pages,
392
- components: components
393
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
394
- submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
395
- setData(submissionData);
396
- // Now submit the data to the backend...
397
- hooks.onSubmit(action.type, submissionData, function () {
398
- return hooks.onFormComplete();
399
- }, function (errors) {
400
- return _handlers.default.submissionError(errors, addErrors);
401
- });
402
- }
403
- }
404
- if (action.type === _models.PageAction.TYPES.SAVE_AND_CONTINUE && hub === _models.HubFormats.TASK) {
405
- if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
406
- var _submissionData = _utils.default.Format.form({
407
- pages: pages,
408
- components: components
409
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
410
- _submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData, currentTask, true);
411
- setData(_submissionData);
412
- hooks.onSubmit(action.type, _submissionData, function () {
413
- return onPageChange(_models.FormPages.HUB);
414
- }, function (errors) {
415
- return _handlers.default.submissionError(errors, addErrors);
416
- });
417
- }
418
- }
419
- if (action.type === _models.PageAction.TYPES.SAVE_AND_RETURN) {
420
- if (_helpers.default.canCYASubmit(currentTask.fullPages, validate.pages)) {
421
- var _submissionData2 = _utils.default.Format.form({
422
- pages: pages,
423
- components: components
424
- }, _objectSpread({}, data), _models.EventTypes.SUBMIT);
425
- _submissionData2.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, _submissionData2, currentTask);
426
- setData(_submissionData2);
427
- hooks.onSubmit(action.type, _submissionData2, function () {
428
- if (type === _models.FormTypes.TASK) {
429
- onPageChange(undefined);
430
- } else {
431
- onPageChange(_models.FormPages.HUB);
296
+ if (((_formState$page3 = formState.page) === null || _formState$page3 === void 0 ? void 0 : _formState$page3.type) === _models.FormPages.PARTIAL_CYA) {
297
+ hubDetails.sections.every(function (section) {
298
+ return section.tasks.every(function (task) {
299
+ if (task.pages.includes(page.pageId) && task.name !== currentTask.name) {
300
+ (0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
301
+ return false;
432
302
  }
433
- }, function (errors) {
434
- return _handlers.default.submissionError(errors, addErrors);
303
+ return true;
435
304
  });
436
- }
437
- }
438
- if (action.type === _models.PageAction.TYPES.NAVIGATE) {
439
- var _formState$page3;
440
- onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page3 = formState.page) === null || _formState$page3 === void 0 ? void 0 : _formState$page3.formData));
305
+ });
441
306
  }
442
- if (action.type === _models.PageAction.TYPES.CANCEL) {
443
- hooks.onCancel();
307
+ if (page) {
308
+ _handlers.default.cyaAction(page, pageId, onPageChange);
444
309
  }
445
310
  };
446
311
  var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
447
312
  if (hub === _models.HubFormats.TASK) {
448
- cya.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
313
+ var currentCYA = cya;
314
+ currentCYA.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
449
315
  }
316
+
317
+ // filter out invalid attribs
318
+ var _noCYA = hubDetails.noTaskCYAs,
319
+ _nonSeq = hubDetails.nonSequential,
320
+ taskDetails = _objectWithoutProperties(hubDetails, _excluded);
450
321
  return /*#__PURE__*/_react.default.createElement("div", {
451
322
  className: classes()
452
- }, title && !hide_title && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
323
+ }, title && !hideTitle && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
453
324
  pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
454
325
  }, cya, ((_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.type) === _models.FormPages.PARTIAL_CYA && {
455
- actions: formState.page.actions
326
+ actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(function (action) {
327
+ return _utils.default.Component.show(action, data);
328
+ })
456
329
  }, formState.cya, {
457
- onAction: onCYAAction,
330
+ onAction: function onAction(action) {
331
+ (0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState);
332
+ },
458
333
  onRowAction: onCYARowAction,
459
334
  summaryListClassModifiers: summaryListClassModifiers,
460
- hide_title: hide_title,
461
- noChangeAction: noChangeAction,
335
+ hide_title: hideTitle,
336
+ noChangeAction: (_formState$cya$hideCh = formState.cya.hideChangeActions) !== null && _formState$cya$hideCh !== void 0 ? _formState$cya$hideCh : noChangeAction,
337
+ noGroupAction: (_formState$cya$hideGr = formState.cya.hideGroupActions) !== null && _formState$cya$hideGr !== void 0 ? _formState$cya$hideGr : false,
462
338
  sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
463
339
  type: type
464
- })), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, hubDetails, {
340
+ })), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, taskDetails, {
465
341
  refNumber: data.businessKey,
466
- onTaskAction: onTaskAction
342
+ onTaskAction: function onTaskAction(task) {
343
+ (0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
344
+ },
345
+ formData: data
467
346
  })), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
468
347
  page: formState.page,
469
- onAction: onPageAction
348
+ onAction: function onAction(action, patch, patchLabel) {
349
+ (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors);
350
+ },
351
+ onChange: onChange,
352
+ hashLink: hashLink,
353
+ classModifiers: formState.page.classModifiers,
354
+ className: formState.page.className
470
355
  }), formState.page && !formState.cya && formState.page.collection && /*#__PURE__*/_react.default.createElement(_CollectionPage.default, {
471
356
  page: formState.page,
472
- onAction: onPageAction
357
+ onAction: function onAction(action, patch, patchLabel) {
358
+ (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors);
359
+ },
360
+ classModifiers: formState.page.classModifiers,
361
+ className: formState.page.className
473
362
  }));
474
363
  };
475
- FormRenderer.propTypes = InternalFormRenderer.propTypes = {
476
- title: _propTypes.default.string,
477
- /** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
478
- 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,
479
- components: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
480
- pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
481
- hub: _propTypes.default.object,
482
- cya: _propTypes.default.object,
483
- data: _propTypes.default.object,
484
- hooks: _propTypes.default.object,
364
+ var propTypes = {
485
365
  classBlock: _propTypes.default.string,
486
366
  classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
487
367
  className: _propTypes.default.string,
368
+ components: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
369
+ cya: _propTypes.default.shape({
370
+ actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string]))
371
+ }),
372
+ data: _propTypes.default.shape({
373
+ formStatus: _propTypes.default.shape({
374
+ page: _propTypes.default.shape({})
375
+ })
376
+ }),
377
+ hashLink: _propTypes.default.bool,
488
378
  hide_title: _propTypes.default.bool,
489
- summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
379
+ hooks: _propTypes.default.shape({}),
380
+ hub: _propTypes.default.shape({
381
+ nonSequential: _propTypes.default.bool,
382
+ sections: _propTypes.default.arrayOf(_propTypes.default.shape({}))
383
+ }),
384
+ newPageId: _propTypes.default.string,
490
385
  noChangeAction: _propTypes.default.bool,
386
+ pages: _propTypes.default.arrayOf(_propTypes.default.shape({})).isRequired,
387
+ summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
388
+ title: _propTypes.default.string,
389
+ /** See <a href="/?path=/docs/f-json--page#formtypes">FormTypes</a>. */
390
+ 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,
491
391
  viewOnly: _propTypes.default.bool
492
392
  };
493
- FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
494
- type: _models.FormTypes.HUB,
495
- components: [],
496
- pages: [],
393
+ var defaultProps = {
497
394
  classBlock: DEFAULT_CLASS,
395
+ className: '',
498
396
  classModifiers: [],
397
+ cya: {
398
+ actions: []
399
+ },
400
+ data: null,
401
+ hashLink: false,
499
402
  hide_title: false,
500
- summaryListClassModifiers: [],
403
+ hooks: null,
404
+ hub: {
405
+ nonSequential: false,
406
+ sections: []
407
+ },
408
+ newPageId: '',
501
409
  noChangeAction: false,
410
+ summaryListClassModifiers: [],
411
+ title: '',
502
412
  viewOnly: true
503
413
  };
414
+ FormRenderer.propTypes = propTypes;
415
+ InternalFormRenderer.propTypes = propTypes;
416
+ FormRenderer.defaultProps = defaultProps;
417
+ InternalFormRenderer.defaultProps = defaultProps;
504
418
  var _default = FormRenderer;
505
419
  exports.default = _default;