@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +143 -105
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +942 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +131 -102
  10. package/dist/components/CollectionSummary/CollectionSummary.scss +5 -0
  11. package/dist/components/CollectionSummary/CollectionSummary.test.js +233 -173
  12. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  13. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  14. package/dist/components/CollectionSummary/RenderListView.js +57 -48
  15. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  16. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  17. package/dist/components/CollectionSummary/SummaryCard.js +156 -112
  18. package/dist/components/CollectionSummary/SummaryCard.scss +6 -0
  19. package/dist/components/CollectionSummary/SummaryCard.test.js +1023 -934
  20. package/dist/components/CollectionSummary/SummaryCardDetails.js +138 -94
  21. package/dist/components/CollectionSummary/SummaryCardDetails.scss +15 -4
  22. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  23. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  24. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  25. package/dist/components/FormComponent/Collection.js +108 -74
  26. package/dist/components/FormComponent/Collection.test.js +1081 -909
  27. package/dist/components/FormComponent/Container.js +39 -40
  28. package/dist/components/FormComponent/Container.test.js +412 -312
  29. package/dist/components/FormComponent/FormComponent.js +73 -70
  30. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  31. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  32. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  33. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  34. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  35. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  36. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  37. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  38. package/dist/components/FormComponent/helpers/index.js +4 -4
  39. package/dist/components/FormPage/FormPage.js +93 -66
  40. package/dist/components/FormPage/FormPage.test.js +163 -127
  41. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  42. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  43. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  44. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  45. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  46. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  47. package/dist/components/FormRenderer/handlers/index.js +1 -1
  48. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  49. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  50. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  51. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  52. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  53. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  54. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +39 -22
  55. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +74 -16
  56. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  57. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  58. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  59. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  60. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  61. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  62. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  63. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  64. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  65. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  66. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  67. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  68. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  69. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  70. package/dist/components/FormRenderer/helpers/index.js +1 -1
  71. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  72. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  73. package/dist/components/FormRenderer/onPageAction.js +44 -44
  74. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  75. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  76. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  77. package/dist/components/PageActions/ActionButton.js +15 -12
  78. package/dist/components/PageActions/ActionButton.test.js +78 -56
  79. package/dist/components/PageActions/PageActions.js +10 -10
  80. package/dist/components/PageActions/PageActions.test.js +115 -86
  81. package/dist/components/SummaryList/GroupAction.js +17 -9
  82. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  83. package/dist/components/SummaryList/RowAction.js +16 -11
  84. package/dist/components/SummaryList/RowAction.test.js +33 -37
  85. package/dist/components/SummaryList/SummaryList.js +34 -21
  86. package/dist/components/SummaryList/SummaryList.scss +15 -0
  87. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  88. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  89. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  90. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  91. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  92. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  93. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  96. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  97. package/dist/components/SummaryList/helpers/index.js +1 -1
  98. package/dist/components/TaskList/Task.js +29 -19
  99. package/dist/components/TaskList/Task.test.js +76 -83
  100. package/dist/components/TaskList/TaskList.js +92 -49
  101. package/dist/components/TaskList/TaskList.scss +24 -0
  102. package/dist/components/TaskList/TaskList.test.js +255 -113
  103. package/dist/components/TaskList/TaskState.js +5 -7
  104. package/dist/components/TaskList/TaskState.test.js +45 -52
  105. package/dist/components/index.js +7 -7
  106. package/dist/context/HooksContext/HooksContext.js +80 -57
  107. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  108. package/dist/context/HooksContext/index.js +4 -3
  109. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  110. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  111. package/dist/context/ValidationContext/index.js +4 -3
  112. package/dist/context/index.js +2 -2
  113. package/dist/hooks/index.js +10 -9
  114. package/dist/hooks/useAxios.js +40 -14
  115. package/dist/hooks/useGetRequest.js +97 -61
  116. package/dist/hooks/useHooks.js +3 -1
  117. package/dist/hooks/useRefData.js +39 -26
  118. package/dist/hooks/useValidation.js +3 -1
  119. package/dist/index.js +14 -13
  120. package/dist/json/actions.json +17 -0
  121. package/dist/json/actionsNoSave.json +17 -0
  122. package/dist/models/CollectionLabels.js +1 -1
  123. package/dist/models/ComponentTypes.js +25 -25
  124. package/dist/models/EventTypes.js +4 -4
  125. package/dist/models/FormPages.js +4 -4
  126. package/dist/models/FormTypes.js +8 -8
  127. package/dist/models/HubFormats.js +3 -3
  128. package/dist/models/PageAction.js +38 -44
  129. package/dist/models/TaskStates.js +28 -29
  130. package/dist/models/index.js +9 -9
  131. package/dist/setupTests.js +31 -30
  132. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  133. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  134. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  136. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  138. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  139. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  140. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  142. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +113 -89
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +320 -162
  146. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  148. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  150. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  151. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  152. package/dist/utils/CheckYourAnswers/index.js +1 -1
  153. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  155. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  157. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  159. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  161. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  163. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  165. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  166. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  167. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  168. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  169. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  170. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  171. package/dist/utils/CollectionPage/index.js +1 -1
  172. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  173. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  174. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  176. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  178. package/dist/utils/Component/addShowWhen.js +8 -4
  179. package/dist/utils/Component/addShowWhen.test.js +37 -37
  180. package/dist/utils/Component/applyToComponentTree.js +18 -18
  181. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  182. package/dist/utils/Component/cleanAttributes.js +13 -10
  183. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  184. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  185. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  186. package/dist/utils/Component/getComponent.js +94 -88
  187. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  188. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  189. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  190. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  191. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  192. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  193. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  194. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  195. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  196. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  197. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  199. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  200. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  202. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  203. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  204. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  205. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  206. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  207. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  208. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  209. package/dist/utils/Component/getDefaultValue.js +8 -6
  210. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  211. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  212. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  213. package/dist/utils/Component/index.js +1 -1
  214. package/dist/utils/Component/isEditable.js +4 -2
  215. package/dist/utils/Component/isEditable.test.js +15 -14
  216. package/dist/utils/Component/optionIsSelected.js +6 -1
  217. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  218. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  219. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  220. package/dist/utils/Component/showComponent.js +1 -1
  221. package/dist/utils/Component/showComponent.test.js +28 -28
  222. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  223. package/dist/utils/Condition/index.js +1 -1
  224. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  225. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  226. package/dist/utils/Condition/meetsCondition.js +25 -16
  227. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  228. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  229. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  230. package/dist/utils/Condition/setupConditions.js +18 -13
  231. package/dist/utils/Condition/setupConditions.test.js +7 -7
  232. package/dist/utils/Container/getEditableComponents.js +5 -3
  233. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  234. package/dist/utils/Container/index.js +1 -1
  235. package/dist/utils/Container/setupNesting.js +20 -16
  236. package/dist/utils/Container/setupNesting.test.js +30 -27
  237. package/dist/utils/Container/showContainer.js +7 -3
  238. package/dist/utils/Container/showContainer.test.js +30 -30
  239. package/dist/utils/Data/applyFormula.js +48 -38
  240. package/dist/utils/Data/applyFormula.test.js +20 -20
  241. package/dist/utils/Data/deleteValues.js +22 -0
  242. package/dist/utils/Data/deleteValues.test.js +57 -0
  243. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  244. package/dist/utils/Data/getAutocompleteSource.test.js +100 -85
  245. package/dist/utils/Data/getDataPath.js +28 -18
  246. package/dist/utils/Data/getDataPath.test.js +12 -12
  247. package/dist/utils/Data/getOptions.js +31 -24
  248. package/dist/utils/Data/getOptions.test.js +53 -35
  249. package/dist/utils/Data/getSourceData.js +19 -6
  250. package/dist/utils/Data/getSourceData.test.js +80 -84
  251. package/dist/utils/Data/index.js +3 -1
  252. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  253. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  254. package/dist/utils/Data/refDataToOptions.js +13 -10
  255. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  256. package/dist/utils/Data/setDataItem.js +8 -7
  257. package/dist/utils/Data/setDataItem.test.js +37 -37
  258. package/dist/utils/Data/setupFormData.js +21 -13
  259. package/dist/utils/Data/setupFormData.test.js +50 -51
  260. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  261. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  262. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  263. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  264. package/dist/utils/FormPage/getConditionalText.js +3 -3
  265. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  266. package/dist/utils/FormPage/getFormPage.js +16 -15
  267. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  268. package/dist/utils/FormPage/getFormPages.js +12 -7
  269. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  270. package/dist/utils/FormPage/getPageActions.js +15 -9
  271. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  272. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  273. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  274. package/dist/utils/FormPage/index.js +4 -2
  275. package/dist/utils/FormPage/showFormPage.js +7 -3
  276. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  277. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  278. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  279. package/dist/utils/FormPage/useComponent.js +28 -21
  280. package/dist/utils/FormPage/useComponent.test.js +79 -77
  281. package/dist/utils/Format/formatData.js +1 -1
  282. package/dist/utils/Format/formatData.test.js +18 -18
  283. package/dist/utils/Format/formatDataForComponent.js +6 -5
  284. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  285. package/dist/utils/Format/formatDataForForm.js +8 -6
  286. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  287. package/dist/utils/Format/formatDataForPage.js +5 -4
  288. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  289. package/dist/utils/Format/index.js +1 -1
  290. package/dist/utils/Hub/getFormHub.js +1 -1
  291. package/dist/utils/Hub/getFormHub.test.js +31 -28
  292. package/dist/utils/Hub/index.js +1 -1
  293. package/dist/utils/Meta/constants.js +2 -2
  294. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  295. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  296. package/dist/utils/Meta/documents/index.js +1 -1
  297. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  298. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  299. package/dist/utils/Meta/index.js +1 -1
  300. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  301. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  302. package/dist/utils/Operate/deleteValueInFormData.js +26 -0
  303. package/dist/utils/Operate/deleteValueInFormData.test.js +60 -0
  304. package/dist/utils/Operate/getFirstOf.js +5 -5
  305. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  306. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  307. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  308. package/dist/utils/Operate/getLength.js +50 -0
  309. package/dist/utils/Operate/getLength.test.js +89 -0
  310. package/dist/utils/Operate/index.js +1 -1
  311. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  312. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  313. package/dist/utils/Operate/runPageOperations.js +11 -7
  314. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  315. package/dist/utils/Operate/setValueInFormData.js +2 -2
  316. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  317. package/dist/utils/Operate/shouldRun.js +6 -6
  318. package/dist/utils/Operate/shouldRun.test.js +27 -21
  319. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  320. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  321. package/dist/utils/Validate/additional/index.js +10 -7
  322. package/dist/utils/Validate/additional/index.test.js +78 -12
  323. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  325. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  326. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  327. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  328. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  329. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  330. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  331. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  333. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  334. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  335. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  336. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  337. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  338. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  339. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  340. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  341. package/dist/utils/Validate/additional/mustBeOneOf.js +21 -0
  342. package/dist/utils/Validate/additional/mustBeOneOf.test.js +36 -0
  343. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  344. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  345. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  346. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  347. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  348. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  349. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  350. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  351. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  352. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  353. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  354. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  355. package/dist/utils/Validate/additional/utils.js +22 -9
  356. package/dist/utils/Validate/index.js +1 -1
  357. package/dist/utils/Validate/validateCollection.js +25 -19
  358. package/dist/utils/Validate/validateCollection.test.js +66 -74
  359. package/dist/utils/Validate/validateComponent.js +21 -18
  360. package/dist/utils/Validate/validateComponent.test.js +176 -166
  361. package/dist/utils/Validate/validateContainer.js +20 -15
  362. package/dist/utils/Validate/validateContainer.test.js +52 -58
  363. package/dist/utils/Validate/validateDate.js +21 -15
  364. package/dist/utils/Validate/validateDate.test.js +32 -31
  365. package/dist/utils/Validate/validateEmail.js +8 -6
  366. package/dist/utils/Validate/validateEmail.test.js +25 -25
  367. package/dist/utils/Validate/validateMultifile.js +7 -5
  368. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  369. package/dist/utils/Validate/validatePage.js +22 -19
  370. package/dist/utils/Validate/validatePage.test.js +203 -215
  371. package/dist/utils/Validate/validateRegex.js +5 -3
  372. package/dist/utils/Validate/validateRegex.test.js +14 -14
  373. package/dist/utils/Validate/validateRequired.js +6 -4
  374. package/dist/utils/Validate/validateRequired.test.js +18 -18
  375. package/dist/utils/Validate/validateTextArea.js +6 -4
  376. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  377. package/dist/utils/Validate/validateTime.js +26 -11
  378. package/dist/utils/Validate/validateTime.test.js +62 -16
  379. package/dist/utils/index.js +9 -7
  380. package/package.json +2 -2
  381. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  382. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -2,26 +2,26 @@
2
2
 
3
3
  var _getConditionalText = _interopRequireDefault(require("./getConditionalText"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils.FormPage.getConditionalText', () => {
6
- const FORM_DATA = {
5
+ describe('utils.FormPage.getConditionalText', function () {
6
+ var FORM_DATA = {
7
7
  testField: 'Alpha',
8
8
  testField2: 'yes'
9
9
  };
10
- it('should return null if no options are provided', () => {
11
- const result = (0, _getConditionalText.default)(null, FORM_DATA);
10
+ it('should return null if no options are provided', function () {
11
+ var result = (0, _getConditionalText.default)(null, FORM_DATA);
12
12
  expect(result).toEqual(null);
13
13
  });
14
- it('should return the option if it\'s just a string', () => {
15
- const result = (0, _getConditionalText.default)('abc123', FORM_DATA);
14
+ it('should return the option if it\'s just a string', function () {
15
+ var result = (0, _getConditionalText.default)('abc123', FORM_DATA);
16
16
  expect(result).toEqual('abc123');
17
17
  });
18
- it('should return a correctly interpolated string', () => {
18
+ it('should return a correctly interpolated string', function () {
19
19
  // eslint-disable-next-line no-template-curly-in-string
20
- const result = (0, _getConditionalText.default)('${testField} string', FORM_DATA);
20
+ var result = (0, _getConditionalText.default)('${testField} string', FORM_DATA);
21
21
  expect(result).toEqual("".concat(FORM_DATA.testField, " string"));
22
22
  });
23
- it('should return the option that has it\'s conditions met', () => {
24
- const OPTIONS = [{
23
+ it('should return the option that has it\'s conditions met', function () {
24
+ var OPTIONS = [{
25
25
  text: 'Text A',
26
26
  show_when: [{
27
27
  field: 'testField2',
@@ -36,11 +36,11 @@ describe('utils.FormPage.getConditionalText', () => {
36
36
  value: 'yes'
37
37
  }]
38
38
  }];
39
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
39
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
40
40
  expect(result).toEqual('Text B');
41
41
  });
42
- it('should return a plain string option if one is encountered in the array', () => {
43
- const OPTIONS = [{
42
+ it('should return a plain string option if one is encountered in the array', function () {
43
+ var OPTIONS = [{
44
44
  text: 'Text A',
45
45
  show_when: [{
46
46
  field: 'testField2',
@@ -55,11 +55,11 @@ describe('utils.FormPage.getConditionalText', () => {
55
55
  value: 'notTheValue'
56
56
  }]
57
57
  }, "Default text"];
58
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
58
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
59
59
  expect(result).toEqual('Default text');
60
60
  });
61
- it('should correctly interpolate a plain string option in the array', () => {
62
- const OPTIONS = [{
61
+ it('should correctly interpolate a plain string option in the array', function () {
62
+ var OPTIONS = [{
63
63
  text: 'Text A',
64
64
  show_when: [{
65
65
  field: 'testField2',
@@ -76,11 +76,11 @@ describe('utils.FormPage.getConditionalText', () => {
76
76
  },
77
77
  // eslint-disable-next-line no-template-curly-in-string
78
78
  "${testField} text"];
79
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
79
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
80
80
  expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
81
81
  });
82
- it('should correctly interpolate a conditional option', () => {
83
- const OPTIONS = [{
82
+ it('should correctly interpolate a conditional option', function () {
83
+ var OPTIONS = [{
84
84
  text: 'Text A',
85
85
  show_when: [{
86
86
  field: 'testField2',
@@ -96,11 +96,11 @@ describe('utils.FormPage.getConditionalText', () => {
96
96
  value: 'yes'
97
97
  }]
98
98
  }];
99
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
99
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
100
100
  expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
101
101
  });
102
- it('should correctly use a conditional option', () => {
103
- const OPTIONS = [{
102
+ it('should correctly use a conditional option', function () {
103
+ var OPTIONS = [{
104
104
  text: 'Text A',
105
105
  show_when: [{
106
106
  field: 'testField2',
@@ -116,11 +116,11 @@ describe('utils.FormPage.getConditionalText', () => {
116
116
  value: 'yes'
117
117
  }]
118
118
  }];
119
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
119
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA);
120
120
  expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
121
121
  });
122
- it('should correctly use a different key to find the text if one is provided', () => {
123
- const OPTIONS = [{
122
+ it('should correctly use a different key to find the text if one is provided', function () {
123
+ var OPTIONS = [{
124
124
  customKey: 'Text A',
125
125
  show_when: [{
126
126
  field: 'testField2',
@@ -136,11 +136,11 @@ describe('utils.FormPage.getConditionalText', () => {
136
136
  value: 'yes'
137
137
  }]
138
138
  }];
139
- const result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA, 'customKey');
139
+ var result = (0, _getConditionalText.default)(OPTIONS, FORM_DATA, 'customKey');
140
140
  expect(result).toEqual("".concat(FORM_DATA.testField, " text"));
141
141
  });
142
- it('should return null for a conditional option if formData is empty', () => {
143
- const OPTIONS = [{
142
+ it('should return null for a conditional option if formData is empty', function () {
143
+ var OPTIONS = [{
144
144
  text: 'Text A',
145
145
  show_when: [{
146
146
  field: 'testField2',
@@ -156,7 +156,7 @@ describe('utils.FormPage.getConditionalText', () => {
156
156
  value: 'yes'
157
157
  }]
158
158
  }];
159
- const result = (0, _getConditionalText.default)(OPTIONS, {});
159
+ var result = (0, _getConditionalText.default)(OPTIONS, {});
160
160
  expect(result).toEqual(null);
161
161
  });
162
162
  });
@@ -10,8 +10,12 @@ var _getPageActions = _interopRequireDefault(require("./getPageActions"));
10
10
  var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
11
11
  var _useComponent = _interopRequireDefault(require("./useComponent"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- // Local imports
14
-
13
+ 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); }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
18
+ 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); } // Local imports
15
19
  /**
16
20
  * Converts a page object defined in the JSON to a page object for rendering.
17
21
  * @param {object} pageOptions The JSON page.
@@ -19,30 +23,27 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
23
  * @param {object} formData The top-level form data, used for setting up components.
20
24
  * @returns A page object for rendering.
21
25
  */
22
- const getFormPage = (pageOptions, formComponents, formData) => {
26
+ var getFormPage = function getFormPage(pageOptions, formComponents, formData) {
23
27
  if (!pageOptions) {
24
28
  return null;
25
29
  }
26
- const components = pageOptions.components.map(componentOptions => {
30
+ var components = pageOptions.components.map(function (componentOptions) {
27
31
  if (typeof componentOptions === 'string') {
28
32
  return (0, _getParagraphFromText.default)(componentOptions);
29
33
  }
30
- let ret;
34
+ var ret;
31
35
  if (componentOptions.use) {
32
36
  ret = (0, _useComponent.default)(componentOptions, formComponents);
33
37
  } else {
34
- ret = {
35
- ...componentOptions
36
- };
38
+ ret = _objectSpread({}, componentOptions);
37
39
  }
38
40
  return formData ? _Data.default.refData.setupUrl(ret, formData) : ret;
39
41
  });
40
- const actions = (0, _getPageActions.default)(pageOptions);
41
- return _Container.default.setup({
42
- ...pageOptions,
43
- formData,
44
- components,
45
- actions
46
- });
42
+ var actions = (0, _getPageActions.default)(pageOptions);
43
+ return _Container.default.setup(_objectSpread(_objectSpread({}, pageOptions), {}, {
44
+ formData: formData,
45
+ components: components,
46
+ actions: actions
47
+ }));
47
48
  };
48
49
  var _default = exports.default = getFormPage;
@@ -2,12 +2,16 @@
2
2
 
3
3
  var _getFormPage = _interopRequireDefault(require("./getFormPage"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- // Local imports
6
-
7
- describe('utils', () => {
8
- describe('FormPage', () => {
9
- describe('getFormPage', () => {
10
- const FORM_COMPONENTS = [{
5
+ 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); }
6
+ 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; }
7
+ 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; }
8
+ 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; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ 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); } // Local imports
11
+ describe('utils', function () {
12
+ describe('FormPage', function () {
13
+ describe('getFormPage', function () {
14
+ var FORM_COMPONENTS = [{
11
15
  id: 'a',
12
16
  fieldId: 'a',
13
17
  label: 'Alpha',
@@ -42,17 +46,17 @@ describe('utils', () => {
42
46
  label: 'Bravo ${currentUser.surname}',
43
47
  type: 'text'
44
48
  }];
45
- const FORM_DATA = {
49
+ var FORM_DATA = {
46
50
  urls: {
47
51
  refData: 'https://ho.gov.uk/ref-data/'
48
52
  }
49
53
  };
50
- it('should handle null or undefined pageOptions', () => {
54
+ it('should handle null or undefined pageOptions', function () {
51
55
  expect((0, _getFormPage.default)(null, FORM_COMPONENTS, FORM_DATA)).toBeNull();
52
56
  expect((0, _getFormPage.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toBeNull();
53
57
  });
54
- it('should handle a page not using any form components', () => {
55
- const PAGE = {
58
+ it('should handle a page not using any form components', function () {
59
+ var PAGE = {
56
60
  title: 'Page',
57
61
  components: [{
58
62
  type: 'heading',
@@ -66,8 +70,8 @@ describe('utils', () => {
66
70
  formData: FORM_DATA
67
71
  });
68
72
  });
69
- it('should handle a page with inline strings and convert them to paragraphs', () => {
70
- const PAGE = {
73
+ it('should handle a page with inline strings and convert them to paragraphs', function () {
74
+ var PAGE = {
71
75
  title: 'Page',
72
76
  components: ["Opening paragraph", {
73
77
  type: 'heading',
@@ -81,10 +85,9 @@ describe('utils', () => {
81
85
  type: 'html',
82
86
  tagName: 'p',
83
87
  content: PAGE.components[0]
84
- }, {
85
- ...PAGE.components[1],
88
+ }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
86
89
  full_path: PAGE.components[1].fieldId
87
- }, {
90
+ }), {
88
91
  type: 'html',
89
92
  tagName: 'p',
90
93
  content: PAGE.components[2]
@@ -92,8 +95,8 @@ describe('utils', () => {
92
95
  formData: FORM_DATA
93
96
  });
94
97
  });
95
- it('should handle a page that references a form-level component', () => {
96
- const PAGE = {
98
+ it('should handle a page that references a form-level component', function () {
99
+ var PAGE = {
97
100
  title: 'Page',
98
101
  components: ["Opening paragraph", {
99
102
  type: 'heading',
@@ -103,31 +106,30 @@ describe('utils', () => {
103
106
  use: 'a'
104
107
  }]
105
108
  };
106
- const A = FORM_COMPONENTS[0];
109
+ var A = FORM_COMPONENTS[0];
107
110
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
108
111
  title: PAGE.title,
109
112
  components: [{
110
113
  type: 'html',
111
114
  tagName: 'p',
112
115
  content: PAGE.components[0]
113
- }, {
114
- ...PAGE.components[1],
116
+ }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
115
117
  full_path: PAGE.components[1].fieldId
116
- }, {
118
+ }), {
117
119
  type: 'html',
118
120
  tagName: 'p',
119
121
  content: PAGE.components[2]
120
- }, {
121
- use: 'a',
122
- ...A,
122
+ }, _objectSpread(_objectSpread({
123
+ use: 'a'
124
+ }, A), {}, {
123
125
  cya_label: A.label,
124
126
  full_path: A.fieldId
125
- }],
127
+ })],
126
128
  formData: FORM_DATA
127
129
  });
128
130
  });
129
- it('should handle a page that references a form-level component with a data url', () => {
130
- const PAGE = {
131
+ it('should handle a page that references a form-level component with a data url', function () {
132
+ var PAGE = {
131
133
  title: 'Page',
132
134
  components: ["Opening paragraph", {
133
135
  type: 'heading',
@@ -137,34 +139,33 @@ describe('utils', () => {
137
139
  use: 'c'
138
140
  }]
139
141
  };
140
- const C = FORM_COMPONENTS[2];
142
+ var C = FORM_COMPONENTS[2];
141
143
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
142
144
  title: PAGE.title,
143
145
  components: [{
144
146
  type: 'html',
145
147
  tagName: 'p',
146
148
  content: PAGE.components[0]
147
- }, {
148
- ...PAGE.components[1],
149
+ }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
149
150
  full_path: PAGE.components[1].fieldId
150
- }, {
151
+ }), {
151
152
  type: 'html',
152
153
  tagName: 'p',
153
154
  content: PAGE.components[2]
154
- }, {
155
- use: 'c',
156
- ...C,
155
+ }, _objectSpread(_objectSpread({
156
+ use: 'c'
157
+ }, C), {}, {
157
158
  cya_label: C.label,
158
159
  data: {
159
160
  url: "".concat(FORM_DATA.urls.refData, "/v3/charlies")
160
161
  },
161
162
  full_path: C.fieldId
162
- }],
163
+ })],
163
164
  formData: FORM_DATA
164
165
  });
165
166
  });
166
- it('should handle a page that references a form-level component with a data url without an environment context', () => {
167
- const PAGE = {
167
+ it('should handle a page that references a form-level component with a data url without an environment context', function () {
168
+ var PAGE = {
168
169
  title: 'Page',
169
170
  components: ["Opening paragraph", {
170
171
  type: 'heading',
@@ -174,31 +175,29 @@ describe('utils', () => {
174
175
  use: 'c'
175
176
  }]
176
177
  };
177
- const C = FORM_COMPONENTS[2];
178
+ var C = FORM_COMPONENTS[2];
178
179
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, {})).toEqual({
179
180
  title: PAGE.title,
180
181
  components: [{
181
182
  type: 'html',
182
183
  tagName: 'p',
183
184
  content: PAGE.components[0]
184
- }, {
185
- ...PAGE.components[1],
185
+ }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
186
186
  full_path: PAGE.components[1].fieldId
187
- }, {
187
+ }), {
188
188
  type: 'html',
189
189
  tagName: 'p',
190
190
  content: PAGE.components[2]
191
- },
192
- // eslint-disable-next-line no-template-curly-in-string
193
- {
194
- use: 'c',
195
- ...C,
191
+ }, // eslint-disable-next-line no-template-curly-in-string
192
+ _objectSpread(_objectSpread({
193
+ use: 'c'
194
+ }, C), {}, {
196
195
  cya_label: C.label,
197
196
  full_path: C.fieldId,
198
197
  data: {
199
198
  url: '/v3/charlies'
200
199
  }
201
- }],
200
+ })],
202
201
  formData: {}
203
202
  });
204
203
  });
@@ -6,8 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _getFormPage = _interopRequireDefault(require("./getFormPage"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- // Local imports
10
-
9
+ 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); }
10
+ 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; }
11
+ 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; }
12
+ 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; }
13
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
+ 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); } // Local imports
11
15
  /**
12
16
  * Converts pages objects defined in the JSON to page objects for rendering.
13
17
  * @param {Array} pages The JSON pages.
@@ -15,12 +19,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
19
  * @param {object} formData The top-level form data, used for setting up components.
16
20
  * @returns An array of page objects for rendering.
17
21
  */
18
- const getFormPages = (pages, components, formData) => {
22
+ var getFormPages = function getFormPages(pages, components, formData) {
19
23
  if (Array.isArray(pages)) {
20
- return pages.map((options, index) => ({
21
- ...(0, _getFormPage.default)(options, components, formData),
22
- index
23
- }));
24
+ return pages.map(function (options, index) {
25
+ return _objectSpread(_objectSpread({}, (0, _getFormPage.default)(options, components, formData)), {}, {
26
+ index: index
27
+ });
28
+ });
24
29
  }
25
30
  return [];
26
31
  };
@@ -2,12 +2,16 @@
2
2
 
3
3
  var _getFormPages = _interopRequireDefault(require("./getFormPages"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- // Local imports
6
-
7
- describe('utils', () => {
8
- describe('FormPage', () => {
9
- describe('getFormPages', () => {
10
- const FORM_COMPONENTS = [{
5
+ 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); }
6
+ 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; }
7
+ 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; }
8
+ 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; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ 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); } // Local imports
11
+ describe('utils', function () {
12
+ describe('FormPage', function () {
13
+ describe('getFormPages', function () {
14
+ var FORM_COMPONENTS = [{
11
15
  id: 'a',
12
16
  fieldId: 'a',
13
17
  label: 'Alpha',
@@ -28,17 +32,17 @@ describe('utils', () => {
28
32
  url: '${urls.refData}/v3/charlies'
29
33
  }
30
34
  }];
31
- const FORM_DATA = {
35
+ var FORM_DATA = {
32
36
  urls: {
33
37
  refData: 'https://ho.gov.uk/ref-data/'
34
38
  }
35
39
  };
36
- it('should handle null or undefined pageOptions', () => {
40
+ it('should handle null or undefined pageOptions', function () {
37
41
  expect((0, _getFormPages.default)(null, FORM_COMPONENTS, FORM_DATA)).toEqual([]);
38
42
  expect((0, _getFormPages.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toEqual([]);
39
43
  });
40
- it('should appropriately set up multiples pages with various configurations', () => {
41
- const PAGE_1 = {
44
+ it('should appropriately set up multiples pages with various configurations', function () {
45
+ var PAGE_1 = {
42
46
  title: 'Page 1',
43
47
  components: [{
44
48
  type: 'heading',
@@ -46,7 +50,7 @@ describe('utils', () => {
46
50
  content: 'Page heading'
47
51
  }]
48
52
  };
49
- const PAGE_2 = {
53
+ var PAGE_2 = {
50
54
  title: 'Page 2',
51
55
  components: ["Opening paragraph", {
52
56
  type: 'heading',
@@ -56,8 +60,8 @@ describe('utils', () => {
56
60
  use: 'c'
57
61
  }]
58
62
  };
59
- const PAGES = [PAGE_1, PAGE_2];
60
- const C = FORM_COMPONENTS[2];
63
+ var PAGES = [PAGE_1, PAGE_2];
64
+ var C = FORM_COMPONENTS[2];
61
65
  expect((0, _getFormPages.default)(PAGES, FORM_COMPONENTS, FORM_DATA)).toEqual([{
62
66
  index: 0,
63
67
  title: PAGE_1.title,
@@ -70,22 +74,21 @@ describe('utils', () => {
70
74
  type: 'html',
71
75
  tagName: 'p',
72
76
  content: PAGE_2.components[0]
73
- }, {
74
- ...PAGE_2.components[1],
77
+ }, _objectSpread(_objectSpread({}, PAGE_2.components[1]), {}, {
75
78
  full_path: PAGE_2.components[1].fieldId
76
- }, {
79
+ }), {
77
80
  type: 'html',
78
81
  tagName: 'p',
79
82
  content: PAGE_2.components[2]
80
- }, {
81
- use: 'c',
82
- ...C,
83
+ }, _objectSpread(_objectSpread({
84
+ use: 'c'
85
+ }, C), {}, {
83
86
  cya_label: C.label,
84
87
  data: {
85
88
  url: "".concat(FORM_DATA.urls.refData, "/v3/charlies")
86
89
  },
87
90
  full_path: C.fieldId
88
- }],
91
+ })],
89
92
  formData: FORM_DATA
90
93
  }]);
91
94
  });
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _models = require("../../models");
8
- const standardiseAction = obj => {
9
- const action = {
10
- ...obj
11
- };
8
+ 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); }
9
+ 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; }
10
+ 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; }
11
+ 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; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ 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); }
14
+ var standardiseAction = function standardiseAction(obj) {
15
+ var action = _objectSpread({}, obj);
12
16
  // This is in place for backwards compatibility with version 1.
13
17
  if (!action.page) {
14
18
  if (action.href) {
@@ -31,15 +35,15 @@ const standardiseAction = obj => {
31
35
  * will convert both by taking the final part of the relative path:
32
36
  * - `href: '/bravo'` => `page: 'bravo'`
33
37
  */
34
- const getPageActions = page => {
38
+ var getPageActions = function getPageActions(page) {
35
39
  if (page && Array.isArray(page.actions)) {
36
- return page.actions.map(a => {
40
+ return page.actions.map(function (a) {
37
41
  if (typeof a === 'string') {
38
42
  return _models.PageAction.DEFAULTS[a];
39
43
  }
40
- if (a && typeof a === 'object') {
44
+ if (a && _typeof(a) === 'object') {
41
45
  var _PageAction$DEFAULTS$;
42
- const object = a;
46
+ var object = a;
43
47
  // eslint-disable-next-line no-prototype-builtins
44
48
  if ((_PageAction$DEFAULTS$ = _models.PageAction.DEFAULTS[object.type]) !== null && _PageAction$DEFAULTS$ !== void 0 && _PageAction$DEFAULTS$.validate && !object.hasOwnProperty('validate')) {
45
49
  object.validate = true;
@@ -47,7 +51,9 @@ const getPageActions = page => {
47
51
  return standardiseAction(object);
48
52
  }
49
53
  return undefined;
50
- }).filter(a => !!a);
54
+ }).filter(function (a) {
55
+ return !!a;
56
+ });
51
57
  }
52
58
  return undefined;
53
59
  };