@ukhomeoffice/cop-react-form-renderer 6.13.2 → 6.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +8 -0
  2. package/dist/components/CheckYourAnswers/Answer.js +12 -11
  3. package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
  6. package/dist/components/CheckYourAnswers/index.js +1 -1
  7. package/dist/components/CollectionPage/CollectionPage.js +62 -60
  8. package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
  9. package/dist/components/CollectionPage/index.js +1 -1
  10. package/dist/components/CollectionSummary/BannerStrip.js +14 -14
  11. package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
  12. package/dist/components/CollectionSummary/CollectionSummary.js +81 -99
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
  14. package/dist/components/CollectionSummary/Confirmation.js +15 -13
  15. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  16. package/dist/components/CollectionSummary/RenderListView.js +47 -48
  17. package/dist/components/CollectionSummary/RenderListView.scss +4 -0
  18. package/dist/components/CollectionSummary/RenderListView.test.js +133 -98
  19. package/dist/components/CollectionSummary/SummaryCard.js +110 -148
  20. package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
  21. package/dist/components/CollectionSummary/SummaryCardButtons.js +71 -0
  22. package/dist/components/CollectionSummary/SummaryCardButtons.test.js +85 -0
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
  24. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
  25. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
  27. package/dist/components/CollectionSummary/index.js +1 -1
  28. package/dist/components/FormComponent/Collection.js +67 -102
  29. package/dist/components/FormComponent/Collection.test.js +907 -1080
  30. package/dist/components/FormComponent/Container.js +35 -29
  31. package/dist/components/FormComponent/Container.test.js +378 -409
  32. package/dist/components/FormComponent/FormComponent.js +59 -63
  33. package/dist/components/FormComponent/FormComponent.test.js +354 -415
  34. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  36. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  41. package/dist/components/FormComponent/helpers/index.js +5 -5
  42. package/dist/components/FormComponent/index.js +1 -1
  43. package/dist/components/FormPage/FormPage.js +99 -88
  44. package/dist/components/FormPage/FormPage.test.js +173 -164
  45. package/dist/components/FormPage/index.js +1 -1
  46. package/dist/components/FormRenderer/FormRenderer.js +138 -174
  47. package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  52. package/dist/components/FormRenderer/handlers/index.js +2 -2
  53. package/dist/components/FormRenderer/handlers/navigate.js +4 -4
  54. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  56. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
  61. package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  63. package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
  75. package/dist/components/FormRenderer/helpers/index.js +2 -2
  76. package/dist/components/FormRenderer/index.js +1 -1
  77. package/dist/components/FormRenderer/onCYAAction.js +43 -44
  78. package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
  79. package/dist/components/FormRenderer/onPageAction.js +26 -35
  80. package/dist/components/FormRenderer/onPageAction.test.js +177 -186
  81. package/dist/components/FormRenderer/onTaskAction.js +11 -12
  82. package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
  83. package/dist/components/PageActions/ActionButton.js +14 -14
  84. package/dist/components/PageActions/ActionButton.test.js +57 -79
  85. package/dist/components/PageActions/PageActions.js +11 -11
  86. package/dist/components/PageActions/PageActions.test.js +87 -116
  87. package/dist/components/PageActions/index.js +1 -1
  88. package/dist/components/SummaryList/GroupAction.js +10 -18
  89. package/dist/components/SummaryList/GroupAction.test.js +38 -34
  90. package/dist/components/SummaryList/RowAction.js +12 -17
  91. package/dist/components/SummaryList/RowAction.test.js +38 -34
  92. package/dist/components/SummaryList/SummaryList.js +23 -25
  93. package/dist/components/SummaryList/SummaryList.test.js +162 -189
  94. package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
  95. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
  96. package/dist/components/SummaryList/SummaryListRow.js +7 -5
  97. package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
  98. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
  100. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  101. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
  102. package/dist/components/SummaryList/helpers/index.js +2 -2
  103. package/dist/components/SummaryList/index.js +1 -1
  104. package/dist/components/TaskList/Task.js +20 -30
  105. package/dist/components/TaskList/Task.test.js +84 -77
  106. package/dist/components/TaskList/TaskList.js +56 -79
  107. package/dist/components/TaskList/TaskList.test.js +149 -149
  108. package/dist/components/TaskList/TaskState.js +8 -6
  109. package/dist/components/TaskList/TaskState.test.js +53 -46
  110. package/dist/components/TaskList/index.js +1 -1
  111. package/dist/components/index.js +8 -8
  112. package/dist/context/HooksContext/HooksContext.js +56 -79
  113. package/dist/context/HooksContext/HooksContext.test.js +27 -36
  114. package/dist/context/HooksContext/index.js +3 -4
  115. package/dist/context/ValidationContext/ValidationContext.js +44 -95
  116. package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
  117. package/dist/context/ValidationContext/index.js +3 -4
  118. package/dist/context/index.js +3 -3
  119. package/dist/hooks/index.js +10 -11
  120. package/dist/hooks/useAxios.js +15 -41
  121. package/dist/hooks/useGetRequest.js +62 -98
  122. package/dist/hooks/useHooks.js +1 -3
  123. package/dist/hooks/useRefData.js +25 -37
  124. package/dist/hooks/useValidation.js +1 -3
  125. package/dist/index.js +14 -15
  126. package/dist/models/CollectionLabels.js +1 -1
  127. package/dist/models/ComponentTypes.js +25 -25
  128. package/dist/models/EventTypes.js +4 -4
  129. package/dist/models/FormPages.js +4 -4
  130. package/dist/models/FormTypes.js +8 -8
  131. package/dist/models/HubFormats.js +3 -3
  132. package/dist/models/PageAction.js +44 -38
  133. package/dist/models/TaskStates.js +29 -28
  134. package/dist/models/index.js +10 -10
  135. package/dist/setupTests.js +30 -31
  136. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  137. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  138. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
  139. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
  140. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
  141. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
  142. package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
  143. package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
  144. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
  145. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
  147. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
  148. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +79 -93
  149. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
  150. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -14
  151. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +146 -98
  152. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
  153. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
  154. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
  155. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
  156. package/dist/utils/CheckYourAnswers/index.js +2 -2
  157. package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
  158. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
  159. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  160. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
  161. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
  162. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
  163. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
  164. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
  165. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  166. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
  167. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  168. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
  169. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  170. package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
  171. package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
  172. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
  173. package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
  174. package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
  175. package/dist/utils/CollectionPage/index.js +2 -2
  176. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
  177. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
  178. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
  179. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
  180. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  181. package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
  182. package/dist/utils/Component/addShowWhen.js +5 -6
  183. package/dist/utils/Component/addShowWhen.test.js +38 -38
  184. package/dist/utils/Component/applyToComponentTree.js +12 -15
  185. package/dist/utils/Component/applyToComponentTree.test.js +28 -31
  186. package/dist/utils/Component/cleanAttributes.js +12 -11
  187. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  188. package/dist/utils/Component/elevateNestedComponents.js +6 -6
  189. package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
  190. package/dist/utils/Component/getComponent.js +81 -83
  191. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  192. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
  193. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
  194. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
  195. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  196. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
  197. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
  198. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
  199. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  200. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  201. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  202. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
  203. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -174
  204. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  205. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
  206. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
  207. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
  208. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
  209. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
  210. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
  211. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  212. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  213. package/dist/utils/Component/getDefaultValue.js +7 -9
  214. package/dist/utils/Component/getDefaultValue.test.js +13 -13
  215. package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
  216. package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
  217. package/dist/utils/Component/index.js +2 -2
  218. package/dist/utils/Component/isEditable.js +2 -4
  219. package/dist/utils/Component/isEditable.test.js +14 -15
  220. package/dist/utils/Component/optionIsSelected.js +2 -4
  221. package/dist/utils/Component/optionIsSelected.test.js +12 -12
  222. package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
  223. package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
  224. package/dist/utils/Component/showComponent.js +2 -2
  225. package/dist/utils/Component/showComponent.test.js +29 -29
  226. package/dist/utils/Component/wrapInFormGroup.js +4 -4
  227. package/dist/utils/Condition/index.js +2 -2
  228. package/dist/utils/Condition/meetsAllConditions.js +9 -9
  229. package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
  230. package/dist/utils/Condition/meetsCondition.js +17 -26
  231. package/dist/utils/Condition/meetsCondition.test.js +403 -403
  232. package/dist/utils/Condition/meetsOneCondition.js +6 -6
  233. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  234. package/dist/utils/Condition/setupConditions.js +12 -15
  235. package/dist/utils/Condition/setupConditions.test.js +8 -8
  236. package/dist/utils/Container/getEditableComponents.js +4 -6
  237. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  238. package/dist/utils/Container/index.js +2 -2
  239. package/dist/utils/Container/setupNesting.js +14 -15
  240. package/dist/utils/Container/setupNesting.test.js +20 -23
  241. package/dist/utils/Container/showContainer.js +4 -8
  242. package/dist/utils/Container/showContainer.test.js +31 -31
  243. package/dist/utils/Data/applyFormula.js +30 -44
  244. package/dist/utils/Data/applyFormula.test.js +21 -21
  245. package/dist/utils/Data/deleteValues.js +4 -8
  246. package/dist/utils/Data/deleteValues.test.js +11 -11
  247. package/dist/utils/Data/getAutocompleteSource.js +19 -27
  248. package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
  249. package/dist/utils/Data/getDataPath.js +18 -28
  250. package/dist/utils/Data/getDataPath.test.js +13 -13
  251. package/dist/utils/Data/getOptions.js +57 -30
  252. package/dist/utils/Data/getOptions.test.js +75 -28
  253. package/dist/utils/Data/getSourceData.js +6 -19
  254. package/dist/utils/Data/getSourceData.test.js +85 -81
  255. package/dist/utils/Data/index.js +2 -2
  256. package/dist/utils/Data/nestInRefdataOptions.js +9 -12
  257. package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
  258. package/dist/utils/Data/refDataToOptions.js +9 -10
  259. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  260. package/dist/utils/Data/setDataItem.js +7 -8
  261. package/dist/utils/Data/setDataItem.test.js +38 -38
  262. package/dist/utils/Data/setupFormData.js +13 -20
  263. package/dist/utils/Data/setupFormData.test.js +48 -47
  264. package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
  265. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
  266. package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
  267. package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
  268. package/dist/utils/FormPage/getConditionalText.js +4 -4
  269. package/dist/utils/FormPage/getConditionalText.test.js +30 -30
  270. package/dist/utils/FormPage/getFormPage.js +16 -12
  271. package/dist/utils/FormPage/getFormPage.test.js +23 -24
  272. package/dist/utils/FormPage/getFormPages.js +8 -11
  273. package/dist/utils/FormPage/getFormPages.test.js +15 -16
  274. package/dist/utils/FormPage/getPageActions.js +10 -13
  275. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  276. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  277. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  278. package/dist/utils/FormPage/index.js +3 -5
  279. package/dist/utils/FormPage/showFormPage.js +4 -8
  280. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  281. package/dist/utils/FormPage/showFormPageCYA.js +2 -2
  282. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  283. package/dist/utils/FormPage/useComponent.js +25 -22
  284. package/dist/utils/FormPage/useComponent.test.js +79 -44
  285. package/dist/utils/Format/formatData.js +1 -1
  286. package/dist/utils/Format/formatData.test.js +19 -19
  287. package/dist/utils/Format/formatDataForComponent.js +6 -7
  288. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  289. package/dist/utils/Format/formatDataForForm.js +5 -6
  290. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  291. package/dist/utils/Format/formatDataForPage.js +4 -5
  292. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  293. package/dist/utils/Format/index.js +2 -2
  294. package/dist/utils/Hub/getFormHub.js +2 -2
  295. package/dist/utils/Hub/getFormHub.test.js +23 -24
  296. package/dist/utils/Hub/index.js +2 -2
  297. package/dist/utils/Meta/constants.js +2 -2
  298. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  299. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  300. package/dist/utils/Meta/documents/index.js +2 -2
  301. package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
  302. package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
  303. package/dist/utils/Meta/index.js +2 -2
  304. package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
  305. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  306. package/dist/utils/Operate/deleteValueInFormData.js +2 -2
  307. package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
  308. package/dist/utils/Operate/getFirstOf.js +6 -6
  309. package/dist/utils/Operate/getFirstOf.test.js +32 -32
  310. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
  311. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  312. package/dist/utils/Operate/getLength.js +9 -9
  313. package/dist/utils/Operate/getLength.test.js +19 -19
  314. package/dist/utils/Operate/index.js +2 -2
  315. package/dist/utils/Operate/persistValueInFormData.js +4 -4
  316. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  317. package/dist/utils/Operate/runPageOperations.js +8 -8
  318. package/dist/utils/Operate/runPageOperations.test.js +24 -25
  319. package/dist/utils/Operate/setValueInFormData.js +3 -3
  320. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  321. package/dist/utils/Operate/shouldRun.js +7 -7
  322. package/dist/utils/Operate/shouldRun.test.js +22 -24
  323. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
  324. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
  325. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  326. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  327. package/dist/utils/Validate/additional/index.js +8 -8
  328. package/dist/utils/Validate/additional/index.test.js +22 -22
  329. package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
  330. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  331. package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
  332. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  333. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
  334. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
  335. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  336. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  337. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
  338. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  339. package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
  340. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  341. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  342. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  343. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  344. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  345. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  346. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  347. package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
  348. package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
  349. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  350. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  351. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
  352. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
  353. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  354. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  355. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  356. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  357. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  358. package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
  359. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  360. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  361. package/dist/utils/Validate/additional/utils.js +9 -22
  362. package/dist/utils/Validate/index.js +2 -2
  363. package/dist/utils/Validate/validateCollection.js +18 -23
  364. package/dist/utils/Validate/validateCollection.test.js +75 -67
  365. package/dist/utils/Validate/validateComponent.js +19 -19
  366. package/dist/utils/Validate/validateComponent.test.js +179 -154
  367. package/dist/utils/Validate/validateContainer.js +14 -17
  368. package/dist/utils/Validate/validateContainer.test.js +59 -53
  369. package/dist/utils/Validate/validateDate.js +16 -22
  370. package/dist/utils/Validate/validateDate.test.js +31 -32
  371. package/dist/utils/Validate/validateEmail.js +8 -9
  372. package/dist/utils/Validate/validateEmail.test.js +29 -26
  373. package/dist/utils/Validate/validateMultifile.js +5 -7
  374. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  375. package/dist/utils/Validate/validatePage.js +13 -18
  376. package/dist/utils/Validate/validatePage.test.js +198 -195
  377. package/dist/utils/Validate/validateRegex.js +3 -5
  378. package/dist/utils/Validate/validateRegex.test.js +15 -15
  379. package/dist/utils/Validate/validateRequired.js +4 -6
  380. package/dist/utils/Validate/validateRequired.test.js +19 -19
  381. package/dist/utils/Validate/validateTextArea.js +4 -6
  382. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  383. package/dist/utils/Validate/validateTime.js +12 -19
  384. package/dist/utils/Validate/validateTime.test.js +27 -27
  385. package/dist/utils/index.js +5 -6
  386. package/package.json +5 -5
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _elevateNestedComponents = _interopRequireDefault(require("./elevateNestedComponents"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils.Component.elevateNestedComponents', function () {
6
- it('should return an empty array if components is undefined', function () {
7
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('utils.Component.elevateNestedComponents', () => {
6
+ it('should return an empty array if components is undefined', () => {
7
+ const DATA = {
8
8
  alpha: 'abc'
9
9
  };
10
10
  expect((0, _elevateNestedComponents.default)(undefined, DATA)).toEqual([]);
11
11
  });
12
- it('should return an empty array if components is null', function () {
13
- var DATA = {
12
+ it('should return an empty array if components is null', () => {
13
+ const DATA = {
14
14
  alpha: 'abc'
15
15
  };
16
16
  expect((0, _elevateNestedComponents.default)(null, DATA)).toEqual([]);
17
17
  });
18
- it('should return an empty array if components is empty', function () {
19
- var DATA = {
18
+ it('should return an empty array if components is empty', () => {
19
+ const DATA = {
20
20
  alpha: 'abc'
21
21
  };
22
22
  expect((0, _elevateNestedComponents.default)([], DATA)).toEqual([]);
23
23
  });
24
- it('should return the original components if none have nested components', function () {
25
- var COMPONENTS = [{
24
+ it('should return the original components if none have nested components', () => {
25
+ const COMPONENTS = [{
26
26
  id: 'textComp'
27
27
  }, {
28
28
  id: 'radiosComp',
@@ -36,13 +36,13 @@ describe('utils.Component.elevateNestedComponents', function () {
36
36
  }]
37
37
  }
38
38
  }];
39
- var DATA = {
39
+ const DATA = {
40
40
  alpha: 'abc'
41
41
  };
42
42
  expect((0, _elevateNestedComponents.default)(COMPONENTS, DATA)).toEqual(COMPONENTS);
43
43
  });
44
- it('should return the original components if data is null', function () {
45
- var COMPONENTS = [{
44
+ it('should return the original components if data is null', () => {
45
+ const COMPONENTS = [{
46
46
  id: 'textComp'
47
47
  }, {
48
48
  id: 'radiosComp',
@@ -58,8 +58,8 @@ describe('utils.Component.elevateNestedComponents', function () {
58
58
  }];
59
59
  expect((0, _elevateNestedComponents.default)(COMPONENTS, null)).toEqual(COMPONENTS);
60
60
  });
61
- it('should return the original array with elevated nested components when they are visible', function () {
62
- var COMPONENTS = [{
61
+ it('should return the original array with elevated nested components when they are visible', () => {
62
+ const COMPONENTS = [{
63
63
  id: 'textComp'
64
64
  }, {
65
65
  id: 'radiosComp',
@@ -78,7 +78,7 @@ describe('utils.Component.elevateNestedComponents', function () {
78
78
  }]
79
79
  }
80
80
  }];
81
- var DATA = {
81
+ const DATA = {
82
82
  radiosComp: 'yes'
83
83
  };
84
84
  expect((0, _elevateNestedComponents.default)(COMPONENTS, DATA)).toEqual([].concat(COMPONENTS, [{
@@ -87,8 +87,8 @@ describe('utils.Component.elevateNestedComponents', function () {
87
87
  id: 'nestedTwo'
88
88
  }]));
89
89
  });
90
- it('should return the original array with elevated nested components when a component has a full_path', function () {
91
- var COMPONENTS = [{
90
+ it('should return the original array with elevated nested components when a component has a full_path', () => {
91
+ const COMPONENTS = [{
92
92
  id: 'textComp'
93
93
  }, {
94
94
  id: 'radiosComp',
@@ -108,7 +108,7 @@ describe('utils.Component.elevateNestedComponents', function () {
108
108
  },
109
109
  full_path: 'component.radiosComp'
110
110
  }];
111
- var DATA = {
111
+ const DATA = {
112
112
  component: {
113
113
  radiosComp: 'yes'
114
114
  }
@@ -119,8 +119,8 @@ describe('utils.Component.elevateNestedComponents', function () {
119
119
  id: 'nestedTwo'
120
120
  }]));
121
121
  });
122
- it('should not elevate nested components under a component which is hidden with a show_when', function () {
123
- var COMPONENTS = [{
122
+ it('should not elevate nested components under a component which is hidden with a show_when', () => {
123
+ const COMPONENTS = [{
124
124
  id: 'textComp'
125
125
  }, {
126
126
  id: 'radiosComp',
@@ -144,14 +144,14 @@ describe('utils.Component.elevateNestedComponents', function () {
144
144
  }]
145
145
  }
146
146
  }];
147
- var DATA = {
147
+ const DATA = {
148
148
  radiosComp: 'yes',
149
149
  testField: 'red'
150
150
  };
151
151
  expect((0, _elevateNestedComponents.default)(COMPONENTS, DATA)).toEqual([].concat(COMPONENTS));
152
152
  });
153
- it('should elevate nested components under a component which is shown with a show_When', function () {
154
- var COMPONENTS = [{
153
+ it('should elevate nested components under a component which is shown with a show_When', () => {
154
+ const COMPONENTS = [{
155
155
  id: 'textComp'
156
156
  }, {
157
157
  id: 'radiosComp',
@@ -175,7 +175,7 @@ describe('utils.Component.elevateNestedComponents', function () {
175
175
  }]
176
176
  }
177
177
  }];
178
- var DATA = {
178
+ const DATA = {
179
179
  radiosComp: 'yes',
180
180
  testField: 'red'
181
181
  };
@@ -185,8 +185,8 @@ describe('utils.Component.elevateNestedComponents', function () {
185
185
  id: 'nestedTwo'
186
186
  }]));
187
187
  });
188
- it('should elevate nested components under an option which is shown with a show_When', function () {
189
- var COMPONENTS = [{
188
+ it('should elevate nested components under an option which is shown with a show_When', () => {
189
+ const COMPONENTS = [{
190
190
  id: 'textComp'
191
191
  }, {
192
192
  id: 'radiosComp',
@@ -215,7 +215,7 @@ describe('utils.Component.elevateNestedComponents', function () {
215
215
  }]
216
216
  }
217
217
  }];
218
- var DATA = {
218
+ const DATA = {
219
219
  radiosComp: 'yes',
220
220
  testField: 'red',
221
221
  testFieldTwo: 'purple'
@@ -226,8 +226,8 @@ describe('utils.Component.elevateNestedComponents', function () {
226
226
  id: 'nestedTwo'
227
227
  }]));
228
228
  });
229
- it('should not elevate nested components under an option which is hidden with a show_When', function () {
230
- var COMPONENTS = [{
229
+ it('should not elevate nested components under an option which is hidden with a show_When', () => {
230
+ const COMPONENTS = [{
231
231
  id: 'textComp'
232
232
  }, {
233
233
  id: 'radiosComp',
@@ -256,15 +256,15 @@ describe('utils.Component.elevateNestedComponents', function () {
256
256
  }]
257
257
  }
258
258
  }];
259
- var DATA = {
259
+ const DATA = {
260
260
  radiosComp: 'yes',
261
261
  testField: 'red',
262
262
  testFieldTwo: 'orange'
263
263
  };
264
264
  expect((0, _elevateNestedComponents.default)(COMPONENTS, DATA)).toEqual([].concat(COMPONENTS));
265
265
  });
266
- it('should return the original array with elevated nested components that are defined using refdata_match when they are visible', function () {
267
- var COMPONENTS = [{
266
+ it('should return the original array with elevated nested components that are defined using refdata_match when they are visible', () => {
267
+ const COMPONENTS = [{
268
268
  id: 'textComp'
269
269
  }, {
270
270
  id: 'checkboxComp',
@@ -289,7 +289,7 @@ describe('utils.Component.elevateNestedComponents', function () {
289
289
  }]
290
290
  }
291
291
  }];
292
- var DATA = {
292
+ const DATA = {
293
293
  checkboxComp: [{
294
294
  value: 'yes',
295
295
  id: 99
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.getChildrenJsx = exports.default = void 0;
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _Condition = _interopRequireDefault(require("../Condition"));
10
10
  var _models = require("../../models");
11
11
  var _Data = _interopRequireDefault(require("../Data"));
12
12
  var _cleanAttributes = _interopRequireDefault(require("./cleanAttributes"));
13
13
  var _isEditable = _interopRequireDefault(require("./isEditable"));
14
14
  var _FormComponent = _interopRequireDefault(require("../../components/FormComponent"));
15
15
  var _wrapInFormGroup = _interopRequireDefault(require("./wrapInFormGroup"));
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
17
  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; }
18
18
  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; }
19
- 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; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
- 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); }
22
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable no-use-before-define */ // Global imports
19
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /* eslint-disable no-use-before-define */ // Global imports
23
23
  // Local imports
24
- var LIST_CLASS = 'govuk-list';
25
- var BODY_CLASS = 'govuk-body';
24
+ const LIST_CLASS = 'govuk-list';
25
+ const BODY_CLASS = 'govuk-body';
26
26
 
27
27
  /**
28
28
  * Separate function for each component type for the sake of
@@ -31,27 +31,27 @@ var BODY_CLASS = 'govuk-body';
31
31
  * makes it much harder to follow what's going on.
32
32
  */
33
33
 
34
- var getAlert = function getAlert(config) {
35
- var attrs = (0, _cleanAttributes.default)(config);
36
- var heading = _copReactComponents.Utils.interpolateString(config.heading, config.formData);
37
- var children = _copReactComponents.Utils.interpolateString(config.text, config.formData);
34
+ const getAlert = config => {
35
+ const attrs = (0, _cleanAttributes.default)(config);
36
+ const heading = _copReactComponents.Utils.interpolateString(config.heading, config.formData);
37
+ const children = _copReactComponents.Utils.interpolateString(config.text, config.formData);
38
38
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Alert, _extends({}, attrs, {
39
39
  heading: heading
40
40
  }), children);
41
41
  };
42
- var getAutocomplete = function getAutocomplete(config) {
43
- var attrs = (0, _cleanAttributes.default)(config);
44
- var source = _Data.default.getAutocompleteSource(config);
42
+ const getAutocomplete = config => {
43
+ const attrs = (0, _cleanAttributes.default)(config);
44
+ const source = _Data.default.getAutocompleteSource(config);
45
45
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Autocomplete, _extends({}, attrs, {
46
46
  source: source
47
47
  }));
48
48
  };
49
- var getCheckboxes = function getCheckboxes(config) {
50
- var options = [];
51
- _Data.default.getOptions(config, function (val) {
49
+ const getCheckboxes = config => {
50
+ let options = [];
51
+ _Data.default.getOptions(config, val => {
52
52
  options = val;
53
53
  });
54
- options = options.map(function (paramOption) {
54
+ options = options.map(paramOption => {
55
55
  if (!Array.isArray(paramOption.nested)) {
56
56
  return paramOption;
57
57
  }
@@ -59,75 +59,73 @@ var getCheckboxes = function getCheckboxes(config) {
59
59
  children: getChildrenJsx(config, paramOption.nested)
60
60
  });
61
61
  });
62
- var attrs = (0, _cleanAttributes.default)(config);
62
+ const attrs = (0, _cleanAttributes.default)(config);
63
63
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Checkboxes, _extends({}, attrs, {
64
64
  options: options
65
65
  }));
66
66
  };
67
- var getCalculation = function getCalculation(config) {
68
- var value = _Data.default.applyFormula(config);
67
+ const getCalculation = config => {
68
+ const value = _Data.default.applyFormula(config);
69
69
  if (typeof config.onChange === 'function') {
70
70
  if (value !== config.value) {
71
71
  config.onChange({
72
72
  target: {
73
73
  name: config.fieldId,
74
- value: value
74
+ value
75
75
  }
76
76
  });
77
77
  }
78
78
  }
79
- var attrs = (0, _cleanAttributes.default)(config, ['formula']);
79
+ const attrs = (0, _cleanAttributes.default)(config, ['formula']);
80
80
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, _extends({}, attrs, {
81
81
  readonly: true
82
82
  }));
83
83
  };
84
- var getDate = function getDate(config) {
85
- var attrs = (0, _cleanAttributes.default)(config);
84
+ const getDate = config => {
85
+ const attrs = (0, _cleanAttributes.default)(config);
86
86
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.DateInput, attrs);
87
87
  };
88
- var getDetails = function getDetails(config) {
89
- var attrs = (0, _cleanAttributes.default)(config, ['tagName']);
90
- var html = getHTML(config);
88
+ const getDetails = config => {
89
+ const attrs = (0, _cleanAttributes.default)(config, ['tagName']);
90
+ const html = getHTML(config);
91
91
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Details, attrs, html);
92
92
  };
93
- var getFileUpload = function getFileUpload(config) {
94
- var attrs = (0, _cleanAttributes.default)(config);
93
+ const getFileUpload = config => {
94
+ const attrs = (0, _cleanAttributes.default)(config);
95
95
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.FileUpload, attrs);
96
96
  };
97
- var getMultiFileUpload = function getMultiFileUpload(config) {
98
- var attrs = (0, _cleanAttributes.default)(config);
97
+ const getMultiFileUpload = config => {
98
+ const attrs = (0, _cleanAttributes.default)(config);
99
99
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.MultiFileUpload, attrs);
100
100
  };
101
- var getHeading = function getHeading(config) {
102
- var attrs = (0, _cleanAttributes.default)(config);
101
+ const getHeading = config => {
102
+ const attrs = (0, _cleanAttributes.default)(config);
103
103
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Heading, attrs, config.content);
104
104
  };
105
- var getHTML = function getHTML(config) {
106
- var attrs = (0, _cleanAttributes.default)(config);
105
+ const getHTML = config => {
106
+ const attrs = (0, _cleanAttributes.default)(config);
107
107
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Markup, attrs);
108
108
  };
109
- var getInsetText = function getInsetText(config) {
110
- var attrs = (0, _cleanAttributes.default)(config);
109
+ const getInsetText = config => {
110
+ const attrs = (0, _cleanAttributes.default)(config);
111
111
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.InsetText, attrs, config.content);
112
112
  };
113
- var getList = function getList(config) {
113
+ const getList = config => {
114
114
  var _attrs$items;
115
- var attrs = (0, _cleanAttributes.default)(config, ['ordered']);
116
- var tagName = config.ordered ? 'ol' : 'ul';
117
- var bullet = config.ordered ? 'number' : 'bullet';
118
- var classes = _copReactComponents.Utils.classBuilder(LIST_CLASS, bullet);
119
- var content = (_attrs$items = attrs.items) === null || _attrs$items === void 0 ? void 0 : _attrs$items.map(function (item) {
120
- return "<li>".concat(item, "</li>");
121
- }).join('');
115
+ const attrs = (0, _cleanAttributes.default)(config, ['ordered']);
116
+ const tagName = config.ordered ? 'ol' : 'ul';
117
+ const bullet = config.ordered ? 'number' : 'bullet';
118
+ const classes = _copReactComponents.Utils.classBuilder(LIST_CLASS, bullet);
119
+ const content = (_attrs$items = attrs.items) === null || _attrs$items === void 0 ? void 0 : _attrs$items.map(item => "<li>".concat(item, "</li>")).join('');
122
120
  return getHTML(_objectSpread(_objectSpread({}, attrs), {}, {
123
121
  className: classes(),
124
- tagName: tagName,
125
- content: content,
122
+ tagName,
123
+ content,
126
124
  type: _models.ComponentTypes.HTML
127
125
  }));
128
126
  };
129
- var getParagraph = function getParagraph(config) {
130
- var attrs = (0, _cleanAttributes.default)(config);
127
+ const getParagraph = config => {
128
+ const attrs = (0, _cleanAttributes.default)(config);
131
129
  return getHTML(_objectSpread(_objectSpread({
132
130
  className: BODY_CLASS
133
131
  }, attrs), {}, {
@@ -135,12 +133,12 @@ var getParagraph = function getParagraph(config) {
135
133
  type: _models.ComponentTypes.HTML
136
134
  }));
137
135
  };
138
- var getRadios = function getRadios(config) {
139
- var options = [];
140
- _Data.default.getOptions(config, function (val) {
136
+ const getRadios = config => {
137
+ let options = [];
138
+ _Data.default.getOptions(config, val => {
141
139
  options = val;
142
140
  });
143
- options = options.map(function (paramOption) {
141
+ options = options.map(paramOption => {
144
142
  if (!Array.isArray(paramOption.nested)) {
145
143
  return paramOption;
146
144
  }
@@ -148,38 +146,38 @@ var getRadios = function getRadios(config) {
148
146
  children: getChildrenJsx(config, paramOption.nested)
149
147
  });
150
148
  });
151
- var attrs = (0, _cleanAttributes.default)(config);
149
+ const attrs = (0, _cleanAttributes.default)(config);
152
150
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Radios, _extends({}, attrs, {
153
151
  options: options
154
152
  }));
155
153
  };
156
- var getTextArea = function getTextArea(config) {
157
- var attrs = (0, _cleanAttributes.default)(config);
154
+ const getTextArea = config => {
155
+ const attrs = (0, _cleanAttributes.default)(config);
158
156
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextArea, attrs);
159
157
  };
160
- var getTextInput = function getTextInput(config) {
161
- var attrs = (0, _cleanAttributes.default)(config);
158
+ const getTextInput = config => {
159
+ const attrs = (0, _cleanAttributes.default)(config);
162
160
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, attrs);
163
161
  };
164
- var getTime = function getTime(config) {
165
- var attrs = (0, _cleanAttributes.default)(config);
162
+ const getTime = config => {
163
+ const attrs = (0, _cleanAttributes.default)(config);
166
164
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TimeInput, attrs);
167
165
  };
168
- var getSelect = function getSelect(config) {
169
- var options = [];
170
- _Data.default.getOptions(config, function (val) {
166
+ const getSelect = config => {
167
+ let options = [];
168
+ _Data.default.getOptions(config, val => {
171
169
  options = val;
172
170
  });
173
- var attrs = (0, _cleanAttributes.default)(config);
171
+ const attrs = (0, _cleanAttributes.default)(config);
174
172
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Select, _extends({}, attrs, {
175
173
  options: options
176
174
  }));
177
175
  };
178
- var getWarningText = function getWarningText(config) {
179
- var attrs = (0, _cleanAttributes.default)(config);
176
+ const getWarningText = config => {
177
+ const attrs = (0, _cleanAttributes.default)(config);
180
178
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.WarningText, attrs, config.content);
181
179
  };
182
- var getComponentByType = function getComponentByType(config) {
180
+ const getComponentByType = config => {
183
181
  switch (config.type) {
184
182
  case _models.ComponentTypes.HTML:
185
183
  return getHTML(config);
@@ -233,10 +231,10 @@ var getComponentByType = function getComponentByType(config) {
233
231
  * @param {*} parent the parent configuration
234
232
  * @param {*} child the child configuration
235
233
  */
236
- var getChildJsx = function getChildJsx(parent, paramChild) {
237
- var child = _objectSpread({}, paramChild);
234
+ const getChildJsx = (parent, paramChild) => {
235
+ const child = _objectSpread({}, paramChild);
238
236
  if (parent.full_path) {
239
- var pathParts = parent.full_path.split('.');
237
+ const pathParts = parent.full_path.split('.');
240
238
  pathParts.pop();
241
239
  pathParts.push(child.fieldId);
242
240
  child.full_path = pathParts.join('.');
@@ -264,13 +262,13 @@ var getChildJsx = function getChildJsx(parent, paramChild) {
264
262
  * @param {*} parentConfig parent component which the childrenConfigs will be under
265
263
  * @param {*} childrenConfigs array of configurations for the child components
266
264
  */
267
- var getChildrenJsx = exports.getChildrenJsx = function getChildrenJsx(parentConfig, childrenConfigs) {
268
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, childrenConfigs.map(function (config) {
269
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
270
- key: config.id
271
- }, getChildJsx(parentConfig, config));
272
- }));
265
+ const getChildrenJsx = (parentConfig, childrenConfigs) => {
266
+ const validChildren = childrenConfigs.filter(config => !(config.show_when && !_Condition.default.meetsAll(config.show_when, parentConfig.formData))).map(config => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
267
+ key: config.id
268
+ }, getChildJsx(parentConfig, config)));
269
+ return validChildren.length > 0 ? validChildren : null;
273
270
  };
271
+ exports.getChildrenJsx = getChildrenJsx;
274
272
  /**
275
273
  * Get a renderable component, based on a configuration object.
276
274
  * @param {object} config The configuration object for the component.
@@ -278,16 +276,16 @@ var getChildrenJsx = exports.getChildrenJsx = function getChildrenJsx(parentConf
278
276
  * @param {Function} fnOverride An optional override function for component rendering.
279
277
  * @returns A renderable component.
280
278
  */
281
- var getComponent = function getComponent(config) {
282
- var wrap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
283
- var fnOverride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
279
+ const getComponent = function (config) {
280
+ let wrap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
281
+ let fnOverride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
284
282
  if (typeof fnOverride === 'function') {
285
- var overrideComponent = fnOverride(config, wrap);
283
+ const overrideComponent = fnOverride(config, wrap);
286
284
  if (overrideComponent) {
287
285
  return overrideComponent;
288
286
  }
289
287
  }
290
- var component = getComponentByType(config);
288
+ const component = getComponentByType(config);
291
289
  if (component && wrap && (0, _isEditable.default)(config)) {
292
290
  return (0, _wrapInFormGroup.default)(config, component);
293
291
  }
@@ -3,18 +3,18 @@
3
3
  var _react = require("@testing-library/react");
4
4
  var _models = require("../../../models");
5
5
  var _getComponent = _interopRequireDefault(require("../getComponent"));
6
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
7
  // Global imports
8
8
 
9
9
  // Local imports
10
10
 
11
- describe('utils.Component.get', function () {
12
- it('should return an appropriately rendered autocomplete component', function () {
13
- var ID = 'test-id';
14
- var FIELD_ID = 'field-id';
15
- var LABEL = 'label';
16
- var OPTIONS = [];
17
- var COMPONENT = {
11
+ describe('utils.Component.get', () => {
12
+ it('should return an appropriately rendered autocomplete component', () => {
13
+ const ID = 'test-id';
14
+ const FIELD_ID = 'field-id';
15
+ const LABEL = 'label';
16
+ const OPTIONS = [];
17
+ const COMPONENT = {
18
18
  type: _models.ComponentTypes.AUTOCOMPLETE,
19
19
  id: ID,
20
20
  fieldId: FIELD_ID,
@@ -24,26 +24,27 @@ describe('utils.Component.get', function () {
24
24
  },
25
25
  'data-testid': ID
26
26
  };
27
- var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
28
- container = _render.container;
29
- var formGroup = (0, _react.getByTestId)(container, ID);
27
+ const {
28
+ container
29
+ } = (0, _react.render)((0, _getComponent.default)(COMPONENT));
30
+ const formGroup = (0, _react.getByTestId)(container, ID);
30
31
  expect(formGroup.tagName).toEqual('DIV');
31
32
  expect(formGroup.classList).toContain('govuk-form-group');
32
- var label;
33
- var autocompleteWrapper;
34
- var autocomplete;
35
- var autocompleteInput;
36
- formGroup.childNodes.forEach(function (node) {
33
+ let label;
34
+ let autocompleteWrapper;
35
+ let autocomplete;
36
+ let autocompleteInput;
37
+ formGroup.childNodes.forEach(node => {
37
38
  // Check if it's an element.
38
39
  if (node instanceof Element) {
39
40
  if (node.tagName === 'LABEL') {
40
41
  label = node;
41
42
  } else if (node.classList.contains('hods-autocomplete__outer-wrapper')) {
42
43
  autocompleteWrapper = node;
43
- var autocompleteInner = node.childNodes[0];
44
+ const autocompleteInner = node.childNodes[0];
44
45
  if (autocompleteInner instanceof Element) {
45
46
  autocomplete = autocompleteInner;
46
- autocomplete.childNodes.forEach(function (grandchild) {
47
+ autocomplete.childNodes.forEach(grandchild => {
47
48
  if (grandchild instanceof Element) {
48
49
  if (grandchild.tagName === 'INPUT') {
49
50
  autocompleteInput = grandchild;