@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,28 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _getLength = _interopRequireDefault(require("./getLength"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.getLength', function () {
6
- it('returns null if config is not defined', function () {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.getLength', () => {
6
+ it('returns null if config is not defined', () => {
7
7
  expect((0, _getLength.default)(null, {})).toEqual(null);
8
8
  });
9
- it('returns null if data is not defined', function () {
9
+ it('returns null if data is not defined', () => {
10
10
  expect((0, _getLength.default)({}, null)).toEqual(null);
11
11
  });
12
- it('returns the length of a top level string', function () {
13
- var CONFIG = {
12
+ it('returns the length of a top level string', () => {
13
+ const CONFIG = {
14
14
  target: 'alpha'
15
15
  };
16
- var DATA = {
16
+ const DATA = {
17
17
  alpha: 'abcdef'
18
18
  };
19
19
  expect((0, _getLength.default)(CONFIG, DATA)).toEqual(6);
20
20
  });
21
- it('returns the length of a top level array', function () {
22
- var CONFIG = {
21
+ it('returns the length of a top level array', () => {
22
+ const CONFIG = {
23
23
  target: 'alpha'
24
24
  };
25
- var DATA = {
25
+ const DATA = {
26
26
  alpha: [{
27
27
  test: 'test'
28
28
  }, {
@@ -35,11 +35,11 @@ describe('Utils.Operate.getLength', function () {
35
35
  };
36
36
  expect((0, _getLength.default)(CONFIG, DATA)).toEqual(4);
37
37
  });
38
- it('returns 0 if the field cannot be found', function () {
39
- var CONFIG = {
38
+ it('returns 0 if the field cannot be found', () => {
39
+ const CONFIG = {
40
40
  target: 'alpha'
41
41
  };
42
- var DATA = {
42
+ const DATA = {
43
43
  beta: [{
44
44
  test: 'test'
45
45
  }, {
@@ -52,11 +52,11 @@ describe('Utils.Operate.getLength', function () {
52
52
  };
53
53
  expect((0, _getLength.default)(CONFIG, DATA)).toEqual(0);
54
54
  });
55
- it('returns the length of a field not on the top level', function () {
56
- var CONFIG = {
55
+ it('returns the length of a field not on the top level', () => {
56
+ const CONFIG = {
57
57
  target: 'alpha.beta'
58
58
  };
59
- var DATA = {
59
+ const DATA = {
60
60
  alphaActiveId: 3,
61
61
  alpha: {
62
62
  beta: 'qwerty'
@@ -64,11 +64,11 @@ describe('Utils.Operate.getLength', function () {
64
64
  };
65
65
  expect((0, _getLength.default)(CONFIG, DATA)).toEqual(6);
66
66
  });
67
- it('returns the length of an array nested under an array', function () {
68
- var CONFIG = {
67
+ it('returns the length of an array nested under an array', () => {
68
+ const CONFIG = {
69
69
  target: 'alpha[].beta'
70
70
  };
71
- var DATA = {
71
+ const DATA = {
72
72
  alphaActiveId: 3,
73
73
  alpha: [{
74
74
  id: 1,
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- var Operate = {
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const Operate = {
10
10
  runPageOperations: _runPageOperations.default
11
11
  };
12
12
  var _default = exports.default = Operate;
@@ -6,7 +6,7 @@ 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.
@@ -18,10 +18,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
18
  * @param {object} data The page's formData.
19
19
  * @param {function} onChange The page's onChange handler.
20
20
  */
21
- var persistValueInFormData = function persistValueInFormData(config, data, onChange) {
22
- var value;
21
+ const persistValueInFormData = (config, data, onChange) => {
22
+ let value;
23
23
  if (config !== null && config !== void 0 && config.field) {
24
- var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
24
+ const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
25
25
  value = (0, _getSourceData.default)(data, fieldPath);
26
26
  } else {
27
27
  value = config === null || config === void 0 ? void 0 : config.value;
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _persistValueInFormData = _interopRequireDefault(require("./persistValueInFormData"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.persistValueInFormData', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.persistValueInFormData', () => {
6
+ let DATA = {
7
7
  alpha: 'abc',
8
8
  beta: 'charlie',
9
9
  charlie: '123'
10
10
  };
11
- var ON_CHANGE_COUNT = 0;
12
- var ON_CHANGE = function ON_CHANGE(_ref) {
13
- var target = _ref.target;
11
+ let ON_CHANGE_COUNT = 0;
12
+ const ON_CHANGE = _ref => {
13
+ let {
14
+ target
15
+ } = _ref;
14
16
  DATA[target.name] = target.value;
15
17
  ON_CHANGE_COUNT += 1;
16
18
  };
17
- beforeEach(function () {
19
+ beforeEach(() => {
18
20
  DATA = {
19
21
  alpha: 'abc',
20
22
  beta: 'charlie',
@@ -22,8 +24,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
22
24
  };
23
25
  ON_CHANGE_COUNT = 0;
24
26
  });
25
- it('Should trigger a change correctly', function () {
26
- var CONFIG = {
27
+ it('Should trigger a change correctly', () => {
28
+ const CONFIG = {
27
29
  name: 'alpha',
28
30
  value: 'bcd'
29
31
  };
@@ -35,8 +37,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
35
37
  });
36
38
  expect(ON_CHANGE_COUNT).toEqual(1);
37
39
  });
38
- it('Should trigger a change correctly with boolean false', function () {
39
- var CONFIG = {
40
+ it('Should trigger a change correctly with boolean false', () => {
41
+ const CONFIG = {
40
42
  name: 'alpha',
41
43
  value: false
42
44
  };
@@ -48,8 +50,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
48
50
  });
49
51
  expect(ON_CHANGE_COUNT).toEqual(1);
50
52
  });
51
- it('Should not call onChange when value is unchanged', function () {
52
- var CONFIG = {
53
+ it('Should not call onChange when value is unchanged', () => {
54
+ const CONFIG = {
53
55
  name: 'alpha',
54
56
  value: 'abc'
55
57
  };
@@ -61,8 +63,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
61
63
  });
62
64
  expect(ON_CHANGE_COUNT).toEqual(0);
63
65
  });
64
- it('Should not call onChange if no value or field is given', function () {
65
- var CONFIG = {
66
+ it('Should not call onChange if no value or field is given', () => {
67
+ const CONFIG = {
66
68
  name: 'alpha'
67
69
  };
68
70
  (0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
@@ -73,8 +75,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
73
75
  });
74
76
  expect(ON_CHANGE_COUNT).toEqual(0);
75
77
  });
76
- it('Should not call onChange if no name is given', function () {
77
- var CONFIG = {
78
+ it('Should not call onChange if no name is given', () => {
79
+ const CONFIG = {
78
80
  field: 'charlie'
79
81
  };
80
82
  (0, _persistValueInFormData.default)(CONFIG, DATA, ON_CHANGE);
@@ -85,8 +87,8 @@ describe('Utils.Operate.persistValueInFormData', function () {
85
87
  });
86
88
  expect(ON_CHANGE_COUNT).toEqual(0);
87
89
  });
88
- it('Should not call onChange if field cannot be found', function () {
89
- var CONFIG = {
90
+ it('Should not call onChange if field cannot be found', () => {
91
+ const CONFIG = {
90
92
  name: 'alpha',
91
93
  field: 'delta'
92
94
  };
@@ -98,9 +100,9 @@ describe('Utils.Operate.persistValueInFormData', function () {
98
100
  });
99
101
  expect(ON_CHANGE_COUNT).toEqual(0);
100
102
  });
101
- it('Should correctly interpolate a field value', function () {
103
+ it('Should correctly interpolate a field value', () => {
102
104
  // eslint-disable-next-line no-template-curly-in-string
103
- var CONFIG = {
105
+ const CONFIG = {
104
106
  name: 'alpha',
105
107
  field: '${beta}'
106
108
  };
@@ -14,12 +14,12 @@ var _shouldRun = _interopRequireDefault(require("./shouldRun"));
14
14
  var _setDataItem = _interopRequireDefault(require("../Data/setDataItem"));
15
15
  var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
16
16
  var _getLength = _interopRequireDefault(require("./getLength"));
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
18
  // Global imports.
19
19
 
20
20
  // Local imports.
21
21
 
22
- var functions = {
22
+ const functions = {
23
23
  checkValueIsTruthy: _checkValueIsTruthy.default,
24
24
  getIndexOfMatchingValueIn: _getIndexOfMatchingValueIn.default,
25
25
  persistValueInFormData: _persistValueInFormData.default,
@@ -28,8 +28,8 @@ var functions = {
28
28
  getLength: _getLength.default,
29
29
  getFirstOf: _getFirstOf.default
30
30
  };
31
- var doOperation = function doOperation(config, data, onChange) {
32
- var fn = functions[config.function];
31
+ const doOperation = (config, data, onChange) => {
32
+ const fn = functions[config.function];
33
33
  if (typeof fn === 'function') {
34
34
  return fn(config, data, onChange);
35
35
  }
@@ -53,15 +53,15 @@ var doOperation = function doOperation(config, data, onChange) {
53
53
  * @param {function} onChange The page's onChange handler.
54
54
  * @returns data with the results of any operations included.
55
55
  */
56
- var runPageOperations = function runPageOperations(config, data, onChange) {
56
+ const runPageOperations = (config, data, onChange) => {
57
57
  if (config !== null && config !== void 0 && config.operations && data) {
58
- config.operations.forEach(function (op) {
58
+ config.operations.forEach(op => {
59
59
  if ((0, _shouldRun.default)(op.run_when, data)) {
60
- var result = doOperation(op, data, onChange);
60
+ const result = doOperation(op, data, onChange);
61
61
  if (op.output) {
62
62
  // Remove array indexers and replace them with dot separators. This ensures that outputPath will
63
63
  // work with setDataItem.
64
- var outputPath = _copReactComponents.Utils.interpolateString(op.output, data).replace('[', '.').replace(']', '');
64
+ const outputPath = _copReactComponents.Utils.interpolateString(op.output, data).replace('[', '.').replace(']', '');
65
65
  (0, _setDataItem.default)(data, outputPath, result);
66
66
  }
67
67
  }
@@ -1,41 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- 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; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
- 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
- describe('Utils.Operate.runPageOperations', function () {
12
- var DATA = {
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ describe('Utils.Operate.runPageOperations', () => {
11
+ const DATA = {
13
12
  alpha: 'abc',
14
13
  bravo: ['bcd', 'cde', 'charlie'],
15
14
  charlie: 'def',
16
15
  delta: 'root',
17
16
  array: ['123', '234', '456']
18
17
  };
19
- it('Should return an empty object when no operations are specified', function () {
20
- var PAGE = {};
21
- var result = (0, _runPageOperations.default)(PAGE, DATA);
18
+ it('Should return an empty object when no operations are specified', () => {
19
+ const PAGE = {};
20
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
22
21
  expect(result).toEqual(DATA);
23
22
  });
24
- it('Should handle a single operation correctly', function () {
25
- var PAGE = {
23
+ it('Should handle a single operation correctly', () => {
24
+ const PAGE = {
26
25
  operations: [{
27
26
  output: 'firstOpResult',
28
27
  function: 'setValueInFormData',
29
28
  field: 'alpha'
30
29
  }]
31
30
  };
32
- var result = (0, _runPageOperations.default)(PAGE, DATA);
31
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
33
32
  expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
34
33
  firstOpResult: 'abc'
35
34
  }));
36
35
  });
37
- it('Should handle a multiple operations correctly', function () {
38
- var PAGE = {
36
+ it('Should handle a multiple operations correctly', () => {
37
+ const PAGE = {
39
38
  operations: [{
40
39
  output: 'firstOpResult',
41
40
  function: 'setValueInFormData',
@@ -46,14 +45,14 @@ describe('Utils.Operate.runPageOperations', function () {
46
45
  field: 'bravo[1]'
47
46
  }]
48
47
  };
49
- var result = (0, _runPageOperations.default)(PAGE, DATA);
48
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
50
49
  expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
51
50
  firstOpResult: 'abc',
52
51
  secondOpResult: 'cde'
53
52
  }));
54
53
  });
55
- it('Should handle chained operations correctly', function () {
56
- var PAGE = {
54
+ it('Should handle chained operations correctly', () => {
55
+ const PAGE = {
57
56
  operations: [{
58
57
  output: 'firstOpResult',
59
58
  function: 'setValueInFormData',
@@ -65,14 +64,14 @@ describe('Utils.Operate.runPageOperations', function () {
65
64
  field: '${firstOpResult}'
66
65
  }]
67
66
  };
68
- var result = (0, _runPageOperations.default)(PAGE, DATA);
67
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
69
68
  expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
70
69
  firstOpResult: 'charlie',
71
70
  secondOpResult: 'def'
72
71
  }));
73
72
  });
74
- it('Should handle an interpolated output string correctly', function () {
75
- var PAGE = {
73
+ it('Should handle an interpolated output string correctly', () => {
74
+ const PAGE = {
76
75
  operations: [{
77
76
  function: 'setValueInFormData',
78
77
  value: 'leaf',
@@ -80,7 +79,7 @@ describe('Utils.Operate.runPageOperations', function () {
80
79
  output: '${delta}.trunk.branch'
81
80
  }]
82
81
  };
83
- var result = (0, _runPageOperations.default)(PAGE, DATA);
82
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
84
83
  expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
85
84
  root: {
86
85
  trunk: {
@@ -89,15 +88,15 @@ describe('Utils.Operate.runPageOperations', function () {
89
88
  }
90
89
  }));
91
90
  });
92
- it('Should handle an output string with array indeces in', function () {
93
- var PAGE = {
91
+ it('Should handle an output string with array indeces in', () => {
92
+ const PAGE = {
94
93
  operations: [{
95
94
  function: 'setValueInFormData',
96
95
  value: '000',
97
96
  output: 'array[1]'
98
97
  }]
99
98
  };
100
- var result = (0, _runPageOperations.default)(PAGE, DATA);
99
+ const result = (0, _runPageOperations.default)(PAGE, DATA);
101
100
  expect(result).toEqual(_objectSpread(_objectSpread({}, DATA), {}, {
102
101
  array: ['123', '000', '456']
103
102
  }));
@@ -6,14 +6,14 @@ 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 setValueInFormData = function setValueInFormData(config, data) {
14
+ const setValueInFormData = (config, data) => {
15
15
  if (config !== null && config !== void 0 && config.field) {
16
- var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
16
+ const fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
17
17
  return (0, _getSourceData.default)(data, fieldPath) || null;
18
18
  }
19
19
  return (config === null || config === void 0 ? void 0 : config.value) || null;
@@ -1,44 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _setValueInFormData = _interopRequireDefault(require("./setValueInFormData"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Utils.Operate.setValueInFormData', function () {
6
- var DATA = {
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('Utils.Operate.setValueInFormData', () => {
6
+ const DATA = {
7
7
  a: '1',
8
8
  b: ['2', '3'],
9
9
  indexOfThree: 1
10
10
  };
11
- it('Should return the value provided in config if no field is specified', function () {
12
- var CONFIG = {
11
+ it('Should return the value provided in config if no field is specified', () => {
12
+ const CONFIG = {
13
13
  value: '2'
14
14
  };
15
- var result = (0, _setValueInFormData.default)(CONFIG, DATA);
15
+ const result = (0, _setValueInFormData.default)(CONFIG, DATA);
16
16
  expect(result).toEqual(CONFIG.value);
17
17
  });
18
- it('Should return the value of the field given in config, if it exists', function () {
19
- var CONFIG = {
18
+ it('Should return the value of the field given in config, if it exists', () => {
19
+ const CONFIG = {
20
20
  field: 'a'
21
21
  };
22
- var result = (0, _setValueInFormData.default)(CONFIG, DATA);
22
+ const result = (0, _setValueInFormData.default)(CONFIG, DATA);
23
23
  expect(result).toEqual(DATA.a);
24
24
  });
25
- it('Should handle interpolated field strings', function () {
25
+ it('Should handle interpolated field strings', () => {
26
26
  // eslint-disable-next-line no-template-curly-in-string
27
- var CONFIG = {
27
+ const CONFIG = {
28
28
  field: 'b[${indexOfThree}]'
29
29
  };
30
- var result = (0, _setValueInFormData.default)(CONFIG, DATA);
30
+ const result = (0, _setValueInFormData.default)(CONFIG, DATA);
31
31
  expect(result).toEqual(DATA.b[1]);
32
32
  });
33
- it('Should return null when an invalid config is used', function () {
34
- var result = (0, _setValueInFormData.default)(null, DATA);
33
+ it('Should return null when an invalid config is used', () => {
34
+ const result = (0, _setValueInFormData.default)(null, DATA);
35
35
  expect(result).toEqual(null);
36
36
  });
37
- it('Should return null when invalid data is used', function () {
38
- var CONFIG = {
37
+ it('Should return null when invalid data is used', () => {
38
+ const CONFIG = {
39
39
  field: 'a'
40
40
  };
41
- var result = (0, _setValueInFormData.default)(CONFIG, null);
41
+ const result = (0, _setValueInFormData.default)(CONFIG, null);
42
42
  expect(result).toEqual(null);
43
43
  });
44
44
  });
@@ -6,7 +6,7 @@ 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.
@@ -18,17 +18,17 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
18
  * @param {object} data The page's formData.
19
19
  * @returns
20
20
  */
21
- var shouldRun = function shouldRun(config, data) {
21
+ const shouldRun = (config, data) => {
22
22
  if (config !== null && config !== void 0 && config.condition) {
23
- var configuration = config;
24
- var fieldPath = _copReactComponents.Utils.interpolateString(configuration.field, data);
25
- var fieldValue = (0, _getSourceData.default)(data, fieldPath);
23
+ const configuration = config;
24
+ const fieldPath = _copReactComponents.Utils.interpolateString(configuration.field, data);
25
+ const fieldValue = (0, _getSourceData.default)(data, fieldPath);
26
26
  switch (configuration.condition) {
27
27
  // Only run the operation if a given field's value has changed.
28
28
  case 'changes':
29
29
  {
30
- var lastPath = "".concat(fieldPath, "LastValue");
31
- var lastValue = configuration[lastPath] || null;
30
+ const lastPath = "".concat(fieldPath, "LastValue");
31
+ const lastValue = configuration[lastPath] || null;
32
32
  if (lastValue === null) {
33
33
  // If there isn't a last value then we assume
34
34
  // that this is the first render.
@@ -1,27 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  var _shouldRun = _interopRequireDefault(require("./shouldRun"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
- 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; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
- 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
- describe('Utils.Operate.shouldRun', function () {
12
- var DATA = {
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ describe('Utils.Operate.shouldRun', () => {
11
+ const DATA = {
13
12
  alpha: 'abc',
14
13
  bravo: ''
15
14
  };
16
- it('Should return true if the run_when config is invalid', function () {
15
+ it('Should return true if the run_when config is invalid', () => {
17
16
  expect((0, _shouldRun.default)(null, DATA)).toEqual(true);
18
17
  });
19
- it('Should return true when the condition is \'changes\' and target value has changed', function () {
20
- var CONFIG = {
18
+ it('Should return true when the condition is \'changes\' and target value has changed', () => {
19
+ const CONFIG = {
21
20
  condition: 'changes',
22
21
  field: 'alpha'
23
22
  };
24
- var result = (0, _shouldRun.default)(CONFIG, DATA);
23
+ let result = (0, _shouldRun.default)(CONFIG, DATA);
25
24
  expect(result).toEqual(false); // Expect false as this is the first render.
26
25
  result = (0, _shouldRun.default)(CONFIG, DATA);
27
26
  expect(result).toEqual(false); // Expect false as the field hasn't changed.
@@ -30,37 +29,36 @@ describe('Utils.Operate.shouldRun', function () {
30
29
  }));
31
30
  expect(result).toEqual(true); // Expect true as the field's value has been updated.
32
31
  });
33
-
34
- it('Should return true when the condition is \'isTruthy\' and target value is truthy', function () {
35
- var CONFIG = {
32
+ it('Should return true when the condition is \'isTruthy\' and target value is truthy', () => {
33
+ const CONFIG = {
36
34
  condition: 'isTruthy',
37
35
  field: 'alpha'
38
36
  };
39
- var result = (0, _shouldRun.default)(CONFIG, DATA);
37
+ const result = (0, _shouldRun.default)(CONFIG, DATA);
40
38
  expect(result).toEqual(true);
41
39
  });
42
- it('Should return false when the condition is \'isTruthy\' and target value is falsy', function () {
43
- var CONFIG = {
40
+ it('Should return false when the condition is \'isTruthy\' and target value is falsy', () => {
41
+ const CONFIG = {
44
42
  condition: 'isTruthy',
45
43
  field: 'bravo'
46
44
  };
47
- var result = (0, _shouldRun.default)(CONFIG, DATA);
45
+ const result = (0, _shouldRun.default)(CONFIG, DATA);
48
46
  expect(result).toEqual(false);
49
47
  });
50
- it('Should return true when the condition is \'isFalsy\' and target value is falsy', function () {
51
- var CONFIG = {
48
+ it('Should return true when the condition is \'isFalsy\' and target value is falsy', () => {
49
+ const CONFIG = {
52
50
  condition: 'isFalsy',
53
51
  field: 'bravo'
54
52
  };
55
- var result = (0, _shouldRun.default)(CONFIG, DATA);
53
+ const result = (0, _shouldRun.default)(CONFIG, DATA);
56
54
  expect(result).toEqual(true);
57
55
  });
58
- it('Should return false when the condition is \'isFalsy\' and target value is truthy', function () {
59
- var CONFIG = {
56
+ it('Should return false when the condition is \'isFalsy\' and target value is truthy', () => {
57
+ const CONFIG = {
60
58
  condition: 'isFalsy',
61
59
  field: 'alpha'
62
60
  };
63
- var result = (0, _shouldRun.default)(CONFIG, DATA);
61
+ const result = (0, _shouldRun.default)(CONFIG, DATA);
64
62
  expect(result).toEqual(false);
65
63
  });
66
64
  });
@@ -16,7 +16,7 @@ exports.default = void 0;
16
16
  * the 'check' value exists in formData as an item
17
17
  * otherwise returns true
18
18
  */
19
- var conditionallyPermittedChange = function conditionallyPermittedChange(data, config, _, formData) {
19
+ const conditionallyPermittedChange = (data, config, _, formData) => {
20
20
  if (data !== config.base && formData[config.check]) {
21
21
  return false;
22
22
  }