@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
@@ -1,96 +0,0 @@
1
- {
2
- "id": "example-form",
3
- "version": "0.0.1",
4
- "name": "example-form",
5
- "title": "Example form",
6
- "type": "form",
7
- "components": [
8
- {
9
- "id": "alpha",
10
- "fieldId": "alpha",
11
- "label": "Alpha",
12
- "type": "text"
13
- },
14
- {
15
- "id": "bravo",
16
- "fieldId": "bravo",
17
- "label": "Bravo",
18
- "type": "text"
19
- },
20
- {
21
- "id": "person",
22
- "fieldId": "person",
23
- "type": "container",
24
- "components": [
25
- {
26
- "id": "charlie",
27
- "fieldId": "charlie",
28
- "label": "Charlie",
29
- "type": "text",
30
- "show_when": {
31
- "op": "=",
32
- "field": "bravo",
33
- "value": "bravo"
34
- }
35
- },
36
- {
37
- "id": "delta",
38
- "fieldId": "delta",
39
- "label": "Delta",
40
- "type": "text",
41
- "show_when": {
42
- "op": "=",
43
- "field": "bravo",
44
- "value": "another"
45
- }
46
- }
47
- ]
48
- },
49
- {
50
- "id": "gamma",
51
- "fieldId": "gamma",
52
- "label": "Gamma",
53
- "type": "text"
54
- },
55
- {
56
- "id": "epsilon",
57
- "fieldId": "epsilon",
58
- "label": "Epsilon",
59
- "type": "text"
60
- }
61
- ],
62
- "pages": [
63
- {
64
- "id": "general",
65
- "name": "general",
66
- "title": "General information",
67
- "components": [
68
- {
69
- "use": "alpha"
70
- },
71
- {
72
- "use": "bravo"
73
- },
74
- {
75
- "use": "person"
76
- },
77
- {
78
- "use": "gamma"
79
- },
80
- {
81
- "use": "epsilon"
82
- }
83
- ],
84
- "actions": [
85
- "submit",
86
- {
87
- "type": "cancel",
88
- "page": "",
89
- "validate": false,
90
- "classModifiers": "secondary",
91
- "label": "Cancel"
92
- }
93
- ]
94
- }
95
- ]
96
- }
@@ -1,47 +0,0 @@
1
- {
2
- "name": "form-with-collection",
3
- "components": [
4
- {
5
- "id": "componentA",
6
- "fieldId": "componentA"
7
- },
8
- {
9
- "id": "itemCategory",
10
- "fieldId": "itemCategory"
11
- }
12
- ],
13
- "pages": [
14
- {
15
- "id": "pageA",
16
- "name": "Page A",
17
- "components": [
18
- {
19
- "use": "componentA"
20
- }
21
- ]
22
- },
23
- {
24
- "id": "pageB",
25
- "deleteCollectionWhenHidden": true,
26
- "collection": {
27
- "name": "componentAs",
28
- "labels": {
29
- "item": "Component A ${index}"
30
- }
31
- },
32
- "name": "pageB",
33
- "show_when": [
34
- {
35
- "op": "=",
36
- "field": "componentA",
37
- "value": true
38
- }
39
- ],
40
- "components": [
41
- {
42
- "use": "itemCategory"
43
- }
44
- ]
45
- }
46
- ]
47
- }
@@ -1,46 +0,0 @@
1
- {
2
- "name": "form-with-collection",
3
- "components": [
4
- {
5
- "id": "componentA",
6
- "fieldId": "componentA"
7
- },
8
- {
9
- "id": "itemCategory",
10
- "fieldId": "itemCategory"
11
- }
12
- ],
13
- "pages": [
14
- {
15
- "id": "pageA",
16
- "name": "Page A",
17
- "components": [
18
- {
19
- "use": "componentA"
20
- }
21
- ]
22
- },
23
- {
24
- "id": "pageB",
25
- "collection": {
26
- "name": "componentAs",
27
- "labels": {
28
- "item": "Component A ${index}"
29
- }
30
- },
31
- "name": "pageB",
32
- "show_when": [
33
- {
34
- "op": "=",
35
- "field": "componentA",
36
- "value": true
37
- }
38
- ],
39
- "components": [
40
- {
41
- "use": "itemCategory"
42
- }
43
- ]
44
- }
45
- ]
46
- }
@@ -1,48 +0,0 @@
1
- {
2
- "name": "form-with-components",
3
- "components": [
4
- {
5
- "id": "componentA",
6
- "fieldId": "componentA"
7
- },
8
- {
9
- "id": "componentB",
10
- "fieldId": "componentB",
11
- "show_when": [
12
- {
13
- "op": "=",
14
- "field": "componentA",
15
- "value": "show"
16
- }
17
- ]
18
- },
19
- {
20
- "id": "componentC",
21
- "fieldId": "componentC",
22
- "show_when": [
23
- {
24
- "op": "=",
25
- "field": "componentA",
26
- "value": "show"
27
- }
28
- ]
29
- }
30
- ],
31
- "pages": [
32
- {
33
- "id": "pageA",
34
- "name": "Page A",
35
- "components": [
36
- {
37
- "use": "componentA"
38
- },
39
- {
40
- "use": "componentB"
41
- },
42
- {
43
- "use": "componentC"
44
- }
45
- ]
46
- }
47
- ]
48
- }
@@ -1,175 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _showComponent = _interopRequireDefault(require("../../../utils/Component/showComponent"));
8
- var _mergeCollectionPages = _interopRequireDefault(require("../../../utils/CollectionPage/mergeCollectionPages"));
9
- var _deleteNodeByPath = _interopRequireDefault(require("./deleteNodeByPath"));
10
- var _optionIsSelected = _interopRequireDefault(require("../../../utils/Component/optionIsSelected"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- /* eslint-disable no-param-reassign */
13
-
14
- var recurseCheckForHiddenComponents = function recurseCheckForHiddenComponents(component, formData, path, candidateComponentForDeletion) {
15
- path = path ? "".concat(path, ".").concat(component.fieldId) : component.fieldId;
16
- if (component) {
17
- if (component.components) {
18
- var _component$components;
19
- (_component$components = component.components) === null || _component$components === void 0 || _component$components.forEach(function (c) {
20
- recurseCheckForHiddenComponents(c, formData, path, candidateComponentForDeletion);
21
- });
22
- } else if ((0, _showComponent.default)(component, formData)) {
23
- var _component$data;
24
- if (component !== null && component !== void 0 && (_component$data = component.data) !== null && _component$data !== void 0 && _component$data.options) {
25
- var _component$data2;
26
- component === null || component === void 0 || (_component$data2 = component.data) === null || _component$data2 === void 0 || (_component$data2 = _component$data2.options) === null || _component$data2 === void 0 || _component$data2.forEach(function (option) {
27
- if (!(0, _optionIsSelected.default)(formData[component.id], option) && option.nested) {
28
- option.nested.forEach(function (nested) {
29
- path = nested.fieldId;
30
- if (path) {
31
- candidateComponentForDeletion.set(path, component);
32
- }
33
- });
34
- }
35
- });
36
- }
37
- } else if (!(0, _showComponent.default)(component, formData)) {
38
- if (path) {
39
- candidateComponentForDeletion.set(path, component);
40
- }
41
- }
42
- }
43
- };
44
- var buildListOfComponentsUsedInVisiblePages = function buildListOfComponentsUsedInVisiblePages(page, form, formData, componentsUsedInVisiblePagesIds) {
45
- var _page$components;
46
- (_page$components = page.components) === null || _page$components === void 0 || _page$components.forEach(function (component) {
47
- var _ref, _form$components$find;
48
- var componentObj = (_ref = (_form$components$find = form.components.find(function (c) {
49
- return c.fieldId === component.use;
50
- })) !== null && _form$components$find !== void 0 ? _form$components$find : form.components.find(function (c) {
51
- return c.id === component.use;
52
- })) !== null && _ref !== void 0 ? _ref : component;
53
- if (page && (0, _showComponent.default)(page, formData)) {
54
- if (componentObj && (0, _showComponent.default)(componentObj, formData)) {
55
- if (componentObj.fieldId) {
56
- componentsUsedInVisiblePagesIds.push(componentObj.fieldId);
57
- } else if (componentObj.id) {
58
- componentsUsedInVisiblePagesIds.push(componentObj.id);
59
- }
60
- }
61
- }
62
- });
63
- };
64
- var recurseDeleteComponents = function recurseDeleteComponents(component, formData, path, checkIfComponentHidden) {
65
- path = path ? "".concat(path, ".").concat(component.fieldId) : component.fieldId;
66
- if (component) {
67
- if (component.components) {
68
- var _component$components2;
69
- (_component$components2 = component.components) === null || _component$components2 === void 0 || _component$components2.forEach(function (c) {
70
- recurseDeleteComponents(c, formData, path, checkIfComponentHidden);
71
- });
72
- } else if (checkIfComponentHidden) {
73
- if (!(0, _showComponent.default)(component, formData)) {
74
- delete formData[path];
75
- }
76
- } else {
77
- delete formData[path];
78
- }
79
- }
80
- };
81
- var markComponentsForDeletion = function markComponentsForDeletion(page, form, formData, candidateComponentForDeletion, componentsUsedInVisiblePages) {
82
- var _page$components2;
83
- if (page.disableClearWhenHidden) {
84
- return;
85
- }
86
- (_page$components2 = page.components) === null || _page$components2 === void 0 || _page$components2.forEach(function (component) {
87
- var _ref2, _form$components$find2;
88
- var componentObj = (_ref2 = (_form$components$find2 = form.components.find(function (c) {
89
- return c.fieldId === component.use;
90
- })) !== null && _form$components$find2 !== void 0 ? _form$components$find2 : form.components.find(function (c) {
91
- return c.id === component.use;
92
- })) !== null && _ref2 !== void 0 ? _ref2 : component;
93
- if (page && (0, _showComponent.default)(page, formData)) {
94
- buildListOfComponentsUsedInVisiblePages(page, form, formData, componentsUsedInVisiblePages);
95
- recurseCheckForHiddenComponents(componentObj, formData, null, candidateComponentForDeletion);
96
- } else if (componentObj.fieldId) {
97
- candidateComponentForDeletion.set(componentObj.fieldId, componentObj);
98
- } else if (componentObj.id) {
99
- candidateComponentForDeletion.set(componentObj.id, componentObj);
100
- }
101
- });
102
- };
103
- var deleteHiddenComponent = function deleteHiddenComponent(page, form, collectionData, formData) {
104
- if (page.disableClearWhenHidden) {
105
- return;
106
- }
107
- if (page && (0, _showComponent.default)(page, formData)) {
108
- var _page$components3;
109
- (_page$components3 = page.components) === null || _page$components3 === void 0 || _page$components3.forEach(function (component) {
110
- var _ref3, _form$components$find3;
111
- var componentObj = (_ref3 = (_form$components$find3 = form.components.find(function (c) {
112
- return c.fieldId === component.use;
113
- })) !== null && _form$components$find3 !== void 0 ? _form$components$find3 : form.components.find(function (c) {
114
- return c.id === component.use;
115
- })) !== null && _ref3 !== void 0 ? _ref3 : component;
116
- recurseDeleteComponents(componentObj, collectionData, null, true);
117
- });
118
- } else {
119
- var _page$components4;
120
- // recursively delete all components on the page
121
- (_page$components4 = page.components) === null || _page$components4 === void 0 || _page$components4.forEach(function (component) {
122
- var _ref4, _form$components$find4;
123
- var componentObj = (_ref4 = (_form$components$find4 = form.components.find(function (c) {
124
- return c.fieldId === component.use;
125
- })) !== null && _form$components$find4 !== void 0 ? _form$components$find4 : form.components.find(function (c) {
126
- return c.id === component.use;
127
- })) !== null && _ref4 !== void 0 ? _ref4 : component;
128
- recurseDeleteComponents(componentObj, collectionData, null, false);
129
- });
130
- }
131
- };
132
- function clearUncompletedRoutesForCollections(formData, page, form) {
133
- var _page$collection;
134
- var collectionDatas = formData[page === null || page === void 0 || (_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name];
135
- if (collectionDatas) {
136
- collectionDatas.forEach(function (collectionData) {
137
- var _page$childPages;
138
- /* eslint-disable consistent-return */
139
- (_page$childPages = page.childPages) === null || _page$childPages === void 0 || _page$childPages.forEach(function (childPage) {
140
- if (childPage.deleteCollectionWhenHidden) {
141
- if (childPage && !(0, _showComponent.default)(childPage, formData)) {
142
- delete formData[childPage.collection.name];
143
- return false;
144
- }
145
- }
146
- deleteHiddenComponent(childPage, form, collectionData, formData);
147
- });
148
- });
149
- }
150
- }
151
- var clearOutUncompletedRoutes = function clearOutUncompletedRoutes(form, formData) {
152
- if (form.disableClearWhenHidden) {
153
- return formData;
154
- }
155
- var condensedPages = (0, _mergeCollectionPages.default)(form.pages);
156
- var candidateComponentForDeletion = new Map();
157
- var componentsUsedInVisiblePagesIds = [];
158
- condensedPages === null || condensedPages === void 0 || condensedPages.forEach(function (page) {
159
- var _page$collection2;
160
- if (page !== null && page !== void 0 && (_page$collection2 = page.collection) !== null && _page$collection2 !== void 0 && _page$collection2.name) {
161
- clearUncompletedRoutesForCollections(formData, page, form);
162
- } else {
163
- markComponentsForDeletion(page, form, formData, candidateComponentForDeletion, componentsUsedInVisiblePagesIds);
164
- }
165
- });
166
- componentsUsedInVisiblePagesIds = [].concat(new Set(componentsUsedInVisiblePagesIds));
167
- componentsUsedInVisiblePagesIds.forEach(function (componentId) {
168
- return candidateComponentForDeletion.delete(componentId);
169
- });
170
- candidateComponentForDeletion.forEach(function (val, key) {
171
- (0, _deleteNodeByPath.default)(formData, key);
172
- });
173
- return formData;
174
- };
175
- var _default = exports.default = clearOutUncompletedRoutes;
@@ -1,113 +0,0 @@
1
- "use strict";
2
-
3
- var _index = _interopRequireDefault(require("./index"));
4
- var _componentUsedInMultiplePagesForm = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json"));
5
- var _componentUsedInMultiplePagesData = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json"));
6
- var _formWithCollections = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-collections.json"));
7
- var _formWithCollectionsDeleteEntire = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json"));
8
- var _dataWithCollections = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-collections.json"));
9
- var _dataWithEntireCollectionRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json"));
10
- var _dataWithCollectionDataRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-collection-data-removed.json"));
11
- var _formWithComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-with-components.json"));
12
- var _dataWithComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-components.json"));
13
- var _dataWithComponentsRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-components-removed.json"));
14
- var _formForNestedComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/form-for-nested-components.json"));
15
- var _dataWithNestedComponents = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-nested-components.json"));
16
- var _dataWithNestedComponentRemoved = _interopRequireDefault(require("../clear-uncompleted-routes/test-data/data-with-nested-component-removed.json"));
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
- describe('FormRenderer', function () {
19
- describe('helpers', function () {
20
- describe('clearOutUncompletedRoutes', function () {
21
- it('should not remove hidden component where it is visible in another page', function () {
22
- var form = JSON.parse(JSON.stringify(_componentUsedInMultiplePagesForm.default));
23
- var formData = JSON.parse(JSON.stringify(_componentUsedInMultiplePagesData.default));
24
- expect(_index.default.clearOutUncompletedRoutes(form, formData)).toEqual(_componentUsedInMultiplePagesData.default);
25
- });
26
- it('should remove collection data when page hidden', function () {
27
- var form = JSON.parse(JSON.stringify(_formWithCollections.default));
28
- var formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
29
- var result = _index.default.clearOutUncompletedRoutes(form, formData);
30
- expect(result).toEqual(_dataWithCollectionDataRemoved.default);
31
- formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
32
- formData.componentA = true;
33
- result = _index.default.clearOutUncompletedRoutes(form, formData);
34
- var expected = JSON.parse(JSON.stringify(_dataWithCollections.default));
35
- expected.componentA = true;
36
- expect(result).toEqual(expected);
37
- });
38
- it('should remove entire collection data when page hidden', function () {
39
- var form = JSON.parse(JSON.stringify(_formWithCollectionsDeleteEntire.default));
40
- var formData = JSON.parse(JSON.stringify(_dataWithCollections.default));
41
- var result = _index.default.clearOutUncompletedRoutes(form, formData);
42
- expect(result).toEqual(_dataWithEntireCollectionRemoved.default);
43
- });
44
- it('should remove hidden component', function () {
45
- var form = JSON.parse(JSON.stringify(_formWithComponents.default));
46
- var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
47
- var result = _index.default.clearOutUncompletedRoutes(form, formData);
48
- expect(result).toEqual(_dataWithComponents.default);
49
- formData.componentA = "hide";
50
- result = _index.default.clearOutUncompletedRoutes(form, formData);
51
- expect(result).toEqual(_dataWithComponentsRemoved.default);
52
- });
53
- it('should not remove hidden component when disableClearWhenHidden attribute is true on component', function () {
54
- var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
55
- formData.componentA = "hide";
56
- var form = JSON.parse(JSON.stringify(_formWithComponents.default));
57
- var result = _index.default.clearOutUncompletedRoutes(form, formData);
58
- expect(result).toEqual(_dataWithComponentsRemoved.default);
59
- form.components[1].disableClearWhenHidden = true;
60
- form.components[2].disableClearWhenHidden = true;
61
- formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
62
- result = _index.default.clearOutUncompletedRoutes(form, formData);
63
- expect(result).toEqual(_dataWithComponents.default);
64
- });
65
- it('should not remove hidden component when disableClearWhenHidden attribute is true on page', function () {
66
- var formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
67
- formData.componentA = "hide";
68
- var form = JSON.parse(JSON.stringify(_formWithComponents.default));
69
- var result = _index.default.clearOutUncompletedRoutes(form, formData);
70
- expect(result).toEqual(_dataWithComponentsRemoved.default);
71
- form.pages[0].disableClearWhenHidden = true;
72
- formData = JSON.parse(JSON.stringify(_dataWithComponents.default));
73
- result = _index.default.clearOutUncompletedRoutes(form, formData);
74
- expect(result).toEqual(_dataWithComponents.default);
75
- });
76
- it('should not remove hidden component when disableClearWhenHidden attribute is true on form', function () {
77
- var submissionData = JSON.parse(JSON.stringify(_dataWithComponents.default));
78
- var form = JSON.parse(JSON.stringify(_formWithComponents.default));
79
- submissionData.componentA = "hide";
80
- var result = _index.default.clearOutUncompletedRoutes(form, submissionData);
81
- expect(result).toEqual(_dataWithComponentsRemoved.default);
82
- form.disableClearWhenHidden = true;
83
- submissionData = JSON.parse(JSON.stringify(_dataWithComponents.default));
84
- submissionData.componentA = "hide";
85
- result = _index.default.clearOutUncompletedRoutes(form, submissionData);
86
- var expected = JSON.parse(JSON.stringify(_dataWithComponents.default));
87
- expected.componentA = "hide";
88
- expect(result).toEqual(expected);
89
- });
90
- it('should remove nested hidden component', function () {
91
- var submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
92
- var form = JSON.parse(JSON.stringify(_formForNestedComponents.default));
93
- var result = _index.default.clearOutUncompletedRoutes(form, submissionData);
94
- expect(result).toEqual(_dataWithNestedComponentRemoved.default);
95
- submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
96
- submissionData.bravo = "another";
97
- result = _index.default.clearOutUncompletedRoutes(form, submissionData);
98
- var expected = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
99
- delete expected.person.charlie;
100
- expected.bravo = "another";
101
- expect(result).toEqual(expected);
102
- submissionData = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
103
- submissionData.bravo = "notMatchAnything";
104
- result = _index.default.clearOutUncompletedRoutes(form, submissionData);
105
- expected = JSON.parse(JSON.stringify(_dataWithNestedComponents.default));
106
- delete expected.person.charlie;
107
- delete expected.person.delta;
108
- expected.bravo = "notMatchAnything";
109
- expect(result).toEqual(expected);
110
- });
111
- });
112
- });
113
- });
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /* eslint-disable consistent-return */
8
- var deleteNodeByPath = function deleteNodeByPath(obj, path) {
9
- var keys = path.split('.');
10
- var current = obj;
11
- for (var i = 0; i < keys.length - 1; i += 1) {
12
- current = current[keys[i]];
13
- if (current === undefined) {
14
- return;
15
- }
16
- }
17
- delete current[keys[keys.length - 1]];
18
- return obj;
19
- };
20
- var _default = exports.default = deleteNodeByPath;
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- var _deleteNodeByPath = _interopRequireDefault(require("./deleteNodeByPath"));
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
- describe('Delete node based on path', function () {
6
- it('delete where node is at parent level', function () {
7
- var nested = {
8
- type: "Example form",
9
- alpha: "alpha",
10
- bravo: "bravo",
11
- person: {
12
- charlie: "Smith",
13
- delta: "Acme Inc"
14
- },
15
- gamma: "gamma",
16
- epsilon: "epsilon"
17
- };
18
- var path = 'type';
19
- var result = (0, _deleteNodeByPath.default)(nested, path);
20
- expect(result).toEqual({
21
- alpha: "alpha",
22
- bravo: "bravo",
23
- person: {
24
- charlie: "Smith",
25
- delta: "Acme Inc"
26
- },
27
- gamma: "gamma",
28
- epsilon: "epsilon"
29
- });
30
- });
31
- it('delete where node is at child level', function () {
32
- var nested = {
33
- type: "Example form",
34
- alpha: "alpha",
35
- bravo: "bravo",
36
- person: {
37
- charlie: "Smith",
38
- delta: "Acme Inc"
39
- },
40
- gamma: "gamma",
41
- epsilon: "epsilon"
42
- };
43
- var path = 'person.charlie';
44
- var result = (0, _deleteNodeByPath.default)(nested, path);
45
- expect(result).toEqual({
46
- type: "Example form",
47
- alpha: "alpha",
48
- bravo: "bravo",
49
- person: {
50
- delta: "Acme Inc"
51
- },
52
- gamma: "gamma",
53
- epsilon: "epsilon"
54
- });
55
- });
56
- });