@ukhomeoffice/cop-react-form-renderer 4.67.0 → 4.68.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 (315) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +6 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +104 -129
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +26 -64
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +428 -555
  5. package/dist/components/CheckYourAnswers/index.js +0 -3
  6. package/dist/components/CollectionPage/CollectionPage.js +13 -42
  7. package/dist/components/CollectionPage/CollectionPage.test.js +160 -206
  8. package/dist/components/CollectionPage/index.js +0 -3
  9. package/dist/components/FormComponent/Collection.js +35 -79
  10. package/dist/components/FormComponent/Collection.test.js +340 -391
  11. package/dist/components/FormComponent/Container.js +10 -31
  12. package/dist/components/FormComponent/Container.test.js +304 -357
  13. package/dist/components/FormComponent/FormComponent.js +17 -60
  14. package/dist/components/FormComponent/FormComponent.test.js +190 -228
  15. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  16. package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -4
  17. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -2
  18. package/dist/components/FormComponent/helpers/getComponentError.js +0 -6
  19. package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -2
  20. package/dist/components/FormComponent/helpers/index.js +0 -4
  21. package/dist/components/FormComponent/index.js +0 -3
  22. package/dist/components/FormPage/FormPage.js +21 -53
  23. package/dist/components/FormPage/FormPage.test.js +122 -160
  24. package/dist/components/FormPage/index.js +0 -3
  25. package/dist/components/FormRenderer/FormRenderer.js +106 -296
  26. package/dist/components/FormRenderer/FormRenderer.test.js +820 -1058
  27. package/dist/components/FormRenderer/handlers/cyaAction.js +0 -5
  28. package/dist/components/FormRenderer/handlers/getPageId.js +0 -2
  29. package/dist/components/FormRenderer/handlers/getPageId.test.js +1 -2
  30. package/dist/components/FormRenderer/handlers/handlers.test.js +1 -18
  31. package/dist/components/FormRenderer/handlers/index.js +0 -5
  32. package/dist/components/FormRenderer/handlers/navigate.js +0 -5
  33. package/dist/components/FormRenderer/handlers/submissionError.js +0 -2
  34. package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -3
  35. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +1 -3
  36. package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -2
  37. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +1 -5
  38. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +4 -12
  39. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +1 -2
  40. package/dist/components/FormRenderer/helpers/getCYA.js +0 -9
  41. package/dist/components/FormRenderer/helpers/getCYA.test.js +1 -3
  42. package/dist/components/FormRenderer/helpers/getFormState.js +0 -5
  43. package/dist/components/FormRenderer/helpers/getFormState.test.js +1 -3
  44. package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -25
  45. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +1 -4
  46. package/dist/components/FormRenderer/helpers/getPage.js +0 -5
  47. package/dist/components/FormRenderer/helpers/getPage.test.js +1 -3
  48. package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -6
  49. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -3
  50. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -10
  51. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +4 -7
  52. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +32 -41
  53. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +122 -8
  54. package/dist/components/FormRenderer/helpers/index.js +1 -11
  55. package/dist/components/FormRenderer/index.js +0 -3
  56. package/dist/components/FormRenderer/onCYAAction.js +8 -30
  57. package/dist/components/FormRenderer/onCYAAction.test.js +54 -79
  58. package/dist/components/FormRenderer/onPageAction.js +123 -0
  59. package/dist/components/FormRenderer/onPageAction.test.js +632 -0
  60. package/dist/components/PageActions/ActionButton.js +2 -17
  61. package/dist/components/PageActions/ActionButton.test.js +58 -81
  62. package/dist/components/PageActions/PageActions.js +3 -10
  63. package/dist/components/PageActions/PageActions.test.js +95 -120
  64. package/dist/components/PageActions/index.js +0 -3
  65. package/dist/components/SummaryList/GroupAction.js +5 -26
  66. package/dist/components/SummaryList/GroupAction.test.js +14 -28
  67. package/dist/components/SummaryList/RowAction.js +5 -25
  68. package/dist/components/SummaryList/RowAction.test.js +14 -28
  69. package/dist/components/SummaryList/SummaryList.js +7 -31
  70. package/dist/components/SummaryList/SummaryList.test.js +69 -126
  71. package/dist/components/SummaryList/SummaryListHeadingRow.js +3 -8
  72. package/dist/components/SummaryList/SummaryListRow.js +4 -8
  73. package/dist/components/SummaryList/SummaryListTitleRow.js +2 -7
  74. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -3
  75. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -6
  76. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -3
  77. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -6
  78. package/dist/components/SummaryList/helpers/index.js +0 -2
  79. package/dist/components/SummaryList/index.js +0 -3
  80. package/dist/components/TaskList/Task.js +9 -31
  81. package/dist/components/TaskList/Task.test.js +32 -59
  82. package/dist/components/TaskList/TaskList.js +32 -59
  83. package/dist/components/TaskList/TaskList.test.js +52 -90
  84. package/dist/components/TaskList/TaskState.js +2 -10
  85. package/dist/components/TaskList/TaskState.test.js +23 -41
  86. package/dist/components/TaskList/index.js +0 -3
  87. package/dist/components/index.js +0 -7
  88. package/dist/context/HooksContext/HooksContext.js +21 -39
  89. package/dist/context/HooksContext/HooksContext.test.js +18 -34
  90. package/dist/context/HooksContext/index.js +0 -5
  91. package/dist/context/ValidationContext/ValidationContext.js +26 -56
  92. package/dist/context/ValidationContext/ValidationContext.test.js +43 -64
  93. package/dist/context/ValidationContext/index.js +0 -5
  94. package/dist/context/index.js +0 -3
  95. package/dist/hooks/index.js +0 -9
  96. package/dist/hooks/useAxios.js +17 -36
  97. package/dist/hooks/useGetRequest.js +57 -93
  98. package/dist/hooks/useHooks.js +2 -4
  99. package/dist/hooks/useRefData.js +14 -41
  100. package/dist/hooks/useValidation.js +2 -4
  101. package/dist/index.js +0 -9
  102. package/dist/models/PageAction.js +4 -4
  103. package/dist/models/TaskStates.js +4 -4
  104. package/dist/models/index.js +1 -10
  105. package/dist/setupTests.js +0 -13
  106. package/dist/utils/CheckYourAnswers/getCYAAction.js +1 -9
  107. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +1 -19
  108. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +4 -11
  109. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -9
  110. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +4 -9
  111. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +4 -8
  112. package/dist/utils/CheckYourAnswers/getCYARow.js +1 -10
  113. package/dist/utils/CheckYourAnswers/getCYARow.test.js +8 -23
  114. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +6 -21
  115. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +2 -9
  116. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +4 -20
  117. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +7 -22
  118. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +4 -32
  119. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +4 -34
  120. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +4 -15
  121. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +4 -22
  122. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +2 -22
  123. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +7 -25
  124. package/dist/utils/CheckYourAnswers/index.js +1 -3
  125. package/dist/utils/CheckYourAnswers/showComponentCYA.js +2 -15
  126. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +1 -3
  127. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -12
  128. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +5 -6
  129. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -6
  130. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +1 -2
  131. package/dist/utils/CollectionPage/index.js +1 -5
  132. package/dist/utils/CollectionPage/mergeCollectionPages.js +5 -11
  133. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +1 -2
  134. package/dist/utils/Component/addShowWhen.js +4 -10
  135. package/dist/utils/Component/addShowWhen.test.js +1 -2
  136. package/dist/utils/Component/applyToComponentTree.js +4 -18
  137. package/dist/utils/Component/applyToComponentTree.test.js +4 -8
  138. package/dist/utils/Component/cleanAttributes.js +1 -8
  139. package/dist/utils/Component/cleanAttributes.test.js +15 -16
  140. package/dist/utils/Component/elevateNestedComponents.js +0 -6
  141. package/dist/utils/Component/elevateNestedComponents.test.js +0 -2
  142. package/dist/utils/Component/getComponent.js +7 -86
  143. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +6 -10
  144. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +33 -51
  145. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +8 -35
  146. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +12 -29
  147. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +4 -10
  148. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +6 -23
  149. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +6 -24
  150. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +3 -7
  151. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +4 -10
  152. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +3 -7
  153. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +4 -10
  154. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +5 -22
  155. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
  156. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +4 -10
  157. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +6 -23
  158. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +8 -35
  159. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +6 -23
  160. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +6 -23
  161. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +10 -34
  162. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +12 -31
  163. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +1 -2
  164. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +3 -7
  165. package/dist/utils/Component/getDefaultValue.js +4 -8
  166. package/dist/utils/Component/getDefaultValue.test.js +0 -3
  167. package/dist/utils/Component/index.js +0 -10
  168. package/dist/utils/Component/isEditable.js +1 -4
  169. package/dist/utils/Component/isEditable.test.js +1 -5
  170. package/dist/utils/Component/setupContainerComponentsPath.js +4 -9
  171. package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -3
  172. package/dist/utils/Component/showComponent.js +1 -8
  173. package/dist/utils/Component/showComponent.test.js +1 -2
  174. package/dist/utils/Component/wrapInFormGroup.js +0 -7
  175. package/dist/utils/Condition/index.js +0 -5
  176. package/dist/utils/Condition/meetsAllConditions.js +0 -9
  177. package/dist/utils/Condition/meetsAllConditions.test.js +1 -2
  178. package/dist/utils/Condition/meetsCondition.js +9 -34
  179. package/dist/utils/Condition/meetsCondition.test.js +21 -14
  180. package/dist/utils/Condition/meetsOneCondition.js +1 -9
  181. package/dist/utils/Condition/meetsOneCondition.test.js +1 -2
  182. package/dist/utils/Condition/setupConditions.js +4 -13
  183. package/dist/utils/Condition/setupConditions.test.js +0 -2
  184. package/dist/utils/Container/getEditableComponents.js +0 -7
  185. package/dist/utils/Container/getEditableComponents.test.js +1 -12
  186. package/dist/utils/Container/index.js +0 -5
  187. package/dist/utils/Container/setupNesting.js +4 -12
  188. package/dist/utils/Container/setupNesting.test.js +4 -10
  189. package/dist/utils/Container/showContainer.js +9 -18
  190. package/dist/utils/Container/showContainer.test.js +1 -2
  191. package/dist/utils/Data/applyFormula.js +6 -29
  192. package/dist/utils/Data/applyFormula.test.js +1 -2
  193. package/dist/utils/Data/getAutocompleteSource.js +1 -5
  194. package/dist/utils/Data/getAutocompleteSource.test.js +1 -2
  195. package/dist/utils/Data/getDataPath.js +3 -17
  196. package/dist/utils/Data/getDataPath.test.js +0 -4
  197. package/dist/utils/Data/getOptions.js +4 -14
  198. package/dist/utils/Data/getOptions.test.js +1 -2
  199. package/dist/utils/Data/getSourceData.js +6 -21
  200. package/dist/utils/Data/getSourceData.test.js +4 -6
  201. package/dist/utils/Data/index.js +1 -11
  202. package/dist/utils/Data/refDataToOptions.js +5 -13
  203. package/dist/utils/Data/refDataToOptions.test.js +1 -2
  204. package/dist/utils/Data/setDataItem.js +0 -5
  205. package/dist/utils/Data/setDataItem.test.js +0 -2
  206. package/dist/utils/Data/setupFormData.js +6 -25
  207. package/dist/utils/Data/setupFormData.test.js +8 -11
  208. package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -15
  209. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +1 -3
  210. package/dist/utils/FormPage/applyConditionalProperties.js +4 -11
  211. package/dist/utils/FormPage/applyConditionalProperties.test.js +4 -6
  212. package/dist/utils/FormPage/getFormPage.js +4 -16
  213. package/dist/utils/FormPage/getFormPage.test.js +10 -9
  214. package/dist/utils/FormPage/getFormPages.js +4 -9
  215. package/dist/utils/FormPage/getFormPages.test.js +6 -7
  216. package/dist/utils/FormPage/getPageActions.js +6 -19
  217. package/dist/utils/FormPage/getPageActions.test.js +1 -3
  218. package/dist/utils/FormPage/getParagraphFromText.js +0 -3
  219. package/dist/utils/FormPage/getParagraphFromText.test.js +1 -3
  220. package/dist/utils/FormPage/index.js +0 -7
  221. package/dist/utils/FormPage/showFormPage.js +9 -18
  222. package/dist/utils/FormPage/showFormPage.test.js +0 -2
  223. package/dist/utils/FormPage/showFormPageCYA.js +0 -5
  224. package/dist/utils/FormPage/showFormPageCYA.test.js +0 -2
  225. package/dist/utils/FormPage/useComponent.js +7 -19
  226. package/dist/utils/FormPage/useComponent.test.js +4 -7
  227. package/dist/utils/Format/formatData.js +0 -5
  228. package/dist/utils/Format/formatData.test.js +1 -2
  229. package/dist/utils/Format/formatDataForComponent.js +1 -6
  230. package/dist/utils/Format/formatDataForComponent.test.js +28 -47
  231. package/dist/utils/Format/formatDataForForm.js +4 -9
  232. package/dist/utils/Format/formatDataForForm.test.js +14 -11
  233. package/dist/utils/Format/formatDataForPage.js +1 -5
  234. package/dist/utils/Format/formatDataForPage.test.js +15 -12
  235. package/dist/utils/Format/index.js +1 -6
  236. package/dist/utils/Hub/getFormHub.js +0 -8
  237. package/dist/utils/Hub/getFormHub.test.js +6 -8
  238. package/dist/utils/Hub/index.js +1 -3
  239. package/dist/utils/Meta/documents/getDocuments.js +1 -4
  240. package/dist/utils/Meta/documents/getDocuments.test.js +4 -10
  241. package/dist/utils/Meta/documents/index.js +1 -5
  242. package/dist/utils/Meta/documents/setDocumentsForField.js +4 -11
  243. package/dist/utils/Meta/documents/setDocumentsForField.test.js +4 -16
  244. package/dist/utils/Meta/index.js +1 -4
  245. package/dist/utils/Operate/checkValueIsTruthy.js +1 -7
  246. package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -2
  247. package/dist/utils/Operate/getFirstOf.js +2 -9
  248. package/dist/utils/Operate/getFirstOf.test.js +0 -2
  249. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +7 -21
  250. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +6 -2
  251. package/dist/utils/Operate/index.js +0 -3
  252. package/dist/utils/Operate/persistValueInFormData.js +1 -8
  253. package/dist/utils/Operate/persistValueInFormData.test.js +0 -4
  254. package/dist/utils/Operate/runPageOperations.js +3 -19
  255. package/dist/utils/Operate/runPageOperations.test.js +4 -6
  256. package/dist/utils/Operate/setValueInFormData.js +2 -7
  257. package/dist/utils/Operate/setValueInFormData.test.js +0 -2
  258. package/dist/utils/Operate/shouldRun.js +1 -14
  259. package/dist/utils/Operate/shouldRun.test.js +5 -8
  260. package/dist/utils/Validate/additional/conditionallyRequired.js +0 -3
  261. package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -2
  262. package/dist/utils/Validate/additional/index.js +1 -22
  263. package/dist/utils/Validate/additional/index.test.js +0 -6
  264. package/dist/utils/Validate/additional/mustBeAfter.js +3 -8
  265. package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -4
  266. package/dist/utils/Validate/additional/mustBeBefore.js +3 -8
  267. package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -4
  268. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +5 -16
  269. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +4 -8
  270. package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -3
  271. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -2
  272. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -12
  273. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -3
  274. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -13
  275. package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -3
  276. package/dist/utils/Validate/additional/mustBeLessThan.js +0 -3
  277. package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -2
  278. package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -3
  279. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -2
  280. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -3
  281. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -2
  282. package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -3
  283. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -2
  284. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -5
  285. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -5
  286. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -3
  287. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -2
  288. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -6
  289. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +4 -7
  290. package/dist/utils/Validate/additional/utils.js +10 -26
  291. package/dist/utils/Validate/index.js +1 -11
  292. package/dist/utils/Validate/validateCollection.js +4 -10
  293. package/dist/utils/Validate/validateCollection.test.js +4 -6
  294. package/dist/utils/Validate/validateComponent.js +2 -39
  295. package/dist/utils/Validate/validateComponent.test.js +4 -22
  296. package/dist/utils/Validate/validateContainer.js +4 -14
  297. package/dist/utils/Validate/validateContainer.test.js +4 -10
  298. package/dist/utils/Validate/validateDate.js +6 -38
  299. package/dist/utils/Validate/validateDate.test.js +0 -4
  300. package/dist/utils/Validate/validateEmail.js +1 -8
  301. package/dist/utils/Validate/validateEmail.test.js +5 -4
  302. package/dist/utils/Validate/validateMultifile.js +0 -7
  303. package/dist/utils/Validate/validateMultifile.test.js +5 -6
  304. package/dist/utils/Validate/validatePage.js +4 -16
  305. package/dist/utils/Validate/validatePage.test.js +30 -25
  306. package/dist/utils/Validate/validateRegex.js +0 -10
  307. package/dist/utils/Validate/validateRegex.test.js +5 -4
  308. package/dist/utils/Validate/validateRequired.js +0 -8
  309. package/dist/utils/Validate/validateRequired.test.js +5 -4
  310. package/dist/utils/Validate/validateTextArea.js +0 -8
  311. package/dist/utils/Validate/validateTextArea.test.js +0 -2
  312. package/dist/utils/Validate/validateTime.js +5 -22
  313. package/dist/utils/Validate/validateTime.test.js +0 -2
  314. package/dist/utils/index.js +4 -20
  315. package/package.json +2 -2
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /**
9
8
  * Additional validator for the Container component type.
10
9
  * @param {object} data the form data
@@ -13,23 +12,18 @@ exports.default = void 0;
13
12
  */
14
13
  var mustSelectOnlyOne = function mustSelectOnlyOne(data, _, component) {
15
14
  var _component$components;
16
-
17
15
  var valueCount = (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.reduce(function (acc, inner) {
18
16
  var _data$component$id;
19
-
20
17
  if ((_data$component$id = data[component.id]) !== null && _data$component$id !== void 0 && _data$component$id[inner.id]) {
21
18
  // Account for checkboxes that the user may have unselected
22
19
  if (Array.isArray(data[component.id][inner.id]) && data[component.id][inner.id].length === 0) {
23
20
  return acc;
24
21
  }
25
-
26
22
  return acc + 1;
27
23
  }
28
-
29
24
  return acc;
30
25
  }, 0);
31
26
  return valueCount < 2;
32
27
  };
33
-
34
28
  var _default = mustSelectOnlyOne;
35
29
  exports.default = _default;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _mustSelectOnlyOne = _interopRequireDefault(require("./mustSelectOnlyOne"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
-
5
+ 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); }
6
+ 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; }
7
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
8
+ 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); }
9
9
  describe('utils', function () {
10
10
  describe('Validate', function () {
11
11
  describe('additional', function () {
@@ -30,7 +30,6 @@ describe('utils', function () {
30
30
  var DATA = _defineProperty({}, CONTAINER_ID, {
31
31
  alpha: 'text'
32
32
  });
33
-
34
33
  expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(true);
35
34
  });
36
35
  test('should return false if more than one component has data', function () {
@@ -38,7 +37,6 @@ describe('utils', function () {
38
37
  alpha: 'text',
39
38
  bravo: 'test'
40
39
  });
41
-
42
40
  expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(false);
43
41
  });
44
42
  test('should return true if more than one component has data but one is an empty array', function () {
@@ -46,7 +44,6 @@ describe('utils', function () {
46
44
  alpha: 'text',
47
45
  bravo: []
48
46
  });
49
-
50
47
  expect((0, _mustSelectOnlyOne.default)(DATA, {}, COMPONENT)).toEqual(true);
51
48
  });
52
49
  });
@@ -4,43 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.formattedTime = exports.formatString = exports.DATE_FORMAT = void 0;
7
-
8
7
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
-
10
8
  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."); }
11
-
12
9
  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); }
13
-
14
- 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; }
15
-
16
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
17
-
10
+ 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; }
11
+ 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
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
-
20
13
  var isNumeric = function isNumeric(value) {
21
14
  return /^-?\d+$/.test(value);
22
15
  };
23
-
24
16
  var formatString = function formatString(date) {
25
17
  var _date$split = date.split('-'),
26
- _date$split2 = _slicedToArray(_date$split, 3),
27
- day = _date$split2[0],
28
- month = _date$split2[1],
29
- year = _date$split2[2];
30
-
18
+ _date$split2 = _slicedToArray(_date$split, 3),
19
+ day = _date$split2[0],
20
+ month = _date$split2[1],
21
+ year = _date$split2[2];
31
22
  return "".concat(formatInTwoDigits(day), "-").concat(formatInTwoDigits(month), "-").concat(year);
32
23
  };
33
-
34
24
  exports.formatString = formatString;
35
-
36
25
  var formattedTime = function formattedTime(time) {
37
26
  var _time$split = time.split(':'),
38
- _time$split2 = _slicedToArray(_time$split, 2),
39
- hour = _time$split2[0],
40
- minute = _time$split2[1];
41
-
27
+ _time$split2 = _slicedToArray(_time$split, 2),
28
+ hour = _time$split2[0],
29
+ minute = _time$split2[1];
42
30
  return "".concat(formatInTwoDigits(hour), ":").concat(formatInTwoDigits(minute));
43
31
  };
32
+
44
33
  /**
45
34
 
46
35
  /**
@@ -50,17 +39,12 @@ var formattedTime = function formattedTime(time) {
50
39
  * @param {string} dateComponent - the value representing a day or month.
51
40
  * @returns the value (appended with a leading zero, if the value passed in was a single digit)
52
41
  */
53
-
54
-
55
42
  exports.formattedTime = formattedTime;
56
-
57
43
  var formatInTwoDigits = function formatInTwoDigits(dateComponent) {
58
44
  if (isNumeric(dateComponent)) {
59
45
  return dateComponent.padStart(2, '0');
60
46
  }
61
-
62
47
  return '';
63
48
  };
64
-
65
49
  var DATE_FORMAT = 'DD-MM-YYYY';
66
50
  exports.DATE_FORMAT = DATE_FORMAT;
@@ -4,28 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
9
-
10
8
  var _validateDate = _interopRequireDefault(require("./validateDate"));
11
-
12
9
  var _validateEmail = _interopRequireDefault(require("./validateEmail"));
13
-
14
10
  var _validateMultifile = _interopRequireDefault(require("./validateMultifile"));
15
-
16
11
  var _validatePage = _interopRequireDefault(require("./validatePage"));
17
-
18
12
  var _validateRegex = _interopRequireDefault(require("./validateRegex"));
19
-
20
13
  var _validateRequired = _interopRequireDefault(require("./validateRequired"));
21
-
22
14
  var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
23
-
24
15
  var _validateTime = _interopRequireDefault(require("./validateTime"));
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  // Local imports
18
+
29
19
  var Validate = {
30
20
  component: _validateComponent.default,
31
21
  email: _validateEmail.default,
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _validateContainer = _interopRequireDefault(require("./validateContainer"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
9
+ 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); }
12
10
  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; }
13
-
14
11
  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
-
16
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
-
12
+ 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; }
13
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
+ 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); }
18
15
  /**
19
16
  * Validates all of the items within a collection.
20
17
  * @param {object} collection The collection to validate.
@@ -24,7 +21,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
24
21
  */
25
22
  var validateCollection = function validateCollection(collection, items, formData) {
26
23
  var errors = [];
27
-
28
24
  if (collection && Array.isArray(collection.item) && Array.isArray(items)) {
29
25
  items.forEach(function (item, index) {
30
26
  var full_path = "".concat(collection.full_path || collection.fieldId, "[").concat(index, "]");
@@ -39,11 +35,9 @@ var validateCollection = function validateCollection(collection, items, formData
39
35
  errors.push((0, _validateContainer.default)(container, item, formData));
40
36
  });
41
37
  }
42
-
43
38
  return errors.filter(function (e) {
44
39
  return !!e;
45
40
  }).flat();
46
41
  };
47
-
48
42
  var _default = validateCollection;
49
43
  exports.default = _default;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _models = require("../../models");
4
-
5
4
  var _validateCollection = _interopRequireDefault(require("./validateCollection"));
6
-
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
-
6
+ 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); }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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
10
  describe('utils.Validate.Collection', function () {
12
11
  var setup = function setup(id, type, label, required, item) {
13
12
  return {
@@ -19,7 +18,6 @@ describe('utils.Validate.Collection', function () {
19
18
  item: item
20
19
  };
21
20
  };
22
-
23
21
  it('should return an empty array when the component is null', function () {
24
22
  expect((0, _validateCollection.default)(null, [])).toEqual([]);
25
23
  });
@@ -4,35 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _models = require("../../models");
9
-
10
8
  var _showComponent = _interopRequireDefault(require("../Component/showComponent"));
11
-
12
9
  var _additional = _interopRequireDefault(require("./additional"));
13
-
14
10
  var _validateCollection = _interopRequireDefault(require("./validateCollection"));
15
-
16
11
  var _validateContainer = _interopRequireDefault(require("./validateContainer"));
17
-
18
12
  var _validateDate = _interopRequireDefault(require("./validateDate"));
19
-
20
13
  var _validateEmail = _interopRequireDefault(require("./validateEmail"));
21
-
22
14
  var _validateMultifile = _interopRequireDefault(require("./validateMultifile"));
23
-
24
15
  var _validateRegex = _interopRequireDefault(require("./validateRegex"));
25
-
26
16
  var _validateRequired = _interopRequireDefault(require("./validateRequired"));
27
-
28
17
  var _validateTextArea = _interopRequireDefault(require("./validateTextArea"));
29
-
30
18
  var _validateTime = _interopRequireDefault(require("./validateTime"));
31
-
32
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
-
34
20
  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); }
35
-
36
21
  /**
37
22
  * Validates a single component.
38
23
  * @param {object} component The component to validate.
@@ -42,47 +27,36 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
42
27
  */
43
28
  var validateComponent = function validateComponent(component, outerData, formData) {
44
29
  var _component$data$optio;
45
-
46
30
  var fd = formData || outerData;
47
-
48
31
  if (!(0, _showComponent.default)(component, fd)) {
49
32
  return undefined;
50
33
  }
51
-
52
34
  if (component.type === _models.ComponentTypes.CONTAINER) {
53
35
  return (0, _validateContainer.default)(component, outerData, fd);
54
36
  }
55
-
56
37
  var error = undefined;
57
38
  var properties = undefined;
58
39
  var data = outerData && _typeof(outerData) === 'object' ? outerData : {};
59
40
  var value = data[component.fieldId];
60
-
61
41
  if (component.required) {
62
42
  error = (0, _validateRequired.default)(value, component.label, component.custom_errors);
63
43
  }
64
-
65
44
  if (!error) {
66
45
  switch (component.type) {
67
46
  case _models.ComponentTypes.COLLECTION:
68
47
  return (0, _validateCollection.default)(component, value, fd);
69
-
70
48
  case _models.ComponentTypes.EMAIL:
71
49
  error = (0, _validateEmail.default)(value, component.label, component.custom_errors);
72
50
  break;
73
-
74
51
  case _models.ComponentTypes.DATE:
75
52
  case _models.ComponentTypes.TIME:
76
53
  var validator = component.type === _models.ComponentTypes.DATE ? _validateDate.default : _validateTime.default;
77
-
78
54
  var _validator = validator(value),
79
- message = _validator.message,
80
- propsInError = _validator.propsInError;
81
-
55
+ message = _validator.message,
56
+ propsInError = _validator.propsInError;
82
57
  properties = propsInError;
83
58
  error = message;
84
59
  break;
85
-
86
60
  case _models.ComponentTypes.RADIOS:
87
61
  var nestedErrors = [];
88
62
  (_component$data$optio = component.data.options) === null || _component$data$optio === void 0 ? void 0 : _component$data$optio.forEach(function (option) {
@@ -92,32 +66,24 @@ var validateComponent = function validateComponent(component, outerData, formDat
92
66
  }, formData));
93
67
  }
94
68
  });
95
-
96
69
  if (nestedErrors.length > 0) {
97
70
  return nestedErrors;
98
71
  }
99
-
100
72
  break;
101
-
102
73
  case _models.ComponentTypes.MULTI_FILE:
103
74
  error = (0, _validateMultifile.default)(value, component.custom_errors);
104
75
  break;
105
-
106
76
  case _models.ComponentTypes.TEXT_AREA:
107
77
  error = (0, _validateTextArea.default)(component.label, value, component.showCharacterCount, component.custom_errors, component.maxLength);
108
78
  break;
109
-
110
79
  default:
111
80
  break;
112
81
  }
113
-
114
82
  if (!error && component.pattern) {
115
83
  error = (0, _validateRegex.default)(value, component.label, component.pattern, component.custom_errors);
116
84
  }
117
-
118
85
  if (!error && component.additionalValidation) {
119
86
  error = (0, _additional.default)(component, value);
120
-
121
87
  if (component.type === _models.ComponentTypes.DATE && error) {
122
88
  properties = {
123
89
  day: true,
@@ -127,7 +93,6 @@ var validateComponent = function validateComponent(component, outerData, formDat
127
93
  }
128
94
  }
129
95
  }
130
-
131
96
  if (error) {
132
97
  return {
133
98
  id: component.full_path || component.id,
@@ -135,9 +100,7 @@ var validateComponent = function validateComponent(component, outerData, formDat
135
100
  properties: properties
136
101
  };
137
102
  }
138
-
139
103
  return undefined;
140
104
  };
141
-
142
105
  var _default = validateComponent;
143
106
  exports.default = _default;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _models = require("../../models");
4
-
5
4
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
6
-
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
-
6
+ 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); }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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
10
  describe('utils.Validate.Component', function () {
12
11
  var setup = function setup(id, type, label, required, additionalValidation) {
13
12
  return {
@@ -19,7 +18,6 @@ describe('utils.Validate.Component', function () {
19
18
  additionalValidation: additionalValidation
20
19
  };
21
20
  };
22
-
23
21
  it('should return no error when the component is null', function () {
24
22
  expect((0, _validateComponent.default)(null, {})).toBeUndefined();
25
23
  });
@@ -57,9 +55,7 @@ describe('utils.Validate.Component', function () {
57
55
  });
58
56
  describe('when the value is fully valid', function () {
59
57
  var ID = 'field';
60
-
61
58
  var DATA = _defineProperty({}, ID, 'alpha.bravo@digital.homeoffice.gov.uk');
62
-
63
59
  it('should return no error when the component is not required and not an email type', function () {
64
60
  var LABEL = 'Field';
65
61
  var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
@@ -83,9 +79,7 @@ describe('utils.Validate.Component', function () {
83
79
  });
84
80
  describe('when the value is an invalid email', function () {
85
81
  var ID = 'field';
86
-
87
82
  var DATA = _defineProperty({}, ID, 'alpha.bravo@hotmail.com');
88
-
89
83
  it('should return no error when the component is not required and not an email type', function () {
90
84
  var LABEL = 'Field';
91
85
  var COMPONENT = setup(ID, _models.ComponentTypes.TEXT, LABEL, false);
@@ -118,9 +112,7 @@ describe('utils.Validate.Component', function () {
118
112
  it('should always reject invalid dates', function () {
119
113
  var LABEL = 'Field';
120
114
  var COMPONENT = setup(ID, _models.ComponentTypes.DATE, LABEL, false);
121
-
122
115
  var DATA = _defineProperty({}, ID, '25-45-2033');
123
-
124
116
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
125
117
  error: 'Month must be between 1 and 12',
126
118
  id: ID,
@@ -131,9 +123,7 @@ describe('utils.Validate.Component', function () {
131
123
  });
132
124
  it('should apply optional validators when specified', function () {
133
125
  var LABEL = 'Field';
134
-
135
126
  var DATA = _defineProperty({}, ID, '25-3-3033');
136
-
137
127
  var ADDITIONAL_VALIDATION = [{
138
128
  function: 'mustBeBefore',
139
129
  value: 3,
@@ -157,9 +147,7 @@ describe('utils.Validate.Component', function () {
157
147
  it('should always reject invalid time', function () {
158
148
  var LABEL = 'Field';
159
149
  var COMPONENT = setup(ID, _models.ComponentTypes.TIME, LABEL, false);
160
-
161
150
  var DATA = _defineProperty({}, ID, '25:45');
162
-
163
151
  expect((0, _validateComponent.default)(COMPONENT, DATA)).toEqual({
164
152
  error: 'Hour must be between 0 and 23',
165
153
  id: ID,
@@ -178,9 +166,7 @@ describe('utils.Validate.Component', function () {
178
166
  var LABEL = 'field';
179
167
  var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
180
168
  CONTAINER.components = [EMAIL];
181
-
182
169
  var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
183
-
184
170
  expect((0, _validateComponent.default)(CONTAINER, DATA)).toEqual([]);
185
171
  });
186
172
  });
@@ -193,9 +179,7 @@ describe('utils.Validate.Component', function () {
193
179
  var LABEL = 'field';
194
180
  var COLLECTION = setup(ID, _models.ComponentTypes.COLLECTION, LABEL, false);
195
181
  COLLECTION.item = [EMAIL];
196
-
197
182
  var DATA = _defineProperty({}, ID, [_defineProperty({}, EMAIL_ID, 'alpha.bravo@homeoffice.gov.uk'), _defineProperty({}, EMAIL_ID, 'charlie.delta@homeoffice.gov.uk')]);
198
-
199
183
  expect((0, _validateComponent.default)(COLLECTION, DATA)).toEqual([]);
200
184
  });
201
185
  });
@@ -203,9 +187,7 @@ describe('utils.Validate.Component', function () {
203
187
  it('should return no error when the radio component contains nested components without errors', function () {
204
188
  var NESTED_ID = 'nestedId';
205
189
  var NESTED_VALUE = 'nestedValue';
206
-
207
190
  var FORMDATA = _defineProperty({}, NESTED_ID, NESTED_VALUE);
208
-
209
191
  var COMPONENT = {
210
192
  type: 'radios',
211
193
  id: 'a',
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _validateComponent = _interopRequireDefault(require("./validateComponent"));
9
-
10
8
  var _additional = _interopRequireDefault(require("./additional"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
10
+ 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); }
14
11
  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; }
15
-
16
12
  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; }
17
-
18
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
-
13
+ 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; }
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
+ 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); }
20
16
  /**
21
17
  * Validates all components within a container.
22
18
  * @param {object} container The container to validate.
@@ -28,19 +24,15 @@ var validateContainer = function validateContainer(container, outerData, formDat
28
24
  if (!container) {
29
25
  return [];
30
26
  }
31
-
32
27
  var fd = formData || outerData;
33
28
  var error = (0, _additional.default)(container, fd);
34
-
35
29
  if (error) {
36
30
  return {
37
31
  id: container.id,
38
32
  error: error
39
33
  };
40
34
  }
41
-
42
35
  var errors = [];
43
-
44
36
  if (Array.isArray(container.components)) {
45
37
  var containerData = outerData && container.fieldId ? outerData[container.fieldId] : outerData;
46
38
  container.components.forEach(function (component) {
@@ -53,11 +45,9 @@ var validateContainer = function validateContainer(container, outerData, formDat
53
45
  }), containerData, fd));
54
46
  });
55
47
  }
56
-
57
48
  return errors.flat(1).filter(function (e) {
58
49
  return !!e;
59
50
  });
60
51
  };
61
-
62
52
  var _default = validateContainer;
63
53
  exports.default = _default;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _models = require("../../models");
4
-
5
4
  var _validateContainer = _interopRequireDefault(require("./validateContainer"));
6
-
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
-
6
+ 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); }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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
10
  describe('utils.Validate.Container', function () {
12
11
  var setup = function setup(id, type, label, required, additionalValidation) {
13
12
  return {
@@ -19,7 +18,6 @@ describe('utils.Validate.Container', function () {
19
18
  additionalValidation: additionalValidation
20
19
  };
21
20
  };
22
-
23
21
  it('should return an empty array when the component is null', function () {
24
22
  expect((0, _validateContainer.default)(null, {})).toEqual([]);
25
23
  });
@@ -44,9 +42,7 @@ describe('utils.Validate.Container', function () {
44
42
  var LABEL = 'field';
45
43
  var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
46
44
  CONTAINER.components = [EMAIL];
47
-
48
45
  var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.gov.uk'));
49
-
50
46
  expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([]);
51
47
  });
52
48
  it('should return an array containing an error when the container has an invalid component', function () {
@@ -57,9 +53,7 @@ describe('utils.Validate.Container', function () {
57
53
  var LABEL = 'field';
58
54
  var CONTAINER = setup(ID, _models.ComponentTypes.CONTAINER, LABEL, false);
59
55
  CONTAINER.components = [EMAIL];
60
-
61
56
  var DATA = _defineProperty({}, ID, _defineProperty({}, EMAIL_ID, 'alpha.bravo@digital.homeoffice.com'));
62
-
63
57
  expect((0, _validateContainer.default)(CONTAINER, DATA)).toEqual([{
64
58
  id: "".concat(ID, ".").concat(EMAIL_ID),
65
59
  error: "Enter ".concat(EMAIL_LABEL.toLowerCase(), " in the correct format, like jane.doe@homeoffice.gov.uk")