@ukhomeoffice/cop-react-form-renderer 5.45.1 → 5.45.2-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 (350) 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 +464 -769
  5. package/dist/components/CollectionPage/CollectionPage.js +66 -58
  6. package/dist/components/CollectionPage/CollectionPage.test.js +300 -342
  7. package/dist/components/CollectionSummary/BannerStrip.js +12 -12
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +63 -59
  9. package/dist/components/CollectionSummary/CollectionSummary.js +60 -75
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +102 -96
  11. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  12. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  13. package/dist/components/CollectionSummary/SummaryCard.js +93 -133
  14. package/dist/components/CollectionSummary/SummaryCard.test.js +902 -924
  15. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +23 -29
  16. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +61 -73
  17. package/dist/components/FormComponent/Collection.js +73 -107
  18. package/dist/components/FormComponent/Collection.test.js +809 -945
  19. package/dist/components/FormComponent/Container.js +40 -38
  20. package/dist/components/FormComponent/Container.test.js +314 -345
  21. package/dist/components/FormComponent/FormComponent.js +67 -70
  22. package/dist/components/FormComponent/FormComponent.test.js +284 -342
  23. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  24. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  25. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  26. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  27. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  28. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  29. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  30. package/dist/components/FormComponent/helpers/index.js +4 -4
  31. package/dist/components/FormPage/FormPage.js +65 -80
  32. package/dist/components/FormPage/FormPage.test.js +127 -163
  33. package/dist/components/FormRenderer/FormRenderer.js +142 -178
  34. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  35. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  36. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  37. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  38. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  39. package/dist/components/FormRenderer/handlers/index.js +1 -1
  40. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  41. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  42. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  43. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +9 -9
  44. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  45. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  46. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  47. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  48. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  49. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  50. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  51. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  52. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  53. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  54. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  55. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  57. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  58. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  59. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -91
  60. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  61. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -73
  62. package/dist/components/FormRenderer/helpers/index.js +1 -1
  63. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  64. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  65. package/dist/components/FormRenderer/onPageAction.js +43 -39
  66. package/dist/components/FormRenderer/onPageAction.test.js +223 -206
  67. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  68. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  69. package/dist/components/PageActions/ActionButton.js +12 -15
  70. package/dist/components/PageActions/ActionButton.test.js +56 -78
  71. package/dist/components/PageActions/PageActions.js +10 -10
  72. package/dist/components/PageActions/PageActions.test.js +86 -115
  73. package/dist/components/SummaryList/GroupAction.js +9 -17
  74. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  75. package/dist/components/SummaryList/RowAction.js +11 -16
  76. package/dist/components/SummaryList/RowAction.test.js +37 -33
  77. package/dist/components/SummaryList/SummaryList.js +21 -26
  78. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  79. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  80. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  81. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  82. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  83. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  84. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  85. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  86. package/dist/components/SummaryList/helpers/index.js +1 -1
  87. package/dist/components/TaskList/Task.js +19 -29
  88. package/dist/components/TaskList/Task.test.js +83 -76
  89. package/dist/components/TaskList/TaskList.js +45 -71
  90. package/dist/components/TaskList/TaskList.test.js +113 -111
  91. package/dist/components/TaskList/TaskState.js +7 -5
  92. package/dist/components/TaskList/TaskState.test.js +52 -45
  93. package/dist/components/index.js +7 -7
  94. package/dist/context/HooksContext/HooksContext.js +58 -79
  95. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  96. package/dist/context/HooksContext/index.js +3 -4
  97. package/dist/context/ValidationContext/ValidationContext.js +32 -72
  98. package/dist/context/ValidationContext/ValidationContext.test.js +47 -59
  99. package/dist/context/ValidationContext/index.js +3 -4
  100. package/dist/context/index.js +2 -2
  101. package/dist/hooks/index.js +9 -10
  102. package/dist/hooks/useAxios.js +14 -40
  103. package/dist/hooks/useGetRequest.js +61 -97
  104. package/dist/hooks/useHooks.js +1 -3
  105. package/dist/hooks/useRefData.js +26 -39
  106. package/dist/hooks/useValidation.js +1 -3
  107. package/dist/index.js +13 -14
  108. package/dist/models/CollectionLabels.js +1 -1
  109. package/dist/models/ComponentTypes.js +25 -25
  110. package/dist/models/EventTypes.js +4 -4
  111. package/dist/models/FormPages.js +4 -4
  112. package/dist/models/FormTypes.js +8 -8
  113. package/dist/models/HubFormats.js +3 -3
  114. package/dist/models/PageAction.js +44 -38
  115. package/dist/models/TaskStates.js +30 -28
  116. package/dist/models/index.js +9 -9
  117. package/dist/setupTests.js +30 -31
  118. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  119. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  120. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  121. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  122. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  123. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  124. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  125. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  126. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  127. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  128. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  129. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -60
  130. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +79 -88
  131. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +146 -124
  132. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  133. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  134. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  135. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  136. package/dist/utils/CheckYourAnswers/index.js +1 -1
  137. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  138. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +24 -24
  139. package/dist/utils/CollectionPage/addCollectionPageEntry.js +1 -1
  140. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  141. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  142. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -17
  143. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +9 -18
  144. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +27 -22
  145. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  146. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  147. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  148. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  149. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  150. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  151. package/dist/utils/CollectionPage/getQuickEditPage.js +19 -19
  152. package/dist/utils/CollectionPage/getQuickEditPage.test.js +12 -16
  153. package/dist/utils/CollectionPage/index.js +1 -1
  154. package/dist/utils/CollectionPage/mergeCollectionPages.js +29 -30
  155. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +17 -17
  156. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  157. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  158. package/dist/utils/CollectionPage/setCollectionPageData.js +8 -12
  159. package/dist/utils/CollectionPage/setCollectionPageData.test.js +17 -17
  160. package/dist/utils/Component/addShowWhen.js +4 -8
  161. package/dist/utils/Component/addShowWhen.test.js +37 -37
  162. package/dist/utils/Component/applyToComponentTree.js +18 -18
  163. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  164. package/dist/utils/Component/cleanAttributes.js +10 -13
  165. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  166. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  167. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  168. package/dist/utils/Component/getComponent.js +88 -94
  169. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  170. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  171. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  172. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  173. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  174. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  175. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  176. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  177. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  178. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  179. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  180. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  181. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  182. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  183. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  184. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -70
  185. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  186. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  187. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  188. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  189. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  190. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  191. package/dist/utils/Component/getDefaultValue.js +6 -8
  192. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  193. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  194. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  195. package/dist/utils/Component/index.js +1 -1
  196. package/dist/utils/Component/isEditable.js +2 -4
  197. package/dist/utils/Component/isEditable.test.js +14 -15
  198. package/dist/utils/Component/optionIsSelected.js +1 -1
  199. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  200. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  201. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  202. package/dist/utils/Component/showComponent.js +1 -1
  203. package/dist/utils/Component/showComponent.test.js +28 -28
  204. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  205. package/dist/utils/Condition/index.js +1 -1
  206. package/dist/utils/Condition/meetsAllConditions.js +7 -7
  207. package/dist/utils/Condition/meetsAllConditions.test.js +17 -17
  208. package/dist/utils/Condition/meetsCondition.js +14 -17
  209. package/dist/utils/Condition/meetsCondition.test.js +376 -376
  210. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  211. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  212. package/dist/utils/Condition/setupConditions.js +13 -18
  213. package/dist/utils/Condition/setupConditions.test.js +7 -7
  214. package/dist/utils/Container/getEditableComponents.js +3 -5
  215. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  216. package/dist/utils/Container/index.js +1 -1
  217. package/dist/utils/Container/setupNesting.js +16 -20
  218. package/dist/utils/Container/setupNesting.test.js +27 -30
  219. package/dist/utils/Container/showContainer.js +3 -7
  220. package/dist/utils/Container/showContainer.test.js +30 -30
  221. package/dist/utils/Data/applyFormula.js +38 -48
  222. package/dist/utils/Data/applyFormula.test.js +20 -20
  223. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  224. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  225. package/dist/utils/Data/getDataPath.js +18 -28
  226. package/dist/utils/Data/getDataPath.test.js +12 -12
  227. package/dist/utils/Data/getOptions.js +19 -25
  228. package/dist/utils/Data/getOptions.test.js +20 -20
  229. package/dist/utils/Data/getSourceData.js +6 -19
  230. package/dist/utils/Data/getSourceData.test.js +84 -80
  231. package/dist/utils/Data/index.js +1 -1
  232. package/dist/utils/Data/refDataToOptions.js +10 -13
  233. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  234. package/dist/utils/Data/setDataItem.js +7 -8
  235. package/dist/utils/Data/setDataItem.test.js +37 -37
  236. package/dist/utils/Data/setupFormData.js +13 -21
  237. package/dist/utils/Data/setupFormData.test.js +51 -50
  238. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  239. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  240. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  241. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  242. package/dist/utils/FormPage/getFormPage.js +15 -16
  243. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  244. package/dist/utils/FormPage/getFormPages.js +7 -12
  245. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  246. package/dist/utils/FormPage/getPageActions.js +9 -15
  247. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  248. package/dist/utils/FormPage/getPageTitle.js +2 -2
  249. package/dist/utils/FormPage/getPageTitle.test.js +22 -22
  250. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  251. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  252. package/dist/utils/FormPage/index.js +1 -1
  253. package/dist/utils/FormPage/showFormPage.js +3 -7
  254. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  255. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  256. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  257. package/dist/utils/FormPage/useComponent.js +21 -28
  258. package/dist/utils/FormPage/useComponent.test.js +78 -79
  259. package/dist/utils/Format/formatData.js +1 -1
  260. package/dist/utils/Format/formatData.test.js +18 -18
  261. package/dist/utils/Format/formatDataForComponent.js +5 -6
  262. package/dist/utils/Format/formatDataForComponent.test.js +50 -77
  263. package/dist/utils/Format/formatDataForForm.js +6 -8
  264. package/dist/utils/Format/formatDataForForm.test.js +13 -15
  265. package/dist/utils/Format/formatDataForPage.js +4 -5
  266. package/dist/utils/Format/formatDataForPage.test.js +20 -23
  267. package/dist/utils/Format/index.js +1 -1
  268. package/dist/utils/Hub/getFormHub.js +1 -1
  269. package/dist/utils/Hub/getFormHub.test.js +28 -31
  270. package/dist/utils/Hub/index.js +1 -1
  271. package/dist/utils/Meta/constants.js +2 -2
  272. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  273. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  274. package/dist/utils/Meta/documents/index.js +1 -1
  275. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  276. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  277. package/dist/utils/Meta/index.js +1 -1
  278. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  279. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  280. package/dist/utils/Operate/getFirstOf.js +5 -5
  281. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  282. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  283. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -46
  284. package/dist/utils/Operate/index.js +1 -1
  285. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  286. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  287. package/dist/utils/Operate/runPageOperations.js +7 -7
  288. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  289. package/dist/utils/Operate/setValueInFormData.js +2 -2
  290. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  291. package/dist/utils/Operate/shouldRun.js +6 -6
  292. package/dist/utils/Operate/shouldRun.test.js +21 -26
  293. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  294. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  295. package/dist/utils/Validate/additional/index.js +6 -6
  296. package/dist/utils/Validate/additional/index.test.js +12 -12
  297. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  298. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  299. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  300. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  301. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  302. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  303. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  304. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  305. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  306. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  307. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  308. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  309. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  310. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  311. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  312. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  313. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  314. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  315. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  316. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  317. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  318. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  319. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  320. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  321. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  322. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  323. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  324. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  325. package/dist/utils/Validate/additional/utils.js +9 -22
  326. package/dist/utils/Validate/index.js +1 -1
  327. package/dist/utils/Validate/validateCollection.js +19 -25
  328. package/dist/utils/Validate/validateCollection.test.js +74 -66
  329. package/dist/utils/Validate/validateComponent.js +17 -15
  330. package/dist/utils/Validate/validateComponent.test.js +167 -146
  331. package/dist/utils/Validate/validateContainer.js +14 -19
  332. package/dist/utils/Validate/validateContainer.test.js +49 -45
  333. package/dist/utils/Validate/validateDate.js +11 -17
  334. package/dist/utils/Validate/validateDate.test.js +28 -29
  335. package/dist/utils/Validate/validateEmail.js +6 -8
  336. package/dist/utils/Validate/validateEmail.test.js +25 -25
  337. package/dist/utils/Validate/validateMultifile.js +5 -7
  338. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  339. package/dist/utils/Validate/validatePage.js +17 -18
  340. package/dist/utils/Validate/validatePage.test.js +185 -182
  341. package/dist/utils/Validate/validateRegex.js +3 -5
  342. package/dist/utils/Validate/validateRegex.test.js +14 -14
  343. package/dist/utils/Validate/validateRequired.js +4 -6
  344. package/dist/utils/Validate/validateRequired.test.js +18 -18
  345. package/dist/utils/Validate/validateTextArea.js +4 -6
  346. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  347. package/dist/utils/Validate/validateTime.js +7 -14
  348. package/dist/utils/Validate/validateTime.test.js +14 -14
  349. package/dist/utils/index.js +7 -9
  350. package/package.json +1 -1
@@ -16,21 +16,21 @@ 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') {
35
35
  return /*#__PURE__*/_react.default.createElement("div", {
36
36
  id: bannerId,
@@ -1,124 +1,128 @@
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
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
5
4
  var _react = _interopRequireDefault(require("react"));
6
5
  var _setupTests = require("../../setupTests");
7
6
  var _BannerStrip = _interopRequireWildcard(require("./BannerStrip"));
8
- 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); }
9
- 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 && 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; }
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
10
  // Global imports.
12
11
 
13
12
  // Local imports.
14
13
 
15
- describe('components.CollectionSummary.BannerStrip', function () {
16
- var ID = 'testBanner';
17
- var BANNERS = ['Banner 1', 'Banner 2'];
18
- var FORM_DATA = {
14
+ describe('components.CollectionSummary.BannerStrip', () => {
15
+ const ID = 'testBanner';
16
+ const BANNERS = ['Banner 1', 'Banner 2'];
17
+ const FORM_DATA = {
19
18
  textField: 'banner'
20
19
  };
21
- var classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
22
- var checkSetup = function checkSetup(container) {
23
- var bannerStripDiv = container.children[0];
20
+ const classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
21
+ const checkSetup = container => {
22
+ const bannerStripDiv = container.children[0];
24
23
  expect(bannerStripDiv.tagName).toEqual('DIV');
25
24
  expect(bannerStripDiv.id).toEqual(ID);
26
25
  return bannerStripDiv;
27
26
  };
28
- it('should correctly render a BannerStrip component with plain-text banners', function () {
29
- var _renderWithValidation = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
30
- id: ID,
31
- banners: BANNERS,
32
- formData: FORM_DATA
33
- })),
34
- container = _renderWithValidation.container;
35
- 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);
36
36
  expect(bannerStripDiv.tagName).toEqual('DIV');
37
37
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
38
38
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
39
39
 
40
- var firstBanner = bannerStripDiv.children[0];
40
+ const firstBanner = bannerStripDiv.children[0];
41
41
  expect(firstBanner.tagName).toEqual('DIV');
42
42
  expect(firstBanner.classList).toContain(classes('banner'));
43
43
  expect(firstBanner.textContent).toEqual(BANNERS[0]);
44
- var secondBanner = bannerStripDiv.children[1];
44
+ const secondBanner = bannerStripDiv.children[1];
45
45
  expect(secondBanner.tagName).toEqual('DIV');
46
46
  expect(secondBanner.classList).toContain(classes('banner'));
47
47
  expect(secondBanner.textContent).toEqual(BANNERS[1]);
48
48
  });
49
- it('should correctly render a BannerStrip component with tag banners', function () {
50
- var TAG_BANNERS = [{
49
+ it('should correctly render a BannerStrip component with tag banners', () => {
50
+ const TAG_BANNERS = [{
51
51
  text: 'Banner 1'
52
52
  }, {
53
53
  text: 'Banner 2'
54
54
  }];
55
- var _renderWithValidation2 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
56
- id: ID,
57
- banners: TAG_BANNERS,
58
- formData: FORM_DATA
59
- })),
60
- container = _renderWithValidation2.container;
61
- 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);
62
63
  expect(bannerStripDiv.tagName).toEqual('DIV');
63
64
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
64
65
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
65
66
 
66
- var firstBanner = bannerStripDiv.children[0];
67
+ const firstBanner = bannerStripDiv.children[0];
67
68
  expect(firstBanner.tagName).toEqual('STRONG');
68
69
  expect(firstBanner.classList).toContain(classes('tag'));
69
70
  expect(firstBanner.textContent).toEqual(BANNERS[0]);
70
- var secondBanner = bannerStripDiv.children[1];
71
+ const secondBanner = bannerStripDiv.children[1];
71
72
  expect(secondBanner.tagName).toEqual('STRONG');
72
73
  expect(secondBanner.classList).toContain(classes('tag'));
73
74
  expect(secondBanner.textContent).toEqual(BANNERS[1]);
74
75
  });
75
- it('should correctly interpolate banners', function () {
76
- var INTERPOLATED_BANNERS = [{
76
+ it('should correctly interpolate banners', () => {
77
+ const INTERPOLATED_BANNERS = [{
77
78
  // eslint-disable-next-line no-template-curly-in-string
78
79
  text: 'An interpolated ${textField}'
79
80
  },
80
81
  // eslint-disable-next-line no-template-curly-in-string
81
82
  'Another interpolated ${textField}'];
82
- var _renderWithValidation3 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
83
- id: ID,
84
- banners: INTERPOLATED_BANNERS,
85
- formData: FORM_DATA
86
- })),
87
- container = _renderWithValidation3.container;
88
- 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);
89
91
  expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
90
92
 
91
- var firstBanner = bannerStripDiv.children[0];
93
+ const firstBanner = bannerStripDiv.children[0];
92
94
  expect(firstBanner.tagName).toEqual('STRONG');
93
95
  expect(firstBanner.classList).toContain(classes('tag'));
94
96
  expect(firstBanner.textContent).toEqual("An interpolated ".concat(FORM_DATA.textField));
95
- var secondBanner = bannerStripDiv.children[1];
97
+ const secondBanner = bannerStripDiv.children[1];
96
98
  expect(secondBanner.tagName).toEqual('DIV');
97
99
  expect(secondBanner.classList).toContain(classes('banner'));
98
100
  expect(secondBanner.textContent).toEqual("Another interpolated ".concat(FORM_DATA.textField));
99
101
  });
100
- it('should render no banners if none are provided', function () {
101
- var _renderWithValidation4 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
102
- id: ID,
103
- formData: FORM_DATA
104
- })),
105
- container = _renderWithValidation4.container;
106
- 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);
107
110
  expect(bannerStripDiv.tagName).toEqual('DIV');
108
111
  expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
109
112
  expect(bannerStripDiv.children.length).toEqual(0);
110
113
  });
111
- it('should correctly render a BannerStrip component with a plain string banner', function () {
112
- var PLAIN_STRING_BANNER = 'banner';
113
- var _renderWithValidation5 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
114
- id: ID,
115
- banners: [PLAIN_STRING_BANNER],
116
- formData: FORM_DATA
117
- })),
118
- container = _renderWithValidation5.container;
119
- 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);
120
124
  expect(bannerStripDiv.children.length).toEqual(1); // One banner provided.
121
- var plainStringBanner = bannerStripDiv.children[0];
125
+ const plainStringBanner = bannerStripDiv.children[0];
122
126
  expect(plainStringBanner.tagName).toEqual('DIV');
123
127
  expect(plainStringBanner.classList.contains(classes('banner'))).toBe(true);
124
128
  expect(plainStringBanner.textContent).toEqual(PLAIN_STRING_BANNER);
@@ -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
  });
@@ -15,23 +14,16 @@ var _Confirmation = _interopRequireDefault(require("./Confirmation"));
15
14
  var _SummaryCard = _interopRequireDefault(require("./SummaryCard"));
16
15
  var _SummaryCardValidationContext = _interopRequireDefault(require("./SummaryCardValidationContext"));
17
16
  require("./CollectionSummary.scss");
18
- 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); }
19
- 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; }
17
+ 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); }
18
+ 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; }
20
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
- 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; }
22
- 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; }
23
- 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; }
24
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
25
- 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); }
26
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
- 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."); }
28
- 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); }
29
- 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; }
30
- 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; } }
31
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports.
20
+ // Global imports.
21
+
32
22
  // Local imports.
23
+
33
24
  // Styles.
34
- var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
25
+
26
+ const DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
35
27
 
36
28
  // A note about validation.
37
29
  //
@@ -45,58 +37,55 @@ var DEFAULT_ADD_BUTTON_LABEL = exports.DEFAULT_ADD_BUTTON_LABEL = 'Add';
45
37
  // errors found by the summary and allow the Summary Card to keep any Quick Edit
46
38
  // errors local to the Quick Edit page.
47
39
 
48
- var CollectionSummary = function CollectionSummary(_ref) {
40
+ const CollectionSummary = _ref => {
49
41
  var _config$confirmation, _config$confirmation2;
50
- var config = _ref.config,
51
- formData = _ref.formData,
52
- onAction = _ref.onAction,
53
- onChange = _ref.onChange,
54
- pages = _ref.pages;
55
- var _useValidation = (0, _hooks.useValidation)(),
56
- errors = _useValidation.errors,
57
- addErrors = _useValidation.addErrors,
58
- clearErrors = _useValidation.clearErrors;
59
- var _useState = (0, _react.useState)(null),
60
- _useState2 = _slicedToArray(_useState, 2),
61
- entryToDelete = _useState2[0],
62
- setEntryToDelete = _useState2[1];
63
- var data = (0, _react.useMemo)(function () {
64
- return _utils.default.CollectionPage.getData(config.collectionName, formData) || [];
65
- }, [formData]);
66
- var masterPage = (0, _react.useMemo)(function () {
67
- var newMasterPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
68
- return newMasterPages.find(function (page) {
42
+ let {
43
+ config,
44
+ formData,
45
+ onAction,
46
+ onChange,
47
+ pages
48
+ } = _ref;
49
+ const {
50
+ errors,
51
+ addErrors,
52
+ clearErrors
53
+ } = (0, _hooks.useValidation)();
54
+ const [entryToDelete, setEntryToDelete] = (0, _react.useState)(null);
55
+ const data = (0, _react.useMemo)(() => _utils.default.CollectionPage.getData(config.collectionName, formData) || [], [formData]);
56
+ const masterPage = (0, _react.useMemo)(() => {
57
+ const newMasterPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
58
+ return newMasterPages.find(page => {
69
59
  var _page$collection;
70
60
  return ((_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name) === config.collectionName;
71
61
  });
72
62
  }, [pages]);
73
- var validateEntries = function validateEntries() {
63
+ const validateEntries = () => {
74
64
  // We only clear errors if it's not empty to avoid
75
65
  // triggering a race condition with the 'data' memo
76
66
  // above.
77
67
  if (errors.length > 0) {
78
68
  clearErrors();
79
69
  }
80
- var allErrors = [];
81
- data.forEach(function (entry) {
70
+ let allErrors = [];
71
+ data.forEach(entry => {
82
72
  // Validation of a collection page uses the data from the
83
73
  // active entry, so here we have to set the active ID before
84
74
  // validating.
85
- var childPages = masterPage === null || masterPage === void 0 ? void 0 : masterPage.childPages.map(function (page) {
86
- return _objectSpread(_objectSpread({}, page), {}, {
87
- formData: _objectSpread(_objectSpread({}, masterPage.formData), {}, _defineProperty({}, "".concat(config.collectionName, "ActiveId"), entry.id))
88
- });
89
- });
90
- var allPagesErrors = (childPages === null || childPages === void 0 ? void 0 : childPages.flatMap(function (page) {
91
- return _utils.default.Validate.page(page);
92
- })) || [];
75
+ const childPages = masterPage === null || masterPage === void 0 ? void 0 : masterPage.childPages.map(page => ({
76
+ ...page,
77
+ formData: {
78
+ ...masterPage.formData,
79
+ ["".concat(config.collectionName, "ActiveId")]: entry.id
80
+ }
81
+ }));
82
+ const allPagesErrors = (childPages === null || childPages === void 0 ? void 0 : childPages.flatMap(page => _utils.default.Validate.page(page))) || [];
93
83
  // For each error we found, add the entryId so we know what Summary Card
94
84
  // we have to pass it to.
95
- var entryErrors = allPagesErrors.map(function (e) {
96
- return _objectSpread(_objectSpread({}, e), {}, {
97
- entryId: entry.id
98
- });
99
- });
85
+ const entryErrors = allPagesErrors.map(e => ({
86
+ ...e,
87
+ entryId: entry.id
88
+ }));
100
89
  allErrors = allErrors.concat(entryErrors);
101
90
  });
102
91
  // We only add allErrors if it's not empty to avoid
@@ -106,26 +95,26 @@ var CollectionSummary = function CollectionSummary(_ref) {
106
95
  addErrors(allErrors);
107
96
  }
108
97
  };
109
- (0, _react.useEffect)(function () {
98
+ (0, _react.useEffect)(() => {
110
99
  validateEntries();
111
100
  }, [data]);
112
- var onSummaryCardChange = function onSummaryCardChange(page, entryId) {
101
+ const onSummaryCardChange = (page, entryId) => {
113
102
  if (typeof onAction !== 'function') {
114
103
  return;
115
104
  }
116
105
  onAction({
117
106
  type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
118
- page: page,
107
+ page,
119
108
  addToFormData: {
120
109
  field: "".concat(config.collectionName.split('.').pop(), "ActiveId"),
121
110
  value: entryId
122
111
  }
123
112
  });
124
113
  };
125
- var onDuplicate = function onDuplicate(entry) {
114
+ const onDuplicate = entry => {
126
115
  var _config$card;
127
116
  _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) || []);
128
- var parentCollection = config.collectionName.split('.').shift();
117
+ const parentCollection = config.collectionName.split('.').shift();
129
118
  // Report the whole top-level collection as being changed. We have to do this
130
119
  // because of how patch is applied to formData on a page submission.
131
120
  if (typeof onChange === 'function') {
@@ -138,12 +127,12 @@ var CollectionSummary = function CollectionSummary(_ref) {
138
127
  validateEntries();
139
128
  }
140
129
  };
141
- var onDeleteConfirm = function onDeleteConfirm() {
130
+ const onDeleteConfirm = () => {
142
131
  if (!entryToDelete) {
143
132
  return;
144
133
  }
145
134
  _utils.default.CollectionPage.removeEntry(config.collectionName, formData, entryToDelete.id);
146
- var parentCollection = config.collectionName.split('.').shift();
135
+ const parentCollection = config.collectionName.split('.').shift();
147
136
  // Report the whole top-level collection as being changed. We have to do this
148
137
  // because of how patch is applied to formData on a page submission.
149
138
  if (typeof onChange === 'function') {
@@ -164,15 +153,14 @@ var CollectionSummary = function CollectionSummary(_ref) {
164
153
  message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message, entryToDelete) || null,
165
154
  confirmLabel: _utils.default.interpolateString((_config$confirmation2 = config.confirmation) === null || _config$confirmation2 === void 0 ? void 0 : _config$confirmation2.label, entryToDelete) || null,
166
155
  onConfirm: onDeleteConfirm,
167
- onCancel: function onCancel() {
168
- return setEntryToDelete(null);
169
- }
156
+ onCancel: () => setEntryToDelete(null)
170
157
  }, /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
171
158
  id: "".concat(config.fieldId, ".confirmationChild"),
172
159
  entryData: entryToDelete,
173
- config: config.card ? _objectSpread(_objectSpread({}, config.card), {}, {
160
+ config: config.card ? {
161
+ ...config.card,
174
162
  quickEdit: null
175
- }) : {},
163
+ } : {},
176
164
  masterPage: masterPage,
177
165
  classModifiers: "nested",
178
166
  hideDetails: true
@@ -186,35 +174,32 @@ var CollectionSummary = function CollectionSummary(_ref) {
186
174
  classModifiers: ['secondary']
187
175
  },
188
176
  onAction: onAction
189
- }), data.map(function (entry, index) {
190
- var key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
177
+ }), data.map((entry, index) => {
178
+ const key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
191
179
  return /*#__PURE__*/_react.default.createElement(_SummaryCardValidationContext.default, {
192
180
  entryId: entry.id,
193
181
  topLevelErrors: errors
194
182
  }, /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
195
183
  id: key,
196
184
  key: key,
197
- entryData: _objectSpread(_objectSpread({}, entry), {}, {
198
- index: index
199
- }),
185
+ entryData: {
186
+ ...entry,
187
+ index
188
+ },
200
189
  masterPage: masterPage,
201
190
  config: config.card || {},
202
191
  onChange: onSummaryCardChange,
203
192
  onDuplicate: onDuplicate,
204
- onDelete: function onDelete() {
205
- return setEntryToDelete(entry);
206
- },
193
+ onDelete: () => setEntryToDelete(entry),
207
194
  pages: pages,
208
- onQuickEdit: function onQuickEdit(target) {
195
+ onQuickEdit: target => {
209
196
  validateEntries();
210
197
  return onChange(target);
211
198
  },
212
199
  parentCollectionName: config.collectionName.split('.').shift(),
213
200
  formData: formData,
214
201
  classModifiers: entry === entryToDelete ? ['deleting-summary-card'] : [''],
215
- inError: errors.filter(function (e) {
216
- return e.entryId === entry.id;
217
- }).length > 0
202
+ inError: errors.filter(e => e.entryId === entry.id).length > 0
218
203
  }));
219
204
  }));
220
205
  };