@ukhomeoffice/cop-react-form-renderer 6.5.1-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.test.js +463 -769
  5. package/dist/components/CollectionPage/CollectionPage.js +73 -63
  6. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +80 -76
  9. package/dist/components/CollectionSummary/CollectionSummary.js +97 -107
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +152 -142
  11. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  12. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  13. package/dist/components/CollectionSummary/RenderListView.js +45 -51
  14. package/dist/components/CollectionSummary/RenderListView.test.js +78 -77
  15. package/dist/components/CollectionSummary/SummaryCard.js +104 -135
  16. package/dist/components/CollectionSummary/SummaryCard.test.js +930 -962
  17. package/dist/components/CollectionSummary/SummaryCardDetails.js +72 -71
  18. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +128 -135
  19. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +30 -35
  20. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -74
  21. package/dist/components/FormComponent/Collection.js +74 -108
  22. package/dist/components/FormComponent/Collection.test.js +909 -1081
  23. package/dist/components/FormComponent/Container.js +40 -38
  24. package/dist/components/FormComponent/Container.test.js +314 -345
  25. package/dist/components/FormComponent/FormComponent.js +69 -72
  26. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  27. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  28. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  29. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  30. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  31. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  32. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  33. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  34. package/dist/components/FormComponent/helpers/index.js +4 -4
  35. package/dist/components/FormPage/FormPage.js +65 -80
  36. package/dist/components/FormPage/FormPage.test.js +127 -163
  37. package/dist/components/FormRenderer/FormRenderer.js +143 -179
  38. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  39. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  40. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  41. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  42. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  43. package/dist/components/FormRenderer/handlers/index.js +1 -1
  44. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  45. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  46. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  47. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  48. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  49. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  50. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  51. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  52. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  53. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  54. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  55. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  56. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  57. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  58. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  59. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  60. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  61. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  62. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  63. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  64. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  65. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  66. package/dist/components/FormRenderer/helpers/index.js +2 -4
  67. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  68. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  69. package/dist/components/FormRenderer/onPageAction.js +44 -47
  70. package/dist/components/FormRenderer/onPageAction.test.js +223 -213
  71. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  72. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  73. package/dist/components/PageActions/ActionButton.js +12 -15
  74. package/dist/components/PageActions/ActionButton.test.js +56 -78
  75. package/dist/components/PageActions/PageActions.js +10 -10
  76. package/dist/components/PageActions/PageActions.test.js +86 -115
  77. package/dist/components/SummaryList/GroupAction.js +9 -17
  78. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  79. package/dist/components/SummaryList/RowAction.js +11 -16
  80. package/dist/components/SummaryList/RowAction.test.js +37 -33
  81. package/dist/components/SummaryList/SummaryList.js +21 -26
  82. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  83. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  84. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  85. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  86. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  87. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  88. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  89. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  90. package/dist/components/SummaryList/helpers/index.js +1 -1
  91. package/dist/components/TaskList/Task.js +19 -29
  92. package/dist/components/TaskList/Task.test.js +83 -76
  93. package/dist/components/TaskList/TaskList.js +45 -71
  94. package/dist/components/TaskList/TaskList.test.js +113 -111
  95. package/dist/components/TaskList/TaskState.js +7 -5
  96. package/dist/components/TaskList/TaskState.test.js +52 -45
  97. package/dist/components/index.js +7 -7
  98. package/dist/context/HooksContext/HooksContext.js +57 -80
  99. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  100. package/dist/context/HooksContext/index.js +3 -4
  101. package/dist/context/ValidationContext/ValidationContext.js +43 -94
  102. package/dist/context/ValidationContext/ValidationContext.test.js +56 -68
  103. package/dist/context/ValidationContext/index.js +3 -4
  104. package/dist/context/index.js +2 -2
  105. package/dist/hooks/index.js +9 -10
  106. package/dist/hooks/useAxios.js +14 -40
  107. package/dist/hooks/useGetRequest.js +61 -97
  108. package/dist/hooks/useHooks.js +1 -3
  109. package/dist/hooks/useRefData.js +26 -39
  110. package/dist/hooks/useValidation.js +1 -3
  111. package/dist/index.js +13 -14
  112. package/dist/models/CollectionLabels.js +1 -1
  113. package/dist/models/ComponentTypes.js +25 -25
  114. package/dist/models/EventTypes.js +4 -4
  115. package/dist/models/FormPages.js +4 -4
  116. package/dist/models/FormTypes.js +8 -8
  117. package/dist/models/HubFormats.js +3 -3
  118. package/dist/models/PageAction.js +44 -38
  119. package/dist/models/TaskStates.js +29 -28
  120. package/dist/models/index.js +9 -9
  121. package/dist/setupTests.js +30 -31
  122. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  123. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  124. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  125. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  126. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  127. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  128. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  129. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  130. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  131. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  132. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  133. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  134. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  135. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  136. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  137. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  138. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  139. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  140. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  141. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  142. package/dist/utils/CheckYourAnswers/index.js +1 -1
  143. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  144. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  145. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  146. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  147. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  148. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  149. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +18 -20
  150. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +55 -26
  151. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  152. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  153. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  154. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  155. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  156. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  157. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  158. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +20 -22
  159. package/dist/utils/CollectionPage/getQuickEditPage.js +36 -28
  160. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  161. package/dist/utils/CollectionPage/index.js +1 -1
  162. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  163. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  164. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  165. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  166. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  167. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  168. package/dist/utils/Component/addShowWhen.js +4 -8
  169. package/dist/utils/Component/addShowWhen.test.js +37 -37
  170. package/dist/utils/Component/applyToComponentTree.js +18 -18
  171. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  172. package/dist/utils/Component/cleanAttributes.js +10 -13
  173. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  174. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  175. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  176. package/dist/utils/Component/getComponent.js +88 -94
  177. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  178. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  179. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  180. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  181. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  182. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  183. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  184. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  185. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  186. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  187. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  188. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  189. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  190. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  191. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  192. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  193. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  196. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  197. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  198. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  199. package/dist/utils/Component/getDefaultValue.js +6 -8
  200. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  201. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  202. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  203. package/dist/utils/Component/index.js +1 -1
  204. package/dist/utils/Component/isEditable.js +2 -4
  205. package/dist/utils/Component/isEditable.test.js +14 -15
  206. package/dist/utils/Component/optionIsSelected.js +1 -1
  207. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  208. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  209. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  210. package/dist/utils/Component/showComponent.js +1 -1
  211. package/dist/utils/Component/showComponent.test.js +28 -28
  212. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  213. package/dist/utils/Condition/index.js +1 -1
  214. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  215. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  216. package/dist/utils/Condition/meetsCondition.js +16 -25
  217. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  218. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  219. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  220. package/dist/utils/Condition/setupConditions.js +13 -18
  221. package/dist/utils/Condition/setupConditions.test.js +7 -7
  222. package/dist/utils/Container/getEditableComponents.js +3 -5
  223. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  224. package/dist/utils/Container/index.js +1 -1
  225. package/dist/utils/Container/setupNesting.js +16 -20
  226. package/dist/utils/Container/setupNesting.test.js +27 -30
  227. package/dist/utils/Container/showContainer.js +3 -7
  228. package/dist/utils/Container/showContainer.test.js +30 -30
  229. package/dist/utils/Data/applyFormula.js +38 -48
  230. package/dist/utils/Data/applyFormula.test.js +20 -20
  231. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  232. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  233. package/dist/utils/Data/getDataPath.js +18 -28
  234. package/dist/utils/Data/getDataPath.test.js +12 -12
  235. package/dist/utils/Data/getOptions.js +24 -30
  236. package/dist/utils/Data/getOptions.test.js +27 -27
  237. package/dist/utils/Data/getSourceData.js +6 -19
  238. package/dist/utils/Data/getSourceData.test.js +84 -80
  239. package/dist/utils/Data/index.js +1 -1
  240. package/dist/utils/Data/nestInRefdataOptions.js +9 -16
  241. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  242. package/dist/utils/Data/refDataToOptions.js +10 -13
  243. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  244. package/dist/utils/Data/setDataItem.js +7 -8
  245. package/dist/utils/Data/setDataItem.test.js +37 -37
  246. package/dist/utils/Data/setupFormData.js +13 -21
  247. package/dist/utils/Data/setupFormData.test.js +51 -50
  248. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  249. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  250. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  251. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  252. package/dist/utils/FormPage/getConditionalText.js +3 -3
  253. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  254. package/dist/utils/FormPage/getFormPage.js +15 -16
  255. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  256. package/dist/utils/FormPage/getFormPages.js +7 -12
  257. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  258. package/dist/utils/FormPage/getPageActions.js +9 -15
  259. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  260. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  261. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  262. package/dist/utils/FormPage/index.js +2 -4
  263. package/dist/utils/FormPage/showFormPage.js +3 -7
  264. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  265. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  266. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  267. package/dist/utils/FormPage/useComponent.js +21 -28
  268. package/dist/utils/FormPage/useComponent.test.js +77 -79
  269. package/dist/utils/Format/formatData.js +1 -1
  270. package/dist/utils/Format/formatData.test.js +18 -18
  271. package/dist/utils/Format/formatDataForComponent.js +5 -6
  272. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  273. package/dist/utils/Format/formatDataForForm.js +6 -8
  274. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  275. package/dist/utils/Format/formatDataForPage.js +4 -5
  276. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  277. package/dist/utils/Format/index.js +1 -1
  278. package/dist/utils/Hub/getFormHub.js +1 -1
  279. package/dist/utils/Hub/getFormHub.test.js +28 -31
  280. package/dist/utils/Hub/index.js +1 -1
  281. package/dist/utils/Meta/constants.js +2 -2
  282. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  283. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  284. package/dist/utils/Meta/documents/index.js +1 -1
  285. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  286. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  287. package/dist/utils/Meta/index.js +1 -1
  288. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  289. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  290. package/dist/utils/Operate/getFirstOf.js +5 -5
  291. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  292. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  293. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  294. package/dist/utils/Operate/index.js +1 -1
  295. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  296. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  297. package/dist/utils/Operate/runPageOperations.js +7 -7
  298. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  299. package/dist/utils/Operate/setValueInFormData.js +2 -2
  300. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  301. package/dist/utils/Operate/shouldRun.js +6 -6
  302. package/dist/utils/Operate/shouldRun.test.js +21 -27
  303. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  304. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  305. package/dist/utils/Validate/additional/index.js +6 -6
  306. package/dist/utils/Validate/additional/index.test.js +12 -12
  307. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  308. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  309. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  310. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  311. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  312. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  313. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  314. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  315. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  317. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  318. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  319. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  320. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  321. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  322. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  323. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  325. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  326. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  327. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  328. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  329. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  330. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  331. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  332. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  333. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  334. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  335. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  336. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  337. package/dist/utils/Validate/additional/utils.js +9 -22
  338. package/dist/utils/Validate/index.js +1 -1
  339. package/dist/utils/Validate/validateCollection.js +19 -25
  340. package/dist/utils/Validate/validateCollection.test.js +74 -66
  341. package/dist/utils/Validate/validateComponent.js +17 -15
  342. package/dist/utils/Validate/validateComponent.test.js +167 -146
  343. package/dist/utils/Validate/validateContainer.js +15 -20
  344. package/dist/utils/Validate/validateContainer.test.js +58 -52
  345. package/dist/utils/Validate/validateDate.js +15 -21
  346. package/dist/utils/Validate/validateDate.test.js +31 -32
  347. package/dist/utils/Validate/validateEmail.js +6 -8
  348. package/dist/utils/Validate/validateEmail.test.js +25 -25
  349. package/dist/utils/Validate/validateMultifile.js +5 -7
  350. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  351. package/dist/utils/Validate/validatePage.js +19 -22
  352. package/dist/utils/Validate/validatePage.test.js +215 -203
  353. package/dist/utils/Validate/validateRegex.js +3 -5
  354. package/dist/utils/Validate/validateRegex.test.js +14 -14
  355. package/dist/utils/Validate/validateRequired.js +4 -6
  356. package/dist/utils/Validate/validateRequired.test.js +18 -18
  357. package/dist/utils/Validate/validateTextArea.js +4 -6
  358. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  359. package/dist/utils/Validate/validateTime.js +11 -18
  360. package/dist/utils/Validate/validateTime.test.js +16 -16
  361. package/dist/utils/index.js +7 -9
  362. package/package.json +2 -2
  363. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  364. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  365. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-after.json +0 -429
  366. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-before.json +0 -449
  367. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-airpax-form.json +0 -15219
  368. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-after.json +0 -516
  369. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab-2-data-before.json +0 -593
  370. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-eab2-form.json +0 -15219
  371. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-after.json +0 -84
  372. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-data-before.json +0 -98
  373. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/cop-mandec-form.json +0 -9158
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test.json +0 -1605
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/test2.json +0 -205
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -206
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -143
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -26
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -16,23 +16,23 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
16
16
 
17
17
  // Styles.
18
18
 
19
- var DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form-banner-strip';
20
- var BannerStrip = function BannerStrip(_ref) {
21
- var id = _ref.id,
22
- banners = _ref.banners,
23
- formData = _ref.formData,
24
- classModifiers = _ref.classModifiers;
25
- var classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers, '');
26
- var filteredBanners = banners.filter(function (banner) {
27
- return _utils.default.Component.show(banner, formData);
28
- });
19
+ const DEFAULT_CLASS = exports.DEFAULT_CLASS = 'hods-form-banner-strip';
20
+ const BannerStrip = _ref => {
21
+ let {
22
+ id,
23
+ banners,
24
+ formData,
25
+ classModifiers
26
+ } = _ref;
27
+ const classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers, '');
28
+ const filteredBanners = banners.filter(banner => _utils.default.Component.show(banner, formData));
29
29
  return /*#__PURE__*/_react.default.createElement("div", {
30
30
  id: id,
31
31
  className: classes()
32
- }, filteredBanners.map(function (banner, index) {
33
- var bannerId = "".concat(id, "-banner-").concat(index);
32
+ }, filteredBanners.map((banner, index) => {
33
+ const bannerId = "".concat(id, "-banner-").concat(index);
34
34
  if (typeof banner === 'string' || banner.type === 'plain') {
35
- var bannerText = typeof banner === 'string' ? banner : banner.text;
35
+ const bannerText = typeof banner === 'string' ? banner : banner.text;
36
36
  return /*#__PURE__*/_react.default.createElement("div", {
37
37
  id: bannerId,
38
38
  key: bannerId,
@@ -4,129 +4,131 @@ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _setupTests = require("../../setupTests");
6
6
  var _BannerStrip = _interopRequireWildcard(require("./BannerStrip"));
7
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
8
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
7
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
8
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
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); } // Global imports.
10
+ // Global imports.
11
+
16
12
  // Local imports.
17
- describe('components.CollectionSummary.BannerStrip', function () {
18
- var ID = 'testBanner';
19
- var BANNERS = ['Banner 1', 'Banner 2'];
20
- var FORM_DATA = {
13
+
14
+ describe('components.CollectionSummary.BannerStrip', () => {
15
+ const ID = 'testBanner';
16
+ const BANNERS = ['Banner 1', 'Banner 2'];
17
+ const FORM_DATA = {
21
18
  textField: 'banner'
22
19
  };
23
- var classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
24
- var checkSetup = function checkSetup(container) {
25
- var bannerStripDiv = container.children[0];
20
+ const classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
21
+ const checkSetup = container => {
22
+ const bannerStripDiv = container.children[0];
26
23
  expect(bannerStripDiv.tagName).toEqual('DIV');
27
24
  expect(bannerStripDiv.id).toEqual(ID);
28
25
  return bannerStripDiv;
29
26
  };
30
- it('should correctly render a BannerStrip component with plain-text banners', function () {
31
- var _renderWithValidation = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
32
- id: ID,
33
- banners: BANNERS,
34
- formData: FORM_DATA
35
- })),
36
- container = _renderWithValidation.container;
37
- var bannerStripDiv = checkSetup(container);
27
+ it('should correctly render a BannerStrip component with plain-text banners', () => {
28
+ const {
29
+ container
30
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
31
+ id: ID,
32
+ banners: BANNERS,
33
+ formData: FORM_DATA
34
+ }));
35
+ const bannerStripDiv = checkSetup(container);
38
36
  expect(bannerStripDiv.tagName).toEqual('DIV');
39
37
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
40
38
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
41
39
 
42
- var firstBanner = bannerStripDiv.children[0];
40
+ const firstBanner = bannerStripDiv.children[0];
43
41
  expect(firstBanner.tagName).toEqual('DIV');
44
42
  expect(firstBanner.classList).toContain(classes('banner'));
45
43
  expect(firstBanner.textContent).toEqual(BANNERS[0]);
46
- var secondBanner = bannerStripDiv.children[1];
44
+ const secondBanner = bannerStripDiv.children[1];
47
45
  expect(secondBanner.tagName).toEqual('DIV');
48
46
  expect(secondBanner.classList).toContain(classes('banner'));
49
47
  expect(secondBanner.textContent).toEqual(BANNERS[1]);
50
48
  });
51
- it('should correctly render a BannerStrip component with tag banners', function () {
52
- var TAG_BANNERS = [{
49
+ it('should correctly render a BannerStrip component with tag banners', () => {
50
+ const TAG_BANNERS = [{
53
51
  text: 'Banner 1'
54
52
  }, {
55
53
  text: 'Banner 2'
56
54
  }];
57
- var _renderWithValidation2 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
58
- id: ID,
59
- banners: TAG_BANNERS,
60
- formData: FORM_DATA
61
- })),
62
- container = _renderWithValidation2.container;
63
- var bannerStripDiv = checkSetup(container);
55
+ const {
56
+ container
57
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
58
+ id: ID,
59
+ banners: TAG_BANNERS,
60
+ formData: FORM_DATA
61
+ }));
62
+ const bannerStripDiv = checkSetup(container);
64
63
  expect(bannerStripDiv.tagName).toEqual('DIV');
65
64
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
66
65
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
67
66
 
68
- var firstBanner = bannerStripDiv.children[0];
67
+ const firstBanner = bannerStripDiv.children[0];
69
68
  expect(firstBanner.tagName).toEqual('STRONG');
70
69
  expect(firstBanner.classList).toContain(classes('tag'));
71
70
  expect(firstBanner.textContent).toEqual(BANNERS[0]);
72
- var secondBanner = bannerStripDiv.children[1];
71
+ const secondBanner = bannerStripDiv.children[1];
73
72
  expect(secondBanner.tagName).toEqual('STRONG');
74
73
  expect(secondBanner.classList).toContain(classes('tag'));
75
74
  expect(secondBanner.textContent).toEqual(BANNERS[1]);
76
75
  });
77
- it('should correctly interpolate banners', function () {
78
- var INTERPOLATED_BANNERS = [{
76
+ it('should correctly interpolate banners', () => {
77
+ const INTERPOLATED_BANNERS = [{
79
78
  // eslint-disable-next-line no-template-curly-in-string
80
79
  text: 'An interpolated ${textField}'
81
80
  },
82
81
  // eslint-disable-next-line no-template-curly-in-string
83
82
  'Another interpolated ${textField}'];
84
- var _renderWithValidation3 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
85
- id: ID,
86
- banners: INTERPOLATED_BANNERS,
87
- formData: FORM_DATA
88
- })),
89
- container = _renderWithValidation3.container;
90
- var bannerStripDiv = checkSetup(container);
83
+ const {
84
+ container
85
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
86
+ id: ID,
87
+ banners: INTERPOLATED_BANNERS,
88
+ formData: FORM_DATA
89
+ }));
90
+ const bannerStripDiv = checkSetup(container);
91
91
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
92
92
 
93
- var firstBanner = bannerStripDiv.children[0];
93
+ const firstBanner = bannerStripDiv.children[0];
94
94
  expect(firstBanner.tagName).toEqual('STRONG');
95
95
  expect(firstBanner.classList).toContain(classes('tag'));
96
96
  expect(firstBanner.textContent).toEqual("An interpolated ".concat(FORM_DATA.textField));
97
- var secondBanner = bannerStripDiv.children[1];
97
+ const secondBanner = bannerStripDiv.children[1];
98
98
  expect(secondBanner.tagName).toEqual('DIV');
99
99
  expect(secondBanner.classList).toContain(classes('banner'));
100
100
  expect(secondBanner.textContent).toEqual("Another interpolated ".concat(FORM_DATA.textField));
101
101
  });
102
- it('should render no banners if none are provided', function () {
103
- var _renderWithValidation4 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
104
- id: ID,
105
- formData: FORM_DATA
106
- })),
107
- container = _renderWithValidation4.container;
108
- var bannerStripDiv = checkSetup(container);
102
+ it('should render no banners if none are provided', () => {
103
+ const {
104
+ container
105
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
106
+ id: ID,
107
+ formData: FORM_DATA
108
+ }));
109
+ const bannerStripDiv = checkSetup(container);
109
110
  expect(bannerStripDiv.tagName).toEqual('DIV');
110
111
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
111
112
  expect(bannerStripDiv.children.length).toEqual(0);
112
113
  });
113
- it('should correctly render a BannerStrip component with a plain string banner', function () {
114
- var PLAIN_STRING_BANNER = 'banner';
115
- var _renderWithValidation5 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
116
- id: ID,
117
- banners: [PLAIN_STRING_BANNER],
118
- formData: FORM_DATA
119
- })),
120
- container = _renderWithValidation5.container;
121
- var bannerStripDiv = checkSetup(container);
114
+ it('should correctly render a BannerStrip component with a plain string banner', () => {
115
+ const PLAIN_STRING_BANNER = 'banner';
116
+ const {
117
+ container
118
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
119
+ id: ID,
120
+ banners: [PLAIN_STRING_BANNER],
121
+ formData: FORM_DATA
122
+ }));
123
+ const bannerStripDiv = checkSetup(container);
122
124
  expect(bannerStripDiv.children.length).toEqual(1); // One banner provided.
123
- var plainStringBanner = bannerStripDiv.children[0];
125
+ const plainStringBanner = bannerStripDiv.children[0];
124
126
  expect(plainStringBanner.tagName).toEqual('DIV');
125
127
  expect(plainStringBanner.classList.contains(classes('banner'))).toBe(true);
126
128
  expect(plainStringBanner.textContent).toEqual(PLAIN_STRING_BANNER);
127
129
  });
128
- it('should correctly render banners based on their show_whens', function () {
129
- var CUSTOM_BANNERS = [{
130
+ it('should correctly render banners based on their show_whens', () => {
131
+ const CUSTOM_BANNERS = [{
130
132
  type: 'plain',
131
133
  text: 'A banner',
132
134
  show_when: [{
@@ -138,22 +140,24 @@ describe('components.CollectionSummary.BannerStrip', function () {
138
140
  type: 'plain',
139
141
  text: BANNERS[1]
140
142
  }];
141
- var CUSTOM_FORM_DATA = _objectSpread(_objectSpread({}, FORM_DATA), {}, {
143
+ const CUSTOM_FORM_DATA = {
144
+ ...FORM_DATA,
142
145
  testField: 'abc'
143
- });
144
- var _renderWithValidation6 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
145
- id: ID,
146
- banners: CUSTOM_BANNERS,
147
- formData: CUSTOM_FORM_DATA
148
- })),
149
- container = _renderWithValidation6.container;
150
- var bannerStripDiv = checkSetup(container);
146
+ };
147
+ const {
148
+ container
149
+ } = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
150
+ id: ID,
151
+ banners: CUSTOM_BANNERS,
152
+ formData: CUSTOM_FORM_DATA
153
+ }));
154
+ const bannerStripDiv = checkSetup(container);
151
155
  expect(bannerStripDiv.tagName).toEqual('DIV');
152
156
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
153
157
  expect(bannerStripDiv.children.length).toEqual(1); // One banner should be hidden.
154
158
 
155
159
  // Only the second banner should be visible.
156
- var secondBanner = bannerStripDiv.children[0];
160
+ const secondBanner = bannerStripDiv.children[0];
157
161
  expect(secondBanner.tagName).toEqual('DIV');
158
162
  expect(secondBanner.classList).toContain(classes('banner'));
159
163
  expect(secondBanner.textContent).toEqual(CUSTOM_BANNERS[1].text);
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -19,26 +18,16 @@ var _Confirmation = _interopRequireDefault(require("./Confirmation"));
19
18
  var _SummaryCard = _interopRequireDefault(require("./SummaryCard"));
20
19
  var _SummaryCardValidationContext = _interopRequireDefault(require("./SummaryCardValidationContext"));
21
20
  require("./CollectionSummary.scss");
22
- var _excluded = ["isDuplicate"];
23
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
28
- 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; }
29
- 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; }
30
- 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; }
31
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
32
- 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); }
33
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
34
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
36
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
37
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
38
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports.
24
+ // Global imports.
25
+
39
26
  // Local imports.
27
+
40
28
  // Styles.
41
- var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
29
+
30
+ const DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
42
31
 
43
32
  // A note about validation.
44
33
  //
@@ -52,71 +41,71 @@ var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
52
41
  // errors found by the summary and allow the Summary Card to keep any Quick Edit
53
42
  // errors local to the Quick Edit page.
54
43
 
55
- var CollectionSummary = function CollectionSummary(_ref) {
44
+ const CollectionSummary = _ref => {
56
45
  var _config$confirmation, _config$confirmation2, _config$confirmation3;
57
- var config = _ref.config,
58
- formData = _ref.formData,
59
- onAction = _ref.onAction,
60
- onChange = _ref.onChange,
61
- onTopLevelChange = _ref.onTopLevelChange,
62
- pages = _ref.pages;
63
- var _useHooks = (0, _hooks.useHooks)(),
64
- hooks = _useHooks.hooks;
65
- var _useValidation = (0, _hooks.useValidation)(),
66
- errors = _useValidation.errors,
67
- addErrors = _useValidation.addErrors,
68
- clearErrors = _useValidation.clearErrors,
69
- queuedErrors = _useValidation.queuedErrors,
70
- enqueueErrors = _useValidation.enqueueErrors,
71
- dequeueErrors = _useValidation.dequeueErrors;
72
- var _useState = (0, _react.useState)(null),
73
- _useState2 = _slicedToArray(_useState, 2),
74
- entryToDelete = _useState2[0],
75
- setEntryToDelete = _useState2[1];
76
- var data = (0, _react.useMemo)(function () {
77
- return _utils.default.CollectionPage.getData(config.collectionName, formData) || [];
78
- }, [formData]);
79
- var masterPage = (0, _react.useMemo)(function () {
80
- var collectionNameParts = config.collectionName.split('.');
81
- var childPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
82
- return collectionNameParts.reduce(function (acc, current, index) {
46
+ let {
47
+ config,
48
+ formData,
49
+ onAction,
50
+ onChange,
51
+ onTopLevelChange,
52
+ pages
53
+ } = _ref;
54
+ const {
55
+ hooks
56
+ } = (0, _hooks.useHooks)();
57
+ const {
58
+ errors,
59
+ addErrors,
60
+ clearErrors,
61
+ queuedErrors,
62
+ enqueueErrors,
63
+ dequeueErrors
64
+ } = (0, _hooks.useValidation)();
65
+ const [entryToDelete, setEntryToDelete] = (0, _react.useState)(null);
66
+ const data = (0, _react.useMemo)(() => _utils.default.CollectionPage.getData(config.collectionName, formData) || [], [formData]);
67
+ const masterPage = (0, _react.useMemo)(() => {
68
+ const collectionNameParts = config.collectionName.split('.');
69
+ let childPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
70
+ return collectionNameParts.reduce((acc, current, index) => {
83
71
  var _childPages$find;
84
- var currentPath = index === 0 ? "".concat(acc).concat(current) : "".concat(acc, ".").concat(current);
72
+ const currentPath = index === 0 ? "".concat(acc).concat(current) : "".concat(acc, ".").concat(current);
85
73
  if (index === collectionNameParts.length - 1) {
86
74
  var _childPages;
87
- return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(function (p) {
75
+ return ((_childPages = childPages) === null || _childPages === void 0 ? void 0 : _childPages.find(p => {
88
76
  var _p$collection;
89
77
  return ((_p$collection = p.collection) === null || _p$collection === void 0 ? void 0 : _p$collection.name) === currentPath;
90
78
  })) || null;
91
79
  }
92
- childPages = ((_childPages$find = childPages.find(function (p) {
80
+ childPages = ((_childPages$find = childPages.find(p => {
93
81
  var _p$collection2;
94
82
  return ((_p$collection2 = p.collection) === null || _p$collection2 === void 0 ? void 0 : _p$collection2.name) === currentPath;
95
83
  })) === null || _childPages$find === void 0 ? void 0 : _childPages$find.childPages) || null;
96
84
  return currentPath;
97
85
  }, "");
98
86
  }, [pages]);
99
- var allComponents = (0, _react.useMemo)(function () {
87
+ const allComponents = (0, _react.useMemo)(() => {
100
88
  if (config.card.listView) {
101
89
  var _masterPage$childPage;
102
- var components = (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.reduce(function (acc, page) {
103
- var elevatedComponents = (0, _elevateNestedComponents.default)(page.components, _objectSpread(_objectSpread({}, formData), entryToDelete));
90
+ const components = (_masterPage$childPage = masterPage.childPages) === null || _masterPage$childPage === void 0 ? void 0 : _masterPage$childPage.reduce((acc, page) => {
91
+ const elevatedComponents = (0, _elevateNestedComponents.default)(page.components, {
92
+ ...formData,
93
+ ...entryToDelete
94
+ });
104
95
  return acc.concat(elevatedComponents);
105
96
  }, []);
106
97
  return components || [];
107
98
  }
108
99
  return [];
109
100
  }, [masterPage, formData, entryToDelete, config.card.listView]);
110
- var validateEntries = function validateEntries() {
101
+ const validateEntries = () => {
111
102
  // We only clear queuedErrors if it's not empty to avoid
112
103
  // triggering a race condition with the 'data' memo
113
104
  // above.
114
105
  if (queuedErrors.length > 0) {
115
- dequeueErrors(function (e) {
116
- return e.raisedBy === config.id;
117
- });
106
+ dequeueErrors(e => e.raisedBy === config.id);
118
107
  }
119
- var allErrors = (0, _getErrorsForCollection.default)(config, masterPage, formData, hooks);
108
+ const allErrors = (0, _getErrorsForCollection.default)(config, masterPage, formData, hooks);
120
109
 
121
110
  // We only queue allErrors if it's not empty to avoid
122
111
  // triggering a race condition with the 'data' memo
@@ -125,26 +114,27 @@ var CollectionSummary = function CollectionSummary(_ref) {
125
114
  enqueueErrors(allErrors);
126
115
  }
127
116
  };
128
- (0, _react.useEffect)(function () {
117
+ (0, _react.useEffect)(() => {
129
118
  // An empty array here indicates nothing to validate, higher level validation
130
119
  // such as 'required' is taken care of at the page level not here
131
120
  if (Array.isArray(data) && data.length > 0) {
132
121
  validateEntries();
133
122
  }
134
123
  }, [data]);
135
- var onSummaryCardFullEdit = function onSummaryCardFullEdit(page, entryId) {
124
+ const onSummaryCardFullEdit = (page, entryId) => {
136
125
  if (typeof onAction === 'function') {
137
- var newData = [].concat(data);
138
- var entryIndex = data.findIndex(function (e) {
139
- return e.id === entryId;
140
- });
141
- var _data$entryIndex = data[entryIndex],
142
- isDuplicate = _data$entryIndex.isDuplicate,
143
- newEntry = _objectWithoutProperties(_data$entryIndex, _excluded);
144
- newData[entryIndex] = _objectSpread({}, newEntry);
126
+ const newData = [].concat(data);
127
+ const entryIndex = data.findIndex(e => e.id === entryId);
128
+ const {
129
+ isDuplicate,
130
+ ...newEntry
131
+ } = data[entryIndex];
132
+ newData[entryIndex] = {
133
+ ...newEntry
134
+ };
145
135
  onAction({
146
136
  type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
147
- page: page,
137
+ page,
148
138
  addToFormData: [{
149
139
  field: "".concat(config.collectionName.split('.').pop(), "ActiveId"),
150
140
  value: entryId
@@ -156,12 +146,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
156
146
  });
157
147
  }
158
148
  };
159
- var onDuplicate = function onDuplicate(entry) {
149
+ const onDuplicate = entry => {
160
150
  var _config$card;
161
151
  _utils.default.CollectionPage.duplicateEntry(config.collectionName, formData, entry.id, ((_config$card = config.card) === null || _config$card === void 0 || (_config$card = _config$card.duplicateAction) === null || _config$card === void 0 ? void 0 : _config$card.fieldsToIgnore) || [], {
162
152
  isDuplicate: true
163
153
  });
164
- var topLevelCollectionName = config.collectionName.split('.').shift();
154
+ const topLevelCollectionName = config.collectionName.split('.').shift();
165
155
  // Report the whole top-level collection as being changed. We have to do this
166
156
  // because of how patch is applied to formData on a page submission.
167
157
  if (typeof onTopLevelChange === 'function') {
@@ -174,12 +164,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
174
164
  validateEntries();
175
165
  }
176
166
  };
177
- var onDeleteConfirm = function onDeleteConfirm() {
167
+ const onDeleteConfirm = () => {
178
168
  if (!entryToDelete) {
179
169
  return;
180
170
  }
181
171
  _utils.default.CollectionPage.removeEntry(config.collectionName, formData, entryToDelete.id);
182
- var topLevelCollectionName = config.collectionName.split('.').shift();
172
+ const topLevelCollectionName = config.collectionName.split('.').shift();
183
173
  // Report the whole top-level collection as being changed. We have to do this
184
174
  // because of how patch is applied to formData on a page submission.
185
175
  if (typeof onTopLevelChange === 'function') {
@@ -193,14 +183,16 @@ var CollectionSummary = function CollectionSummary(_ref) {
193
183
  setEntryToDelete(null);
194
184
  validateEntries();
195
185
  };
196
- var renderFieldValue = function renderFieldValue(field) {
197
- var component = allComponents.find(function (c) {
198
- return c.fieldId === field;
199
- });
186
+ const renderFieldValue = field => {
187
+ const component = allComponents.find(c => c.fieldId === field);
200
188
  if (!component) return null;
201
- var row = (0, _getCYARow.default)(_objectSpread(_objectSpread({}, masterPage), {}, {
202
- formData: _objectSpread(_objectSpread({}, formData), entryToDelete)
203
- }), component);
189
+ const row = (0, _getCYARow.default)({
190
+ ...masterPage,
191
+ formData: {
192
+ ...formData,
193
+ ...entryToDelete
194
+ }
195
+ }, component);
204
196
  return /*#__PURE__*/_react.default.createElement("div", {
205
197
  key: field,
206
198
  className: "confirmation-field-value"
@@ -214,22 +206,22 @@ var CollectionSummary = function CollectionSummary(_ref) {
214
206
  id: config.fieldId
215
207
  }, entryToDelete && /*#__PURE__*/_react.default.createElement(_Confirmation.default, {
216
208
  id: "".concat(config.fieldId, ".confirmation"),
217
- message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message, _objectSpread(_objectSpread({}, entryToDelete), {}, {
209
+ message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message, {
210
+ ...entryToDelete,
218
211
  index: entryToDelete.index + 1
219
- })) || null,
212
+ }) || null,
220
213
  confirmLabel: _utils.default.interpolateString((_config$confirmation2 = config.confirmation) === null || _config$confirmation2 === void 0 ? void 0 : _config$confirmation2.label, entryToDelete) || null,
221
214
  onConfirm: onDeleteConfirm,
222
- onCancel: function onCancel() {
223
- return setEntryToDelete(null);
224
- }
215
+ onCancel: () => setEntryToDelete(null)
225
216
  }, config.card.listView ? /*#__PURE__*/_react.default.createElement("div", {
226
217
  className: "confirmation-content"
227
218
  }, (_config$confirmation3 = config.confirmation) === null || _config$confirmation3 === void 0 ? void 0 : _config$confirmation3.displayFields.map(renderFieldValue)) : /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
228
219
  id: "".concat(config.fieldId, ".confirmationChild"),
229
220
  entryData: entryToDelete,
230
- config: config.card ? _objectSpread(_objectSpread({}, config.card), {}, {
221
+ config: config.card ? {
222
+ ...config.card,
231
223
  quickEdit: null
232
- }) : {},
224
+ } : {},
233
225
  masterPage: masterPage,
234
226
  classModifiers: "nested",
235
227
  hideDetails: true
@@ -243,38 +235,38 @@ var CollectionSummary = function CollectionSummary(_ref) {
243
235
  classModifiers: ['secondary']
244
236
  },
245
237
  onAction: onAction
246
- }), data.map(function (entry, index) {
247
- var isInError = errors.filter(function (e) {
248
- return e.entryId === entry.id;
249
- }).length > 0;
250
- var finalConfig = _objectSpread(_objectSpread(_objectSpread({}, config.card), entry.isDuplicate && config.duplicatedCard ? config.duplicatedCard : {}), isInError && config.errorCard ? config.errorCard : {});
251
- var key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
238
+ }), data.map((entry, index) => {
239
+ const isInError = errors.filter(e => e.entryId === entry.id).length > 0;
240
+ const finalConfig = {
241
+ ...config.card,
242
+ ...(entry.isDuplicate && config.duplicatedCard ? config.duplicatedCard : {}),
243
+ ...(isInError && config.errorCard ? config.errorCard : {})
244
+ };
245
+ const key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
252
246
  return /*#__PURE__*/_react.default.createElement(_SummaryCardValidationContext.default, {
253
247
  entryId: entry.id,
254
248
  topLevelErrors: errors,
255
- clearTopLevelErrorsForCard: function clearTopLevelErrorsForCard() {
256
- var newErrors = errors.filter(function (e) {
257
- return e.entryId !== entry.id;
258
- });
249
+ clearTopLevelErrorsForCard: () => {
250
+ const newErrors = errors.filter(e => e.entryId !== entry.id);
259
251
  clearErrors();
260
252
  addErrors(newErrors);
261
253
  }
262
254
  }, /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
263
255
  id: key,
264
256
  key: key,
265
- entryData: _objectSpread(_objectSpread({}, entry), {}, {
266
- index: index
267
- }),
257
+ entryData: {
258
+ ...entry,
259
+ index
260
+ },
268
261
  masterPage: masterPage,
269
262
  config: finalConfig || {},
270
263
  onFullEdit: onSummaryCardFullEdit,
271
264
  onDuplicate: onDuplicate,
272
- onDelete: function onDelete() {
273
- return setEntryToDelete(_objectSpread(_objectSpread({}, entry), {}, {
274
- index: index
275
- }));
276
- },
277
- onQuickEdit: function onQuickEdit(target) {
265
+ onDelete: () => setEntryToDelete({
266
+ ...entry,
267
+ index
268
+ }),
269
+ onQuickEdit: target => {
278
270
  validateEntries();
279
271
  return onChange(target);
280
272
  },
@@ -282,9 +274,7 @@ var CollectionSummary = function CollectionSummary(_ref) {
282
274
  childCollections: config.childCollections || [],
283
275
  formData: formData,
284
276
  classModifiers: entry.id === (entryToDelete === null || entryToDelete === void 0 ? void 0 : entryToDelete.id) ? ['deleting-summary-card'] : [''],
285
- inError: errors.filter(function (e) {
286
- return e.entryId === entry.id;
287
- }).length > 0
277
+ inError: errors.filter(e => e.entryId === entry.id).length > 0
288
278
  }));
289
279
  }), config.card.listView && config.addButton && /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
290
280
  id: "".concat(config.fieldId, ".addButton"),