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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +12 -12
  2. package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
  5. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
  6. package/dist/components/CollectionPage/CollectionPage.js +75 -59
  7. package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
  8. package/dist/components/CollectionSummary/BannerStrip.js +15 -14
  9. package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
  10. package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
  11. package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
  12. package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
  13. package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
  14. package/dist/components/CollectionSummary/Confirmation.js +14 -12
  15. package/dist/components/CollectionSummary/Confirmation.scss +1 -1
  16. package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
  17. package/dist/components/CollectionSummary/RenderListView.js +54 -56
  18. package/dist/components/CollectionSummary/RenderListView.scss +10 -1
  19. package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
  20. package/dist/components/CollectionSummary/SummaryCard.js +135 -145
  21. package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
  22. package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
  23. package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
  24. package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
  25. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
  26. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
  27. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
  28. package/dist/components/FormComponent/Collection.js +81 -108
  29. package/dist/components/FormComponent/Collection.test.js +909 -943
  30. package/dist/components/FormComponent/Container.js +40 -38
  31. package/dist/components/FormComponent/Container.test.js +314 -345
  32. package/dist/components/FormComponent/FormComponent.js +80 -71
  33. package/dist/components/FormComponent/FormComponent.test.js +353 -414
  34. package/dist/components/FormComponent/helpers/addLabel.js +4 -7
  35. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  36. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  37. package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
  38. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  39. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
  40. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  41. package/dist/components/FormComponent/helpers/index.js +4 -4
  42. package/dist/components/FormPage/FormPage.js +65 -80
  43. package/dist/components/FormPage/FormPage.scss +1 -1
  44. package/dist/components/FormPage/FormPage.test.js +127 -163
  45. package/dist/components/FormRenderer/FormRenderer.js +150 -183
  46. package/dist/components/FormRenderer/FormRenderer.scss +1 -1
  47. package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
  48. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  49. package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
  50. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  51. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  52. package/dist/components/FormRenderer/handlers/index.js +1 -1
  53. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  54. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  55. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  56. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  57. package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
  58. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
  59. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
  60. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  61. package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
  62. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  63. package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
  64. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  65. package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
  66. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  67. package/dist/components/FormRenderer/helpers/getPage.js +2 -4
  68. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  69. package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
  70. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  71. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  72. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
  73. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
  74. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
  75. package/dist/components/FormRenderer/helpers/index.js +2 -4
  76. package/dist/components/FormRenderer/onCYAAction.js +59 -51
  77. package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
  78. package/dist/components/FormRenderer/onPageAction.js +50 -48
  79. package/dist/components/FormRenderer/onPageAction.test.js +241 -217
  80. package/dist/components/FormRenderer/onTaskAction.js +9 -13
  81. package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
  82. package/dist/components/PageActions/ActionButton.js +12 -15
  83. package/dist/components/PageActions/ActionButton.test.js +56 -78
  84. package/dist/components/PageActions/PageActions.js +10 -10
  85. package/dist/components/PageActions/PageActions.test.js +86 -115
  86. package/dist/components/SummaryList/GroupAction.js +9 -17
  87. package/dist/components/SummaryList/GroupAction.test.js +37 -33
  88. package/dist/components/SummaryList/RowAction.js +11 -16
  89. package/dist/components/SummaryList/RowAction.test.js +37 -33
  90. package/dist/components/SummaryList/SummaryList.js +21 -26
  91. package/dist/components/SummaryList/SummaryList.scss +2 -2
  92. package/dist/components/SummaryList/SummaryList.test.js +143 -166
  93. package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
  94. package/dist/components/SummaryList/SummaryListRow.js +6 -4
  95. package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
  96. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
  97. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  98. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
  99. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  100. package/dist/components/SummaryList/helpers/index.js +1 -1
  101. package/dist/components/TaskList/Task.js +19 -29
  102. package/dist/components/TaskList/Task.test.js +83 -76
  103. package/dist/components/TaskList/TaskList.js +45 -71
  104. package/dist/components/TaskList/TaskList.scss +1 -1
  105. package/dist/components/TaskList/TaskList.test.js +113 -111
  106. package/dist/components/TaskList/TaskState.js +7 -5
  107. package/dist/components/TaskList/TaskState.test.js +52 -45
  108. package/dist/components/index.js +7 -7
  109. package/dist/context/HooksContext/HooksContext.js +57 -80
  110. package/dist/context/HooksContext/HooksContext.test.js +26 -35
  111. package/dist/context/HooksContext/index.js +3 -4
  112. package/dist/context/ValidationContext/ValidationContext.js +65 -72
  113. package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
  114. package/dist/context/ValidationContext/index.js +3 -4
  115. package/dist/context/index.js +2 -2
  116. package/dist/hooks/index.js +9 -10
  117. package/dist/hooks/useAxios.js +14 -40
  118. package/dist/hooks/useGetRequest.js +61 -97
  119. package/dist/hooks/useHooks.js +1 -3
  120. package/dist/hooks/useRefData.js +27 -40
  121. package/dist/hooks/useValidation.js +1 -3
  122. package/dist/index.js +13 -14
  123. package/dist/models/CollectionLabels.js +1 -1
  124. package/dist/models/ComponentTypes.js +25 -25
  125. package/dist/models/EventTypes.js +4 -4
  126. package/dist/models/FormPages.js +4 -4
  127. package/dist/models/FormTypes.js +8 -8
  128. package/dist/models/HubFormats.js +3 -3
  129. package/dist/models/PageAction.js +44 -38
  130. package/dist/models/TaskStates.js +29 -28
  131. package/dist/models/index.js +9 -9
  132. package/dist/setupTests.js +30 -31
  133. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  134. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
  135. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
  136. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
  137. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
  138. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
  139. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  140. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  141. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
  142. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
  143. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
  144. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
  145. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
  146. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
  147. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
  148. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
  149. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
  150. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
  151. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
  152. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
  153. package/dist/utils/CheckYourAnswers/index.js +1 -1
  154. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
  155. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
  156. package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
  157. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
  158. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  159. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
  160. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
  161. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
  162. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  163. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  164. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
  165. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  166. package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
  167. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  168. package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
  169. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
  170. package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
  171. package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
  172. package/dist/utils/CollectionPage/index.js +3 -1
  173. package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
  174. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
  175. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
  176. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  177. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
  178. package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
  179. package/dist/utils/Component/addShowWhen.js +4 -8
  180. package/dist/utils/Component/addShowWhen.test.js +37 -37
  181. package/dist/utils/Component/applyToComponentTree.js +18 -18
  182. package/dist/utils/Component/applyToComponentTree.test.js +27 -32
  183. package/dist/utils/Component/cleanAttributes.js +10 -13
  184. package/dist/utils/Component/cleanAttributes.test.js +17 -18
  185. package/dist/utils/Component/elevateNestedComponents.js +5 -5
  186. package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
  187. package/dist/utils/Component/getComponent.js +88 -94
  188. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
  190. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
  191. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
  192. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
  193. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
  194. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
  195. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
  196. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
  197. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
  198. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
  199. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
  200. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
  201. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
  202. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
  203. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
  204. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
  205. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
  206. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
  207. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
  208. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  209. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
  210. package/dist/utils/Component/getDefaultValue.js +6 -8
  211. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  212. package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
  213. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  214. package/dist/utils/Component/index.js +1 -1
  215. package/dist/utils/Component/isEditable.js +2 -4
  216. package/dist/utils/Component/isEditable.test.js +14 -15
  217. package/dist/utils/Component/optionIsSelected.js +1 -1
  218. package/dist/utils/Component/optionIsSelected.test.js +9 -9
  219. package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
  220. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  221. package/dist/utils/Component/showComponent.js +1 -1
  222. package/dist/utils/Component/showComponent.test.js +28 -28
  223. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  224. package/dist/utils/Condition/index.js +1 -1
  225. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  226. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  227. package/dist/utils/Condition/meetsCondition.js +28 -19
  228. package/dist/utils/Condition/meetsCondition.test.js +476 -376
  229. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  230. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  231. package/dist/utils/Condition/setupConditions.js +13 -18
  232. package/dist/utils/Condition/setupConditions.test.js +7 -7
  233. package/dist/utils/Container/getEditableComponents.js +3 -5
  234. package/dist/utils/Container/getEditableComponents.test.js +43 -45
  235. package/dist/utils/Container/index.js +1 -1
  236. package/dist/utils/Container/setupNesting.js +16 -20
  237. package/dist/utils/Container/setupNesting.test.js +27 -30
  238. package/dist/utils/Container/showContainer.js +3 -7
  239. package/dist/utils/Container/showContainer.test.js +30 -30
  240. package/dist/utils/Data/applyFormula.js +38 -48
  241. package/dist/utils/Data/applyFormula.test.js +20 -20
  242. package/dist/utils/Data/getAutocompleteSource.js +18 -26
  243. package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
  244. package/dist/utils/Data/getDataPath.js +18 -28
  245. package/dist/utils/Data/getDataPath.test.js +12 -12
  246. package/dist/utils/Data/getOptions.js +29 -25
  247. package/dist/utils/Data/getOptions.test.js +93 -20
  248. package/dist/utils/Data/getSourceData.js +6 -19
  249. package/dist/utils/Data/getSourceData.test.js +84 -80
  250. package/dist/utils/Data/index.js +1 -1
  251. package/dist/utils/Data/nestInRefdataOptions.js +42 -0
  252. package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
  253. package/dist/utils/Data/refDataToOptions.js +10 -13
  254. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  255. package/dist/utils/Data/setDataItem.js +7 -8
  256. package/dist/utils/Data/setDataItem.test.js +37 -37
  257. package/dist/utils/Data/setupFormData.js +13 -21
  258. package/dist/utils/Data/setupFormData.test.js +51 -50
  259. package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
  260. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  261. package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
  262. package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
  263. package/dist/utils/FormPage/getConditionalText.js +3 -3
  264. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  265. package/dist/utils/FormPage/getFormPage.js +15 -16
  266. package/dist/utils/FormPage/getFormPage.test.js +47 -46
  267. package/dist/utils/FormPage/getFormPages.js +7 -12
  268. package/dist/utils/FormPage/getFormPages.test.js +20 -23
  269. package/dist/utils/FormPage/getPageActions.js +9 -15
  270. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  271. package/dist/utils/FormPage/getParagraphFromText.js +5 -7
  272. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  273. package/dist/utils/FormPage/index.js +2 -4
  274. package/dist/utils/FormPage/showFormPage.js +3 -7
  275. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  276. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  277. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  278. package/dist/utils/FormPage/useComponent.js +21 -28
  279. package/dist/utils/FormPage/useComponent.test.js +77 -79
  280. package/dist/utils/Format/formatData.js +1 -1
  281. package/dist/utils/Format/formatData.test.js +18 -18
  282. package/dist/utils/Format/formatDataForComponent.js +5 -6
  283. package/dist/utils/Format/formatDataForComponent.test.js +50 -78
  284. package/dist/utils/Format/formatDataForForm.js +6 -8
  285. package/dist/utils/Format/formatDataForForm.test.js +13 -16
  286. package/dist/utils/Format/formatDataForPage.js +4 -5
  287. package/dist/utils/Format/formatDataForPage.test.js +20 -25
  288. package/dist/utils/Format/index.js +1 -1
  289. package/dist/utils/Hub/getFormHub.js +1 -1
  290. package/dist/utils/Hub/getFormHub.test.js +28 -31
  291. package/dist/utils/Hub/index.js +1 -1
  292. package/dist/utils/Meta/constants.js +2 -2
  293. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  294. package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
  295. package/dist/utils/Meta/documents/index.js +1 -1
  296. package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
  297. package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
  298. package/dist/utils/Meta/index.js +1 -1
  299. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  300. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  301. package/dist/utils/Operate/getFirstOf.js +5 -5
  302. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  303. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  304. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
  305. package/dist/utils/Operate/index.js +1 -1
  306. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  307. package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
  308. package/dist/utils/Operate/runPageOperations.js +7 -7
  309. package/dist/utils/Operate/runPageOperations.test.js +35 -36
  310. package/dist/utils/Operate/setValueInFormData.js +2 -2
  311. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  312. package/dist/utils/Operate/shouldRun.js +6 -6
  313. package/dist/utils/Operate/shouldRun.test.js +21 -27
  314. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  315. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  316. package/dist/utils/Validate/additional/index.js +6 -6
  317. package/dist/utils/Validate/additional/index.test.js +12 -12
  318. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  319. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  320. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  321. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  322. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
  323. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
  324. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  325. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  326. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  327. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  328. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  329. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  330. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  331. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  332. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  333. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  334. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  335. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  336. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  337. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  338. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
  339. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
  340. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  341. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
  342. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  343. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  344. package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
  345. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  346. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  347. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
  348. package/dist/utils/Validate/additional/utils.js +9 -22
  349. package/dist/utils/Validate/index.js +1 -1
  350. package/dist/utils/Validate/validateCollection.js +19 -25
  351. package/dist/utils/Validate/validateCollection.test.js +74 -66
  352. package/dist/utils/Validate/validateComponent.js +17 -15
  353. package/dist/utils/Validate/validateComponent.test.js +167 -146
  354. package/dist/utils/Validate/validateContainer.js +16 -19
  355. package/dist/utils/Validate/validateContainer.test.js +84 -45
  356. package/dist/utils/Validate/validateDate.js +15 -21
  357. package/dist/utils/Validate/validateDate.test.js +31 -32
  358. package/dist/utils/Validate/validateEmail.js +6 -8
  359. package/dist/utils/Validate/validateEmail.test.js +25 -25
  360. package/dist/utils/Validate/validateMultifile.js +5 -7
  361. package/dist/utils/Validate/validateMultifile.test.js +17 -18
  362. package/dist/utils/Validate/validatePage.js +24 -18
  363. package/dist/utils/Validate/validatePage.test.js +263 -182
  364. package/dist/utils/Validate/validateRegex.js +3 -5
  365. package/dist/utils/Validate/validateRegex.test.js +14 -14
  366. package/dist/utils/Validate/validateRequired.js +4 -6
  367. package/dist/utils/Validate/validateRequired.test.js +18 -18
  368. package/dist/utils/Validate/validateTextArea.js +4 -6
  369. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  370. package/dist/utils/Validate/validateTime.js +11 -18
  371. package/dist/utils/Validate/validateTime.test.js +16 -16
  372. package/dist/utils/index.js +7 -9
  373. package/package.json +5 -5
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
  387. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
  388. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
  389. package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
  390. package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
@@ -3,24 +3,24 @@
3
3
  var _dayjs = _interopRequireDefault(require("dayjs"));
4
4
  var _mustBeInThePast = _interopRequireDefault(require("./mustBeInThePast"));
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
- describe('utils', function () {
7
- describe('Validate', function () {
8
- describe('additional', function () {
9
- describe('mustBeInThePast', function () {
10
- test('should return true given a date in the past', function () {
11
- var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().subtract(1, 'day').format('DD-MM-YYYY'));
6
+ describe('utils', () => {
7
+ describe('Validate', () => {
8
+ describe('additional', () => {
9
+ describe('mustBeInThePast', () => {
10
+ test('should return true given a date in the past', () => {
11
+ const result = (0, _mustBeInThePast.default)((0, _dayjs.default)().subtract(1, 'day').format('DD-MM-YYYY'));
12
12
  expect(result).toEqual(true);
13
13
  });
14
- test('should return false given a date in the future', function () {
15
- var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().add(1, 'day').format('DD-MM-YYYY'));
14
+ test('should return false given a date in the future', () => {
15
+ const result = (0, _mustBeInThePast.default)((0, _dayjs.default)().add(1, 'day').format('DD-MM-YYYY'));
16
16
  expect(result).toEqual(false);
17
17
  });
18
- test('should return false given todays date', function () {
19
- var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'));
18
+ test('should return false given todays date', () => {
19
+ const result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'));
20
20
  expect(result).toEqual(false);
21
21
  });
22
- test('should return true given todays date if todayAllowed is true', function () {
23
- var result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'), {
22
+ test('should return true given todays date if todayAllowed is true', () => {
23
+ const result = (0, _mustBeInThePast.default)((0, _dayjs.default)().format('DD-MM-YYYY'), {
24
24
  todayAllowed: true
25
25
  });
26
26
  expect(result).toEqual(true);
@@ -9,13 +9,13 @@ exports.default = void 0;
9
9
  * @param {number} config.value - the value must be equal or less than config.value.
10
10
  * @returns true if value is equal to or less then config.value, false if not.
11
11
  */
12
- var mustBeLessThan = function mustBeLessThan(value, config) {
12
+ const mustBeLessThan = (value, config) => {
13
13
  if (!value) {
14
14
  // null, undefined and empty strings should be picked up by the required flag
15
15
  // and not considered here as they would be valid for optional fields.
16
16
  return true;
17
17
  }
18
- var finalValue = typeof value === 'string' ? value.replace(/,/g, '') : value;
18
+ const finalValue = typeof value === 'string' ? value.replace(/,/g, '') : value;
19
19
  return parseFloat(finalValue) < config.value;
20
20
  };
21
21
  var _default = exports.default = mustBeLessThan;
@@ -2,46 +2,46 @@
2
2
 
3
3
  var _mustBeLessThan = _interopRequireDefault(require("./mustBeLessThan"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils', function () {
6
- describe('Validate', function () {
7
- describe('additional', function () {
8
- describe('mustBeLessThan', function () {
9
- test('should return true given a number equal to or less than 1000000000', function () {
10
- var result = (0, _mustBeLessThan.default)(999999999.999, {
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustBeLessThan', () => {
9
+ test('should return true given a number equal to or less than 1000000000', () => {
10
+ const result = (0, _mustBeLessThan.default)(999999999.999, {
11
11
  value: 1000000000
12
12
  });
13
13
  expect(result).toEqual(true);
14
14
  });
15
- test('should return false if provided value greater than 1000000000', function () {
16
- var result = (0, _mustBeLessThan.default)('1000000000.9', {
15
+ test('should return false if provided value greater than 1000000000', () => {
16
+ const result = (0, _mustBeLessThan.default)('1000000000.9', {
17
17
  value: 1000000000
18
18
  });
19
19
  expect(result).toBeFalsy();
20
20
  });
21
- test('should correctly handle numbers with commas in', function () {
22
- var result1 = (0, _mustBeLessThan.default)('999,999,999.99', {
21
+ test('should correctly handle numbers with commas in', () => {
22
+ const result1 = (0, _mustBeLessThan.default)('999,999,999.99', {
23
23
  value: 1000000000
24
24
  });
25
25
  expect(result1).toEqual(true);
26
- var result2 = (0, _mustBeLessThan.default)('1,000,000,123', {
26
+ const result2 = (0, _mustBeLessThan.default)('1,000,000,123', {
27
27
  value: 1000000000
28
28
  });
29
29
  expect(result2).toEqual(false);
30
30
  });
31
- test('should return true when string is undefined', function () {
32
- var result = (0, _mustBeLessThan.default)(undefined, {
31
+ test('should return true when string is undefined', () => {
32
+ const result = (0, _mustBeLessThan.default)(undefined, {
33
33
  value: 3
34
34
  });
35
35
  expect(result).toEqual(true);
36
36
  });
37
- test('should return true when string is empty', function () {
38
- var result = (0, _mustBeLessThan.default)('', {
37
+ test('should return true when string is empty', () => {
38
+ const result = (0, _mustBeLessThan.default)('', {
39
39
  value: 3
40
40
  });
41
41
  expect(result).toEqual(true);
42
42
  });
43
- test('should return true when string is null', function () {
44
- var result = (0, _mustBeLessThan.default)(null, {
43
+ test('should return true when string is null', () => {
44
+ const result = (0, _mustBeLessThan.default)(null, {
45
45
  value: 3
46
46
  });
47
47
  expect(result).toEqual(true);
@@ -11,7 +11,7 @@ exports.default = void 0;
11
11
  * @param {number} config.value - the length that string.length must be greater than.
12
12
  * @returns true if string.length is greater than config.value, false if not.
13
13
  */
14
- var mustBeLongerThan = function mustBeLongerThan(string, config) {
14
+ const mustBeLongerThan = (string, config) => {
15
15
  if (!string) {
16
16
  // null, undefined and empty strings should be picked up by the required flag
17
17
  // and not considered here as they would be valid for optional fields.
@@ -2,42 +2,42 @@
2
2
 
3
3
  var _mustBeLongerThan = _interopRequireDefault(require("./mustBeLongerThan"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils', function () {
6
- describe('Validate', function () {
7
- describe('additional', function () {
8
- describe('mustBeLongerThan', function () {
9
- test('should return true given a string longer than the given length', function () {
10
- var result = (0, _mustBeLongerThan.default)('test', {
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustBeLongerThan', () => {
9
+ test('should return true given a string longer than the given length', () => {
10
+ const result = (0, _mustBeLongerThan.default)('test', {
11
11
  value: 3
12
12
  });
13
13
  expect(result).toEqual(true);
14
14
  });
15
- test('should return false given a string shorter than the given length', function () {
16
- var result = (0, _mustBeLongerThan.default)('to', {
15
+ test('should return false given a string shorter than the given length', () => {
16
+ const result = (0, _mustBeLongerThan.default)('to', {
17
17
  value: 3
18
18
  });
19
19
  expect(result).toEqual(false);
20
20
  });
21
- test('should return false given a string equal to the given length', function () {
22
- var result = (0, _mustBeLongerThan.default)('dog', {
21
+ test('should return false given a string equal to the given length', () => {
22
+ const result = (0, _mustBeLongerThan.default)('dog', {
23
23
  value: 3
24
24
  });
25
25
  expect(result).toEqual(false);
26
26
  });
27
- test('should return true when string is undefined', function () {
28
- var result = (0, _mustBeLongerThan.default)(undefined, {
27
+ test('should return true when string is undefined', () => {
28
+ const result = (0, _mustBeLongerThan.default)(undefined, {
29
29
  value: 3
30
30
  });
31
31
  expect(result).toEqual(true);
32
32
  });
33
- test('should return true when string is empty', function () {
34
- var result = (0, _mustBeLongerThan.default)('', {
33
+ test('should return true when string is empty', () => {
34
+ const result = (0, _mustBeLongerThan.default)('', {
35
35
  value: 3
36
36
  });
37
37
  expect(result).toEqual(true);
38
38
  });
39
- test('should return true when string is null', function () {
40
- var result = (0, _mustBeLongerThan.default)(null, {
39
+ test('should return true when string is null', () => {
40
+ const result = (0, _mustBeLongerThan.default)(null, {
41
41
  value: 3
42
42
  });
43
43
  expect(result).toEqual(true);
@@ -11,13 +11,13 @@ exports.default = void 0;
11
11
  * @param {object} config The config of the validation check.
12
12
  * @returns true if value passes the regex, false if not.
13
13
  */
14
- var mustBeNumbersOnly = function mustBeNumbersOnly(value, config) {
14
+ const mustBeNumbersOnly = (value, config) => {
15
15
  if (!value) {
16
16
  // null, undefined and empty numbers should be picked up by the required flag
17
17
  // and not considered here as they would be valid for optional fields.
18
18
  return true;
19
19
  }
20
- var regex = config !== null && config !== void 0 && config.allowCommas ? /^[0-9,]*\.?[0-9]*$/ : /^[0-9]*\.?[0-9]*$/;
20
+ const regex = config !== null && config !== void 0 && config.allowCommas ? /^[0-9,]*\.?[0-9]*$/ : /^[0-9]*\.?[0-9]*$/;
21
21
  return regex.test(value);
22
22
  };
23
23
  var _default = exports.default = mustBeNumbersOnly;
@@ -2,40 +2,40 @@
2
2
 
3
3
  var _mustBeNumbersOnly = _interopRequireDefault(require("./mustBeNumbersOnly"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils', function () {
6
- describe('Validate', function () {
7
- describe('additional', function () {
8
- describe('mustBeNumbersOnly', function () {
9
- test('should return true given a string is number', function () {
10
- var result = (0, _mustBeNumbersOnly.default)('349732');
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustBeNumbersOnly', () => {
9
+ test('should return true given a string is number', () => {
10
+ const result = (0, _mustBeNumbersOnly.default)('349732');
11
11
  expect(result).toEqual(true);
12
12
  });
13
- test('should return true given a string is numbers contains desimile', function () {
14
- var result = (0, _mustBeNumbersOnly.default)('123456.123');
13
+ test('should return true given a string is numbers contains desimile', () => {
14
+ const result = (0, _mustBeNumbersOnly.default)('123456.123');
15
15
  expect(result).toEqual(true);
16
16
  });
17
- test('should return false if given number contains commas and config does not allow them', function () {
18
- var CONFIG = {};
19
- var result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
17
+ test('should return false if given number contains commas and config does not allow them', () => {
18
+ const CONFIG = {};
19
+ const result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
20
20
  expect(result).toEqual(false);
21
21
  });
22
- test('should return true if given number contains commas and config allows them', function () {
23
- var CONFIG = {
22
+ test('should return true if given number contains commas and config allows them', () => {
23
+ const CONFIG = {
24
24
  allowCommas: true
25
25
  };
26
- var result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
26
+ const result = (0, _mustBeNumbersOnly.default)('1,234', CONFIG);
27
27
  expect(result).toEqual(true);
28
28
  });
29
- test('should return true when string is undefined', function () {
30
- var result = (0, _mustBeNumbersOnly.default)(undefined);
29
+ test('should return true when string is undefined', () => {
30
+ const result = (0, _mustBeNumbersOnly.default)(undefined);
31
31
  expect(result).toEqual(true);
32
32
  });
33
- test('should return true when string is empty', function () {
34
- var result = (0, _mustBeNumbersOnly.default)('');
33
+ test('should return true when string is empty', () => {
34
+ const result = (0, _mustBeNumbersOnly.default)('');
35
35
  expect(result).toEqual(true);
36
36
  });
37
- test('should return true when string is null', function () {
38
- var result = (0, _mustBeNumbersOnly.default)(null);
37
+ test('should return true when string is null', () => {
38
+ const result = (0, _mustBeNumbersOnly.default)(null);
39
39
  expect(result).toEqual(true);
40
40
  });
41
41
  });
@@ -11,7 +11,7 @@ exports.default = void 0;
11
11
  * @param {number} config.value - the length that string.length must be less than.
12
12
  * @returns true if string.length is greater than config.value, false if not.
13
13
  */
14
- var mustBeShorterThan = function mustBeShorterThan(string, config) {
14
+ const mustBeShorterThan = (string, config) => {
15
15
  if (!string) {
16
16
  // null, undefined and empty strings should be picked up by the required flag
17
17
  // and not considered here as they would be valid for optional fields.
@@ -2,42 +2,42 @@
2
2
 
3
3
  var _mustBeShorterThan = _interopRequireDefault(require("./mustBeShorterThan"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('utils', function () {
6
- describe('Validate', function () {
7
- describe('additional', function () {
8
- describe('mustBeShorterThan', function () {
9
- test('should return true given a string shorter than the given length', function () {
10
- var result = (0, _mustBeShorterThan.default)('to', {
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustBeShorterThan', () => {
9
+ test('should return true given a string shorter than the given length', () => {
10
+ const result = (0, _mustBeShorterThan.default)('to', {
11
11
  value: 3
12
12
  });
13
13
  expect(result).toEqual(true);
14
14
  });
15
- test('should return false given a string longer than the given length', function () {
16
- var result = (0, _mustBeShorterThan.default)('test', {
15
+ test('should return false given a string longer than the given length', () => {
16
+ const result = (0, _mustBeShorterThan.default)('test', {
17
17
  value: 3
18
18
  });
19
19
  expect(result).toEqual(false);
20
20
  });
21
- test('should return false given a string equal to the given length', function () {
22
- var result = (0, _mustBeShorterThan.default)('dog', {
21
+ test('should return false given a string equal to the given length', () => {
22
+ const result = (0, _mustBeShorterThan.default)('dog', {
23
23
  value: 3
24
24
  });
25
25
  expect(result).toEqual(false);
26
26
  });
27
- test('should return true when string is undefined', function () {
28
- var result = (0, _mustBeShorterThan.default)(undefined, {
27
+ test('should return true when string is undefined', () => {
28
+ const result = (0, _mustBeShorterThan.default)(undefined, {
29
29
  value: 3
30
30
  });
31
31
  expect(result).toEqual(true);
32
32
  });
33
- test('should return true when string is empty', function () {
34
- var result = (0, _mustBeShorterThan.default)('', {
33
+ test('should return true when string is empty', () => {
34
+ const result = (0, _mustBeShorterThan.default)('', {
35
35
  value: 3
36
36
  });
37
37
  expect(result).toEqual(true);
38
38
  });
39
- test('should return true when string is null', function () {
40
- var result = (0, _mustBeShorterThan.default)(null, {
39
+ test('should return true when string is null', () => {
40
+ const result = (0, _mustBeShorterThan.default)(null, {
41
41
  value: 3
42
42
  });
43
43
  expect(result).toEqual(true);
@@ -10,24 +10,28 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
10
10
  /**
11
11
  * @param {*} value - the value to check.
12
12
  * @param {string} config.collectionPath - the path to the collection within formData
13
+ * @param {string} config.caseInsensitive - true to ignore case, assumes string values
13
14
  * @param {object} component - the component definition
14
15
  * @param {object} formData - the current form data
15
16
  * @returns true if components value is not the same in any other entry in the collection
16
17
  */
17
- var mustBeUniqueInCollection = function mustBeUniqueInCollection(value, config, component, formData) {
18
+ const mustBeUniqueInCollection = (value, config, component, formData) => {
18
19
  if (!value || !formData) {
19
20
  // null, undefined and empty strings should be picked up by the required flag
20
21
  // and not considered here as they would be valid for optional fields.
21
22
  return true;
22
23
  }
23
- var activeId = (0, _getCollectionPageActiveId.default)(config.collectionPath, formData);
24
- var collectionData = (0, _getCollectionPageData.default)(config.collectionPath, formData);
25
- var result = collectionData === null || collectionData === void 0 ? void 0 : collectionData.some(function (entry) {
24
+ const activeId = (0, _getCollectionPageActiveId.default)(config.collectionPath, formData);
25
+ const collectionData = (0, _getCollectionPageData.default)(config.collectionPath, formData);
26
+ const result = collectionData === null || collectionData === void 0 ? void 0 : collectionData.some(entry => {
26
27
  // Don't compare it to itself
27
28
  if (entry.id === activeId) {
28
29
  return false;
29
30
  }
30
31
  ;
32
+ if (config.caseInsensitive && typeof value === 'string' && typeof entry[component.id] === 'string') {
33
+ return entry[component.id].toUpperCase() === value.toUpperCase();
34
+ }
31
35
  return entry[component.id] === value;
32
36
  });
33
37
  return !result;
@@ -2,17 +2,11 @@
2
2
 
3
3
  var _mustBeUniqueInCollection = _interopRequireDefault(require("./mustBeUniqueInCollection"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- 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); }
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; }
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; }
8
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
- describe('utils', function () {
12
- describe('Validate', function () {
13
- describe('additional', function () {
14
- describe('mustBeUniqueInCollection', function () {
15
- var COMPONENT = {
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustBeUniqueInCollection', () => {
9
+ const COMPONENT = {
16
10
  id: 'firstName',
17
11
  type: 'text',
18
12
  label: 'First name',
@@ -23,33 +17,33 @@ describe('utils', function () {
23
17
  message: 'Should be unique'
24
18
  }]
25
19
  };
26
- var CONFIG = {
20
+ const CONFIG = {
27
21
  function: 'mustBeUniqueInCollection',
28
22
  collectionPath: 'names',
29
23
  message: 'Should be unique'
30
24
  };
31
- var VALUE = 'NAME';
32
- test('should return true given no value', function () {
33
- var result = (0, _mustBeUniqueInCollection.default)(undefined, CONFIG, COMPONENT, {});
25
+ const VALUE = 'NAME';
26
+ test('should return true given no value', () => {
27
+ const result = (0, _mustBeUniqueInCollection.default)(undefined, CONFIG, COMPONENT, {});
34
28
  expect(result).toBeTruthy();
35
29
  });
36
- test('should return true given no formData', function () {
37
- var result = (0, _mustBeUniqueInCollection.default)(1, CONFIG, COMPONENT, undefined);
30
+ test('should return true given no formData', () => {
31
+ const result = (0, _mustBeUniqueInCollection.default)(1, CONFIG, COMPONENT, undefined);
38
32
  expect(result).toBeTruthy();
39
33
  });
40
- test('should return true for first entry in a collection', function () {
41
- var FORM_DATA = {
34
+ test('should return true for first entry in a collection', () => {
35
+ const FORM_DATA = {
42
36
  namesActiveId: 1,
43
37
  names: [{
44
38
  id: 1,
45
39
  firstName: VALUE
46
40
  }]
47
41
  };
48
- var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
42
+ const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
49
43
  expect(result).toBeTruthy();
50
44
  });
51
- test('should return true if other entries do not have the same value for this field', function () {
52
- var FORM_DATA = {
45
+ test('should return true if other entries do not have the same value for this field', () => {
46
+ const FORM_DATA = {
53
47
  namesActiveId: 3,
54
48
  names: [{
55
49
  id: 1,
@@ -62,11 +56,11 @@ describe('utils', function () {
62
56
  firstName: VALUE
63
57
  }]
64
58
  };
65
- var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
59
+ const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
66
60
  expect(result).toBeTruthy();
67
61
  });
68
- test('should return false if other entries do have the same value for this field', function () {
69
- var FORM_DATA = {
62
+ test('should return false if other entries do have the same value for this field', () => {
63
+ const FORM_DATA = {
70
64
  namesActiveId: 3,
71
65
  names: [{
72
66
  id: 1,
@@ -79,12 +73,12 @@ describe('utils', function () {
79
73
  firstName: VALUE
80
74
  }]
81
75
  };
82
- var result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
76
+ const result = (0, _mustBeUniqueInCollection.default)(VALUE, CONFIG, COMPONENT, FORM_DATA);
83
77
  expect(result).toBeFalsy();
84
78
  });
85
- test('should return false if other entries do have the same value for this field within a nested collection', function () {
86
- var NESTED_VALUE = 'delta';
87
- var FORM_DATA = {
79
+ test('should return false if other entries do have the same value for this field within a nested collection', () => {
80
+ const NESTED_VALUE = 'delta';
81
+ const FORM_DATA = {
88
82
  namesActiveId: 3,
89
83
  names: [{
90
84
  id: 1,
@@ -105,7 +99,7 @@ describe('utils', function () {
105
99
  }]
106
100
  }]
107
101
  };
108
- var COMPONENT_NESTED = {
102
+ const COMPONENT_NESTED = {
109
103
  id: 'surname',
110
104
  type: 'text',
111
105
  label: 'Surname',
@@ -116,9 +110,47 @@ describe('utils', function () {
116
110
  message: 'Should be unique'
117
111
  }]
118
112
  };
119
- var result = (0, _mustBeUniqueInCollection.default)(NESTED_VALUE, _objectSpread(_objectSpread({}, CONFIG), {}, {
113
+ const result = (0, _mustBeUniqueInCollection.default)(NESTED_VALUE, {
114
+ ...CONFIG,
120
115
  collectionPath: 'names.surnames'
121
- }), COMPONENT_NESTED, FORM_DATA);
116
+ }, COMPONENT_NESTED, FORM_DATA);
117
+ expect(result).toBeFalsy();
118
+ });
119
+ test('should return true if other entries have the same value for this field in a different case', () => {
120
+ const FORM_DATA = {
121
+ namesActiveId: 2,
122
+ names: [{
123
+ id: 1,
124
+ firstName: 'ALPHA'
125
+ }, {
126
+ id: 2,
127
+ firstName: 'alpha'
128
+ }, {
129
+ id: 3,
130
+ firstName: 'bravo'
131
+ }]
132
+ };
133
+ const result = (0, _mustBeUniqueInCollection.default)('alpha', CONFIG, COMPONENT, FORM_DATA);
134
+ expect(result).toBeTruthy();
135
+ });
136
+ test('should return false if other entries have the same value for this field in a different case and caseInsensitive is true', () => {
137
+ const FORM_DATA = {
138
+ namesActiveId: 2,
139
+ names: [{
140
+ id: 1,
141
+ firstName: 'ALPHA'
142
+ }, {
143
+ id: 2,
144
+ firstName: 'alpha'
145
+ }, {
146
+ id: 3,
147
+ firstName: 'bravo'
148
+ }]
149
+ };
150
+ const result = (0, _mustBeUniqueInCollection.default)('alpha', {
151
+ ...CONFIG,
152
+ caseInsensitive: true
153
+ }, COMPONENT, FORM_DATA);
122
154
  expect(result).toBeFalsy();
123
155
  });
124
156
  });
@@ -12,9 +12,9 @@ exports.default = void 0;
12
12
  * otherwise returns false
13
13
  */
14
14
  // eslint-disable-next-line arrow-body-style
15
- var mustEnterAtLeastOne = function mustEnterAtLeastOne(data, _, component) {
15
+ const mustEnterAtLeastOne = (data, _, component) => {
16
16
  var _component$components;
17
- return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(function (inner) {
17
+ return (_component$components = component.components) === null || _component$components === void 0 ? void 0 : _component$components.some(inner => {
18
18
  var _data$component$id;
19
19
  if ((_data$component$id = data[component.id]) !== null && _data$component$id !== void 0 && _data$component$id[inner.id]) {
20
20
  return true;
@@ -2,16 +2,12 @@
2
2
 
3
3
  var _mustEnterAtLeastOne = _interopRequireDefault(require("./mustEnterAtLeastOne"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- 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); }
6
- 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; }
7
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
8
- 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); }
9
- describe('utils', function () {
10
- describe('Validate', function () {
11
- describe('additional', function () {
12
- describe('mustEnterAtLeastOne', function () {
13
- var CONTAINER_ID = 'containerId';
14
- var COMPONENT = {
5
+ describe('utils', () => {
6
+ describe('Validate', () => {
7
+ describe('additional', () => {
8
+ describe('mustEnterAtLeastOne', () => {
9
+ const CONTAINER_ID = 'containerId';
10
+ const COMPONENT = {
15
11
  id: CONTAINER_ID,
16
12
  type: 'container',
17
13
  components: [{
@@ -22,14 +18,16 @@ describe('utils', function () {
22
18
  id: 'charlie'
23
19
  }]
24
20
  };
25
- test('should return false if all components are empty', function () {
26
- var DATA = {};
21
+ test('should return false if all components are empty', () => {
22
+ const DATA = {};
27
23
  expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(false);
28
24
  });
29
- test('should return true if one component has data', function () {
30
- var DATA = _defineProperty({}, CONTAINER_ID, {
31
- alpha: 'text'
32
- });
25
+ test('should return true if one component has data', () => {
26
+ const DATA = {
27
+ [CONTAINER_ID]: {
28
+ alpha: 'text'
29
+ }
30
+ };
33
31
  expect((0, _mustEnterAtLeastOne.default)(DATA, {}, COMPONENT)).toEqual(true);
34
32
  });
35
33
  });
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  * @param {number} config.maxDecimals - the maximum amount of decimal places to allow
10
10
  * @returns true if string has less than maxDecimals decimal places else returns false
11
11
  */
12
- var mustHaveLessThanDecimalPlaces = function mustHaveLessThanDecimalPlaces(string, config) {
12
+ const mustHaveLessThanDecimalPlaces = (string, config) => {
13
13
  if (!string || !string.includes('.')) {
14
14
  return true;
15
15
  }