@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +12 -12
  2. package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
  6. package/dist/components/CollectionPage/CollectionPage.js +75 -59
  7. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  8. package/dist/components/CollectionSummary/BannerStrip.js +15 -14
  9. package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
  10. package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
  11. package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
  12. package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
  14. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  15. package/dist/components/CollectionSummary/Confirmation.scss +1 -1
  16. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  17. package/dist/components/CollectionSummary/RenderListView.js +54 -56
  18. package/dist/components/CollectionSummary/RenderListView.scss +10 -1
  19. package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
  20. package/dist/components/CollectionSummary/SummaryCard.js +135 -145
  21. package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
  22. package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
  24. package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
  25. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
  27. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
  28. package/dist/components/FormComponent/Collection.js +81 -108
  29. package/dist/components/FormComponent/Collection.test.js +909 -943
  30. package/dist/components/FormComponent/Container.js +40 -38
  31. package/dist/components/FormComponent/Container.test.js +314 -345
  32. package/dist/components/FormComponent/FormComponent.js +80 -71
  33. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  34. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  36. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  41. package/dist/components/FormComponent/helpers/index.js +4 -4
  42. package/dist/components/FormPage/FormPage.js +65 -80
  43. package/dist/components/FormPage/FormPage.scss +1 -1
  44. package/dist/components/FormPage/FormPage.test.js +127 -163
  45. package/dist/components/FormRenderer/FormRenderer.js +150 -183
  46. package/dist/components/FormRenderer/FormRenderer.scss +1 -1
  47. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  52. package/dist/components/FormRenderer/handlers/index.js +1 -1
  53. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  54. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  56. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  61. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  63. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  75. package/dist/components/FormRenderer/helpers/index.js +2 -4
  76. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  77. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  78. package/dist/components/FormRenderer/onPageAction.js +50 -48
  79. package/dist/components/FormRenderer/onPageAction.test.js +241 -217
  80. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  81. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  82. package/dist/components/PageActions/ActionButton.js +12 -15
  83. package/dist/components/PageActions/ActionButton.test.js +56 -78
  84. package/dist/components/PageActions/PageActions.js +10 -10
  85. package/dist/components/PageActions/PageActions.test.js +86 -115
  86. package/dist/components/SummaryList/GroupAction.js +9 -17
  87. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  88. package/dist/components/SummaryList/RowAction.js +11 -16
  89. package/dist/components/SummaryList/RowAction.test.js +37 -33
  90. package/dist/components/SummaryList/SummaryList.js +21 -26
  91. package/dist/components/SummaryList/SummaryList.scss +2 -2
  92. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  94. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  95. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  96. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  98. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  100. package/dist/components/SummaryList/helpers/index.js +1 -1
  101. package/dist/components/TaskList/Task.js +19 -29
  102. package/dist/components/TaskList/Task.test.js +83 -76
  103. package/dist/components/TaskList/TaskList.js +45 -71
  104. package/dist/components/TaskList/TaskList.scss +1 -1
  105. package/dist/components/TaskList/TaskList.test.js +113 -111
  106. package/dist/components/TaskList/TaskState.js +7 -5
  107. package/dist/components/TaskList/TaskState.test.js +52 -45
  108. package/dist/components/index.js +7 -7
  109. package/dist/context/HooksContext/HooksContext.js +57 -80
  110. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  111. package/dist/context/HooksContext/index.js +3 -4
  112. package/dist/context/ValidationContext/ValidationContext.js +65 -72
  113. package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
  114. package/dist/context/ValidationContext/index.js +3 -4
  115. package/dist/context/index.js +2 -2
  116. package/dist/hooks/index.js +9 -10
  117. package/dist/hooks/useAxios.js +14 -40
  118. package/dist/hooks/useGetRequest.js +61 -97
  119. package/dist/hooks/useHooks.js +1 -3
  120. package/dist/hooks/useRefData.js +27 -40
  121. package/dist/hooks/useValidation.js +1 -3
  122. package/dist/index.js +13 -14
  123. package/dist/models/CollectionLabels.js +1 -1
  124. package/dist/models/ComponentTypes.js +25 -25
  125. package/dist/models/EventTypes.js +4 -4
  126. package/dist/models/FormPages.js +4 -4
  127. package/dist/models/FormTypes.js +8 -8
  128. package/dist/models/HubFormats.js +3 -3
  129. package/dist/models/PageAction.js +44 -38
  130. package/dist/models/TaskStates.js +29 -28
  131. package/dist/models/index.js +9 -9
  132. package/dist/setupTests.js +30 -31
  133. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  134. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  136. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  138. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  139. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  140. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  142. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  148. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  150. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  151. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  152. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  153. package/dist/utils/CheckYourAnswers/index.js +1 -1
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
  155. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
  157. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  159. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
  161. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  163. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  165. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  166. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  167. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  168. package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
  169. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
  170. package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
  171. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  172. package/dist/utils/CollectionPage/index.js +3 -1
  173. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  174. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  176. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
  178. package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
  179. package/dist/utils/Component/addShowWhen.js +4 -8
  180. package/dist/utils/Component/addShowWhen.test.js +37 -37
  181. package/dist/utils/Component/applyToComponentTree.js +18 -18
  182. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  183. package/dist/utils/Component/cleanAttributes.js +10 -13
  184. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  185. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  186. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  187. package/dist/utils/Component/getComponent.js +88 -94
  188. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  190. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  191. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  192. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  193. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  195. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  196. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  197. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  198. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  199. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  200. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  201. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  202. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  203. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  204. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  205. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  206. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  207. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  208. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  209. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  210. package/dist/utils/Component/getDefaultValue.js +6 -8
  211. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  212. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  213. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  214. package/dist/utils/Component/index.js +1 -1
  215. package/dist/utils/Component/isEditable.js +2 -4
  216. package/dist/utils/Component/isEditable.test.js +14 -15
  217. package/dist/utils/Component/optionIsSelected.js +1 -1
  218. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  219. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  220. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  221. package/dist/utils/Component/showComponent.js +1 -1
  222. package/dist/utils/Component/showComponent.test.js +28 -28
  223. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  224. package/dist/utils/Condition/index.js +1 -1
  225. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  226. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  227. package/dist/utils/Condition/meetsCondition.js +28 -19
  228. package/dist/utils/Condition/meetsCondition.test.js +476 -376
  229. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  230. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  231. package/dist/utils/Condition/setupConditions.js +13 -18
  232. package/dist/utils/Condition/setupConditions.test.js +7 -7
  233. package/dist/utils/Container/getEditableComponents.js +3 -5
  234. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  235. package/dist/utils/Container/index.js +1 -1
  236. package/dist/utils/Container/setupNesting.js +16 -20
  237. package/dist/utils/Container/setupNesting.test.js +27 -30
  238. package/dist/utils/Container/showContainer.js +3 -7
  239. package/dist/utils/Container/showContainer.test.js +30 -30
  240. package/dist/utils/Data/applyFormula.js +38 -48
  241. package/dist/utils/Data/applyFormula.test.js +20 -20
  242. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  243. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  244. package/dist/utils/Data/getDataPath.js +18 -28
  245. package/dist/utils/Data/getDataPath.test.js +12 -12
  246. package/dist/utils/Data/getOptions.js +29 -25
  247. package/dist/utils/Data/getOptions.test.js +93 -20
  248. package/dist/utils/Data/getSourceData.js +6 -19
  249. package/dist/utils/Data/getSourceData.test.js +84 -80
  250. package/dist/utils/Data/index.js +1 -1
  251. package/dist/utils/Data/nestInRefdataOptions.js +42 -0
  252. package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
  253. package/dist/utils/Data/refDataToOptions.js +10 -13
  254. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  255. package/dist/utils/Data/setDataItem.js +7 -8
  256. package/dist/utils/Data/setDataItem.test.js +37 -37
  257. package/dist/utils/Data/setupFormData.js +13 -21
  258. package/dist/utils/Data/setupFormData.test.js +51 -50
  259. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  260. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  261. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  262. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  263. package/dist/utils/FormPage/getConditionalText.js +3 -3
  264. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  265. package/dist/utils/FormPage/getFormPage.js +15 -16
  266. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  267. package/dist/utils/FormPage/getFormPages.js +7 -12
  268. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  269. package/dist/utils/FormPage/getPageActions.js +9 -15
  270. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  271. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  272. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  273. package/dist/utils/FormPage/index.js +2 -4
  274. package/dist/utils/FormPage/showFormPage.js +3 -7
  275. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  276. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  277. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  278. package/dist/utils/FormPage/useComponent.js +21 -28
  279. package/dist/utils/FormPage/useComponent.test.js +77 -79
  280. package/dist/utils/Format/formatData.js +1 -1
  281. package/dist/utils/Format/formatData.test.js +18 -18
  282. package/dist/utils/Format/formatDataForComponent.js +5 -6
  283. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  284. package/dist/utils/Format/formatDataForForm.js +6 -8
  285. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  286. package/dist/utils/Format/formatDataForPage.js +4 -5
  287. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  288. package/dist/utils/Format/index.js +1 -1
  289. package/dist/utils/Hub/getFormHub.js +1 -1
  290. package/dist/utils/Hub/getFormHub.test.js +28 -31
  291. package/dist/utils/Hub/index.js +1 -1
  292. package/dist/utils/Meta/constants.js +2 -2
  293. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  294. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  295. package/dist/utils/Meta/documents/index.js +1 -1
  296. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  297. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  298. package/dist/utils/Meta/index.js +1 -1
  299. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  300. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  301. package/dist/utils/Operate/getFirstOf.js +5 -5
  302. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  303. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  304. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  305. package/dist/utils/Operate/index.js +1 -1
  306. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  307. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  308. package/dist/utils/Operate/runPageOperations.js +7 -7
  309. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  310. package/dist/utils/Operate/setValueInFormData.js +2 -2
  311. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  312. package/dist/utils/Operate/shouldRun.js +6 -6
  313. package/dist/utils/Operate/shouldRun.test.js +21 -27
  314. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  315. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  316. package/dist/utils/Validate/additional/index.js +6 -6
  317. package/dist/utils/Validate/additional/index.test.js +12 -12
  318. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  319. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  320. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  321. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  322. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  323. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  324. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  325. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  326. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  327. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  328. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  330. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  331. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  332. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  333. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  334. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  336. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  337. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  338. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  339. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  340. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  341. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  342. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  343. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  344. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  345. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  346. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  347. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  348. package/dist/utils/Validate/additional/utils.js +9 -22
  349. package/dist/utils/Validate/index.js +1 -1
  350. package/dist/utils/Validate/validateCollection.js +19 -25
  351. package/dist/utils/Validate/validateCollection.test.js +74 -66
  352. package/dist/utils/Validate/validateComponent.js +17 -15
  353. package/dist/utils/Validate/validateComponent.test.js +167 -146
  354. package/dist/utils/Validate/validateContainer.js +16 -19
  355. package/dist/utils/Validate/validateContainer.test.js +84 -45
  356. package/dist/utils/Validate/validateDate.js +15 -21
  357. package/dist/utils/Validate/validateDate.test.js +31 -32
  358. package/dist/utils/Validate/validateEmail.js +6 -8
  359. package/dist/utils/Validate/validateEmail.test.js +25 -25
  360. package/dist/utils/Validate/validateMultifile.js +5 -7
  361. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  362. package/dist/utils/Validate/validatePage.js +24 -18
  363. package/dist/utils/Validate/validatePage.test.js +263 -182
  364. package/dist/utils/Validate/validateRegex.js +3 -5
  365. package/dist/utils/Validate/validateRegex.test.js +14 -14
  366. package/dist/utils/Validate/validateRequired.js +4 -6
  367. package/dist/utils/Validate/validateRequired.test.js +18 -18
  368. package/dist/utils/Validate/validateTextArea.js +4 -6
  369. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  370. package/dist/utils/Validate/validateTime.js +11 -18
  371. package/dist/utils/Validate/validateTime.test.js +16 -16
  372. package/dist/utils/index.js +7 -9
  373. package/package.json +5 -5
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -4,22 +4,20 @@ var _models = require("../../../models");
4
4
  var _PageAction = require("../../../models/PageAction");
5
5
  var _getSubmissionStatus = _interopRequireDefault(require("./getSubmissionStatus"));
6
6
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
11
- describe('components', function () {
12
- describe('FormRenderer', function () {
13
- describe('helpers', function () {
14
- describe('getSubmissionStatus', function () {
15
- var OPTIONS = [{
7
+ // Local imports
8
+
9
+ describe('components', () => {
10
+ describe('FormRenderer', () => {
11
+ describe('helpers', () => {
12
+ describe('getSubmissionStatus', () => {
13
+ const OPTIONS = [{
16
14
  value: 'romeo',
17
15
  label: 'Romeo'
18
16
  }, {
19
17
  value: 'juliet',
20
18
  label: 'Juliet'
21
19
  }];
22
- var RADIOS = {
20
+ const RADIOS = {
23
21
  id: 'radios',
24
22
  fieldId: 'radios',
25
23
  type: _models.ComponentTypes.RADIOS,
@@ -27,29 +25,29 @@ describe('components', function () {
27
25
  options: OPTIONS
28
26
  }
29
27
  };
30
- var TEXT = {
28
+ const TEXT = {
31
29
  id: 'text',
32
30
  fieldId: 'text',
33
31
  type: _models.ComponentTypes.TEXT
34
32
  };
35
- var HTML = {
33
+ const HTML = {
36
34
  type: _models.ComponentTypes.HTML,
37
35
  content: 'HTML'
38
36
  };
39
- var SHOW_WHEN_JULIET = {
37
+ const SHOW_WHEN_JULIET = {
40
38
  field: RADIOS.fieldId,
41
39
  op: '=',
42
40
  value: OPTIONS[1].value
43
41
  };
44
- var SHOW_WHEN_ROMEO = {
42
+ const SHOW_WHEN_ROMEO = {
45
43
  field: RADIOS.fieldId,
46
44
  op: '=',
47
45
  value: OPTIONS[0].value
48
46
  };
49
- var FORM_DATA = {
47
+ const FORM_DATA = {
50
48
  radios: OPTIONS[0].value
51
49
  }; // 'romeo'
52
- var PAGES = [{
50
+ const PAGES = [{
53
51
  id: 'alpha'
54
52
  }, {
55
53
  id: 'bravo'
@@ -68,18 +66,18 @@ describe('components', function () {
68
66
  components: [TEXT],
69
67
  show_when: SHOW_WHEN_ROMEO
70
68
  }];
71
- describe("when the action type is '".concat(_models.PageAction.TYPES.NAVIGATE, "'"), function () {
72
- it('should return undefined if the action has no page property', function () {
73
- var ACTION = {
69
+ describe("when the action type is '".concat(_models.PageAction.TYPES.NAVIGATE, "'"), () => {
70
+ it('should return undefined if the action has no page property', () => {
71
+ const ACTION = {
74
72
  type: _models.PageAction.TYPES.NAVIGATE
75
73
  };
76
74
  expect((0, _getSubmissionStatus.default)(_models.FormTypes.HUB, PAGES, PAGES[0].id, ACTION, FORM_DATA)).toMatchObject({
77
75
  page: undefined
78
76
  });
79
77
  });
80
- it('should return the page on the action if it exists among the pages', function () {
81
- var PAGE = PAGES[1].id;
82
- var ACTION = {
78
+ it('should return the page on the action if it exists among the pages', () => {
79
+ const PAGE = PAGES[1].id;
80
+ const ACTION = {
83
81
  type: _models.PageAction.TYPES.NAVIGATE,
84
82
  page: PAGE
85
83
  };
@@ -87,9 +85,9 @@ describe('components', function () {
87
85
  page: PAGE
88
86
  });
89
87
  });
90
- it('should return undefined if the page on the action does not exist among the pages', function () {
91
- var PAGE = 'golf';
92
- var ACTION = {
88
+ it('should return undefined if the page on the action does not exist among the pages', () => {
89
+ const PAGE = 'golf';
90
+ const ACTION = {
93
91
  type: _models.PageAction.TYPES.NAVIGATE,
94
92
  page: PAGE
95
93
  };
@@ -98,11 +96,11 @@ describe('components', function () {
98
96
  });
99
97
  });
100
98
  });
101
- describe("when the action type is '".concat(_models.PageAction.TYPES.SAVE_AND_RETURN, "'"), function () {
102
- Object.values(_models.FormTypes).forEach(function (formType) {
99
+ describe("when the action type is '".concat(_models.PageAction.TYPES.SAVE_AND_RETURN, "'"), () => {
100
+ Object.values(_models.FormTypes).forEach(formType => {
103
101
  if (formType !== _models.FormTypes.TASK && formType !== _models.FormTypes.FORM_WITH_TASK) {
104
- it("should return the current page if the form type is '".concat(formType, "'"), function () {
105
- var ACTION = _models.PageAction.DEFAULTS.saveAndReturn;
102
+ it("should return the current page if the form type is '".concat(formType, "'"), () => {
103
+ const ACTION = _models.PageAction.DEFAULTS.saveAndReturn;
106
104
  expect((0, _getSubmissionStatus.default)(formType, PAGES, PAGES[0].id, ACTION, FORM_DATA)).toMatchObject({
107
105
  page: PAGES[0].id
108
106
  });
@@ -110,15 +108,15 @@ describe('components', function () {
110
108
  }
111
109
  });
112
110
  });
113
- describe("when the form type is '".concat(_models.FormTypes.HUB, "'"), function () {
114
- var FORM_TYPE = _models.FormTypes.HUB;
115
- it("should return '".concat(_models.FormPages.HUB, "' by default"), function () {
111
+ describe("when the form type is '".concat(_models.FormTypes.HUB, "'"), () => {
112
+ const FORM_TYPE = _models.FormTypes.HUB;
113
+ it("should return '".concat(_models.FormPages.HUB, "' by default"), () => {
116
114
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES)).toMatchObject({
117
115
  page: _models.FormPages.HUB
118
116
  });
119
117
  });
120
- it('should return action.page if specified', function () {
121
- var ACTION = {
118
+ it('should return action.page if specified', () => {
119
+ const ACTION = {
122
120
  page: 'bob'
123
121
  };
124
122
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, undefined, ACTION, FORM_DATA)).toMatchObject({
@@ -126,63 +124,63 @@ describe('components', function () {
126
124
  });
127
125
  });
128
126
  });
129
- describe("when the form type is '".concat(_models.FormTypes.CYA, "'"), function () {
130
- var FORM_TYPE = _models.FormTypes.CYA;
131
- var ACTION = _models.PageAction.DEFAULTS.saveAndContinue;
132
- it('should return the first page by default', function () {
127
+ describe("when the form type is '".concat(_models.FormTypes.CYA, "'"), () => {
128
+ const FORM_TYPE = _models.FormTypes.CYA;
129
+ const ACTION = _models.PageAction.DEFAULTS.saveAndContinue;
130
+ it('should return the first page by default', () => {
133
131
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, ACTION, FORM_DATA)).toMatchObject({
134
132
  page: PAGES[0].id
135
133
  });
136
134
  });
137
- it('should return the second page when on the first page', function () {
135
+ it('should return the second page when on the first page', () => {
138
136
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[0].id, ACTION, FORM_DATA)).toMatchObject({
139
137
  page: PAGES[1].id
140
138
  });
141
139
  });
142
- it('should return the third page when on the second page', function () {
140
+ it('should return the third page when on the second page', () => {
143
141
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[1].id, ACTION, FORM_DATA)).toMatchObject({
144
142
  page: PAGES[2].id
145
143
  });
146
144
  });
147
- it("should return the fifth page when on the third page because the fourth page show_when is not met", function () {
145
+ it("should return the fifth page when on the third page because the fourth page show_when is not met", () => {
148
146
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[2].id, ACTION, FORM_DATA)).toMatchObject({
149
147
  page: PAGES[4].id
150
148
  });
151
149
  });
152
- it("should return the sixth page when on the fifth page because the sixth page show_when is met", function () {
150
+ it("should return the sixth page when on the fifth page because the sixth page show_when is met", () => {
153
151
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[4].id, ACTION, FORM_DATA)).toMatchObject({
154
152
  page: PAGES[5].id
155
153
  });
156
154
  });
157
- it("should return '".concat(_models.FormPages.CYA, "' when on the sixth (last) page"), function () {
158
- var lastPageIndex = PAGES.length - 1;
155
+ it("should return '".concat(_models.FormPages.CYA, "' when on the sixth (last) page"), () => {
156
+ const lastPageIndex = PAGES.length - 1;
159
157
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[lastPageIndex].id, ACTION, FORM_DATA)).toMatchObject({
160
158
  page: _models.FormPages.CYA
161
159
  });
162
160
  });
163
161
  });
164
- describe("when the form type is '".concat(_models.FormTypes.WIZARD, "'"), function () {
165
- var FORM_TYPE = _models.FormTypes.WIZARD;
166
- it('should return the first page by default', function () {
162
+ describe("when the form type is '".concat(_models.FormTypes.WIZARD, "'"), () => {
163
+ const FORM_TYPE = _models.FormTypes.WIZARD;
164
+ it('should return the first page by default', () => {
167
165
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES)).toMatchObject({
168
166
  page: PAGES[0].id
169
167
  });
170
168
  });
171
- it('should return the second page when on the first page', function () {
169
+ it('should return the second page when on the first page', () => {
172
170
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[0].id)).toMatchObject({
173
171
  page: PAGES[1].id
174
172
  });
175
173
  });
176
- it('should return undefined when on the last page', function () {
174
+ it('should return undefined when on the last page', () => {
177
175
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, PAGES[PAGES.length - 1].id)).toMatchObject({
178
176
  page: undefined
179
177
  });
180
178
  });
181
179
  });
182
- describe("when the form type is '".concat(_models.FormTypes.FORM, "'"), function () {
183
- var FORM_TYPE = _models.FormTypes.FORM;
184
- it("should always return the first page if there any pages and the action is not '".concat(_models.PageAction.TYPES.SAVE_AND_RETURN, "'"), function () {
185
- var ACTION = {
180
+ describe("when the form type is '".concat(_models.FormTypes.FORM, "'"), () => {
181
+ const FORM_TYPE = _models.FormTypes.FORM;
182
+ it("should always return the first page if there any pages and the action is not '".concat(_models.PageAction.TYPES.SAVE_AND_RETURN, "'"), () => {
183
+ const ACTION = {
186
184
  type: _models.PageAction.TYPES.SUBMIT,
187
185
  nextPageId: 'bob'
188
186
  };
@@ -199,91 +197,99 @@ describe('components', function () {
199
197
  page: PAGES[0].id
200
198
  });
201
199
  });
202
- it('should return undefined if there are no pages', function () {
200
+ it('should return undefined if there are no pages', () => {
203
201
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, [])).toMatchObject({
204
202
  page: undefined
205
203
  });
206
204
  });
207
205
  });
208
- describe("when the form type is '".concat(_models.FormTypes.TASK, "'"), function () {
209
- var FORM_TYPE = _models.FormTypes.TASK;
210
- it("should mark the current task as complete if the current page is '".concat(_models.FormPages.CYA, "' and it is marked as complete"), function () {
211
- var CURRENT_PAGE_ID = _models.FormPages.CYA;
212
- var TASK_NAME = 'taskName';
213
- var CURRENT_TASK = {
206
+ describe("when the form type is '".concat(_models.FormTypes.TASK, "'"), () => {
207
+ const FORM_TYPE = _models.FormTypes.TASK;
208
+ it("should mark the current task as complete if the current page is '".concat(_models.FormPages.CYA, "' and it is marked as complete"), () => {
209
+ const CURRENT_PAGE_ID = _models.FormPages.CYA;
210
+ const TASK_NAME = 'taskName';
211
+ const CURRENT_TASK = {
214
212
  name: TASK_NAME
215
213
  };
216
214
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, CURRENT_PAGE_ID, undefined, {}, CURRENT_TASK, true)).toMatchObject({
217
- tasks: _defineProperty({}, TASK_NAME, {
218
- complete: true
219
- })
215
+ tasks: {
216
+ [TASK_NAME]: {
217
+ complete: true
218
+ }
219
+ }
220
220
  });
221
221
  });
222
- it("should update the current task with the current page and a false complete flag if the next page is not '".concat(_models.FormPages.CYA, "'"), function () {
223
- var CURRENT_PAGE_ID = 'eventDate';
224
- var TASK_NAME = 'taskName';
225
- var CURRENT_TASK = {
222
+ it("should update the current task with the current page and a false complete flag if the next page is not '".concat(_models.FormPages.CYA, "'"), () => {
223
+ const CURRENT_PAGE_ID = 'eventDate';
224
+ const TASK_NAME = 'taskName';
225
+ const CURRENT_TASK = {
226
226
  name: TASK_NAME
227
227
  };
228
- var NEXT_PAGE_ID = 'eventMode';
229
- var ACTION = {
228
+ const NEXT_PAGE_ID = 'eventMode';
229
+ const ACTION = {
230
230
  type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
231
231
  page: NEXT_PAGE_ID
232
232
  };
233
233
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, CURRENT_PAGE_ID, ACTION, {}, CURRENT_TASK)).toMatchObject({
234
- tasks: _defineProperty({}, TASK_NAME, {
235
- complete: false,
236
- currentPage: NEXT_PAGE_ID
237
- })
234
+ tasks: {
235
+ [TASK_NAME]: {
236
+ complete: false,
237
+ currentPage: NEXT_PAGE_ID
238
+ }
239
+ }
238
240
  });
239
241
  });
240
- it("should mark the current task as complete if the action indicates as much", function () {
241
- var CURRENT_PAGE_ID = PAGES[0].id;
242
- var TASK_NAME = 'taskName';
243
- var CURRENT_TASK = {
242
+ it("should mark the current task as complete if the action indicates as much", () => {
243
+ const CURRENT_PAGE_ID = PAGES[0].id;
244
+ const TASK_NAME = 'taskName';
245
+ const CURRENT_TASK = {
244
246
  name: TASK_NAME,
245
247
  pages: [CURRENT_PAGE_ID]
246
248
  };
247
- var ACTION = {
249
+ const ACTION = {
248
250
  complete: true
249
251
  };
250
252
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, CURRENT_PAGE_ID, ACTION, {}, CURRENT_TASK, true)).toMatchObject({
251
- tasks: _defineProperty({}, TASK_NAME, {
252
- complete: true
253
- })
253
+ tasks: {
254
+ [TASK_NAME]: {
255
+ complete: true
256
+ }
257
+ }
254
258
  });
255
259
  });
256
- it("should mark the current task as complete if the current task is a pre-task-list task", function () {
257
- var CURRENT_PAGE_ID = PAGES[PAGES.length - 1].id;
258
- var TASK_NAME = undefined;
259
- var CURRENT_TASK = {
260
+ it("should mark the current task as complete if the current task is a pre-task-list task", () => {
261
+ const CURRENT_PAGE_ID = PAGES[PAGES.length - 1].id;
262
+ const TASK_NAME = undefined;
263
+ const CURRENT_TASK = {
260
264
  name: TASK_NAME
261
265
  };
262
- var ACTION = {
266
+ const ACTION = {
263
267
  complete: true
264
268
  };
265
- var TASKS = [{
269
+ const TASKS = [{
266
270
  type: 'pre-task-list',
267
271
  pages: PAGES
268
272
  }];
269
- var SECTIONS = [{
273
+ const SECTIONS = [{
270
274
  tasks: TASKS
271
275
  }];
272
276
  expect((0, _getSubmissionStatus.default)(FORM_TYPE, PAGES, CURRENT_PAGE_ID, ACTION, {}, CURRENT_TASK, true, SECTIONS)).toMatchObject({
273
- tasks: _defineProperty({}, TASK_NAME, {
274
- complete: true
275
- })
277
+ tasks: {
278
+ [TASK_NAME]: {
279
+ complete: true
280
+ }
281
+ }
276
282
  });
277
283
  });
278
- it('should not update the current task state if the current page does not belong in the task', function () {
279
- var CUSTOM_FORM_TYPE = _models.FormTypes.FORM_WITH_TASK;
280
- var ACTION = _models.PageAction.DEFAULTS.saveAndContinue;
281
- var CURRENT_TASK = {
284
+ it('should not update the current task state if the current page does not belong in the task', () => {
285
+ const CUSTOM_FORM_TYPE = _models.FormTypes.FORM_WITH_TASK;
286
+ const ACTION = _models.PageAction.DEFAULTS.saveAndContinue;
287
+ const CURRENT_TASK = {
282
288
  name: 'test-task',
283
289
  pages: ['page-a']
284
290
  };
285
- var CURRENT_PAGE_ID = 'page-b';
286
- var CUSTOM_FORM_DATA = {
291
+ const CURRENT_PAGE_ID = 'page-b';
292
+ const CUSTOM_FORM_DATA = {
287
293
  formStatus: {
288
294
  tasks: {
289
295
  'test-task': {
@@ -7,22 +7,20 @@ exports.default = void 0;
7
7
  var _models = require("../../../models");
8
8
  var _utils = _interopRequireDefault(require("../../../utils"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
10
+ // Local imports
11
+
16
12
  /**
17
13
  * @param {boolean} complete - true if task complete
18
14
  * @param {boolean} currentPage - true if current page
19
15
  * @param {TaskStates.TYPES|string} defaultState - default state to set task
20
16
  * @returns {TaskStates.TYPES|string} current task state
21
17
  */
22
- var getCurrentTaskState = function getCurrentTaskState(_ref) {
23
- var complete = _ref.complete,
24
- currentPage = _ref.currentPage;
25
- var defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _models.TaskStates.TYPES.NOT_STARTED;
18
+ const getCurrentTaskState = function (_ref) {
19
+ let {
20
+ complete,
21
+ currentPage
22
+ } = _ref;
23
+ let defaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _models.TaskStates.TYPES.NOT_STARTED;
26
24
  if (complete) {
27
25
  return _models.TaskStates.TYPES.COMPLETE;
28
26
  }
@@ -39,18 +37,18 @@ var getCurrentTaskState = function getCurrentTaskState(_ref) {
39
37
  * @param {boolean} ignoreSkipped - skipped tasks don't need to have been completed
40
38
  * @returns {boolean} true if dependent tasks complete
41
39
  */
42
- var allDependentTasksComplete = function allDependentTasksComplete(taskStates, mustBeComplete) {
43
- var ignoreSkipped = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
44
- return mustBeComplete.reduce(function (allComplete, taskName) {
45
- var task = taskStates[taskName];
40
+ const allDependentTasksComplete = function (taskStates, mustBeComplete) {
41
+ let ignoreSkipped = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
42
+ return mustBeComplete.reduce((allComplete, taskName) => {
43
+ const task = taskStates[taskName];
46
44
  if (ignoreSkipped && (task === null || task === void 0 ? void 0 : task.state) === _models.TaskStates.TYPES.SKIPPED) {
47
45
  return allComplete;
48
46
  }
49
47
  return allComplete && (task === null || task === void 0 ? void 0 : task.complete);
50
48
  }, true);
51
49
  };
52
- var isPreviousTaskComplete = function isPreviousTaskComplete(tasks, taskIndex) {
53
- var lastTaskState = tasks[taskIndex - 1].state;
50
+ const isPreviousTaskComplete = (tasks, taskIndex) => {
51
+ const lastTaskState = tasks[taskIndex - 1].state;
54
52
  if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
55
53
  return true;
56
54
  }
@@ -71,9 +69,9 @@ var isPreviousTaskComplete = function isPreviousTaskComplete(tasks, taskIndex) {
71
69
  * @returns {TYPES|string} new state
72
70
  */
73
71
 
74
- var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskStates) {
75
- var nonSequential = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
76
- var allowFirst = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
72
+ const updateTaskState = function (task, taskIndex, taskList, taskStates) {
73
+ let nonSequential = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
74
+ let allowFirst = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
77
75
  if (taskStates[task.name]) {
78
76
  return getCurrentTaskState(taskStates[task.name], task.state);
79
77
  }
@@ -83,7 +81,7 @@ var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskSt
83
81
  }
84
82
  return _models.TaskStates.TYPES.NOT_STARTED;
85
83
  }
86
- var notStarted = allowFirst;
84
+ let notStarted = allowFirst;
87
85
  if (taskIndex) {
88
86
  notStarted = isPreviousTaskComplete(taskList, taskIndex);
89
87
  }
@@ -102,14 +100,12 @@ var updateTaskState = function updateTaskState(task, taskIndex, taskList, taskSt
102
100
  * @param {boolean} allowFirst - true if first task can be started
103
101
  * @returns {object} - updated section
104
102
  */
105
- var updateTasks = function updateTasks(section, taskStates, nonSequential, allowFirst) {
106
- var clone = section.tasks.map(function (a) {
107
- return _objectSpread({}, a);
108
- });
109
- clone.filter(function (t) {
110
- return t.state !== _models.TaskStates.TYPES.SKIPPED;
111
- }).forEach(function (t, index) {
112
- var task = t;
103
+ const updateTasks = (section, taskStates, nonSequential, allowFirst) => {
104
+ const clone = section.tasks.map(a => ({
105
+ ...a
106
+ }));
107
+ clone.filter(t => t.state !== _models.TaskStates.TYPES.SKIPPED).forEach((t, index) => {
108
+ const task = t;
113
109
  task.state = updateTaskState(task, index, clone, taskStates, nonSequential, allowFirst);
114
110
  });
115
111
  return clone;
@@ -124,9 +120,9 @@ var updateTasks = function updateTasks(section, taskStates, nonSequential, allow
124
120
  * @returns {boolean} true if the last non-skipped section is complete, false
125
121
  * if not.
126
122
  */
127
- var isPreviousSectionComplete = function isPreviousSectionComplete(sections, currentIndex) {
123
+ const isPreviousSectionComplete = (sections, currentIndex) => {
128
124
  var _sections;
129
- var lastTaskState = (_sections = sections[currentIndex - 1]) === null || _sections === void 0 || (_sections = _sections.tasks.slice(-1)[0]) === null || _sections === void 0 ? void 0 : _sections.state;
125
+ const lastTaskState = (_sections = sections[currentIndex - 1]) === null || _sections === void 0 || (_sections = _sections.tasks.slice(-1)[0]) === null || _sections === void 0 ? void 0 : _sections.state;
130
126
  if (lastTaskState === _models.TaskStates.TYPES.COMPLETE) {
131
127
  return true;
132
128
  }
@@ -144,56 +140,62 @@ var isPreviousSectionComplete = function isPreviousSectionComplete(sections, cur
144
140
  * @param {object} data - current form data
145
141
  * @returns {object[]} - updated sections - note this is a clone
146
142
  */
147
- var getUpdatedSectionStates = function getUpdatedSectionStates(sections, taskStates) {
148
- var nonSequential = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
149
- var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
143
+ const getUpdatedSectionStates = function (sections, taskStates) {
144
+ let nonSequential = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
145
+ let data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
150
146
  // Make a clone and handle any hidden sections.
151
- var clone = sections.map(function (section) {
152
- var showWhen = section.show_when ? [section.show_when].flat() : [];
147
+ const clone = sections.map(section => {
148
+ const showWhen = section.show_when ? [section.show_when].flat() : [];
153
149
  if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
154
- return _objectSpread(_objectSpread({}, section), {}, {
150
+ return {
151
+ ...section,
155
152
  skipped: true,
156
- tasks: section.tasks.map(function (task) {
157
- return _objectSpread(_objectSpread({}, task), {}, {
158
- state: _models.TaskStates.TYPES.SKIPPED
159
- });
160
- })
161
- });
153
+ tasks: section.tasks.map(task => ({
154
+ ...task,
155
+ state: _models.TaskStates.TYPES.SKIPPED
156
+ }))
157
+ };
162
158
  }
163
159
  ;
164
- return _objectSpread({}, section);
160
+ return {
161
+ ...section
162
+ };
165
163
  });
166
164
 
167
165
  // Now iterate through the clone and handle any hidden tasks.
168
- clone.forEach(function (s) {
169
- var section = s;
170
- section.tasks = section.tasks.map(function (task) {
171
- var showWhen = task.show_when ? [task.show_when].flat() : [];
166
+ clone.forEach(s => {
167
+ const section = s;
168
+ section.tasks = section.tasks.map(task => {
169
+ const showWhen = task.show_when ? [task.show_when].flat() : [];
172
170
  if (data && !_utils.default.Condition.meetsAll(showWhen, data)) {
173
- return _objectSpread(_objectSpread({}, task), {}, {
171
+ return {
172
+ ...task,
174
173
  state: _models.TaskStates.TYPES.SKIPPED
175
- });
174
+ };
176
175
  }
177
- return _objectSpread({}, task);
176
+ return {
177
+ ...task
178
+ };
178
179
  });
179
180
  });
180
181
 
181
182
  // Update the taskStates to account for skipped tasks.
182
- var states = _objectSpread({}, taskStates);
183
- clone.forEach(function (section) {
184
- section.tasks.filter(function (t) {
185
- return t.state === _models.TaskStates.TYPES.SKIPPED;
186
- }).forEach(function (task) {
187
- states[task.name] = _objectSpread(_objectSpread({}, states[task.name]), {}, {
183
+ const states = {
184
+ ...taskStates
185
+ };
186
+ clone.forEach(section => {
187
+ section.tasks.filter(t => t.state === _models.TaskStates.TYPES.SKIPPED).forEach(task => {
188
+ states[task.name] = {
189
+ ...states[task.name],
188
190
  state: _models.TaskStates.TYPES.SKIPPED
189
- });
191
+ };
190
192
  });
191
193
  });
192
194
 
193
195
  // Now figure out all the task states.
194
- clone.forEach(function (s, index) {
195
- var section = s;
196
- var allowFirst = index === 0 || isPreviousSectionComplete(clone, index);
196
+ clone.forEach((s, index) => {
197
+ const section = s;
198
+ const allowFirst = index === 0 || isPreviousSectionComplete(clone, index);
197
199
  section.tasks = updateTasks(section, states, nonSequential, allowFirst);
198
200
  });
199
201
  return clone;