@ukhomeoffice/cop-react-form-renderer 5.89.0 → 5.90.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 (384) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +15 -15
  2. package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +106 -142
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +563 -941
  5. package/dist/components/CheckYourAnswers/index.js +1 -1
  6. package/dist/components/CollectionPage/CollectionPage.js +76 -66
  7. package/dist/components/CollectionPage/CollectionPage.test.js +318 -369
  8. package/dist/components/CollectionPage/index.js +1 -1
  9. package/dist/components/CollectionSummary/BannerStrip.js +15 -15
  10. package/dist/components/CollectionSummary/BannerStrip.test.js +83 -79
  11. package/dist/components/CollectionSummary/CollectionSummary.js +109 -131
  12. package/dist/components/CollectionSummary/CollectionSummary.test.js +198 -180
  13. package/dist/components/CollectionSummary/Confirmation.js +15 -13
  14. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  15. package/dist/components/CollectionSummary/RenderListView.js +47 -55
  16. package/dist/components/CollectionSummary/RenderListView.test.js +82 -81
  17. package/dist/components/CollectionSummary/SummaryCard.js +121 -157
  18. package/dist/components/CollectionSummary/SummaryCard.test.js +970 -1000
  19. package/dist/components/CollectionSummary/SummaryCardDetails.js +103 -94
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +187 -195
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +64 -76
  23. package/dist/components/CollectionSummary/index.js +1 -1
  24. package/dist/components/FormComponent/Collection.js +81 -117
  25. package/dist/components/FormComponent/Collection.scss +1 -1
  26. package/dist/components/FormComponent/Collection.test.js +910 -1082
  27. package/dist/components/FormComponent/Container.js +45 -38
  28. package/dist/components/FormComponent/Container.scss +15 -0
  29. package/dist/components/FormComponent/Container.test.js +379 -411
  30. package/dist/components/FormComponent/FormComponent.js +71 -74
  31. package/dist/components/FormComponent/FormComponent.test.js +354 -415
  32. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  33. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  34. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  35. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  36. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  37. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  38. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  39. package/dist/components/FormComponent/helpers/index.js +5 -5
  40. package/dist/components/FormComponent/index.js +1 -1
  41. package/dist/components/FormPage/FormPage.js +71 -87
  42. package/dist/components/FormPage/FormPage.test.js +133 -170
  43. package/dist/components/FormPage/index.js +1 -1
  44. package/dist/components/FormRenderer/FormRenderer.js +153 -198
  45. package/dist/components/FormRenderer/FormRenderer.test.js +731 -1116
  46. package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
  47. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  48. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  49. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  50. package/dist/components/FormRenderer/handlers/index.js +2 -2
  51. package/dist/components/FormRenderer/handlers/navigate.js +4 -4
  52. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  53. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  54. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
  55. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  56. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  57. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +27 -30
  58. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
  59. package/dist/components/FormRenderer/helpers/getCYA.js +5 -7
  60. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  61. package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
  62. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  63. package/dist/components/FormRenderer/helpers/getNextPageId.js +18 -32
  64. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  65. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  66. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  67. package/dist/components/FormRenderer/helpers/getRelevantPages.js +8 -11
  68. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  69. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
  70. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
  71. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +65 -64
  72. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
  73. package/dist/components/FormRenderer/helpers/index.js +2 -2
  74. package/dist/components/FormRenderer/index.js +1 -1
  75. package/dist/components/FormRenderer/onCYAAction.js +61 -54
  76. package/dist/components/FormRenderer/onCYAAction.test.js +165 -153
  77. package/dist/components/FormRenderer/onPageAction.js +45 -41
  78. package/dist/components/FormRenderer/onPageAction.test.js +225 -210
  79. package/dist/components/FormRenderer/onTaskAction.js +11 -15
  80. package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
  81. package/dist/components/PageActions/ActionButton.js +13 -16
  82. package/dist/components/PageActions/ActionButton.test.js +57 -79
  83. package/dist/components/PageActions/PageActions.js +11 -11
  84. package/dist/components/PageActions/PageActions.test.js +87 -116
  85. package/dist/components/PageActions/index.js +1 -1
  86. package/dist/components/SummaryList/GroupAction.js +13 -21
  87. package/dist/components/SummaryList/GroupAction.test.js +41 -37
  88. package/dist/components/SummaryList/RowAction.js +12 -17
  89. package/dist/components/SummaryList/RowAction.test.js +41 -37
  90. package/dist/components/SummaryList/SummaryList.js +23 -28
  91. package/dist/components/SummaryList/SummaryList.test.js +179 -206
  92. package/dist/components/SummaryList/SummaryListHeadingRow.js +8 -6
  93. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
  94. package/dist/components/SummaryList/SummaryListRow.js +8 -6
  95. package/dist/components/SummaryList/SummaryListTitleRow.js +7 -5
  96. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +4 -6
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
  98. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +4 -6
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
  100. package/dist/components/SummaryList/helpers/index.js +2 -2
  101. package/dist/components/SummaryList/index.js +1 -1
  102. package/dist/components/TaskList/Task.js +20 -30
  103. package/dist/components/TaskList/Task.test.js +84 -77
  104. package/dist/components/TaskList/TaskList.js +53 -84
  105. package/dist/components/TaskList/TaskList.test.js +150 -150
  106. package/dist/components/TaskList/TaskState.js +8 -6
  107. package/dist/components/TaskList/TaskState.test.js +56 -49
  108. package/dist/components/TaskList/index.js +1 -1
  109. package/dist/components/index.js +8 -8
  110. package/dist/context/HooksContext/HooksContext.js +58 -81
  111. package/dist/context/HooksContext/HooksContext.test.js +27 -36
  112. package/dist/context/HooksContext/index.js +3 -4
  113. package/dist/context/ValidationContext/ValidationContext.js +44 -95
  114. package/dist/context/ValidationContext/ValidationContext.test.js +58 -70
  115. package/dist/context/ValidationContext/index.js +3 -4
  116. package/dist/context/index.js +3 -3
  117. package/dist/hooks/index.js +10 -11
  118. package/dist/hooks/useAxios.js +15 -41
  119. package/dist/hooks/useGetRequest.js +62 -98
  120. package/dist/hooks/useHooks.js +1 -3
  121. package/dist/hooks/useRefData.js +28 -41
  122. package/dist/hooks/useValidation.js +1 -3
  123. package/dist/index.js +14 -15
  124. package/dist/models/CollectionLabels.js +1 -1
  125. package/dist/models/ComponentTypes.js +25 -25
  126. package/dist/models/EventTypes.js +4 -4
  127. package/dist/models/FormPages.js +4 -4
  128. package/dist/models/FormTypes.js +8 -8
  129. package/dist/models/HubFormats.js +3 -3
  130. package/dist/models/PageAction.js +44 -38
  131. package/dist/models/TaskStates.js +29 -28
  132. package/dist/models/index.js +10 -10
  133. package/dist/setupTests.js +31 -32
  134. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  135. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  136. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +17 -27
  137. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +34 -36
  138. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +20 -34
  139. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +43 -45
  140. package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
  141. package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
  142. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +39 -45
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +100 -105
  147. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +218 -182
  148. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +26 -21
  149. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
  150. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +15 -21
  151. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
  152. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +13 -13
  153. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +14 -19
  154. package/dist/utils/CheckYourAnswers/index.js +2 -2
  155. package/dist/utils/CheckYourAnswers/showComponentCYA.js +6 -6
  156. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
  157. package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -3
  158. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
  159. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
  160. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +21 -22
  161. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +15 -24
  162. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +52 -43
  163. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +3 -3
  164. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
  165. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -12
  166. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
  167. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -13
  168. package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
  169. package/dist/utils/CollectionPage/getErrorsForCollection.js +25 -26
  170. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
  171. package/dist/utils/CollectionPage/getQuickEditPage.js +37 -32
  172. package/dist/utils/CollectionPage/getQuickEditPage.test.js +18 -22
  173. package/dist/utils/CollectionPage/index.js +2 -2
  174. package/dist/utils/CollectionPage/mergeCollectionPages.js +37 -42
  175. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -22
  176. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
  177. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
  178. package/dist/utils/CollectionPage/setCollectionPageData.js +13 -19
  179. package/dist/utils/CollectionPage/setCollectionPageData.test.js +26 -26
  180. package/dist/utils/Component/addShowWhen.js +4 -8
  181. package/dist/utils/Component/addShowWhen.test.js +38 -38
  182. package/dist/utils/Component/applyToComponentTree.js +19 -20
  183. package/dist/utils/Component/applyToComponentTree.test.js +28 -33
  184. package/dist/utils/Component/cleanAttributes.js +10 -13
  185. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  186. package/dist/utils/Component/elevateNestedComponents.js +6 -7
  187. package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
  188. package/dist/utils/Component/getComponent.js +90 -97
  189. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  190. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +50 -63
  191. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
  192. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +30 -40
  193. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  194. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
  195. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +22 -27
  196. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
  197. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  198. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  199. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  200. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
  201. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  202. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  203. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
  204. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
  205. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
  206. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
  207. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +34 -41
  208. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +23 -32
  209. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  210. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  211. package/dist/utils/Component/getDefaultValue.js +7 -9
  212. package/dist/utils/Component/getDefaultValue.test.js +13 -13
  213. package/dist/utils/Component/getDefaultValueFromConfig.js +24 -24
  214. package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
  215. package/dist/utils/Component/index.js +2 -2
  216. package/dist/utils/Component/isEditable.js +2 -4
  217. package/dist/utils/Component/isEditable.test.js +14 -15
  218. package/dist/utils/Component/optionIsSelected.js +2 -4
  219. package/dist/utils/Component/optionIsSelected.test.js +12 -12
  220. package/dist/utils/Component/setupContainerComponentsPath.js +29 -31
  221. package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
  222. package/dist/utils/Component/showComponent.js +3 -4
  223. package/dist/utils/Component/showComponent.test.js +29 -29
  224. package/dist/utils/Component/wrapInFormGroup.js +4 -4
  225. package/dist/utils/Condition/index.js +2 -2
  226. package/dist/utils/Condition/meetsAllConditions.js +9 -9
  227. package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
  228. package/dist/utils/Condition/meetsCondition.js +20 -31
  229. package/dist/utils/Condition/meetsCondition.test.js +403 -403
  230. package/dist/utils/Condition/meetsOneCondition.js +6 -6
  231. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  232. package/dist/utils/Condition/setupConditions.js +14 -19
  233. package/dist/utils/Condition/setupConditions.test.js +8 -8
  234. package/dist/utils/Container/getEditableComponents.js +4 -6
  235. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  236. package/dist/utils/Container/index.js +2 -2
  237. package/dist/utils/Container/setupNesting.js +16 -22
  238. package/dist/utils/Container/setupNesting.test.js +28 -31
  239. package/dist/utils/Container/showContainer.js +4 -8
  240. package/dist/utils/Container/showContainer.test.js +31 -31
  241. package/dist/utils/Data/applyFormula.js +40 -50
  242. package/dist/utils/Data/applyFormula.test.js +26 -26
  243. package/dist/utils/Data/deleteValues.js +4 -8
  244. package/dist/utils/Data/deleteValues.test.js +11 -11
  245. package/dist/utils/Data/getAutocompleteSource.js +20 -29
  246. package/dist/utils/Data/getAutocompleteSource.test.js +81 -87
  247. package/dist/utils/Data/getDataPath.js +20 -30
  248. package/dist/utils/Data/getDataPath.test.js +20 -20
  249. package/dist/utils/Data/getOptions.js +27 -34
  250. package/dist/utils/Data/getOptions.test.js +28 -28
  251. package/dist/utils/Data/getSourceData.js +6 -19
  252. package/dist/utils/Data/getSourceData.test.js +85 -81
  253. package/dist/utils/Data/index.js +2 -2
  254. package/dist/utils/Data/nestInRefdataOptions.js +9 -16
  255. package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
  256. package/dist/utils/Data/refDataToOptions.js +11 -15
  257. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  258. package/dist/utils/Data/setDataItem.js +7 -8
  259. package/dist/utils/Data/setDataItem.test.js +38 -38
  260. package/dist/utils/Data/setupFormData.js +14 -22
  261. package/dist/utils/Data/setupFormData.test.js +52 -51
  262. package/dist/utils/Data/setupRefDataUrlForComponent.js +21 -28
  263. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
  264. package/dist/utils/FormPage/applyConditionalProperties.js +6 -10
  265. package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
  266. package/dist/utils/FormPage/getConditionalText.js +4 -4
  267. package/dist/utils/FormPage/getConditionalText.test.js +35 -35
  268. package/dist/utils/FormPage/getFormPage.js +16 -17
  269. package/dist/utils/FormPage/getFormPage.test.js +49 -48
  270. package/dist/utils/FormPage/getFormPages.js +8 -13
  271. package/dist/utils/FormPage/getFormPages.test.js +22 -25
  272. package/dist/utils/FormPage/getPageActions.js +10 -17
  273. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  274. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  275. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  276. package/dist/utils/FormPage/index.js +3 -5
  277. package/dist/utils/FormPage/showFormPage.js +4 -8
  278. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  279. package/dist/utils/FormPage/showFormPageCYA.js +3 -3
  280. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  281. package/dist/utils/FormPage/useComponent.js +21 -28
  282. package/dist/utils/FormPage/useComponent.test.js +78 -80
  283. package/dist/utils/Format/formatData.js +1 -1
  284. package/dist/utils/Format/formatData.test.js +19 -19
  285. package/dist/utils/Format/formatDataForComponent.js +6 -7
  286. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  287. package/dist/utils/Format/formatDataForForm.js +6 -8
  288. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  289. package/dist/utils/Format/formatDataForPage.js +4 -5
  290. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  291. package/dist/utils/Format/index.js +2 -2
  292. package/dist/utils/Hub/getFormHub.js +2 -2
  293. package/dist/utils/Hub/getFormHub.test.js +29 -32
  294. package/dist/utils/Hub/index.js +2 -2
  295. package/dist/utils/Meta/constants.js +2 -2
  296. package/dist/utils/Meta/documents/getDocuments.js +1 -4
  297. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  298. package/dist/utils/Meta/documents/index.js +2 -2
  299. package/dist/utils/Meta/documents/setDocumentsForField.js +15 -17
  300. package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
  301. package/dist/utils/Meta/index.js +2 -2
  302. package/dist/utils/Operate/checkValueIsTruthy.js +4 -4
  303. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  304. package/dist/utils/Operate/deleteValueInFormData.js +3 -3
  305. package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
  306. package/dist/utils/Operate/getFirstOf.js +8 -8
  307. package/dist/utils/Operate/getFirstOf.test.js +33 -33
  308. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +12 -12
  309. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  310. package/dist/utils/Operate/getLength.js +11 -11
  311. package/dist/utils/Operate/getLength.test.js +19 -19
  312. package/dist/utils/Operate/index.js +2 -2
  313. package/dist/utils/Operate/persistValueInFormData.js +6 -6
  314. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  315. package/dist/utils/Operate/runPageOperations.js +9 -9
  316. package/dist/utils/Operate/runPageOperations.test.js +36 -37
  317. package/dist/utils/Operate/setValueInFormData.js +5 -5
  318. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  319. package/dist/utils/Operate/shouldRun.js +8 -8
  320. package/dist/utils/Operate/shouldRun.test.js +22 -28
  321. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +25 -0
  322. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +33 -0
  323. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -5
  324. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  325. package/dist/utils/Validate/additional/index.js +10 -8
  326. package/dist/utils/Validate/additional/index.test.js +22 -22
  327. package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
  328. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  329. package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
  330. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  331. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +9 -14
  332. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +38 -42
  333. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  334. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  335. package/dist/utils/Validate/additional/mustBeInTheFuture.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  337. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -5
  338. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  339. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  340. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  341. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  342. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  343. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  344. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  345. package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
  346. package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
  347. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  348. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  349. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
  350. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +36 -40
  351. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +3 -5
  352. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  353. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  354. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  355. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  356. package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
  357. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +3 -5
  358. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  359. package/dist/utils/Validate/additional/utils.js +11 -24
  360. package/dist/utils/Validate/index.js +2 -2
  361. package/dist/utils/Validate/validateCollection.js +21 -27
  362. package/dist/utils/Validate/validateCollection.test.js +85 -77
  363. package/dist/utils/Validate/validateComponent.js +22 -23
  364. package/dist/utils/Validate/validateComponent.test.js +188 -165
  365. package/dist/utils/Validate/validateContainer.js +16 -21
  366. package/dist/utils/Validate/validateContainer.test.js +62 -56
  367. package/dist/utils/Validate/validateDate.js +17 -23
  368. package/dist/utils/Validate/validateDate.test.js +31 -32
  369. package/dist/utils/Validate/validateEmail.js +7 -9
  370. package/dist/utils/Validate/validateEmail.test.js +26 -26
  371. package/dist/utils/Validate/validateMultifile.js +5 -7
  372. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  373. package/dist/utils/Validate/validatePage.js +20 -24
  374. package/dist/utils/Validate/validatePage.test.js +227 -215
  375. package/dist/utils/Validate/validateRegex.js +5 -8
  376. package/dist/utils/Validate/validateRegex.test.js +17 -17
  377. package/dist/utils/Validate/validateRequired.js +5 -7
  378. package/dist/utils/Validate/validateRequired.test.js +19 -19
  379. package/dist/utils/Validate/validateTextArea.js +5 -7
  380. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  381. package/dist/utils/Validate/validateTime.js +12 -19
  382. package/dist/utils/Validate/validateTime.test.js +27 -27
  383. package/dist/utils/index.js +8 -10
  384. package/package.json +3 -2
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -20,47 +19,35 @@ var _handlers = _interopRequireDefault(require("./handlers"));
20
19
  var _helpers = _interopRequireDefault(require("./helpers"));
21
20
  var _onCYAAction = _interopRequireDefault(require("./onCYAAction"));
22
21
  var _onPageAction = _interopRequireDefault(require("./onPageAction"));
23
- var _onTaskAction2 = _interopRequireDefault(require("./onTaskAction"));
22
+ var _onTaskAction = _interopRequireDefault(require("./onTaskAction"));
24
23
  require("./FormRenderer.scss");
25
- var _excluded = ["noTaskCYAs", "nonSequential"];
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
28
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
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; }
32
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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); }
37
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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."); }
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); }
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(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
42
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /* eslint-disable no-shadow */ // Global imports
24
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
26
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /* eslint-disable no-shadow */ // Global imports
43
28
  // Local imports
44
29
  // Styles
45
- var FormRenderer = function FormRenderer(_ref) {
46
- var title = _ref.title,
47
- type = _ref.type,
48
- components = _ref.components,
49
- pages = _ref.pages,
50
- hub = _ref.hub,
51
- cya = _ref.cya,
52
- data = _ref.data,
53
- hashLink = _ref.hashLink,
54
- hooks = _ref.hooks,
55
- classBlock = _ref.classBlock,
56
- classModifiers = _ref.classModifiers,
57
- className = _ref.className,
58
- hideTitle = _ref.hide_title,
59
- summaryListClassModifiers = _ref.summaryListClassModifiers,
60
- noChangeAction = _ref.noChangeAction,
61
- newPageId = _ref.newPageId,
62
- viewOnly = _ref.viewOnly,
63
- hideBlankRows = _ref.hideBlankRows;
30
+ const FormRenderer = _ref => {
31
+ let {
32
+ title,
33
+ type,
34
+ components,
35
+ pages,
36
+ hub,
37
+ cya,
38
+ data,
39
+ hashLink,
40
+ hooks,
41
+ classBlock,
42
+ classModifiers,
43
+ className,
44
+ hide_title: hideTitle,
45
+ summaryListClassModifiers,
46
+ noChangeAction,
47
+ newPageId,
48
+ viewOnly,
49
+ hideBlankRows
50
+ } = _ref;
64
51
  return /*#__PURE__*/_react.default.createElement(_context.HooksContextProvider, {
65
52
  overrides: hooks
66
53
  }, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
@@ -83,210 +70,179 @@ var FormRenderer = function FormRenderer(_ref) {
83
70
  hideBlankRows: hideBlankRows
84
71
  })));
85
72
  };
86
- var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form';
87
- var InternalFormRenderer = function InternalFormRenderer(_ref2) {
88
- var _formState$page4, _formState$page$actio, _formState$cya$hideCh, _formState$cya$hideGr;
89
- var title = _ref2.title,
90
- type = _ref2.type,
91
- components = _ref2.components,
92
- _pages = _ref2.pages,
93
- _hub = _ref2.hub,
94
- cya = _ref2.cya,
95
- _data = _ref2.data,
96
- classBlock = _ref2.classBlock,
97
- classModifiers = _ref2.classModifiers,
98
- className = _ref2.className,
99
- hashLink = _ref2.hashLink,
100
- hideTitle = _ref2.hide_title,
101
- summaryListClassModifiers = _ref2.summaryListClassModifiers,
102
- noChangeAction = _ref2.noChangeAction,
103
- newPageId = _ref2.newPageId,
104
- viewOnly = _ref2.viewOnly,
105
- hideBlankRows = _ref2.hideBlankRows;
73
+ const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form';
74
+ const InternalFormRenderer = _ref2 => {
75
+ let {
76
+ title,
77
+ type,
78
+ components,
79
+ pages: _pages,
80
+ hub: _hub,
81
+ cya,
82
+ data: _data,
83
+ classBlock,
84
+ classModifiers,
85
+ className,
86
+ hashLink,
87
+ hide_title: hideTitle,
88
+ summaryListClassModifiers,
89
+ noChangeAction,
90
+ newPageId,
91
+ viewOnly,
92
+ hideBlankRows
93
+ } = _ref2;
106
94
  // Set up the initial states.
107
- var _useState = (0, _react.useState)({}),
108
- _useState2 = _slicedToArray(_useState, 2),
109
- data = _useState2[0],
110
- setData = _useState2[1];
111
- var _useState3 = (0, _react.useState)(),
112
- _useState4 = _slicedToArray(_useState3, 2),
113
- submitted = _useState4[0],
114
- setSubmitted = _useState4[1];
115
- var _useState5 = (0, _react.useState)([]),
116
- _useState6 = _slicedToArray(_useState5, 2),
117
- pages = _useState6[0],
118
- setPages = _useState6[1];
119
- var _useState7 = (0, _react.useState)(undefined),
120
- _useState8 = _slicedToArray(_useState7, 2),
121
- hub = _useState8[0],
122
- setHub = _useState8[1];
123
- var _useState9 = (0, _react.useState)(_helpers.default.getNextPageId(type, _pages, null, null, _data)),
124
- _useState10 = _slicedToArray(_useState9, 2),
125
- pageId = _useState10[0],
126
- setPageId = _useState10[1];
127
- var _useState11 = (0, _react.useState)(_helpers.default.getFormState(pageId, pages, hub)),
128
- _useState12 = _slicedToArray(_useState11, 2),
129
- formState = _useState12[0],
130
- setFormState = _useState12[1];
131
- var _useState13 = (0, _react.useState)({}),
132
- _useState14 = _slicedToArray(_useState13, 2),
133
- currentTask = _useState14[0],
134
- setCurrentTask = _useState14[1];
135
- var _useState15 = (0, _react.useState)({}),
136
- _useState16 = _slicedToArray(_useState15, 2),
137
- hubDetails = _useState16[0],
138
- setHubDetails = _useState16[1];
139
- var _useState17 = (0, _react.useState)('load'),
140
- _useState18 = _slicedToArray(_useState17, 2),
141
- pagePoint = _useState18[0],
142
- setPagePoint = _useState18[1];
143
- var _useState19 = (0, _react.useState)(false),
144
- _useState20 = _slicedToArray(_useState19, 2),
145
- goingBack = _useState20[0],
146
- setGoingBack = _useState20[1];
147
- var _useState21 = (0, _react.useState)(false),
148
- _useState22 = _slicedToArray(_useState21, 2),
149
- submitting = _useState22[0],
150
- setSubmitting = _useState22[1];
95
+ const [data, setData] = (0, _react.useState)({});
96
+ const [submitted, setSubmitted] = (0, _react.useState)();
97
+ const [pages, setPages] = (0, _react.useState)([]);
98
+ const [hub, setHub] = (0, _react.useState)(undefined);
99
+ const [pageId, setPageId] = (0, _react.useState)(_helpers.default.getNextPageId(type, _pages, null, null, _data));
100
+ const [formState, setFormState] = (0, _react.useState)(_helpers.default.getFormState(pageId, pages, hub));
101
+ const [currentTask, setCurrentTask] = (0, _react.useState)({});
102
+ const [hubDetails, setHubDetails] = (0, _react.useState)({});
103
+ const [pagePoint, setPagePoint] = (0, _react.useState)('load');
104
+ const [goingBack, setGoingBack] = (0, _react.useState)(false);
105
+ const [submitting, setSubmitting] = (0, _react.useState)(false);
151
106
 
152
107
  // Set up hooks.
153
- var _useHooks = (0, _hooks.useHooks)(),
154
- hooks = _useHooks.hooks;
108
+ const {
109
+ hooks
110
+ } = (0, _hooks.useHooks)();
155
111
 
156
112
  // Set up the useValidation hook.
157
- var _useValidation = (0, _hooks.useValidation)(),
158
- addErrors = _useValidation.addErrors,
159
- clearErrors = _useValidation.clearErrors,
160
- errors = _useValidation.errors,
161
- validate = _useValidation.validate;
113
+ const {
114
+ addErrors,
115
+ clearErrors,
116
+ errors,
117
+ validate
118
+ } = (0, _hooks.useValidation)();
162
119
 
163
120
  // Need to set submission data when going back
164
- window.onpopstate = function (e) {
165
- var _formState$page;
121
+ window.onpopstate = e => {
166
122
  if (document.location.hash) {
167
123
  return;
168
124
  }
169
125
  if (e.state && e.state.fullPages !== undefined) {
170
- setCurrentTask(function (prev) {
171
- var _e$state;
172
- return _objectSpread(_objectSpread({}, prev), {}, {
173
- fullPages: (_e$state = e.state) === null || _e$state === void 0 ? void 0 : _e$state.fullPages
174
- });
175
- });
126
+ setCurrentTask(prev => ({
127
+ ...prev,
128
+ fullPages: e.state?.fullPages
129
+ }));
176
130
  }
177
131
  clearErrors();
178
132
  setGoingBack(true);
179
133
  hooks.onGoingBack(e.state ? e.state : null);
180
- if (components && pages && data && (_formState$page = formState.page) !== null && _formState$page !== void 0 && _formState$page.formData && pagePoint === undefined) {
181
- var submissionData = _utils.default.Format.form({
182
- pages: pages,
183
- components: components
184
- }, _objectSpread(_objectSpread({}, data), formState.page.formData), _models.EventTypes.SUBMIT);
134
+ if (components && pages && data && formState.page?.formData && pagePoint === undefined) {
135
+ const submissionData = _utils.default.Format.form({
136
+ pages,
137
+ components
138
+ }, {
139
+ ...data,
140
+ ...formState.page.formData
141
+ }, _models.EventTypes.SUBMIT);
185
142
  setData(submissionData);
186
143
  }
187
144
  };
188
145
 
189
146
  // Setup data.
190
- (0, _react.useEffect)(function () {
147
+ (0, _react.useEffect)(() => {
191
148
  if (components && _pages && _data && (pagePoint === 'load' || viewOnly)) {
192
- var _data$formStatus;
193
149
  setData(_utils.default.Data.setupForm(_pages, components, _data));
194
- if ((_data$formStatus = _data.formStatus) !== null && _data$formStatus !== void 0 && _data$formStatus.page) {
150
+ if (_data.formStatus?.page) {
195
151
  setPageId(_data.formStatus.page);
196
152
  }
197
153
  }
198
154
  }, [components, _pages, _data, setData, pagePoint, viewOnly]);
199
155
 
200
156
  // Setup pages.
201
- (0, _react.useEffect)(function () {
202
- setPages(_utils.default.FormPage.getAll(_pages, components, _objectSpread({}, data)));
157
+ (0, _react.useEffect)(() => {
158
+ setPages(_utils.default.FormPage.getAll(_pages, components, {
159
+ ...data
160
+ }));
203
161
  }, [components, _pages, data, setPages]);
204
162
 
205
163
  // Setup initial pageId.
206
- (0, _react.useEffect)(function () {
207
- setPageId(function (prev) {
208
- return prev || _helpers.default.getNextPageId(type, pages);
209
- });
164
+ (0, _react.useEffect)(() => {
165
+ setPageId(prev => prev || _helpers.default.getNextPageId(type, pages));
210
166
  }, [type, pages, setPageId]);
211
167
 
212
168
  // Setup hub.
213
- (0, _react.useEffect)(function () {
214
- setHub(_utils.default.Hub.get(type, _hub, components, _objectSpread({}, data)));
169
+ (0, _react.useEffect)(() => {
170
+ setHub(_utils.default.Hub.get(type, _hub, components, {
171
+ ...data
172
+ }));
215
173
  }, [type, _hub, data, components, setHub]);
216
174
 
217
175
  // Form state.
218
- (0, _react.useEffect)(function () {
219
- var _formState$page2;
176
+ (0, _react.useEffect)(() => {
220
177
  // revert formData changes if going back in hub-and-spoke
221
- if (type === _models.FormTypes.HUB && goingBack && data && (_formState$page2 = formState.page) !== null && _formState$page2 !== void 0 && _formState$page2.formData) {
222
- formState.page.formData = _objectSpread({}, data);
178
+ if (type === _models.FormTypes.HUB && goingBack && data && formState.page?.formData) {
179
+ formState.page.formData = {
180
+ ...data
181
+ };
223
182
  }
224
183
  setGoingBack(false);
225
184
  setFormState(_helpers.default.getFormState(pageId, pages, hub));
226
185
  }, [pages, hub, pageId, setFormState, type, goingBack, data, formState.page]);
227
186
 
228
187
  // Call the onFormLoad hook just when this component first renders.
229
- (0, _react.useEffect)(function () {
188
+ (0, _react.useEffect)(() => {
230
189
  setPagePoint(undefined);
231
190
  // In case of refresh the current task needs to be reset
232
- hooks.onFormLoad(function (currentTask) {
191
+ hooks.onFormLoad(currentTask => {
233
192
  setCurrentTask(currentTask);
234
193
  });
235
194
  }, [hooks]);
236
- (0, _react.useEffect)(function () {
195
+ (0, _react.useEffect)(() => {
237
196
  setHubDetails(_hub);
238
197
  }, [_hub]);
239
198
 
240
199
  // Calling setData directly within the hooks.onSubmit success handler
241
200
  // resulted in a synchronisation error. Handling it in a useEffect appears
242
201
  // to be the way to deal with this... and it certainly seems to work.
243
- (0, _react.useEffect)(function () {
244
- if (submitted !== null && submitted !== void 0 && submitted.data) {
202
+ (0, _react.useEffect)(() => {
203
+ if (submitted?.data) {
245
204
  setData(submitted.data);
246
205
  setSubmitted(undefined);
247
206
  }
248
207
  }, [submitted, setData, setSubmitted]);
249
- var theSections = _hub === null || _hub === void 0 ? void 0 : _hub.sections;
250
- var nonSequential = _hub === null || _hub === void 0 ? void 0 : _hub.nonSequential;
208
+ const theSections = _hub?.sections;
209
+ const nonSequential = _hub?.nonSequential;
251
210
  // Update task list pages with form data and update states
252
- (0, _react.useEffect)(function () {
253
- var pages = currentTask.fullPages;
211
+ (0, _react.useEffect)(() => {
212
+ const pages = currentTask.fullPages;
254
213
  if (pages) {
255
- pages.forEach(function (page) {
256
- var p = page;
214
+ pages.forEach(page => {
215
+ const p = page;
257
216
  if (p) {
258
217
  p.formData = data;
259
218
  }
260
219
  });
261
- setCurrentTask(function (prev) {
262
- return _objectSpread(_objectSpread({}, prev), {}, {
263
- fullPages: pages
264
- });
265
- });
220
+ setCurrentTask(prev => ({
221
+ ...prev,
222
+ fullPages: pages
223
+ }));
266
224
  }
267
225
  if (theSections) {
268
- var _data$formStatus2;
269
- var tasks = (data === null || data === void 0 || (_data$formStatus2 = data.formStatus) === null || _data$formStatus2 === void 0 ? void 0 : _data$formStatus2.tasks) || {};
270
- var updatedSections = _helpers.default.getUpdatedSectionStates(theSections, tasks, nonSequential, data);
271
- setHubDetails(function (prev) {
272
- return _objectSpread(_objectSpread({}, prev), {}, {
273
- sections: [].concat(updatedSections)
274
- });
275
- });
226
+ const tasks = data?.formStatus?.tasks || {};
227
+ const updatedSections = _helpers.default.getUpdatedSectionStates(theSections, tasks, nonSequential, data);
228
+ setHubDetails(prev => ({
229
+ ...prev,
230
+ sections: [].concat(updatedSections)
231
+ }));
276
232
  }
277
233
  }, [currentTask.fullPages, data, theSections, nonSequential]);
278
- var onPageChange = function onPageChange(newPageId) {
279
- var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
234
+ const onPageChange = function (newPageId) {
235
+ let state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
280
236
  clearErrors();
281
237
  setPageId(newPageId);
282
238
  hooks.onPageChange(newPageId, state);
283
239
  };
284
- (0, _react.useEffect)(function () {
240
+ (0, _react.useEffect)(() => {
285
241
  if (newPageId !== undefined) setPageId(newPageId);
286
242
  }, [newPageId]);
287
243
 
288
244
  // Handle change to form data in pages.
289
- var onChange = function onChange(data) {
245
+ const onChange = data => {
290
246
  hooks.onChange(data);
291
247
  };
292
248
 
@@ -294,70 +250,69 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
294
250
  // Passing a dataCallback allows changes to formData from the
295
251
  // CYA screen. This is necessary to allow changing the active
296
252
  // entry in page collections.
297
- var onCYARowAction = function onCYARowAction(page, dataCallback) {
298
- var _formState$page3;
253
+ const onCYARowAction = (page, dataCallback) => {
299
254
  if (typeof dataCallback === 'function') {
300
- var newData = dataCallback(_objectSpread({}, data));
255
+ const newData = dataCallback({
256
+ ...data
257
+ });
301
258
  if (newData) {
302
259
  setData(newData);
303
260
  }
304
261
  }
305
- if (((_formState$page3 = formState.page) === null || _formState$page3 === void 0 ? void 0 : _formState$page3.type) === _models.FormPages.PARTIAL_CYA && !cya.disableTaskSwitch) {
306
- hubDetails.sections.every(function (section) {
307
- return section.tasks.every(function (task) {
308
- if (task.pages.includes(page.pageId) && task.name !== currentTask.name) {
309
- (0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
310
- return false;
311
- }
312
- return true;
313
- });
314
- });
262
+ if (formState.page?.type === _models.FormPages.PARTIAL_CYA && !cya.disableTaskSwitch) {
263
+ hubDetails.sections.every(section => section.tasks.every(task => {
264
+ if (task.pages.includes(page.pageId) && task.name !== currentTask.name) {
265
+ (0, _onTaskAction.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
266
+ return false;
267
+ }
268
+ return true;
269
+ }));
315
270
  }
316
271
  if (page) {
317
272
  _handlers.default.cyaAction(page, pageId, onPageChange);
318
273
  }
319
274
  };
320
- var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
275
+ const classes = _utils.default.classBuilder(classBlock, classModifiers, className);
321
276
  if (hub === _models.HubFormats.TASK) {
322
- var currentCYA = cya;
277
+ const currentCYA = cya;
323
278
  currentCYA.actions = [_models.PageAction.TYPES.SAVE_AND_CONTINUE, _models.PageAction.TYPES.SAVE_AND_RETURN];
324
279
  }
325
280
 
326
281
  // filter out invalid attribs
327
- var _noCYA = hubDetails.noTaskCYAs,
328
- _nonSeq = hubDetails.nonSequential,
329
- taskDetails = _objectWithoutProperties(hubDetails, _excluded);
282
+ const {
283
+ noTaskCYAs: _noCYA,
284
+ nonSequential: _nonSeq,
285
+ ...taskDetails
286
+ } = hubDetails;
330
287
  return /*#__PURE__*/_react.default.createElement("div", {
331
288
  className: classes()
332
289
  }, title && !hideTitle && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
333
290
  pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
334
- }, cya, ((_formState$page4 = formState.page) === null || _formState$page4 === void 0 ? void 0 : _formState$page4.type) === _models.FormPages.PARTIAL_CYA && {
335
- actions: (_formState$page$actio = formState.page.actions) === null || _formState$page$actio === void 0 ? void 0 : _formState$page$actio.filter(function (action) {
336
- return _utils.default.Component.show(action, data);
337
- })
291
+ }, cya, formState.page?.type === _models.FormPages.PARTIAL_CYA && {
292
+ actions: formState.page.actions?.filter(action => _utils.default.Component.show(action, data))
338
293
  }, formState.cya, {
339
- onAction: function onAction(action) {
294
+ onAction: action => {
340
295
  (0, _onCYAAction.default)(setPagePoint, action, pages, validate, components, data, setData, type, pageId, currentTask, hooks, addErrors, hub, onPageChange, formState, submitting, setSubmitting);
341
296
  },
342
297
  onRowAction: onCYARowAction,
343
298
  summaryListClassModifiers: summaryListClassModifiers,
344
299
  hide_title: hideTitle,
345
- noChangeAction: (_formState$cya$hideCh = formState.cya.hideChangeActions) !== null && _formState$cya$hideCh !== void 0 ? _formState$cya$hideCh : noChangeAction,
346
- noGroupAction: (_formState$cya$hideGr = formState.cya.hideGroupActions) !== null && _formState$cya$hideGr !== void 0 ? _formState$cya$hideGr : false,
300
+ noChangeAction: formState.cya.hideChangeActions ?? noChangeAction,
301
+ noGroupAction: formState.cya.hideGroupActions ?? false,
347
302
  sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
348
303
  type: type,
349
304
  hideBlankRows: hideBlankRows
350
305
  })), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, taskDetails, {
351
306
  refNumber: data.businessKey,
352
- onTaskAction: function onTaskAction(task) {
353
- (0, _onTaskAction2.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
307
+ onTaskAction: task => {
308
+ (0, _onTaskAction.default)(task, pages, setCurrentTask, hubDetails, data, onPageChange);
354
309
  },
355
- annotations: (hubDetails === null || hubDetails === void 0 ? void 0 : hubDetails.taskListAnnotations) || [],
310
+ annotations: hubDetails?.taskListAnnotations || [],
356
311
  formData: data
357
312
  })), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
358
313
  page: formState.page,
359
314
  pages: [].concat(pages),
360
- onAction: function onAction(action, patch, patchLabel) {
315
+ onAction: (action, patch, patchLabel) => {
361
316
  (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
362
317
  },
363
318
  onChange: onChange,
@@ -369,7 +324,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
369
324
  page: formState.page,
370
325
  pages: pages,
371
326
  onCollectionChange: onChange,
372
- onAction: function onAction(action, patch, patchLabel) {
327
+ onAction: (action, patch, patchLabel) => {
373
328
  (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors, submitting, setSubmitting, errors);
374
329
  },
375
330
  hashLink: hashLink,
@@ -378,7 +333,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
378
333
  submitting: submitting
379
334
  }));
380
335
  };
381
- var propTypes = {
336
+ const propTypes = {
382
337
  classBlock: _propTypes.default.string,
383
338
  classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
384
339
  className: _propTypes.default.string,
@@ -409,7 +364,7 @@ var propTypes = {
409
364
  viewOnly: _propTypes.default.bool,
410
365
  hideBlankRows: _propTypes.default.bool
411
366
  };
412
- var defaultProps = {
367
+ const defaultProps = {
413
368
  classBlock: DEFAULT_CLASS,
414
369
  className: '',
415
370
  classModifiers: [],