@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.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 (372) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
  11. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  12. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  13. package/dist/components/CollectionSummary/RenderListView.js +52 -46
  14. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  15. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  16. package/dist/components/CollectionSummary/SummaryCard.js +152 -110
  17. package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
  18. package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
  19. package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  23. package/dist/components/FormComponent/Collection.js +108 -74
  24. package/dist/components/FormComponent/Collection.test.js +1081 -909
  25. package/dist/components/FormComponent/Container.js +39 -40
  26. package/dist/components/FormComponent/Container.test.js +412 -312
  27. package/dist/components/FormComponent/FormComponent.js +72 -69
  28. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  29. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  30. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  31. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  32. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  33. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  34. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  35. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  36. package/dist/components/FormComponent/helpers/index.js +4 -4
  37. package/dist/components/FormPage/FormPage.js +80 -65
  38. package/dist/components/FormPage/FormPage.test.js +163 -127
  39. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  40. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  41. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  42. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  43. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  44. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  45. package/dist/components/FormRenderer/handlers/index.js +1 -1
  46. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  47. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  48. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  49. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  50. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  51. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  52. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
  53. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  54. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  55. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  57. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  58. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  59. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  60. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  61. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  62. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  63. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  64. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  65. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  66. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  67. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  68. package/dist/components/FormRenderer/helpers/index.js +1 -1
  69. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  70. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  71. package/dist/components/FormRenderer/onPageAction.js +39 -43
  72. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  73. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  74. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  75. package/dist/components/PageActions/ActionButton.js +15 -12
  76. package/dist/components/PageActions/ActionButton.test.js +78 -56
  77. package/dist/components/PageActions/PageActions.js +10 -10
  78. package/dist/components/PageActions/PageActions.test.js +115 -86
  79. package/dist/components/SummaryList/GroupAction.js +17 -9
  80. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  81. package/dist/components/SummaryList/RowAction.js +16 -11
  82. package/dist/components/SummaryList/RowAction.test.js +33 -37
  83. package/dist/components/SummaryList/SummaryList.js +34 -21
  84. package/dist/components/SummaryList/SummaryList.scss +15 -0
  85. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  86. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  87. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  88. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  89. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  90. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  91. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  92. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  93. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/index.js +1 -1
  96. package/dist/components/TaskList/Task.js +29 -19
  97. package/dist/components/TaskList/Task.test.js +76 -83
  98. package/dist/components/TaskList/TaskList.js +92 -49
  99. package/dist/components/TaskList/TaskList.scss +24 -0
  100. package/dist/components/TaskList/TaskList.test.js +255 -113
  101. package/dist/components/TaskList/TaskState.js +5 -7
  102. package/dist/components/TaskList/TaskState.test.js +45 -52
  103. package/dist/components/index.js +7 -7
  104. package/dist/context/HooksContext/HooksContext.js +80 -57
  105. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  106. package/dist/context/HooksContext/index.js +4 -3
  107. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  108. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  109. package/dist/context/ValidationContext/index.js +4 -3
  110. package/dist/context/index.js +2 -2
  111. package/dist/hooks/index.js +10 -9
  112. package/dist/hooks/useAxios.js +40 -14
  113. package/dist/hooks/useGetRequest.js +97 -61
  114. package/dist/hooks/useHooks.js +3 -1
  115. package/dist/hooks/useRefData.js +39 -26
  116. package/dist/hooks/useValidation.js +3 -1
  117. package/dist/index.js +14 -13
  118. package/dist/models/CollectionLabels.js +1 -1
  119. package/dist/models/ComponentTypes.js +25 -25
  120. package/dist/models/EventTypes.js +4 -4
  121. package/dist/models/FormPages.js +4 -4
  122. package/dist/models/FormTypes.js +8 -8
  123. package/dist/models/HubFormats.js +3 -3
  124. package/dist/models/PageAction.js +38 -44
  125. package/dist/models/TaskStates.js +28 -29
  126. package/dist/models/index.js +9 -9
  127. package/dist/setupTests.js +31 -30
  128. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  129. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  130. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  131. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  132. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  133. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  134. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  135. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  136. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  137. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  138. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  139. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  140. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
  141. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
  142. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  144. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  145. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  146. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  147. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  148. package/dist/utils/CheckYourAnswers/index.js +1 -1
  149. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  150. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  151. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  152. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  153. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  154. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  155. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  156. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  157. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  158. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  159. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  160. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  161. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  162. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  163. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  164. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  165. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  166. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  167. package/dist/utils/CollectionPage/index.js +1 -1
  168. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  169. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  170. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  171. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  172. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  173. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  174. package/dist/utils/Component/addShowWhen.js +8 -4
  175. package/dist/utils/Component/addShowWhen.test.js +37 -37
  176. package/dist/utils/Component/applyToComponentTree.js +18 -18
  177. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  178. package/dist/utils/Component/cleanAttributes.js +13 -10
  179. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  180. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  181. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  182. package/dist/utils/Component/getComponent.js +94 -88
  183. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  184. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  185. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  186. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  187. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  188. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  190. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  191. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  192. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  193. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  194. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  196. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  197. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  199. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  200. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  202. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  203. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  204. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  205. package/dist/utils/Component/getDefaultValue.js +8 -6
  206. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  207. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  208. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  209. package/dist/utils/Component/index.js +1 -1
  210. package/dist/utils/Component/isEditable.js +4 -2
  211. package/dist/utils/Component/isEditable.test.js +15 -14
  212. package/dist/utils/Component/optionIsSelected.js +6 -1
  213. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  214. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  215. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  216. package/dist/utils/Component/showComponent.js +1 -1
  217. package/dist/utils/Component/showComponent.test.js +28 -28
  218. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  219. package/dist/utils/Condition/index.js +1 -1
  220. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  221. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  222. package/dist/utils/Condition/meetsCondition.js +25 -16
  223. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  224. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  225. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  226. package/dist/utils/Condition/setupConditions.js +18 -13
  227. package/dist/utils/Condition/setupConditions.test.js +7 -7
  228. package/dist/utils/Container/getEditableComponents.js +5 -3
  229. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  230. package/dist/utils/Container/index.js +1 -1
  231. package/dist/utils/Container/setupNesting.js +20 -16
  232. package/dist/utils/Container/setupNesting.test.js +30 -27
  233. package/dist/utils/Container/showContainer.js +7 -3
  234. package/dist/utils/Container/showContainer.test.js +30 -30
  235. package/dist/utils/Data/applyFormula.js +48 -38
  236. package/dist/utils/Data/applyFormula.test.js +20 -20
  237. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  238. package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
  239. package/dist/utils/Data/getDataPath.js +28 -18
  240. package/dist/utils/Data/getDataPath.test.js +12 -12
  241. package/dist/utils/Data/getOptions.js +30 -24
  242. package/dist/utils/Data/getOptions.test.js +27 -27
  243. package/dist/utils/Data/getSourceData.js +19 -6
  244. package/dist/utils/Data/getSourceData.test.js +80 -84
  245. package/dist/utils/Data/index.js +1 -1
  246. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  247. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  248. package/dist/utils/Data/refDataToOptions.js +13 -10
  249. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  250. package/dist/utils/Data/setDataItem.js +8 -7
  251. package/dist/utils/Data/setDataItem.test.js +37 -37
  252. package/dist/utils/Data/setupFormData.js +21 -13
  253. package/dist/utils/Data/setupFormData.test.js +50 -51
  254. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  255. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  256. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  257. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  258. package/dist/utils/FormPage/getConditionalText.js +3 -3
  259. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  260. package/dist/utils/FormPage/getFormPage.js +16 -15
  261. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  262. package/dist/utils/FormPage/getFormPages.js +12 -7
  263. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  264. package/dist/utils/FormPage/getPageActions.js +15 -9
  265. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  266. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  267. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  268. package/dist/utils/FormPage/index.js +4 -2
  269. package/dist/utils/FormPage/showFormPage.js +7 -3
  270. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  271. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  272. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  273. package/dist/utils/FormPage/useComponent.js +28 -21
  274. package/dist/utils/FormPage/useComponent.test.js +79 -77
  275. package/dist/utils/Format/formatData.js +1 -1
  276. package/dist/utils/Format/formatData.test.js +18 -18
  277. package/dist/utils/Format/formatDataForComponent.js +6 -5
  278. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  279. package/dist/utils/Format/formatDataForForm.js +8 -6
  280. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  281. package/dist/utils/Format/formatDataForPage.js +5 -4
  282. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  283. package/dist/utils/Format/index.js +1 -1
  284. package/dist/utils/Hub/getFormHub.js +1 -1
  285. package/dist/utils/Hub/getFormHub.test.js +31 -28
  286. package/dist/utils/Hub/index.js +1 -1
  287. package/dist/utils/Meta/constants.js +2 -2
  288. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  289. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  290. package/dist/utils/Meta/documents/index.js +1 -1
  291. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  292. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  293. package/dist/utils/Meta/index.js +1 -1
  294. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  295. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  296. package/dist/utils/Operate/getFirstOf.js +5 -5
  297. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  298. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  299. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  300. package/dist/utils/Operate/getLength.js +50 -0
  301. package/dist/utils/Operate/getLength.test.js +89 -0
  302. package/dist/utils/Operate/index.js +1 -1
  303. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  304. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  305. package/dist/utils/Operate/runPageOperations.js +9 -7
  306. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  307. package/dist/utils/Operate/setValueInFormData.js +2 -2
  308. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  309. package/dist/utils/Operate/shouldRun.js +6 -6
  310. package/dist/utils/Operate/shouldRun.test.js +27 -21
  311. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  312. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  313. package/dist/utils/Validate/additional/index.js +6 -6
  314. package/dist/utils/Validate/additional/index.test.js +12 -12
  315. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  317. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  318. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  319. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  320. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  321. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  322. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  323. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  325. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  326. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  327. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  328. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  329. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  330. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  331. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  333. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  334. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  335. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  337. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  338. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  339. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  340. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  341. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  342. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  343. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  344. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  345. package/dist/utils/Validate/additional/utils.js +22 -9
  346. package/dist/utils/Validate/index.js +1 -1
  347. package/dist/utils/Validate/validateCollection.js +25 -19
  348. package/dist/utils/Validate/validateCollection.test.js +66 -74
  349. package/dist/utils/Validate/validateComponent.js +21 -18
  350. package/dist/utils/Validate/validateComponent.test.js +176 -166
  351. package/dist/utils/Validate/validateContainer.js +20 -15
  352. package/dist/utils/Validate/validateContainer.test.js +52 -58
  353. package/dist/utils/Validate/validateDate.js +21 -15
  354. package/dist/utils/Validate/validateDate.test.js +32 -31
  355. package/dist/utils/Validate/validateEmail.js +8 -6
  356. package/dist/utils/Validate/validateEmail.test.js +25 -25
  357. package/dist/utils/Validate/validateMultifile.js +7 -5
  358. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  359. package/dist/utils/Validate/validatePage.js +22 -19
  360. package/dist/utils/Validate/validatePage.test.js +203 -215
  361. package/dist/utils/Validate/validateRegex.js +5 -3
  362. package/dist/utils/Validate/validateRegex.test.js +14 -14
  363. package/dist/utils/Validate/validateRequired.js +6 -4
  364. package/dist/utils/Validate/validateRequired.test.js +18 -18
  365. package/dist/utils/Validate/validateTextArea.js +6 -4
  366. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  367. package/dist/utils/Validate/validateTime.js +26 -11
  368. package/dist/utils/Validate/validateTime.test.js +62 -16
  369. package/dist/utils/index.js +9 -7
  370. package/package.json +2 -2
  371. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  372. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -8,50 +8,110 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _utils = _interopRequireDefault(require("../../utils"));
10
10
  var _models = require("../../models");
11
- var _getComponentRowForCYA = _interopRequireDefault(require("../../utils/CheckYourAnswers/getComponentRowForCYA"));
11
+ var _getSummaryListRowForDetails = _interopRequireDefault(require("../../utils/CheckYourAnswers/getSummaryListRowForDetails"));
12
+ var _getCYARowsForCollection = _interopRequireDefault(require("../../utils/CheckYourAnswers/getCYARowsForCollection"));
12
13
  var _getCYARowsForContainer = _interopRequireDefault(require("../../utils/CheckYourAnswers/getCYARowsForContainer"));
13
14
  var _showComponent = _interopRequireDefault(require("../../utils/Component/showComponent"));
15
+ var _Condition = _interopRequireDefault(require("../../utils/Condition"));
14
16
  require("./SummaryCardDetails.scss");
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
- // Global imports.
19
-
20
+ 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); }
21
+ 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; }
22
+ 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; }
23
+ 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; }
24
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
25
+ 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); } // Global imports.
20
26
  // Local imports.
21
-
22
27
  // Styles.
23
-
24
- const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form-summary-card-details';
25
- const SummaryCardDetails = _ref => {
28
+ var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form-summary-card-details';
29
+ var SummaryCardDetails = function SummaryCardDetails(_ref) {
26
30
  var _masterPage$childPage;
27
- let {
28
- masterPage,
29
- childCollections,
30
- formData,
31
- entryData,
32
- classModifiers,
33
- hideChildSectionTitles
34
- } = _ref;
35
- const classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers);
36
- const childMasterPages = (0, _react.useMemo)(() => childCollections.map(childName => masterPage.childPages.find(page => {
37
- var _page$collection;
38
- return ((_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name) === childName;
39
- })).filter(e => !!e), [masterPage, childCollections]);
40
- const getSectionContent = (section, components, childPage) => {
41
- let columnIndex = 0;
42
- return section.columns.flatMap((column, index) => {
31
+ var masterPage = _ref.masterPage,
32
+ childCollections = _ref.childCollections,
33
+ formData = _ref.formData,
34
+ entryData = _ref.entryData,
35
+ classModifiers = _ref.classModifiers,
36
+ hideChildSectionTitles = _ref.hideChildSectionTitles,
37
+ optionalFieldPlaceholder = _ref.optionalFieldPlaceholder;
38
+ var classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers);
39
+ var childMasterPages = (0, _react.useMemo)(function () {
40
+ return childCollections.map(function (childName) {
41
+ return masterPage.childPages.find(function (page) {
42
+ var _page$collection;
43
+ return ((_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name) === childName;
44
+ });
45
+ }).filter(function (e) {
46
+ return !!e;
47
+ });
48
+ }, [masterPage, childCollections]);
49
+ var getSectionContent = function getSectionContent(columns, components, childPage) {
50
+ var columnIndex = 0;
51
+ return columns.flatMap(function (column, index) {
43
52
  var _column$fields;
44
- let rowIndex = 0;
45
- const columnContent = (_column$fields = column.fields) === null || _column$fields === void 0 ? void 0 : _column$fields.flatMap(fieldId => {
46
- const component = components.find(comp => comp.fieldId === fieldId);
47
- if (!component || !(0, _showComponent.default)(component, {
48
- ...childPage.formData,
49
- ...entryData
50
- })) {
51
- return null;
52
- }
53
- if (component.type === _models.ComponentTypes.CONTAINER) {
54
- const containerRows = (0, _getCYARowsForContainer.default)(childPage, component, entryData);
53
+ var rowIndex = 0;
54
+ var columnContent = (_column$fields = column.fields) === null || _column$fields === void 0 ? void 0 : _column$fields.flatMap(function (fieldId) {
55
+ var componentMatches = components.filter(function (comp) {
56
+ return comp.fieldId === fieldId;
57
+ });
58
+ return componentMatches.map(function (component) {
59
+ if (!component || !(0, _showComponent.default)(component, _objectSpread(_objectSpread({}, childPage.formData), entryData))) {
60
+ return null;
61
+ }
62
+ if (component.type === _models.ComponentTypes.CONTAINER) {
63
+ var containerRows = (0, _getCYARowsForContainer.default)(childPage, component, entryData);
64
+ rowIndex += 1;
65
+ return /*#__PURE__*/_react.default.createElement("div", {
66
+ key: fieldId,
67
+ className: classes('field'),
68
+ style: {
69
+ '--column': columnIndex + 1,
70
+ '--row': rowIndex
71
+ }
72
+ }, containerRows.map(function (subComponent) {
73
+ var _entryData$component$;
74
+ // Put value for current subcomponent at top level
75
+ var modEntry = _objectSpread(_objectSpread({}, entryData), _defineProperty({}, subComponent.fieldId, (_entryData$component$ = entryData[component.fieldId]) === null || _entryData$component$ === void 0 ? void 0 : _entryData$component$[subComponent.fieldId]));
76
+ return (0, _getSummaryListRowForDetails.default)(childPage, _objectSpread(_objectSpread({}, subComponent), {
77
+ label: subComponent.key
78
+ }), classes, modEntry, optionalFieldPlaceholder);
79
+ }));
80
+ }
81
+ if (component.type === _models.ComponentTypes.COLLECTION) {
82
+ var collectionRows = (0, _getCYARowsForCollection.default)(_objectSpread(_objectSpread({}, childPage), {}, {
83
+ formData: _objectSpread(_objectSpread({}, childPage.formData), entryData)
84
+ }), component, entryData[component.id]);
85
+ rowIndex += 1;
86
+ var collectionHeadingIndex = 0;
87
+ return /*#__PURE__*/_react.default.createElement("div", {
88
+ key: fieldId,
89
+ className: classes('field'),
90
+ style: {
91
+ '--column': columnIndex + 1,
92
+ '--row': rowIndex
93
+ }
94
+ }, collectionRows.map(function (subComponent) {
95
+ var _entryData$component$2;
96
+ // Put value for current subComponent at the top level
97
+ var modEntry = _objectSpread(_objectSpread({}, entryData), _defineProperty({}, subComponent.fieldId, (_entryData$component$2 = entryData[component.fieldId]) === null || _entryData$component$2 === void 0 ? void 0 : _entryData$component$2[subComponent.fieldId]));
98
+ var rowContent = (0, _getSummaryListRowForDetails.default)(childPage, _objectSpread(_objectSpread({}, subComponent), {
99
+ label: subComponent.key
100
+ }), classes, modEntry, optionalFieldPlaceholder);
101
+ // Because collections are flat, we need to identify the subsequent titles (2, 3, 4... etc) in order to apply appropriate spacing
102
+ if (subComponent.type === 'title') {
103
+ collectionHeadingIndex += 1;
104
+ if (collectionHeadingIndex > 1) {
105
+ return /*#__PURE__*/_react.default.createElement("div", {
106
+ style: {
107
+ marginTop: '40px'
108
+ }
109
+ }, rowContent);
110
+ }
111
+ }
112
+ return rowContent;
113
+ }));
114
+ }
55
115
  rowIndex += 1;
56
116
  return /*#__PURE__*/_react.default.createElement("div", {
57
117
  key: fieldId,
@@ -60,38 +120,16 @@ const SummaryCardDetails = _ref => {
60
120
  '--column': columnIndex + 1,
61
121
  '--row': rowIndex
62
122
  }
63
- }, containerRows.map(subComponent => {
64
- var _entryData$component$;
65
- // Put value for current subcomponent at top level
66
- const modEntry = {
67
- ...entryData,
68
- ...{
69
- [subComponent.fieldId]: (_entryData$component$ = entryData[component.fieldId]) === null || _entryData$component$ === void 0 ? void 0 : _entryData$component$[subComponent.fieldId]
70
- }
71
- };
72
- return (0, _getComponentRowForCYA.default)(childPage, {
73
- ...subComponent,
74
- ...{
75
- label: subComponent.key
76
- }
77
- }, classes, modEntry);
78
- }));
79
- }
80
- rowIndex += 1;
81
- return /*#__PURE__*/_react.default.createElement("div", {
82
- key: fieldId,
83
- className: classes('field'),
84
- style: {
85
- '--column': columnIndex + 1,
86
- '--row': rowIndex
87
- }
88
- }, (0, _getComponentRowForCYA.default)(childPage, component, classes, entryData));
89
- }).filter(e => !!e);
123
+ }, (0, _getSummaryListRowForDetails.default)(childPage, component, classes, entryData, optionalFieldPlaceholder));
124
+ });
125
+ }).filter(function (e) {
126
+ return !!e;
127
+ });
90
128
  // If the column that's just been generated has anything in it
91
129
  // then we stick a divider on it's right side. The divider isn't
92
130
  // passed rowIndex as it spans all rows. columnIndex is incremented
93
131
  // twice to account for the divider column too.
94
- const lastColumn = index === section.columns.length - 1;
132
+ var lastColumn = index === columns.length - 1;
95
133
  if (!lastColumn && columnContent.length !== 0) {
96
134
  columnIndex += 2;
97
135
  return [].concat(columnContent, [/*#__PURE__*/_react.default.createElement("div", {
@@ -103,54 +141,57 @@ const SummaryCardDetails = _ref => {
103
141
  })]);
104
142
  }
105
143
  return columnContent;
106
- }).filter(e => !!e);
144
+ }).filter(function (e) {
145
+ return !!e;
146
+ });
107
147
  };
108
- return (masterPage === null || masterPage === void 0 || (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.filter(p => _utils.default.FormPage.show(p, {
109
- ...formData,
110
- ...entryData
111
- })).map(childPage => {
148
+ return (masterPage === null || masterPage === void 0 || (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.filter(function (p) {
149
+ return _utils.default.FormPage.show(p, _objectSpread(_objectSpread({}, formData), entryData));
150
+ }).map(function (childPage) {
112
151
  var _childPage$summaryLay;
113
- const allPageComponents = _utils.default.Component.elevateNested(childPage === null || childPage === void 0 ? void 0 : childPage.components, entryData);
114
- return (_childPage$summaryLay = childPage.summaryLayout) === null || _childPage$summaryLay === void 0 ? void 0 : _childPage$summaryLay.sections.map(section => {
115
- if (section.show_when && !_utils.default.Condition.meetsAll(section.show_when, {
116
- ...formData,
117
- ...entryData
118
- })) {
152
+ var allPageComponents = _utils.default.Component.elevateNested(childPage === null || childPage === void 0 ? void 0 : childPage.components, entryData);
153
+ return (_childPage$summaryLay = childPage.summaryLayout) === null || _childPage$summaryLay === void 0 ? void 0 : _childPage$summaryLay.sections.map(function (section) {
154
+ if (section.show_when && !_utils.default.Condition.meetsAll(section.show_when, _objectSpread(_objectSpread({}, formData), entryData))) {
119
155
  return null;
120
156
  }
121
157
  if (section.type === 'childCollection') {
122
- const childMasterPage = childMasterPages.find(p => p.collection.name === section.collectionName);
123
- const childFormData = entryData[section.collectionName.split('.').pop()] || [];
158
+ var childMasterPage = childMasterPages.find(function (p) {
159
+ return p.collection.name === section.collectionName;
160
+ });
161
+ var childFormData = entryData[section.collectionName.split('.').pop()] || [];
124
162
  if (childMasterPage && childFormData.length > 0) {
125
163
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h3", {
126
164
  className: classes('section-title')
127
- }, section.title), childFormData.map(entry => /*#__PURE__*/_react.default.createElement(SummaryCardDetails, {
128
- masterPage: childMasterPage,
129
- childMasterPages: [],
130
- formData: {
131
- ...formData,
132
- ...entryData,
133
- ...entry
134
- },
135
- entryData: entry,
136
- hideChildSectionTitles: true
137
- })));
165
+ }, section.title), childFormData.map(function (entry) {
166
+ return /*#__PURE__*/_react.default.createElement(SummaryCardDetails, {
167
+ masterPage: childMasterPage,
168
+ childMasterPages: [],
169
+ formData: _objectSpread(_objectSpread(_objectSpread({}, formData), entryData), entry),
170
+ entryData: entry,
171
+ hideChildSectionTitles: true
172
+ });
173
+ }));
138
174
  }
139
175
  return null;
140
176
  }
177
+ var columns = section.columns.filter(function (column) {
178
+ return _Condition.default.meetsAll(column, _objectSpread(_objectSpread({}, childPage.formData), entryData));
179
+ });
141
180
  return /*#__PURE__*/_react.default.createElement("div", {
142
181
  key: section.title,
143
182
  className: classes('section')
144
183
  }, !hideChildSectionTitles && /*#__PURE__*/_react.default.createElement("h3", {
145
184
  className: classes('section-title')
146
- }, section.title), /*#__PURE__*/_react.default.createElement("div", {
185
+ }, _utils.default.FormPage.getConditionalText(section.title, _objectSpread(_objectSpread({}, childPage.formData), entryData))), /*#__PURE__*/_react.default.createElement("div", {
147
186
  className: classes('section-content'),
148
187
  style: {
149
- '--dividers': section.columns.length - 1
188
+ '--dividers': columns.length - 1
150
189
  }
151
- }, getSectionContent(section, allPageComponents, childPage)));
190
+ }, getSectionContent(columns, allPageComponents, childPage)));
152
191
  });
153
- }).filter(e => !!e)) || null;
192
+ }).filter(function (e) {
193
+ return !!e;
194
+ })) || null;
154
195
  };
155
196
  SummaryCardDetails.propTypes = {
156
197
  childCollections: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -160,11 +201,13 @@ SummaryCardDetails.propTypes = {
160
201
  formData: _propTypes.default.shape({}).isRequired,
161
202
  entryData: _propTypes.default.shape({}).isRequired,
162
203
  classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
163
- hideChildSectionTitles: _propTypes.default.bool
204
+ hideChildSectionTitles: _propTypes.default.bool,
205
+ optionalFieldPlaceholder: _propTypes.default.string
164
206
  };
165
207
  SummaryCardDetails.defaultProps = {
166
208
  childCollections: [],
167
209
  classModifiers: null,
168
- hideChildSectionTitles: false
210
+ hideChildSectionTitles: false,
211
+ optionalFieldPlaceholder: null
169
212
  };
170
213
  var _default = exports.default = SummaryCardDetails;
@@ -1,6 +1,6 @@
1
1
  $govuk-font-family: 'Roboto', arial, sans-serif;
2
2
 
3
- @import "node_modules/govuk-frontend/govuk/_base";
3
+ @import 'govuk-frontend/dist/govuk/_base';
4
4
 
5
5
  .govuk-grid-column-two-thirds:has(.hods-form-summary-card-details) {
6
6
  width: 100% !important;
@@ -15,6 +15,10 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
15
15
  }
16
16
  }
17
17
 
18
+ &__field {
19
+ margin-bottom: govuk-spacing(6);
20
+ }
21
+
18
22
  &__key {
19
23
  font-weight: bold;
20
24
  margin: govuk-spacing(2) 0 govuk-spacing(1) 0;
@@ -24,7 +28,7 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
24
28
  margin: 0;
25
29
 
26
30
  .hods-form-container .govuk-form-group {
27
- margin-bottom: 0px;
31
+ margin-bottom: 0;
28
32
 
29
33
  label {
30
34
  display: none;
@@ -153,6 +157,11 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
153
157
 
154
158
  @media (max-width: 640px) {
155
159
  .hods-form-summary-card-details {
160
+
161
+ &__title {
162
+ margin-top: govuk-spacing(8)
163
+ }
164
+
156
165
  &__section {
157
166
  &-content {
158
167
  display: block;
@@ -167,8 +176,8 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
167
176
 
168
177
  .hods-form-summary-card-details__divider {
169
178
  position: absolute;
170
- height: 0%;
171
- width: 0%;
179
+ height: 0;
180
+ width: 0;
172
181
  background-color: #E9EBED;
173
182
  grid-column-start: var(--column);
174
183
  grid-column-end: var(--column);