@ukhomeoffice/cop-react-form-renderer 6.13.2 → 6.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +8 -0
  2. package/dist/components/CheckYourAnswers/Answer.js +12 -11
  3. package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
  6. package/dist/components/CheckYourAnswers/index.js +1 -1
  7. package/dist/components/CollectionPage/CollectionPage.js +62 -60
  8. package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
  9. package/dist/components/CollectionPage/index.js +1 -1
  10. package/dist/components/CollectionSummary/BannerStrip.js +14 -14
  11. package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
  12. package/dist/components/CollectionSummary/CollectionSummary.js +81 -99
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
  14. package/dist/components/CollectionSummary/Confirmation.js +15 -13
  15. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  16. package/dist/components/CollectionSummary/RenderListView.js +47 -48
  17. package/dist/components/CollectionSummary/RenderListView.scss +4 -0
  18. package/dist/components/CollectionSummary/RenderListView.test.js +133 -98
  19. package/dist/components/CollectionSummary/SummaryCard.js +110 -148
  20. package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
  21. package/dist/components/CollectionSummary/SummaryCardButtons.js +71 -0
  22. package/dist/components/CollectionSummary/SummaryCardButtons.test.js +85 -0
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
  24. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
  25. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
  27. package/dist/components/CollectionSummary/index.js +1 -1
  28. package/dist/components/FormComponent/Collection.js +67 -102
  29. package/dist/components/FormComponent/Collection.test.js +907 -1080
  30. package/dist/components/FormComponent/Container.js +35 -29
  31. package/dist/components/FormComponent/Container.test.js +378 -409
  32. package/dist/components/FormComponent/FormComponent.js +59 -63
  33. package/dist/components/FormComponent/FormComponent.test.js +354 -415
  34. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  36. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +8 -8
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
  41. package/dist/components/FormComponent/helpers/index.js +5 -5
  42. package/dist/components/FormComponent/index.js +1 -1
  43. package/dist/components/FormPage/FormPage.js +99 -88
  44. package/dist/components/FormPage/FormPage.test.js +173 -164
  45. package/dist/components/FormPage/index.js +1 -1
  46. package/dist/components/FormRenderer/FormRenderer.js +138 -174
  47. package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
  52. package/dist/components/FormRenderer/handlers/index.js +2 -2
  53. package/dist/components/FormRenderer/handlers/navigate.js +4 -4
  54. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  56. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +16 -16
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
  61. package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
  63. package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
  75. package/dist/components/FormRenderer/helpers/index.js +2 -2
  76. package/dist/components/FormRenderer/index.js +1 -1
  77. package/dist/components/FormRenderer/onCYAAction.js +43 -44
  78. package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
  79. package/dist/components/FormRenderer/onPageAction.js +26 -35
  80. package/dist/components/FormRenderer/onPageAction.test.js +177 -186
  81. package/dist/components/FormRenderer/onTaskAction.js +11 -12
  82. package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
  83. package/dist/components/PageActions/ActionButton.js +14 -14
  84. package/dist/components/PageActions/ActionButton.test.js +57 -79
  85. package/dist/components/PageActions/PageActions.js +11 -11
  86. package/dist/components/PageActions/PageActions.test.js +87 -116
  87. package/dist/components/PageActions/index.js +1 -1
  88. package/dist/components/SummaryList/GroupAction.js +10 -18
  89. package/dist/components/SummaryList/GroupAction.test.js +38 -34
  90. package/dist/components/SummaryList/RowAction.js +12 -17
  91. package/dist/components/SummaryList/RowAction.test.js +38 -34
  92. package/dist/components/SummaryList/SummaryList.js +23 -25
  93. package/dist/components/SummaryList/SummaryList.test.js +162 -189
  94. package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
  95. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
  96. package/dist/components/SummaryList/SummaryListRow.js +7 -5
  97. package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
  98. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
  100. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  101. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
  102. package/dist/components/SummaryList/helpers/index.js +2 -2
  103. package/dist/components/SummaryList/index.js +1 -1
  104. package/dist/components/TaskList/Task.js +20 -30
  105. package/dist/components/TaskList/Task.test.js +84 -77
  106. package/dist/components/TaskList/TaskList.js +56 -79
  107. package/dist/components/TaskList/TaskList.test.js +149 -149
  108. package/dist/components/TaskList/TaskState.js +8 -6
  109. package/dist/components/TaskList/TaskState.test.js +53 -46
  110. package/dist/components/TaskList/index.js +1 -1
  111. package/dist/components/index.js +8 -8
  112. package/dist/context/HooksContext/HooksContext.js +56 -79
  113. package/dist/context/HooksContext/HooksContext.test.js +27 -36
  114. package/dist/context/HooksContext/index.js +3 -4
  115. package/dist/context/ValidationContext/ValidationContext.js +44 -95
  116. package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
  117. package/dist/context/ValidationContext/index.js +3 -4
  118. package/dist/context/index.js +3 -3
  119. package/dist/hooks/index.js +10 -11
  120. package/dist/hooks/useAxios.js +15 -41
  121. package/dist/hooks/useGetRequest.js +62 -98
  122. package/dist/hooks/useHooks.js +1 -3
  123. package/dist/hooks/useRefData.js +25 -37
  124. package/dist/hooks/useValidation.js +1 -3
  125. package/dist/index.js +14 -15
  126. package/dist/models/CollectionLabels.js +1 -1
  127. package/dist/models/ComponentTypes.js +25 -25
  128. package/dist/models/EventTypes.js +4 -4
  129. package/dist/models/FormPages.js +4 -4
  130. package/dist/models/FormTypes.js +8 -8
  131. package/dist/models/HubFormats.js +3 -3
  132. package/dist/models/PageAction.js +44 -38
  133. package/dist/models/TaskStates.js +29 -28
  134. package/dist/models/index.js +10 -10
  135. package/dist/setupTests.js +30 -31
  136. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  137. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
  138. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
  139. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
  140. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
  141. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
  142. package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
  143. package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
  144. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
  145. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
  147. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
  148. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +79 -93
  149. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
  150. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -14
  151. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +146 -98
  152. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
  153. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
  154. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
  155. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
  156. package/dist/utils/CheckYourAnswers/index.js +2 -2
  157. package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
  158. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
  159. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  160. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
  161. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
  162. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
  163. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
  164. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
  165. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  166. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
  167. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  168. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
  169. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  170. package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
  171. package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
  172. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
  173. package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
  174. package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
  175. package/dist/utils/CollectionPage/index.js +2 -2
  176. package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
  177. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
  178. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
  179. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
  180. package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
  181. package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
  182. package/dist/utils/Component/addShowWhen.js +5 -6
  183. package/dist/utils/Component/addShowWhen.test.js +38 -38
  184. package/dist/utils/Component/applyToComponentTree.js +12 -15
  185. package/dist/utils/Component/applyToComponentTree.test.js +28 -31
  186. package/dist/utils/Component/cleanAttributes.js +12 -11
  187. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  188. package/dist/utils/Component/elevateNestedComponents.js +6 -6
  189. package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
  190. package/dist/utils/Component/getComponent.js +81 -83
  191. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
  192. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
  193. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
  194. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
  195. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
  196. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
  197. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
  198. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
  199. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
  200. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
  201. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
  202. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
  203. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -174
  204. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
  205. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
  206. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
  207. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
  208. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
  209. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
  210. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
  211. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
  212. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
  213. package/dist/utils/Component/getDefaultValue.js +7 -9
  214. package/dist/utils/Component/getDefaultValue.test.js +13 -13
  215. package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
  216. package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
  217. package/dist/utils/Component/index.js +2 -2
  218. package/dist/utils/Component/isEditable.js +2 -4
  219. package/dist/utils/Component/isEditable.test.js +14 -15
  220. package/dist/utils/Component/optionIsSelected.js +2 -4
  221. package/dist/utils/Component/optionIsSelected.test.js +12 -12
  222. package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
  223. package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
  224. package/dist/utils/Component/showComponent.js +2 -2
  225. package/dist/utils/Component/showComponent.test.js +29 -29
  226. package/dist/utils/Component/wrapInFormGroup.js +4 -4
  227. package/dist/utils/Condition/index.js +2 -2
  228. package/dist/utils/Condition/meetsAllConditions.js +9 -9
  229. package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
  230. package/dist/utils/Condition/meetsCondition.js +17 -26
  231. package/dist/utils/Condition/meetsCondition.test.js +403 -403
  232. package/dist/utils/Condition/meetsOneCondition.js +6 -6
  233. package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
  234. package/dist/utils/Condition/setupConditions.js +12 -15
  235. package/dist/utils/Condition/setupConditions.test.js +8 -8
  236. package/dist/utils/Container/getEditableComponents.js +4 -6
  237. package/dist/utils/Container/getEditableComponents.test.js +44 -46
  238. package/dist/utils/Container/index.js +2 -2
  239. package/dist/utils/Container/setupNesting.js +14 -15
  240. package/dist/utils/Container/setupNesting.test.js +20 -23
  241. package/dist/utils/Container/showContainer.js +4 -8
  242. package/dist/utils/Container/showContainer.test.js +31 -31
  243. package/dist/utils/Data/applyFormula.js +30 -44
  244. package/dist/utils/Data/applyFormula.test.js +21 -21
  245. package/dist/utils/Data/deleteValues.js +4 -8
  246. package/dist/utils/Data/deleteValues.test.js +11 -11
  247. package/dist/utils/Data/getAutocompleteSource.js +19 -27
  248. package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
  249. package/dist/utils/Data/getDataPath.js +18 -28
  250. package/dist/utils/Data/getDataPath.test.js +13 -13
  251. package/dist/utils/Data/getOptions.js +57 -30
  252. package/dist/utils/Data/getOptions.test.js +75 -28
  253. package/dist/utils/Data/getSourceData.js +6 -19
  254. package/dist/utils/Data/getSourceData.test.js +85 -81
  255. package/dist/utils/Data/index.js +2 -2
  256. package/dist/utils/Data/nestInRefdataOptions.js +9 -12
  257. package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
  258. package/dist/utils/Data/refDataToOptions.js +9 -10
  259. package/dist/utils/Data/refDataToOptions.test.js +20 -20
  260. package/dist/utils/Data/setDataItem.js +7 -8
  261. package/dist/utils/Data/setDataItem.test.js +38 -38
  262. package/dist/utils/Data/setupFormData.js +13 -20
  263. package/dist/utils/Data/setupFormData.test.js +48 -47
  264. package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
  265. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
  266. package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
  267. package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
  268. package/dist/utils/FormPage/getConditionalText.js +4 -4
  269. package/dist/utils/FormPage/getConditionalText.test.js +30 -30
  270. package/dist/utils/FormPage/getFormPage.js +16 -12
  271. package/dist/utils/FormPage/getFormPage.test.js +23 -24
  272. package/dist/utils/FormPage/getFormPages.js +8 -11
  273. package/dist/utils/FormPage/getFormPages.test.js +15 -16
  274. package/dist/utils/FormPage/getPageActions.js +10 -13
  275. package/dist/utils/FormPage/getPageActions.test.js +33 -33
  276. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  277. package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
  278. package/dist/utils/FormPage/index.js +3 -5
  279. package/dist/utils/FormPage/showFormPage.js +4 -8
  280. package/dist/utils/FormPage/showFormPage.test.js +33 -33
  281. package/dist/utils/FormPage/showFormPageCYA.js +2 -2
  282. package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
  283. package/dist/utils/FormPage/useComponent.js +25 -22
  284. package/dist/utils/FormPage/useComponent.test.js +79 -44
  285. package/dist/utils/Format/formatData.js +1 -1
  286. package/dist/utils/Format/formatData.test.js +19 -19
  287. package/dist/utils/Format/formatDataForComponent.js +6 -7
  288. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  289. package/dist/utils/Format/formatDataForForm.js +5 -6
  290. package/dist/utils/Format/formatDataForForm.test.js +14 -17
  291. package/dist/utils/Format/formatDataForPage.js +4 -5
  292. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  293. package/dist/utils/Format/index.js +2 -2
  294. package/dist/utils/Hub/getFormHub.js +2 -2
  295. package/dist/utils/Hub/getFormHub.test.js +23 -24
  296. package/dist/utils/Hub/index.js +2 -2
  297. package/dist/utils/Meta/constants.js +2 -2
  298. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  299. package/dist/utils/Meta/documents/getDocuments.test.js +25 -17
  300. package/dist/utils/Meta/documents/index.js +2 -2
  301. package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
  302. package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
  303. package/dist/utils/Meta/index.js +2 -2
  304. package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
  305. package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
  306. package/dist/utils/Operate/deleteValueInFormData.js +2 -2
  307. package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
  308. package/dist/utils/Operate/getFirstOf.js +6 -6
  309. package/dist/utils/Operate/getFirstOf.test.js +32 -32
  310. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
  311. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
  312. package/dist/utils/Operate/getLength.js +9 -9
  313. package/dist/utils/Operate/getLength.test.js +19 -19
  314. package/dist/utils/Operate/index.js +2 -2
  315. package/dist/utils/Operate/persistValueInFormData.js +4 -4
  316. package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
  317. package/dist/utils/Operate/runPageOperations.js +8 -8
  318. package/dist/utils/Operate/runPageOperations.test.js +24 -25
  319. package/dist/utils/Operate/setValueInFormData.js +3 -3
  320. package/dist/utils/Operate/setValueInFormData.test.js +17 -17
  321. package/dist/utils/Operate/shouldRun.js +7 -7
  322. package/dist/utils/Operate/shouldRun.test.js +22 -24
  323. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
  324. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
  325. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  326. package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
  327. package/dist/utils/Validate/additional/index.js +8 -8
  328. package/dist/utils/Validate/additional/index.test.js +22 -22
  329. package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
  330. package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
  331. package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
  332. package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
  333. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
  334. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
  335. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  336. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
  337. package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
  338. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
  339. package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
  340. package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
  341. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  342. package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
  343. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  344. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
  345. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  346. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
  347. package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
  348. package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
  349. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  350. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
  351. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
  352. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
  353. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  354. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
  355. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  356. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
  357. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  358. package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
  359. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  360. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
  361. package/dist/utils/Validate/additional/utils.js +9 -22
  362. package/dist/utils/Validate/index.js +2 -2
  363. package/dist/utils/Validate/validateCollection.js +18 -23
  364. package/dist/utils/Validate/validateCollection.test.js +75 -67
  365. package/dist/utils/Validate/validateComponent.js +19 -19
  366. package/dist/utils/Validate/validateComponent.test.js +179 -154
  367. package/dist/utils/Validate/validateContainer.js +14 -17
  368. package/dist/utils/Validate/validateContainer.test.js +59 -53
  369. package/dist/utils/Validate/validateDate.js +16 -22
  370. package/dist/utils/Validate/validateDate.test.js +31 -32
  371. package/dist/utils/Validate/validateEmail.js +8 -9
  372. package/dist/utils/Validate/validateEmail.test.js +29 -26
  373. package/dist/utils/Validate/validateMultifile.js +5 -7
  374. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  375. package/dist/utils/Validate/validatePage.js +13 -18
  376. package/dist/utils/Validate/validatePage.test.js +198 -195
  377. package/dist/utils/Validate/validateRegex.js +3 -5
  378. package/dist/utils/Validate/validateRegex.test.js +15 -15
  379. package/dist/utils/Validate/validateRequired.js +4 -6
  380. package/dist/utils/Validate/validateRequired.test.js +19 -19
  381. package/dist/utils/Validate/validateTextArea.js +4 -6
  382. package/dist/utils/Validate/validateTextArea.test.js +21 -21
  383. package/dist/utils/Validate/validateTime.js +12 -19
  384. package/dist/utils/Validate/validateTime.test.js +27 -27
  385. package/dist/utils/index.js +5 -6
  386. package/package.json +5 -5
@@ -4,29 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
7
  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; }
9
8
  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; }
10
- 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; }
11
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
- var getComponentToUse = function getComponentToUse(toUse, formComponents) {
14
- var path = toUse.use.split('.');
15
- var firstId = path.shift();
16
- var wrapper = JSON.parse(JSON.stringify(_objectSpread({}, formComponents.find(function (fc) {
17
- return fc.id === firstId;
18
- }))));
19
- var component = wrapper;
20
- var parent = wrapper;
21
- var _loop = function _loop() {
22
- var id = path.shift();
9
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
+ const getComponentToUse = (toUse, formComponents) => {
13
+ const path = toUse.use.split('.');
14
+ const firstId = path.shift();
15
+ let wrapper = JSON.parse(JSON.stringify(_objectSpread({}, formComponents.find(fc => fc.id === firstId))));
16
+ let component = wrapper;
17
+ let parent = wrapper;
18
+ while (component && path.length > 0) {
19
+ const id = path.shift();
23
20
  if (Array.isArray(component.components)) {
24
21
  // Filter the parent components down to just the one referenced
25
22
  // by the current id.
26
23
  parent = component;
27
- parent.components = parent.components.filter(function (c) {
28
- return c.id === id;
29
- });
24
+ parent.components = parent.components.filter(c => c.id === id);
30
25
  if (parent.components.length > 0) {
31
26
  // Make the found child the parent so we can iterate.
32
27
  // eslint-disable-next-line prefer-destructuring
@@ -40,9 +35,6 @@ var getComponentToUse = function getComponentToUse(toUse, formComponents) {
40
35
  // components on this parent.
41
36
  component = undefined;
42
37
  }
43
- };
44
- while (component && path.length > 0) {
45
- _loop();
46
38
  }
47
39
  if (component) {
48
40
  component = _objectSpread(_objectSpread({
@@ -53,6 +45,17 @@ var getComponentToUse = function getComponentToUse(toUse, formComponents) {
53
45
  } else {
54
46
  wrapper = component;
55
47
  }
48
+
49
+ // this allows us to have the 'use: component' functionality inside item array
50
+ if (component.item && Array.isArray(component.item)) {
51
+ component.item = component.item.map(item => {
52
+ if (item.use) {
53
+ // eslint-disable-next-line no-use-before-define
54
+ return useComponent(item, formComponents);
55
+ }
56
+ return item;
57
+ });
58
+ }
56
59
  return wrapper;
57
60
  }
58
61
 
@@ -67,9 +70,9 @@ var getComponentToUse = function getComponentToUse(toUse, formComponents) {
67
70
  * @param {Array} formComponents An array of existing components on the form.
68
71
  * @returns A component configuration object.
69
72
  */
70
- var useComponent = function useComponent(toUse, formComponents) {
73
+ const useComponent = (toUse, formComponents) => {
71
74
  if (toUse) {
72
- var component = getComponentToUse(toUse, formComponents);
75
+ const component = getComponentToUse(toUse, formComponents);
73
76
  if (component) {
74
77
  return component;
75
78
  }
@@ -2,23 +2,22 @@
2
2
 
3
3
  var _models = require("../../models");
4
4
  var _useComponent = _interopRequireDefault(require("./useComponent"));
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
- 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); }
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
6
  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; }
8
7
  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; }
9
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
11
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
12
- describe('utils', function () {
13
- describe('FormPage', function () {
14
- describe('useComponent', function () {
15
- var ZULU = {
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
11
+ describe('utils', () => {
12
+ describe('FormPage', () => {
13
+ describe('useComponent', () => {
14
+ const ZULU = {
16
15
  id: 'z',
17
16
  fieldId: 'z',
18
17
  label: 'Zulu',
19
18
  type: _models.ComponentTypes.TEXT
20
19
  };
21
- var CONTAINER = {
20
+ const CONTAINER = {
22
21
  id: 'container',
23
22
  fieldId: 'container',
24
23
  label: 'Container',
@@ -30,7 +29,7 @@ describe('utils', function () {
30
29
  type: _models.ComponentTypes.TEXT
31
30
  }, ZULU]
32
31
  };
33
- var FORM_COMPONENTS = [{
32
+ const FORM_COMPONENTS = [{
34
33
  id: 'a',
35
34
  fieldId: 'a',
36
35
  label: 'Alpha',
@@ -51,34 +50,34 @@ describe('utils', function () {
51
50
  cya_label: 'Delta',
52
51
  type: _models.ComponentTypes.TEXT
53
52
  }, CONTAINER];
54
- it('should handle a null toUse configuration', function () {
55
- var TO_USE = null;
53
+ it('should handle a null toUse configuration', () => {
54
+ const TO_USE = null;
56
55
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual({});
57
56
  });
58
- it('should handle an unrecognised component reference', function () {
59
- var TO_USE = {
57
+ it('should handle an unrecognised component reference', () => {
58
+ const TO_USE = {
60
59
  use: 'e',
61
60
  label: 'Echo'
62
61
  };
63
62
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(TO_USE);
64
63
  });
65
- it('should use the appropriate component', function () {
66
- var TO_USE = {
64
+ it('should use the appropriate component', () => {
65
+ const TO_USE = {
67
66
  use: 'a'
68
67
  };
69
- var A = FORM_COMPONENTS[0];
68
+ const A = FORM_COMPONENTS[0];
70
69
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
71
70
  use: 'a'
72
71
  }, A), {}, {
73
72
  cya_label: A.label
74
73
  }));
75
74
  });
76
- it('should allow the fieldId to be overridden', function () {
77
- var TO_USE = {
75
+ it('should allow the fieldId to be overridden', () => {
76
+ const TO_USE = {
78
77
  use: 'a',
79
78
  fieldId: 'alpha'
80
79
  };
81
- var A = FORM_COMPONENTS[0];
80
+ const A = FORM_COMPONENTS[0];
82
81
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
83
82
  use: 'a'
84
83
  }, A), {}, {
@@ -86,12 +85,12 @@ describe('utils', function () {
86
85
  fieldId: TO_USE.fieldId
87
86
  }));
88
87
  });
89
- it('should allow the label to be overridden but keep the cya_label unaffected', function () {
90
- var TO_USE = {
88
+ it('should allow the label to be overridden but keep the cya_label unaffected', () => {
89
+ const TO_USE = {
91
90
  use: 'a',
92
91
  label: 'Alpha foxtrot'
93
92
  };
94
- var A = FORM_COMPONENTS[0];
93
+ const A = FORM_COMPONENTS[0];
95
94
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
96
95
  use: 'a'
97
96
  }, A), {}, {
@@ -99,12 +98,12 @@ describe('utils', function () {
99
98
  label: TO_USE.label
100
99
  }));
101
100
  });
102
- it('should allow the form component cya_label, if label is empty', function () {
103
- var TO_USE = {
101
+ it('should allow the form component cya_label, if label is empty', () => {
102
+ const TO_USE = {
104
103
  use: 'd',
105
104
  label: ''
106
105
  };
107
- var A = FORM_COMPONENTS[3];
106
+ const A = FORM_COMPONENTS[3];
108
107
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
109
108
  use: 'd'
110
109
  }, A), {}, {
@@ -112,11 +111,11 @@ describe('utils', function () {
112
111
  label: TO_USE.label
113
112
  }));
114
113
  });
115
- it('should allow the form component cya_label, if label is not given', function () {
116
- var TO_USE = {
114
+ it('should allow the form component cya_label, if label is not given', () => {
115
+ const TO_USE = {
117
116
  use: 'd'
118
117
  };
119
- var A = FORM_COMPONENTS[3];
118
+ const A = FORM_COMPONENTS[3];
120
119
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
121
120
  use: 'd'
122
121
  }, A), {}, {
@@ -124,8 +123,8 @@ describe('utils', function () {
124
123
  label: TO_USE.label
125
124
  }));
126
125
  });
127
- it('should handle a container', function () {
128
- var TO_USE = {
126
+ it('should handle a container', () => {
127
+ const TO_USE = {
129
128
  use: CONTAINER.id
130
129
  };
131
130
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
@@ -134,9 +133,9 @@ describe('utils', function () {
134
133
  cya_label: CONTAINER.label
135
134
  }));
136
135
  });
137
- it('should handle a component nested inside a container', function () {
138
- var ID = "".concat(CONTAINER.id, ".").concat(ZULU.id);
139
- var TO_USE = {
136
+ it('should handle a component nested inside a container', () => {
137
+ const ID = "".concat(CONTAINER.id, ".").concat(ZULU.id);
138
+ const TO_USE = {
140
139
  use: ID
141
140
  };
142
141
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({}, CONTAINER), {}, {
@@ -148,26 +147,26 @@ describe('utils', function () {
148
147
  ]
149
148
  }));
150
149
  });
151
- it('should handle an unrecognised container reference', function () {
152
- var ID = "unrecognised.".concat(ZULU.id);
153
- var TO_USE = {
150
+ it('should handle an unrecognised container reference', () => {
151
+ const ID = "unrecognised.".concat(ZULU.id);
152
+ const TO_USE = {
154
153
  use: ID
155
154
  };
156
155
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(TO_USE);
157
156
  });
158
- it('should handle an unrecognised component within a container', function () {
159
- var ID = "".concat(CONTAINER.id, ".unrecognised");
160
- var TO_USE = {
157
+ it('should handle an unrecognised component within a container', () => {
158
+ const ID = "".concat(CONTAINER.id, ".unrecognised");
159
+ const TO_USE = {
161
160
  use: ID
162
161
  };
163
162
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(TO_USE);
164
163
  });
165
- it('should allow the cya_label to overriden', function () {
166
- var TO_USE = {
164
+ it('should allow the cya_label to overriden', () => {
165
+ const TO_USE = {
167
166
  use: 'd',
168
167
  cya_label: 'Alpha'
169
168
  };
170
- var A = FORM_COMPONENTS[3];
169
+ const A = FORM_COMPONENTS[3];
171
170
  expect((0, _useComponent.default)(TO_USE, FORM_COMPONENTS)).toEqual(_objectSpread(_objectSpread({
172
171
  use: 'd'
173
172
  }, A), {}, {
@@ -175,6 +174,42 @@ describe('utils', function () {
175
174
  label: TO_USE.label
176
175
  }));
177
176
  });
177
+ it('should handle nested use references within item', () => {
178
+ const SEARCH_METHOD = {
179
+ id: 'searchMethod',
180
+ label: 'Search Method',
181
+ type: _models.ComponentTypes.TEXT
182
+ };
183
+ const SEARCH_TECHNIQUES = {
184
+ id: 'searchTechniques',
185
+ label: 'Search Techniques',
186
+ type: _models.ComponentTypes.CONTAINER,
187
+ item: [{
188
+ use: 'searchMethod',
189
+ data: {
190
+ url: 'https://api.example.com/searchtype'
191
+ }
192
+ }]
193
+ };
194
+ const EXTENDED_FORM_COMPONENTS = [].concat(FORM_COMPONENTS, [SEARCH_METHOD, SEARCH_TECHNIQUES]);
195
+ const TO_USE = {
196
+ use: 'searchTechniques'
197
+ };
198
+ const expectedComponent = _objectSpread(_objectSpread({
199
+ use: 'searchTechniques'
200
+ }, SEARCH_TECHNIQUES), {}, {
201
+ cya_label: SEARCH_TECHNIQUES.label,
202
+ item: [_objectSpread(_objectSpread({
203
+ use: 'searchMethod'
204
+ }, SEARCH_METHOD), {}, {
205
+ cya_label: SEARCH_METHOD.label,
206
+ data: {
207
+ url: 'https://api.example.com/searchtype'
208
+ }
209
+ })]
210
+ });
211
+ expect((0, _useComponent.default)(TO_USE, EXTENDED_FORM_COMPONENTS)).toEqual(expectedComponent);
212
+ });
178
213
  });
179
214
  });
180
215
  });
@@ -10,7 +10,7 @@ exports.default = void 0;
10
10
  * @param {string} value The string value to be formatted.
11
11
  * @returns A formatted version of the value.
12
12
  */
13
- var formatData = function formatData(format, value) {
13
+ const formatData = (format, value) => {
14
14
  if (format && value) {
15
15
  switch (format.type) {
16
16
  case 'lowercase':
@@ -1,43 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  var _formatData = _interopRequireDefault(require("./formatData"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
5
  // Local imports
6
6
 
7
- describe('utils', function () {
8
- describe('Format', function () {
9
- describe('formatData', function () {
10
- it('should handle no format', function () {
11
- var FORMAT = null;
12
- var VALUE = 'AlPhA';
7
+ describe('utils', () => {
8
+ describe('Format', () => {
9
+ describe('formatData', () => {
10
+ it('should handle no format', () => {
11
+ const FORMAT = null;
12
+ const VALUE = 'AlPhA';
13
13
  expect((0, _formatData.default)(FORMAT, VALUE)).toEqual(VALUE);
14
14
  });
15
- it('should handle no value', function () {
16
- var FORMAT = {
15
+ it('should handle no value', () => {
16
+ const FORMAT = {
17
17
  type: 'lowercase'
18
18
  };
19
- var VALUE = null;
19
+ const VALUE = null;
20
20
  expect((0, _formatData.default)(FORMAT, VALUE)).toBeNull();
21
21
  });
22
- it('should format a string as lowercase', function () {
23
- var FORMAT = {
22
+ it('should format a string as lowercase', () => {
23
+ const FORMAT = {
24
24
  type: 'lowercase'
25
25
  };
26
- var VALUE = 'AlPhA';
26
+ const VALUE = 'AlPhA';
27
27
  expect((0, _formatData.default)(FORMAT, VALUE)).toEqual('alpha');
28
28
  });
29
- it('should format a string as uppercase', function () {
30
- var FORMAT = {
29
+ it('should format a string as uppercase', () => {
30
+ const FORMAT = {
31
31
  type: 'uppercase'
32
32
  };
33
- var VALUE = 'AlPhA';
33
+ const VALUE = 'AlPhA';
34
34
  expect((0, _formatData.default)(FORMAT, VALUE)).toEqual('ALPHA');
35
35
  });
36
- it('should leave an unknown format type alone', function () {
37
- var FORMAT = {
36
+ it('should leave an unknown format type alone', () => {
37
+ const FORMAT = {
38
38
  type: 'not-a-real-type'
39
39
  };
40
- var VALUE = 'AlPhA';
40
+ const VALUE = 'AlPhA';
41
41
  expect((0, _formatData.default)(FORMAT, VALUE)).toEqual(VALUE);
42
42
  });
43
43
  });
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.formatDataForComponents = exports.default = void 0;
7
7
  var _formatData = _interopRequireDefault(require("./formatData"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  // Local imports
10
10
 
11
11
  /**
@@ -14,8 +14,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
14
14
  * @param {object} data The top-level form data.
15
15
  * @param {string} eventType What type of event initiated this call.
16
16
  */
17
- var formatDataForComponent = function formatDataForComponent(component, data, eventType) {
18
- var componentData = data;
17
+ const formatDataForComponent = (component, data, eventType) => {
18
+ const componentData = data;
19
19
  if (component.format && component.format.on === eventType) {
20
20
  componentData[component.fieldId] = (0, _formatData.default)(component.format, componentData[component.fieldId]);
21
21
  }
@@ -27,9 +27,8 @@ var formatDataForComponent = function formatDataForComponent(component, data, ev
27
27
  * @param {object} data The top-level form data.
28
28
  * @param {string} eventType What type of event initiated this call.
29
29
  */
30
- var formatDataForComponents = exports.formatDataForComponents = function formatDataForComponents(components, data, eventType) {
31
- components.forEach(function (component) {
32
- return formatDataForComponent(component, data, eventType);
33
- });
30
+ const formatDataForComponents = (components, data, eventType) => {
31
+ components.forEach(component => formatDataForComponent(component, data, eventType));
34
32
  };
33
+ exports.formatDataForComponents = formatDataForComponents;
35
34
  var _default = exports.default = formatDataForComponent;
@@ -2,110 +2,83 @@
2
2
 
3
3
  var _models = require("../../models");
4
4
  var _formatDataForComponent = _interopRequireWildcard(require("./formatDataForComponent"));
5
- 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); }
6
- 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 _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
- 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."); }
10
- 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); }
11
- 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; }
12
- 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; } }
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
- 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; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
17
- describe('utils', function () {
18
- describe('Format', function () {
19
- var setupField = function setupField(fieldId, format) {
20
- return {
21
- fieldId: fieldId,
22
- format: format
23
- };
24
- };
25
- var setupData = function setupData(fieldId, value) {
26
- return _defineProperty({}, fieldId, value);
27
- };
28
- var setupFieldAndData = function setupFieldAndData(fieldId, format, value) {
29
- return [setupField(fieldId, format), setupData(fieldId, value)];
30
- };
31
- describe('formatDataForComponent', function () {
32
- it('should handle no format', function () {
33
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
34
- var FIELD_ID = 'field';
35
- var FORMAT = null;
36
- var VALUE = 'AlPhA';
37
- var _setupFieldAndData = setupFieldAndData(FIELD_ID, FORMAT, VALUE),
38
- _setupFieldAndData2 = _slicedToArray(_setupFieldAndData, 2),
39
- COMPONENT = _setupFieldAndData2[0],
40
- DATA = _setupFieldAndData2[1];
5
+ 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); }
6
+ 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; }
7
+ // Local imports
8
+
9
+ describe('utils', () => {
10
+ describe('Format', () => {
11
+ const setupField = (fieldId, format) => ({
12
+ fieldId,
13
+ format
14
+ });
15
+ const setupData = (fieldId, value) => ({
16
+ [fieldId]: value
17
+ });
18
+ const setupFieldAndData = (fieldId, format, value) => [setupField(fieldId, format), setupData(fieldId, value)];
19
+ describe('formatDataForComponent', () => {
20
+ it('should handle no format', () => {
21
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
22
+ const FIELD_ID = 'field';
23
+ const FORMAT = null;
24
+ const VALUE = 'AlPhA';
25
+ const [COMPONENT, DATA] = setupFieldAndData(FIELD_ID, FORMAT, VALUE);
41
26
  (0, _formatDataForComponent.default)(COMPONENT, DATA, EVENT_TYPE);
42
27
  expect(DATA[FIELD_ID]).toEqual(VALUE);
43
28
  });
44
- it('should handle no value', function () {
45
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
46
- var FIELD_ID = 'field';
47
- var FORMAT = {
29
+ it('should handle no value', () => {
30
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
31
+ const FIELD_ID = 'field';
32
+ const FORMAT = {
48
33
  type: 'lowercase',
49
34
  on: EVENT_TYPE
50
35
  };
51
- var VALUE = null;
52
- var _setupFieldAndData3 = setupFieldAndData(FIELD_ID, FORMAT, VALUE),
53
- _setupFieldAndData4 = _slicedToArray(_setupFieldAndData3, 2),
54
- COMPONENT = _setupFieldAndData4[0],
55
- DATA = _setupFieldAndData4[1];
36
+ const VALUE = null;
37
+ const [COMPONENT, DATA] = setupFieldAndData(FIELD_ID, FORMAT, VALUE);
56
38
  (0, _formatDataForComponent.default)(COMPONENT, DATA, EVENT_TYPE);
57
39
  expect(DATA[FIELD_ID]).toBeNull();
58
40
  });
59
- it('should remain unchanged if the wrong event type', function () {
60
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
61
- var FIELD_ID = 'field';
62
- var FORMAT = {
41
+ it('should remain unchanged if the wrong event type', () => {
42
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
43
+ const FIELD_ID = 'field';
44
+ const FORMAT = {
63
45
  type: 'lowercase',
64
46
  on: _models.EventTypes.BLUR
65
47
  };
66
- var VALUE = 'AlPhA';
67
- var _setupFieldAndData5 = setupFieldAndData(FIELD_ID, FORMAT, VALUE),
68
- _setupFieldAndData6 = _slicedToArray(_setupFieldAndData5, 2),
69
- COMPONENT = _setupFieldAndData6[0],
70
- DATA = _setupFieldAndData6[1];
48
+ const VALUE = 'AlPhA';
49
+ const [COMPONENT, DATA] = setupFieldAndData(FIELD_ID, FORMAT, VALUE);
71
50
  (0, _formatDataForComponent.default)(COMPONENT, DATA, EVENT_TYPE);
72
51
  expect(DATA[FIELD_ID]).toEqual(VALUE);
73
52
  });
74
- it('should format a string as lowercase', function () {
75
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
76
- var FIELD_ID = 'field';
77
- var FORMAT = {
53
+ it('should format a string as lowercase', () => {
54
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
55
+ const FIELD_ID = 'field';
56
+ const FORMAT = {
78
57
  type: 'lowercase',
79
58
  on: EVENT_TYPE
80
59
  };
81
- var VALUE = 'AlPhA';
82
- var _setupFieldAndData7 = setupFieldAndData(FIELD_ID, FORMAT, VALUE),
83
- _setupFieldAndData8 = _slicedToArray(_setupFieldAndData7, 2),
84
- COMPONENT = _setupFieldAndData8[0],
85
- DATA = _setupFieldAndData8[1];
60
+ const VALUE = 'AlPhA';
61
+ const [COMPONENT, DATA] = setupFieldAndData(FIELD_ID, FORMAT, VALUE);
86
62
  (0, _formatDataForComponent.default)(COMPONENT, DATA, EVENT_TYPE);
87
63
  expect(DATA[FIELD_ID]).toEqual('alpha');
88
64
  });
89
- it('should format a string as uppercase', function () {
90
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
91
- var FIELD_ID = 'field';
92
- var FORMAT = {
65
+ it('should format a string as uppercase', () => {
66
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
67
+ const FIELD_ID = 'field';
68
+ const FORMAT = {
93
69
  type: 'uppercase',
94
70
  on: EVENT_TYPE
95
71
  };
96
- var VALUE = 'AlPhA';
97
- var _setupFieldAndData9 = setupFieldAndData(FIELD_ID, FORMAT, VALUE),
98
- _setupFieldAndData10 = _slicedToArray(_setupFieldAndData9, 2),
99
- COMPONENT = _setupFieldAndData10[0],
100
- DATA = _setupFieldAndData10[1];
72
+ const VALUE = 'AlPhA';
73
+ const [COMPONENT, DATA] = setupFieldAndData(FIELD_ID, FORMAT, VALUE);
101
74
  (0, _formatDataForComponent.default)(COMPONENT, DATA, EVENT_TYPE);
102
75
  expect(DATA[FIELD_ID]).toEqual('ALPHA');
103
76
  });
104
77
  });
105
- describe('formatDataForComponents', function () {
106
- it('should appropriately format multiple components', function () {
107
- var EVENT_TYPE = _models.EventTypes.SUBMIT;
108
- var COMPONENTS = [setupField('alpha', {
78
+ describe('formatDataForComponents', () => {
79
+ it('should appropriately format multiple components', () => {
80
+ const EVENT_TYPE = _models.EventTypes.SUBMIT;
81
+ const COMPONENTS = [setupField('alpha', {
109
82
  type: 'lowercase',
110
83
  on: _models.EventTypes.SUBMIT
111
84
  }),
@@ -122,8 +95,7 @@ describe('utils', function () {
122
95
  on: _models.EventTypes.BLUR
123
96
  }) // Should not be formatted because of event type
124
97
  ];
125
-
126
- var DATA = {
98
+ const DATA = {
127
99
  alpha: 'AlPhA',
128
100
  bravo: 'bRaVo',
129
101
  charlie: 'CHArlie',
@@ -6,20 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _formatDataForComponent = require("./formatDataForComponent");
8
8
  var _formatDataForPage = require("./formatDataForPage");
9
- 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); }
10
9
  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; }
11
10
  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; }
12
- 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; }
13
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
14
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // Local imports
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Local imports
15
14
  /**
16
15
  * Formats the data for all components on a form, according to each component's format configuration.
17
16
  * @param {object} form The form to format the components for.
18
17
  * @param {object} data The top-level form data.
19
18
  * @param {string} eventType What type of event initiated this call.
20
19
  */
21
- var formatDataForForm = function formatDataForForm(form, baseData, eventType) {
22
- var data = _objectSpread({}, baseData);
20
+ const formatDataForForm = (form, baseData, eventType) => {
21
+ const data = _objectSpread({}, baseData);
23
22
  (0, _formatDataForComponent.formatDataForComponents)(form.components, data, eventType);
24
23
  (0, _formatDataForPage.formatDataForPages)(form.pages, data, eventType);
25
24
  return data;