@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha

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 (390) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +12 -12
  2. package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
  6. package/dist/components/CollectionPage/CollectionPage.js +75 -59
  7. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  8. package/dist/components/CollectionSummary/BannerStrip.js +15 -14
  9. package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
  10. package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
  11. package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
  12. package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
  14. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  15. package/dist/components/CollectionSummary/Confirmation.scss +1 -1
  16. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  17. package/dist/components/CollectionSummary/RenderListView.js +54 -56
  18. package/dist/components/CollectionSummary/RenderListView.scss +10 -1
  19. package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
  20. package/dist/components/CollectionSummary/SummaryCard.js +135 -145
  21. package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
  22. package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
  24. package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
  25. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
  27. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
  28. package/dist/components/FormComponent/Collection.js +81 -108
  29. package/dist/components/FormComponent/Collection.test.js +909 -943
  30. package/dist/components/FormComponent/Container.js +40 -38
  31. package/dist/components/FormComponent/Container.test.js +314 -345
  32. package/dist/components/FormComponent/FormComponent.js +80 -71
  33. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  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 +7 -7
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  41. package/dist/components/FormComponent/helpers/index.js +4 -4
  42. package/dist/components/FormPage/FormPage.js +65 -80
  43. package/dist/components/FormPage/FormPage.scss +1 -1
  44. package/dist/components/FormPage/FormPage.test.js +127 -163
  45. package/dist/components/FormRenderer/FormRenderer.js +150 -183
  46. package/dist/components/FormRenderer/FormRenderer.scss +1 -1
  47. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  52. package/dist/components/FormRenderer/handlers/index.js +1 -1
  53. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  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 +15 -15
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  61. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  63. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  75. package/dist/components/FormRenderer/helpers/index.js +2 -4
  76. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  77. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  78. package/dist/components/FormRenderer/onPageAction.js +50 -48
  79. package/dist/components/FormRenderer/onPageAction.test.js +241 -217
  80. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  81. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  82. package/dist/components/PageActions/ActionButton.js +12 -15
  83. package/dist/components/PageActions/ActionButton.test.js +56 -78
  84. package/dist/components/PageActions/PageActions.js +10 -10
  85. package/dist/components/PageActions/PageActions.test.js +86 -115
  86. package/dist/components/SummaryList/GroupAction.js +9 -17
  87. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  88. package/dist/components/SummaryList/RowAction.js +11 -16
  89. package/dist/components/SummaryList/RowAction.test.js +37 -33
  90. package/dist/components/SummaryList/SummaryList.js +21 -26
  91. package/dist/components/SummaryList/SummaryList.scss +2 -2
  92. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  94. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  95. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  96. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  98. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  100. package/dist/components/SummaryList/helpers/index.js +1 -1
  101. package/dist/components/TaskList/Task.js +19 -29
  102. package/dist/components/TaskList/Task.test.js +83 -76
  103. package/dist/components/TaskList/TaskList.js +45 -71
  104. package/dist/components/TaskList/TaskList.scss +1 -1
  105. package/dist/components/TaskList/TaskList.test.js +113 -111
  106. package/dist/components/TaskList/TaskState.js +7 -5
  107. package/dist/components/TaskList/TaskState.test.js +52 -45
  108. package/dist/components/index.js +7 -7
  109. package/dist/context/HooksContext/HooksContext.js +57 -80
  110. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  111. package/dist/context/HooksContext/index.js +3 -4
  112. package/dist/context/ValidationContext/ValidationContext.js +65 -72
  113. package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
  114. package/dist/context/ValidationContext/index.js +3 -4
  115. package/dist/context/index.js +2 -2
  116. package/dist/hooks/index.js +9 -10
  117. package/dist/hooks/useAxios.js +14 -40
  118. package/dist/hooks/useGetRequest.js +61 -97
  119. package/dist/hooks/useHooks.js +1 -3
  120. package/dist/hooks/useRefData.js +27 -40
  121. package/dist/hooks/useValidation.js +1 -3
  122. package/dist/index.js +13 -14
  123. package/dist/models/CollectionLabels.js +1 -1
  124. package/dist/models/ComponentTypes.js +25 -25
  125. package/dist/models/EventTypes.js +4 -4
  126. package/dist/models/FormPages.js +4 -4
  127. package/dist/models/FormTypes.js +8 -8
  128. package/dist/models/HubFormats.js +3 -3
  129. package/dist/models/PageAction.js +44 -38
  130. package/dist/models/TaskStates.js +29 -28
  131. package/dist/models/index.js +9 -9
  132. package/dist/setupTests.js +30 -31
  133. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  134. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  136. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  138. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  139. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  140. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  142. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  148. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  150. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  151. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  152. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  153. package/dist/utils/CheckYourAnswers/index.js +1 -1
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
  155. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
  157. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  159. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
  161. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  163. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  165. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  166. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  167. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  168. package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
  169. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
  170. package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
  171. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  172. package/dist/utils/CollectionPage/index.js +3 -1
  173. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  174. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  176. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
  178. package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
  179. package/dist/utils/Component/addShowWhen.js +4 -8
  180. package/dist/utils/Component/addShowWhen.test.js +37 -37
  181. package/dist/utils/Component/applyToComponentTree.js +18 -18
  182. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  183. package/dist/utils/Component/cleanAttributes.js +10 -13
  184. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  185. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  186. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  187. package/dist/utils/Component/getComponent.js +88 -94
  188. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  190. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  191. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  192. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  193. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  195. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  196. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  197. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  198. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  199. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  200. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  201. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  202. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  203. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  204. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  205. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  206. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  207. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  208. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  209. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  210. package/dist/utils/Component/getDefaultValue.js +6 -8
  211. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  212. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  213. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  214. package/dist/utils/Component/index.js +1 -1
  215. package/dist/utils/Component/isEditable.js +2 -4
  216. package/dist/utils/Component/isEditable.test.js +14 -15
  217. package/dist/utils/Component/optionIsSelected.js +1 -1
  218. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  219. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  220. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  221. package/dist/utils/Component/showComponent.js +1 -1
  222. package/dist/utils/Component/showComponent.test.js +28 -28
  223. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  224. package/dist/utils/Condition/index.js +1 -1
  225. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  226. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  227. package/dist/utils/Condition/meetsCondition.js +28 -19
  228. package/dist/utils/Condition/meetsCondition.test.js +476 -376
  229. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  230. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  231. package/dist/utils/Condition/setupConditions.js +13 -18
  232. package/dist/utils/Condition/setupConditions.test.js +7 -7
  233. package/dist/utils/Container/getEditableComponents.js +3 -5
  234. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  235. package/dist/utils/Container/index.js +1 -1
  236. package/dist/utils/Container/setupNesting.js +16 -20
  237. package/dist/utils/Container/setupNesting.test.js +27 -30
  238. package/dist/utils/Container/showContainer.js +3 -7
  239. package/dist/utils/Container/showContainer.test.js +30 -30
  240. package/dist/utils/Data/applyFormula.js +38 -48
  241. package/dist/utils/Data/applyFormula.test.js +20 -20
  242. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  243. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  244. package/dist/utils/Data/getDataPath.js +18 -28
  245. package/dist/utils/Data/getDataPath.test.js +12 -12
  246. package/dist/utils/Data/getOptions.js +29 -25
  247. package/dist/utils/Data/getOptions.test.js +93 -20
  248. package/dist/utils/Data/getSourceData.js +6 -19
  249. package/dist/utils/Data/getSourceData.test.js +84 -80
  250. package/dist/utils/Data/index.js +1 -1
  251. package/dist/utils/Data/nestInRefdataOptions.js +42 -0
  252. package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
  253. package/dist/utils/Data/refDataToOptions.js +10 -13
  254. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  255. package/dist/utils/Data/setDataItem.js +7 -8
  256. package/dist/utils/Data/setDataItem.test.js +37 -37
  257. package/dist/utils/Data/setupFormData.js +13 -21
  258. package/dist/utils/Data/setupFormData.test.js +51 -50
  259. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  260. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  261. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  262. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  263. package/dist/utils/FormPage/getConditionalText.js +3 -3
  264. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  265. package/dist/utils/FormPage/getFormPage.js +15 -16
  266. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  267. package/dist/utils/FormPage/getFormPages.js +7 -12
  268. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  269. package/dist/utils/FormPage/getPageActions.js +9 -15
  270. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  271. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  272. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  273. package/dist/utils/FormPage/index.js +2 -4
  274. package/dist/utils/FormPage/showFormPage.js +3 -7
  275. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  276. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  277. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  278. package/dist/utils/FormPage/useComponent.js +21 -28
  279. package/dist/utils/FormPage/useComponent.test.js +77 -79
  280. package/dist/utils/Format/formatData.js +1 -1
  281. package/dist/utils/Format/formatData.test.js +18 -18
  282. package/dist/utils/Format/formatDataForComponent.js +5 -6
  283. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  284. package/dist/utils/Format/formatDataForForm.js +6 -8
  285. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  286. package/dist/utils/Format/formatDataForPage.js +4 -5
  287. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  288. package/dist/utils/Format/index.js +1 -1
  289. package/dist/utils/Hub/getFormHub.js +1 -1
  290. package/dist/utils/Hub/getFormHub.test.js +28 -31
  291. package/dist/utils/Hub/index.js +1 -1
  292. package/dist/utils/Meta/constants.js +2 -2
  293. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  294. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  295. package/dist/utils/Meta/documents/index.js +1 -1
  296. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  297. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  298. package/dist/utils/Meta/index.js +1 -1
  299. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  300. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  301. package/dist/utils/Operate/getFirstOf.js +5 -5
  302. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  303. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  304. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  305. package/dist/utils/Operate/index.js +1 -1
  306. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  307. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  308. package/dist/utils/Operate/runPageOperations.js +7 -7
  309. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  310. package/dist/utils/Operate/setValueInFormData.js +2 -2
  311. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  312. package/dist/utils/Operate/shouldRun.js +6 -6
  313. package/dist/utils/Operate/shouldRun.test.js +21 -27
  314. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  315. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  316. package/dist/utils/Validate/additional/index.js +6 -6
  317. package/dist/utils/Validate/additional/index.test.js +12 -12
  318. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  319. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  320. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  321. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  322. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  323. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  324. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  325. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  326. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  327. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  328. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  330. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  331. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  332. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  333. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  334. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  336. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  337. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  338. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  339. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  340. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  341. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  342. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  343. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  344. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  345. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  346. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  347. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  348. package/dist/utils/Validate/additional/utils.js +9 -22
  349. package/dist/utils/Validate/index.js +1 -1
  350. package/dist/utils/Validate/validateCollection.js +19 -25
  351. package/dist/utils/Validate/validateCollection.test.js +74 -66
  352. package/dist/utils/Validate/validateComponent.js +17 -15
  353. package/dist/utils/Validate/validateComponent.test.js +167 -146
  354. package/dist/utils/Validate/validateContainer.js +16 -19
  355. package/dist/utils/Validate/validateContainer.test.js +84 -45
  356. package/dist/utils/Validate/validateDate.js +15 -21
  357. package/dist/utils/Validate/validateDate.test.js +31 -32
  358. package/dist/utils/Validate/validateEmail.js +6 -8
  359. package/dist/utils/Validate/validateEmail.test.js +25 -25
  360. package/dist/utils/Validate/validateMultifile.js +5 -7
  361. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  362. package/dist/utils/Validate/validatePage.js +24 -18
  363. package/dist/utils/Validate/validatePage.test.js +263 -182
  364. package/dist/utils/Validate/validateRegex.js +3 -5
  365. package/dist/utils/Validate/validateRegex.test.js +14 -14
  366. package/dist/utils/Validate/validateRequired.js +4 -6
  367. package/dist/utils/Validate/validateRequired.test.js +18 -18
  368. package/dist/utils/Validate/validateTextArea.js +4 -6
  369. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  370. package/dist/utils/Validate/validateTime.js +11 -18
  371. package/dist/utils/Validate/validateTime.test.js +16 -16
  372. package/dist/utils/index.js +7 -9
  373. package/package.json +5 -5
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -1,64 +1,65 @@
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
  var _react = require("@testing-library/react");
5
4
  var _Confirmation = _interopRequireWildcard(require("./Confirmation"));
6
- 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); }
7
- 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; }
5
+ 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); }
6
+ 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; }
8
7
  // Global imports.
9
8
 
10
9
  // Local imports.
11
10
 
12
11
  /* eslint-disable no-plusplus */
13
12
 
14
- describe('components.CollectionSummary.Confirmation', function () {
15
- var onConfirmCalls = 0;
16
- var ON_CONFIRM = function ON_CONFIRM() {
13
+ describe('components.CollectionSummary.Confirmation', () => {
14
+ let onConfirmCalls = 0;
15
+ const ON_CONFIRM = () => {
17
16
  onConfirmCalls += 1;
18
17
  };
19
- var onCancelCalls = 0;
20
- var ON_CANCEL = function ON_CANCEL() {
18
+ let onCancelCalls = 0;
19
+ const ON_CANCEL = () => {
21
20
  onCancelCalls += 1;
22
21
  };
23
- beforeEach(function () {
22
+ beforeEach(() => {
24
23
  onConfirmCalls = 0;
25
24
  onCancelCalls = 0;
26
25
  });
27
- var ID = 'testId';
28
- var MESSAGE = 'Confirmation message';
29
- var LABEL = 'Confirmation label';
30
- var checkSetup = function checkSetup(container) {
31
- var withChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
32
- var childIndex = 0;
33
- var confirmation = container.children[0];
26
+ const ID = 'testId';
27
+ const MESSAGE = 'Confirmation message';
28
+ const LABEL = 'Confirmation label';
29
+ const checkSetup = function (container) {
30
+ let withChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
31
+ let childIndex = 0;
32
+ const confirmation = container.children[0];
34
33
  expect(confirmation.classList).toContain(_Confirmation.DEFAULT_CLASS);
35
- var heading = confirmation.children[childIndex++];
34
+ const heading = confirmation.children[childIndex++];
36
35
  expect(heading.tagName).toEqual('H2');
37
- var children = withChildren ? confirmation.children[childIndex++] : null;
38
- var confirmButton = confirmation.children[childIndex++];
36
+ const children = withChildren ? confirmation.children[childIndex++] : null;
37
+ const confirmButton = confirmation.children[childIndex++];
39
38
  expect(confirmButton.tagName).toEqual('BUTTON');
40
- var cancelButton = confirmation.children[childIndex++];
39
+ const cancelButton = confirmation.children[childIndex++];
41
40
  expect(cancelButton.tagName).toEqual('BUTTON');
42
41
  return {
43
- heading: heading,
44
- confirmButton: confirmButton,
45
- cancelButton: cancelButton,
46
- children: children
42
+ heading,
43
+ confirmButton,
44
+ cancelButton,
45
+ children
47
46
  };
48
47
  };
49
- it('should render correctly', function () {
50
- var _render = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
51
- id: ID,
52
- message: MESSAGE,
53
- confirmLabel: LABEL,
54
- onConfirm: ON_CONFIRM,
55
- onCancel: ON_CANCEL
56
- })),
57
- container = _render.container;
58
- var _checkSetup = checkSetup(container),
59
- heading = _checkSetup.heading,
60
- confirmButton = _checkSetup.confirmButton,
61
- cancelButton = _checkSetup.cancelButton;
48
+ it('should render correctly', () => {
49
+ const {
50
+ container
51
+ } = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
52
+ id: ID,
53
+ message: MESSAGE,
54
+ confirmLabel: LABEL,
55
+ onConfirm: ON_CONFIRM,
56
+ onCancel: ON_CANCEL
57
+ }));
58
+ const {
59
+ heading,
60
+ confirmButton,
61
+ cancelButton
62
+ } = checkSetup(container);
62
63
  expect(heading.textContent).toEqual(MESSAGE);
63
64
  expect(confirmButton.textContent).toEqual(LABEL);
64
65
  _react.fireEvent.click(confirmButton, {});
@@ -66,36 +67,40 @@ describe('components.CollectionSummary.Confirmation', function () {
66
67
  _react.fireEvent.click(cancelButton, {});
67
68
  expect(onCancelCalls).toEqual(1);
68
69
  });
69
- it('should use the default message if one is not provided', function () {
70
- var _render2 = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
71
- id: ID,
72
- confirmLabel: LABEL,
73
- onConfirm: ON_CONFIRM,
74
- onCancel: ON_CANCEL
75
- })),
76
- container = _render2.container;
77
- var _checkSetup2 = checkSetup(container),
78
- heading = _checkSetup2.heading;
70
+ it('should use the default message if one is not provided', () => {
71
+ const {
72
+ container
73
+ } = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
74
+ id: ID,
75
+ confirmLabel: LABEL,
76
+ onConfirm: ON_CONFIRM,
77
+ onCancel: ON_CANCEL
78
+ }));
79
+ const {
80
+ heading
81
+ } = checkSetup(container);
79
82
  expect(heading.textContent).toEqual(_Confirmation.DEFAULT_MESSAGE);
80
83
  });
81
- it('should use the default label if one is not provided', function () {
82
- var _render3 = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
83
- id: ID,
84
- onConfirm: ON_CONFIRM,
85
- onCancel: ON_CANCEL
86
- })),
87
- container = _render3.container;
88
- var confirmButton = checkSetup(container).confirmButton;
84
+ it('should use the default label if one is not provided', () => {
85
+ const {
86
+ container
87
+ } = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
88
+ id: ID,
89
+ onConfirm: ON_CONFIRM,
90
+ onCancel: ON_CANCEL
91
+ }));
92
+ const confirmButton = checkSetup(container).confirmButton;
89
93
  expect(confirmButton.textContent).toEqual(_Confirmation.DEFAULT_CONFIRM_LABEL);
90
94
  });
91
- it('should render children correctly', function () {
92
- var _render4 = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
93
- id: ID,
94
- onConfirm: ON_CONFIRM,
95
- onCancel: ON_CANCEL
96
- }, /*#__PURE__*/React.createElement("p", null, "A child"))),
97
- container = _render4.container;
98
- var child = checkSetup(container, true).children;
95
+ it('should render children correctly', () => {
96
+ const {
97
+ container
98
+ } = (0, _react.render)( /*#__PURE__*/React.createElement(_Confirmation.default, {
99
+ id: ID,
100
+ onConfirm: ON_CONFIRM,
101
+ onCancel: ON_CANCEL
102
+ }, /*#__PURE__*/React.createElement("p", null, "A child")));
103
+ const child = checkSetup(container, true).children;
99
104
  expect(child.tagName).toEqual('P');
100
105
  expect(child.textContent).toEqual('A child');
101
106
  });
@@ -9,34 +9,35 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _utils = _interopRequireDefault(require("../../utils"));
11
11
  var _getComponentRowForCYA = _interopRequireDefault(require("../../utils/CheckYourAnswers/getComponentRowForCYA"));
12
+ var _Condition = _interopRequireDefault(require("../../utils/Condition"));
12
13
  require("./RenderListView.scss");
13
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- 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); }
15
- 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; }
16
- 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; }
17
- 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; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
19
- 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.
15
+ // Global imports.
16
+
20
17
  // Local imports.
18
+
21
19
  // Styles.
22
- var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'govuk-summary-card';
23
- var DEFAULT_LIST_CLASS = exports.DEFAULT_LIST_CLASS = 'govuk-summary-list';
24
- var DEFAULT_TITLE = exports.DEFAULT_TITLE = 'Item';
25
- var DEFAULT_CHANGE_BUTTON_LABEL = exports.DEFAULT_CHANGE_BUTTON_LABEL = 'Change';
26
- var DEFAULT_DELETE_BUTTON_LABEL = exports.DEFAULT_DELETE_BUTTON_LABEL = 'Delete';
27
- var DEFAULT_CHANGE_BUTTON_CLASS = exports.DEFAULT_CHANGE_BUTTON_CLASS = 'secondary';
28
- var DEFAULT_DELETE_BUTTON_CLASS = exports.DEFAULT_DELETE_BUTTON_CLASS = 'warning';
29
- var RenderListView = function RenderListView(_ref) {
30
- var _masterPage$childPage;
31
- var id = _ref.id,
32
- entryData = _ref.entryData,
33
- config = _ref.config,
34
- onChange = _ref.onChange,
35
- onDelete = _ref.onDelete,
36
- masterPage = _ref.masterPage,
37
- classModifiers = _ref.classModifiers;
38
- var classes = _copReactComponents.Utils.classBuilder(DEFAULT_CLASS, classModifiers);
39
- var listClass = _copReactComponents.Utils.classBuilder(DEFAULT_LIST_CLASS);
20
+
21
+ const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'govuk-summary-card';
22
+ const DEFAULT_LIST_CLASS = exports.DEFAULT_LIST_CLASS = 'govuk-summary-list';
23
+ const DEFAULT_TITLE = exports.DEFAULT_TITLE = 'Item';
24
+ const DEFAULT_CHANGE_BUTTON_LABEL = exports.DEFAULT_CHANGE_BUTTON_LABEL = 'Change';
25
+ const DEFAULT_DELETE_BUTTON_LABEL = exports.DEFAULT_DELETE_BUTTON_LABEL = 'Delete';
26
+ const DEFAULT_CHANGE_BUTTON_CLASS = exports.DEFAULT_CHANGE_BUTTON_CLASS = 'secondary';
27
+ const DEFAULT_DELETE_BUTTON_CLASS = exports.DEFAULT_DELETE_BUTTON_CLASS = 'warning';
28
+ const RenderListView = _ref => {
29
+ var _config$changeAction, _config$deleteAction, _masterPage$childPage;
30
+ let {
31
+ id,
32
+ entryData,
33
+ config,
34
+ onFullEdit,
35
+ onDelete,
36
+ masterPage,
37
+ classModifiers
38
+ } = _ref;
39
+ const classes = _copReactComponents.Utils.classBuilder(DEFAULT_CLASS, classModifiers);
40
+ const listClass = _copReactComponents.Utils.classBuilder(DEFAULT_LIST_CLASS);
40
41
  return /*#__PURE__*/_react.default.createElement("div", {
41
42
  className: classes(),
42
43
  id: id
@@ -44,50 +45,47 @@ var RenderListView = function RenderListView(_ref) {
44
45
  className: classes('title-wrapper', [], 'dark')
45
46
  }, /*#__PURE__*/_react.default.createElement("h2", {
46
47
  className: classes('title')
47
- }, _copReactComponents.Utils.interpolateString(config.title || DEFAULT_TITLE, _objectSpread(_objectSpread({}, entryData), {}, {
48
+ }, _copReactComponents.Utils.interpolateString(config.title || DEFAULT_TITLE, {
49
+ ...entryData,
48
50
  index: entryData.index + 1
49
- }))), /*#__PURE__*/_react.default.createElement("ul", {
51
+ })), /*#__PURE__*/_react.default.createElement("ul", {
50
52
  className: classes('actions')
51
53
  }, /*#__PURE__*/_react.default.createElement("li", {
52
54
  className: classes('action')
53
- }, config.changeAction && typeof onChange === 'function' && /*#__PURE__*/_react.default.createElement("div", {
54
- className: "govuk-link",
55
- onClick: function onClick() {
56
- return onChange(config.changeAction.page, entryData.id);
57
- },
58
- onKeyDown: function onKeyDown(e) {
59
- if (e.key === 'Enter' || e.key === ' ') {
60
- onChange(config.changeAction.page, entryData.id);
61
- }
62
- },
63
- role: "button",
64
- tabIndex: 0,
65
- style: {
66
- cursor: 'pointer'
67
- }
55
+ }, config.changeAction && typeof onFullEdit === 'function' && /*#__PURE__*/_react.default.createElement("button", {
56
+ type: "button",
57
+ className: "govuk-link govuk-link-button",
58
+ onClick: () => onFullEdit(config.changeAction.page, entryData.id),
59
+ "aria-label": _copReactComponents.Utils.interpolateString("".concat(((_config$changeAction = config.changeAction) === null || _config$changeAction === void 0 ? void 0 : _config$changeAction.label) || DEFAULT_CHANGE_BUTTON_LABEL, " ").concat(config.title || DEFAULT_TITLE), {
60
+ ...entryData,
61
+ index: entryData.index + 1
62
+ })
68
63
  }, config.changeAction.label || DEFAULT_CHANGE_BUTTON_LABEL)), /*#__PURE__*/_react.default.createElement("li", {
69
64
  className: classes('action')
70
65
  }, config.deleteAction && typeof onDelete === 'function' && /*#__PURE__*/_react.default.createElement(_copReactComponents.Button, {
71
66
  id: "".concat(id, ".deleteButton"),
72
- onClick: function onClick() {
73
- return onDelete(entryData);
74
- },
75
- classModifiers: config.deleteAction.classModifiers || DEFAULT_DELETE_BUTTON_CLASS
67
+ onClick: () => onDelete(entryData),
68
+ classModifiers: config.deleteAction.classModifiers || DEFAULT_DELETE_BUTTON_CLASS,
69
+ "aria-label": _copReactComponents.Utils.interpolateString("".concat(((_config$deleteAction = config.deleteAction) === null || _config$deleteAction === void 0 ? void 0 : _config$deleteAction.label) || DEFAULT_DELETE_BUTTON_LABEL, " ").concat(config.title || DEFAULT_TITLE), {
70
+ ...entryData,
71
+ index: entryData.index + 1
72
+ })
76
73
  }, config.deleteAction.label || DEFAULT_DELETE_BUTTON_LABEL)))), /*#__PURE__*/_react.default.createElement("div", {
77
74
  className: classes('content')
78
75
  }, /*#__PURE__*/_react.default.createElement("dl", {
79
76
  className: listClass()
80
- }, masterPage === null || masterPage === void 0 || (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.flatMap(function (childPage) {
77
+ }, masterPage === null || masterPage === void 0 || (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.flatMap(childPage => {
81
78
  var _childPage$summaryLay;
82
- var elevatedComponents = childPage.components.map(function (component) {
83
- return _utils.default.Component.elevateNested([component], entryData);
84
- }).flat().filter(Boolean);
85
- return (_childPage$summaryLay = childPage.summaryLayout) === null || _childPage$summaryLay === void 0 || (_childPage$summaryLay = _childPage$summaryLay.sections) === null || _childPage$summaryLay === void 0 ? void 0 : _childPage$summaryLay.flatMap(function (section) {
86
- if (section.fields) {
87
- return section.fields.flatMap(function (fieldId) {
88
- var component = elevatedComponents.find(function (comp) {
89
- return comp.fieldId === fieldId;
90
- });
79
+ const elevatedComponents = childPage.components.map(component => _utils.default.Component.elevateNested([component], entryData)).flat().filter(Boolean);
80
+ return (_childPage$summaryLay = childPage.summaryLayout) === null || _childPage$summaryLay === void 0 || (_childPage$summaryLay = _childPage$summaryLay.sections) === null || _childPage$summaryLay === void 0 ? void 0 : _childPage$summaryLay.flatMap(section => {
81
+ const filteredColumns = section.columns.filter(column => _Condition.default.meetsAll(column, {
82
+ ...childPage.formData,
83
+ ...entryData
84
+ }));
85
+ const summaryFields = filteredColumns.flatMap(column => column.fields || []);
86
+ if (summaryFields.length) {
87
+ return summaryFields.flatMap(fieldId => {
88
+ const component = elevatedComponents.find(comp => comp.fieldId === fieldId);
91
89
  if (!component) {
92
90
  return null;
93
91
  }
@@ -117,7 +115,7 @@ RenderListView.propTypes = {
117
115
  }),
118
116
  listView: _propTypes.default.bool
119
117
  }).isRequired,
120
- onChange: _propTypes.default.func.isRequired,
118
+ onFullEdit: _propTypes.default.func.isRequired,
121
119
  onDelete: _propTypes.default.func.isRequired,
122
120
  masterPage: _propTypes.default.shape({
123
121
  childPages: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -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-summary-list {
6
6
  @include govuk-font($size: 19);
@@ -179,6 +179,10 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
179
179
  .govuk-summary-card {
180
180
  @include govuk-responsive-margin(6, "bottom");
181
181
  border: 1px solid $govuk-border-colour;
182
+
183
+ &--deleting-summary-card {
184
+ background-color: #FCF0EE;
185
+ }
182
186
  }
183
187
 
184
188
  .govuk-summary-card__title-wrapper {
@@ -271,3 +275,8 @@ $govuk-font-family: 'Roboto', arial, sans-serif;
271
275
  border-bottom: none;
272
276
  }
273
277
  }
278
+
279
+ .govuk-link-button {
280
+ background: none;
281
+ border: none;
282
+ }
@@ -10,8 +10,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
10
10
 
11
11
  // Local imports.
12
12
 
13
- describe('components.CollectionSummary.RenderListView', function () {
14
- var ENTRY = {
13
+ describe('components.CollectionSummary.RenderListView', () => {
14
+ const ENTRY = {
15
15
  id: '001',
16
16
  item1: 'Value 1',
17
17
  item2: 'Value 2',
@@ -19,13 +19,21 @@ describe('components.CollectionSummary.RenderListView', function () {
19
19
  label: 'Value 3',
20
20
  value: 'Value 3'
21
21
  },
22
+ condition: 'test',
22
23
  index: 0
23
24
  };
24
- var MASTER_PAGE = {
25
+ const MASTER_PAGE = {
25
26
  childPages: [{
26
27
  summaryLayout: {
27
28
  sections: [{
28
- fields: ['item1', 'item2', 'item3']
29
+ columns: [{
30
+ fields: ['item1', 'item2', 'item3'],
31
+ show_when: {
32
+ field: "condition",
33
+ op: "in",
34
+ values: ["test"]
35
+ }
36
+ }]
29
37
  }]
30
38
  },
31
39
  components: [{
@@ -59,7 +67,7 @@ describe('components.CollectionSummary.RenderListView', function () {
59
67
  }]
60
68
  }]
61
69
  };
62
- var CONFIG = {
70
+ const CONFIG = {
63
71
  title: 'Title text 1',
64
72
  listView: true,
65
73
  changeAction: {
@@ -70,132 +78,134 @@ describe('components.CollectionSummary.RenderListView', function () {
70
78
  label: 'Delete label'
71
79
  }
72
80
  };
73
- var ID = 'testListView';
74
- var onChangeArgs = [];
75
- var onChangeCalls = 0;
76
- var ON_CHANGE = function ON_CHANGE(page, id) {
81
+ const ID = 'testListView';
82
+ let onChangeArgs = [];
83
+ let onChangeCalls = 0;
84
+ const ON_CHANGE = (page, id) => {
77
85
  onChangeArgs.push({
78
- page: page,
79
- id: id
86
+ page,
87
+ id
80
88
  });
81
89
  onChangeCalls += 1;
82
90
  };
83
- beforeEach(function () {
91
+ beforeEach(() => {
84
92
  onChangeArgs = [];
85
93
  });
86
- var onDeleteArgs = [];
87
- var onDeleteCalls = 0;
88
- var ON_DELETE = function ON_DELETE(entry) {
94
+ let onDeleteArgs = [];
95
+ let onDeleteCalls = 0;
96
+ const ON_DELETE = entry => {
89
97
  onDeleteArgs.push(entry);
90
98
  onDeleteCalls += 1;
91
99
  };
92
- beforeEach(function () {
100
+ beforeEach(() => {
93
101
  onDeleteArgs = [];
94
102
  });
95
- var getComponentRow = function getComponentRow() {
96
- return /*#__PURE__*/_react2.default.createElement("div", {
97
- className: "govuk-summary-list__row"
98
- }, /*#__PURE__*/_react2.default.createElement("dt", {
99
- className: "govuk-summary-list__key"
100
- }, "Test Key"), /*#__PURE__*/_react2.default.createElement("dd", {
101
- className: "govuk-summary-list__value"
102
- }, /*#__PURE__*/_react2.default.createElement("div", null, "Test Value")));
103
- };
103
+ const getComponentRow = () => /*#__PURE__*/_react2.default.createElement("div", {
104
+ className: "govuk-summary-list__row"
105
+ }, /*#__PURE__*/_react2.default.createElement("dt", {
106
+ className: "govuk-summary-list__key"
107
+ }, "Test Key"), /*#__PURE__*/_react2.default.createElement("dd", {
108
+ className: "govuk-summary-list__value"
109
+ }, /*#__PURE__*/_react2.default.createElement("div", null, "Test Value")));
104
110
 
105
111
  // Setup function to check rendered elements
106
- var checkSetup = function checkSetup(container) {
107
- var listViewDiv = container.children[0];
112
+ const checkSetup = container => {
113
+ const listViewDiv = container.children[0];
108
114
  expect(listViewDiv.tagName).toEqual('DIV');
109
115
  expect(listViewDiv.classList).toContain('govuk-summary-card');
110
116
  return listViewDiv;
111
117
  };
112
- it('should correctly render RenderListView component', function () {
113
- var _renderWithValidation = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
114
- id: ID,
115
- entryData: ENTRY,
116
- config: CONFIG,
117
- onChange: ON_CHANGE,
118
- onDelete: ON_DELETE,
119
- masterPage: MASTER_PAGE,
120
- getComponentRow: getComponentRow
121
- })),
122
- container = _renderWithValidation.container;
123
- var listViewDiv = checkSetup(container);
118
+ it('should correctly render RenderListView component', () => {
119
+ const {
120
+ container
121
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
122
+ id: ID,
123
+ entryData: ENTRY,
124
+ config: CONFIG,
125
+ onFullEdit: ON_CHANGE,
126
+ onDelete: ON_DELETE,
127
+ masterPage: MASTER_PAGE,
128
+ getComponentRow: getComponentRow
129
+ }));
130
+ const listViewDiv = checkSetup(container);
124
131
 
125
132
  // Check title wrapper and title text
126
- var titleWrapper = listViewDiv.querySelector('.govuk-summary-card__title-wrapper');
133
+ const titleWrapper = listViewDiv.querySelector('.govuk-summary-card__title-wrapper');
127
134
  expect(titleWrapper).not.toBeNull();
128
- var title = titleWrapper.querySelector('.govuk-summary-card__title');
135
+ const title = titleWrapper.querySelector('.govuk-summary-card__title');
129
136
  expect(title.textContent).toEqual(CONFIG.title);
130
137
 
131
138
  // Logic to check the rendered rows
132
- var rows = container.querySelectorAll('.govuk-summary-list__row');
139
+ const rows = container.querySelectorAll('.govuk-summary-list__row');
133
140
  expect(rows.length).toEqual(3);
134
141
 
135
142
  // Check the first row
136
- var firstRowKey = rows[0].querySelector('.govuk-summary-list__key');
137
- var firstRowValue = rows[0].querySelector('.govuk-summary-list__value');
143
+ const firstRowKey = rows[0].querySelector('.govuk-summary-list__key');
144
+ const firstRowValue = rows[0].querySelector('.govuk-summary-list__value');
138
145
  expect(firstRowKey.textContent).toEqual('Item 1');
139
146
  expect(firstRowValue.textContent).toEqual('Value 1');
140
147
 
141
148
  // Check the second row
142
- var secondRowKey = rows[1].querySelector('.govuk-summary-list__key');
143
- var secondRowValue = rows[1].querySelector('.govuk-summary-list__value');
149
+ const secondRowKey = rows[1].querySelector('.govuk-summary-list__key');
150
+ const secondRowValue = rows[1].querySelector('.govuk-summary-list__value');
144
151
  expect(secondRowKey.textContent).toEqual('Item 2 (optional)');
145
152
  expect(secondRowValue.textContent).toEqual('Value 2');
146
153
 
147
154
  // Check the third row
148
- var thirdRowKey = rows[2].querySelector('.govuk-summary-list__key');
149
- var thirdRowValue = rows[2].querySelector('.govuk-summary-list__value');
155
+ const thirdRowKey = rows[2].querySelector('.govuk-summary-list__key');
156
+ const thirdRowValue = rows[2].querySelector('.govuk-summary-list__value');
150
157
  expect(thirdRowKey.textContent).toEqual('Item 3');
151
158
  expect(thirdRowValue.textContent).toEqual('Value 3');
152
159
  });
153
- it('should render the index correctly in the title', function () {
154
- var _renderWithValidation2 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
155
- id: ID,
156
- entryData: ENTRY,
157
- config: CONFIG,
158
- onChange: ON_CHANGE,
159
- onDelete: ON_DELETE,
160
- masterPage: MASTER_PAGE,
161
- getComponentRow: getComponentRow
162
- })),
163
- container = _renderWithValidation2.container;
164
- var listViewDiv = checkSetup(container);
160
+ it('should render the index correctly in the title', () => {
161
+ const {
162
+ container
163
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
164
+ id: ID,
165
+ entryData: ENTRY,
166
+ config: CONFIG,
167
+ onFullEdit: ON_CHANGE,
168
+ onDelete: ON_DELETE,
169
+ masterPage: MASTER_PAGE,
170
+ getComponentRow: getComponentRow
171
+ }));
172
+ const listViewDiv = checkSetup(container);
165
173
 
166
174
  // Check title wrapper and title text
167
- var titleWrapper = listViewDiv.querySelector('.govuk-summary-card__title-wrapper');
175
+ const titleWrapper = listViewDiv.querySelector('.govuk-summary-card__title-wrapper');
168
176
  expect(titleWrapper).not.toBeNull();
169
- var title = titleWrapper.querySelector('.govuk-summary-card__title');
177
+ const title = titleWrapper.querySelector('.govuk-summary-card__title');
170
178
  expect(title.textContent).toEqual(CONFIG.title);
171
179
 
172
180
  // Check if the index is rendered as expected in the title
173
181
  expect(title.textContent).toContain("Title text ".concat(ENTRY.index + 1));
174
182
  });
175
- describe('Action buttons in RenderListView', function () {
176
- beforeEach(function () {
183
+ describe('Action buttons in RenderListView', () => {
184
+ beforeEach(() => {
177
185
  onChangeArgs = [];
178
186
  onChangeCalls = 0;
179
187
  onDeleteArgs = [];
180
188
  onDeleteCalls = 0;
181
189
  });
182
- it('should render and handle action buttons correctly', function () {
183
- var _renderWithValidation3 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
184
- id: ID,
185
- entryData: ENTRY,
186
- config: CONFIG,
187
- onChange: ON_CHANGE,
188
- onDelete: ON_DELETE,
189
- masterPage: MASTER_PAGE,
190
- getComponentRow: getComponentRow
191
- })),
192
- container = _renderWithValidation3.container;
193
- var listViewDiv = container.querySelector('.govuk-summary-card');
190
+ it('should render and handle action buttons correctly', () => {
191
+ const {
192
+ container
193
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react2.default.createElement(_RenderListView.default, {
194
+ id: ID,
195
+ entryData: ENTRY,
196
+ config: CONFIG,
197
+ onFullEdit: ON_CHANGE,
198
+ onDelete: ON_DELETE,
199
+ masterPage: MASTER_PAGE,
200
+ getComponentRow: getComponentRow
201
+ }));
202
+ const listViewDiv = container.querySelector('.govuk-summary-card');
194
203
  expect(listViewDiv).not.toBeNull();
195
204
 
196
205
  // Check for change button
197
- var changeLink = listViewDiv.querySelector('.govuk-link');
206
+ const changeLink = listViewDiv.querySelector('.govuk-link');
198
207
  expect(changeLink.textContent).toEqual(CONFIG.changeAction.label);
208
+ expect(changeLink.getAttribute('aria-label')).toEqual("".concat(CONFIG.changeAction.label, " ").concat(CONFIG.title));
199
209
  _react.fireEvent.click(changeLink, {});
200
210
  expect(onChangeCalls).toEqual(1);
201
211
  expect(onChangeArgs[0]).toMatchObject({
@@ -204,8 +214,9 @@ describe('components.CollectionSummary.RenderListView', function () {
204
214
  });
205
215
 
206
216
  // Check for delete button
207
- var deleteButton = listViewDiv.querySelector('[id$=".deleteButton"]');
217
+ const deleteButton = listViewDiv.querySelector('[id$=".deleteButton"]');
208
218
  expect(deleteButton.textContent).toEqual(CONFIG.deleteAction.label);
219
+ expect(deleteButton.getAttribute('aria-label')).toEqual("".concat(CONFIG.deleteAction.label, " ").concat(CONFIG.title));
209
220
  _react.fireEvent.click(deleteButton, {});
210
221
  expect(onDeleteCalls).toEqual(1);
211
222
  expect(onDeleteArgs[0]).toEqual(ENTRY);