@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.2-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/README.md +5 -0
  2. package/dist/components/CheckYourAnswers/Answer.js +12 -11
  3. package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
  6. package/dist/components/CheckYourAnswers/index.js +1 -1
  7. package/dist/components/CollectionPage/CollectionPage.js +62 -60
  8. package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
  9. package/dist/components/CollectionPage/index.js +1 -1
  10. package/dist/components/CollectionSummary/BannerStrip.js +14 -14
  11. package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
  12. package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
  14. package/dist/components/CollectionSummary/Confirmation.js +15 -13
  15. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  16. package/dist/components/CollectionSummary/RenderListView.js +34 -47
  17. package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
  18. package/dist/components/CollectionSummary/SummaryCard.js +101 -133
  19. package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
  20. package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
  21. package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
  22. package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
  23. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
  24. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
  25. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
  26. package/dist/components/CollectionSummary/index.js +1 -1
  27. package/dist/components/FormComponent/Collection.js +63 -100
  28. package/dist/components/FormComponent/Collection.test.js +907 -1080
  29. package/dist/components/FormComponent/Container.js +35 -29
  30. package/dist/components/FormComponent/Container.test.js +378 -409
  31. package/dist/components/FormComponent/FormComponent.js +59 -63
  32. package/dist/components/FormComponent/FormComponent.test.js +354 -415
  33. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  34. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  36. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  37. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  38. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  40. package/dist/components/FormComponent/helpers/index.js +5 -5
  41. package/dist/components/FormComponent/index.js +1 -1
  42. package/dist/components/FormPage/FormPage.js +70 -93
  43. package/dist/components/FormPage/FormPage.test.js +150 -202
  44. package/dist/components/FormPage/index.js +1 -1
  45. package/dist/components/FormRenderer/FormRenderer.js +131 -173
  46. package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
  47. package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
  48. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  49. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  50. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  51. package/dist/components/FormRenderer/handlers/index.js +2 -2
  52. package/dist/components/FormRenderer/handlers/navigate.js +4 -4
  53. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  54. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
  56. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  58. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
  60. package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
  61. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  62. package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
  63. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  64. package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
  65. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  66. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  67. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  68. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  70. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
  72. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
  74. package/dist/components/FormRenderer/helpers/index.js +2 -2
  75. package/dist/components/FormRenderer/index.js +1 -1
  76. package/dist/components/FormRenderer/onCYAAction.js +43 -44
  77. package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
  78. package/dist/components/FormRenderer/onPageAction.js +26 -35
  79. package/dist/components/FormRenderer/onPageAction.test.js +177 -186
  80. package/dist/components/FormRenderer/onTaskAction.js +11 -12
  81. package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
  82. package/dist/components/PageActions/ActionButton.js +14 -14
  83. package/dist/components/PageActions/ActionButton.test.js +57 -79
  84. package/dist/components/PageActions/PageActions.js +11 -11
  85. package/dist/components/PageActions/PageActions.test.js +87 -116
  86. package/dist/components/PageActions/index.js +1 -1
  87. package/dist/components/SummaryList/GroupAction.js +10 -18
  88. package/dist/components/SummaryList/GroupAction.test.js +38 -34
  89. package/dist/components/SummaryList/RowAction.js +12 -17
  90. package/dist/components/SummaryList/RowAction.test.js +38 -34
  91. package/dist/components/SummaryList/SummaryList.js +23 -25
  92. package/dist/components/SummaryList/SummaryList.test.js +162 -189
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
  94. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
  95. package/dist/components/SummaryList/SummaryListRow.js +7 -5
  96. package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  98. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  100. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
  101. package/dist/components/SummaryList/helpers/index.js +2 -2
  102. package/dist/components/SummaryList/index.js +1 -1
  103. package/dist/components/TaskList/Task.js +20 -30
  104. package/dist/components/TaskList/Task.test.js +84 -77
  105. package/dist/components/TaskList/TaskList.js +56 -79
  106. package/dist/components/TaskList/TaskList.test.js +149 -149
  107. package/dist/components/TaskList/TaskState.js +8 -6
  108. package/dist/components/TaskList/TaskState.test.js +53 -46
  109. package/dist/components/TaskList/index.js +1 -1
  110. package/dist/components/index.js +8 -8
  111. package/dist/context/HooksContext/HooksContext.js +56 -79
  112. package/dist/context/HooksContext/HooksContext.test.js +27 -36
  113. package/dist/context/HooksContext/index.js +3 -4
  114. package/dist/context/ValidationContext/ValidationContext.js +44 -95
  115. package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
  116. package/dist/context/ValidationContext/index.js +3 -4
  117. package/dist/context/index.js +3 -3
  118. package/dist/hooks/index.js +10 -11
  119. package/dist/hooks/useAxios.js +15 -41
  120. package/dist/hooks/useGetRequest.js +62 -98
  121. package/dist/hooks/useHooks.js +1 -3
  122. package/dist/hooks/useRefData.js +25 -37
  123. package/dist/hooks/useValidation.js +1 -3
  124. package/dist/index.js +14 -15
  125. package/dist/models/CollectionLabels.js +1 -1
  126. package/dist/models/ComponentTypes.js +25 -25
  127. package/dist/models/EventTypes.js +4 -4
  128. package/dist/models/FormPages.js +4 -4
  129. package/dist/models/FormTypes.js +8 -8
  130. package/dist/models/HubFormats.js +3 -3
  131. package/dist/models/PageAction.js +44 -38
  132. package/dist/models/TaskStates.js +29 -28
  133. package/dist/models/index.js +10 -10
  134. package/dist/setupTests.js +30 -31
  135. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  136. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  137. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
  138. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
  139. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
  140. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
  141. package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
  142. package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
  143. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
  144. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
  147. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
  148. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
  149. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
  150. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
  151. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
  152. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
  153. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
  154. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
  155. package/dist/utils/CheckYourAnswers/index.js +2 -2
  156. package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
  157. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
  158. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  159. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
  160. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
  161. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
  162. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
  163. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
  164. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  165. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
  166. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  167. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
  168. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  169. package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
  170. package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
  171. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
  172. package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
  173. package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
  174. package/dist/utils/CollectionPage/index.js +2 -2
  175. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
  176. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
  177. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
  178. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
  179. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  180. package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
  181. package/dist/utils/Component/addShowWhen.js +5 -6
  182. package/dist/utils/Component/addShowWhen.test.js +38 -38
  183. package/dist/utils/Component/applyToComponentTree.js +12 -15
  184. package/dist/utils/Component/applyToComponentTree.test.js +28 -31
  185. package/dist/utils/Component/cleanAttributes.js +12 -11
  186. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  187. package/dist/utils/Component/elevateNestedComponents.js +6 -6
  188. package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
  189. package/dist/utils/Component/getComponent.js +79 -85
  190. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  191. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
  192. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
  193. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
  194. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  195. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
  196. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
  197. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
  198. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  199. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  200. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  201. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
  202. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
  203. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  204. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
  205. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
  206. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
  207. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
  208. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
  209. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
  210. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  211. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  212. package/dist/utils/Component/getDefaultValue.js +7 -9
  213. package/dist/utils/Component/getDefaultValue.test.js +13 -13
  214. package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
  215. package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
  216. package/dist/utils/Component/index.js +2 -2
  217. package/dist/utils/Component/isEditable.js +2 -4
  218. package/dist/utils/Component/isEditable.test.js +14 -15
  219. package/dist/utils/Component/optionIsSelected.js +2 -4
  220. package/dist/utils/Component/optionIsSelected.test.js +12 -12
  221. package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
  222. package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
  223. package/dist/utils/Component/showComponent.js +2 -2
  224. package/dist/utils/Component/showComponent.test.js +29 -29
  225. package/dist/utils/Component/wrapInFormGroup.js +4 -4
  226. package/dist/utils/Condition/index.js +2 -2
  227. package/dist/utils/Condition/meetsAllConditions.js +9 -9
  228. package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
  229. package/dist/utils/Condition/meetsCondition.js +17 -26
  230. package/dist/utils/Condition/meetsCondition.test.js +403 -403
  231. package/dist/utils/Condition/meetsOneCondition.js +6 -6
  232. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  233. package/dist/utils/Condition/setupConditions.js +12 -15
  234. package/dist/utils/Condition/setupConditions.test.js +8 -8
  235. package/dist/utils/Container/getEditableComponents.js +4 -6
  236. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  237. package/dist/utils/Container/index.js +2 -2
  238. package/dist/utils/Container/setupNesting.js +14 -15
  239. package/dist/utils/Container/setupNesting.test.js +20 -23
  240. package/dist/utils/Container/showContainer.js +4 -8
  241. package/dist/utils/Container/showContainer.test.js +31 -31
  242. package/dist/utils/Data/applyFormula.js +30 -44
  243. package/dist/utils/Data/applyFormula.test.js +21 -21
  244. package/dist/utils/Data/deleteValues.js +4 -8
  245. package/dist/utils/Data/deleteValues.test.js +11 -11
  246. package/dist/utils/Data/getAutocompleteSource.js +72 -63
  247. package/dist/utils/Data/getAutocompleteSource.test.js +106 -98
  248. package/dist/utils/Data/getDataPath.js +18 -28
  249. package/dist/utils/Data/getDataPath.test.js +13 -13
  250. package/dist/utils/Data/getOptions.js +35 -42
  251. package/dist/utils/Data/getOptions.test.js +37 -38
  252. package/dist/utils/Data/getSourceData.js +6 -19
  253. package/dist/utils/Data/getSourceData.test.js +85 -81
  254. package/dist/utils/Data/index.js +2 -2
  255. package/dist/utils/Data/nestInRefdataOptions.js +9 -12
  256. package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
  257. package/dist/utils/Data/refDataToOptions.js +9 -10
  258. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  259. package/dist/utils/Data/setDataItem.js +7 -8
  260. package/dist/utils/Data/setDataItem.test.js +38 -38
  261. package/dist/utils/Data/setupFormData.js +13 -20
  262. package/dist/utils/Data/setupFormData.test.js +48 -47
  263. package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
  264. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
  265. package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
  266. package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
  267. package/dist/utils/FormPage/getConditionalText.js +4 -4
  268. package/dist/utils/FormPage/getConditionalText.test.js +30 -30
  269. package/dist/utils/FormPage/getFormPage.js +12 -15
  270. package/dist/utils/FormPage/getFormPage.test.js +23 -24
  271. package/dist/utils/FormPage/getFormPages.js +8 -11
  272. package/dist/utils/FormPage/getFormPages.test.js +15 -16
  273. package/dist/utils/FormPage/getPageActions.js +10 -13
  274. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  275. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  276. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  277. package/dist/utils/FormPage/index.js +3 -5
  278. package/dist/utils/FormPage/showFormPage.js +4 -8
  279. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  280. package/dist/utils/FormPage/showFormPageCYA.js +2 -2
  281. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  282. package/dist/utils/FormPage/useComponent.js +15 -23
  283. package/dist/utils/FormPage/useComponent.test.js +49 -50
  284. package/dist/utils/Format/formatData.js +1 -1
  285. package/dist/utils/Format/formatData.test.js +19 -19
  286. package/dist/utils/Format/formatDataForComponent.js +6 -7
  287. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  288. package/dist/utils/Format/formatDataForForm.js +5 -6
  289. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  290. package/dist/utils/Format/formatDataForPage.js +4 -5
  291. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  292. package/dist/utils/Format/index.js +2 -2
  293. package/dist/utils/Hub/getFormHub.js +2 -2
  294. package/dist/utils/Hub/getFormHub.test.js +23 -24
  295. package/dist/utils/Hub/index.js +2 -2
  296. package/dist/utils/Meta/constants.js +2 -2
  297. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  298. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  299. package/dist/utils/Meta/documents/index.js +2 -2
  300. package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
  301. package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
  302. package/dist/utils/Meta/index.js +2 -2
  303. package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
  304. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  305. package/dist/utils/Operate/deleteValueInFormData.js +2 -2
  306. package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
  307. package/dist/utils/Operate/getFirstOf.js +6 -6
  308. package/dist/utils/Operate/getFirstOf.test.js +32 -32
  309. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
  310. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  311. package/dist/utils/Operate/getLength.js +9 -9
  312. package/dist/utils/Operate/getLength.test.js +19 -19
  313. package/dist/utils/Operate/index.js +2 -2
  314. package/dist/utils/Operate/persistValueInFormData.js +4 -4
  315. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  316. package/dist/utils/Operate/runPageOperations.js +8 -8
  317. package/dist/utils/Operate/runPageOperations.test.js +24 -25
  318. package/dist/utils/Operate/setValueInFormData.js +3 -3
  319. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  320. package/dist/utils/Operate/shouldRun.js +7 -7
  321. package/dist/utils/Operate/shouldRun.test.js +22 -24
  322. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
  323. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
  324. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  325. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  326. package/dist/utils/Validate/additional/index.js +8 -8
  327. package/dist/utils/Validate/additional/index.test.js +22 -22
  328. package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  330. package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
  331. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  332. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
  333. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
  334. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  336. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
  337. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  338. package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
  339. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  340. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  341. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  342. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  343. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  344. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  345. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  346. package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
  347. package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
  348. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  349. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  350. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
  351. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
  352. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  353. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  354. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  355. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  356. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  357. package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
  358. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  359. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  360. package/dist/utils/Validate/additional/utils.js +9 -22
  361. package/dist/utils/Validate/index.js +2 -2
  362. package/dist/utils/Validate/validateCollection.js +18 -23
  363. package/dist/utils/Validate/validateCollection.test.js +75 -67
  364. package/dist/utils/Validate/validateComponent.js +19 -19
  365. package/dist/utils/Validate/validateComponent.test.js +179 -154
  366. package/dist/utils/Validate/validateContainer.js +14 -17
  367. package/dist/utils/Validate/validateContainer.test.js +59 -53
  368. package/dist/utils/Validate/validateDate.js +16 -22
  369. package/dist/utils/Validate/validateDate.test.js +31 -32
  370. package/dist/utils/Validate/validateEmail.js +7 -9
  371. package/dist/utils/Validate/validateEmail.test.js +27 -27
  372. package/dist/utils/Validate/validateMultifile.js +5 -7
  373. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  374. package/dist/utils/Validate/validatePage.js +13 -18
  375. package/dist/utils/Validate/validatePage.test.js +198 -195
  376. package/dist/utils/Validate/validateRegex.js +3 -5
  377. package/dist/utils/Validate/validateRegex.test.js +15 -15
  378. package/dist/utils/Validate/validateRequired.js +4 -6
  379. package/dist/utils/Validate/validateRequired.test.js +19 -19
  380. package/dist/utils/Validate/validateTextArea.js +4 -6
  381. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  382. package/dist/utils/Validate/validateTime.js +12 -19
  383. package/dist/utils/Validate/validateTime.test.js +27 -27
  384. package/dist/utils/index.js +5 -6
  385. package/package.json +2 -4
@@ -1,42 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.checkValueIsTruthy', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.checkValueIsTruthy', () => {
6
+ const DATA = {
7
7
  alpha: 'abc',
8
8
  bravo: ''
9
9
  };
10
- it('Should return true is the value of the field is truthy', function () {
11
- var CONFIG = {
10
+ it('Should return true is the value of the field is truthy', () => {
11
+ const CONFIG = {
12
12
  field: 'alpha'
13
13
  };
14
- var result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
14
+ const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
15
15
  expect(result).toEqual(true);
16
16
  });
17
- it('Should return false if the value of the field is falsy', function () {
18
- var CONFIG = {
17
+ it('Should return false if the value of the field is falsy', () => {
18
+ const CONFIG = {
19
19
  field: 'bravo'
20
20
  };
21
- var result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
21
+ const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
22
22
  expect(result).toEqual(false);
23
23
  });
24
- it('Should return false if the field does not exist', function () {
25
- var CONFIG = {
24
+ it('Should return false if the field does not exist', () => {
25
+ const CONFIG = {
26
26
  field: 'charlie'
27
27
  };
28
- var result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
28
+ const result = (0, _checkValueIsTruthy.default)(CONFIG, DATA);
29
29
  expect(result).toEqual(false);
30
30
  });
31
- it('Should return false when an invalid config is used', function () {
32
- var result = (0, _checkValueIsTruthy.default)(null, DATA);
31
+ it('Should return false when an invalid config is used', () => {
32
+ const result = (0, _checkValueIsTruthy.default)(null, DATA);
33
33
  expect(result).toEqual(false);
34
34
  });
35
- it('Should return false when invalid data is used', function () {
36
- var CONFIG = {
35
+ it('Should return false when invalid data is used', () => {
36
+ const CONFIG = {
37
37
  field: 'alpha'
38
38
  };
39
- var result = (0, _checkValueIsTruthy.default)(CONFIG, null);
39
+ const result = (0, _checkValueIsTruthy.default)(CONFIG, null);
40
40
  expect(result).toEqual(false);
41
41
  });
42
42
  });
@@ -10,8 +10,8 @@ exports.default = void 0;
10
10
  * @param {object} data The page's formData.
11
11
  * @param {function} onChange The page's onChange handler.
12
12
  */
13
- var deleteValueInFormData = function deleteValueInFormData(config, data, onChange) {
14
- var node = data;
13
+ const deleteValueInFormData = (config, data, onChange) => {
14
+ const node = data;
15
15
  if (config !== null && config !== void 0 && config.field && config !== null && config !== void 0 && config.component) {
16
16
  delete node[config.field];
17
17
  onChange({
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _deleteValueInFormData = _interopRequireDefault(require("./deleteValueInFormData"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.deleteValueInFormData', function () {
6
- var ON_CHANGE = function ON_CHANGE() {};
7
- it('Should delete value from data', function () {
8
- var CONFIG = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.deleteValueInFormData', () => {
6
+ const ON_CHANGE = () => {};
7
+ it('Should delete value from data', () => {
8
+ const CONFIG = {
9
9
  field: 'a',
10
10
  component: 'A'
11
11
  };
12
- var DATA = {
12
+ const DATA = {
13
13
  a: '1',
14
14
  b: '2'
15
15
  };
@@ -18,12 +18,12 @@ describe('Utils.Operate.deleteValueInFormData', function () {
18
18
  b: '2'
19
19
  });
20
20
  });
21
- it('Should do nothing if value is absent', function () {
22
- var CONFIG = {
21
+ it('Should do nothing if value is absent', () => {
22
+ const CONFIG = {
23
23
  field: 'c',
24
24
  component: 'C'
25
25
  };
26
- var DATA = {
26
+ const DATA = {
27
27
  a: '1',
28
28
  b: '2'
29
29
  };
@@ -33,9 +33,9 @@ describe('Utils.Operate.deleteValueInFormData', function () {
33
33
  b: '2'
34
34
  });
35
35
  });
36
- it('Should do nothing if config is null', function () {
37
- var CONFIG = null;
38
- var DATA = {
36
+ it('Should do nothing if config is null', () => {
37
+ const CONFIG = null;
38
+ const DATA = {
39
39
  a: '1',
40
40
  b: '2'
41
41
  };
@@ -45,9 +45,9 @@ describe('Utils.Operate.deleteValueInFormData', function () {
45
45
  b: '2'
46
46
  });
47
47
  });
48
- it('Should do nothing if config is empty', function () {
49
- var CONFIG = {};
50
- var DATA = {
48
+ it('Should do nothing if config is empty', () => {
49
+ const CONFIG = {};
50
+ const DATA = {
51
51
  a: '1',
52
52
  b: '2'
53
53
  };
@@ -6,17 +6,17 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  // Global imports.
11
11
 
12
12
  // Local imports.
13
13
 
14
- var getFirstOf = function getFirstOf(config, data) {
14
+ const getFirstOf = (config, data) => {
15
15
  if (config !== null && config !== void 0 && config.fields) {
16
- var fieldValue;
17
- config.fields.find(function (field) {
18
- var fieldPath = _copReactComponents.Utils.interpolateString(field, data);
19
- var foundValue = (0, _getSourceData.default)(data, fieldPath);
16
+ let fieldValue;
17
+ config.fields.find(field => {
18
+ const fieldPath = _copReactComponents.Utils.interpolateString(field, data);
19
+ const foundValue = (0, _getSourceData.default)(data, fieldPath);
20
20
  if (foundValue) {
21
21
  fieldValue = foundValue;
22
22
  return true;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.getFirstOf', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.getFirstOf', () => {
6
+ const DATA = {
7
7
  name: 'sam',
8
8
  id: 1,
9
9
  test: ['2', '3'],
@@ -12,75 +12,75 @@ describe('Utils.Operate.getFirstOf', function () {
12
12
  otherIdDoc: '',
13
13
  anotherMadeUpId: 789
14
14
  };
15
- it('Should handle interpolated field strings', function () {
15
+ it('Should handle interpolated field strings', () => {
16
16
  // eslint-disable-next-line no-template-curly-in-string
17
- var CONFIG = {
17
+ const CONFIG = {
18
18
  fields: ['test[${id}]']
19
19
  };
20
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
20
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
21
21
  expect(result).toEqual(DATA.test[1]);
22
22
  });
23
- it('Should return the value provided in config if no field is specified', function () {
24
- var CONFIG = {
23
+ it('Should return the value provided in config if no field is specified', () => {
24
+ const CONFIG = {
25
25
  value: '2'
26
26
  };
27
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
27
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
28
28
  expect(result).toEqual(CONFIG.value);
29
29
  });
30
- it('Should return the fallback if the requested fields are not found', function () {
30
+ it('Should return the fallback if the requested fields are not found', () => {
31
31
  // eslint-disable-next-line no-template-curly-in-string
32
- var CONFIG = {
32
+ const CONFIG = {
33
33
  value: '2',
34
34
  fields: ['nonExistent'],
35
35
  fallback: "Test ${name}"
36
36
  };
37
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
37
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
38
38
  expect(result).toEqual("Test ".concat(DATA.name));
39
39
  });
40
- it('Should return the value of the passportNumber field given in config', function () {
41
- var CONFIG = {
40
+ it('Should return the value of the passportNumber field given in config', () => {
41
+ const CONFIG = {
42
42
  fields: ['passportNumber', 'anotherMadeUpId', 'otherIdDoc']
43
43
  };
44
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
44
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
45
45
  expect(result).toEqual(DATA.passportNumber);
46
46
  });
47
- it('Should return the value of the anotherMadeUpId field given in config', function () {
48
- var CONFIG = {
47
+ it('Should return the value of the anotherMadeUpId field given in config', () => {
48
+ const CONFIG = {
49
49
  fields: ['anotherMadeUpId', 'passportNumber', 'otherIdDoc']
50
50
  };
51
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
51
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
52
52
  expect(result).toEqual(DATA.anotherMadeUpId);
53
53
  });
54
- it('Should return the value of the otherIdDoc field given in config', function () {
55
- var CONFIG = {
54
+ it('Should return the value of the otherIdDoc field given in config', () => {
55
+ const CONFIG = {
56
56
  fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
57
57
  };
58
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
58
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
59
59
  expect(result).toEqual(DATA.passportNumber);
60
60
  });
61
- it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array', function () {
62
- var CONFIG = {
61
+ it('Should return the value of the otherIdDoc field given in config, if it exists, otherwise next field next in the array', () => {
62
+ const CONFIG = {
63
63
  fields: ['otherIdDoc', 'passportNumber', 'anotherMadeUpId']
64
64
  };
65
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
65
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
66
66
  expect(result).toEqual(DATA.passportNumber);
67
67
  });
68
- it('Should return no value if elements in config.fields are not found in data', function () {
69
- var CONFIG = {
68
+ it('Should return no value if elements in config.fields are not found in data', () => {
69
+ const CONFIG = {
70
70
  fields: ['otherIdDoc1', 'passportNumber1', 'anotherMadeUpId1']
71
71
  };
72
- var result = (0, _getFirstOf.default)(CONFIG, DATA);
72
+ const result = (0, _getFirstOf.default)(CONFIG, DATA);
73
73
  expect(result).toEqual('');
74
74
  });
75
- it('Should return null when an invalid config is used', function () {
76
- var result = (0, _getFirstOf.default)(null, DATA);
75
+ it('Should return null when an invalid config is used', () => {
76
+ const result = (0, _getFirstOf.default)(null, DATA);
77
77
  expect(result).toEqual(null);
78
78
  });
79
- it('Should return null when invalid data is used', function () {
80
- var CONFIG = {
79
+ it('Should return null when invalid data is used', () => {
80
+ const CONFIG = {
81
81
  field: 'a'
82
82
  };
83
- var result = (0, _getFirstOf.default)(CONFIG, null);
83
+ const result = (0, _getFirstOf.default)(CONFIG, null);
84
84
  expect(result).toEqual(null);
85
85
  });
86
86
  });
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  // Global imports.
11
11
 
12
12
  // Local imports.
13
13
 
14
- var getValueOrField = function getValueOrField(config, data) {
14
+ const getValueOrField = (config, data) => {
15
15
  if (config !== null && config !== void 0 && config.value) {
16
16
  return config.value;
17
17
  }
18
- var path = _copReactComponents.Utils.interpolateString(config === null || config === void 0 ? void 0 : config.field, data);
18
+ const path = _copReactComponents.Utils.interpolateString(config === null || config === void 0 ? void 0 : config.field, data);
19
19
  return (0, _getSourceData.default)(data, path);
20
20
  };
21
21
 
@@ -28,18 +28,18 @@ var getValueOrField = function getValueOrField(config, data) {
28
28
  * @param {object} data A page's formData.
29
29
  * @returns The index of the matching value if one exists, or null.
30
30
  */
31
- var getIndexOfMatchingValueIn = function getIndexOfMatchingValueIn(config, data) {
31
+ const getIndexOfMatchingValueIn = (config, data) => {
32
32
  if (!config || !data) {
33
33
  return null;
34
34
  }
35
- var targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
36
- var target = (0, _getSourceData.default)(data, targetPath);
37
- var value = getValueOrField(config, data);
38
- var cutoff = getValueOrField(config.cutoff, data);
39
- var ignore = getValueOrField(config.ignore, data);
40
- var result = null;
35
+ const targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
36
+ const target = (0, _getSourceData.default)(data, targetPath);
37
+ const value = getValueOrField(config, data);
38
+ const cutoff = getValueOrField(config.cutoff, data);
39
+ const ignore = getValueOrField(config.ignore, data);
40
+ let result = null;
41
41
  if (target && value && Array.isArray(target)) {
42
- target.every(function (entry, index) {
42
+ target.every((entry, index) => {
43
43
  if (index === cutoff) {
44
44
  return false;
45
45
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  var _getIndexOfMatchingValueIn = _interopRequireDefault(require("./getIndexOfMatchingValueIn"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', () => {
6
+ const DATA = {
7
7
  arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
8
8
  root: {
9
9
  branch: 'leaf'
@@ -17,147 +17,141 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
17
17
  cutoffName: 'cutoffIndex',
18
18
  ignoreName: 'ignoreIndex'
19
19
  };
20
- it('Should return the index of a matching value if one exists', function () {
21
- var CONFIG = {
20
+ it('Should return the index of a matching value if one exists', () => {
21
+ const CONFIG = {
22
22
  target: 'arrayOfValues',
23
23
  value: 'cde'
24
24
  };
25
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
25
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
26
26
  expect(result).toEqual('2');
27
27
  });
28
- it('Should handle getting value from given field', function () {
29
- var CONFIG = {
28
+ it('Should handle getting value from given field', () => {
29
+ const CONFIG = {
30
30
  target: 'arrayOfValues',
31
31
  field: 'valueToSearchFor'
32
32
  };
33
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
33
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
34
34
  expect(result).toEqual('2');
35
35
  });
36
- it('Should handle interpolated string for field', function () {
36
+ it('Should handle interpolated string for field', () => {
37
37
  // eslint-disable-next-line no-template-curly-in-string
38
- var CONFIG = {
38
+ const CONFIG = {
39
39
  target: 'arrayOfValues',
40
40
  field: '${fieldName}'
41
41
  };
42
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
42
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
43
43
  expect(result).toEqual('2');
44
44
  });
45
- it('Should handle interpolated string for key', function () {
45
+ it('Should handle interpolated string for key', () => {
46
46
  // eslint-disable-next-line no-template-curly-in-string
47
- var CONFIG = {
47
+ const CONFIG = {
48
48
  target: 'arrayOfValues',
49
49
  key: 'root.branch',
50
50
  value: 'leaf'
51
51
  };
52
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
52
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
53
53
  expect(result).toEqual('4');
54
54
  });
55
- it('Should handle a cutoff value being specified', function () {
56
- var CONFIG = {
55
+ it('Should handle a cutoff value being specified', () => {
56
+ const CONFIG = {
57
57
  target: 'arrayOfValues',
58
58
  value: 'cde',
59
59
  cutoff: {
60
60
  value: 1
61
61
  }
62
62
  };
63
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
63
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
64
64
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
65
65
  });
66
-
67
- it('Should handle a cutoff field being specified', function () {
68
- var CONFIG = {
66
+ it('Should handle a cutoff field being specified', () => {
67
+ const CONFIG = {
69
68
  target: 'arrayOfValues',
70
69
  value: 'cde',
71
70
  cutoff: {
72
71
  field: 'cutoffIndex'
73
72
  }
74
73
  };
75
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
74
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
76
75
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
77
76
  });
78
-
79
- it('Should handle interpolated string for cutoff.field', function () {
77
+ it('Should handle interpolated string for cutoff.field', () => {
80
78
  // eslint-disable-next-line no-template-curly-in-string
81
- var CONFIG = {
79
+ const CONFIG = {
82
80
  target: 'arrayOfValues',
83
81
  value: 'cde',
84
82
  cutoff: {
85
83
  field: '${cutoffName}'
86
84
  }
87
85
  };
88
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
86
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
89
87
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
90
88
  });
91
-
92
- it('Should handle an ignore value being specified', function () {
93
- var CONFIG = {
89
+ it('Should handle an ignore value being specified', () => {
90
+ const CONFIG = {
94
91
  target: 'arrayOfValues',
95
92
  value: 'cde',
96
93
  ignore: {
97
94
  value: 2
98
95
  }
99
96
  };
100
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
97
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
101
98
  expect(result).toEqual(null); // Should ignore the matching value.
102
99
  });
103
-
104
- it('Should handle an ignore field being specified', function () {
105
- var CONFIG = {
100
+ it('Should handle an ignore field being specified', () => {
101
+ const CONFIG = {
106
102
  target: 'arrayOfValues',
107
103
  value: 'cde',
108
104
  ignore: {
109
105
  field: 'ignoreIndex'
110
106
  }
111
107
  };
112
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
108
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
113
109
  expect(result).toEqual(null); // Should ignore the matching value.
114
110
  });
115
-
116
- it('Should handle interpolated string for ignore.field', function () {
111
+ it('Should handle interpolated string for ignore.field', () => {
117
112
  // eslint-disable-next-line no-template-curly-in-string
118
- var CONFIG = {
113
+ const CONFIG = {
119
114
  target: 'arrayOfValues',
120
115
  value: 'cde',
121
116
  ignore: {
122
117
  field: '${ignoreName}'
123
118
  }
124
119
  };
125
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
120
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
126
121
  expect(result).toEqual(null); // Should ignore the matching value.
127
122
  });
128
-
129
- it('Should handle interpolated string for target', function () {
123
+ it('Should handle interpolated string for target', () => {
130
124
  // eslint-disable-next-line no-template-curly-in-string
131
- var CONFIG = {
125
+ const CONFIG = {
132
126
  target: '${targetName}',
133
127
  value: 'cde'
134
128
  };
135
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
129
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
136
130
  expect(result).toEqual('2');
137
131
  });
138
- it('Should return null when the target does not exist', function () {
139
- var CONFIG = {
132
+ it('Should return null when the target does not exist', () => {
133
+ const CONFIG = {
140
134
  target: 'notARealTarget',
141
135
  value: 'cde'
142
136
  };
143
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
137
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
144
138
  expect(result).toEqual(null);
145
139
  });
146
- it('Should return null when config is missing fields', function () {
147
- var CONFIG = {};
148
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
140
+ it('Should return null when config is missing fields', () => {
141
+ const CONFIG = {};
142
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
149
143
  expect(result).toEqual(null);
150
144
  });
151
- it('Should return null when config is invalid', function () {
152
- var result = (0, _getIndexOfMatchingValueIn.default)(null, DATA);
145
+ it('Should return null when config is invalid', () => {
146
+ const result = (0, _getIndexOfMatchingValueIn.default)(null, DATA);
153
147
  expect(result).toEqual(null);
154
148
  });
155
- it('Should return null when data is invalid', function () {
156
- var CONFIG = {
149
+ it('Should return null when data is invalid', () => {
150
+ const CONFIG = {
157
151
  target: 'arrayOfValues',
158
152
  value: 'cde'
159
153
  };
160
- var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, null);
154
+ const result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, null);
161
155
  expect(result).toEqual(null);
162
156
  });
163
157
  });
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _getCollectionPageActiveIndex = _interopRequireDefault(require("../CollectionPage/getCollectionPageActiveIndex"));
9
9
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // Global imports.
12
12
 
13
13
  // Local imports.
@@ -21,21 +21,21 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
21
21
  * @param {object} data A page's formData.
22
22
  * @returns The length of a field if found or 0
23
23
  */
24
- var getLength = function getLength(config, data) {
24
+ const getLength = (config, data) => {
25
25
  if (!config || !data) {
26
26
  return null;
27
27
  }
28
28
 
29
29
  // Replace any instances of 'collectionName[]' with 'collectionName[activeIndex]'
30
- var pathParts = config.target.split('.');
31
- var updatedPath = '';
32
- pathParts.forEach(function (part) {
30
+ const pathParts = config.target.split('.');
31
+ let updatedPath = '';
32
+ pathParts.forEach(part => {
33
33
  if (updatedPath !== '') {
34
34
  updatedPath += '.';
35
35
  }
36
36
  if (part.slice(-2) === '[]') {
37
- var collectionName = part.slice(0, -2);
38
- var activeIndex = (0, _getCollectionPageActiveIndex.default)(collectionName, data);
37
+ const collectionName = part.slice(0, -2);
38
+ const activeIndex = (0, _getCollectionPageActiveIndex.default)(collectionName, data);
39
39
  updatedPath += "".concat(collectionName, "[").concat(activeIndex, "]");
40
40
  } else {
41
41
  updatedPath += part;
@@ -43,8 +43,8 @@ var getLength = function getLength(config, data) {
43
43
  });
44
44
 
45
45
  // Get the field and return its length
46
- var targetPath = _copReactComponents.Utils.interpolateString(updatedPath, data);
47
- var target = (0, _getSourceData.default)(data, targetPath);
46
+ const targetPath = _copReactComponents.Utils.interpolateString(updatedPath, data);
47
+ const target = (0, _getSourceData.default)(data, targetPath);
48
48
  return (target === null || target === void 0 ? void 0 : target.length) || 0;
49
49
  };
50
50
  var _default = exports.default = getLength;