@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.12.0

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 (382) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +143 -105
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +942 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +131 -102
  10. package/dist/components/CollectionSummary/CollectionSummary.scss +5 -0
  11. package/dist/components/CollectionSummary/CollectionSummary.test.js +233 -173
  12. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  13. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  14. package/dist/components/CollectionSummary/RenderListView.js +57 -48
  15. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  16. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  17. package/dist/components/CollectionSummary/SummaryCard.js +156 -112
  18. package/dist/components/CollectionSummary/SummaryCard.scss +6 -0
  19. package/dist/components/CollectionSummary/SummaryCard.test.js +1023 -934
  20. package/dist/components/CollectionSummary/SummaryCardDetails.js +138 -94
  21. package/dist/components/CollectionSummary/SummaryCardDetails.scss +15 -4
  22. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  23. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  24. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  25. package/dist/components/FormComponent/Collection.js +108 -74
  26. package/dist/components/FormComponent/Collection.test.js +1081 -909
  27. package/dist/components/FormComponent/Container.js +39 -40
  28. package/dist/components/FormComponent/Container.test.js +412 -312
  29. package/dist/components/FormComponent/FormComponent.js +73 -70
  30. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  31. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  32. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  33. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  34. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  35. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  36. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  37. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  38. package/dist/components/FormComponent/helpers/index.js +4 -4
  39. package/dist/components/FormPage/FormPage.js +93 -66
  40. package/dist/components/FormPage/FormPage.test.js +163 -127
  41. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  42. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  43. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  44. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  45. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  46. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  47. package/dist/components/FormRenderer/handlers/index.js +1 -1
  48. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  49. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  50. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  51. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  52. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  53. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  54. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +39 -22
  55. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +74 -16
  56. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  57. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  58. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  59. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  60. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  61. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  62. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  63. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  64. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  65. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  66. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  67. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  68. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  69. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  70. package/dist/components/FormRenderer/helpers/index.js +1 -1
  71. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  72. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  73. package/dist/components/FormRenderer/onPageAction.js +44 -44
  74. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  75. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  76. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  77. package/dist/components/PageActions/ActionButton.js +15 -12
  78. package/dist/components/PageActions/ActionButton.test.js +78 -56
  79. package/dist/components/PageActions/PageActions.js +10 -10
  80. package/dist/components/PageActions/PageActions.test.js +115 -86
  81. package/dist/components/SummaryList/GroupAction.js +17 -9
  82. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  83. package/dist/components/SummaryList/RowAction.js +16 -11
  84. package/dist/components/SummaryList/RowAction.test.js +33 -37
  85. package/dist/components/SummaryList/SummaryList.js +34 -21
  86. package/dist/components/SummaryList/SummaryList.scss +15 -0
  87. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  88. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  89. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  90. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  91. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  92. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  93. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  96. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  97. package/dist/components/SummaryList/helpers/index.js +1 -1
  98. package/dist/components/TaskList/Task.js +29 -19
  99. package/dist/components/TaskList/Task.test.js +76 -83
  100. package/dist/components/TaskList/TaskList.js +92 -49
  101. package/dist/components/TaskList/TaskList.scss +24 -0
  102. package/dist/components/TaskList/TaskList.test.js +255 -113
  103. package/dist/components/TaskList/TaskState.js +5 -7
  104. package/dist/components/TaskList/TaskState.test.js +45 -52
  105. package/dist/components/index.js +7 -7
  106. package/dist/context/HooksContext/HooksContext.js +80 -57
  107. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  108. package/dist/context/HooksContext/index.js +4 -3
  109. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  110. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  111. package/dist/context/ValidationContext/index.js +4 -3
  112. package/dist/context/index.js +2 -2
  113. package/dist/hooks/index.js +10 -9
  114. package/dist/hooks/useAxios.js +40 -14
  115. package/dist/hooks/useGetRequest.js +97 -61
  116. package/dist/hooks/useHooks.js +3 -1
  117. package/dist/hooks/useRefData.js +39 -26
  118. package/dist/hooks/useValidation.js +3 -1
  119. package/dist/index.js +14 -13
  120. package/dist/json/actions.json +17 -0
  121. package/dist/json/actionsNoSave.json +17 -0
  122. package/dist/models/CollectionLabels.js +1 -1
  123. package/dist/models/ComponentTypes.js +25 -25
  124. package/dist/models/EventTypes.js +4 -4
  125. package/dist/models/FormPages.js +4 -4
  126. package/dist/models/FormTypes.js +8 -8
  127. package/dist/models/HubFormats.js +3 -3
  128. package/dist/models/PageAction.js +38 -44
  129. package/dist/models/TaskStates.js +28 -29
  130. package/dist/models/index.js +9 -9
  131. package/dist/setupTests.js +31 -30
  132. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  133. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  134. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  136. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  138. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  139. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  140. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  142. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +113 -89
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +320 -162
  146. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  148. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  150. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  151. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  152. package/dist/utils/CheckYourAnswers/index.js +1 -1
  153. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  155. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  157. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  159. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  161. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  163. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  165. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  166. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  167. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  168. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  169. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  170. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  171. package/dist/utils/CollectionPage/index.js +1 -1
  172. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  173. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  174. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  176. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  178. package/dist/utils/Component/addShowWhen.js +8 -4
  179. package/dist/utils/Component/addShowWhen.test.js +37 -37
  180. package/dist/utils/Component/applyToComponentTree.js +18 -18
  181. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  182. package/dist/utils/Component/cleanAttributes.js +13 -10
  183. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  184. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  185. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  186. package/dist/utils/Component/getComponent.js +94 -88
  187. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  188. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  189. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  190. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  191. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  192. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  193. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  194. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  195. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  196. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  197. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  199. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  200. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  202. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  203. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  204. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  205. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  206. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  207. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  208. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  209. package/dist/utils/Component/getDefaultValue.js +8 -6
  210. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  211. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  212. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  213. package/dist/utils/Component/index.js +1 -1
  214. package/dist/utils/Component/isEditable.js +4 -2
  215. package/dist/utils/Component/isEditable.test.js +15 -14
  216. package/dist/utils/Component/optionIsSelected.js +6 -1
  217. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  218. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  219. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  220. package/dist/utils/Component/showComponent.js +1 -1
  221. package/dist/utils/Component/showComponent.test.js +28 -28
  222. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  223. package/dist/utils/Condition/index.js +1 -1
  224. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  225. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  226. package/dist/utils/Condition/meetsCondition.js +25 -16
  227. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  228. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  229. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  230. package/dist/utils/Condition/setupConditions.js +18 -13
  231. package/dist/utils/Condition/setupConditions.test.js +7 -7
  232. package/dist/utils/Container/getEditableComponents.js +5 -3
  233. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  234. package/dist/utils/Container/index.js +1 -1
  235. package/dist/utils/Container/setupNesting.js +20 -16
  236. package/dist/utils/Container/setupNesting.test.js +30 -27
  237. package/dist/utils/Container/showContainer.js +7 -3
  238. package/dist/utils/Container/showContainer.test.js +30 -30
  239. package/dist/utils/Data/applyFormula.js +48 -38
  240. package/dist/utils/Data/applyFormula.test.js +20 -20
  241. package/dist/utils/Data/deleteValues.js +22 -0
  242. package/dist/utils/Data/deleteValues.test.js +57 -0
  243. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  244. package/dist/utils/Data/getAutocompleteSource.test.js +100 -85
  245. package/dist/utils/Data/getDataPath.js +28 -18
  246. package/dist/utils/Data/getDataPath.test.js +12 -12
  247. package/dist/utils/Data/getOptions.js +31 -24
  248. package/dist/utils/Data/getOptions.test.js +53 -35
  249. package/dist/utils/Data/getSourceData.js +19 -6
  250. package/dist/utils/Data/getSourceData.test.js +80 -84
  251. package/dist/utils/Data/index.js +3 -1
  252. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  253. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  254. package/dist/utils/Data/refDataToOptions.js +13 -10
  255. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  256. package/dist/utils/Data/setDataItem.js +8 -7
  257. package/dist/utils/Data/setDataItem.test.js +37 -37
  258. package/dist/utils/Data/setupFormData.js +21 -13
  259. package/dist/utils/Data/setupFormData.test.js +50 -51
  260. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  261. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  262. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  263. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  264. package/dist/utils/FormPage/getConditionalText.js +3 -3
  265. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  266. package/dist/utils/FormPage/getFormPage.js +16 -15
  267. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  268. package/dist/utils/FormPage/getFormPages.js +12 -7
  269. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  270. package/dist/utils/FormPage/getPageActions.js +15 -9
  271. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  272. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  273. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  274. package/dist/utils/FormPage/index.js +4 -2
  275. package/dist/utils/FormPage/showFormPage.js +7 -3
  276. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  277. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  278. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  279. package/dist/utils/FormPage/useComponent.js +28 -21
  280. package/dist/utils/FormPage/useComponent.test.js +79 -77
  281. package/dist/utils/Format/formatData.js +1 -1
  282. package/dist/utils/Format/formatData.test.js +18 -18
  283. package/dist/utils/Format/formatDataForComponent.js +6 -5
  284. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  285. package/dist/utils/Format/formatDataForForm.js +8 -6
  286. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  287. package/dist/utils/Format/formatDataForPage.js +5 -4
  288. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  289. package/dist/utils/Format/index.js +1 -1
  290. package/dist/utils/Hub/getFormHub.js +1 -1
  291. package/dist/utils/Hub/getFormHub.test.js +31 -28
  292. package/dist/utils/Hub/index.js +1 -1
  293. package/dist/utils/Meta/constants.js +2 -2
  294. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  295. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  296. package/dist/utils/Meta/documents/index.js +1 -1
  297. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  298. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  299. package/dist/utils/Meta/index.js +1 -1
  300. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  301. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  302. package/dist/utils/Operate/deleteValueInFormData.js +26 -0
  303. package/dist/utils/Operate/deleteValueInFormData.test.js +60 -0
  304. package/dist/utils/Operate/getFirstOf.js +5 -5
  305. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  306. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  307. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  308. package/dist/utils/Operate/getLength.js +50 -0
  309. package/dist/utils/Operate/getLength.test.js +89 -0
  310. package/dist/utils/Operate/index.js +1 -1
  311. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  312. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  313. package/dist/utils/Operate/runPageOperations.js +11 -7
  314. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  315. package/dist/utils/Operate/setValueInFormData.js +2 -2
  316. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  317. package/dist/utils/Operate/shouldRun.js +6 -6
  318. package/dist/utils/Operate/shouldRun.test.js +27 -21
  319. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  320. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  321. package/dist/utils/Validate/additional/index.js +10 -7
  322. package/dist/utils/Validate/additional/index.test.js +78 -12
  323. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  325. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  326. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  327. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  328. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  329. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  330. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  331. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  333. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  334. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  335. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  336. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  337. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  338. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  339. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  340. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  341. package/dist/utils/Validate/additional/mustBeOneOf.js +21 -0
  342. package/dist/utils/Validate/additional/mustBeOneOf.test.js +36 -0
  343. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  344. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  345. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  346. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  347. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  348. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  349. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  350. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  351. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  352. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  353. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  354. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  355. package/dist/utils/Validate/additional/utils.js +22 -9
  356. package/dist/utils/Validate/index.js +1 -1
  357. package/dist/utils/Validate/validateCollection.js +25 -19
  358. package/dist/utils/Validate/validateCollection.test.js +66 -74
  359. package/dist/utils/Validate/validateComponent.js +21 -18
  360. package/dist/utils/Validate/validateComponent.test.js +176 -166
  361. package/dist/utils/Validate/validateContainer.js +20 -15
  362. package/dist/utils/Validate/validateContainer.test.js +52 -58
  363. package/dist/utils/Validate/validateDate.js +21 -15
  364. package/dist/utils/Validate/validateDate.test.js +32 -31
  365. package/dist/utils/Validate/validateEmail.js +8 -6
  366. package/dist/utils/Validate/validateEmail.test.js +25 -25
  367. package/dist/utils/Validate/validateMultifile.js +7 -5
  368. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  369. package/dist/utils/Validate/validatePage.js +22 -19
  370. package/dist/utils/Validate/validatePage.test.js +203 -215
  371. package/dist/utils/Validate/validateRegex.js +5 -3
  372. package/dist/utils/Validate/validateRegex.test.js +14 -14
  373. package/dist/utils/Validate/validateRequired.js +6 -4
  374. package/dist/utils/Validate/validateRequired.test.js +18 -18
  375. package/dist/utils/Validate/validateTextArea.js +6 -4
  376. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  377. package/dist/utils/Validate/validateTime.js +26 -11
  378. package/dist/utils/Validate/validateTime.test.js +62 -16
  379. package/dist/utils/index.js +9 -7
  380. package/package.json +2 -2
  381. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  382. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -2,164 +2,173 @@
2
2
 
3
3
  var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- // Local imports
6
-
7
- describe('utils', () => {
8
- describe('Data', () => {
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); }
6
+ 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
+ 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); } // Local imports
11
+ describe('utils', function () {
12
+ describe('Data', function () {
9
13
  // test data
10
- const gbCurrency = {
14
+ var gbCurrency = {
11
15
  currencyName: 'Great British Pounds',
12
16
  currencyCode: 'GBP',
17
+ hint: 'hint',
13
18
  value: 'GBP',
14
19
  label: 'GBP',
15
20
  slangTerm: 'quid'
16
21
  };
17
- const usCurrency = {
22
+ var usCurrency = {
18
23
  currencyName: 'United States Dollars',
19
24
  currencyCode: 'USD',
25
+ hint: 'hint',
20
26
  value: 'USD',
21
27
  label: 'USD',
22
28
  slangTerm: 'bucks',
23
29
  synonyms: ['greenbacks']
24
30
  };
25
- const options = {
31
+ var options = {
26
32
  alpha: {
27
33
  value: 'a',
28
- label: 'Alpha'
34
+ label: 'Alpha',
35
+ hint: 'hint'
29
36
  },
30
37
  bravo: {
31
38
  value: 'b',
32
- label: 'Bravo'
39
+ label: 'Bravo',
40
+ hint: 'hint'
33
41
  },
34
42
  alIncluded: {
35
43
  value: 'c',
36
- label: 'Call me alan'
44
+ label: 'Call me alan',
45
+ hint: 'hint'
37
46
  },
38
47
  alStart: {
39
48
  value: 'd',
40
- label: 'Word Alphabet'
49
+ label: 'Word Alphabet',
50
+ hint: 'hint'
41
51
  }
42
52
  };
43
- const testCurrencies = [gbCurrency, usCurrency];
44
- describe('getAutocompleteSource', () => {
45
- it('should handle a null config', () => {
46
- const SOURCE = (0, _getAutocompleteSource.default)(null);
53
+ var testCurrencies = [gbCurrency, usCurrency];
54
+ describe('getAutocompleteSource', function () {
55
+ it('should handle a null config', function () {
56
+ var SOURCE = (0, _getAutocompleteSource.default)(null);
47
57
  expect(typeof SOURCE === 'function').toBeTruthy();
48
- SOURCE('query', results => {
58
+ SOURCE('query', function (results) {
49
59
  expect(Array.isArray(results)).toBeTruthy();
50
60
  expect(results.length).toEqual(0);
51
61
  });
52
62
  });
53
- describe('without custom item labels', () => {
54
- it('should get any specified options from the config', () => {
55
- const CONFIG = {
63
+ describe('without custom item labels', function () {
64
+ it('should get any specified options from the config', function () {
65
+ var CONFIG = {
56
66
  data: {
57
67
  options: [options.alpha, options.bravo]
58
68
  }
59
69
  };
60
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
70
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
61
71
  expect(typeof SOURCE === 'function').toBeTruthy();
62
- SOURCE('a', results => {
72
+ SOURCE('a', function (results) {
63
73
  expect(results.length).toEqual(2);
64
74
  expect(results).toEqual([options.alpha, options.bravo]);
65
75
  });
66
- SOURCE('al', results => {
76
+ SOURCE('al', function (results) {
67
77
  expect(results.length).toEqual(1);
68
78
  expect(results).toEqual([{
69
79
  value: 'a',
70
- label: 'Alpha'
80
+ label: 'Alpha',
81
+ hint: 'hint'
71
82
  }]);
72
83
  });
73
84
  });
74
- it('should handle an empty query', () => {
75
- const CONFIG = {
85
+ it('should handle an empty query', function () {
86
+ var CONFIG = {
76
87
  data: {
77
88
  options: [options.alpha, options.bravo]
78
89
  }
79
90
  };
80
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
81
- SOURCE('', results => {
91
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
92
+ SOURCE('', function (results) {
82
93
  expect(results.length).toEqual(2);
83
94
  expect(results).toEqual([options.alpha, options.bravo]);
84
95
  });
85
96
  });
86
- it('should handle an undefined query', () => {
87
- const CONFIG = {
97
+ it('should handle an undefined query', function () {
98
+ var CONFIG = {
88
99
  data: {
89
100
  options: [options.alpha, options.bravo]
90
101
  }
91
102
  };
92
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
93
- SOURCE(undefined, results => {
103
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
104
+ SOURCE(undefined, function (results) {
94
105
  expect(results.length).toEqual(2);
95
106
  expect(results).toEqual([options.alpha, options.bravo]);
96
107
  });
97
108
  });
98
- it('should handle a null query', () => {
99
- const CONFIG = {
109
+ it('should handle a null query', function () {
110
+ var CONFIG = {
100
111
  data: {
101
112
  options: [options.alpha, options.bravo]
102
113
  }
103
114
  };
104
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
105
- SOURCE(null, results => {
115
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
116
+ SOURCE(null, function (results) {
106
117
  expect(results.length).toEqual(2);
107
118
  expect(results).toEqual([options.alpha, options.bravo]);
108
119
  });
109
120
  });
110
- it('should handle a missing label on an option', () => {
111
- const CONFIG = {
121
+ it('should handle a missing label on an option', function () {
122
+ var CONFIG = {
112
123
  data: {
113
124
  options: [options.alpha, {
114
125
  value: 'b'
115
126
  }]
116
127
  }
117
128
  };
118
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
129
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
119
130
  expect(typeof SOURCE === 'function').toBeTruthy();
120
- SOURCE('a', results => {
131
+ SOURCE('a', function (results) {
121
132
  expect(results.length).toEqual(1);
122
133
  expect(results).toEqual([options.alpha]);
123
134
  });
124
135
  });
125
- it('should return matches in the right order', () => {
126
- const CONFIG = {
136
+ it('should return matches in the right order', function () {
137
+ var CONFIG = {
127
138
  data: {
128
139
  options: [options.alIncluded, options.alStart, options.bravo, options.alpha]
129
140
  }
130
141
  };
131
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
142
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
132
143
  expect(typeof SOURCE === 'function').toBeTruthy();
133
- SOURCE('al', results => {
144
+ SOURCE('al', function (results) {
134
145
  expect(results.length).toEqual(3);
135
146
  expect(results).toEqual([options.alpha, options.alStart, options.alIncluded]);
136
147
  });
137
148
  });
138
- it('should match options using a defined synonym', () => {
139
- const CONFIG = {
149
+ it('should match options using a defined synonym', function () {
150
+ var CONFIG = {
140
151
  data: {
141
- options: [{
142
- ...options.alpha,
152
+ options: [_objectSpread(_objectSpread({}, options.alpha), {}, {
143
153
  synonyms: ['first']
144
- }, {
154
+ }), {
145
155
  value: 'b'
146
156
  }]
147
157
  }
148
158
  };
149
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
159
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
150
160
  expect(typeof SOURCE === 'function').toBeTruthy();
151
- SOURCE('first', results => {
161
+ SOURCE('first', function (results) {
152
162
  expect(results.length).toEqual(1);
153
- expect(results).toEqual([{
154
- ...options.alpha,
163
+ expect(results).toEqual([_objectSpread(_objectSpread({}, options.alpha), {}, {
155
164
  synonyms: ['first']
156
- }]);
165
+ })]);
157
166
  });
158
167
  });
159
168
  });
160
- describe('with custom item labels', () => {
161
- it('should get any specified options from the config', () => {
162
- const CONFIG = {
169
+ describe('with custom item labels', function () {
170
+ it('should get any specified options from the config', function () {
171
+ var CONFIG = {
163
172
  item: {
164
173
  value: 'currencyCode',
165
174
  label: 'currencyCode',
@@ -170,19 +179,19 @@ describe('utils', () => {
170
179
  options: testCurrencies
171
180
  }
172
181
  };
173
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
182
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
174
183
  expect(typeof SOURCE === 'function').toBeTruthy();
175
- SOURCE('GB', results => {
184
+ SOURCE('GB', function (results) {
176
185
  expect(results.length).toEqual(1);
177
186
  expect(results).toEqual([gbCurrency]);
178
187
  });
179
- SOURCE(' (', results => {
188
+ SOURCE(' (', function (results) {
180
189
  expect(results.length).toEqual(2);
181
190
  expect(results).toEqual(testCurrencies);
182
191
  });
183
192
  });
184
- it('should handle an empty query', () => {
185
- const CONFIG = {
193
+ it('should handle an empty query', function () {
194
+ var CONFIG = {
186
195
  item: {
187
196
  value: 'currencyCode',
188
197
  label: 'currencyCode',
@@ -193,14 +202,14 @@ describe('utils', () => {
193
202
  options: testCurrencies
194
203
  }
195
204
  };
196
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
197
- SOURCE('', results => {
205
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
206
+ SOURCE('', function (results) {
198
207
  expect(results.length).toEqual(2);
199
208
  expect(results).toEqual(testCurrencies);
200
209
  });
201
210
  });
202
- it('should handle an undefined query', () => {
203
- const CONFIG = {
211
+ it('should handle an undefined query', function () {
212
+ var CONFIG = {
204
213
  item: {
205
214
  value: 'currencyCode',
206
215
  label: 'currencyCode',
@@ -211,14 +220,14 @@ describe('utils', () => {
211
220
  options: testCurrencies
212
221
  }
213
222
  };
214
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
215
- SOURCE(undefined, results => {
223
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
224
+ SOURCE(undefined, function (results) {
216
225
  expect(results.length).toEqual(2);
217
226
  expect(results).toEqual(testCurrencies);
218
227
  });
219
228
  });
220
- it('should handle a null query', () => {
221
- const CONFIG = {
229
+ it('should handle a null query', function () {
230
+ var CONFIG = {
222
231
  item: {
223
232
  value: 'currencyCode',
224
233
  label: 'currencyCode',
@@ -229,14 +238,14 @@ describe('utils', () => {
229
238
  options: testCurrencies
230
239
  }
231
240
  };
232
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
233
- SOURCE(null, results => {
241
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
242
+ SOURCE(null, function (results) {
234
243
  expect(results.length).toEqual(2);
235
244
  expect(results).toEqual(testCurrencies);
236
245
  });
237
246
  });
238
- it('should handle a missing label on an option', () => {
239
- const CONFIG = {
247
+ it('should handle a missing label on an option', function () {
248
+ var CONFIG = {
240
249
  item: {
241
250
  value: 'currencyCode',
242
251
  label: 'currencyCode',
@@ -247,13 +256,14 @@ describe('utils', () => {
247
256
  options: [gbCurrency, {
248
257
  currencyName: 'United States Dollars',
249
258
  currencyCode: 'USD',
259
+ hint: 'hint',
250
260
  value: 'USD'
251
261
  }]
252
262
  }
253
263
  };
254
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
264
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
255
265
  expect(typeof SOURCE === 'function').toBeTruthy();
256
- SOURCE('a', results => {
266
+ SOURCE('a', function (results) {
257
267
  // We expect 2 results here instead of 1 because defining a custom
258
268
  // format for item labels means the label is constructed upon processing
259
269
  // a query - we're not relying on the 'label' field of the option.
@@ -261,13 +271,14 @@ describe('utils', () => {
261
271
  expect(results).toEqual([gbCurrency, {
262
272
  currencyName: 'United States Dollars',
263
273
  currencyCode: 'USD',
274
+ hint: 'hint',
264
275
  value: 'USD',
265
276
  label: ''
266
277
  }]);
267
278
  });
268
279
  });
269
- it('should match options using a defined synonym', () => {
270
- const CONFIG = {
280
+ it('should match options using a defined synonym', function () {
281
+ var CONFIG = {
271
282
  item: {
272
283
  value: 'currencyCode',
273
284
  label: 'currencyCode',
@@ -278,15 +289,17 @@ describe('utils', () => {
278
289
  options: testCurrencies
279
290
  }
280
291
  };
281
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
292
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
282
293
  expect(typeof SOURCE === 'function').toBeTruthy();
283
- SOURCE('greenbacks', results => {
294
+ SOURCE('greenbacks', function (results) {
284
295
  expect(results.length).toEqual(1);
285
- expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
296
+ expect(results).toEqual(testCurrencies.filter(function (c) {
297
+ return c.currencyCode === 'USD';
298
+ }));
286
299
  });
287
300
  });
288
- it('should match options using defined extra searchable fields', () => {
289
- const CONFIG = {
301
+ it('should match options using defined extra searchable fields', function () {
302
+ var CONFIG = {
290
303
  item: {
291
304
  value: 'currencyCode',
292
305
  label: 'currencyCode',
@@ -298,11 +311,13 @@ describe('utils', () => {
298
311
  options: testCurrencies
299
312
  }
300
313
  };
301
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
314
+ var SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
302
315
  expect(typeof SOURCE === 'function').toBeTruthy();
303
- SOURCE('buc', results => {
316
+ SOURCE('buc', function (results) {
304
317
  expect(results.length).toEqual(1);
305
- expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
318
+ expect(results).toEqual(testCurrencies.filter(function (c) {
319
+ return c.currencyCode === 'USD';
320
+ }));
306
321
  });
307
322
  });
308
323
  });
@@ -4,36 +4,46 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- const DOT = '.';
8
- const SLASH = '/';
9
- const DOT_DOT = "".concat(DOT).concat(DOT);
10
- const PARENT_PATH = "".concat(DOT).concat(SLASH);
11
- const toPath = arr => arr.join(DOT);
12
- const toParts = function (str) {
13
- let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
7
+ var DOT = '.';
8
+ var SLASH = '/';
9
+ var DOT_DOT = "".concat(DOT).concat(DOT);
10
+ var PARENT_PATH = "".concat(DOT).concat(SLASH);
11
+ var toPath = function toPath(arr) {
12
+ return arr.join(DOT);
13
+ };
14
+ var toParts = function toParts(str) {
15
+ var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
14
16
  return str.split(separator);
15
17
  };
16
- const isDotDot = str => str === DOT_DOT;
17
- const isDotOrDotDot = str => [DOT, DOT_DOT].indexOf(str) > -1;
18
- const isRelativePath = path => path && path.indexOf(DOT) === 0;
19
- const standardiseRelativePath = path => {
18
+ var isDotDot = function isDotDot(str) {
19
+ return str === DOT_DOT;
20
+ };
21
+ var isDotOrDotDot = function isDotOrDotDot(str) {
22
+ return [DOT, DOT_DOT].indexOf(str) > -1;
23
+ };
24
+ var isRelativePath = function isRelativePath(path) {
25
+ return path && path.indexOf(DOT) === 0;
26
+ };
27
+ var standardiseRelativePath = function standardiseRelativePath(path) {
20
28
  if (path.indexOf(PARENT_PATH) === 0) {
21
29
  return path;
22
30
  }
23
31
  return "".concat(PARENT_PATH).concat(path);
24
32
  };
25
- const ascendPath = (startPath, ascent) => {
26
- const relativePath = standardiseRelativePath(ascent);
33
+ var ascendPath = function ascendPath(startPath, ascent) {
34
+ var relativePath = standardiseRelativePath(ascent);
27
35
  // Always add 1 because we're starting on a leaf node within a "directory".
28
- const stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
29
- const pathParts = startPath ? toParts(startPath) : [];
36
+ var stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
37
+ var pathParts = startPath ? toParts(startPath) : [];
30
38
  if (stepsToClimb >= pathParts.length) {
31
39
  return '';
32
40
  }
33
41
  return toPath(pathParts.slice(0, -stepsToClimb));
34
42
  };
35
- const descendPath = (startPath, descent) => {
36
- const stepsDown = toParts(descent, SLASH).filter(str => !isDotOrDotDot(str));
43
+ var descendPath = function descendPath(startPath, descent) {
44
+ var stepsDown = toParts(descent, SLASH).filter(function (str) {
45
+ return !isDotOrDotDot(str);
46
+ });
37
47
  return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
38
48
  };
39
49
 
@@ -56,7 +66,7 @@ const descendPath = (startPath, descent) => {
56
66
  * getDataPath('../../relative.path', 'this.is.the.current.path');
57
67
  * // => 'this.is.relative.path'
58
68
  */
59
- const getDataPath = (path, currentPath) => {
69
+ var getDataPath = function getDataPath(path, currentPath) {
60
70
  if (isRelativePath(path)) {
61
71
  return descendPath(ascendPath(currentPath, path), path);
62
72
  }
@@ -2,17 +2,17 @@
2
2
 
3
3
  var _getDataPath = _interopRequireDefault(require("./getDataPath"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils.Data.getDataPath', () => {
6
- const CURRENT_PATH = 'this.is.the.current.path';
7
- const RELATIVE = 'relative.path';
8
- const ABSOLUTE = 'absolute.path';
9
- const doTest = (path, currentPath, expected) => {
5
+ describe('utils.Data.getDataPath', function () {
6
+ var CURRENT_PATH = 'this.is.the.current.path';
7
+ var RELATIVE = 'relative.path';
8
+ var ABSOLUTE = 'absolute.path';
9
+ var doTest = function doTest(path, currentPath, expected) {
10
10
  expect((0, _getDataPath.default)(path, currentPath)).toEqual(expected);
11
11
  };
12
- it("should return an absolute path appropriately", () => {
12
+ it("should return an absolute path appropriately", function () {
13
13
  doTest(ABSOLUTE, CURRENT_PATH, ABSOLUTE);
14
14
  });
15
- it("should return an absolute path appropriately where the current path is null", () => {
15
+ it("should return an absolute path appropriately where the current path is null", function () {
16
16
  doTest(ABSOLUTE, null, ABSOLUTE);
17
17
  });
18
18
  [{
@@ -31,18 +31,18 @@ describe('utils.Data.getDataPath', () => {
31
31
  p: "../../../../../../../".concat(RELATIVE),
32
32
  e: RELATIVE,
33
33
  d: 'an inappropriately nested node'
34
- }].forEach(test => {
35
- it("should return ".concat(test.d, " appropriately"), () => {
34
+ }].forEach(function (test) {
35
+ it("should return ".concat(test.d, " appropriately"), function () {
36
36
  doTest(test.p, CURRENT_PATH, test.e);
37
37
  });
38
- it("should return ".concat(test.d, " appropriately where the current path is null"), () => {
38
+ it("should return ".concat(test.d, " appropriately where the current path is null"), function () {
39
39
  doTest(test.p, null, RELATIVE);
40
40
  });
41
41
  });
42
- it('should handle a null path and return null', () => {
42
+ it('should handle a null path and return null', function () {
43
43
  doTest(null, CURRENT_PATH, null);
44
44
  });
45
- it('should handle an undefined path and return undefined', () => {
45
+ it('should handle an undefined path and return undefined', function () {
46
46
  doTest(undefined, CURRENT_PATH, undefined);
47
47
  });
48
48
  });
@@ -8,35 +8,42 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
8
  var _Condition = _interopRequireDefault(require("../Condition"));
9
9
  var _nestInRefdataOptions = _interopRequireDefault(require("./nestInRefdataOptions"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- // Global Imports
12
-
11
+ 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); }
12
+ 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; }
13
+ 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; }
14
+ 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; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ 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); } // Global Imports
13
17
  // Local Imports
14
-
15
- const interpolateOptions = (config, options) => options.map(opt => {
16
- if (opt.show_when) {
17
- const result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
18
- if (!result) {
19
- return null;
18
+ var interpolateOptions = function interpolateOptions(config, options) {
19
+ return options.map(function (opt) {
20
+ if (opt.show_when) {
21
+ var result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
22
+ if (!result) {
23
+ return null;
24
+ }
20
25
  }
21
- }
22
- if (typeof opt === 'string') {
23
- return opt;
24
- }
25
- if (config.alternativeHintField) {
26
- // eslint-disable-next-line no-param-reassign
27
- opt.hint = opt[config.alternativeHintField];
28
- }
29
- return {
30
- ...opt,
31
- value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
32
- label: _copReactComponents.Utils.interpolateString(opt.label, config.formData)
33
- };
34
- }).filter(n => n);
35
- const getOptions = (config, callback) => {
26
+ if (typeof opt === 'string') {
27
+ return opt;
28
+ }
29
+ if (config.alternativeHintField) {
30
+ // eslint-disable-next-line no-param-reassign
31
+ opt.hint = opt[config.alternativeHintField];
32
+ }
33
+ return _objectSpread(_objectSpread({}, opt), {}, {
34
+ value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
35
+ label: _copReactComponents.Utils.interpolateString(opt.label, config.formData),
36
+ hint: _copReactComponents.Utils.interpolateString(opt.hint, config.formData)
37
+ });
38
+ }).filter(function (n) {
39
+ return n;
40
+ });
41
+ };
42
+ var getOptions = function getOptions(config, callback) {
36
43
  if (config) {
37
44
  var _config$data, _config$data2;
38
45
  if (config.options && config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.options && config !== null && config !== void 0 && (_config$data2 = config.data) !== null && _config$data2 !== void 0 && _config$data2.url) {
39
- const combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
46
+ var combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
40
47
  return callback(interpolateOptions(config, combinedOptions));
41
48
  }
42
49
  if (config.options) {