@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
@@ -4,16 +4,16 @@ var _getOptions = _interopRequireDefault(require("./getOptions"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils', function () {
8
- describe('Data', function () {
9
- describe('getOptions', function () {
10
- it('should handle a null config', function () {
11
- (0, _getOptions.default)(null, function (options) {
7
+ describe('utils', () => {
8
+ describe('Data', () => {
9
+ describe('getOptions', () => {
10
+ it('should handle a null config', () => {
11
+ (0, _getOptions.default)(null, options => {
12
12
  expect(options).toEqual([]);
13
13
  });
14
14
  });
15
- it('should get any specified options from the config', function () {
16
- var CONFIG = {
15
+ it('should get any specified options from the config', () => {
16
+ const CONFIG = {
17
17
  options: [{
18
18
  value: 'a',
19
19
  label: 'Alpha'
@@ -22,12 +22,12 @@ describe('utils', function () {
22
22
  label: 'Bravo'
23
23
  }]
24
24
  };
25
- (0, _getOptions.default)(CONFIG, function (options) {
25
+ (0, _getOptions.default)(CONFIG, options => {
26
26
  expect(options).toEqual(CONFIG.options);
27
27
  });
28
28
  });
29
- it('should get any specified options from the data property of the config', function () {
30
- var CONFIG = {
29
+ it('should get any specified options from the data property of the config', () => {
30
+ const CONFIG = {
31
31
  data: {
32
32
  options: [{
33
33
  value: 'a',
@@ -38,12 +38,12 @@ describe('utils', function () {
38
38
  }]
39
39
  }
40
40
  };
41
- (0, _getOptions.default)(CONFIG, function (options) {
41
+ (0, _getOptions.default)(CONFIG, options => {
42
42
  expect(options).toEqual(CONFIG.data.options);
43
43
  });
44
44
  });
45
- it('should use the top-level options over those in the data property', function () {
46
- var CONFIG = {
45
+ it('should use the top-level options over those in the data property', () => {
46
+ const CONFIG = {
47
47
  options: [{
48
48
  value: 'a',
49
49
  label: 'Alpha'
@@ -61,12 +61,12 @@ describe('utils', function () {
61
61
  }]
62
62
  }
63
63
  };
64
- (0, _getOptions.default)(CONFIG, function (options) {
64
+ (0, _getOptions.default)(CONFIG, options => {
65
65
  expect(options).toEqual(CONFIG.options);
66
66
  });
67
67
  });
68
- it('should exclude options from the config that fail show_when checks', function () {
69
- var CONFIG = {
68
+ it('should exclude options from the config that fail show_when checks', () => {
69
+ const CONFIG = {
70
70
  id: 'test',
71
71
  options: [{
72
72
  value: 'a',
@@ -89,12 +89,12 @@ describe('utils', function () {
89
89
  other: 'c'
90
90
  }
91
91
  };
92
- (0, _getOptions.default)(CONFIG, function (options) {
92
+ (0, _getOptions.default)(CONFIG, options => {
93
93
  expect(options).toEqual([CONFIG.options[0]]);
94
94
  });
95
95
  });
96
- it('should exclude options from the config that fail or type show_when checks', function () {
97
- var CONFIG = {
96
+ it('should exclude options from the config that fail or type show_when checks', () => {
97
+ const CONFIG = {
98
98
  id: 'test',
99
99
  options: [{
100
100
  value: 'a',
@@ -131,10 +131,83 @@ describe('utils', function () {
131
131
  other: 'c'
132
132
  }
133
133
  };
134
- (0, _getOptions.default)(CONFIG, function (options) {
134
+ (0, _getOptions.default)(CONFIG, options => {
135
135
  expect(options).toEqual([CONFIG.options[0]]);
136
136
  });
137
137
  });
138
+ it('should should use both data from refdata url and options if both present', () => {
139
+ const CONFIG = {
140
+ data: {
141
+ options: [{
142
+ refdata_match: {
143
+ id: 2
144
+ },
145
+ nested: [{
146
+ value: 'a',
147
+ label: 'Alpha'
148
+ }]
149
+ }],
150
+ url: 'refdata.url'
151
+ },
152
+ options: [{
153
+ id: 1,
154
+ description: 'First refdata item',
155
+ value: 'firstValue',
156
+ label: 'First label'
157
+ }, {
158
+ id: 2,
159
+ description: 'Second refdata item',
160
+ value: 'secondValue',
161
+ label: 'Second label'
162
+ }, {
163
+ id: 3,
164
+ description: 'Third refdata item',
165
+ value: 'thirdValue',
166
+ label: 'Third label'
167
+ }]
168
+ };
169
+ const MERGED_CONFIG = [{
170
+ id: 1,
171
+ description: 'First refdata item',
172
+ value: 'firstValue',
173
+ label: 'First label'
174
+ }, {
175
+ id: 2,
176
+ description: 'Second refdata item',
177
+ value: 'secondValue',
178
+ nested: [{
179
+ value: 'a',
180
+ label: 'Alpha'
181
+ }],
182
+ label: 'Second label'
183
+ }, {
184
+ id: 3,
185
+ description: 'Third refdata item',
186
+ value: 'thirdValue',
187
+ label: 'Third label'
188
+ }];
189
+ (0, _getOptions.default)(CONFIG, options => {
190
+ expect(options).toEqual(MERGED_CONFIG);
191
+ });
192
+ });
193
+ it('should override the hint if specified in the config', () => {
194
+ const CONFIG = {
195
+ alternativeHintField: 'description',
196
+ options: [{
197
+ value: 'a',
198
+ label: 'Alpha',
199
+ description: 'first'
200
+ }, {
201
+ value: 'b',
202
+ label: 'Bravo',
203
+ description: 'second'
204
+ }]
205
+ };
206
+ (0, _getOptions.default)(CONFIG, options => {
207
+ expect(options[0].hint).toEqual(CONFIG.options[0].description);
208
+ expect(options[1].hint).toEqual(CONFIG.options[1].description);
209
+ });
210
+ });
138
211
  });
139
212
  });
140
213
  });
@@ -4,24 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- var getItemInArray = function getItemInArray(arr, index) {
7
+ const getItemInArray = (arr, index) => {
14
8
  if (Array.isArray(arr)) {
15
9
  return arr[parseInt(index, 10)];
16
10
  }
17
11
  return undefined;
18
12
  };
19
- var isArrayProp = function isArrayProp(prop) {
20
- return prop.includes('[');
21
- };
22
- var getPropertyAndIndex = function getPropertyAndIndex(prop) {
23
- return prop.replace(']', '').split('[');
24
- };
13
+ const isArrayProp = prop => prop.includes('[');
14
+ const getPropertyAndIndex = prop => prop.replace(']', '').split('[');
25
15
 
26
16
  /**
27
17
  * Gets the value of a field within the top-level JSON form data,
@@ -38,16 +28,13 @@ var getPropertyAndIndex = function getPropertyAndIndex(prop) {
38
28
  * @param {string} fieldId The dot-separated path to the field.
39
29
  * @returns The value of the field specified.
40
30
  */
41
- var getSourceData = function getSourceData(data, fieldId) {
31
+ const getSourceData = (data, fieldId) => {
42
32
  if (!fieldId) {
43
33
  return undefined;
44
34
  }
45
- return fieldId.split('.').reduce(function (obj, prop) {
35
+ return fieldId.split('.').reduce((obj, prop) => {
46
36
  if (obj && isArrayProp(prop)) {
47
- var _getPropertyAndIndex = getPropertyAndIndex(prop),
48
- _getPropertyAndIndex2 = _slicedToArray(_getPropertyAndIndex, 2),
49
- actualProp = _getPropertyAndIndex2[0],
50
- index = _getPropertyAndIndex2[1];
37
+ const [actualProp, index] = getPropertyAndIndex(prop);
51
38
  return getItemInArray(obj[actualProp], index);
52
39
  }
53
40
  return obj ? obj[prop] : undefined;
@@ -2,49 +2,53 @@
2
2
 
3
3
  var _getSourceData = _interopRequireDefault(require("./getSourceData"));
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 _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
8
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
9
- describe('utils', function () {
10
- describe('Data', function () {
11
- describe('getSourceData', function () {
12
- it('should return the value at the top level', function () {
13
- var FIELD_ID = 'field';
14
- var VALUE = 'value';
15
- var DATA = _defineProperty({}, FIELD_ID, VALUE);
16
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
5
+ // Local imports
6
+
7
+ describe('utils', () => {
8
+ describe('Data', () => {
9
+ describe('getSourceData', () => {
10
+ it('should return the value at the top level', () => {
11
+ const FIELD_ID = 'field';
12
+ const VALUE = 'value';
13
+ const DATA = {
14
+ [FIELD_ID]: VALUE
15
+ };
16
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
17
17
  expect(value).toEqual(VALUE);
18
18
  });
19
- it('should handle boolean true', function () {
20
- var FIELD_ID = 'field';
21
- var VALUE = true;
22
- var DATA = _defineProperty({}, FIELD_ID, VALUE);
23
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
19
+ it('should handle boolean true', () => {
20
+ const FIELD_ID = 'field';
21
+ const VALUE = true;
22
+ const DATA = {
23
+ [FIELD_ID]: VALUE
24
+ };
25
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
24
26
  expect(value).toStrictEqual(true);
25
27
  });
26
- it('should handle boolean false', function () {
27
- var FIELD_ID = 'field';
28
- var VALUE = false;
29
- var DATA = _defineProperty({}, FIELD_ID, VALUE);
30
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
28
+ it('should handle boolean false', () => {
29
+ const FIELD_ID = 'field';
30
+ const VALUE = false;
31
+ const DATA = {
32
+ [FIELD_ID]: VALUE
33
+ };
34
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
31
35
  expect(value).toStrictEqual(false);
32
36
  });
33
- it('should return a nested value', function () {
34
- var FIELD_ID = 'field.nested';
35
- var VALUE = 'nested value';
36
- var DATA = {
37
+ it('should return a nested value', () => {
38
+ const FIELD_ID = 'field.nested';
39
+ const VALUE = 'nested value';
40
+ const DATA = {
37
41
  field: {
38
42
  nested: VALUE
39
43
  }
40
44
  };
41
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
45
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
42
46
  expect(value).toEqual(VALUE);
43
47
  });
44
- it('should return a deeply nested value', function () {
45
- var FIELD_ID = 'field.nested.and.even.further.down';
46
- var VALUE = 'deeply nested value';
47
- var DATA = {
48
+ it('should return a deeply nested value', () => {
49
+ const FIELD_ID = 'field.nested.and.even.further.down';
50
+ const VALUE = 'deeply nested value';
51
+ const DATA = {
48
52
  field: {
49
53
  nested: {
50
54
  and: {
@@ -57,95 +61,95 @@ describe('utils', function () {
57
61
  }
58
62
  }
59
63
  };
60
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
64
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
61
65
  expect(value).toEqual(VALUE);
62
66
  });
63
- it('should handle null data', function () {
64
- var FIELD_ID = 'field.nested';
65
- var value = (0, _getSourceData.default)(null, FIELD_ID);
67
+ it('should handle null data', () => {
68
+ const FIELD_ID = 'field.nested';
69
+ const value = (0, _getSourceData.default)(null, FIELD_ID);
66
70
  expect(value).toBeUndefined();
67
71
  });
68
- it('should handle undefined data', function () {
69
- var FIELD_ID = 'field.nested';
70
- var value = (0, _getSourceData.default)(undefined, FIELD_ID);
72
+ it('should handle undefined data', () => {
73
+ const FIELD_ID = 'field.nested';
74
+ const value = (0, _getSourceData.default)(undefined, FIELD_ID);
71
75
  expect(value).toBeUndefined();
72
76
  });
73
- it('should handle missing value', function () {
74
- var FIELD_ID = 'field.nested';
75
- var VALUE = 'other value';
76
- var DATA = {
77
+ it('should handle missing value', () => {
78
+ const FIELD_ID = 'field.nested';
79
+ const VALUE = 'other value';
80
+ const DATA = {
77
81
  field: {
78
82
  other: VALUE
79
83
  }
80
84
  };
81
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
85
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
82
86
  expect(value).toBeUndefined();
83
87
  });
84
- it('should handle null fieldId', function () {
85
- var VALUE = 'value';
86
- var DATA = {
88
+ it('should handle null fieldId', () => {
89
+ const VALUE = 'value';
90
+ const DATA = {
87
91
  field: VALUE
88
92
  };
89
- var value = (0, _getSourceData.default)(DATA, null);
93
+ const value = (0, _getSourceData.default)(DATA, null);
90
94
  expect(value).toBeUndefined();
91
95
  });
92
- it('should handle undefined fieldId', function () {
93
- var VALUE = 'value';
94
- var DATA = {
96
+ it('should handle undefined fieldId', () => {
97
+ const VALUE = 'value';
98
+ const DATA = {
95
99
  field: VALUE
96
100
  };
97
- var value = (0, _getSourceData.default)(DATA, undefined);
101
+ const value = (0, _getSourceData.default)(DATA, undefined);
98
102
  expect(value).toBeUndefined();
99
103
  });
100
- it('should handle empty fieldId', function () {
101
- var VALUE = 'value';
102
- var DATA = {
104
+ it('should handle empty fieldId', () => {
105
+ const VALUE = 'value';
106
+ const DATA = {
103
107
  field: VALUE
104
108
  };
105
- var value = (0, _getSourceData.default)(DATA, '');
109
+ const value = (0, _getSourceData.default)(DATA, '');
106
110
  expect(value).toBeUndefined();
107
111
  });
108
- it('should handle fieldId with trailing dot', function () {
109
- var FIELD_ID = 'field.';
110
- var VALUE = 'value';
111
- var DATA = {
112
+ it('should handle fieldId with trailing dot', () => {
113
+ const FIELD_ID = 'field.';
114
+ const VALUE = 'value';
115
+ const DATA = {
112
116
  field: VALUE
113
117
  };
114
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
118
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
115
119
  expect(value).toBeUndefined();
116
120
  });
117
- it('should handle fieldId with leading dot', function () {
118
- var FIELD_ID = '.field';
119
- var VALUE = 'value';
120
- var DATA = {
121
+ it('should handle fieldId with leading dot', () => {
122
+ const FIELD_ID = '.field';
123
+ const VALUE = 'value';
124
+ const DATA = {
121
125
  field: VALUE
122
126
  };
123
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
127
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
124
128
  expect(value).toBeUndefined();
125
129
  });
126
- it('should handle fieldId that is just a dot', function () {
127
- var FIELD_ID = '.';
128
- var VALUE = 'value';
129
- var DATA = {
130
+ it('should handle fieldId that is just a dot', () => {
131
+ const FIELD_ID = '.';
132
+ const VALUE = 'value';
133
+ const DATA = {
130
134
  field: VALUE
131
135
  };
132
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
136
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
133
137
  expect(value).toBeUndefined();
134
138
  });
135
- it('should handle a reference to an array item', function () {
136
- var FIELD_ID = 'items[1]';
137
- var ALPHA = 'alpha';
138
- var BETA = 'beta';
139
- var DATA = {
139
+ it('should handle a reference to an array item', () => {
140
+ const FIELD_ID = 'items[1]';
141
+ const ALPHA = 'alpha';
142
+ const BETA = 'beta';
143
+ const DATA = {
140
144
  items: [ALPHA, BETA]
141
145
  };
142
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
146
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
143
147
  expect(value).toEqual(BETA);
144
148
  });
145
- it('should handle a reference to an array that does not exist', function () {
146
- var FIELD_ID = 'items[1]';
147
- var DATA = {};
148
- var value = (0, _getSourceData.default)(DATA, FIELD_ID);
149
+ it('should handle a reference to an array that does not exist', () => {
150
+ const FIELD_ID = 'items[1]';
151
+ const DATA = {};
152
+ const value = (0, _getSourceData.default)(DATA, FIELD_ID);
149
153
  expect(value).toBeUndefined();
150
154
  });
151
155
  });
@@ -16,7 +16,7 @@ var _setupRefDataUrlForComponent = _interopRequireDefault(require("./setupRefDat
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  // Local imports
18
18
 
19
- var Data = {
19
+ const Data = {
20
20
  applyFormula: _applyFormula.default,
21
21
  getAutocompleteSource: _getAutocompleteSource.default,
22
22
  getDataPath: _getDataPath.default,
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /**
8
+ * Combines refdata options with custom options with the use of `from_refdata` in the custom option
9
+ * Allowing for nesting of components within refdata lists of checkboxes or radios
10
+ * Also allows appending custom options to refdata options list
11
+ * @param {Array} refdataOptions The list of options coming from refdata
12
+ * @param {Array} options The list of options being defined in the form
13
+ * @returns A combined list of refdata options and custom options to be rendered
14
+ */
15
+ const nestInRefdataOptions = (refdataOptions, options) => {
16
+ const nestedRefdataOptions = refdataOptions;
17
+ options.forEach((option, index) => {
18
+ if (option.refdata_match) {
19
+ const refdataMatch = option.refdata_match;
20
+ const refdataKey = Object.keys(refdataMatch)[0];
21
+ const refdataIndex = refdataOptions.findIndex(refdataOption => refdataOption[refdataKey] === refdataMatch[refdataKey]);
22
+ if (refdataIndex >= 0) {
23
+ nestedRefdataOptions[refdataIndex] = {
24
+ ...refdataOptions[refdataIndex],
25
+ nested: option.nested
26
+ };
27
+ }
28
+ }
29
+
30
+ // checks if already exists in `nestedRefdataOptions` else
31
+ // re-renders would cause array to grow with each render
32
+ if (option.combineWithRefdata && !nestedRefdataOptions.includes(option)) {
33
+ // adds previous array entry if string e.g. "or" operator
34
+ if (index > 0 && typeof options[index - 1] === 'string') {
35
+ nestedRefdataOptions.push(options[index - 1]);
36
+ }
37
+ nestedRefdataOptions.push(option);
38
+ }
39
+ });
40
+ return nestedRefdataOptions;
41
+ };
42
+ var _default = exports.default = nestInRefdataOptions;