@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.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 (385) hide show
  1. package/README.md +5 -0
  2. package/dist/components/CheckYourAnswers/Answer.js +12 -11
  3. package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
  6. package/dist/components/CheckYourAnswers/index.js +1 -1
  7. package/dist/components/CollectionPage/CollectionPage.js +62 -60
  8. package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
  9. package/dist/components/CollectionPage/index.js +1 -1
  10. package/dist/components/CollectionSummary/BannerStrip.js +14 -14
  11. package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
  12. package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
  14. package/dist/components/CollectionSummary/Confirmation.js +15 -13
  15. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  16. package/dist/components/CollectionSummary/RenderListView.js +34 -47
  17. package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
  18. package/dist/components/CollectionSummary/SummaryCard.js +101 -133
  19. package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
  20. package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
  21. package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
  22. package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
  23. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
  24. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
  25. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
  26. package/dist/components/CollectionSummary/index.js +1 -1
  27. package/dist/components/FormComponent/Collection.js +63 -100
  28. package/dist/components/FormComponent/Collection.test.js +907 -1080
  29. package/dist/components/FormComponent/Container.js +35 -29
  30. package/dist/components/FormComponent/Container.test.js +378 -409
  31. package/dist/components/FormComponent/FormComponent.js +59 -63
  32. package/dist/components/FormComponent/FormComponent.test.js +354 -415
  33. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  34. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  36. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  37. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  38. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  40. package/dist/components/FormComponent/helpers/index.js +5 -5
  41. package/dist/components/FormComponent/index.js +1 -1
  42. package/dist/components/FormPage/FormPage.js +70 -93
  43. package/dist/components/FormPage/FormPage.test.js +150 -202
  44. package/dist/components/FormPage/index.js +1 -1
  45. package/dist/components/FormRenderer/FormRenderer.js +131 -173
  46. package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
  47. package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
  48. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  49. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  50. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  51. package/dist/components/FormRenderer/handlers/index.js +2 -2
  52. package/dist/components/FormRenderer/handlers/navigate.js +4 -4
  53. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  54. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
  56. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  58. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
  60. package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
  61. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  62. package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
  63. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  64. package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
  65. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  66. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  67. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  68. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  70. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
  72. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
  74. package/dist/components/FormRenderer/helpers/index.js +2 -2
  75. package/dist/components/FormRenderer/index.js +1 -1
  76. package/dist/components/FormRenderer/onCYAAction.js +43 -44
  77. package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
  78. package/dist/components/FormRenderer/onPageAction.js +26 -35
  79. package/dist/components/FormRenderer/onPageAction.test.js +177 -186
  80. package/dist/components/FormRenderer/onTaskAction.js +11 -12
  81. package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
  82. package/dist/components/PageActions/ActionButton.js +14 -14
  83. package/dist/components/PageActions/ActionButton.test.js +57 -79
  84. package/dist/components/PageActions/PageActions.js +11 -11
  85. package/dist/components/PageActions/PageActions.test.js +87 -116
  86. package/dist/components/PageActions/index.js +1 -1
  87. package/dist/components/SummaryList/GroupAction.js +10 -18
  88. package/dist/components/SummaryList/GroupAction.test.js +38 -34
  89. package/dist/components/SummaryList/RowAction.js +12 -17
  90. package/dist/components/SummaryList/RowAction.test.js +38 -34
  91. package/dist/components/SummaryList/SummaryList.js +23 -25
  92. package/dist/components/SummaryList/SummaryList.test.js +162 -189
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
  94. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
  95. package/dist/components/SummaryList/SummaryListRow.js +7 -5
  96. package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  98. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  100. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
  101. package/dist/components/SummaryList/helpers/index.js +2 -2
  102. package/dist/components/SummaryList/index.js +1 -1
  103. package/dist/components/TaskList/Task.js +20 -30
  104. package/dist/components/TaskList/Task.test.js +84 -77
  105. package/dist/components/TaskList/TaskList.js +56 -79
  106. package/dist/components/TaskList/TaskList.test.js +149 -149
  107. package/dist/components/TaskList/TaskState.js +8 -6
  108. package/dist/components/TaskList/TaskState.test.js +53 -46
  109. package/dist/components/TaskList/index.js +1 -1
  110. package/dist/components/index.js +8 -8
  111. package/dist/context/HooksContext/HooksContext.js +56 -79
  112. package/dist/context/HooksContext/HooksContext.test.js +27 -36
  113. package/dist/context/HooksContext/index.js +3 -4
  114. package/dist/context/ValidationContext/ValidationContext.js +44 -95
  115. package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
  116. package/dist/context/ValidationContext/index.js +3 -4
  117. package/dist/context/index.js +3 -3
  118. package/dist/hooks/index.js +10 -11
  119. package/dist/hooks/useAxios.js +15 -41
  120. package/dist/hooks/useGetRequest.js +62 -98
  121. package/dist/hooks/useHooks.js +1 -3
  122. package/dist/hooks/useRefData.js +25 -37
  123. package/dist/hooks/useValidation.js +1 -3
  124. package/dist/index.js +14 -15
  125. package/dist/models/CollectionLabels.js +1 -1
  126. package/dist/models/ComponentTypes.js +25 -25
  127. package/dist/models/EventTypes.js +4 -4
  128. package/dist/models/FormPages.js +4 -4
  129. package/dist/models/FormTypes.js +8 -8
  130. package/dist/models/HubFormats.js +3 -3
  131. package/dist/models/PageAction.js +44 -38
  132. package/dist/models/TaskStates.js +29 -28
  133. package/dist/models/index.js +10 -10
  134. package/dist/setupTests.js +30 -31
  135. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  136. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  137. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
  138. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
  139. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
  140. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
  141. package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
  142. package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
  143. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
  144. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
  147. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
  148. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
  149. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
  150. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
  151. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
  152. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
  153. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
  154. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
  155. package/dist/utils/CheckYourAnswers/index.js +2 -2
  156. package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
  157. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
  158. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  159. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
  160. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
  161. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
  162. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
  163. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
  164. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  165. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
  166. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  167. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
  168. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  169. package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
  170. package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
  171. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
  172. package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
  173. package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
  174. package/dist/utils/CollectionPage/index.js +2 -2
  175. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
  176. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
  177. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
  178. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
  179. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  180. package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
  181. package/dist/utils/Component/addShowWhen.js +5 -6
  182. package/dist/utils/Component/addShowWhen.test.js +38 -38
  183. package/dist/utils/Component/applyToComponentTree.js +12 -15
  184. package/dist/utils/Component/applyToComponentTree.test.js +28 -31
  185. package/dist/utils/Component/cleanAttributes.js +12 -11
  186. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  187. package/dist/utils/Component/elevateNestedComponents.js +6 -6
  188. package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
  189. package/dist/utils/Component/getComponent.js +79 -85
  190. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  191. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
  192. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
  193. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
  194. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  195. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
  196. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
  197. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
  198. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  199. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  200. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  201. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
  202. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
  203. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  204. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
  205. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
  206. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
  207. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
  208. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
  209. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
  210. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  211. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  212. package/dist/utils/Component/getDefaultValue.js +7 -9
  213. package/dist/utils/Component/getDefaultValue.test.js +13 -13
  214. package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
  215. package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
  216. package/dist/utils/Component/index.js +2 -2
  217. package/dist/utils/Component/isEditable.js +2 -4
  218. package/dist/utils/Component/isEditable.test.js +14 -15
  219. package/dist/utils/Component/optionIsSelected.js +2 -4
  220. package/dist/utils/Component/optionIsSelected.test.js +12 -12
  221. package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
  222. package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
  223. package/dist/utils/Component/showComponent.js +2 -2
  224. package/dist/utils/Component/showComponent.test.js +29 -29
  225. package/dist/utils/Component/wrapInFormGroup.js +4 -4
  226. package/dist/utils/Condition/index.js +2 -2
  227. package/dist/utils/Condition/meetsAllConditions.js +9 -9
  228. package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
  229. package/dist/utils/Condition/meetsCondition.js +17 -26
  230. package/dist/utils/Condition/meetsCondition.test.js +403 -403
  231. package/dist/utils/Condition/meetsOneCondition.js +6 -6
  232. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  233. package/dist/utils/Condition/setupConditions.js +12 -15
  234. package/dist/utils/Condition/setupConditions.test.js +8 -8
  235. package/dist/utils/Container/getEditableComponents.js +4 -6
  236. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  237. package/dist/utils/Container/index.js +2 -2
  238. package/dist/utils/Container/setupNesting.js +14 -15
  239. package/dist/utils/Container/setupNesting.test.js +20 -23
  240. package/dist/utils/Container/showContainer.js +4 -8
  241. package/dist/utils/Container/showContainer.test.js +31 -31
  242. package/dist/utils/Data/applyFormula.js +30 -44
  243. package/dist/utils/Data/applyFormula.test.js +21 -21
  244. package/dist/utils/Data/deleteValues.js +4 -8
  245. package/dist/utils/Data/deleteValues.test.js +11 -11
  246. package/dist/utils/Data/getAutocompleteSource.js +19 -27
  247. package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
  248. package/dist/utils/Data/getDataPath.js +18 -28
  249. package/dist/utils/Data/getDataPath.test.js +13 -13
  250. package/dist/utils/Data/getOptions.js +35 -42
  251. package/dist/utils/Data/getOptions.test.js +37 -38
  252. package/dist/utils/Data/getSourceData.js +6 -19
  253. package/dist/utils/Data/getSourceData.test.js +85 -81
  254. package/dist/utils/Data/index.js +2 -2
  255. package/dist/utils/Data/nestInRefdataOptions.js +9 -12
  256. package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
  257. package/dist/utils/Data/refDataToOptions.js +9 -10
  258. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  259. package/dist/utils/Data/setDataItem.js +7 -8
  260. package/dist/utils/Data/setDataItem.test.js +38 -38
  261. package/dist/utils/Data/setupFormData.js +13 -20
  262. package/dist/utils/Data/setupFormData.test.js +48 -47
  263. package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
  264. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
  265. package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
  266. package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
  267. package/dist/utils/FormPage/getConditionalText.js +4 -4
  268. package/dist/utils/FormPage/getConditionalText.test.js +30 -30
  269. package/dist/utils/FormPage/getFormPage.js +12 -15
  270. package/dist/utils/FormPage/getFormPage.test.js +23 -24
  271. package/dist/utils/FormPage/getFormPages.js +8 -11
  272. package/dist/utils/FormPage/getFormPages.test.js +15 -16
  273. package/dist/utils/FormPage/getPageActions.js +10 -13
  274. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  275. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  276. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  277. package/dist/utils/FormPage/index.js +3 -5
  278. package/dist/utils/FormPage/showFormPage.js +4 -8
  279. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  280. package/dist/utils/FormPage/showFormPageCYA.js +2 -2
  281. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  282. package/dist/utils/FormPage/useComponent.js +15 -23
  283. package/dist/utils/FormPage/useComponent.test.js +49 -50
  284. package/dist/utils/Format/formatData.js +1 -1
  285. package/dist/utils/Format/formatData.test.js +19 -19
  286. package/dist/utils/Format/formatDataForComponent.js +6 -7
  287. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  288. package/dist/utils/Format/formatDataForForm.js +5 -6
  289. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  290. package/dist/utils/Format/formatDataForPage.js +4 -5
  291. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  292. package/dist/utils/Format/index.js +2 -2
  293. package/dist/utils/Hub/getFormHub.js +2 -2
  294. package/dist/utils/Hub/getFormHub.test.js +23 -24
  295. package/dist/utils/Hub/index.js +2 -2
  296. package/dist/utils/Meta/constants.js +2 -2
  297. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  298. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  299. package/dist/utils/Meta/documents/index.js +2 -2
  300. package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
  301. package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
  302. package/dist/utils/Meta/index.js +2 -2
  303. package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
  304. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  305. package/dist/utils/Operate/deleteValueInFormData.js +2 -2
  306. package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
  307. package/dist/utils/Operate/getFirstOf.js +6 -6
  308. package/dist/utils/Operate/getFirstOf.test.js +32 -32
  309. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
  310. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  311. package/dist/utils/Operate/getLength.js +9 -9
  312. package/dist/utils/Operate/getLength.test.js +19 -19
  313. package/dist/utils/Operate/index.js +2 -2
  314. package/dist/utils/Operate/persistValueInFormData.js +4 -4
  315. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  316. package/dist/utils/Operate/runPageOperations.js +8 -8
  317. package/dist/utils/Operate/runPageOperations.test.js +24 -25
  318. package/dist/utils/Operate/setValueInFormData.js +3 -3
  319. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  320. package/dist/utils/Operate/shouldRun.js +7 -7
  321. package/dist/utils/Operate/shouldRun.test.js +22 -24
  322. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
  323. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
  324. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  325. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  326. package/dist/utils/Validate/additional/index.js +8 -8
  327. package/dist/utils/Validate/additional/index.test.js +22 -22
  328. package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  330. package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
  331. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  332. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
  333. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
  334. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  336. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
  337. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  338. package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
  339. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  340. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  341. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  342. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  343. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  344. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  345. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  346. package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
  347. package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
  348. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  349. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  350. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
  351. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
  352. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  353. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  354. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  355. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  356. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  357. package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
  358. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  359. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  360. package/dist/utils/Validate/additional/utils.js +9 -22
  361. package/dist/utils/Validate/index.js +2 -2
  362. package/dist/utils/Validate/validateCollection.js +18 -23
  363. package/dist/utils/Validate/validateCollection.test.js +75 -67
  364. package/dist/utils/Validate/validateComponent.js +19 -19
  365. package/dist/utils/Validate/validateComponent.test.js +179 -154
  366. package/dist/utils/Validate/validateContainer.js +14 -17
  367. package/dist/utils/Validate/validateContainer.test.js +59 -53
  368. package/dist/utils/Validate/validateDate.js +16 -22
  369. package/dist/utils/Validate/validateDate.test.js +31 -32
  370. package/dist/utils/Validate/validateEmail.js +7 -9
  371. package/dist/utils/Validate/validateEmail.test.js +27 -27
  372. package/dist/utils/Validate/validateMultifile.js +5 -7
  373. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  374. package/dist/utils/Validate/validatePage.js +13 -18
  375. package/dist/utils/Validate/validatePage.test.js +198 -195
  376. package/dist/utils/Validate/validateRegex.js +3 -5
  377. package/dist/utils/Validate/validateRegex.test.js +15 -15
  378. package/dist/utils/Validate/validateRequired.js +4 -6
  379. package/dist/utils/Validate/validateRequired.test.js +19 -19
  380. package/dist/utils/Validate/validateTextArea.js +4 -6
  381. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  382. package/dist/utils/Validate/validateTime.js +12 -19
  383. package/dist/utils/Validate/validateTime.test.js +27 -27
  384. package/dist/utils/index.js +5 -6
  385. package/package.json +2 -4
@@ -4,20 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- 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); }
8
7
  /**
9
8
  * Adds label to target for given value.
10
9
  * @param {object} target The target to be updated.
11
10
  * @returns The updated target.
12
11
  */
13
- var addLabel = function addLabel(paramTarget, component, data) {
14
- var target = paramTarget;
12
+ const addLabel = (paramTarget, component, data) => {
13
+ const target = paramTarget;
15
14
  // target.value can be an object in which case use value in object attribute
16
- var value = _typeof(target.value) === 'object' ? target.value.value : target.value;
15
+ const value = typeof target.value === 'object' ? target.value.value : target.value;
17
16
  // find the reference data item using the value
18
- var item = data.find(function (e) {
19
- return String(e.id) === value;
20
- });
17
+ const item = data.find(e => String(e.id) === value);
21
18
  // if item is null it means that the target.value can be used as a label otherwise use item.label
22
19
  target.label = item === undefined ? target.value : item.label;
23
20
  target.component = component.cya_label;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
- var getComponentDisabled = function getComponentDisabled(disabled, formData) {
8
+ const getComponentDisabled = (disabled, formData) => {
9
9
  if (typeof disabled === 'string') {
10
10
  return !!_copReactComponents.Utils.interpolateString(disabled, formData);
11
11
  }
@@ -1,25 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _getComponentDisabled = _interopRequireDefault(require("./getComponentDisabled"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('components.FormComponent.helpers.getComponentDisabled', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('components.FormComponent.helpers.getComponentDisabled', () => {
6
+ const DATA = {
7
7
  shouldDisable: true
8
8
  };
9
- it('should return false if disabled is undefined', function () {
9
+ it('should return false if disabled is undefined', () => {
10
10
  expect((0, _getComponentDisabled.default)(undefined, DATA)).toEqual(false);
11
11
  });
12
- it('should return false if disabled is boolean false', function () {
12
+ it('should return false if disabled is boolean false', () => {
13
13
  expect((0, _getComponentDisabled.default)(false, DATA)).toEqual(false);
14
14
  });
15
- it('should return true if disabled is boolean true', function () {
15
+ it('should return true if disabled is boolean true', () => {
16
16
  expect((0, _getComponentDisabled.default)(true, DATA)).toEqual(true);
17
17
  });
18
- it('should interpolate correctly if disabled is a field path', function () {
18
+ it('should interpolate correctly if disabled is a field path', () => {
19
19
  // eslint-disable-next-line no-template-curly-in-string
20
20
  expect((0, _getComponentDisabled.default)('${shouldDisable}', DATA)).toEqual(true);
21
21
  });
22
- it('should return false if interpolating a field that does not exist', function () {
22
+ it('should return false if interpolating a field that does not exist', () => {
23
23
  // eslint-disable-next-line no-template-curly-in-string
24
24
  expect((0, _getComponentDisabled.default)('${notARealField}', DATA)).toEqual(false);
25
25
  });
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var getComponentError = function getComponentError(component, errors) {
7
+ const getComponentError = (component, errors) => {
8
8
  if (Array.isArray(errors)) {
9
- var error = errors.find(function (err) {
10
- return err.id === (component.full_path || component.id);
11
- });
9
+ const error = errors.find(err => err.id === (component.full_path || component.id));
12
10
  if (error) {
13
- var props = {
11
+ const props = {
14
12
  error: error.error
15
13
  };
16
14
  if (error.properties) {
@@ -1,47 +1,47 @@
1
1
  "use strict";
2
2
 
3
3
  var _getComponentError = _interopRequireDefault(require("./getComponentError"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('components.FormComponent.helpers.getComponentError', function () {
6
- var ALPHA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('components.FormComponent.helpers.getComponentError', () => {
6
+ const ALPHA = {
7
7
  id: 'alpha'
8
8
  };
9
- var BETA = {
9
+ const BETA = {
10
10
  id: 'beta',
11
11
  full_path: 'beta'
12
12
  };
13
- var ALPHA_ERROR = {
13
+ const ALPHA_ERROR = {
14
14
  id: ALPHA.id,
15
15
  error: 'Alpha is required'
16
16
  };
17
- var BETA_ERROR = {
17
+ const BETA_ERROR = {
18
18
  id: BETA.id,
19
19
  error: 'Year is required',
20
20
  properties: {
21
21
  year: true
22
22
  }
23
23
  };
24
- it('should return undefined if the errors array is undefined', function () {
24
+ it('should return undefined if the errors array is undefined', () => {
25
25
  expect((0, _getComponentError.default)(ALPHA, undefined)).toBeUndefined();
26
26
  });
27
- it('should return undefined if the errors array is null', function () {
27
+ it('should return undefined if the errors array is null', () => {
28
28
  expect((0, _getComponentError.default)(ALPHA, null)).toBeUndefined();
29
29
  });
30
- it('should return undefined if the errors array is empty', function () {
30
+ it('should return undefined if the errors array is empty', () => {
31
31
  expect((0, _getComponentError.default)(ALPHA, [])).toBeUndefined();
32
32
  });
33
- it('should return undefined if the errors array does not contain an error for the component', function () {
34
- var ERRORS = [BETA_ERROR];
33
+ it('should return undefined if the errors array does not contain an error for the component', () => {
34
+ const ERRORS = [BETA_ERROR];
35
35
  expect((0, _getComponentError.default)(ALPHA, ERRORS)).toBeUndefined();
36
36
  });
37
- it('should return an appropriate response if the errors array contains an error for the component', function () {
38
- var ERRORS = [ALPHA_ERROR];
37
+ it('should return an appropriate response if the errors array contains an error for the component', () => {
38
+ const ERRORS = [ALPHA_ERROR];
39
39
  expect((0, _getComponentError.default)(ALPHA, ERRORS)).toEqual({
40
40
  error: ALPHA_ERROR.error
41
41
  });
42
42
  });
43
- it('should return an appropriate response if the errors array contains an error with properties for the component', function () {
44
- var ERRORS = [BETA_ERROR];
43
+ it('should return an appropriate response if the errors array contains an error with properties for the component', () => {
44
+ const ERRORS = [BETA_ERROR];
45
45
  expect((0, _getComponentError.default)(BETA, ERRORS)).toEqual({
46
46
  error: BETA_ERROR.error,
47
47
  propsInError: BETA_ERROR.properties
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _models = require("../../../models");
8
- var SHOULD_HAVE_FIELDSET = [_models.ComponentTypes.RADIOS, _models.ComponentTypes.CHECKBOXES, _models.ComponentTypes.DATE, _models.ComponentTypes.TIME];
9
- var _default = exports.default = function _default(component) {
10
- return component.fieldset || SHOULD_HAVE_FIELDSET.includes(component.type);
11
- };
8
+ const SHOULD_HAVE_FIELDSET = [_models.ComponentTypes.RADIOS, _models.ComponentTypes.CHECKBOXES, _models.ComponentTypes.DATE, _models.ComponentTypes.TIME];
9
+ var _default = component => component.fieldset || SHOULD_HAVE_FIELDSET.includes(component.type);
10
+ exports.default = _default;
@@ -1,29 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _getComponentFieldSet = _interopRequireDefault(require("./getComponentFieldSet"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('components.FormComponent.helpers.getComponentFieldSet', function () {
6
- it('should return true for component type radios', function () {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('components.FormComponent.helpers.getComponentFieldSet', () => {
6
+ it('should return true for component type radios', () => {
7
7
  expect((0, _getComponentFieldSet.default)({
8
8
  type: 'radios'
9
9
  })).toEqual(true);
10
10
  });
11
- it('should return true for component type checkboxes', function () {
11
+ it('should return true for component type checkboxes', () => {
12
12
  expect((0, _getComponentFieldSet.default)({
13
13
  type: 'checkboxes'
14
14
  })).toEqual(true);
15
15
  });
16
- it('should return true for component type date', function () {
16
+ it('should return true for component type date', () => {
17
17
  expect((0, _getComponentFieldSet.default)({
18
18
  type: 'date'
19
19
  })).toEqual(true);
20
20
  });
21
- it('should return false for component type text', function () {
21
+ it('should return false for component type text', () => {
22
22
  expect((0, _getComponentFieldSet.default)({
23
23
  type: 'text'
24
24
  })).toEqual(false);
25
25
  });
26
- it('should return false when component type missing', function () {
26
+ it('should return false when component type missing', () => {
27
27
  expect((0, _getComponentFieldSet.default)({})).toEqual(false);
28
28
  });
29
29
  });
@@ -5,25 +5,25 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "addLabel", {
7
7
  enumerable: true,
8
- get: function get() {
8
+ get: function () {
9
9
  return _addLabel.default;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "getComponentDisabled", {
13
13
  enumerable: true,
14
- get: function get() {
14
+ get: function () {
15
15
  return _getComponentDisabled.default;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "getComponentError", {
19
19
  enumerable: true,
20
- get: function get() {
20
+ get: function () {
21
21
  return _getComponentError.default;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "getComponentFieldSet", {
25
25
  enumerable: true,
26
- get: function get() {
26
+ get: function () {
27
27
  return _getComponentFieldSet.default;
28
28
  }
29
29
  });
@@ -31,4 +31,4 @@ var _addLabel = _interopRequireDefault(require("./addLabel"));
31
31
  var _getComponentDisabled = _interopRequireDefault(require("./getComponentDisabled"));
32
32
  var _getComponentError = _interopRequireDefault(require("./getComponentError"));
33
33
  var _getComponentFieldSet = _interopRequireDefault(require("./getComponentFieldSet"));
34
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _FormComponent = _interopRequireDefault(require("./FormComponent"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  var _default = exports.default = _FormComponent.default;
@@ -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
  });
@@ -13,58 +12,46 @@ var _utils = _interopRequireDefault(require("../../utils"));
13
12
  var _FormComponent = _interopRequireDefault(require("../FormComponent"));
14
13
  var _PageActions = _interopRequireDefault(require("../PageActions"));
15
14
  require("./FormPage.scss");
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- 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); }
18
- 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; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ 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); }
17
+ 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; }
19
18
  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; }
20
19
  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; }
21
- 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; }
22
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
23
- 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); }
24
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
- 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."); }
26
- 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); }
27
- 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; }
28
- 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; } }
29
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports
20
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
21
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
22
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Global imports
30
23
  // Local imports.
31
24
  // Styles
32
- var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form__page';
33
- var FormPage = function FormPage(_ref) {
25
+ const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form__page';
26
+ const FormPage = _ref => {
34
27
  var _page$customValidatio, _formPage$actions, _page$actions;
35
- var page = _ref.page,
36
- pages = _ref.pages,
37
- _onAction = _ref.onAction,
38
- onWrapperChange = _ref.onWrapperChange,
39
- onTopLevelChange = _ref.onTopLevelChange,
40
- onChange = _ref.onChange,
41
- hashLink = _ref.hashLink,
42
- classBlock = _ref.classBlock,
43
- classModifiers = _ref.classModifiers,
44
- className = _ref.className,
45
- submitting = _ref.submitting,
46
- pageId = _ref.pageId,
47
- fromTarget = _ref.fromTarget;
48
- var _useState = (0, _react.useState)({}),
49
- _useState2 = _slicedToArray(_useState, 2),
50
- patch = _useState2[0],
51
- setPatch = _useState2[1];
52
- var _useValidation = (0, _hooks.useValidation)(),
53
- errors = _useValidation.errors,
54
- validate = _useValidation.validate;
55
- var _useState3 = (0, _react.useState)({}),
56
- _useState4 = _slicedToArray(_useState3, 2),
57
- patchLabel = _useState4[0],
58
- setPatchLabel = _useState4[1];
59
- var _useState5 = (0, _react.useState)(false),
60
- _useState6 = _slicedToArray(_useState5, 2),
61
- isPageRendered = _useState6[0],
62
- setIsPageRendered = _useState6[1];
63
- var runOnLoad = Array.isArray(page === null || page === void 0 ? void 0 : page.customValidation) && page.customValidation.length > 0 ? ((_page$customValidatio = page.customValidation[0]) === null || _page$customValidatio === void 0 || (_page$customValidatio = _page$customValidatio.runWhen) === null || _page$customValidatio === void 0 ? void 0 : _page$customValidatio.onLoad) === true : false;
64
- (0, _react.useEffect)(function () {
28
+ let {
29
+ page,
30
+ pages,
31
+ onAction,
32
+ onWrapperChange,
33
+ onTopLevelChange,
34
+ onChange,
35
+ hashLink,
36
+ classBlock,
37
+ classModifiers,
38
+ className,
39
+ submitting,
40
+ pageId,
41
+ fromTarget
42
+ } = _ref;
43
+ const [patch, setPatch] = (0, _react.useState)({});
44
+ const {
45
+ errors,
46
+ validate
47
+ } = (0, _hooks.useValidation)();
48
+ const [patchLabel, setPatchLabel] = (0, _react.useState)({});
49
+ const [isPageRendered, setIsPageRendered] = (0, _react.useState)(false);
50
+ const runOnLoad = Array.isArray(page === null || page === void 0 ? void 0 : page.customValidation) && page.customValidation.length > 0 ? ((_page$customValidatio = page.customValidation[0]) === null || _page$customValidatio === void 0 || (_page$customValidatio = _page$customValidatio.runWhen) === null || _page$customValidatio === void 0 ? void 0 : _page$customValidatio.onLoad) === true : false;
51
+ (0, _react.useEffect)(() => {
65
52
  setIsPageRendered(true);
66
53
  }, []);
67
- (0, _react.useEffect)(function () {
54
+ (0, _react.useEffect)(() => {
68
55
  if (isPageRendered && fromTarget && runOnLoad) {
69
56
  validate.page(page);
70
57
  }
@@ -75,69 +62,63 @@ var FormPage = function FormPage(_ref) {
75
62
  * This is so that the overall form data isn't affected until such
76
63
  * time as the onAction handler is invoked.
77
64
  */
78
- var onPageChange = function onPageChange(_ref2) {
79
- var target = _ref2.target;
80
- var formPage = page;
65
+ const onPageChange = _ref2 => {
66
+ let {
67
+ target
68
+ } = _ref2;
69
+ const formPage = page;
81
70
  if (target.value == null) {
82
71
  delete formPage.formData[target.name];
83
- setPatch(function (prev) {
84
- var data = prev;
72
+ setPatch(prev => {
73
+ const data = prev;
85
74
  return delete data[target.name];
86
75
  });
87
- setPatchLabel(function (prev) {
88
- var data = prev;
76
+ setPatchLabel(prev => {
77
+ const data = prev;
89
78
  return delete data[target.component];
90
79
  });
91
80
  } else {
92
81
  formPage.formData[target.name] = target.value;
93
- setPatch(function (prev) {
94
- return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, target.name, target.value));
95
- });
96
- setPatchLabel(function (prev) {
97
- return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, target.component, target.label));
98
- });
82
+ setPatch(prev => _objectSpread(_objectSpread({}, prev), {}, {
83
+ [target.name]: target.value
84
+ }));
85
+ setPatchLabel(prev => _objectSpread(_objectSpread({}, prev), {}, {
86
+ [target.component]: target.label
87
+ }));
99
88
  }
100
89
  if (typeof onChange === 'function') {
101
90
  onChange(page.formData);
102
91
  }
103
92
  };
104
- (0, _react.useEffect)(function () {
93
+ (0, _react.useEffect)(() => {
105
94
  // eslint-disable-next-line no-useless-concat
106
- var coreDocTitle = document.title.replace('Error: ', '');
95
+ const coreDocTitle = document.title.replace('Error: ', '');
107
96
  // eslint-disable-next-line prefer-template
108
97
  document.title = errors.length > 0 ? 'Error: ' + coreDocTitle : coreDocTitle;
109
98
  }, [errors]);
110
- var classes = _utils.default.classBuilder(classBlock, classModifiers, className);
111
- var formPage = page;
112
- formPage.actions = (_formPage$actions = formPage.actions) === null || _formPage$actions === void 0 ? void 0 : _formPage$actions.map(function (action) {
113
- return action.label ? _objectSpread(_objectSpread({}, action), {}, {
114
- label: _utils.default.interpolateString(action.label, formPage.formData)
115
- }) : action;
116
- });
99
+ const classes = _utils.default.classBuilder(classBlock, classModifiers, className);
100
+ const formPage = page;
101
+ formPage.actions = (_formPage$actions = formPage.actions) === null || _formPage$actions === void 0 ? void 0 : _formPage$actions.map(action => action.label ? _objectSpread(_objectSpread({}, action), {}, {
102
+ label: _utils.default.interpolateString(action.label, formPage.formData)
103
+ }) : action);
117
104
  formPage.formData = _utils.default.Operate.runPageOperations(formPage, _objectSpread(_objectSpread({}, formPage.formData), patch), onWrapperChange || onPageChange);
118
- var headingContent = page.title ? /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, _utils.default.FormPage.getTitle(page.title, page.formData)) : /*#__PURE__*/_react.default.createElement(_copReactComponents.Label, {
105
+ const headingContent = page.title ? /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, _utils.default.FormPage.getTitle(page.title, page.formData)) : /*#__PURE__*/_react.default.createElement(_copReactComponents.Label, {
119
106
  id: page.id,
120
107
  required: page.required,
121
108
  hideOptionalSuffix: page.hideOptionalSuffix
122
109
  }, page.label);
123
- var formComponentContent = page.components.filter(function (c) {
124
- return _utils.default.Component.show(c, page.formData);
125
- }).map(function (component, index) {
126
- return /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
127
- key: index,
128
- component: component,
129
- onAction: function onAction(action) {
130
- return _onAction(action, patch, patchLabel);
131
- },
132
- onChange: onWrapperChange || onPageChange,
133
- onTopLevelChange: onTopLevelChange || onPageChange,
134
- value: page.formData[component.fieldId] || patch[component.fieldId],
135
- formData: page.formData,
136
- pages: pages,
137
- submitting: submitting
138
- });
139
- });
140
- var errorMessages = null;
110
+ const formComponentContent = page.components.filter(c => _utils.default.Component.show(c, page.formData)).map((component, index) => /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
111
+ key: index,
112
+ component: component,
113
+ onAction: action => onAction(action, patch, patchLabel),
114
+ onChange: onWrapperChange || onPageChange,
115
+ onTopLevelChange: onTopLevelChange || onPageChange,
116
+ value: page.formData[component.fieldId] || patch[component.fieldId],
117
+ formData: page.formData,
118
+ pages: pages,
119
+ submitting: submitting
120
+ }));
121
+ let errorMessages = null;
141
122
  if (runOnLoad && (errors === null || errors === void 0 ? void 0 : errors.length) > 0) {
142
123
  var _page$customValidatio2;
143
124
  errorMessages = [{
@@ -157,12 +138,8 @@ var FormPage = function FormPage(_ref) {
157
138
  }, /*#__PURE__*/_react.default.createElement("legend", {
158
139
  className: "govuk-fieldset__legend"
159
140
  }, headingContent), formComponentContent), !page.fieldset && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, headingContent, formComponentContent), /*#__PURE__*/_react.default.createElement(_PageActions.default, {
160
- actions: (_page$actions = page.actions) === null || _page$actions === void 0 ? void 0 : _page$actions.filter(function (action) {
161
- return _utils.default.Component.show(action, page.formData);
162
- }),
163
- onAction: function onAction(action) {
164
- return _onAction(action, patch, patchLabel);
165
- }
141
+ actions: (_page$actions = page.actions) === null || _page$actions === void 0 ? void 0 : _page$actions.filter(action => _utils.default.Component.show(action, page.formData)),
142
+ onAction: action => onAction(action, patch, patchLabel)
166
143
  }));
167
144
  };
168
145
  FormPage.propTypes = {