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

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 (372) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
  11. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  12. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  13. package/dist/components/CollectionSummary/RenderListView.js +52 -46
  14. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  15. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  16. package/dist/components/CollectionSummary/SummaryCard.js +152 -110
  17. package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
  18. package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
  19. package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  23. package/dist/components/FormComponent/Collection.js +108 -74
  24. package/dist/components/FormComponent/Collection.test.js +1081 -909
  25. package/dist/components/FormComponent/Container.js +39 -40
  26. package/dist/components/FormComponent/Container.test.js +412 -312
  27. package/dist/components/FormComponent/FormComponent.js +72 -69
  28. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  29. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  30. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  31. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  32. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  33. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  34. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  35. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  36. package/dist/components/FormComponent/helpers/index.js +4 -4
  37. package/dist/components/FormPage/FormPage.js +80 -65
  38. package/dist/components/FormPage/FormPage.test.js +163 -127
  39. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  40. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  41. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  42. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  43. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  44. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  45. package/dist/components/FormRenderer/handlers/index.js +1 -1
  46. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  47. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  48. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  49. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  50. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  51. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  52. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
  53. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  54. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  55. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  57. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  58. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  59. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  60. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  61. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  62. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  63. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  64. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  65. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  66. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  67. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  68. package/dist/components/FormRenderer/helpers/index.js +1 -1
  69. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  70. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  71. package/dist/components/FormRenderer/onPageAction.js +39 -43
  72. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  73. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  74. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  75. package/dist/components/PageActions/ActionButton.js +15 -12
  76. package/dist/components/PageActions/ActionButton.test.js +78 -56
  77. package/dist/components/PageActions/PageActions.js +10 -10
  78. package/dist/components/PageActions/PageActions.test.js +115 -86
  79. package/dist/components/SummaryList/GroupAction.js +17 -9
  80. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  81. package/dist/components/SummaryList/RowAction.js +16 -11
  82. package/dist/components/SummaryList/RowAction.test.js +33 -37
  83. package/dist/components/SummaryList/SummaryList.js +34 -21
  84. package/dist/components/SummaryList/SummaryList.scss +15 -0
  85. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  86. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  87. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  88. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  89. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  90. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  91. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  92. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  93. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/index.js +1 -1
  96. package/dist/components/TaskList/Task.js +29 -19
  97. package/dist/components/TaskList/Task.test.js +76 -83
  98. package/dist/components/TaskList/TaskList.js +92 -49
  99. package/dist/components/TaskList/TaskList.scss +24 -0
  100. package/dist/components/TaskList/TaskList.test.js +255 -113
  101. package/dist/components/TaskList/TaskState.js +5 -7
  102. package/dist/components/TaskList/TaskState.test.js +45 -52
  103. package/dist/components/index.js +7 -7
  104. package/dist/context/HooksContext/HooksContext.js +80 -57
  105. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  106. package/dist/context/HooksContext/index.js +4 -3
  107. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  108. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  109. package/dist/context/ValidationContext/index.js +4 -3
  110. package/dist/context/index.js +2 -2
  111. package/dist/hooks/index.js +10 -9
  112. package/dist/hooks/useAxios.js +40 -14
  113. package/dist/hooks/useGetRequest.js +97 -61
  114. package/dist/hooks/useHooks.js +3 -1
  115. package/dist/hooks/useRefData.js +39 -26
  116. package/dist/hooks/useValidation.js +3 -1
  117. package/dist/index.js +14 -13
  118. package/dist/models/CollectionLabels.js +1 -1
  119. package/dist/models/ComponentTypes.js +25 -25
  120. package/dist/models/EventTypes.js +4 -4
  121. package/dist/models/FormPages.js +4 -4
  122. package/dist/models/FormTypes.js +8 -8
  123. package/dist/models/HubFormats.js +3 -3
  124. package/dist/models/PageAction.js +38 -44
  125. package/dist/models/TaskStates.js +28 -29
  126. package/dist/models/index.js +9 -9
  127. package/dist/setupTests.js +31 -30
  128. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  129. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  130. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  131. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  132. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  133. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  134. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  135. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  136. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  137. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  138. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  139. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  140. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
  141. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
  142. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  144. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  145. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  146. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  147. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  148. package/dist/utils/CheckYourAnswers/index.js +1 -1
  149. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  150. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  151. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  152. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  153. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  154. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  155. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  156. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  157. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  158. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  159. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  160. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  161. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  162. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  163. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  164. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  165. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  166. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  167. package/dist/utils/CollectionPage/index.js +1 -1
  168. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  169. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  170. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  171. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  172. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  173. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  174. package/dist/utils/Component/addShowWhen.js +8 -4
  175. package/dist/utils/Component/addShowWhen.test.js +37 -37
  176. package/dist/utils/Component/applyToComponentTree.js +18 -18
  177. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  178. package/dist/utils/Component/cleanAttributes.js +13 -10
  179. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  180. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  181. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  182. package/dist/utils/Component/getComponent.js +94 -88
  183. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  184. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  185. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  186. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  187. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  188. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  190. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  191. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  192. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  193. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  194. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  196. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  197. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  199. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  200. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  202. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  203. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  204. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  205. package/dist/utils/Component/getDefaultValue.js +8 -6
  206. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  207. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  208. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  209. package/dist/utils/Component/index.js +1 -1
  210. package/dist/utils/Component/isEditable.js +4 -2
  211. package/dist/utils/Component/isEditable.test.js +15 -14
  212. package/dist/utils/Component/optionIsSelected.js +6 -1
  213. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  214. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  215. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  216. package/dist/utils/Component/showComponent.js +1 -1
  217. package/dist/utils/Component/showComponent.test.js +28 -28
  218. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  219. package/dist/utils/Condition/index.js +1 -1
  220. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  221. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  222. package/dist/utils/Condition/meetsCondition.js +25 -16
  223. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  224. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  225. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  226. package/dist/utils/Condition/setupConditions.js +18 -13
  227. package/dist/utils/Condition/setupConditions.test.js +7 -7
  228. package/dist/utils/Container/getEditableComponents.js +5 -3
  229. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  230. package/dist/utils/Container/index.js +1 -1
  231. package/dist/utils/Container/setupNesting.js +20 -16
  232. package/dist/utils/Container/setupNesting.test.js +30 -27
  233. package/dist/utils/Container/showContainer.js +7 -3
  234. package/dist/utils/Container/showContainer.test.js +30 -30
  235. package/dist/utils/Data/applyFormula.js +48 -38
  236. package/dist/utils/Data/applyFormula.test.js +20 -20
  237. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  238. package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
  239. package/dist/utils/Data/getDataPath.js +28 -18
  240. package/dist/utils/Data/getDataPath.test.js +12 -12
  241. package/dist/utils/Data/getOptions.js +30 -24
  242. package/dist/utils/Data/getOptions.test.js +27 -27
  243. package/dist/utils/Data/getSourceData.js +19 -6
  244. package/dist/utils/Data/getSourceData.test.js +80 -84
  245. package/dist/utils/Data/index.js +1 -1
  246. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  247. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  248. package/dist/utils/Data/refDataToOptions.js +13 -10
  249. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  250. package/dist/utils/Data/setDataItem.js +8 -7
  251. package/dist/utils/Data/setDataItem.test.js +37 -37
  252. package/dist/utils/Data/setupFormData.js +21 -13
  253. package/dist/utils/Data/setupFormData.test.js +50 -51
  254. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  255. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  256. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  257. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  258. package/dist/utils/FormPage/getConditionalText.js +3 -3
  259. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  260. package/dist/utils/FormPage/getFormPage.js +16 -15
  261. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  262. package/dist/utils/FormPage/getFormPages.js +12 -7
  263. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  264. package/dist/utils/FormPage/getPageActions.js +15 -9
  265. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  266. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  267. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  268. package/dist/utils/FormPage/index.js +4 -2
  269. package/dist/utils/FormPage/showFormPage.js +7 -3
  270. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  271. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  272. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  273. package/dist/utils/FormPage/useComponent.js +28 -21
  274. package/dist/utils/FormPage/useComponent.test.js +79 -77
  275. package/dist/utils/Format/formatData.js +1 -1
  276. package/dist/utils/Format/formatData.test.js +18 -18
  277. package/dist/utils/Format/formatDataForComponent.js +6 -5
  278. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  279. package/dist/utils/Format/formatDataForForm.js +8 -6
  280. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  281. package/dist/utils/Format/formatDataForPage.js +5 -4
  282. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  283. package/dist/utils/Format/index.js +1 -1
  284. package/dist/utils/Hub/getFormHub.js +1 -1
  285. package/dist/utils/Hub/getFormHub.test.js +31 -28
  286. package/dist/utils/Hub/index.js +1 -1
  287. package/dist/utils/Meta/constants.js +2 -2
  288. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  289. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  290. package/dist/utils/Meta/documents/index.js +1 -1
  291. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  292. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  293. package/dist/utils/Meta/index.js +1 -1
  294. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  295. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  296. package/dist/utils/Operate/getFirstOf.js +5 -5
  297. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  298. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  299. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  300. package/dist/utils/Operate/getLength.js +50 -0
  301. package/dist/utils/Operate/getLength.test.js +89 -0
  302. package/dist/utils/Operate/index.js +1 -1
  303. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  304. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  305. package/dist/utils/Operate/runPageOperations.js +9 -7
  306. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  307. package/dist/utils/Operate/setValueInFormData.js +2 -2
  308. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  309. package/dist/utils/Operate/shouldRun.js +6 -6
  310. package/dist/utils/Operate/shouldRun.test.js +27 -21
  311. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  312. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  313. package/dist/utils/Validate/additional/index.js +6 -6
  314. package/dist/utils/Validate/additional/index.test.js +12 -12
  315. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  317. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  318. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  319. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  320. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  321. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  322. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  323. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  325. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  326. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  327. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  328. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  329. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  330. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  331. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  333. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  334. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  335. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  337. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  338. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  339. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  340. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  341. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  342. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  343. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  344. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  345. package/dist/utils/Validate/additional/utils.js +22 -9
  346. package/dist/utils/Validate/index.js +1 -1
  347. package/dist/utils/Validate/validateCollection.js +25 -19
  348. package/dist/utils/Validate/validateCollection.test.js +66 -74
  349. package/dist/utils/Validate/validateComponent.js +21 -18
  350. package/dist/utils/Validate/validateComponent.test.js +176 -166
  351. package/dist/utils/Validate/validateContainer.js +20 -15
  352. package/dist/utils/Validate/validateContainer.test.js +52 -58
  353. package/dist/utils/Validate/validateDate.js +21 -15
  354. package/dist/utils/Validate/validateDate.test.js +32 -31
  355. package/dist/utils/Validate/validateEmail.js +8 -6
  356. package/dist/utils/Validate/validateEmail.test.js +25 -25
  357. package/dist/utils/Validate/validateMultifile.js +7 -5
  358. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  359. package/dist/utils/Validate/validatePage.js +22 -19
  360. package/dist/utils/Validate/validatePage.test.js +203 -215
  361. package/dist/utils/Validate/validateRegex.js +5 -3
  362. package/dist/utils/Validate/validateRegex.test.js +14 -14
  363. package/dist/utils/Validate/validateRequired.js +6 -4
  364. package/dist/utils/Validate/validateRequired.test.js +18 -18
  365. package/dist/utils/Validate/validateTextArea.js +6 -4
  366. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  367. package/dist/utils/Validate/validateTime.js +26 -11
  368. package/dist/utils/Validate/validateTime.test.js +62 -16
  369. package/dist/utils/index.js +9 -7
  370. package/package.json +2 -2
  371. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  372. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -4,20 +4,23 @@ var _react = require("@testing-library/react");
4
4
  var _models = require("../../../models");
5
5
  var _getComponent = _interopRequireDefault(require("../getComponent"));
6
6
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
- // Global imports
8
-
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; } // Global imports
9
13
  // Local imports
10
-
11
- describe('utils.Component.get', () => {
12
- it('should return an appropriately rendered time component', () => {
13
- const ID = 'test-id';
14
- const FIELD_ID = 'field-id';
15
- const LABEL = 'label';
16
- const ON_CHANGE_CALLS = [];
17
- const ON_CHANGE = e => {
14
+ describe('utils.Component.get', function () {
15
+ it('should return an appropriately rendered time component', function () {
16
+ var ID = 'test-id';
17
+ var FIELD_ID = 'field-id';
18
+ var LABEL = 'label';
19
+ var ON_CHANGE_CALLS = [];
20
+ var ON_CHANGE = function ON_CHANGE(e) {
18
21
  ON_CHANGE_CALLS.push(e.target);
19
22
  };
20
- const COMPONENT = {
23
+ var COMPONENT = {
21
24
  type: _models.ComponentTypes.TIME,
22
25
  id: ID,
23
26
  fieldId: FIELD_ID,
@@ -25,20 +28,24 @@ describe('utils.Component.get', () => {
25
28
  onChange: ON_CHANGE,
26
29
  'data-testid': ID
27
30
  };
28
- const {
29
- container
30
- } = (0, _react.render)((0, _getComponent.default)(COMPONENT));
31
- const [formGroup, timeInput] = (0, _react.getAllByTestId)(container, ID);
31
+ var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
32
+ container = _render.container;
33
+ var _getAllByTestId = (0, _react.getAllByTestId)(container, ID),
34
+ _getAllByTestId2 = _slicedToArray(_getAllByTestId, 2),
35
+ formGroup = _getAllByTestId2[0],
36
+ timeInput = _getAllByTestId2[1];
32
37
  expect(formGroup.tagName).toEqual('DIV');
33
38
  expect(formGroup.classList).toContain('govuk-form-group');
34
- const label = formGroup.childNodes[0];
39
+ var label = formGroup.childNodes[0];
35
40
  expect(label.innerHTML).toContain(LABEL);
36
41
  expect(label.getAttribute('for')).toEqual(ID);
37
42
  expect(timeInput.tagName).toEqual('DIV');
38
43
  expect(timeInput.classList).toContain('govuk-date-input');
39
44
  expect(timeInput.id).toEqual(ID);
40
- let onChangeCalls = ON_CHANGE_CALLS.length;
41
- const [hourItem, minuteItem] = timeInput.childNodes;
45
+ var onChangeCalls = ON_CHANGE_CALLS.length;
46
+ var _timeInput$childNodes = _slicedToArray(timeInput.childNodes, 2),
47
+ hourItem = _timeInput$childNodes[0],
48
+ minuteItem = _timeInput$childNodes[1];
42
49
  [{
43
50
  id: 'hour',
44
51
  label: 'Hour',
@@ -51,10 +58,12 @@ describe('utils.Component.get', () => {
51
58
  item: minuteItem,
52
59
  value: '11',
53
60
  expectedValue: '5:11'
54
- }].forEach(part => {
61
+ }].forEach(function (part) {
55
62
  expect(part.item.tagName).toEqual('DIV');
56
63
  expect(part.item.classList).toContain('govuk-date-input__item');
57
- const [inputLabel, input] = part.item.childNodes[0].childNodes;
64
+ var _part$item$childNodes = _slicedToArray(part.item.childNodes[0].childNodes, 2),
65
+ inputLabel = _part$item$childNodes[0],
66
+ input = _part$item$childNodes[1];
58
67
  expect(inputLabel.tagName).toEqual('LABEL');
59
68
  expect(inputLabel.classList).toContain('govuk-label');
60
69
  expect(inputLabel.textContent).toEqual(part.label);
@@ -4,8 +4,8 @@ var _getComponent = _interopRequireDefault(require("../getComponent"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils.Component.get', () => {
8
- it('should return null for an unknown type', () => {
7
+ describe('utils.Component.get', function () {
8
+ it('should return null for an unknown type', function () {
9
9
  expect((0, _getComponent.default)({
10
10
  type: 'unknown'
11
11
  })).toBeNull();
@@ -8,19 +8,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
8
8
 
9
9
  // Local imports
10
10
 
11
- describe('utils.Component.get', () => {
12
- it('should return an appropriately rendered warning-text component', () => {
13
- const ID = 'test-id';
14
- const CONTENT = 'Warning Text';
15
- const COMPONENT = {
11
+ describe('utils.Component.get', function () {
12
+ it('should return an appropriately rendered warning-text component', function () {
13
+ var ID = 'test-id';
14
+ var CONTENT = 'Warning Text';
15
+ var COMPONENT = {
16
16
  type: _models.ComponentTypes.WARNING,
17
17
  content: CONTENT,
18
18
  'data-testid': ID
19
19
  };
20
- const {
21
- container
22
- } = (0, _react.render)((0, _getComponent.default)(COMPONENT));
23
- const warningText = (0, _react.getByTestId)(container, ID);
20
+ var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
21
+ container = _render.container;
22
+ var warningText = (0, _react.getByTestId)(container, ID);
24
23
  expect(warningText.innerHTML).toContain(CONTENT);
25
24
  expect(warningText.tagName).toEqual('DIV');
26
25
  expect(warningText.classList).toContain('govuk-warning-text');
@@ -6,16 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _models = require("../../models");
8
8
  var _getDefaultValueFromConfig = _interopRequireDefault(require("./getDefaultValueFromConfig"));
9
+ var _DEFAULT_VALUES;
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- const DEFAULT_VALUES = {
11
- [_models.ComponentTypes.COLLECTION]: [],
12
- [_models.ComponentTypes.CONTAINER]: {}
13
- };
14
- const getDefaultValue = (component, formData) => {
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function _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; }
13
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
+ 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); }
15
+ var DEFAULT_VALUES = (_DEFAULT_VALUES = {}, _defineProperty(_DEFAULT_VALUES, _models.ComponentTypes.COLLECTION, []), _defineProperty(_DEFAULT_VALUES, _models.ComponentTypes.CONTAINER, {}), _DEFAULT_VALUES);
16
+ var getDefaultValue = function getDefaultValue(component, formData) {
15
17
  if (!component) {
16
18
  return '';
17
19
  }
18
- const defaultValue = (0, _getDefaultValueFromConfig.default)(component, formData);
20
+ var defaultValue = (0, _getDefaultValueFromConfig.default)(component, formData);
19
21
  return defaultValue || DEFAULT_VALUES[component.type] || '';
20
22
  };
21
23
  var _default = exports.default = getDefaultValue;
@@ -3,43 +3,43 @@
3
3
  var _models = require("../../models");
4
4
  var _getDefaultValue = _interopRequireDefault(require("./getDefaultValue"));
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
- describe('utils.Component.defaultValue', () => {
7
- it('should return an empty string if the component is undefined', () => {
6
+ describe('utils.Component.defaultValue', function () {
7
+ it('should return an empty string if the component is undefined', function () {
8
8
  expect((0, _getDefaultValue.default)(undefined)).toEqual('');
9
9
  });
10
- it('should return an empty string if the component is null', () => {
10
+ it('should return an empty string if the component is null', function () {
11
11
  expect((0, _getDefaultValue.default)(null)).toEqual('');
12
12
  });
13
- it('should return an empty string if the component has no type', () => {
13
+ it('should return an empty string if the component has no type', function () {
14
14
  expect((0, _getDefaultValue.default)({})).toEqual('');
15
15
  });
16
- it('should return an empty string if the component type is null', () => {
16
+ it('should return an empty string if the component type is null', function () {
17
17
  expect((0, _getDefaultValue.default)({
18
18
  type: null
19
19
  })).toEqual('');
20
20
  });
21
- it('should return an empty string if the component type is undefined', () => {
21
+ it('should return an empty string if the component type is undefined', function () {
22
22
  expect((0, _getDefaultValue.default)({
23
23
  type: undefined
24
24
  })).toEqual('');
25
25
  });
26
- it("should return an empty array if the component type is 'collection'", () => {
26
+ it("should return an empty array if the component type is 'collection'", function () {
27
27
  expect((0, _getDefaultValue.default)({
28
28
  type: _models.ComponentTypes.COLLECTION
29
29
  })).toEqual([]);
30
30
  });
31
- it("should return an empty object if the component type is 'container'", () => {
31
+ it("should return an empty object if the component type is 'container'", function () {
32
32
  expect((0, _getDefaultValue.default)({
33
33
  type: _models.ComponentTypes.CONTAINER
34
34
  })).toEqual({});
35
35
  });
36
- it('should return defaultValue if the component has defaultValue prop', () => {
36
+ it('should return defaultValue if the component has defaultValue prop', function () {
37
37
  expect((0, _getDefaultValue.default)({
38
38
  type: _models.ComponentTypes.AUTOCOMPLETE,
39
39
  defaultValue: 'test'
40
40
  })).toEqual('test');
41
41
  });
42
- it('should return defaultObjectValue if the component has defaultObjectValue prop', () => {
42
+ it('should return defaultObjectValue if the component has defaultObjectValue prop', function () {
43
43
  expect((0, _getDefaultValue.default)({
44
44
  type: _models.ComponentTypes.AUTOCOMPLETE,
45
45
  defaultObjectValue: {
@@ -49,9 +49,9 @@ describe('utils.Component.defaultValue', () => {
49
49
  testText: 'text'
50
50
  });
51
51
  });
52
- Object.values(_models.ComponentTypes).forEach(value => {
52
+ Object.values(_models.ComponentTypes).forEach(function (value) {
53
53
  if (![_models.ComponentTypes.COLLECTION, _models.ComponentTypes.CONTAINER, _models.ComponentTypes.FILE].includes(value)) {
54
- it("should return an empty object if the component type is '".concat(value, "'"), () => {
54
+ it("should return an empty object if the component type is '".concat(value, "'"), function () {
55
55
  expect((0, _getDefaultValue.default)({
56
56
  type: _models.ComponentTypes.TEXT
57
57
  })).toEqual('');
@@ -8,14 +8,19 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
8
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
9
9
  var _models = require("../../models");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- // Global imports.
12
-
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Global imports.
13
17
  // Local imports.
14
-
15
- const hasDefaultValue = component => component.defaultValue || component.defaultObjectValue;
16
- const getDefaultForDate = date => {
17
- const dateFormat = /^(\d{1,2})-\d{1,2}-(\d{4})$/;
18
- const defaultDate = dateFormat.test(date.defaultValue) ? date.defaultValue : null;
18
+ var hasDefaultValue = function hasDefaultValue(component) {
19
+ return component.defaultValue || component.defaultObjectValue;
20
+ };
21
+ var getDefaultForDate = function getDefaultForDate(date) {
22
+ var dateFormat = /^(\d{1,2})-\d{1,2}-(\d{4})$/;
23
+ var defaultDate = dateFormat.test(date.defaultValue) ? date.defaultValue : null;
19
24
  return date.defaultValue === 'today' ? (0, _dayjs.default)().format('DD-MM-YYYY') : defaultDate;
20
25
  };
21
26
 
@@ -56,33 +61,27 @@ const getDefaultForDate = date => {
56
61
  * @param {object} data The current formData.
57
62
  * @returns An object to be used as the component's default value.
58
63
  */
59
- const setupDefaultObjectValue = (defaultObject, data) => {
60
- const defaultObj = {
61
- ...defaultObject
62
- };
63
- let result = null;
64
+ var setupDefaultObjectValue = function setupDefaultObjectValue(defaultObject, data) {
65
+ var defaultObj = _objectSpread({}, defaultObject);
66
+ var result = null;
64
67
  // This handles objects using the previous syntax where
65
68
  // defaultObject.literal and defaultObject.sourced won't
66
69
  // be defined.
67
70
  if (!defaultObj.literal && !defaultObj.sourced) {
68
- defaultObj.sourced = {
69
- ...defaultObj
70
- };
71
+ defaultObj.sourced = _objectSpread({}, defaultObj);
71
72
  }
72
73
  // defaultObject.literal is an object with values that should
73
74
  // be copied as-is to the result object.
74
75
  if (defaultObj.literal) {
75
- result = {
76
- ...defaultObj.literal
77
- };
76
+ result = _objectSpread({}, defaultObj.literal);
78
77
  }
79
78
  // defaultObject.sourced is an object with values that should
80
79
  // be used as field names to get values from data.
81
80
  if (defaultObj.sourced) {
82
81
  var _result;
83
82
  result = (_result = result) !== null && _result !== void 0 ? _result : {};
84
- Object.keys(defaultObj.sourced).every(key => {
85
- const sourcedValue = typeof defaultObj.sourced[key] === 'string' && (0, _getSourceData.default)(data, defaultObj.sourced[key]);
83
+ Object.keys(defaultObj.sourced).every(function (key) {
84
+ var sourcedValue = typeof defaultObj.sourced[key] === 'string' && (0, _getSourceData.default)(data, defaultObj.sourced[key]);
86
85
  if (sourcedValue === undefined && defaultObj.skipIfSourceInvalid) {
87
86
  result = null;
88
87
  return false;
@@ -93,7 +92,7 @@ const setupDefaultObjectValue = (defaultObject, data) => {
93
92
  }
94
93
  return result;
95
94
  };
96
- const getDefaultValueFromConfig = (component, data) => {
95
+ var getDefaultValueFromConfig = function getDefaultValueFromConfig(component, data) {
97
96
  if (!hasDefaultValue(component)) {
98
97
  return null;
99
98
  }
@@ -102,7 +101,7 @@ const getDefaultValueFromConfig = (component, data) => {
102
101
  return getDefaultForDate(component, data);
103
102
  default:
104
103
  {
105
- const defaultValue = component.defaultObjectValue ? setupDefaultObjectValue(component.defaultObjectValue, data) : null;
104
+ var defaultValue = component.defaultObjectValue ? setupDefaultObjectValue(component.defaultObjectValue, data) : null;
106
105
  return defaultValue || component.defaultValue || null;
107
106
  }
108
107
  }
@@ -8,65 +8,65 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
8
8
 
9
9
  // Local imports.
10
10
 
11
- describe('utils.component.defaultValueFromConfig', () => {
12
- it('should return null if a component has no default value defined', () => {
13
- const result = (0, _getDefaultValueFromConfig.default)({}, {});
11
+ describe('utils.component.defaultValueFromConfig', function () {
12
+ it('should return null if a component has no default value defined', function () {
13
+ var result = (0, _getDefaultValueFromConfig.default)({}, {});
14
14
  expect(result).toEqual(null);
15
15
  });
16
- it('should return a normal default value if one is defined', () => {
17
- const COMPONENT = {
16
+ it('should return a normal default value if one is defined', function () {
17
+ var COMPONENT = {
18
18
  defaultValue: 'value'
19
19
  };
20
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
20
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
21
21
  expect(result).toEqual('value');
22
22
  });
23
- it('should return an object default value if one is defined', () => {
24
- const COMPONENT = {
23
+ it('should return an object default value if one is defined', function () {
24
+ var COMPONENT = {
25
25
  defaultObjectValue: {
26
26
  alpha: 'one',
27
27
  bravo: 'two'
28
28
  }
29
29
  };
30
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
30
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
31
31
  expect(result).toEqual({
32
32
  alpha: 'one',
33
33
  bravo: 'two'
34
34
  });
35
35
  });
36
- it('should return the defaultObjectValue if both defaultObjectValue and defaultValue are defined', () => {
37
- const COMPONENT = {
36
+ it('should return the defaultObjectValue if both defaultObjectValue and defaultValue are defined', function () {
37
+ var COMPONENT = {
38
38
  defaultValue: 'zero',
39
39
  defaultObjectValue: {
40
40
  alpha: 'one',
41
41
  bravo: 'two'
42
42
  }
43
43
  };
44
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
44
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
45
45
  expect(result).toEqual({
46
46
  alpha: 'one',
47
47
  bravo: 'two'
48
48
  });
49
49
  });
50
- it('should return an object default with interpolated fields if applicable', () => {
51
- const COMPONENT = {
50
+ it('should return an object default with interpolated fields if applicable', function () {
51
+ var COMPONENT = {
52
52
  defaultObjectValue: {
53
53
  alpha: 'testObject.testText',
54
54
  bravo: 'testObject.testText'
55
55
  }
56
56
  };
57
- const DATA = {
57
+ var DATA = {
58
58
  testObject: {
59
59
  testText: 'value'
60
60
  }
61
61
  };
62
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
62
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
63
63
  expect(result).toEqual({
64
64
  alpha: 'value',
65
65
  bravo: 'value'
66
66
  });
67
67
  });
68
- it('should allow specific sourced and literal object values to be defined', () => {
69
- const COMPONENT = {
68
+ it('should allow specific sourced and literal object values to be defined', function () {
69
+ var COMPONENT = {
70
70
  defaultObjectValue: {
71
71
  sourced: {
72
72
  value1: 'field1.value',
@@ -78,7 +78,7 @@ describe('utils.component.defaultValueFromConfig', () => {
78
78
  }
79
79
  }
80
80
  };
81
- const DATA = {
81
+ var DATA = {
82
82
  field1: {
83
83
  value: 'sourced text 1'
84
84
  },
@@ -86,7 +86,7 @@ describe('utils.component.defaultValueFromConfig', () => {
86
86
  value: 'sourced text 2'
87
87
  }
88
88
  };
89
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
89
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
90
90
  expect(result).toMatchObject({
91
91
  value1: 'sourced text 1',
92
92
  value2: 'sourced text 2',
@@ -94,8 +94,8 @@ describe('utils.component.defaultValueFromConfig', () => {
94
94
  value4: 'literal text 2'
95
95
  });
96
96
  });
97
- it('should handle the skipIfSourceInvalid flag and return null if a sourced value cannot be found', () => {
98
- const COMPONENT = {
97
+ it('should handle the skipIfSourceInvalid flag and return null if a sourced value cannot be found', function () {
98
+ var COMPONENT = {
99
99
  defaultObjectValue: {
100
100
  skipIfSourceInvalid: true,
101
101
  sourced: {
@@ -108,7 +108,7 @@ describe('utils.component.defaultValueFromConfig', () => {
108
108
  }
109
109
  }
110
110
  };
111
- const DATA = {
111
+ var DATA = {
112
112
  field1: {
113
113
  value: 'sourced text 1'
114
114
  },
@@ -116,24 +116,24 @@ describe('utils.component.defaultValueFromConfig', () => {
116
116
  value: 'sourced text 2'
117
117
  }
118
118
  };
119
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
119
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, DATA);
120
120
  expect(result).toEqual(null);
121
121
  });
122
- describe('for a date component', () => {
123
- it('should return a normal default value', () => {
124
- const COMPONENT = {
122
+ describe('for a date component', function () {
123
+ it('should return a normal default value', function () {
124
+ var COMPONENT = {
125
125
  type: _models.ComponentTypes.DATE,
126
126
  defaultValue: '01-01-2000'
127
127
  };
128
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
128
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
129
129
  expect(result).toEqual('01-01-2000');
130
130
  });
131
- it('should handle specific default values for date', () => {
132
- const COMPONENT = {
131
+ it('should handle specific default values for date', function () {
132
+ var COMPONENT = {
133
133
  type: _models.ComponentTypes.DATE,
134
134
  defaultValue: 'today'
135
135
  };
136
- const result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
136
+ var result = (0, _getDefaultValueFromConfig.default)(COMPONENT, {});
137
137
  expect(result).toEqual((0, _dayjs.default)().format('DD-MM-YYYY'));
138
138
  });
139
139
  });
@@ -14,7 +14,7 @@ var _setupContainerComponentsPath = _interopRequireDefault(require("./setupConta
14
14
  var _showComponent = _interopRequireDefault(require("./showComponent"));
15
15
  var _wrapInFormGroup = _interopRequireDefault(require("./wrapInFormGroup"));
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- const Component = {
17
+ var Component = {
18
18
  clean: _cleanAttributes.default,
19
19
  defaultValue: _getDefaultValue.default,
20
20
  defaultValueFromConfig: _getDefaultValueFromConfig.default,
@@ -7,6 +7,8 @@ exports.default = exports.EDITABLE_TYPES = void 0;
7
7
  var _models = require("../../models");
8
8
  // Local imports
9
9
 
10
- const EDITABLE_TYPES = exports.EDITABLE_TYPES = [_models.ComponentTypes.AUTOCOMPLETE, _models.ComponentTypes.CALCULATION, _models.ComponentTypes.CHECKBOXES, _models.ComponentTypes.COLLECTION_SUMMARY, _models.ComponentTypes.DATE, _models.ComponentTypes.EMAIL, _models.ComponentTypes.FILE, _models.ComponentTypes.MULTI_FILE, _models.ComponentTypes.PHONE_NUMBER, _models.ComponentTypes.RADIOS, _models.ComponentTypes.SELECT, _models.ComponentTypes.TEXT, _models.ComponentTypes.TEXT_AREA, _models.ComponentTypes.TIME];
11
- const isEditable = options => EDITABLE_TYPES.includes(options === null || options === void 0 ? void 0 : options.type) || (options === null || options === void 0 ? void 0 : options.isEditable) || false;
10
+ var EDITABLE_TYPES = exports.EDITABLE_TYPES = [_models.ComponentTypes.AUTOCOMPLETE, _models.ComponentTypes.CALCULATION, _models.ComponentTypes.CHECKBOXES, _models.ComponentTypes.COLLECTION_SUMMARY, _models.ComponentTypes.DATE, _models.ComponentTypes.EMAIL, _models.ComponentTypes.FILE, _models.ComponentTypes.MULTI_FILE, _models.ComponentTypes.PHONE_NUMBER, _models.ComponentTypes.RADIOS, _models.ComponentTypes.SELECT, _models.ComponentTypes.TEXT, _models.ComponentTypes.TEXT_AREA, _models.ComponentTypes.TIME];
11
+ var isEditable = function isEditable(options) {
12
+ return EDITABLE_TYPES.includes(options === null || options === void 0 ? void 0 : options.type) || (options === null || options === void 0 ? void 0 : options.isEditable) || false;
13
+ };
12
14
  var _default = exports.default = isEditable;
@@ -1,38 +1,39 @@
1
1
  "use strict";
2
2
 
3
+ 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); }
3
4
  var _isEditable = _interopRequireWildcard(require("./isEditable"));
4
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
5
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
5
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
6
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
6
7
  // Local imports
7
8
 
8
- describe('utils', () => {
9
- describe('Component', () => {
10
- describe('isEditable', () => {
11
- _isEditable.EDITABLE_TYPES.forEach(type => {
12
- it("should return true for a type of '".concat(type, "'"), () => {
13
- const OPTIONS = {
14
- type
9
+ describe('utils', function () {
10
+ describe('Component', function () {
11
+ describe('isEditable', function () {
12
+ _isEditable.EDITABLE_TYPES.forEach(function (type) {
13
+ it("should return true for a type of '".concat(type, "'"), function () {
14
+ var OPTIONS = {
15
+ type: type
15
16
  };
16
17
  expect((0, _isEditable.default)(OPTIONS)).toEqual(true);
17
18
  });
18
19
  });
19
- it('should return false if options is undefined', () => {
20
+ it('should return false if options is undefined', function () {
20
21
  expect((0, _isEditable.default)(undefined)).toEqual(false);
21
22
  });
22
- it('should return false if options is null', () => {
23
+ it('should return false if options is null', function () {
23
24
  expect((0, _isEditable.default)(null)).toEqual(false);
24
25
  });
25
- it('should return false if options has no type', () => {
26
+ it('should return false if options has no type', function () {
26
27
  expect((0, _isEditable.default)({
27
28
  bob: 'Bob'
28
29
  })).toEqual(false);
29
30
  });
30
- it("should return false if options has a type of 'hidden'", () => {
31
+ it("should return false if options has a type of 'hidden'", function () {
31
32
  expect((0, _isEditable.default)({
32
33
  type: 'hidden'
33
34
  })).toEqual(false);
34
35
  });
35
- it("should return true if options has 'isEditable' set to true", () => {
36
+ it("should return true if options has 'isEditable' set to true", function () {
36
37
  expect((0, _isEditable.default)({
37
38
  isEditable: true
38
39
  })).toEqual(true);
@@ -12,8 +12,13 @@ exports.default = void 0;
12
12
  *
13
13
  * @returns A boolean of whether the option is selected.
14
14
  */
15
- const optionIsSelected = (componentValue, option) => {
15
+ var optionIsSelected = function optionIsSelected(componentValue, option) {
16
16
  if (Array.isArray(componentValue)) {
17
+ if (option.refdata_match) {
18
+ return componentValue.some(function (v) {
19
+ return v.id === option.refdata_match.id;
20
+ });
21
+ }
17
22
  return componentValue.includes(option.value);
18
23
  }
19
24
  return componentValue === option.value;
@@ -4,23 +4,37 @@ var _optionIsSelected = _interopRequireDefault(require("./optionIsSelected"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils.Component.isSelected', () => {
8
- const SELECTED_VALUE = 'selectedValue';
9
- const NOT_SELECTED_VALUE = 'notSelectedValue';
10
- const OPTIONS = [{
7
+ describe('utils.Component.isSelected', function () {
8
+ var SELECTED_VALUE = 'selectedValue';
9
+ var NOT_SELECTED_VALUE = 'notSelectedValue';
10
+ var OPTIONS = [{
11
11
  value: SELECTED_VALUE
12
12
  }, {
13
13
  value: NOT_SELECTED_VALUE
14
+ }, {
15
+ refdata_match: {
16
+ id: 99
17
+ },
18
+ nested: {
19
+ value: true
20
+ }
21
+ }, {
22
+ refdata_match: {
23
+ id: 100
24
+ },
25
+ nested: {
26
+ value: true
27
+ }
14
28
  }];
15
- const COMPONENT = {
29
+ var COMPONENT = {
16
30
  id: 'a',
17
31
  fieldId: 'a',
18
32
  data: {
19
33
  options: OPTIONS
20
34
  }
21
35
  };
22
- it('should properly identify which option is selected for checkboxes', () => {
23
- const PAGE = {
36
+ it('should properly identify which option is selected for checkboxes', function () {
37
+ var PAGE = {
24
38
  formData: {
25
39
  a: [SELECTED_VALUE]
26
40
  }
@@ -29,8 +43,20 @@ describe('utils.Component.isSelected', () => {
29
43
  expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[0])).toEqual(true);
30
44
  expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[1])).toEqual(false);
31
45
  });
32
- it('should properly identify which option is selected for radios', () => {
33
- const PAGE = {
46
+ it('should properly identify which option is selected for checkboxes using refdata_match', function () {
47
+ var PAGE = {
48
+ formData: {
49
+ a: [{
50
+ id: 99
51
+ }]
52
+ }
53
+ };
54
+ COMPONENT.type = 'checkboxes';
55
+ expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[2])).toEqual(true);
56
+ expect((0, _optionIsSelected.default)(PAGE.formData[COMPONENT.id], OPTIONS[3])).toEqual(false);
57
+ });
58
+ it('should properly identify which option is selected for radios', function () {
59
+ var PAGE = {
34
60
  formData: {
35
61
  a: SELECTED_VALUE
36
62
  }