@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
@@ -9,128 +9,122 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
9
9
 
10
10
  // Local imports
11
11
 
12
- describe('components', () => {
13
- describe('TaskList.Task', () => {
14
- it('should render a task', () => {
15
- const STATE = _models.TaskStates.TYPES.COMPLETE;
16
- const TASK = {
12
+ describe('components', function () {
13
+ describe('TaskList.Task', function () {
14
+ it('should render a task', function () {
15
+ var STATE = _models.TaskStates.TYPES.COMPLETE;
16
+ var TASK = {
17
17
  name: 'taskName',
18
18
  pages: ['pageName'],
19
19
  state: STATE
20
20
  };
21
- const ON_CLICK = () => {};
22
- const {
23
- container
24
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
25
- task: TASK,
26
- onClick: ON_CLICK
27
- }));
21
+ var ON_CLICK = function ON_CLICK() {};
22
+ var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
23
+ task: TASK,
24
+ onClick: ON_CLICK
25
+ })),
26
+ container = _render.container;
28
27
  expect(container.childNodes.length).toEqual(1);
29
28
  expect(container.childNodes[0].classList).toContain('hods-task-list__item');
30
- const span = container.childNodes[0].childNodes[0];
31
- const state = container.childNodes[0].childNodes[1];
29
+ var span = container.childNodes[0].childNodes[0];
30
+ var state = container.childNodes[0].childNodes[1];
32
31
  expect(span.classList).toContain('hods-task-list__task-name');
33
32
  expect(span.textContent).toEqual(TASK.name);
34
33
  expect(state.textContent).toEqual('Completed');
35
34
  });
36
- it('should render a task with a displayName', () => {
37
- const STATE = _models.TaskStates.TYPES.COMPLETE;
38
- const TASK = {
35
+ it('should render a task with a displayName', function () {
36
+ var STATE = _models.TaskStates.TYPES.COMPLETE;
37
+ var TASK = {
39
38
  name: 'taskName',
40
39
  displayName: 'Alpha Bravo',
41
40
  pages: ['pageName'],
42
41
  state: STATE
43
42
  };
44
- const ON_CLICK = () => {};
45
- const {
46
- container
47
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
48
- task: TASK,
49
- onClick: ON_CLICK
50
- }));
43
+ var ON_CLICK = function ON_CLICK() {};
44
+ var _render2 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
45
+ task: TASK,
46
+ onClick: ON_CLICK
47
+ })),
48
+ container = _render2.container;
51
49
  expect(container.childNodes.length).toEqual(1);
52
50
  expect(container.childNodes[0].classList).toContain('hods-task-list__item');
53
- const span = container.childNodes[0].childNodes[0];
54
- const state = container.childNodes[0].childNodes[1];
51
+ var span = container.childNodes[0].childNodes[0];
52
+ var state = container.childNodes[0].childNodes[1];
55
53
  expect(span.classList).toContain('hods-task-list__task-name');
56
54
  expect(span.textContent).toEqual(TASK.displayName);
57
55
  expect(state.textContent).toEqual('Completed');
58
56
  });
59
- it('should render a task with inactive link if state is cannotStartYet', () => {
60
- const STATE = _models.TaskStates.TYPES.CANNOT_START_YET;
61
- const TASK = {
57
+ it('should render a task with inactive link if state is cannotStartYet', function () {
58
+ var STATE = _models.TaskStates.TYPES.CANNOT_START_YET;
59
+ var TASK = {
62
60
  name: 'taskName',
63
61
  pages: ['pageName'],
64
62
  state: STATE
65
63
  };
66
- const ON_CLICK = () => {};
67
- const {
68
- container
69
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
70
- task: TASK,
71
- onClick: ON_CLICK
72
- }));
73
- const span = container.childNodes[0].childNodes[0];
64
+ var ON_CLICK = function ON_CLICK() {};
65
+ var _render3 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
66
+ task: TASK,
67
+ onClick: ON_CLICK
68
+ })),
69
+ container = _render3.container;
70
+ var span = container.childNodes[0].childNodes[0];
74
71
  expect(span.childNodes[0].tagName).toEqual(undefined);
75
72
  expect(span.textContent).toEqual(TASK.name);
76
73
  });
77
- it('should render a task with a link if state is not cannotStartYet', () => {
78
- const STATE = _models.TaskStates.TYPES.IN_PROGRESS;
79
- const TASK = {
74
+ it('should render a task with a link if state is not cannotStartYet', function () {
75
+ var STATE = _models.TaskStates.TYPES.IN_PROGRESS;
76
+ var TASK = {
80
77
  name: 'taskName',
81
78
  pages: ['pageName'],
82
79
  state: STATE
83
80
  };
84
- const ON_CLICK = () => {};
85
- const {
86
- container
87
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
88
- task: TASK,
89
- onClick: ON_CLICK
90
- }));
91
- const span = container.childNodes[0].childNodes[0];
81
+ var ON_CLICK = function ON_CLICK() {};
82
+ var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
83
+ task: TASK,
84
+ onClick: ON_CLICK
85
+ })),
86
+ container = _render4.container;
87
+ var span = container.childNodes[0].childNodes[0];
92
88
  expect(span.childNodes.length).toEqual(1);
93
89
  expect(span.childNodes[0].tagName).toEqual('A');
94
90
  expect(span.textContent).toEqual(TASK.name);
95
91
  });
96
- it('should render the displayName of a task with a link if state is not cannotStartYet', () => {
97
- const STATE = _models.TaskStates.TYPES.IN_PROGRESS;
98
- const TASK = {
92
+ it('should render the displayName of a task with a link if state is not cannotStartYet', function () {
93
+ var STATE = _models.TaskStates.TYPES.IN_PROGRESS;
94
+ var TASK = {
99
95
  name: 'taskName',
100
96
  displayName: 'Charlie Delta',
101
97
  pages: ['pageName'],
102
98
  state: STATE
103
99
  };
104
- const ON_CLICK = () => {};
105
- const {
106
- container
107
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
108
- task: TASK,
109
- onClick: ON_CLICK
110
- }));
111
- const span = container.childNodes[0].childNodes[0];
100
+ var ON_CLICK = function ON_CLICK() {};
101
+ var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
102
+ task: TASK,
103
+ onClick: ON_CLICK
104
+ })),
105
+ container = _render5.container;
106
+ var span = container.childNodes[0].childNodes[0];
112
107
  expect(span.childNodes.length).toEqual(1);
113
108
  expect(span.childNodes[0].tagName).toEqual('A');
114
109
  expect(span.textContent).toEqual(TASK.displayName);
115
110
  });
116
- it('should call the given onClick function when the link is clicked', () => {
117
- const STATE = _models.TaskStates.TYPES.IN_PROGRESS;
118
- const TASK = {
111
+ it('should call the given onClick function when the link is clicked', function () {
112
+ var STATE = _models.TaskStates.TYPES.IN_PROGRESS;
113
+ var TASK = {
119
114
  name: 'taskName',
120
115
  pages: ['pageName'],
121
116
  state: STATE
122
117
  };
123
- const ON_CLICK_CALLS = [];
124
- const ON_CLICK = value => {
118
+ var ON_CLICK_CALLS = [];
119
+ var ON_CLICK = function ON_CLICK(value) {
125
120
  ON_CLICK_CALLS.push(value);
126
121
  };
127
- const {
128
- container
129
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
130
- task: TASK,
131
- onClick: ON_CLICK
132
- }));
133
- const link = container.childNodes[0].childNodes[0].childNodes[0];
122
+ var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
123
+ task: TASK,
124
+ onClick: ON_CLICK
125
+ })),
126
+ container = _render6.container;
127
+ var link = container.childNodes[0].childNodes[0].childNodes[0];
134
128
  _react.fireEvent.click(link);
135
129
  expect(ON_CLICK_CALLS.length).toEqual(1);
136
130
  expect(ON_CLICK_CALLS[0]).toEqual({
@@ -139,24 +133,23 @@ describe('components', () => {
139
133
  state: STATE
140
134
  });
141
135
  });
142
- it('should call the given onClick function when the enter key is pressed on the link', () => {
143
- const STATE = _models.TaskStates.TYPES.IN_PROGRESS;
144
- const TASK = {
136
+ it('should call the given onClick function when the enter key is pressed on the link', function () {
137
+ var STATE = _models.TaskStates.TYPES.IN_PROGRESS;
138
+ var TASK = {
145
139
  name: 'taskName',
146
140
  pages: ['pageName'],
147
141
  state: STATE
148
142
  };
149
- const ON_CLICK_CALLS = [];
150
- const ON_CLICK = value => {
143
+ var ON_CLICK_CALLS = [];
144
+ var ON_CLICK = function ON_CLICK(value) {
151
145
  ON_CLICK_CALLS.push(value);
152
146
  };
153
- const {
154
- container
155
- } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
156
- task: TASK,
157
- onClick: ON_CLICK
158
- }));
159
- const link = container.childNodes[0].childNodes[0].childNodes[0];
147
+ var _render7 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_Task.default, {
148
+ task: TASK,
149
+ onClick: ON_CLICK
150
+ })),
151
+ container = _render7.container;
152
+ var link = container.childNodes[0].childNodes[0].childNodes[0];
160
153
  // The keyPress event needs charCode: 13 or it fails; bug with the library.
161
154
  _react.fireEvent.keyPress(link, {
162
155
  key: 'Enter',
@@ -1,5 +1,6 @@
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); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -11,42 +12,61 @@ var _models = require("../../models");
11
12
  var _Task = _interopRequireDefault(require("./Task"));
12
13
  var _showComponent = _interopRequireDefault(require("../../utils/Component/showComponent"));
13
14
  require("./TaskList.scss");
14
- 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); }
15
- 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; }
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable import/no-duplicates */ // Global Imports
15
+ var _excluded = ["id", "refTitle", "refNumber", "notes", "incompleteTitle", "showCompletionOverview", "sections", "fieldId", "onTaskAction", "classBlock", "classModifiers", "className", "formData", "annotations"];
16
+ /* eslint-disable import/no-duplicates */
17
+ // Global Imports
18
18
  // Local Imports
19
- const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-task-list';
20
- const DEFAULT_INCOMPLETE_TITLE = exports.DEFAULT_INCOMPLETE_TITLE = 'Incomplete form';
21
- const TaskList = _ref => {
22
- let {
23
- id,
24
- refTitle,
25
- refNumber,
26
- notes,
27
- incompleteTitle,
28
- sections,
29
- fieldId,
30
- onTaskAction,
31
- classBlock,
32
- classModifiers,
33
- className,
34
- formData,
35
- ...attrs
36
- } = _ref;
37
- const classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
38
- const cleanedHtmlAttrs = _copReactComponents.Utils.cleanHtmlAttributes(attrs);
19
+ 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); }
20
+ 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; }
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
24
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
27
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
28
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
+ var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-task-list';
32
+ var DEFAULT_INCOMPLETE_TITLE = exports.DEFAULT_INCOMPLETE_TITLE = 'Incomplete form';
33
+ var TaskList = function TaskList(_ref) {
34
+ var id = _ref.id,
35
+ refTitle = _ref.refTitle,
36
+ refNumber = _ref.refNumber,
37
+ notes = _ref.notes,
38
+ incompleteTitle = _ref.incompleteTitle,
39
+ showCompletionOverview = _ref.showCompletionOverview,
40
+ sections = _ref.sections,
41
+ fieldId = _ref.fieldId,
42
+ onTaskAction = _ref.onTaskAction,
43
+ classBlock = _ref.classBlock,
44
+ classModifiers = _ref.classModifiers,
45
+ className = _ref.className,
46
+ formData = _ref.formData,
47
+ annotations = _ref.annotations,
48
+ attrs = _objectWithoutProperties(_ref, _excluded);
49
+ var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
50
+ var cleanedHtmlAttrs = _copReactComponents.Utils.cleanHtmlAttributes(attrs);
39
51
  // TODO state will be retrieved from a document in S3 rather than given in the component definition, covered under COP-9885
40
- const [completeSections, totalSections] = sections.filter(section => !section.skipped).reduce((acc, current) => {
41
- var _current$tasks$filter, _current$tasks, _current$tasks$filter2, _current$tasks2;
42
- return [acc[0] + ((_current$tasks$filter = (_current$tasks = current.tasks) === null || _current$tasks === void 0 ? void 0 : _current$tasks.filter(t => t.state === _models.TaskStates.TYPES.COMPLETE).length) !== null && _current$tasks$filter !== void 0 ? _current$tasks$filter : 0), acc[1] + ((_current$tasks$filter2 = (_current$tasks2 = current.tasks) === null || _current$tasks2 === void 0 ? void 0 : _current$tasks2.filter(task => task.state !== _models.TaskStates.TYPES.SKIPPED).length) !== null && _current$tasks$filter2 !== void 0 ? _current$tasks$filter2 : 0)];
43
- }, [0, 0]);
44
- const notesId = "".concat(id, "Notes");
45
- const {
46
- title: notesTitle,
47
- text: notesText
48
- } = notes && notes || {};
49
- const onClick = task => {
52
+ var _sections$filter$redu = sections.filter(function (section) {
53
+ return !section.skipped;
54
+ }).reduce(function (acc, current) {
55
+ var _current$tasks$filter, _current$tasks, _current$tasks$filter2, _current$tasks2;
56
+ return [acc[0] + ((_current$tasks$filter = (_current$tasks = current.tasks) === null || _current$tasks === void 0 ? void 0 : _current$tasks.filter(function (t) {
57
+ return t.state === _models.TaskStates.TYPES.COMPLETE;
58
+ }).length) !== null && _current$tasks$filter !== void 0 ? _current$tasks$filter : 0), acc[1] + ((_current$tasks$filter2 = (_current$tasks2 = current.tasks) === null || _current$tasks2 === void 0 ? void 0 : _current$tasks2.filter(function (task) {
59
+ return task.state !== _models.TaskStates.TYPES.SKIPPED;
60
+ }).length) !== null && _current$tasks$filter2 !== void 0 ? _current$tasks$filter2 : 0)];
61
+ }, [0, 0]),
62
+ _sections$filter$redu2 = _slicedToArray(_sections$filter$redu, 2),
63
+ completeSections = _sections$filter$redu2[0],
64
+ totalSections = _sections$filter$redu2[1];
65
+ var notesId = "".concat(id, "Notes");
66
+ var _ref2 = notes && notes || {},
67
+ notesTitle = _ref2.title,
68
+ notesText = _ref2.text;
69
+ var onClick = function onClick(task) {
50
70
  if (typeof onTaskAction === 'function') {
51
71
  onTaskAction(task);
52
72
  }
@@ -60,11 +80,19 @@ const TaskList = _ref => {
60
80
  className: "tasklist-summary"
61
81
  }, "".concat(refTitle))), /*#__PURE__*/_react.default.createElement("p", {
62
82
  className: "govuk-body govuk-!-font-weight-regular"
63
- }, "".concat(refNumber))), totalSections !== completeSections && /*#__PURE__*/_react.default.createElement("p", {
83
+ }, "".concat(refNumber))), annotations.length > 0 && annotations.map(function (annotation) {
84
+ return /*#__PURE__*/_react.default.createElement("div", {
85
+ className: classes('annotation')
86
+ }, /*#__PURE__*/_react.default.createElement("p", {
87
+ className: "".concat(classes('annotation-key'), " govuk-body")
88
+ }, _copReactComponents.Utils.interpolateString(annotation.key, formData)), /*#__PURE__*/_react.default.createElement("p", {
89
+ className: "".concat(classes('annotation-value'), " govuk-body")
90
+ }, _copReactComponents.Utils.interpolateString(annotation.value, formData)));
91
+ }), showCompletionOverview && totalSections !== completeSections && /*#__PURE__*/_react.default.createElement("p", {
64
92
  className: "govuk-body govuk-!-margin-bottom-0"
65
93
  }, /*#__PURE__*/_react.default.createElement("strong", {
66
94
  className: "tasklist-summary"
67
- }, incompleteTitle)), /*#__PURE__*/_react.default.createElement("p", {
95
+ }, incompleteTitle)), showCompletionOverview && /*#__PURE__*/_react.default.createElement("p", {
68
96
  className: "govuk-body govuk-!-margin-bottom-7"
69
97
  }, "You have completed ".concat(completeSections, " of ").concat(totalSections, " sections")), notesTitle && notesText && (0, _showComponent.default)(notes, formData) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
70
98
  className: "govuk-body govuk-!-margin-bottom-0"
@@ -75,17 +103,25 @@ const TaskList = _ref => {
75
103
  fieldId: notesId,
76
104
  readOnly: true,
77
105
  value: _copReactComponents.Utils.interpolateString(notesText, formData)
78
- })), sections.filter(section => !section.skipped).map((section, index) => /*#__PURE__*/_react.default.createElement(_react.Fragment, {
79
- key: "".concat(section.name)
80
- }, /*#__PURE__*/_react.default.createElement("h2", {
81
- className: classes('section')
82
- }, sections.length > 1 ? "".concat(index + 1, ". ") : '', section.name), section.label && /*#__PURE__*/_react.default.createElement(_copReactComponents.Hint, null, section.label), /*#__PURE__*/_react.default.createElement("ol", {
83
- className: classes('items')
84
- }, section.tasks.filter(task => task.state !== _models.TaskStates.TYPES.SKIPPED).map(task => /*#__PURE__*/_react.default.createElement(_Task.default, {
85
- key: "".concat(section.name, "-").concat(task.name),
86
- task: task,
87
- onClick: onClick
88
- }))))));
106
+ })), sections.filter(function (section) {
107
+ return !section.skipped;
108
+ }).map(function (section, index) {
109
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
110
+ key: "".concat(section.name)
111
+ }, /*#__PURE__*/_react.default.createElement("h2", {
112
+ className: classes('section')
113
+ }, sections.length > 1 ? "".concat(index + 1, ". ") : '', section.name), section.label && /*#__PURE__*/_react.default.createElement(_copReactComponents.Hint, null, section.label), /*#__PURE__*/_react.default.createElement("ol", {
114
+ className: classes('items')
115
+ }, section.tasks.filter(function (task) {
116
+ return task.state !== _models.TaskStates.TYPES.SKIPPED;
117
+ }).map(function (task) {
118
+ return /*#__PURE__*/_react.default.createElement(_Task.default, {
119
+ key: "".concat(section.name, "-").concat(task.name),
120
+ task: task,
121
+ onClick: onClick
122
+ });
123
+ })));
124
+ }));
89
125
  };
90
126
  TaskList.propTypes = {
91
127
  classBlock: _propTypes.default.string,
@@ -95,6 +131,7 @@ TaskList.propTypes = {
95
131
  formData: _propTypes.default.shape({}),
96
132
  id: _propTypes.default.string,
97
133
  incompleteTitle: _propTypes.default.string,
134
+ showCompletionOverview: _propTypes.default.bool,
98
135
  notes: _propTypes.default.shape({
99
136
  title: _propTypes.default.string,
100
137
  text: _propTypes.default.string
@@ -113,7 +150,11 @@ TaskList.propTypes = {
113
150
  firstPage: _propTypes.default.string,
114
151
  alwaysShowFirstPage: _propTypes.default.bool
115
152
  })).isRequired
116
- })).isRequired
153
+ })).isRequired,
154
+ annotations: _propTypes.default.arrayOf(_propTypes.default.shape({
155
+ key: _propTypes.default.string,
156
+ value: _propTypes.default.string
157
+ }))
117
158
  };
118
159
  TaskList.defaultProps = {
119
160
  classBlock: DEFAULT_CLASS,
@@ -123,9 +164,11 @@ TaskList.defaultProps = {
123
164
  formData: {},
124
165
  id: '',
125
166
  incompleteTitle: DEFAULT_INCOMPLETE_TITLE,
167
+ showCompletionOverview: true,
126
168
  notes: {},
127
169
  onTaskAction: undefined,
128
170
  refNumber: undefined,
129
- refTitle: undefined
171
+ refTitle: undefined,
172
+ annotations: []
130
173
  };
131
174
  var _default = exports.default = TaskList;
@@ -58,6 +58,30 @@
58
58
  }
59
59
  }
60
60
 
61
+ .hods-task-list__annotation {
62
+ display: flex;
63
+ flex-flow: row wrap;
64
+ margin-bottom: govuk-spacing(2);
65
+
66
+ .hods-task-list__annotation-key {
67
+ font-weight: bold;
68
+ margin-top: 0;
69
+ margin-bottom: 0;
70
+ margin-right: govuk-spacing(1)
71
+ }
72
+
73
+ .hods-task-list__annotation-value {
74
+ font-weight: normal;
75
+ margin-top: 0;
76
+ margin-bottom: 0;
77
+ }
78
+
79
+ }
80
+
81
+ .hods-task-list__annotation:last-of-type {
82
+ margin-bottom: govuk-spacing(7)
83
+ }
84
+
61
85
  .hods-task-list__task-name {
62
86
  display: block;
63
87
  cursor: auto;