@ukhomeoffice/cop-react-form-renderer 4.66.1 → 4.68.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 (315) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +6 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +104 -129
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +26 -64
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +428 -555
  5. package/dist/components/CheckYourAnswers/index.js +0 -3
  6. package/dist/components/CollectionPage/CollectionPage.js +13 -42
  7. package/dist/components/CollectionPage/CollectionPage.test.js +160 -206
  8. package/dist/components/CollectionPage/index.js +0 -3
  9. package/dist/components/FormComponent/Collection.js +35 -79
  10. package/dist/components/FormComponent/Collection.test.js +340 -391
  11. package/dist/components/FormComponent/Container.js +10 -31
  12. package/dist/components/FormComponent/Container.test.js +304 -357
  13. package/dist/components/FormComponent/FormComponent.js +17 -60
  14. package/dist/components/FormComponent/FormComponent.test.js +190 -228
  15. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  16. package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -4
  17. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -2
  18. package/dist/components/FormComponent/helpers/getComponentError.js +0 -6
  19. package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -2
  20. package/dist/components/FormComponent/helpers/index.js +0 -4
  21. package/dist/components/FormComponent/index.js +0 -3
  22. package/dist/components/FormPage/FormPage.js +21 -53
  23. package/dist/components/FormPage/FormPage.test.js +122 -160
  24. package/dist/components/FormPage/index.js +0 -3
  25. package/dist/components/FormRenderer/FormRenderer.js +106 -296
  26. package/dist/components/FormRenderer/FormRenderer.test.js +820 -1058
  27. package/dist/components/FormRenderer/handlers/cyaAction.js +0 -5
  28. package/dist/components/FormRenderer/handlers/getPageId.js +0 -2
  29. package/dist/components/FormRenderer/handlers/getPageId.test.js +1 -2
  30. package/dist/components/FormRenderer/handlers/handlers.test.js +1 -18
  31. package/dist/components/FormRenderer/handlers/index.js +0 -5
  32. package/dist/components/FormRenderer/handlers/navigate.js +0 -5
  33. package/dist/components/FormRenderer/handlers/submissionError.js +0 -2
  34. package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -3
  35. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +1 -3
  36. package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -2
  37. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +1 -5
  38. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +4 -12
  39. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +1 -2
  40. package/dist/components/FormRenderer/helpers/getCYA.js +0 -9
  41. package/dist/components/FormRenderer/helpers/getCYA.test.js +1 -3
  42. package/dist/components/FormRenderer/helpers/getFormState.js +0 -5
  43. package/dist/components/FormRenderer/helpers/getFormState.test.js +1 -3
  44. package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -25
  45. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +1 -4
  46. package/dist/components/FormRenderer/helpers/getPage.js +0 -5
  47. package/dist/components/FormRenderer/helpers/getPage.test.js +1 -3
  48. package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -6
  49. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -3
  50. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -10
  51. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +4 -7
  52. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +32 -41
  53. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +122 -8
  54. package/dist/components/FormRenderer/helpers/index.js +1 -11
  55. package/dist/components/FormRenderer/index.js +0 -3
  56. package/dist/components/FormRenderer/onCYAAction.js +8 -30
  57. package/dist/components/FormRenderer/onCYAAction.test.js +54 -79
  58. package/dist/components/FormRenderer/onPageAction.js +123 -0
  59. package/dist/components/FormRenderer/onPageAction.test.js +632 -0
  60. package/dist/components/PageActions/ActionButton.js +2 -17
  61. package/dist/components/PageActions/ActionButton.test.js +58 -81
  62. package/dist/components/PageActions/PageActions.js +3 -10
  63. package/dist/components/PageActions/PageActions.test.js +95 -120
  64. package/dist/components/PageActions/index.js +0 -3
  65. package/dist/components/SummaryList/GroupAction.js +5 -26
  66. package/dist/components/SummaryList/GroupAction.test.js +14 -28
  67. package/dist/components/SummaryList/RowAction.js +5 -25
  68. package/dist/components/SummaryList/RowAction.test.js +14 -28
  69. package/dist/components/SummaryList/SummaryList.js +7 -31
  70. package/dist/components/SummaryList/SummaryList.test.js +69 -126
  71. package/dist/components/SummaryList/SummaryListHeadingRow.js +3 -8
  72. package/dist/components/SummaryList/SummaryListRow.js +4 -8
  73. package/dist/components/SummaryList/SummaryListTitleRow.js +2 -7
  74. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -3
  75. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -6
  76. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -3
  77. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -6
  78. package/dist/components/SummaryList/helpers/index.js +0 -2
  79. package/dist/components/SummaryList/index.js +0 -3
  80. package/dist/components/TaskList/Task.js +9 -31
  81. package/dist/components/TaskList/Task.test.js +32 -59
  82. package/dist/components/TaskList/TaskList.js +32 -59
  83. package/dist/components/TaskList/TaskList.test.js +52 -90
  84. package/dist/components/TaskList/TaskState.js +2 -10
  85. package/dist/components/TaskList/TaskState.test.js +23 -41
  86. package/dist/components/TaskList/index.js +0 -3
  87. package/dist/components/index.js +0 -7
  88. package/dist/context/HooksContext/HooksContext.js +21 -39
  89. package/dist/context/HooksContext/HooksContext.test.js +18 -34
  90. package/dist/context/HooksContext/index.js +0 -5
  91. package/dist/context/ValidationContext/ValidationContext.js +26 -56
  92. package/dist/context/ValidationContext/ValidationContext.test.js +43 -64
  93. package/dist/context/ValidationContext/index.js +0 -5
  94. package/dist/context/index.js +0 -3
  95. package/dist/hooks/index.js +0 -9
  96. package/dist/hooks/useAxios.js +17 -36
  97. package/dist/hooks/useGetRequest.js +57 -93
  98. package/dist/hooks/useHooks.js +2 -4
  99. package/dist/hooks/useRefData.js +14 -41
  100. package/dist/hooks/useValidation.js +2 -4
  101. package/dist/index.js +0 -9
  102. package/dist/models/PageAction.js +4 -4
  103. package/dist/models/TaskStates.js +4 -4
  104. package/dist/models/index.js +1 -10
  105. package/dist/setupTests.js +0 -13
  106. package/dist/utils/CheckYourAnswers/getCYAAction.js +1 -9
  107. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +1 -19
  108. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +4 -11
  109. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -9
  110. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +4 -9
  111. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +4 -8
  112. package/dist/utils/CheckYourAnswers/getCYARow.js +1 -10
  113. package/dist/utils/CheckYourAnswers/getCYARow.test.js +8 -23
  114. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +6 -21
  115. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +2 -9
  116. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +4 -20
  117. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +7 -22
  118. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +4 -32
  119. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +4 -34
  120. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +4 -15
  121. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +4 -22
  122. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +2 -22
  123. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +7 -25
  124. package/dist/utils/CheckYourAnswers/index.js +1 -3
  125. package/dist/utils/CheckYourAnswers/showComponentCYA.js +9 -12
  126. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +41 -3
  127. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -12
  128. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +5 -6
  129. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -6
  130. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +1 -2
  131. package/dist/utils/CollectionPage/index.js +1 -5
  132. package/dist/utils/CollectionPage/mergeCollectionPages.js +5 -11
  133. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +1 -2
  134. package/dist/utils/Component/addShowWhen.js +4 -10
  135. package/dist/utils/Component/addShowWhen.test.js +1 -2
  136. package/dist/utils/Component/applyToComponentTree.js +4 -18
  137. package/dist/utils/Component/applyToComponentTree.test.js +4 -8
  138. package/dist/utils/Component/cleanAttributes.js +1 -8
  139. package/dist/utils/Component/cleanAttributes.test.js +15 -16
  140. package/dist/utils/Component/elevateNestedComponents.js +0 -6
  141. package/dist/utils/Component/elevateNestedComponents.test.js +0 -2
  142. package/dist/utils/Component/getComponent.js +7 -86
  143. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +6 -10
  144. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +33 -51
  145. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +8 -35
  146. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +12 -29
  147. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +4 -10
  148. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +6 -23
  149. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +6 -24
  150. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +3 -7
  151. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +4 -10
  152. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +3 -7
  153. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +4 -10
  154. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +5 -22
  155. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
  156. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +4 -10
  157. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +6 -23
  158. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +8 -35
  159. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +6 -23
  160. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +6 -23
  161. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +10 -34
  162. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +12 -31
  163. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +1 -2
  164. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +3 -7
  165. package/dist/utils/Component/getDefaultValue.js +4 -8
  166. package/dist/utils/Component/getDefaultValue.test.js +0 -3
  167. package/dist/utils/Component/index.js +0 -10
  168. package/dist/utils/Component/isEditable.js +1 -4
  169. package/dist/utils/Component/isEditable.test.js +1 -5
  170. package/dist/utils/Component/setupContainerComponentsPath.js +4 -9
  171. package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -3
  172. package/dist/utils/Component/showComponent.js +1 -8
  173. package/dist/utils/Component/showComponent.test.js +1 -2
  174. package/dist/utils/Component/wrapInFormGroup.js +0 -7
  175. package/dist/utils/Condition/index.js +0 -5
  176. package/dist/utils/Condition/meetsAllConditions.js +0 -9
  177. package/dist/utils/Condition/meetsAllConditions.test.js +1 -2
  178. package/dist/utils/Condition/meetsCondition.js +9 -34
  179. package/dist/utils/Condition/meetsCondition.test.js +21 -14
  180. package/dist/utils/Condition/meetsOneCondition.js +1 -9
  181. package/dist/utils/Condition/meetsOneCondition.test.js +1 -2
  182. package/dist/utils/Condition/setupConditions.js +4 -13
  183. package/dist/utils/Condition/setupConditions.test.js +0 -2
  184. package/dist/utils/Container/getEditableComponents.js +0 -7
  185. package/dist/utils/Container/getEditableComponents.test.js +1 -12
  186. package/dist/utils/Container/index.js +0 -5
  187. package/dist/utils/Container/setupNesting.js +4 -12
  188. package/dist/utils/Container/setupNesting.test.js +4 -10
  189. package/dist/utils/Container/showContainer.js +9 -18
  190. package/dist/utils/Container/showContainer.test.js +1 -2
  191. package/dist/utils/Data/applyFormula.js +6 -29
  192. package/dist/utils/Data/applyFormula.test.js +1 -2
  193. package/dist/utils/Data/getAutocompleteSource.js +1 -5
  194. package/dist/utils/Data/getAutocompleteSource.test.js +1 -2
  195. package/dist/utils/Data/getDataPath.js +3 -17
  196. package/dist/utils/Data/getDataPath.test.js +0 -4
  197. package/dist/utils/Data/getOptions.js +4 -14
  198. package/dist/utils/Data/getOptions.test.js +1 -2
  199. package/dist/utils/Data/getSourceData.js +6 -21
  200. package/dist/utils/Data/getSourceData.test.js +4 -6
  201. package/dist/utils/Data/index.js +1 -11
  202. package/dist/utils/Data/refDataToOptions.js +5 -13
  203. package/dist/utils/Data/refDataToOptions.test.js +1 -2
  204. package/dist/utils/Data/setDataItem.js +0 -5
  205. package/dist/utils/Data/setDataItem.test.js +0 -2
  206. package/dist/utils/Data/setupFormData.js +6 -25
  207. package/dist/utils/Data/setupFormData.test.js +8 -11
  208. package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -15
  209. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +1 -3
  210. package/dist/utils/FormPage/applyConditionalProperties.js +4 -11
  211. package/dist/utils/FormPage/applyConditionalProperties.test.js +4 -6
  212. package/dist/utils/FormPage/getFormPage.js +4 -16
  213. package/dist/utils/FormPage/getFormPage.test.js +10 -9
  214. package/dist/utils/FormPage/getFormPages.js +4 -9
  215. package/dist/utils/FormPage/getFormPages.test.js +6 -7
  216. package/dist/utils/FormPage/getPageActions.js +6 -19
  217. package/dist/utils/FormPage/getPageActions.test.js +1 -3
  218. package/dist/utils/FormPage/getParagraphFromText.js +0 -3
  219. package/dist/utils/FormPage/getParagraphFromText.test.js +1 -3
  220. package/dist/utils/FormPage/index.js +0 -7
  221. package/dist/utils/FormPage/showFormPage.js +9 -18
  222. package/dist/utils/FormPage/showFormPage.test.js +0 -2
  223. package/dist/utils/FormPage/showFormPageCYA.js +0 -5
  224. package/dist/utils/FormPage/showFormPageCYA.test.js +0 -2
  225. package/dist/utils/FormPage/useComponent.js +7 -19
  226. package/dist/utils/FormPage/useComponent.test.js +4 -7
  227. package/dist/utils/Format/formatData.js +0 -5
  228. package/dist/utils/Format/formatData.test.js +1 -2
  229. package/dist/utils/Format/formatDataForComponent.js +1 -6
  230. package/dist/utils/Format/formatDataForComponent.test.js +28 -47
  231. package/dist/utils/Format/formatDataForForm.js +4 -9
  232. package/dist/utils/Format/formatDataForForm.test.js +14 -11
  233. package/dist/utils/Format/formatDataForPage.js +1 -5
  234. package/dist/utils/Format/formatDataForPage.test.js +15 -12
  235. package/dist/utils/Format/index.js +1 -6
  236. package/dist/utils/Hub/getFormHub.js +0 -8
  237. package/dist/utils/Hub/getFormHub.test.js +6 -8
  238. package/dist/utils/Hub/index.js +1 -3
  239. package/dist/utils/Meta/documents/getDocuments.js +1 -4
  240. package/dist/utils/Meta/documents/getDocuments.test.js +4 -10
  241. package/dist/utils/Meta/documents/index.js +1 -5
  242. package/dist/utils/Meta/documents/setDocumentsForField.js +4 -11
  243. package/dist/utils/Meta/documents/setDocumentsForField.test.js +4 -16
  244. package/dist/utils/Meta/index.js +1 -4
  245. package/dist/utils/Operate/checkValueIsTruthy.js +1 -7
  246. package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -2
  247. package/dist/utils/Operate/getFirstOf.js +2 -9
  248. package/dist/utils/Operate/getFirstOf.test.js +0 -2
  249. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +7 -21
  250. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +6 -2
  251. package/dist/utils/Operate/index.js +0 -3
  252. package/dist/utils/Operate/persistValueInFormData.js +1 -8
  253. package/dist/utils/Operate/persistValueInFormData.test.js +0 -4
  254. package/dist/utils/Operate/runPageOperations.js +3 -19
  255. package/dist/utils/Operate/runPageOperations.test.js +4 -6
  256. package/dist/utils/Operate/setValueInFormData.js +2 -7
  257. package/dist/utils/Operate/setValueInFormData.test.js +0 -2
  258. package/dist/utils/Operate/shouldRun.js +1 -14
  259. package/dist/utils/Operate/shouldRun.test.js +5 -8
  260. package/dist/utils/Validate/additional/conditionallyRequired.js +0 -3
  261. package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -2
  262. package/dist/utils/Validate/additional/index.js +1 -22
  263. package/dist/utils/Validate/additional/index.test.js +0 -6
  264. package/dist/utils/Validate/additional/mustBeAfter.js +3 -8
  265. package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -4
  266. package/dist/utils/Validate/additional/mustBeBefore.js +3 -8
  267. package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -4
  268. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +5 -16
  269. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +4 -8
  270. package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -3
  271. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -2
  272. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -12
  273. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -3
  274. package/dist/utils/Validate/additional/mustBeInThePast.js +5 -13
  275. package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -3
  276. package/dist/utils/Validate/additional/mustBeLessThan.js +0 -3
  277. package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -2
  278. package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -3
  279. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -2
  280. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -3
  281. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -2
  282. package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -3
  283. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -2
  284. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -5
  285. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -5
  286. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -3
  287. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -2
  288. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -6
  289. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +4 -7
  290. package/dist/utils/Validate/additional/utils.js +10 -26
  291. package/dist/utils/Validate/index.js +1 -11
  292. package/dist/utils/Validate/validateCollection.js +4 -10
  293. package/dist/utils/Validate/validateCollection.test.js +4 -6
  294. package/dist/utils/Validate/validateComponent.js +2 -39
  295. package/dist/utils/Validate/validateComponent.test.js +4 -22
  296. package/dist/utils/Validate/validateContainer.js +4 -14
  297. package/dist/utils/Validate/validateContainer.test.js +4 -10
  298. package/dist/utils/Validate/validateDate.js +6 -38
  299. package/dist/utils/Validate/validateDate.test.js +0 -4
  300. package/dist/utils/Validate/validateEmail.js +1 -8
  301. package/dist/utils/Validate/validateEmail.test.js +5 -4
  302. package/dist/utils/Validate/validateMultifile.js +0 -7
  303. package/dist/utils/Validate/validateMultifile.test.js +5 -6
  304. package/dist/utils/Validate/validatePage.js +4 -16
  305. package/dist/utils/Validate/validatePage.test.js +30 -25
  306. package/dist/utils/Validate/validateRegex.js +0 -10
  307. package/dist/utils/Validate/validateRegex.test.js +5 -4
  308. package/dist/utils/Validate/validateRequired.js +0 -8
  309. package/dist/utils/Validate/validateRequired.test.js +5 -4
  310. package/dist/utils/Validate/validateTextArea.js +0 -8
  311. package/dist/utils/Validate/validateTextArea.test.js +0 -2
  312. package/dist/utils/Validate/validateTime.js +5 -22
  313. package/dist/utils/Validate/validateTime.test.js +0 -2
  314. package/dist/utils/index.js +4 -20
  315. package/package.json +2 -2
@@ -1,38 +1,28 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.getChildrenJsx = exports.default = void 0;
7
-
8
8
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
9
  var _react = _interopRequireDefault(require("react"));
11
-
12
10
  var _models = require("../../models");
13
-
14
11
  var _Data = _interopRequireDefault(require("../Data"));
15
-
16
12
  var _cleanAttributes = _interopRequireDefault(require("./cleanAttributes"));
17
-
18
13
  var _isEditable = _interopRequireDefault(require("./isEditable"));
19
-
20
14
  var _FormComponent = _interopRequireDefault(require("../../components/FormComponent"));
21
-
22
15
  var _wrapInFormGroup = _interopRequireDefault(require("./wrapInFormGroup"));
23
-
24
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
17
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
-
28
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
-
30
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
-
19
+ 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; }
20
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
+ 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); }
32
22
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
-
34
23
  var LIST_CLASS = 'govuk-list';
35
24
  var BODY_CLASS = 'govuk-body';
25
+
36
26
  /**
37
27
  * Separate function for each component type for the sake of
38
28
  * code clarity - having the additional bits and pieces in the
@@ -42,43 +32,32 @@ var BODY_CLASS = 'govuk-body';
42
32
 
43
33
  var getAlert = function getAlert(config) {
44
34
  var attrs = (0, _cleanAttributes.default)(config);
45
-
46
35
  var heading = _copReactComponents.Utils.interpolateString(config.heading, config.formData);
47
-
48
36
  var children = _copReactComponents.Utils.interpolateString(config.text, config.formData);
49
-
50
37
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Alert, _extends({}, attrs, {
51
38
  heading: heading,
52
39
  children: children
53
40
  }));
54
41
  };
55
-
56
42
  var getAutocomplete = function getAutocomplete(config) {
57
43
  var attrs = (0, _cleanAttributes.default)(config);
58
-
59
44
  var source = _Data.default.getAutocompleteSource(config);
60
-
61
45
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Autocomplete, _extends({}, attrs, {
62
46
  source: source
63
47
  }));
64
48
  };
65
-
66
49
  var getCheckboxes = function getCheckboxes(config) {
67
50
  var options = [];
68
-
69
51
  _Data.default.getOptions(config, function (val) {
70
52
  options = val;
71
53
  });
72
-
73
54
  var attrs = (0, _cleanAttributes.default)(config);
74
55
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Checkboxes, _extends({}, attrs, {
75
56
  options: options
76
57
  }));
77
58
  };
78
-
79
59
  var getCalculation = function getCalculation(config) {
80
60
  var value = _Data.default.applyFormula(config);
81
-
82
61
  if (typeof config.onChange === 'function') {
83
62
  if (value !== config.value) {
84
63
  config.onChange({
@@ -89,58 +68,46 @@ var getCalculation = function getCalculation(config) {
89
68
  });
90
69
  }
91
70
  }
92
-
93
71
  var attrs = (0, _cleanAttributes.default)(config, ['formula']);
94
72
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, _extends({}, attrs, {
95
73
  readonly: true
96
74
  }));
97
75
  };
98
-
99
76
  var getDate = function getDate(config) {
100
77
  var attrs = (0, _cleanAttributes.default)(config);
101
78
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.DateInput, attrs);
102
79
  };
103
-
104
80
  var getDetails = function getDetails(config) {
105
81
  var attrs = (0, _cleanAttributes.default)(config);
106
82
  var html = getHTML(config);
107
83
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Details, attrs, html);
108
84
  };
109
-
110
85
  var getFileUpload = function getFileUpload(config) {
111
86
  var attrs = (0, _cleanAttributes.default)(config);
112
87
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.FileUpload, attrs);
113
88
  };
114
-
115
89
  var getMultiFileUpload = function getMultiFileUpload(config) {
116
90
  var attrs = (0, _cleanAttributes.default)(config);
117
91
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.MultiFileUpload, attrs);
118
92
  };
119
-
120
93
  var getHeading = function getHeading(config) {
121
94
  var attrs = (0, _cleanAttributes.default)(config);
122
95
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Heading, attrs, config.content);
123
96
  };
124
-
125
97
  var getHTML = function getHTML(config) {
126
98
  var attrs = (0, _cleanAttributes.default)(config);
127
99
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Markup, attrs);
128
100
  };
129
-
130
101
  var getInsetText = function getInsetText(config) {
131
102
  var attrs = (0, _cleanAttributes.default)(config);
132
103
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.InsetText, attrs, config.content);
133
104
  };
134
-
135
105
  var getList = function getList(config) {
136
106
  var _attrs$items;
137
-
138
107
  var attrs = (0, _cleanAttributes.default)(config);
139
108
  var tagName = attrs.ordered ? 'ol' : 'ul';
140
109
  var bullet = attrs.ordered ? 'number' : 'bullet';
141
-
142
110
  var classes = _copReactComponents.Utils.classBuilder(LIST_CLASS, bullet);
143
-
144
111
  var content = (_attrs$items = attrs.items) === null || _attrs$items === void 0 ? void 0 : _attrs$items.map(function (item) {
145
112
  return "<li>".concat(item, "</li>");
146
113
  }).join('');
@@ -151,7 +118,6 @@ var getList = function getList(config) {
151
118
  type: _models.ComponentTypes.HTML
152
119
  }));
153
120
  };
154
-
155
121
  var getParagraph = function getParagraph(config) {
156
122
  var attrs = (0, _cleanAttributes.default)(config);
157
123
  return getHTML(_objectSpread(_objectSpread({
@@ -161,19 +127,15 @@ var getParagraph = function getParagraph(config) {
161
127
  type: _models.ComponentTypes.HTML
162
128
  }));
163
129
  };
164
-
165
130
  var getRadios = function getRadios(config) {
166
131
  var options = [];
167
-
168
132
  _Data.default.getOptions(config, function (val) {
169
133
  options = val;
170
134
  });
171
-
172
135
  options.forEach(function (option) {
173
136
  if (!Array.isArray(option.nested)) {
174
137
  return;
175
138
  }
176
-
177
139
  option.children = getChildrenJsx(config, option.nested);
178
140
  });
179
141
  var attrs = (0, _cleanAttributes.default)(config);
@@ -181,114 +143,86 @@ var getRadios = function getRadios(config) {
181
143
  options: options
182
144
  }));
183
145
  };
184
-
185
146
  var getTextArea = function getTextArea(config) {
186
147
  var attrs = (0, _cleanAttributes.default)(config);
187
148
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextArea, attrs);
188
149
  };
189
-
190
150
  var getTextInput = function getTextInput(config) {
191
151
  var attrs = (0, _cleanAttributes.default)(config);
192
152
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, attrs);
193
153
  };
194
-
195
154
  var getTime = function getTime(config) {
196
155
  var attrs = (0, _cleanAttributes.default)(config);
197
156
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.TimeInput, attrs);
198
157
  };
199
-
200
158
  var getSelect = function getSelect(config) {
201
159
  var options = [];
202
-
203
160
  _Data.default.getOptions(config, function (val) {
204
161
  options = val;
205
162
  });
206
-
207
163
  var attrs = (0, _cleanAttributes.default)(config);
208
164
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.Select, _extends({}, attrs, {
209
165
  options: options
210
166
  }));
211
167
  };
212
-
213
168
  var getWarningText = function getWarningText(config) {
214
169
  var attrs = (0, _cleanAttributes.default)(config);
215
170
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.WarningText, attrs, config.content);
216
171
  };
217
-
218
172
  var getComponentByType = function getComponentByType(config) {
219
173
  switch (config.type) {
220
174
  case _models.ComponentTypes.HTML:
221
175
  return getHTML(config);
222
-
223
176
  case _models.ComponentTypes.HEADING:
224
177
  return getHeading(config);
225
-
226
178
  case _models.ComponentTypes.INSET_TEXT:
227
179
  return getInsetText(config);
228
-
229
180
  case _models.ComponentTypes.TEXT:
230
181
  case _models.ComponentTypes.EMAIL:
231
182
  case _models.ComponentTypes.PHONE_NUMBER:
232
183
  return getTextInput(config);
233
-
234
184
  case _models.ComponentTypes.TEXT_AREA:
235
185
  return getTextArea(config);
236
-
237
186
  case _models.ComponentTypes.AUTOCOMPLETE:
238
187
  return getAutocomplete(config);
239
-
240
188
  case _models.ComponentTypes.RADIOS:
241
189
  return getRadios(config);
242
-
243
190
  case _models.ComponentTypes.CHECKBOXES:
244
191
  return getCheckboxes(config);
245
-
246
192
  case _models.ComponentTypes.DATE:
247
193
  return getDate(config);
248
-
249
194
  case _models.ComponentTypes.TIME:
250
195
  return getTime(config);
251
-
252
196
  case _models.ComponentTypes.FILE:
253
197
  return getFileUpload(config);
254
-
255
198
  case _models.ComponentTypes.MULTI_FILE:
256
199
  return getMultiFileUpload(config);
257
-
258
200
  case _models.ComponentTypes.WARNING:
259
201
  return getWarningText(config);
260
-
261
202
  case _models.ComponentTypes.SELECT:
262
203
  return getSelect(config);
263
-
264
204
  case _models.ComponentTypes.DETAILS:
265
205
  return getDetails(config);
266
-
267
206
  case _models.ComponentTypes.CALCULATION:
268
207
  return getCalculation(config);
269
-
270
208
  case _models.ComponentTypes.ALERT:
271
209
  return getAlert(config);
272
-
273
210
  case _models.ComponentTypes.PARAGRAPH:
274
211
  return getParagraph(config);
275
-
276
212
  case _models.ComponentTypes.LIST:
277
213
  return getList(config);
278
-
279
214
  default:
280
215
  {
281
216
  return null;
282
217
  }
283
218
  }
284
219
  };
220
+
285
221
  /**
286
222
  * Get single child component for a parent
287
223
  * @param {*} parent the parent configuration
288
224
  * @param {*} child the child configuration
289
225
  */
290
-
291
-
292
226
  var getChildJsx = function getChildJsx(parent, child) {
293
227
  if (parent.full_path) {
294
228
  var pathParts = parent.full_path.split('.');
@@ -296,18 +230,14 @@ var getChildJsx = function getChildJsx(parent, child) {
296
230
  pathParts.push(child.fieldId);
297
231
  child.full_path = pathParts.join('.');
298
232
  }
299
-
300
233
  if (parent.formData) {
301
234
  child.value = parent.formData[child.fieldId] || _Data.default.getSource(parent.formData, child.full_path) || '';
302
235
  }
303
-
304
236
  if ('readonly' in child) delete child.readonly;
305
-
306
237
  if (parent.readonly) {
307
238
  child.readonly = parent.readonly;
308
239
  return /*#__PURE__*/_react.default.createElement("div", null, getComponent(child, false));
309
240
  }
310
-
311
241
  return /*#__PURE__*/_react.default.createElement(_FormComponent.default, {
312
242
  component: child,
313
243
  value: child.value,
@@ -316,13 +246,12 @@ var getChildJsx = function getChildJsx(parent, child) {
316
246
  formData: parent.formData
317
247
  });
318
248
  };
249
+
319
250
  /**
320
251
  * Convert chidlrenConfigs into components
321
252
  * @param {*} parentConfig parent component which the childrenConfigs will be under
322
253
  * @param {*} childrenConfigs array of configurations for the child components
323
254
  */
324
-
325
-
326
255
  var getChildrenJsx = function getChildrenJsx(parentConfig, childrenConfigs) {
327
256
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, childrenConfigs.map(function (config) {
328
257
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
@@ -330,9 +259,7 @@ var getChildrenJsx = function getChildrenJsx(parentConfig, childrenConfigs) {
330
259
  }, getChildJsx(parentConfig, config));
331
260
  }));
332
261
  };
333
-
334
262
  exports.getChildrenJsx = getChildrenJsx;
335
-
336
263
  /**
337
264
  * Get a renderable component, based on a configuration object.
338
265
  * @param {object} config The configuration object for the component.
@@ -343,23 +270,17 @@ exports.getChildrenJsx = getChildrenJsx;
343
270
  var getComponent = function getComponent(config) {
344
271
  var wrap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
345
272
  var fnOverride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
346
-
347
273
  if (typeof fnOverride === 'function') {
348
274
  var overrideComponent = fnOverride(config, wrap);
349
-
350
275
  if (overrideComponent) {
351
276
  return overrideComponent;
352
277
  }
353
278
  }
354
-
355
279
  var component = getComponentByType(config);
356
-
357
280
  if (component && wrap && (0, _isEditable.default)(config)) {
358
281
  return (0, _wrapInFormGroup.default)(config, component);
359
282
  }
360
-
361
283
  return component;
362
284
  };
363
-
364
285
  var _default = getComponent;
365
286
  exports.default = _default;
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = require("@testing-library/react");
4
-
5
4
  var _models = require("../../../models");
6
-
7
5
  var _getComponent = _interopRequireDefault(require("../getComponent"));
8
-
9
6
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
11
7
  // Global imports
8
+
12
9
  // Local imports
10
+
13
11
  describe('utils.Component.get', function () {
14
12
  it('should return an appropriately rendered autocomplete component', function () {
15
13
  var ID = 'test-id';
@@ -26,10 +24,8 @@ describe('utils.Component.get', function () {
26
24
  },
27
25
  'data-testid': ID
28
26
  };
29
-
30
27
  var _render = (0, _react.render)((0, _getComponent.default)(COMPONENT)),
31
- container = _render.container;
32
-
28
+ container = _render.container;
33
29
  var formGroup = (0, _react.getByTestId)(container, ID);
34
30
  expect(formGroup.tagName).toEqual('DIV');
35
31
  expect(formGroup.classList).toContain('govuk-form-group');
@@ -46,7 +42,6 @@ describe('utils.Component.get', function () {
46
42
  } else if (node.classList.contains('hods-autocomplete__outer-wrapper')) {
47
43
  autocompleteWrapper = node;
48
44
  var autocompleteInner = node.childNodes[0];
49
-
50
45
  if (autocompleteInner instanceof Element) {
51
46
  autocomplete = autocompleteInner;
52
47
  autocomplete.childNodes.forEach(function (grandchild) {
@@ -57,7 +52,6 @@ describe('utils.Component.get', function () {
57
52
  }
58
53
  });
59
54
  }
60
-
61
55
  ;
62
56
  }
63
57
  }
@@ -70,7 +64,9 @@ describe('utils.Component.get', function () {
70
64
  expect(autocomplete).toBeDefined();
71
65
  expect(autocomplete.tagName).toEqual('DIV');
72
66
  expect(autocompleteInput).toBeDefined();
73
- expect(autocompleteInput.id).toEqual(ID); // TODO: Ensure that the onChange handler is fired.
67
+ expect(autocompleteInput.id).toEqual(ID);
68
+
69
+ // TODO: Ensure that the onChange handler is fired.
74
70
  // Not sure quite what this looks like yet so I'll address it later.
75
71
  });
76
72
  });
@@ -1,35 +1,24 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  var _react = require("@testing-library/react");
4
-
5
5
  var _models = require("../../../models");
6
-
7
6
  var _getComponent = _interopRequireDefault(require("../getComponent"));
8
-
9
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
8
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
11
9
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
-
13
10
  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."); }
14
-
15
11
  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); }
16
-
17
- 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; }
18
-
19
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
20
-
12
+ 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; }
13
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
21
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
-
23
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
-
25
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
-
27
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
-
17
+ 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; }
18
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
19
+ 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); }
29
20
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
30
-
31
21
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
32
-
33
22
  describe('utils.Component.get', function () {
34
23
  var ID = 'test-id';
35
24
  var FIELD_ID = 'field-id';
@@ -52,6 +41,7 @@ describe('utils.Component.get', function () {
52
41
  afterEach(function () {
53
42
  error.mockClear();
54
43
  });
44
+
55
45
  /**
56
46
  * Iteratively test collction of positive test data objects each containing:
57
47
  * config: object containing formula config
@@ -67,7 +57,6 @@ describe('utils.Component.get', function () {
67
57
  * }
68
58
  *
69
59
  */
70
-
71
60
  [{
72
61
  config: {
73
62
  formula: {
@@ -142,36 +131,32 @@ describe('utils.Component.get', function () {
142
131
  var target = _ref.target;
143
132
  COMPONENT.formData[target.name] = target.value;
144
133
  };
145
-
146
- it("should render 'calculation' component with formula to given calculated value: ".concat(test.result), /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
134
+ it("should render 'calculation' component with formula to given calculated value: ".concat(test.result), /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
147
135
  var _render, container, _getAllByTestId, _getAllByTestId2, formGroup, input, label;
148
-
149
- return regeneratorRuntime.wrap(function _callee$(_context) {
150
- while (1) {
151
- switch (_context.prev = _context.next) {
152
- case 0:
153
- _render = (0, _react.render)((0, _getComponent.default)(_objectSpread(_objectSpread({}, COMPONENT), test.config))), container = _render.container;
154
- _getAllByTestId = (0, _react.getAllByTestId)(container, ID), _getAllByTestId2 = _slicedToArray(_getAllByTestId, 2), formGroup = _getAllByTestId2[0], input = _getAllByTestId2[1];
155
- expect(formGroup.tagName).toEqual('DIV');
156
- expect(formGroup.classList).toContain('govuk-form-group');
157
- label = formGroup.childNodes[0].childNodes[0].childNodes[0];
158
- expect(label.tagName).toEqual('LABEL');
159
- expect(label.classList).toContain('govuk-label');
160
- expect(label.textContent).toContain(LABEL);
161
- expect(formGroup.classList).toContain('govuk-form-group');
162
- expect(input.tagName).toEqual('DIV');
163
- expect(input.classList).toContain('hods-readonly');
164
- expect(input.id).toEqual(ID);
165
- expect("".concat(COMPONENT.formData[FIELD_ID])).toEqual(test.result);
166
-
167
- case 13:
168
- case "end":
169
- return _context.stop();
170
- }
136
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
137
+ while (1) switch (_context.prev = _context.next) {
138
+ case 0:
139
+ _render = (0, _react.render)((0, _getComponent.default)(_objectSpread(_objectSpread({}, COMPONENT), test.config))), container = _render.container;
140
+ _getAllByTestId = (0, _react.getAllByTestId)(container, ID), _getAllByTestId2 = _slicedToArray(_getAllByTestId, 2), formGroup = _getAllByTestId2[0], input = _getAllByTestId2[1];
141
+ expect(formGroup.tagName).toEqual('DIV');
142
+ expect(formGroup.classList).toContain('govuk-form-group');
143
+ label = formGroup.childNodes[0].childNodes[0].childNodes[0];
144
+ expect(label.tagName).toEqual('LABEL');
145
+ expect(label.classList).toContain('govuk-label');
146
+ expect(label.textContent).toContain(LABEL);
147
+ expect(formGroup.classList).toContain('govuk-form-group');
148
+ expect(input.tagName).toEqual('DIV');
149
+ expect(input.classList).toContain('hods-readonly');
150
+ expect(input.id).toEqual(ID);
151
+ expect("".concat(COMPONENT.formData[FIELD_ID])).toEqual(test.result);
152
+ case 13:
153
+ case "end":
154
+ return _context.stop();
171
155
  }
172
156
  }, _callee);
173
157
  })));
174
158
  });
159
+
175
160
  /**
176
161
  * Iteratively test collction of negative test data objects each containing:
177
162
  * config: object containing invalid formula config
@@ -187,7 +172,6 @@ describe('utils.Component.get', function () {
187
172
  * }
188
173
  *
189
174
  */
190
-
191
175
  [{
192
176
  error: "Missing 'formula' definition"
193
177
  }, {
@@ -259,13 +243,11 @@ describe('utils.Component.get', function () {
259
243
  }].forEach(function (test) {
260
244
  it("should return an appropriately rendered calculation component with message ".concat(test.result), function () {
261
245
  var _render2 = (0, _react.render)((0, _getComponent.default)(_objectSpread(_objectSpread({}, COMPONENT), test.config))),
262
- container = _render2.container;
263
-
246
+ container = _render2.container;
264
247
  var _getAllByTestId3 = (0, _react.getAllByTestId)(container, ID),
265
- _getAllByTestId4 = _slicedToArray(_getAllByTestId3, 2),
266
- formGroup = _getAllByTestId4[0],
267
- input = _getAllByTestId4[1];
268
-
248
+ _getAllByTestId4 = _slicedToArray(_getAllByTestId3, 2),
249
+ formGroup = _getAllByTestId4[0],
250
+ input = _getAllByTestId4[1];
269
251
  expect(formGroup.tagName).toEqual('DIV');
270
252
  expect(formGroup.classList).toContain('govuk-form-group');
271
253
  var label = formGroup.childNodes[0].childNodes[0].childNodes[0];