@ukhomeoffice/cop-react-form-renderer 5.14.0 → 5.14.4

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 (328) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +15 -15
  2. package/dist/components/CheckYourAnswers/Answer.test.js +94 -128
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +99 -129
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +291 -501
  5. package/dist/components/CheckYourAnswers/index.js +2 -3
  6. package/dist/components/CollectionPage/CollectionPage.js +64 -58
  7. package/dist/components/CollectionPage/CollectionPage.test.js +212 -238
  8. package/dist/components/CollectionPage/index.js +2 -3
  9. package/dist/components/FormComponent/Collection.js +77 -113
  10. package/dist/components/FormComponent/Collection.test.js +688 -787
  11. package/dist/components/FormComponent/Container.js +44 -43
  12. package/dist/components/FormComponent/Container.test.js +316 -346
  13. package/dist/components/FormComponent/FormComponent.js +58 -64
  14. package/dist/components/FormComponent/FormComponent.test.js +180 -219
  15. package/dist/components/FormComponent/helpers/addLabel.js +5 -9
  16. package/dist/components/FormComponent/helpers/getComponentDisabled.js +2 -3
  17. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  18. package/dist/components/FormComponent/helpers/getComponentError.js +4 -7
  19. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  20. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +2 -2
  21. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  22. package/dist/components/FormComponent/helpers/index.js +5 -5
  23. package/dist/components/FormComponent/index.js +2 -3
  24. package/dist/components/FormPage/FormPage.js +65 -79
  25. package/dist/components/FormPage/FormPage.test.js +134 -170
  26. package/dist/components/FormPage/index.js +2 -3
  27. package/dist/components/FormRenderer/FormRenderer.js +151 -193
  28. package/dist/components/FormRenderer/FormRenderer.test.js +598 -920
  29. package/dist/components/FormRenderer/handlers/cyaAction.js +4 -5
  30. package/dist/components/FormRenderer/handlers/getPageId.js +2 -5
  31. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  32. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  33. package/dist/components/FormRenderer/handlers/index.js +3 -4
  34. package/dist/components/FormRenderer/handlers/navigate.js +5 -6
  35. package/dist/components/FormRenderer/handlers/submissionError.js +2 -3
  36. package/dist/components/FormRenderer/helpers/canActionProceed.js +2 -3
  37. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +10 -10
  38. package/dist/components/FormRenderer/helpers/canCYASubmit.js +2 -5
  39. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  40. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -27
  41. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +17 -17
  42. package/dist/components/FormRenderer/helpers/getCYA.js +6 -9
  43. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  44. package/dist/components/FormRenderer/helpers/getFormState.js +7 -10
  45. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  46. package/dist/components/FormRenderer/helpers/getNextPageId.js +19 -34
  47. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  48. package/dist/components/FormRenderer/helpers/getPage.js +3 -6
  49. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  50. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -13
  51. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  52. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
  53. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +98 -92
  54. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +66 -66
  55. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
  56. package/dist/components/FormRenderer/helpers/index.js +3 -4
  57. package/dist/components/FormRenderer/index.js +2 -3
  58. package/dist/components/FormRenderer/onCYAAction.js +52 -62
  59. package/dist/components/FormRenderer/onCYAAction.test.js +146 -138
  60. package/dist/components/FormRenderer/onPageAction.js +48 -47
  61. package/dist/components/FormRenderer/onPageAction.test.js +219 -205
  62. package/dist/components/FormRenderer/onTaskAction.js +12 -17
  63. package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
  64. package/dist/components/PageActions/ActionButton.js +15 -19
  65. package/dist/components/PageActions/ActionButton.test.js +58 -79
  66. package/dist/components/PageActions/PageActions.js +12 -13
  67. package/dist/components/PageActions/PageActions.test.js +88 -116
  68. package/dist/components/PageActions/index.js +2 -3
  69. package/dist/components/SummaryList/GroupAction.js +15 -23
  70. package/dist/components/SummaryList/GroupAction.test.js +41 -37
  71. package/dist/components/SummaryList/RowAction.js +14 -19
  72. package/dist/components/SummaryList/RowAction.test.js +41 -37
  73. package/dist/components/SummaryList/SummaryList.js +25 -30
  74. package/dist/components/SummaryList/SummaryList.test.js +160 -182
  75. package/dist/components/SummaryList/SummaryListHeadingRow.js +9 -8
  76. package/dist/components/SummaryList/SummaryListRow.js +9 -8
  77. package/dist/components/SummaryList/SummaryListTitleRow.js +8 -7
  78. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -8
  79. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
  80. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -8
  81. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
  82. package/dist/components/SummaryList/helpers/index.js +2 -2
  83. package/dist/components/SummaryList/index.js +2 -3
  84. package/dist/components/TaskList/Task.js +22 -33
  85. package/dist/components/TaskList/Task.test.js +84 -77
  86. package/dist/components/TaskList/TaskList.js +46 -75
  87. package/dist/components/TaskList/TaskList.test.js +118 -113
  88. package/dist/components/TaskList/TaskState.js +9 -9
  89. package/dist/components/TaskList/TaskState.test.js +56 -49
  90. package/dist/components/TaskList/index.js +2 -3
  91. package/dist/components/index.js +8 -8
  92. package/dist/context/HooksContext/HooksContext.js +59 -85
  93. package/dist/context/HooksContext/HooksContext.test.js +28 -36
  94. package/dist/context/HooksContext/index.js +4 -6
  95. package/dist/context/ValidationContext/ValidationContext.js +35 -76
  96. package/dist/context/ValidationContext/ValidationContext.test.js +50 -61
  97. package/dist/context/ValidationContext/index.js +4 -6
  98. package/dist/context/index.js +3 -3
  99. package/dist/hooks/index.js +10 -11
  100. package/dist/hooks/useAxios.js +17 -43
  101. package/dist/hooks/useGetRequest.js +65 -106
  102. package/dist/hooks/useHooks.js +2 -5
  103. package/dist/hooks/useRefData.js +30 -45
  104. package/dist/hooks/useValidation.js +2 -5
  105. package/dist/index.js +15 -17
  106. package/dist/models/CollectionLabels.js +2 -3
  107. package/dist/models/ComponentTypes.js +25 -26
  108. package/dist/models/EventTypes.js +5 -6
  109. package/dist/models/FormPages.js +5 -6
  110. package/dist/models/FormTypes.js +9 -10
  111. package/dist/models/HubFormats.js +4 -5
  112. package/dist/models/PageAction.js +45 -42
  113. package/dist/models/TaskStates.js +30 -31
  114. package/dist/models/index.js +11 -12
  115. package/dist/setupTests.js +20 -24
  116. package/dist/utils/CheckYourAnswers/getCYAAction.js +6 -7
  117. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  118. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +18 -20
  119. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +21 -23
  120. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -21
  121. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +18 -20
  122. package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
  123. package/dist/utils/CheckYourAnswers/getCYARow.test.js +72 -72
  124. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +20 -27
  125. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  126. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +41 -47
  127. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
  128. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +71 -78
  129. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +133 -114
  130. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +27 -23
  131. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
  132. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +16 -23
  133. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
  134. package/dist/utils/CheckYourAnswers/index.js +3 -4
  135. package/dist/utils/CheckYourAnswers/showComponentCYA.js +7 -9
  136. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  137. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +9 -16
  138. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +19 -20
  139. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +4 -8
  140. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +15 -15
  141. package/dist/utils/CollectionPage/index.js +3 -4
  142. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -29
  143. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +15 -15
  144. package/dist/utils/Component/addShowWhen.js +5 -10
  145. package/dist/utils/Component/addShowWhen.test.js +38 -38
  146. package/dist/utils/Component/applyToComponentTree.js +20 -22
  147. package/dist/utils/Component/applyToComponentTree.test.js +28 -33
  148. package/dist/utils/Component/cleanAttributes.js +11 -16
  149. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  150. package/dist/utils/Component/elevateNestedComponents.js +7 -9
  151. package/dist/utils/Component/elevateNestedComponents.test.js +19 -19
  152. package/dist/utils/Component/getComponent.js +91 -99
  153. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  154. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +51 -63
  155. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +41 -49
  156. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -37
  157. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  158. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +19 -23
  159. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +23 -27
  160. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
  161. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  162. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  163. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  164. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +24 -27
  165. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
  166. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  167. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +19 -23
  168. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +59 -73
  169. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +19 -23
  170. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +19 -23
  171. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +35 -41
  172. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +24 -32
  173. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  174. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  175. package/dist/utils/Component/getDefaultValue.js +7 -9
  176. package/dist/utils/Component/getDefaultValue.test.js +14 -14
  177. package/dist/utils/Component/index.js +3 -4
  178. package/dist/utils/Component/isEditable.js +3 -7
  179. package/dist/utils/Component/isEditable.test.js +14 -15
  180. package/dist/utils/Component/optionIsSelected.js +2 -3
  181. package/dist/utils/Component/optionIsSelected.test.js +10 -10
  182. package/dist/utils/Component/setupContainerComponentsPath.js +30 -33
  183. package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
  184. package/dist/utils/Component/showComponent.js +4 -6
  185. package/dist/utils/Component/showComponent.test.js +29 -29
  186. package/dist/utils/Component/wrapInFormGroup.js +6 -6
  187. package/dist/utils/Condition/index.js +3 -4
  188. package/dist/utils/Condition/meetsAllConditions.js +9 -10
  189. package/dist/utils/Condition/meetsAllConditions.test.js +18 -18
  190. package/dist/utils/Condition/meetsCondition.js +19 -27
  191. package/dist/utils/Condition/meetsCondition.test.js +377 -377
  192. package/dist/utils/Condition/meetsOneCondition.js +7 -8
  193. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  194. package/dist/utils/Condition/setupConditions.js +15 -21
  195. package/dist/utils/Condition/setupConditions.test.js +8 -8
  196. package/dist/utils/Container/getEditableComponents.js +5 -8
  197. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  198. package/dist/utils/Container/index.js +3 -4
  199. package/dist/utils/Container/setupNesting.js +17 -24
  200. package/dist/utils/Container/setupNesting.test.js +28 -31
  201. package/dist/utils/Container/showContainer.js +5 -10
  202. package/dist/utils/Container/showContainer.test.js +31 -31
  203. package/dist/utils/Data/applyFormula.js +41 -52
  204. package/dist/utils/Data/applyFormula.test.js +26 -26
  205. package/dist/utils/Data/getAutocompleteSource.js +11 -14
  206. package/dist/utils/Data/getAutocompleteSource.test.js +59 -59
  207. package/dist/utils/Data/getDataPath.js +21 -32
  208. package/dist/utils/Data/getDataPath.test.js +20 -20
  209. package/dist/utils/Data/getOptions.js +22 -28
  210. package/dist/utils/Data/getOptions.test.js +21 -21
  211. package/dist/utils/Data/getSourceData.js +7 -21
  212. package/dist/utils/Data/getSourceData.test.js +85 -81
  213. package/dist/utils/Data/index.js +3 -4
  214. package/dist/utils/Data/refDataToOptions.js +12 -17
  215. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  216. package/dist/utils/Data/setDataItem.js +8 -10
  217. package/dist/utils/Data/setDataItem.test.js +38 -38
  218. package/dist/utils/Data/setupFormData.js +32 -48
  219. package/dist/utils/Data/setupFormData.test.js +99 -98
  220. package/dist/utils/Data/setupRefDataUrlForComponent.js +22 -30
  221. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
  222. package/dist/utils/FormPage/applyConditionalProperties.js +7 -12
  223. package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
  224. package/dist/utils/FormPage/getFormPage.js +17 -19
  225. package/dist/utils/FormPage/getFormPage.test.js +49 -48
  226. package/dist/utils/FormPage/getFormPages.js +9 -15
  227. package/dist/utils/FormPage/getFormPages.test.js +22 -25
  228. package/dist/utils/FormPage/getPageActions.js +11 -19
  229. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  230. package/dist/utils/FormPage/getParagraphFromText.js +6 -9
  231. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  232. package/dist/utils/FormPage/index.js +3 -4
  233. package/dist/utils/FormPage/showFormPage.js +5 -10
  234. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  235. package/dist/utils/FormPage/showFormPageCYA.js +4 -5
  236. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  237. package/dist/utils/FormPage/useComponent.js +21 -29
  238. package/dist/utils/FormPage/useComponent.test.js +71 -73
  239. package/dist/utils/Format/formatData.js +2 -3
  240. package/dist/utils/Format/formatData.test.js +19 -19
  241. package/dist/utils/Format/formatDataForComponent.js +6 -9
  242. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  243. package/dist/utils/Format/formatDataForForm.js +7 -10
  244. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  245. package/dist/utils/Format/formatDataForPage.js +4 -7
  246. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  247. package/dist/utils/Format/index.js +3 -4
  248. package/dist/utils/Hub/getFormHub.js +3 -4
  249. package/dist/utils/Hub/getFormHub.test.js +29 -32
  250. package/dist/utils/Hub/index.js +3 -4
  251. package/dist/utils/Meta/constants.js +2 -4
  252. package/dist/utils/Meta/documents/getDocuments.js +2 -6
  253. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  254. package/dist/utils/Meta/documents/index.js +3 -4
  255. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -19
  256. package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
  257. package/dist/utils/Meta/index.js +3 -4
  258. package/dist/utils/Operate/checkValueIsTruthy.js +5 -6
  259. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  260. package/dist/utils/Operate/getFirstOf.js +9 -10
  261. package/dist/utils/Operate/getFirstOf.test.js +33 -33
  262. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +13 -14
  263. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  264. package/dist/utils/Operate/index.js +3 -4
  265. package/dist/utils/Operate/persistValueInFormData.js +7 -8
  266. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  267. package/dist/utils/Operate/runPageOperations.js +10 -11
  268. package/dist/utils/Operate/runPageOperations.test.js +36 -37
  269. package/dist/utils/Operate/setValueInFormData.js +6 -7
  270. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  271. package/dist/utils/Operate/shouldRun.js +9 -10
  272. package/dist/utils/Operate/shouldRun.test.js +22 -28
  273. package/dist/utils/Validate/additional/conditionallyRequired.js +5 -7
  274. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  275. package/dist/utils/Validate/additional/index.js +8 -9
  276. package/dist/utils/Validate/additional/index.test.js +13 -13
  277. package/dist/utils/Validate/additional/mustBeAfter.js +4 -5
  278. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  279. package/dist/utils/Validate/additional/mustBeBefore.js +4 -5
  280. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  281. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -14
  282. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +34 -38
  283. package/dist/utils/Validate/additional/mustBeGreaterThan.js +3 -4
  284. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  285. package/dist/utils/Validate/additional/mustBeInTheFuture.js +5 -6
  286. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  287. package/dist/utils/Validate/additional/mustBeInThePast.js +6 -7
  288. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  289. package/dist/utils/Validate/additional/mustBeLessThan.js +3 -4
  290. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  291. package/dist/utils/Validate/additional/mustBeLongerThan.js +2 -3
  292. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  293. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +3 -4
  294. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  295. package/dist/utils/Validate/additional/mustBeShorterThan.js +2 -3
  296. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  297. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +4 -7
  298. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  299. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +2 -3
  300. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  301. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +4 -7
  302. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  303. package/dist/utils/Validate/additional/utils.js +9 -25
  304. package/dist/utils/Validate/index.js +3 -4
  305. package/dist/utils/Validate/validateCollection.js +22 -29
  306. package/dist/utils/Validate/validateCollection.test.js +85 -77
  307. package/dist/utils/Validate/validateComponent.js +19 -19
  308. package/dist/utils/Validate/validateComponent.test.js +169 -147
  309. package/dist/utils/Validate/validateContainer.js +16 -22
  310. package/dist/utils/Validate/validateContainer.test.js +52 -48
  311. package/dist/utils/Validate/validateDate.js +14 -21
  312. package/dist/utils/Validate/validateDate.test.js +28 -29
  313. package/dist/utils/Validate/validateEmail.js +8 -11
  314. package/dist/utils/Validate/validateEmail.test.js +26 -26
  315. package/dist/utils/Validate/validateMultifile.js +6 -10
  316. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  317. package/dist/utils/Validate/validatePage.js +20 -22
  318. package/dist/utils/Validate/validatePage.test.js +146 -143
  319. package/dist/utils/Validate/validateRegex.js +6 -10
  320. package/dist/utils/Validate/validateRegex.test.js +17 -17
  321. package/dist/utils/Validate/validateRequired.js +6 -9
  322. package/dist/utils/Validate/validateRequired.test.js +19 -19
  323. package/dist/utils/Validate/validateTextArea.js +6 -9
  324. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  325. package/dist/utils/Validate/validateTime.js +8 -16
  326. package/dist/utils/Validate/validateTime.test.js +15 -15
  327. package/dist/utils/index.js +10 -12
  328. package/package.json +9 -6
@@ -6,30 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _models = require("../../models");
9
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
15
- var setupRefDataForContainer = function setupRefDataForContainer(container, data) {
16
- return _objectSpread(_objectSpread({}, container), {}, {
17
- components: setupRefDataUrlForComponents(container.components, data)
18
- });
19
- };
20
- var setupRefDataForCollection = function setupRefDataForCollection(collection, data) {
21
- return _objectSpread(_objectSpread({}, collection), {}, {
22
- item: setupRefDataUrlForComponents(collection.item, data)
23
- });
24
- };
25
- var setupRefDataUrlForComponents = function setupRefDataUrlForComponents(components, data) {
26
- return components.map(function (component) {
27
- return setupRefDataUrlForComponent(component, data);
28
- });
29
- };
30
- var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component, data) {
9
+ /* eslint-disable no-use-before-define */
10
+
11
+ // Global imports
12
+
13
+ const setupRefDataForContainer = (container, data) => ({
14
+ ...container,
15
+ components: setupRefDataUrlForComponents(container.components, data)
16
+ });
17
+ const setupRefDataForCollection = (collection, data) => ({
18
+ ...collection,
19
+ item: setupRefDataUrlForComponents(collection.item, data)
20
+ });
21
+ const setupRefDataUrlForComponents = (components, data) => components.map(component => setupRefDataUrlForComponent(component, data));
22
+ const setupRefDataUrlForComponent = (component, data) => {
31
23
  if (component) {
32
- var _component$data, _component$data2;
33
24
  if (component.type === _models.ComponentTypes.CONTAINER) {
34
25
  return setupRefDataForContainer(component, data);
35
26
  }
@@ -39,15 +30,16 @@ var setupRefDataUrlForComponent = function setupRefDataUrlForComponent(component
39
30
  if (component.type === _models.ComponentTypes.SELECT) {
40
31
  return component;
41
32
  }
42
- if ((_component$data = component.data) !== null && _component$data !== void 0 && _component$data.url && !((_component$data2 = component.data) !== null && _component$data2 !== void 0 && _component$data2.skipUrlInterpolation)) {
43
- return _objectSpread(_objectSpread({}, component), {}, {
44
- data: _objectSpread(_objectSpread({}, component.data), {}, {
33
+ if (component.data?.url && !component.data?.skipUrlInterpolation) {
34
+ return {
35
+ ...component,
36
+ data: {
37
+ ...component.data,
45
38
  url: _copReactComponents.Utils.interpolateString(component.data.url, data)
46
- })
47
- });
39
+ }
40
+ };
48
41
  }
49
42
  }
50
43
  return component;
51
44
  };
52
- var _default = setupRefDataUrlForComponent;
53
- exports.default = _default;
45
+ var _default = exports.default = setupRefDataUrlForComponent;
@@ -2,31 +2,31 @@
2
2
 
3
3
  var _models = require("../../models");
4
4
  var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDataUrlForComponent"));
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
6
  // Local imports
7
7
 
8
- describe('utils', function () {
9
- describe('Data', function () {
10
- describe('setupRefDataUrlForComponent', function () {
11
- var DATA = {
8
+ describe('utils', () => {
9
+ describe('Data', () => {
10
+ describe('setupRefDataUrlForComponent', () => {
11
+ const DATA = {
12
12
  urls: {
13
13
  refData: '/ref-data'
14
14
  }
15
15
  };
16
- it('can handle a null component', function () {
16
+ it('can handle a null component', () => {
17
17
  expect((0, _setupRefDataUrlForComponent.default)(null, DATA)).toBeNull();
18
18
  });
19
- it('can handle an undefined component', function () {
19
+ it('can handle an undefined component', () => {
20
20
  expect((0, _setupRefDataUrlForComponent.default)(undefined, DATA)).toBeUndefined();
21
21
  });
22
- it('can handle a component with no data property', function () {
23
- var COMPONENT = {
22
+ it('can handle a component with no data property', () => {
23
+ const COMPONENT = {
24
24
  id: 'component'
25
25
  };
26
26
  expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
27
27
  });
28
- it('can handle a component with no data.url property', function () {
29
- var COMPONENT = {
28
+ it('can handle a component with no data.url property', () => {
29
+ const COMPONENT = {
30
30
  id: 'component',
31
31
  data: {
32
32
  options: []
@@ -34,8 +34,8 @@ describe('utils', function () {
34
34
  };
35
35
  expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual(COMPONENT);
36
36
  });
37
- it('should appropriately update the component URL', function () {
38
- var COMPONENT = {
37
+ it('should appropriately update the component URL', () => {
38
+ const COMPONENT = {
39
39
  id: 'component',
40
40
  // eslint-disable-next-line no-template-curly-in-string
41
41
  data: {
@@ -45,12 +45,12 @@ describe('utils', function () {
45
45
  expect((0, _setupRefDataUrlForComponent.default)(COMPONENT, DATA)).toEqual({
46
46
  id: COMPONENT.id,
47
47
  data: {
48
- url: "".concat(DATA.urls.refData, "/v1/teams")
48
+ url: `${DATA.urls.refData}/v1/teams`
49
49
  }
50
50
  });
51
51
  });
52
- it('should leave a URL alone that does not require replacement', function () {
53
- var COMPONENT = {
52
+ it('should leave a URL alone that does not require replacement', () => {
53
+ const COMPONENT = {
54
54
  id: 'component',
55
55
  data: {
56
56
  url: '/somewhere-else/v1/teams'
@@ -63,8 +63,8 @@ describe('utils', function () {
63
63
  }
64
64
  });
65
65
  });
66
- it('should appropriately handle a missing value in the data', function () {
67
- var COMPONENT = {
66
+ it('should appropriately handle a missing value in the data', () => {
67
+ const COMPONENT = {
68
68
  id: 'component',
69
69
  // eslint-disable-next-line no-template-curly-in-string
70
70
  data: {
@@ -78,15 +78,15 @@ describe('utils', function () {
78
78
  }
79
79
  });
80
80
  });
81
- it('should appropriately update the component URLs within a container', function () {
82
- var COMPONENT = {
81
+ it('should appropriately update the component URLs within a container', () => {
82
+ const COMPONENT = {
83
83
  id: 'component',
84
84
  // eslint-disable-next-line no-template-curly-in-string
85
85
  data: {
86
86
  url: '${urls.refData}/v1/teams'
87
87
  }
88
88
  };
89
- var CONTAINER = {
89
+ const CONTAINER = {
90
90
  id: 'container',
91
91
  type: _models.ComponentTypes.CONTAINER,
92
92
  components: [COMPONENT]
@@ -97,20 +97,20 @@ describe('utils', function () {
97
97
  components: [{
98
98
  id: COMPONENT.id,
99
99
  data: {
100
- url: "".concat(DATA.urls.refData, "/v1/teams")
100
+ url: `${DATA.urls.refData}/v1/teams`
101
101
  }
102
102
  }]
103
103
  });
104
104
  });
105
- it('should appropriately update the component URLs within a collection', function () {
106
- var COMPONENT = {
105
+ it('should appropriately update the component URLs within a collection', () => {
106
+ const COMPONENT = {
107
107
  id: 'component',
108
108
  // eslint-disable-next-line no-template-curly-in-string
109
109
  data: {
110
110
  url: '${urls.refData}/v1/teams'
111
111
  }
112
112
  };
113
- var COLLECTION = {
113
+ const COLLECTION = {
114
114
  id: 'container',
115
115
  type: _models.ComponentTypes.COLLECTION,
116
116
  item: [COMPONENT]
@@ -121,13 +121,13 @@ describe('utils', function () {
121
121
  item: [{
122
122
  id: COMPONENT.id,
123
123
  data: {
124
- url: "".concat(DATA.urls.refData, "/v1/teams")
124
+ url: `${DATA.urls.refData}/v1/teams`
125
125
  }
126
126
  }]
127
127
  });
128
128
  });
129
- it('should not update the component URL when skipUrlInterpolation prop is true', function () {
130
- var COMPONENT = {
129
+ it('should not update the component URL when skipUrlInterpolation prop is true', () => {
130
+ const COMPONENT = {
131
131
  id: 'component',
132
132
  data: {
133
133
  // eslint-disable-next-line no-template-curly-in-string
@@ -5,25 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _ = _interopRequireDefault(require(".."));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
9
  /**
16
10
  * Apply properties to a page based on whether certain conditions are met.
17
11
  * @param {object} page The page object.
18
12
  * @returns A copy of the page object with any passing conditional
19
13
  * properties applied.
20
14
  */
21
- var applyConditionalProperties = function applyConditionalProperties(page) {
15
+ const applyConditionalProperties = page => {
22
16
  if (!page.conditionalProperties) {
23
17
  return page;
24
18
  }
25
- var pageWithProperties = _objectSpread({}, page);
26
- page.conditionalProperties.forEach(function (entry) {
19
+ let pageWithProperties = {
20
+ ...page
21
+ };
22
+ page.conditionalProperties.forEach(entry => {
27
23
  if (_.default.Condition.met(entry.condition, page.formData[entry.condition.field])) {
28
24
  pageWithProperties = Object.assign(pageWithProperties, entry.properties);
29
25
  }
@@ -31,5 +27,4 @@ var applyConditionalProperties = function applyConditionalProperties(page) {
31
27
  });
32
28
  return pageWithProperties;
33
29
  };
34
- var _default = applyConditionalProperties;
35
- exports.default = _default;
30
+ var _default = exports.default = applyConditionalProperties;
@@ -1,23 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _applyConditionalProperties = _interopRequireDefault(require("./applyConditionalProperties"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
11
- describe('utils.FormPage.applyConditionalProperties', function () {
12
- it('should not change the page if there are no conditional properties', function () {
13
- var PAGE = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ // Local imports
6
+
7
+ describe('utils.FormPage.applyConditionalProperties', () => {
8
+ it('should not change the page if there are no conditional properties', () => {
9
+ const PAGE = {
14
10
  id: 'testPage'
15
11
  };
16
- var result = (0, _applyConditionalProperties.default)(PAGE);
12
+ const result = (0, _applyConditionalProperties.default)(PAGE);
17
13
  expect(result).toEqual(PAGE);
18
14
  });
19
- it('should not apply properties with conditions that have not been met', function () {
20
- var PAGE = {
15
+ it('should not apply properties with conditions that have not been met', () => {
16
+ const PAGE = {
21
17
  id: 'testPage',
22
18
  conditionalProperties: [{
23
19
  condition: {
@@ -33,11 +29,11 @@ describe('utils.FormPage.applyConditionalProperties', function () {
33
29
  alpha: '012'
34
30
  }
35
31
  };
36
- var result = (0, _applyConditionalProperties.default)(PAGE);
32
+ const result = (0, _applyConditionalProperties.default)(PAGE);
37
33
  expect(result).toEqual(PAGE);
38
34
  });
39
- it('should apply properties with conditions that have been met', function () {
40
- var PAGE = {
35
+ it('should apply properties with conditions that have been met', () => {
36
+ const PAGE = {
41
37
  id: 'testPage',
42
38
  conditionalProperties: [{
43
39
  condition: {
@@ -53,9 +49,10 @@ describe('utils.FormPage.applyConditionalProperties', function () {
53
49
  alpha: '123'
54
50
  }
55
51
  };
56
- var result = (0, _applyConditionalProperties.default)(PAGE);
57
- expect(result).toEqual(_objectSpread(_objectSpread({}, PAGE), {}, {
52
+ const result = (0, _applyConditionalProperties.default)(PAGE);
53
+ expect(result).toEqual({
54
+ ...PAGE,
58
55
  beta: '456'
59
- }));
56
+ });
60
57
  });
61
58
  });
@@ -9,13 +9,9 @@ var _Data = _interopRequireDefault(require("../Data"));
9
9
  var _getPageActions = _interopRequireDefault(require("./getPageActions"));
10
10
  var _getParagraphFromText = _interopRequireDefault(require("./getParagraphFromText"));
11
11
  var _useComponent = _interopRequireDefault(require("./useComponent"));
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ // Local imports
14
+
19
15
  /**
20
16
  * Converts a page object defined in the JSON to a page object for rendering.
21
17
  * @param {object} pageOptions The JSON page.
@@ -23,28 +19,30 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
23
19
  * @param {object} formData The top-level form data, used for setting up components.
24
20
  * @returns A page object for rendering.
25
21
  */
26
- var getFormPage = function getFormPage(pageOptions, formComponents, formData) {
22
+ const getFormPage = (pageOptions, formComponents, formData) => {
27
23
  if (!pageOptions) {
28
24
  return null;
29
25
  }
30
- var components = pageOptions.components.map(function (componentOptions) {
26
+ const components = pageOptions.components.map(componentOptions => {
31
27
  if (typeof componentOptions === 'string') {
32
28
  return (0, _getParagraphFromText.default)(componentOptions);
33
29
  }
34
- var ret;
30
+ let ret;
35
31
  if (componentOptions.use) {
36
32
  ret = (0, _useComponent.default)(componentOptions, formComponents);
37
33
  } else {
38
- ret = _objectSpread({}, componentOptions);
34
+ ret = {
35
+ ...componentOptions
36
+ };
39
37
  }
40
38
  return formData ? _Data.default.refData.setupUrl(ret, formData) : ret;
41
39
  });
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
- }));
40
+ const actions = (0, _getPageActions.default)(pageOptions);
41
+ return _Container.default.setup({
42
+ ...pageOptions,
43
+ formData,
44
+ components,
45
+ actions
46
+ });
48
47
  };
49
- var _default = getFormPage;
50
- exports.default = _default;
48
+ var _default = exports.default = getFormPage;
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _getFormPage = _interopRequireDefault(require("./getFormPage"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
11
- describe('utils', function () {
12
- describe('FormPage', function () {
13
- describe('getFormPage', function () {
14
- var FORM_COMPONENTS = [{
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ // Local imports
6
+
7
+ describe('utils', () => {
8
+ describe('FormPage', () => {
9
+ describe('getFormPage', () => {
10
+ const FORM_COMPONENTS = [{
15
11
  id: 'a',
16
12
  fieldId: 'a',
17
13
  label: 'Alpha',
@@ -46,17 +42,17 @@ describe('utils', function () {
46
42
  label: 'Bravo ${currentUser.surname}',
47
43
  type: 'text'
48
44
  }];
49
- var FORM_DATA = {
45
+ const FORM_DATA = {
50
46
  urls: {
51
47
  refData: 'https://ho.gov.uk/ref-data/'
52
48
  }
53
49
  };
54
- it('should handle null or undefined pageOptions', function () {
50
+ it('should handle null or undefined pageOptions', () => {
55
51
  expect((0, _getFormPage.default)(null, FORM_COMPONENTS, FORM_DATA)).toBeNull();
56
52
  expect((0, _getFormPage.default)(undefined, FORM_COMPONENTS, FORM_DATA)).toBeNull();
57
53
  });
58
- it('should handle a page not using any form components', function () {
59
- var PAGE = {
54
+ it('should handle a page not using any form components', () => {
55
+ const PAGE = {
60
56
  title: 'Page',
61
57
  components: [{
62
58
  type: 'heading',
@@ -70,8 +66,8 @@ describe('utils', function () {
70
66
  formData: FORM_DATA
71
67
  });
72
68
  });
73
- it('should handle a page with inline strings and convert them to paragraphs', function () {
74
- var PAGE = {
69
+ it('should handle a page with inline strings and convert them to paragraphs', () => {
70
+ const PAGE = {
75
71
  title: 'Page',
76
72
  components: ["Opening paragraph", {
77
73
  type: 'heading',
@@ -85,9 +81,10 @@ describe('utils', function () {
85
81
  type: 'html',
86
82
  tagName: 'p',
87
83
  content: PAGE.components[0]
88
- }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
84
+ }, {
85
+ ...PAGE.components[1],
89
86
  full_path: PAGE.components[1].fieldId
90
- }), {
87
+ }, {
91
88
  type: 'html',
92
89
  tagName: 'p',
93
90
  content: PAGE.components[2]
@@ -95,8 +92,8 @@ describe('utils', function () {
95
92
  formData: FORM_DATA
96
93
  });
97
94
  });
98
- it('should handle a page that references a form-level component', function () {
99
- var PAGE = {
95
+ it('should handle a page that references a form-level component', () => {
96
+ const PAGE = {
100
97
  title: 'Page',
101
98
  components: ["Opening paragraph", {
102
99
  type: 'heading',
@@ -106,30 +103,31 @@ describe('utils', function () {
106
103
  use: 'a'
107
104
  }]
108
105
  };
109
- var A = FORM_COMPONENTS[0];
106
+ const A = FORM_COMPONENTS[0];
110
107
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
111
108
  title: PAGE.title,
112
109
  components: [{
113
110
  type: 'html',
114
111
  tagName: 'p',
115
112
  content: PAGE.components[0]
116
- }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
113
+ }, {
114
+ ...PAGE.components[1],
117
115
  full_path: PAGE.components[1].fieldId
118
- }), {
116
+ }, {
119
117
  type: 'html',
120
118
  tagName: 'p',
121
119
  content: PAGE.components[2]
122
- }, _objectSpread(_objectSpread({
123
- use: 'a'
124
- }, A), {}, {
120
+ }, {
121
+ use: 'a',
122
+ ...A,
125
123
  cya_label: A.label,
126
124
  full_path: A.fieldId
127
- })],
125
+ }],
128
126
  formData: FORM_DATA
129
127
  });
130
128
  });
131
- it('should handle a page that references a form-level component with a data url', function () {
132
- var PAGE = {
129
+ it('should handle a page that references a form-level component with a data url', () => {
130
+ const PAGE = {
133
131
  title: 'Page',
134
132
  components: ["Opening paragraph", {
135
133
  type: 'heading',
@@ -139,33 +137,34 @@ describe('utils', function () {
139
137
  use: 'c'
140
138
  }]
141
139
  };
142
- var C = FORM_COMPONENTS[2];
140
+ const C = FORM_COMPONENTS[2];
143
141
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, FORM_DATA)).toEqual({
144
142
  title: PAGE.title,
145
143
  components: [{
146
144
  type: 'html',
147
145
  tagName: 'p',
148
146
  content: PAGE.components[0]
149
- }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
147
+ }, {
148
+ ...PAGE.components[1],
150
149
  full_path: PAGE.components[1].fieldId
151
- }), {
150
+ }, {
152
151
  type: 'html',
153
152
  tagName: 'p',
154
153
  content: PAGE.components[2]
155
- }, _objectSpread(_objectSpread({
156
- use: 'c'
157
- }, C), {}, {
154
+ }, {
155
+ use: 'c',
156
+ ...C,
158
157
  cya_label: C.label,
159
158
  data: {
160
- url: "".concat(FORM_DATA.urls.refData, "/v3/charlies")
159
+ url: `${FORM_DATA.urls.refData}/v3/charlies`
161
160
  },
162
161
  full_path: C.fieldId
163
- })],
162
+ }],
164
163
  formData: FORM_DATA
165
164
  });
166
165
  });
167
- it('should handle a page that references a form-level component with a data url without an environment context', function () {
168
- var PAGE = {
166
+ it('should handle a page that references a form-level component with a data url without an environment context', () => {
167
+ const PAGE = {
169
168
  title: 'Page',
170
169
  components: ["Opening paragraph", {
171
170
  type: 'heading',
@@ -175,29 +174,31 @@ describe('utils', function () {
175
174
  use: 'c'
176
175
  }]
177
176
  };
178
- var C = FORM_COMPONENTS[2];
177
+ const C = FORM_COMPONENTS[2];
179
178
  expect((0, _getFormPage.default)(PAGE, FORM_COMPONENTS, {})).toEqual({
180
179
  title: PAGE.title,
181
180
  components: [{
182
181
  type: 'html',
183
182
  tagName: 'p',
184
183
  content: PAGE.components[0]
185
- }, _objectSpread(_objectSpread({}, PAGE.components[1]), {}, {
184
+ }, {
185
+ ...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
- }, // eslint-disable-next-line no-template-curly-in-string
192
- _objectSpread(_objectSpread({
193
- use: 'c'
194
- }, C), {}, {
191
+ },
192
+ // eslint-disable-next-line no-template-curly-in-string
193
+ {
194
+ use: 'c',
195
+ ...C,
195
196
  cya_label: C.label,
196
197
  full_path: C.fieldId,
197
198
  data: {
198
199
  url: '/v3/charlies'
199
200
  }
200
- })],
201
+ }],
201
202
  formData: {}
202
203
  });
203
204
  });
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _getFormPage = _interopRequireDefault(require("./getFormPage"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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); }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // Local imports
10
+
15
11
  /**
16
12
  * Converts pages objects defined in the JSON to page objects for rendering.
17
13
  * @param {Array} pages The JSON pages.
@@ -19,15 +15,13 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
19
15
  * @param {object} formData The top-level form data, used for setting up components.
20
16
  * @returns An array of page objects for rendering.
21
17
  */
22
- var getFormPages = function getFormPages(pages, components, formData) {
18
+ const getFormPages = (pages, components, formData) => {
23
19
  if (Array.isArray(pages)) {
24
- return pages.map(function (options, index) {
25
- return _objectSpread(_objectSpread({}, (0, _getFormPage.default)(options, components, formData)), {}, {
26
- index: index
27
- });
28
- });
20
+ return pages.map((options, index) => ({
21
+ ...(0, _getFormPage.default)(options, components, formData),
22
+ index
23
+ }));
29
24
  }
30
25
  return [];
31
26
  };
32
- var _default = getFormPages;
33
- exports.default = _default;
27
+ var _default = exports.default = getFormPages;