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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +15 -15
  2. package/dist/components/CheckYourAnswers/Answer.test.js +94 -128
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +99 -129
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +291 -501
  5. package/dist/components/CheckYourAnswers/index.js +2 -3
  6. package/dist/components/CollectionPage/CollectionPage.js +64 -58
  7. package/dist/components/CollectionPage/CollectionPage.test.js +212 -238
  8. package/dist/components/CollectionPage/index.js +2 -3
  9. package/dist/components/FormComponent/Collection.js +77 -113
  10. package/dist/components/FormComponent/Collection.test.js +688 -787
  11. package/dist/components/FormComponent/Container.js +44 -43
  12. package/dist/components/FormComponent/Container.test.js +316 -346
  13. package/dist/components/FormComponent/FormComponent.js +58 -64
  14. package/dist/components/FormComponent/FormComponent.test.js +180 -219
  15. package/dist/components/FormComponent/helpers/addLabel.js +5 -9
  16. package/dist/components/FormComponent/helpers/getComponentDisabled.js +2 -3
  17. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  18. package/dist/components/FormComponent/helpers/getComponentError.js +4 -7
  19. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  20. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +2 -2
  21. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  22. package/dist/components/FormComponent/helpers/index.js +5 -5
  23. package/dist/components/FormComponent/index.js +2 -3
  24. package/dist/components/FormPage/FormPage.js +65 -79
  25. package/dist/components/FormPage/FormPage.test.js +134 -170
  26. package/dist/components/FormPage/index.js +2 -3
  27. package/dist/components/FormRenderer/FormRenderer.js +151 -193
  28. package/dist/components/FormRenderer/FormRenderer.test.js +598 -920
  29. package/dist/components/FormRenderer/handlers/cyaAction.js +4 -5
  30. package/dist/components/FormRenderer/handlers/getPageId.js +2 -5
  31. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  32. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  33. package/dist/components/FormRenderer/handlers/index.js +3 -4
  34. package/dist/components/FormRenderer/handlers/navigate.js +5 -6
  35. package/dist/components/FormRenderer/handlers/submissionError.js +2 -3
  36. package/dist/components/FormRenderer/helpers/canActionProceed.js +2 -3
  37. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +10 -10
  38. package/dist/components/FormRenderer/helpers/canCYASubmit.js +2 -5
  39. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  40. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +19 -27
  41. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +17 -17
  42. package/dist/components/FormRenderer/helpers/getCYA.js +6 -9
  43. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  44. package/dist/components/FormRenderer/helpers/getFormState.js +7 -10
  45. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  46. package/dist/components/FormRenderer/helpers/getNextPageId.js +19 -34
  47. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  48. package/dist/components/FormRenderer/helpers/getPage.js +3 -6
  49. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  50. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -13
  51. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  52. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +12 -13
  53. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +98 -92
  54. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +66 -66
  55. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +72 -79
  56. package/dist/components/FormRenderer/helpers/index.js +3 -4
  57. package/dist/components/FormRenderer/index.js +2 -3
  58. package/dist/components/FormRenderer/onCYAAction.js +52 -62
  59. package/dist/components/FormRenderer/onCYAAction.test.js +146 -138
  60. package/dist/components/FormRenderer/onPageAction.js +48 -47
  61. package/dist/components/FormRenderer/onPageAction.test.js +219 -205
  62. package/dist/components/FormRenderer/onTaskAction.js +12 -17
  63. package/dist/components/FormRenderer/onTaskAction.test.js +94 -89
  64. package/dist/components/PageActions/ActionButton.js +15 -19
  65. package/dist/components/PageActions/ActionButton.test.js +58 -79
  66. package/dist/components/PageActions/PageActions.js +12 -13
  67. package/dist/components/PageActions/PageActions.test.js +88 -116
  68. package/dist/components/PageActions/index.js +2 -3
  69. package/dist/components/SummaryList/GroupAction.js +15 -23
  70. package/dist/components/SummaryList/GroupAction.test.js +41 -37
  71. package/dist/components/SummaryList/RowAction.js +14 -19
  72. package/dist/components/SummaryList/RowAction.test.js +41 -37
  73. package/dist/components/SummaryList/SummaryList.js +25 -30
  74. package/dist/components/SummaryList/SummaryList.test.js +160 -182
  75. package/dist/components/SummaryList/SummaryListHeadingRow.js +9 -8
  76. package/dist/components/SummaryList/SummaryListRow.js +9 -8
  77. package/dist/components/SummaryList/SummaryListTitleRow.js +8 -7
  78. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -8
  79. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +24 -24
  80. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -8
  81. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +24 -24
  82. package/dist/components/SummaryList/helpers/index.js +2 -2
  83. package/dist/components/SummaryList/index.js +2 -3
  84. package/dist/components/TaskList/Task.js +22 -33
  85. package/dist/components/TaskList/Task.test.js +84 -77
  86. package/dist/components/TaskList/TaskList.js +46 -75
  87. package/dist/components/TaskList/TaskList.test.js +118 -113
  88. package/dist/components/TaskList/TaskState.js +9 -9
  89. package/dist/components/TaskList/TaskState.test.js +56 -49
  90. package/dist/components/TaskList/index.js +2 -3
  91. package/dist/components/index.js +8 -8
  92. package/dist/context/HooksContext/HooksContext.js +59 -85
  93. package/dist/context/HooksContext/HooksContext.test.js +28 -36
  94. package/dist/context/HooksContext/index.js +4 -6
  95. package/dist/context/ValidationContext/ValidationContext.js +35 -76
  96. package/dist/context/ValidationContext/ValidationContext.test.js +50 -61
  97. package/dist/context/ValidationContext/index.js +4 -6
  98. package/dist/context/index.js +3 -3
  99. package/dist/hooks/index.js +10 -11
  100. package/dist/hooks/useAxios.js +17 -43
  101. package/dist/hooks/useGetRequest.js +61 -106
  102. package/dist/hooks/useHooks.js +2 -5
  103. package/dist/hooks/useRefData.js +29 -45
  104. package/dist/hooks/useValidation.js +2 -5
  105. package/dist/index.js +15 -17
  106. package/dist/models/CollectionLabels.js +2 -3
  107. package/dist/models/ComponentTypes.js +25 -26
  108. package/dist/models/EventTypes.js +5 -6
  109. package/dist/models/FormPages.js +5 -6
  110. package/dist/models/FormTypes.js +9 -10
  111. package/dist/models/HubFormats.js +4 -5
  112. package/dist/models/PageAction.js +45 -42
  113. package/dist/models/TaskStates.js +30 -31
  114. package/dist/models/index.js +11 -12
  115. package/dist/setupTests.js +20 -24
  116. package/dist/utils/CheckYourAnswers/getCYAAction.js +6 -7
  117. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  118. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +18 -20
  119. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +21 -23
  120. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -21
  121. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +18 -20
  122. package/dist/utils/CheckYourAnswers/getCYARow.js +8 -10
  123. package/dist/utils/CheckYourAnswers/getCYARow.test.js +72 -72
  124. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +20 -27
  125. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  126. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +41 -47
  127. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +72 -75
  128. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +71 -78
  129. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +133 -114
  130. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +27 -23
  131. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
  132. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +16 -23
  133. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +77 -83
  134. package/dist/utils/CheckYourAnswers/index.js +3 -4
  135. package/dist/utils/CheckYourAnswers/showComponentCYA.js +7 -9
  136. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  137. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +9 -16
  138. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +19 -20
  139. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +4 -8
  140. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +15 -15
  141. package/dist/utils/CollectionPage/index.js +3 -4
  142. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -29
  143. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +15 -15
  144. package/dist/utils/Component/addShowWhen.js +5 -10
  145. package/dist/utils/Component/addShowWhen.test.js +38 -38
  146. package/dist/utils/Component/applyToComponentTree.js +20 -22
  147. package/dist/utils/Component/applyToComponentTree.test.js +28 -33
  148. package/dist/utils/Component/cleanAttributes.js +11 -16
  149. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  150. package/dist/utils/Component/elevateNestedComponents.js +7 -9
  151. package/dist/utils/Component/elevateNestedComponents.test.js +19 -19
  152. package/dist/utils/Component/getComponent.js +91 -99
  153. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  154. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +51 -63
  155. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +41 -49
  156. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -37
  157. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  158. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +19 -23
  159. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +23 -27
  160. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +12 -11
  161. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  162. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  163. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  164. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +24 -27
  165. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
  166. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  167. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +19 -23
  168. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +59 -73
  169. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +19 -23
  170. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +19 -23
  171. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +35 -41
  172. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +24 -32
  173. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  174. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  175. package/dist/utils/Component/getDefaultValue.js +7 -9
  176. package/dist/utils/Component/getDefaultValue.test.js +14 -14
  177. package/dist/utils/Component/index.js +3 -4
  178. package/dist/utils/Component/isEditable.js +3 -7
  179. package/dist/utils/Component/isEditable.test.js +14 -15
  180. package/dist/utils/Component/optionIsSelected.js +2 -3
  181. package/dist/utils/Component/optionIsSelected.test.js +10 -10
  182. package/dist/utils/Component/setupContainerComponentsPath.js +30 -33
  183. package/dist/utils/Component/setupContainerComponentsPath.test.js +16 -16
  184. package/dist/utils/Component/showComponent.js +4 -6
  185. package/dist/utils/Component/showComponent.test.js +29 -29
  186. package/dist/utils/Component/wrapInFormGroup.js +6 -6
  187. package/dist/utils/Condition/index.js +3 -4
  188. package/dist/utils/Condition/meetsAllConditions.js +9 -10
  189. package/dist/utils/Condition/meetsAllConditions.test.js +18 -18
  190. package/dist/utils/Condition/meetsCondition.js +19 -27
  191. package/dist/utils/Condition/meetsCondition.test.js +377 -377
  192. package/dist/utils/Condition/meetsOneCondition.js +7 -8
  193. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  194. package/dist/utils/Condition/setupConditions.js +15 -21
  195. package/dist/utils/Condition/setupConditions.test.js +8 -8
  196. package/dist/utils/Container/getEditableComponents.js +5 -8
  197. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  198. package/dist/utils/Container/index.js +3 -4
  199. package/dist/utils/Container/setupNesting.js +17 -24
  200. package/dist/utils/Container/setupNesting.test.js +28 -31
  201. package/dist/utils/Container/showContainer.js +5 -10
  202. package/dist/utils/Container/showContainer.test.js +31 -31
  203. package/dist/utils/Data/applyFormula.js +41 -52
  204. package/dist/utils/Data/applyFormula.test.js +26 -26
  205. package/dist/utils/Data/getAutocompleteSource.js +11 -14
  206. package/dist/utils/Data/getAutocompleteSource.test.js +59 -59
  207. package/dist/utils/Data/getDataPath.js +21 -32
  208. package/dist/utils/Data/getDataPath.test.js +20 -20
  209. package/dist/utils/Data/getOptions.js +22 -28
  210. package/dist/utils/Data/getOptions.test.js +21 -21
  211. package/dist/utils/Data/getSourceData.js +7 -21
  212. package/dist/utils/Data/getSourceData.test.js +85 -81
  213. package/dist/utils/Data/index.js +3 -4
  214. package/dist/utils/Data/refDataToOptions.js +12 -17
  215. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  216. package/dist/utils/Data/setDataItem.js +8 -10
  217. package/dist/utils/Data/setDataItem.test.js +38 -38
  218. package/dist/utils/Data/setupFormData.js +32 -48
  219. package/dist/utils/Data/setupFormData.test.js +99 -98
  220. package/dist/utils/Data/setupRefDataUrlForComponent.js +22 -30
  221. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +28 -28
  222. package/dist/utils/FormPage/applyConditionalProperties.js +7 -12
  223. package/dist/utils/FormPage/applyConditionalProperties.test.js +16 -19
  224. package/dist/utils/FormPage/getFormPage.js +17 -19
  225. package/dist/utils/FormPage/getFormPage.test.js +49 -48
  226. package/dist/utils/FormPage/getFormPages.js +9 -15
  227. package/dist/utils/FormPage/getFormPages.test.js +22 -25
  228. package/dist/utils/FormPage/getPageActions.js +11 -19
  229. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  230. package/dist/utils/FormPage/getParagraphFromText.js +6 -9
  231. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  232. package/dist/utils/FormPage/index.js +3 -4
  233. package/dist/utils/FormPage/showFormPage.js +5 -10
  234. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  235. package/dist/utils/FormPage/showFormPageCYA.js +4 -5
  236. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  237. package/dist/utils/FormPage/useComponent.js +21 -29
  238. package/dist/utils/FormPage/useComponent.test.js +71 -73
  239. package/dist/utils/Format/formatData.js +2 -3
  240. package/dist/utils/Format/formatData.test.js +19 -19
  241. package/dist/utils/Format/formatDataForComponent.js +6 -9
  242. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  243. package/dist/utils/Format/formatDataForForm.js +7 -10
  244. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  245. package/dist/utils/Format/formatDataForPage.js +4 -7
  246. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  247. package/dist/utils/Format/index.js +3 -4
  248. package/dist/utils/Hub/getFormHub.js +3 -4
  249. package/dist/utils/Hub/getFormHub.test.js +29 -32
  250. package/dist/utils/Hub/index.js +3 -4
  251. package/dist/utils/Meta/constants.js +2 -4
  252. package/dist/utils/Meta/documents/getDocuments.js +2 -6
  253. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  254. package/dist/utils/Meta/documents/index.js +3 -4
  255. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -19
  256. package/dist/utils/Meta/documents/setDocumentsForField.test.js +69 -35
  257. package/dist/utils/Meta/index.js +3 -4
  258. package/dist/utils/Operate/checkValueIsTruthy.js +5 -6
  259. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  260. package/dist/utils/Operate/getFirstOf.js +9 -10
  261. package/dist/utils/Operate/getFirstOf.test.js +33 -33
  262. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +13 -14
  263. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  264. package/dist/utils/Operate/index.js +3 -4
  265. package/dist/utils/Operate/persistValueInFormData.js +7 -8
  266. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  267. package/dist/utils/Operate/runPageOperations.js +10 -11
  268. package/dist/utils/Operate/runPageOperations.test.js +36 -37
  269. package/dist/utils/Operate/setValueInFormData.js +6 -7
  270. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  271. package/dist/utils/Operate/shouldRun.js +9 -10
  272. package/dist/utils/Operate/shouldRun.test.js +22 -28
  273. package/dist/utils/Validate/additional/conditionallyRequired.js +5 -7
  274. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  275. package/dist/utils/Validate/additional/index.js +8 -9
  276. package/dist/utils/Validate/additional/index.test.js +13 -13
  277. package/dist/utils/Validate/additional/mustBeAfter.js +4 -5
  278. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  279. package/dist/utils/Validate/additional/mustBeBefore.js +4 -5
  280. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  281. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -14
  282. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +34 -38
  283. package/dist/utils/Validate/additional/mustBeGreaterThan.js +3 -4
  284. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  285. package/dist/utils/Validate/additional/mustBeInTheFuture.js +5 -6
  286. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  287. package/dist/utils/Validate/additional/mustBeInThePast.js +6 -7
  288. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  289. package/dist/utils/Validate/additional/mustBeLessThan.js +3 -4
  290. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  291. package/dist/utils/Validate/additional/mustBeLongerThan.js +2 -3
  292. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  293. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +3 -4
  294. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  295. package/dist/utils/Validate/additional/mustBeShorterThan.js +2 -3
  296. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  297. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +4 -7
  298. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  299. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +2 -3
  300. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  301. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +4 -7
  302. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  303. package/dist/utils/Validate/additional/utils.js +9 -25
  304. package/dist/utils/Validate/index.js +3 -4
  305. package/dist/utils/Validate/validateCollection.js +22 -29
  306. package/dist/utils/Validate/validateCollection.test.js +85 -77
  307. package/dist/utils/Validate/validateComponent.js +19 -19
  308. package/dist/utils/Validate/validateComponent.test.js +169 -147
  309. package/dist/utils/Validate/validateContainer.js +16 -22
  310. package/dist/utils/Validate/validateContainer.test.js +52 -48
  311. package/dist/utils/Validate/validateDate.js +14 -21
  312. package/dist/utils/Validate/validateDate.test.js +28 -29
  313. package/dist/utils/Validate/validateEmail.js +8 -11
  314. package/dist/utils/Validate/validateEmail.test.js +26 -26
  315. package/dist/utils/Validate/validateMultifile.js +6 -10
  316. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  317. package/dist/utils/Validate/validatePage.js +20 -22
  318. package/dist/utils/Validate/validatePage.test.js +146 -143
  319. package/dist/utils/Validate/validateRegex.js +6 -10
  320. package/dist/utils/Validate/validateRegex.test.js +17 -17
  321. package/dist/utils/Validate/validateRequired.js +6 -9
  322. package/dist/utils/Validate/validateRequired.test.js +19 -19
  323. package/dist/utils/Validate/validateTextArea.js +6 -9
  324. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  325. package/dist/utils/Validate/validateTime.js +8 -16
  326. package/dist/utils/Validate/validateTime.test.js +15 -15
  327. package/dist/utils/index.js +10 -12
  328. package/package.json +9 -6
@@ -9,17 +9,15 @@ var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customPars
9
9
  var _isToday = _interopRequireDefault(require("dayjs/plugin/isToday"));
10
10
  var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
11
11
  var _utils = require("./additional/utils");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
- 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."); }
15
- 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); }
16
- 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; }
17
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
18
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ // Global imports
14
+
15
+ // Local imports
16
+
19
17
  _dayjs.default.extend(_customParseFormat.default);
20
18
  _dayjs.default.extend(_isToday.default);
21
19
  _dayjs.default.extend(_isLeapYear.default);
22
- var maxMonthDays = function maxMonthDays(month, year) {
20
+ const maxMonthDays = (month, year) => {
23
21
  if (month === '02') {
24
22
  return (0, _dayjs.default)().year(year).isLeapYear() ? 29 : 28;
25
23
  }
@@ -41,21 +39,17 @@ exports.maxMonthDays = maxMonthDays;
41
39
  * @returns an object with an error message and instructions for which parts of the date are in error
42
40
  * or undefined for both if the date is valid
43
41
  */
44
- var validateDate = function validateDate(date) {
42
+ const validateDate = date => {
45
43
  if (!date) {
46
44
  return {
47
45
  message: undefined,
48
46
  propsInError: undefined
49
47
  };
50
48
  }
51
- var formattedDate = (0, _utils.formatString)(date);
52
- var _formattedDate$split = formattedDate.split('-'),
53
- _formattedDate$split2 = _slicedToArray(_formattedDate$split, 3),
54
- day = _formattedDate$split2[0],
55
- month = _formattedDate$split2[1],
56
- year = _formattedDate$split2[2];
57
- var intDay = parseInt(day, 10);
58
- var intMonth = parseInt(month, 10);
49
+ const formattedDate = (0, _utils.formatString)(date);
50
+ const [day, month, year] = formattedDate.split('-');
51
+ const intDay = parseInt(day, 10);
52
+ const intMonth = parseInt(month, 10);
59
53
  if (year.length === 0) {
60
54
  return {
61
55
  message: 'Date must include a year',
@@ -96,10 +90,10 @@ var validateDate = function validateDate(date) {
96
90
  }
97
91
  };
98
92
  }
99
- var maxDays = maxMonthDays(month, year);
93
+ const maxDays = maxMonthDays(month, year);
100
94
  if (intDay > maxDays || intDay < 1) {
101
95
  return {
102
- message: "Day must be between 1 and ".concat(maxDays),
96
+ message: `Day must be between 1 and ${maxDays}`,
103
97
  propsInError: {
104
98
  day: true
105
99
  }
@@ -120,5 +114,4 @@ var validateDate = function validateDate(date) {
120
114
  propsInError: undefined
121
115
  };
122
116
  };
123
- var _default = validateDate;
124
- exports.default = _default;
117
+ var _default = exports.default = validateDate;
@@ -1,34 +1,33 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  var _validateDate = _interopRequireWildcard(require("./validateDate"));
5
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
6
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
7
- describe('utils', function () {
8
- describe('Validate', function () {
9
- describe('date', function () {
10
- test('should return no error when the value is an empty string', function () {
4
+ 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); }
5
+ 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; }
6
+ describe('utils', () => {
7
+ describe('Validate', () => {
8
+ describe('date', () => {
9
+ test('should return no error when the value is an empty string', () => {
11
10
  expect((0, _validateDate.default)('', 'DD-MM-YYYY')).toEqual({
12
11
  message: undefined,
13
12
  propsInError: undefined
14
13
  });
15
14
  });
16
- test('should return undefined if a date string is valid', function () {
17
- var output = (0, _validateDate.default)('28-02-2024', 'DD-MM-YYYY');
15
+ test('should return undefined if a date string is valid', () => {
16
+ const output = (0, _validateDate.default)('28-02-2024', 'DD-MM-YYYY');
18
17
  expect(output).toEqual({
19
18
  message: undefined,
20
19
  propsInError: undefined
21
20
  });
22
21
  });
23
- test('should return undefined to a correct leap year date', function () {
24
- var output = (0, _validateDate.default)('29-02-2024', 'DD-MM-YYYY');
22
+ test('should return undefined to a correct leap year date', () => {
23
+ const output = (0, _validateDate.default)('29-02-2024', 'DD-MM-YYYY');
25
24
  expect(output).toEqual({
26
25
  message: undefined,
27
26
  propsInError: undefined
28
27
  });
29
28
  });
30
- test('should validate false if NOT a leap year & 29 Feb is entered', function () {
31
- var output = (0, _validateDate.default)('29-02-2023', 'DD-MM-YYYY');
29
+ test('should validate false if NOT a leap year & 29 Feb is entered', () => {
30
+ const output = (0, _validateDate.default)('29-02-2023', 'DD-MM-YYYY');
32
31
  expect(output).toEqual({
33
32
  message: 'Day must be between 1 and 28',
34
33
  propsInError: {
@@ -36,8 +35,8 @@ describe('utils', function () {
36
35
  }
37
36
  });
38
37
  });
39
- test('should return an error if no year is given', function () {
40
- var output = (0, _validateDate.default)('29-02-', 'DD-MM-YYYY');
38
+ test('should return an error if no year is given', () => {
39
+ const output = (0, _validateDate.default)('29-02-', 'DD-MM-YYYY');
41
40
  expect(output).toEqual({
42
41
  message: 'Date must include a year',
43
42
  propsInError: {
@@ -45,8 +44,8 @@ describe('utils', function () {
45
44
  }
46
45
  });
47
46
  });
48
- test('should return an error if the year contains less than 4 numbers', function () {
49
- var output = (0, _validateDate.default)('29-02-20', 'DD-MM-YYYY');
47
+ test('should return an error if the year contains less than 4 numbers', () => {
48
+ const output = (0, _validateDate.default)('29-02-20', 'DD-MM-YYYY');
50
49
  expect(output).toEqual({
51
50
  message: 'Year must be 4 numbers',
52
51
  propsInError: {
@@ -54,8 +53,8 @@ describe('utils', function () {
54
53
  }
55
54
  });
56
55
  });
57
- test('should return an error if the year contains more than 4 numbers', function () {
58
- var output = (0, _validateDate.default)('29-02-20202', 'DD-MM-YYYY');
56
+ test('should return an error if the year contains more than 4 numbers', () => {
57
+ const output = (0, _validateDate.default)('29-02-20202', 'DD-MM-YYYY');
59
58
  expect(output).toEqual({
60
59
  message: 'Year must be 4 numbers',
61
60
  propsInError: {
@@ -63,8 +62,8 @@ describe('utils', function () {
63
62
  }
64
63
  });
65
64
  });
66
- test('should return an error if no month is given', function () {
67
- var output = (0, _validateDate.default)('29--2020', 'DD-MM-YYYY');
65
+ test('should return an error if no month is given', () => {
66
+ const output = (0, _validateDate.default)('29--2020', 'DD-MM-YYYY');
68
67
  expect(output).toEqual({
69
68
  message: 'Date must include a month',
70
69
  propsInError: {
@@ -72,8 +71,8 @@ describe('utils', function () {
72
71
  }
73
72
  });
74
73
  });
75
- test('should return an error if the month is not between 1 and 12', function () {
76
- var output = (0, _validateDate.default)('29-14-2020', 'DD-MM-YYYY');
74
+ test('should return an error if the month is not between 1 and 12', () => {
75
+ const output = (0, _validateDate.default)('29-14-2020', 'DD-MM-YYYY');
77
76
  expect(output).toEqual({
78
77
  message: 'Month must be between 1 and 12',
79
78
  propsInError: {
@@ -81,8 +80,8 @@ describe('utils', function () {
81
80
  }
82
81
  });
83
82
  });
84
- test('should return an error if no day is given', function () {
85
- var output = (0, _validateDate.default)('-03-2020', 'DD-MM-YYYY');
83
+ test('should return an error if no day is given', () => {
84
+ const output = (0, _validateDate.default)('-03-2020', 'DD-MM-YYYY');
86
85
  expect(output).toEqual({
87
86
  message: 'Date must include a day',
88
87
  propsInError: {
@@ -90,8 +89,8 @@ describe('utils', function () {
90
89
  }
91
90
  });
92
91
  });
93
- test('should return an error if the day is not between 1 and 31', function () {
94
- var output = (0, _validateDate.default)('45-12-2020', 'DD-MM-YYYY');
92
+ test('should return an error if the day is not between 1 and 31', () => {
93
+ const output = (0, _validateDate.default)('45-12-2020', 'DD-MM-YYYY');
95
94
  expect(output).toEqual({
96
95
  message: 'Day must be between 1 and 31',
97
96
  propsInError: {
@@ -99,8 +98,8 @@ describe('utils', function () {
99
98
  }
100
99
  });
101
100
  });
102
- test('should correctly identify the maximum numbers of days in a given month and year', function () {
103
- var max = (0, _validateDate.maxMonthDays)('02', '2024');
101
+ test('should correctly identify the maximum numbers of days in a given month and year', () => {
102
+ let max = (0, _validateDate.maxMonthDays)('02', '2024');
104
103
  expect(max).toEqual(29);
105
104
  max = (0, _validateDate.maxMonthDays)('02', '2023');
106
105
  expect(max).toEqual(28);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  // eslint-disable-next-line no-control-regex
8
8
  // const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i;
9
- var HODS_EMAIL_REGEX = /^[a-z0-9._-]+@(digital\.)?homeoffice.gov.uk$/i;
9
+ const HODS_EMAIL_REGEX = /^[a-z0-9._-]+@(digital\.)?homeoffice.gov.uk$/i;
10
10
 
11
11
  /**
12
12
  * Validates an email address, ensuring it is in the correct domain and
@@ -19,28 +19,25 @@ var HODS_EMAIL_REGEX = /^[a-z0-9._-]+@(digital\.)?homeoffice.gov.uk$/i;
19
19
  * @param {array} customErrors The array of custom errors to use for format message.
20
20
  * @returns An error if the email address is invalid.
21
21
  */
22
- var validateEmail = function validateEmail(value) {
23
- var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
24
- var customErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
22
+ const validateEmail = function (value) {
23
+ let label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
24
+ let customErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
25
25
  // eslint-disable-next-line no-extra-boolean-cast
26
26
  if (!!value) {
27
- var name = label ? label.toLowerCase() : 'email address';
27
+ const name = label ? label.toLowerCase() : 'email address';
28
28
  if (typeof value === 'string') {
29
29
  if (HODS_EMAIL_REGEX.test(value)) {
30
30
  return undefined;
31
31
  }
32
32
  }
33
33
  if (Array.isArray(customErrors)) {
34
- var result = customErrors.filter(function (error) {
35
- return error.type === 'format';
36
- });
34
+ const result = customErrors.filter(error => error.type === 'format');
37
35
  if (result && result.length > 0 && result[0].message) {
38
36
  return result[0].message;
39
37
  }
40
38
  }
41
- return "Enter ".concat(name, " in the correct format, like jane.doe@homeoffice.gov.uk");
39
+ return `Enter ${name} in the correct format, like jane.doe@homeoffice.gov.uk`;
42
40
  }
43
41
  return undefined;
44
42
  };
45
- var _default = validateEmail;
46
- exports.default = _default;
43
+ var _default = exports.default = validateEmail;
@@ -1,69 +1,69 @@
1
1
  "use strict";
2
2
 
3
3
  var _validateEmail = _interopRequireDefault(require("./validateEmail"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
5
  // Local imports
6
6
 
7
- describe('utils', function () {
8
- describe('Validate', function () {
9
- describe('email', function () {
10
- var LABEL = 'Component';
11
- var ERROR = "Enter ".concat(LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk");
7
+ describe('utils', () => {
8
+ describe('Validate', () => {
9
+ describe('email', () => {
10
+ const LABEL = 'Component';
11
+ const ERROR = `Enter ${LABEL.toLowerCase()} in the correct format, like jane.doe@homeoffice.gov.uk`;
12
12
 
13
13
  // Valid values
14
- it('should return no error when the value is a valid .gov.uk address', function () {
14
+ it('should return no error when the value is a valid .gov.uk address', () => {
15
15
  expect((0, _validateEmail.default)('alpha@homeoffice.gov.uk', LABEL)).toBeUndefined();
16
16
  });
17
- it('should return no error when the value is a capitalised digital.homeoffice.gov.uk address', function () {
17
+ it('should return no error when the value is a capitalised digital.homeoffice.gov.uk address', () => {
18
18
  expect((0, _validateEmail.default)('ALPHA.BRAVO@DIGITAL.HOMEOFFICE.GOV.UK', LABEL)).toBeUndefined();
19
19
  });
20
- it('should return no error when the value is an empty string', function () {
20
+ it('should return no error when the value is an empty string', () => {
21
21
  expect((0, _validateEmail.default)('', LABEL)).toBeUndefined();
22
22
  });
23
23
 
24
24
  // Invalid values
25
- it('should return an error when the value is an empty object', function () {
25
+ it('should return an error when the value is an empty object', () => {
26
26
  expect((0, _validateEmail.default)({}, LABEL)).toEqual(ERROR);
27
27
  });
28
- it('should return an error when the value is an array', function () {
28
+ it('should return an error when the value is an array', () => {
29
29
  expect((0, _validateEmail.default)(['bob'], LABEL)).toEqual(ERROR);
30
30
  });
31
- it('should return an error when the value is numeric', function () {
31
+ it('should return an error when the value is numeric', () => {
32
32
  expect((0, _validateEmail.default)(24, LABEL)).toEqual(ERROR);
33
33
  });
34
- it('should return an error when the value is in the wrong domain', function () {
34
+ it('should return an error when the value is in the wrong domain', () => {
35
35
  expect((0, _validateEmail.default)('alpha@domain.com', LABEL)).toEqual(ERROR);
36
36
  });
37
- it('should return an error when the domain contains spaces', function () {
37
+ it('should return an error when the domain contains spaces', () => {
38
38
  expect((0, _validateEmail.default)('alpha.bravo@digital homeoffice.gov.uk', LABEL)).toEqual(ERROR);
39
39
  });
40
- it('should return an error when the value has no TLD', function () {
40
+ it('should return an error when the value has no TLD', () => {
41
41
  expect((0, _validateEmail.default)('alpha.bravo@homeoffice', LABEL)).toEqual(ERROR);
42
42
  });
43
- it('should return an error when there is no name', function () {
43
+ it('should return an error when there is no name', () => {
44
44
  expect((0, _validateEmail.default)('@homeoffice.gov.uk', LABEL)).toEqual(ERROR);
45
45
  });
46
- it('should return an error when there is no @ symbol', function () {
46
+ it('should return an error when there is no @ symbol', () => {
47
47
  expect((0, _validateEmail.default)('alpha.bravo.homeoffice.gov.uk', LABEL)).toEqual(ERROR);
48
48
  });
49
- it('should return an error when the name contains spaces', function () {
49
+ it('should return an error when the name contains spaces', () => {
50
50
  expect((0, _validateEmail.default)('alpha bravo@digital.homeoffice.gov.uk', LABEL)).toEqual(ERROR);
51
51
  });
52
- it('should use a default label when none is specified', function () {
53
- var DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
52
+ it('should use a default label when none is specified', () => {
53
+ const DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
54
54
  expect((0, _validateEmail.default)(['bob'], undefined)).toEqual(DEFAULT_ERROR);
55
55
  });
56
- it('should use a custom format error message when specified', function () {
57
- var customErrors = [{
56
+ it('should use a custom format error message when specified', () => {
57
+ const customErrors = [{
58
58
  'type': 'format',
59
59
  'message': 'Enter email address in the correct format'
60
60
  }];
61
- var CUSTOM_ERROR = 'Enter email address in the correct format';
61
+ const CUSTOM_ERROR = 'Enter email address in the correct format';
62
62
  expect((0, _validateEmail.default)('bob', '', customErrors)).toEqual(CUSTOM_ERROR);
63
63
  });
64
- it('should use the default format error message when custom errors is not an array', function () {
65
- var DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
66
- var customErrors = {
64
+ it('should use the default format error message when custom errors is not an array', () => {
65
+ const DEFAULT_ERROR = 'Enter email address in the correct format, like jane.doe@homeoffice.gov.uk';
66
+ const customErrors = {
67
67
  'type': 'format',
68
68
  'message': 'Enter email address in the correct format'
69
69
  };
@@ -4,22 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.DEFAULT_ERROR = void 0;
7
- var DEFAULT_ERROR = 'Invalid files must be deleted';
8
- exports.DEFAULT_ERROR = DEFAULT_ERROR;
9
- var validateMultifile = function validateMultifile(value, customErrors) {
7
+ const DEFAULT_ERROR = exports.DEFAULT_ERROR = 'Invalid files must be deleted';
8
+ const validateMultifile = (value, customErrors) => {
10
9
  if (!value) {
11
10
  return undefined;
12
11
  }
13
- var inError = false;
14
- value.every(function (entry) {
12
+ let inError = false;
13
+ value.every(entry => {
15
14
  inError = entry.error;
16
15
  return !inError;
17
16
  });
18
17
  if (inError) {
19
18
  if (Array.isArray(customErrors)) {
20
- var result = customErrors.filter(function (error) {
21
- return error.type === 'invalidFile';
22
- });
19
+ const result = customErrors.filter(error => error.type === 'invalidFile');
23
20
  if (result && result.length > 0 && result[0].message) {
24
21
  return result[0].message;
25
22
  }
@@ -28,5 +25,4 @@ var validateMultifile = function validateMultifile(value, customErrors) {
28
25
  }
29
26
  return undefined;
30
27
  };
31
- var _default = validateMultifile;
32
- exports.default = _default;
28
+ var _default = exports.default = validateMultifile;
@@ -1,43 +1,42 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  var _validateMultifile = _interopRequireWildcard(require("./validateMultifile"));
5
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
6
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
4
+ 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); }
5
+ 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; }
7
6
  // Local imports
8
7
 
9
- describe('utils', function () {
10
- describe('Validate', function () {
11
- describe('multifile', function () {
12
- var ERROR_MSG = 'This is a custom error message';
13
- var CUSTOM_ERRORS = [{
8
+ describe('utils', () => {
9
+ describe('Validate', () => {
10
+ describe('multifile', () => {
11
+ const ERROR_MSG = 'This is a custom error message';
12
+ const CUSTOM_ERRORS = [{
14
13
  type: 'invalidFile',
15
14
  message: ERROR_MSG
16
15
  }];
17
16
 
18
17
  // Valid values.
19
- it('should return no error when value is nullish', function () {
20
- var VALUE = null;
18
+ it('should return no error when value is nullish', () => {
19
+ const VALUE = null;
21
20
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
22
21
  });
23
- it('should return no error when value is an empty array', function () {
24
- var VALUE = [];
22
+ it('should return no error when value is an empty array', () => {
23
+ const VALUE = [];
25
24
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
26
25
  });
27
- it('should return no error when value only contains valid files', function () {
28
- var VALUE = [{}, {}];
26
+ it('should return no error when value only contains valid files', () => {
27
+ const VALUE = [{}, {}];
29
28
  expect((0, _validateMultifile.default)(VALUE, [])).toBeUndefined();
30
29
  });
31
30
 
32
31
  // Invalid values.
33
- it('should return an error when valid contains invalid files', function () {
34
- var VALUE = [{
32
+ it('should return an error when valid contains invalid files', () => {
33
+ const VALUE = [{
35
34
  error: 'This is an invalid file'
36
35
  }];
37
36
  expect((0, _validateMultifile.default)(VALUE, [])).toEqual(_validateMultifile.DEFAULT_ERROR);
38
37
  });
39
- it('should return a custom error when one is provided', function () {
40
- var VALUE = [{
38
+ it('should return a custom error when one is provided', () => {
39
+ const VALUE = [{
41
40
  error: 'This is an invalid file'
42
41
  }];
43
42
  expect((0, _validateMultifile.default)(VALUE, CUSTOM_ERRORS)).toEqual(ERROR_MSG);
@@ -8,44 +8,42 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
9
9
  var _CollectionPage = _interopRequireDefault(require("../CollectionPage"));
10
10
  var _showFormPage = _interopRequireDefault(require("../FormPage/showFormPage"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- 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; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // Global imports
13
+
14
+ // Local imports
15
+
18
16
  /**
19
17
  * Validate all of the components on a page.
20
18
  * @param {object} page The page to validate
21
19
  * @returns An array containing all of the errors.
22
20
  */
23
- var validatePage = function validatePage(page) {
24
- var data = page.formData;
21
+ const validatePage = page => {
22
+ let data = page.formData;
25
23
  if (page.collection) {
26
- var activeIndex = _CollectionPage.default.getActiveIndex(page.collection.name, page.formData);
24
+ const activeIndex = _CollectionPage.default.getActiveIndex(page.collection.name, page.formData);
27
25
  if (activeIndex !== null) {
28
- var _page$formData$page$c;
29
- data = _objectSpread(_objectSpread({}, page.formData), (_page$formData$page$c = page.formData[page.collection.name]) === null || _page$formData$page$c === void 0 ? void 0 : _page$formData$page$c[activeIndex]);
26
+ data = {
27
+ ...page.formData,
28
+ ...page.formData[page.collection.name]?.[activeIndex]
29
+ };
30
30
  }
31
31
  }
32
32
  if ((0, _showFormPage.default)(page, data) && Array.isArray(page.components)) {
33
- var errs = page.components.reduce(function (errors, component) {
34
- var componentErrors = (0, _validateComponent.default)(component, data, data);
35
- return errors.concat(componentErrors).flat().map(function (err) {
33
+ const errs = page.components.reduce((errors, component) => {
34
+ const componentErrors = (0, _validateComponent.default)(component, data, data);
35
+ return errors.concat(componentErrors).flat().map(err => {
36
36
  if (err) {
37
- return _objectSpread(_objectSpread({}, err), {}, {
37
+ return {
38
+ ...err,
38
39
  error: _copReactComponents.Utils.interpolateString(err.error, data)
39
- });
40
+ };
40
41
  }
41
42
  return err;
42
43
  });
43
- }, []).filter(function (e) {
44
- return !!e;
45
- }).flat();
44
+ }, []).filter(e => !!e).flat();
46
45
  return errs;
47
46
  }
48
47
  return [];
49
48
  };
50
- var _default = validatePage;
51
- exports.default = _default;
49
+ var _default = exports.default = validatePage;