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