@ukhomeoffice/cop-react-form-renderer 4.67.0 → 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 +2 -15
  126. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +1 -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,17 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _constants = require("../constants");
4
-
5
4
  var _setDocumentsForField = _interopRequireDefault(require("./setDocumentsForField"));
6
-
7
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
6
+ 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); }
9
7
  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; }
10
-
11
8
  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; }
12
-
13
- 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; }
14
-
9
+ 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; }
10
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
11
+ 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
12
  describe('Utils.Meta.documents.add', function () {
16
13
  var ALPHA_DOCUMENT = {
17
14
  field: 'alpha',
@@ -26,14 +23,11 @@ describe('Utils.Meta.documents.add', function () {
26
23
  });
27
24
  it('should add a new document to the array', function () {
28
25
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
29
-
30
26
  expect((0, _setDocumentsForField.default)([BRAVO_DOCUMENT], FORM_DATA, BRAVO_DOCUMENT.field)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT, BRAVO_DOCUMENT]));
31
27
  });
32
28
  it('should add multiple new documents to the array', function () {
33
29
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, []));
34
-
35
30
  var SECOND_DOCUMENT = _objectSpread({}, ALPHA_DOCUMENT);
36
-
37
31
  expect((0, _setDocumentsForField.default)([ALPHA_DOCUMENT, SECOND_DOCUMENT], FORM_DATA, ALPHA_DOCUMENT.field)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT, SECOND_DOCUMENT]));
38
32
  });
39
33
  it('should replace an existing document with the same field', function () {
@@ -42,9 +36,7 @@ describe('Utils.Meta.documents.add', function () {
42
36
  field: ALPHA_DOCUMENT.field,
43
37
  url: NEW_URL
44
38
  };
45
-
46
39
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
47
-
48
40
  expect((0, _setDocumentsForField.default)([NEW_ALPHA], FORM_DATA, NEW_ALPHA.field)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [NEW_ALPHA]));
49
41
  });
50
42
  it('should add a document with the same field if allowMultiple is true', function () {
@@ -53,19 +45,15 @@ describe('Utils.Meta.documents.add', function () {
53
45
  field: ALPHA_DOCUMENT.field,
54
46
  url: NEW_URL
55
47
  };
56
-
57
48
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
58
-
59
49
  expect((0, _setDocumentsForField.default)([NEW_ALPHA], FORM_DATA, NEW_ALPHA.field, true)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT, NEW_ALPHA]));
60
50
  });
61
51
  it('should handle a null document being passed where a document with that field already exists', function () {
62
52
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
63
-
64
53
  expect((0, _setDocumentsForField.default)(null, FORM_DATA, ALPHA_DOCUMENT.field)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, []));
65
54
  });
66
55
  it('should handle a null document being passed where a document with that field does not already exist', function () {
67
56
  var FORM_DATA = _defineProperty({}, _constants.META_PROPERTY, _defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
68
-
69
57
  expect((0, _setDocumentsForField.default)(null, FORM_DATA, BRAVO_DOCUMENT.field)).toEqual(_defineProperty({}, _constants.META_DOCUMENTS_PROPERTY, [ALPHA_DOCUMENT]));
70
58
  });
71
59
  });
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.Meta = void 0;
7
-
8
7
  var _constants = require("./constants");
9
-
10
8
  var _documents = _interopRequireDefault(require("./documents"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Local imports
11
+
15
12
  var Meta = {
16
13
  documents: _documents.default,
17
14
  name: _constants.META_PROPERTY
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
16
13
 
17
14
  /**
@@ -24,12 +21,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
21
  var checkValueIsTruthy = function checkValueIsTruthy(config, data) {
25
22
  if (config !== null && config !== void 0 && config.field) {
26
23
  var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
27
-
28
24
  return !!(0, _getSourceData.default)(data, fieldPath);
29
25
  }
30
-
31
26
  return false;
32
27
  };
33
-
34
28
  var _default = checkValueIsTruthy;
35
29
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('Utils.Operate.checkValueIsTruthy', function () {
8
6
  var DATA = {
9
7
  alpha: 'abc',
@@ -4,35 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
13
+
16
14
  var getFirstOf = function getFirstOf(config, data) {
17
15
  if (config !== null && config !== void 0 && config.fields) {
18
16
  var fieldValue;
19
17
  config.fields.find(function (field) {
20
18
  var fieldPath = _copReactComponents.Utils.interpolateString(field, data);
21
-
22
19
  var foundValue = (0, _getSourceData.default)(data, fieldPath);
23
-
24
20
  if (foundValue) {
25
21
  fieldValue = foundValue;
26
22
  return true;
27
23
  }
28
-
29
24
  return false;
30
25
  });
31
26
  return fieldValue || (config.fallback ? _copReactComponents.Utils.interpolateString(config.fallback, data) : '');
32
27
  }
33
-
34
28
  return (config === null || config === void 0 ? void 0 : config.value) || null;
35
29
  };
36
-
37
30
  var _default = getFirstOf;
38
31
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('Utils.Operate.addToFormData', function () {
8
6
  var DATA = {
9
7
  name: 'sam',
@@ -4,24 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
13
+
16
14
  var getValueOrField = function getValueOrField(config, data) {
17
15
  if (config !== null && config !== void 0 && config.value) {
18
16
  return config.value;
19
17
  }
20
-
21
18
  var path = _copReactComponents.Utils.interpolateString(config === null || config === void 0 ? void 0 : config.field, data);
22
-
23
19
  return (0, _getSourceData.default)(data, path);
24
20
  };
21
+
25
22
  /**
26
23
  * Searches for a value in an array in data that matches a value given
27
24
  * in config. A cutoff index can be provided in config if the search
@@ -31,52 +28,41 @@ var getValueOrField = function getValueOrField(config, data) {
31
28
  * @param {object} data A page's formData.
32
29
  * @returns The index of the matching value if one exists, or null.
33
30
  */
34
-
35
-
36
31
  var getIndexOfMatchingValueIn = function getIndexOfMatchingValueIn(config, data) {
37
32
  if (!config || !data) {
38
33
  return null;
39
34
  }
40
-
41
35
  var targetPath = _copReactComponents.Utils.interpolateString(config.target, data);
42
-
43
36
  var target = (0, _getSourceData.default)(data, targetPath);
44
37
  var value = getValueOrField(config, data);
45
38
  var cutoff = getValueOrField(config.cutoff, data);
46
39
  var ignore = getValueOrField(config.ignore, data);
47
40
  var result = null;
48
-
49
41
  if (target && value && Array.isArray(target)) {
50
42
  target.every(function (entry, index) {
51
43
  if (index === cutoff) {
52
44
  return false;
53
45
  }
54
-
55
46
  if (index === ignore) {
56
47
  return true;
57
- } // Here we're simply checking if value matches the entry itself. This
48
+ }
49
+ // Here we're simply checking if value matches the entry itself. This
58
50
  // will be enough of a check for arrays of simple values.
59
-
60
-
61
51
  if (entry === value) {
62
52
  result = index;
63
53
  return false;
64
- } // If the last check failed and there is a config.key defined, then
54
+ }
55
+ // If the last check failed and there is a config.key defined, then
65
56
  // we're most likely checking an array of objects and should use the
66
57
  // key to index in and find a matching value.
67
-
68
-
69
58
  if (config.key && (0, _getSourceData.default)(entry, config.key) === value) {
70
59
  result = index;
71
60
  return false;
72
61
  }
73
-
74
62
  return true;
75
63
  });
76
64
  }
77
-
78
65
  return typeof result === 'number' ? result.toString() : result;
79
66
  };
80
-
81
67
  var _default = getIndexOfMatchingValueIn;
82
68
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _getIndexOfMatchingValueIn = _interopRequireDefault(require("./getIndexOfMatchingValueIn"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
8
6
  var DATA = {
9
7
  arrayOfValues: ['abc', 'bcd', 'cde', 'def', {
@@ -65,6 +63,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
65
63
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
66
64
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
67
65
  });
66
+
68
67
  it('Should handle a cutoff field being specified', function () {
69
68
  var CONFIG = {
70
69
  target: 'arrayOfValues',
@@ -76,6 +75,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
76
75
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
77
76
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
78
77
  });
78
+
79
79
  it('Should handle interpolated string for cutoff.field', function () {
80
80
  // eslint-disable-next-line no-template-curly-in-string
81
81
  var CONFIG = {
@@ -88,6 +88,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
88
88
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
89
89
  expect(result).toEqual(null); // Cutoff occurs before matching value is reached.
90
90
  });
91
+
91
92
  it('Should handle an ignore value being specified', function () {
92
93
  var CONFIG = {
93
94
  target: 'arrayOfValues',
@@ -99,6 +100,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
99
100
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
100
101
  expect(result).toEqual(null); // Should ignore the matching value.
101
102
  });
103
+
102
104
  it('Should handle an ignore field being specified', function () {
103
105
  var CONFIG = {
104
106
  target: 'arrayOfValues',
@@ -110,6 +112,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
110
112
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
111
113
  expect(result).toEqual(null); // Should ignore the matching value.
112
114
  });
115
+
113
116
  it('Should handle interpolated string for ignore.field', function () {
114
117
  // eslint-disable-next-line no-template-curly-in-string
115
118
  var CONFIG = {
@@ -122,6 +125,7 @@ describe('Utils.Operate.getIndexOfPriorMatchingValueIn', function () {
122
125
  var result = (0, _getIndexOfMatchingValueIn.default)(CONFIG, DATA);
123
126
  expect(result).toEqual(null); // Should ignore the matching value.
124
127
  });
128
+
125
129
  it('Should handle interpolated string for target', function () {
126
130
  // eslint-disable-next-line no-template-curly-in-string
127
131
  var CONFIG = {
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  var Operate = {
13
10
  runPageOperations: _runPageOperations.default
14
11
  };
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
16
13
 
17
14
  /**
@@ -23,15 +20,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
20
  */
24
21
  var persistValueInFormData = function persistValueInFormData(config, data, onChange) {
25
22
  var value;
26
-
27
23
  if (config !== null && config !== void 0 && config.field) {
28
24
  var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
29
-
30
25
  value = (0, _getSourceData.default)(data, fieldPath);
31
26
  } else {
32
27
  value = config === null || config === void 0 ? void 0 : config.value;
33
28
  }
34
-
35
29
  if (value && config.name && data[config.name] !== value) {
36
30
  onChange({
37
31
  target: {
@@ -41,6 +35,5 @@ var persistValueInFormData = function persistValueInFormData(config, data, onCha
41
35
  });
42
36
  }
43
37
  };
44
-
45
38
  var _default = persistValueInFormData;
46
39
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _persistValueInFormData = _interopRequireDefault(require("./persistValueInFormData"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('Utils.Operate.persistValueInFormData', function () {
8
6
  var DATA = {
9
7
  alpha: 'abc',
@@ -11,13 +9,11 @@ describe('Utils.Operate.persistValueInFormData', function () {
11
9
  charlie: '123'
12
10
  };
13
11
  var ON_CHANGE_COUNT = 0;
14
-
15
12
  var ON_CHANGE = function ON_CHANGE(_ref) {
16
13
  var target = _ref.target;
17
14
  DATA[target.name] = target.value;
18
15
  ON_CHANGE_COUNT++;
19
16
  };
20
-
21
17
  beforeEach(function () {
22
18
  DATA = {
23
19
  alpha: 'abc',
@@ -4,27 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _checkValueIsTruthy = _interopRequireDefault(require("./checkValueIsTruthy"));
11
-
12
9
  var _getIndexOfMatchingValueIn = _interopRequireDefault(require("./getIndexOfMatchingValueIn"));
13
-
14
10
  var _persistValueInFormData = _interopRequireDefault(require("./persistValueInFormData"));
15
-
16
11
  var _setValueInFormData = _interopRequireDefault(require("./setValueInFormData"));
17
-
18
12
  var _shouldRun = _interopRequireDefault(require("./shouldRun"));
19
-
20
13
  var _setDataItem = _interopRequireDefault(require("../Data/setDataItem"));
21
-
22
14
  var _getFirstOf = _interopRequireDefault(require("./getFirstOf"));
23
-
24
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
16
  // Global imports.
17
+
27
18
  // Local imports.
19
+
28
20
  var functions = {
29
21
  checkValueIsTruthy: _checkValueIsTruthy.default,
30
22
  getIndexOfMatchingValueIn: _getIndexOfMatchingValueIn.default,
@@ -32,16 +24,14 @@ var functions = {
32
24
  setValueInFormData: _setValueInFormData.default,
33
25
  getFirstOf: _getFirstOf.default
34
26
  };
35
-
36
27
  var doOperation = function doOperation(config, data, onChange) {
37
28
  var fn = functions[config.function];
38
-
39
29
  if (typeof fn === 'function') {
40
30
  return fn(config, data, onChange);
41
31
  }
42
-
43
32
  return undefined;
44
33
  };
34
+
45
35
  /**
46
36
  * Run operations, specified in a page's config, on formData.
47
37
  *
@@ -59,27 +49,21 @@ var doOperation = function doOperation(config, data, onChange) {
59
49
  * @param {function} onChange The page's onChange handler.
60
50
  * @returns data with the results of any operations included.
61
51
  */
62
-
63
-
64
52
  var runPageOperations = function runPageOperations(config, data, onChange) {
65
53
  if (config !== null && config !== void 0 && config.operations && data) {
66
54
  config.operations.forEach(function (op) {
67
55
  if ((0, _shouldRun.default)(op.run_when, data)) {
68
56
  var result = doOperation(op, data, onChange);
69
-
70
57
  if (op.output) {
71
58
  // Remove array indexers and replace them with dot separators. This ensures that outputPath will
72
59
  // work with setDataItem.
73
60
  var outputPath = _copReactComponents.Utils.interpolateString(op.output, data).replace('[', '.').replace(']', '');
74
-
75
61
  (0, _setDataItem.default)(data, outputPath, result);
76
62
  }
77
63
  }
78
64
  });
79
65
  }
80
-
81
66
  return data;
82
67
  };
83
-
84
68
  var _default = runPageOperations;
85
69
  exports.default = _default;
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _runPageOperations = _interopRequireDefault(require("./runPageOperations"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
5
+ 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); }
7
6
  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; }
8
-
9
7
  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; }
10
-
11
- 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; }
12
-
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
11
  describe('Utils.Operate.runPageOperations', function () {
14
12
  var DATA = {
15
13
  alpha: 'abc',
@@ -4,24 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
13
+
16
14
  var setValueInFormData = function setValueInFormData(config, data) {
17
15
  if (config !== null && config !== void 0 && config.field) {
18
16
  var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
19
-
20
17
  return (0, _getSourceData.default)(data, fieldPath) || null;
21
18
  }
22
-
23
19
  return (config === null || config === void 0 ? void 0 : config.value) || null;
24
20
  };
25
-
26
21
  var _default = setValueInFormData;
27
22
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _setValueInFormData = _interopRequireDefault(require("./setValueInFormData"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('Utils.Operate.addToFormData', function () {
8
6
  var DATA = {
9
7
  a: '1',
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
9
-
10
8
  var _getSourceData = _interopRequireDefault(require("../Data/getSourceData"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  // Global imports.
11
+
15
12
  // Local imports.
16
13
 
17
14
  /**
@@ -24,44 +21,34 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
21
  var shouldRun = function shouldRun(config, data) {
25
22
  if (config !== null && config !== void 0 && config.condition) {
26
23
  var fieldPath = _copReactComponents.Utils.interpolateString(config.field, data);
27
-
28
24
  var fieldValue = (0, _getSourceData.default)(data, fieldPath);
29
-
30
25
  switch (config.condition) {
31
26
  // Only run the operation if a given field's value has changed.
32
27
  case 'changes':
33
28
  var lastPath = "".concat(fieldPath, "LastValue");
34
29
  var lastValue = config[lastPath] || null;
35
-
36
30
  if (lastValue === null) {
37
31
  // If there isn't a last value then we assume
38
32
  // that this is the first render.
39
33
  config[lastPath] = fieldValue;
40
34
  return false;
41
35
  }
42
-
43
36
  if (fieldValue !== lastValue) {
44
37
  config[lastPath] = fieldValue;
45
38
  return true;
46
39
  }
47
-
48
40
  return false;
49
41
  // Only run the operation if a given field's value is truthy.
50
-
51
42
  case 'isTruthy':
52
43
  return !!fieldValue;
53
44
  // Only run the operation if a given field's value is falsy.
54
-
55
45
  case 'isFalsy':
56
46
  return !fieldValue;
57
-
58
47
  default:
59
48
  return false;
60
49
  }
61
50
  }
62
-
63
51
  return true;
64
52
  };
65
-
66
53
  var _default = shouldRun;
67
54
  exports.default = _default;
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _shouldRun = _interopRequireDefault(require("./shouldRun"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
5
+ 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); }
7
6
  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; }
8
-
9
7
  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; }
10
-
11
- 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; }
12
-
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
11
  describe('Utils.Operate.shouldRun', function () {
14
12
  var DATA = {
15
13
  alpha: 'abc',
@@ -25,15 +23,14 @@ describe('Utils.Operate.shouldRun', function () {
25
23
  };
26
24
  var result = (0, _shouldRun.default)(CONFIG, DATA);
27
25
  expect(result).toEqual(false); // Expect false as this is the first render.
28
-
29
26
  result = (0, _shouldRun.default)(CONFIG, DATA);
30
27
  expect(result).toEqual(false); // Expect false as the field hasn't changed.
31
-
32
28
  result = (0, _shouldRun.default)(CONFIG, _objectSpread(_objectSpread({}, DATA), {}, {
33
29
  alpha: 'bcd'
34
30
  }));
35
31
  expect(result).toEqual(true); // Expect true as the field's value has been updated.
36
32
  });
33
+
37
34
  it('Should return true when the condition is \'isTruthy\' and target value is truthy', function () {
38
35
  var CONFIG = {
39
36
  condition: 'isTruthy',
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  /**
9
8
  * Additional validator for the Container component type.
10
9
  * @param {object} data the form data
@@ -16,12 +15,10 @@ exports.default = void 0;
16
15
  */
17
16
  var conditionallyRequired = function conditionallyRequired(data, config, component) {
18
17
  var _data$component$id, _data$component$id2;
19
-
20
18
  var conditional = (_data$component$id = data[component.id]) === null || _data$component$id === void 0 ? void 0 : _data$component$id[config.base];
21
19
  var checkFieldvalue = (_data$component$id2 = data[component.id]) === null || _data$component$id2 === void 0 ? void 0 : _data$component$id2[config.check];
22
20
  var checkHasValue = checkFieldvalue && (checkFieldvalue === null || checkFieldvalue === void 0 ? void 0 : checkFieldvalue.length) > 0;
23
21
  return !!(conditional || checkHasValue);
24
22
  };
25
-
26
23
  var _default = conditionallyRequired;
27
24
  exports.default = _default;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _conditionallyRequired = _interopRequireDefault(require("./conditionallyRequired"));
4
-
5
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
-
7
5
  describe('utils', function () {
8
6
  describe('Validate', function () {
9
7
  describe('additional', function () {