@ukhomeoffice/cop-react-form-renderer 7.3.2 → 8.0.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 (761) hide show
  1. package/README.md +106 -32
  2. package/dist/components/CheckYourAnswers/Answer.d.ts +10 -0
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.d.ts +35 -0
  4. package/dist/components/CheckYourAnswers/index.d.ts +2 -0
  5. package/dist/components/CollectionPage/CollectionPage.d.ts +24 -0
  6. package/dist/components/CollectionPage/index.d.ts +1 -0
  7. package/dist/components/CollectionSummary/BannerStrip.d.ts +9 -0
  8. package/dist/components/CollectionSummary/CollectionSummary.d.ts +53 -0
  9. package/dist/components/CollectionSummary/Confirmation.d.ts +15 -0
  10. package/dist/components/CollectionSummary/RenderListView.d.ts +42 -0
  11. package/dist/components/CollectionSummary/SummaryCard.d.ts +62 -0
  12. package/dist/components/CollectionSummary/SummaryCardButtons.d.ts +21 -0
  13. package/dist/components/CollectionSummary/SummaryCardDetails.d.ts +14 -0
  14. package/dist/components/CollectionSummary/SummaryCardValidationContext.d.ts +9 -0
  15. package/dist/components/CollectionSummary/index.d.ts +2 -0
  16. package/dist/components/FormComponent/Collection.d.ts +39 -0
  17. package/dist/components/FormComponent/Container.d.ts +26 -0
  18. package/dist/components/FormComponent/FormComponent.d.ts +39 -0
  19. package/dist/components/FormComponent/helpers/addLabel.d.ts +7 -0
  20. package/dist/components/FormComponent/helpers/getComponentDisabled.d.ts +2 -0
  21. package/dist/components/FormComponent/helpers/getComponentError.d.ts +4 -0
  22. package/dist/components/FormComponent/helpers/getComponentFieldSet.d.ts +2 -0
  23. package/dist/components/FormComponent/helpers/index.d.ts +5 -0
  24. package/dist/components/FormComponent/index.d.ts +2 -0
  25. package/dist/components/FormPage/FormPage.d.ts +36 -0
  26. package/dist/components/FormPage/index.d.ts +2 -0
  27. package/dist/components/FormRenderer/FormRenderer.d.ts +39 -0
  28. package/dist/components/FormRenderer/handlers/cyaAction.d.ts +9 -0
  29. package/dist/components/FormRenderer/handlers/getPageId.d.ts +8 -0
  30. package/dist/components/FormRenderer/handlers/index.d.ts +6 -0
  31. package/dist/components/FormRenderer/handlers/navigate.d.ts +10 -0
  32. package/dist/components/FormRenderer/handlers/submissionError.d.ts +7 -0
  33. package/dist/components/FormRenderer/helpers/canActionProceed.d.ts +12 -0
  34. package/dist/components/FormRenderer/helpers/canCYASubmit.d.ts +10 -0
  35. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.d.ts +2 -0
  36. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.d.ts +51 -0
  37. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.d.ts +179 -0
  38. package/dist/components/FormRenderer/helpers/getCYA.d.ts +20 -0
  39. package/dist/components/FormRenderer/helpers/getFormState.d.ts +25 -0
  40. package/dist/components/FormRenderer/helpers/getNextPageId.d.ts +2 -0
  41. package/dist/components/FormRenderer/helpers/getPage.d.ts +9 -0
  42. package/dist/components/FormRenderer/helpers/getRelevantPages.d.ts +2 -0
  43. package/dist/components/FormRenderer/helpers/getSubmissionStatus.d.ts +2 -0
  44. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.d.ts +10 -0
  45. package/dist/components/FormRenderer/helpers/index.d.ts +29 -0
  46. package/dist/components/FormRenderer/index.d.ts +2 -0
  47. package/dist/components/FormRenderer/onCYAAction.d.ts +6 -0
  48. package/dist/components/FormRenderer/onPageAction.d.ts +2 -0
  49. package/dist/components/FormRenderer/onTaskAction.d.ts +2 -0
  50. package/dist/components/PageActions/ActionButton.d.ts +7 -0
  51. package/dist/components/PageActions/PageActions.d.ts +7 -0
  52. package/dist/components/PageActions/index.d.ts +2 -0
  53. package/dist/components/SummaryList/GroupAction.d.ts +12 -0
  54. package/dist/components/SummaryList/RowAction.d.ts +12 -0
  55. package/dist/components/SummaryList/SummaryList.d.ts +28 -0
  56. package/dist/components/SummaryList/SummaryList.stories.d.ts +10 -0
  57. package/dist/components/SummaryList/SummaryListHeadingRow.d.ts +7 -0
  58. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.d.ts +16 -0
  59. package/dist/components/SummaryList/SummaryListRow.d.ts +19 -0
  60. package/dist/components/SummaryList/SummaryListTitleRow.d.ts +7 -0
  61. package/dist/components/SummaryList/helpers/getGroupActionAttributes.d.ts +17 -0
  62. package/dist/components/SummaryList/helpers/getRowActionAttributes.d.ts +17 -0
  63. package/dist/components/SummaryList/helpers/index.d.ts +2 -0
  64. package/dist/components/SummaryList/index.d.ts +2 -0
  65. package/dist/components/TaskList/Task.d.ts +12 -0
  66. package/dist/components/TaskList/TaskList.d.ts +40 -0
  67. package/dist/components/TaskList/TaskState.d.ts +6 -0
  68. package/dist/components/TaskList/index.d.ts +2 -0
  69. package/dist/components/index.d.ts +8 -0
  70. package/dist/context/HooksContext/HooksContext.d.ts +23 -0
  71. package/dist/context/HooksContext/index.d.ts +3 -0
  72. package/dist/context/ValidationContext/ValidationContext.d.ts +7 -0
  73. package/dist/context/ValidationContext/index.d.ts +3 -0
  74. package/dist/context/index.d.ts +3 -0
  75. package/dist/hooks/index.d.ts +6 -0
  76. package/dist/hooks/useAxios.d.ts +2 -0
  77. package/dist/hooks/useGetRequest.d.ts +12 -0
  78. package/dist/hooks/useHooks.d.ts +2 -0
  79. package/dist/hooks/useRefData.d.ts +7 -0
  80. package/dist/hooks/useValidation.d.ts +2 -0
  81. package/dist/index.cjs +5 -0
  82. package/dist/index.css +1 -0
  83. package/dist/index.d.ts +6 -0
  84. package/dist/index.js +6124 -81
  85. package/dist/models/CollectionLabels.d.ts +7 -0
  86. package/dist/models/ComponentTypes.d.ts +27 -0
  87. package/dist/models/EventTypes.d.ts +6 -0
  88. package/dist/models/FormPages.d.ts +6 -0
  89. package/dist/models/FormTypes.d.ts +10 -0
  90. package/dist/models/HubFormats.d.ts +5 -0
  91. package/dist/models/PageAction.d.ts +89 -0
  92. package/dist/models/TaskStates.d.ts +39 -0
  93. package/dist/models/index.d.ts +143 -0
  94. package/dist/setupTests.d.ts +14 -0
  95. package/dist/utils/CheckYourAnswers/getCYAAction.d.ts +20 -0
  96. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.d.ts +22 -0
  97. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.d.ts +22 -0
  98. package/dist/utils/CheckYourAnswers/getCYARow.d.ts +26 -0
  99. package/dist/utils/CheckYourAnswers/getCYARowForGroup.d.ts +17 -0
  100. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.d.ts +2 -0
  101. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.d.ts +23 -0
  102. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.d.ts +2 -0
  103. package/dist/utils/CheckYourAnswers/getCYARowsForPage.d.ts +11 -0
  104. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.d.ts +3 -0
  105. package/dist/utils/CheckYourAnswers/index.d.ts +5 -0
  106. package/dist/utils/CheckYourAnswers/showComponentCYA.d.ts +11 -0
  107. package/dist/utils/CollectionPage/addCollectionPageEntry.d.ts +12 -0
  108. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.d.ts +13 -0
  109. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.d.ts +13 -0
  110. package/dist/utils/CollectionPage/getCollectionPageActiveId.d.ts +14 -0
  111. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.d.ts +15 -0
  112. package/dist/utils/CollectionPage/getCollectionPageData.d.ts +15 -0
  113. package/dist/utils/CollectionPage/getErrorsForCollection.d.ts +2 -0
  114. package/dist/utils/CollectionPage/getQuickEditPage.d.ts +40 -0
  115. package/dist/utils/CollectionPage/index.d.ts +13 -0
  116. package/dist/utils/CollectionPage/mergeCollectionPages.d.ts +13 -0
  117. package/dist/utils/CollectionPage/removeCollectionPageEntry.d.ts +11 -0
  118. package/dist/utils/CollectionPage/setCollectionPageData.d.ts +16 -0
  119. package/dist/utils/Component/addShowWhen.d.ts +13 -0
  120. package/dist/utils/Component/applyToComponentTree.d.ts +15 -0
  121. package/dist/utils/Component/cleanAttributes.d.ts +14 -0
  122. package/dist/utils/Component/elevateNestedComponents.d.ts +28 -0
  123. package/dist/utils/Component/getDefaultValue.d.ts +2 -0
  124. package/dist/utils/Component/getDefaultValueFromConfig.d.ts +2 -0
  125. package/dist/utils/Component/index.d.ts +12 -0
  126. package/dist/utils/Component/isEditable.d.ts +3 -0
  127. package/dist/utils/Component/optionIsSelected.d.ts +10 -0
  128. package/dist/utils/Component/setupContainerComponentsPath.d.ts +2 -0
  129. package/dist/utils/Component/showComponent.d.ts +2 -0
  130. package/dist/utils/Condition/index.d.ts +6 -0
  131. package/dist/utils/Condition/meetsAllConditions.d.ts +8 -0
  132. package/dist/utils/Condition/meetsCondition.d.ts +14 -0
  133. package/dist/utils/Condition/meetsOneCondition.d.ts +8 -0
  134. package/dist/utils/Condition/setupConditions.d.ts +2 -0
  135. package/dist/utils/Container/getEditableComponents.d.ts +7 -0
  136. package/dist/utils/Container/index.d.ts +6 -0
  137. package/dist/utils/Container/setupNesting.d.ts +2 -0
  138. package/dist/utils/Container/showContainer.d.ts +8 -0
  139. package/dist/utils/Data/applyFormula.d.ts +2 -0
  140. package/dist/utils/Data/deleteValues.d.ts +8 -0
  141. package/dist/utils/Data/getAutocompleteSource.d.ts +2 -0
  142. package/dist/utils/Data/getDataPath.d.ts +21 -0
  143. package/dist/utils/Data/getOptions.d.ts +2 -0
  144. package/dist/utils/Data/getSourceData.d.ts +17 -0
  145. package/dist/utils/Data/index.d.ts +15 -0
  146. package/dist/utils/Data/nestInRefdataOptions.d.ts +10 -0
  147. package/dist/utils/Data/refDataToOptions.d.ts +8 -0
  148. package/dist/utils/Data/setDataItem.d.ts +2 -0
  149. package/dist/utils/Data/setupFormData.d.ts +15 -0
  150. package/dist/utils/Data/setupRefDataUrlForComponent.d.ts +2 -0
  151. package/dist/utils/FormPage/applyConditionalProperties.d.ts +8 -0
  152. package/dist/utils/FormPage/getConditionalText.d.ts +23 -0
  153. package/dist/utils/FormPage/getFormPage.d.ts +9 -0
  154. package/dist/utils/FormPage/getFormPages.d.ts +9 -0
  155. package/dist/utils/FormPage/getPageActions.d.ts +13 -0
  156. package/dist/utils/FormPage/getParagraphFromText.d.ts +11 -0
  157. package/dist/utils/FormPage/index.d.ts +10 -0
  158. package/dist/utils/FormPage/showFormPage.d.ts +8 -0
  159. package/dist/utils/FormPage/showFormPageCYA.d.ts +8 -0
  160. package/dist/utils/FormPage/useComponent.d.ts +9 -0
  161. package/dist/utils/Format/formatData.d.ts +8 -0
  162. package/dist/utils/Format/formatDataForComponent.d.ts +15 -0
  163. package/dist/utils/Format/formatDataForForm.d.ts +8 -0
  164. package/dist/utils/Format/formatDataForPage.d.ts +15 -0
  165. package/dist/utils/Format/index.d.ts +7 -0
  166. package/dist/utils/Hub/getFormHub.d.ts +15 -0
  167. package/dist/utils/Hub/index.d.ts +4 -0
  168. package/dist/utils/Meta/constants.d.ts +2 -0
  169. package/dist/utils/Meta/documents/getDocuments.d.ts +2 -0
  170. package/dist/utils/Meta/documents/index.d.ts +6 -0
  171. package/dist/utils/Meta/documents/setDocumentsForField.d.ts +2 -0
  172. package/dist/utils/Meta/index.d.ts +9 -0
  173. package/dist/utils/Operate/checkValueIsTruthy.d.ts +9 -0
  174. package/dist/utils/Operate/deleteValueInFormData.d.ts +8 -0
  175. package/dist/utils/Operate/doesContainValue.d.ts +11 -0
  176. package/dist/utils/Operate/getFirstOf.d.ts +2 -0
  177. package/dist/utils/Operate/getIndexOfMatchingValueIn.d.ts +11 -0
  178. package/dist/utils/Operate/getLength.d.ts +11 -0
  179. package/dist/utils/Operate/index.d.ts +4 -0
  180. package/dist/utils/Operate/persistValueInFormData.d.ts +9 -0
  181. package/dist/utils/Operate/runPageOperations.d.ts +19 -0
  182. package/dist/utils/Operate/setValueInFormData.d.ts +2 -0
  183. package/dist/utils/Operate/shouldRun.d.ts +9 -0
  184. package/dist/utils/Validate/additional/conditionallyPermittedChange.d.ts +14 -0
  185. package/dist/utils/Validate/additional/conditionallyRequired.d.ts +11 -0
  186. package/dist/utils/Validate/additional/index.d.ts +2 -0
  187. package/dist/utils/Validate/additional/mustBeAfter.d.ts +14 -0
  188. package/dist/utils/Validate/additional/mustBeBefore.d.ts +14 -0
  189. package/dist/utils/Validate/additional/mustBeEarlierDateTime.d.ts +15 -0
  190. package/dist/utils/Validate/additional/mustBeGreaterThan.d.ts +7 -0
  191. package/dist/utils/Validate/additional/mustBeInTheFuture.d.ts +8 -0
  192. package/dist/utils/Validate/additional/mustBeInThePast.d.ts +9 -0
  193. package/dist/utils/Validate/additional/mustBeLessThan.d.ts +7 -0
  194. package/dist/utils/Validate/additional/mustBeLongerThan.d.ts +9 -0
  195. package/dist/utils/Validate/additional/mustBeNumbersOnly.d.ts +9 -0
  196. package/dist/utils/Validate/additional/mustBeOneOf.d.ts +8 -0
  197. package/dist/utils/Validate/additional/mustBeShorterThan.d.ts +9 -0
  198. package/dist/utils/Validate/additional/mustBeUniqueInCollection.d.ts +10 -0
  199. package/dist/utils/Validate/additional/mustEnterAtLeastOne.d.ts +9 -0
  200. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.d.ts +7 -0
  201. package/dist/utils/Validate/additional/mustNotContainSql.d.ts +2 -0
  202. package/dist/utils/Validate/additional/mustSelectOnlyOne.d.ts +8 -0
  203. package/dist/utils/Validate/additional/utils.d.ts +4 -0
  204. package/dist/utils/Validate/index.d.ts +42 -0
  205. package/dist/utils/Validate/validateCollection.d.ts +9 -0
  206. package/dist/utils/Validate/validateComponent.d.ts +16 -0
  207. package/dist/utils/Validate/validateContainer.d.ts +12 -0
  208. package/dist/utils/Validate/validateDate.d.ts +29 -0
  209. package/dist/utils/Validate/validateEmail.d.ts +13 -0
  210. package/dist/utils/Validate/validateMultifile.d.ts +3 -0
  211. package/dist/utils/Validate/validateOnPageLoad.d.ts +1 -0
  212. package/dist/utils/Validate/validatePage.d.ts +8 -0
  213. package/dist/utils/Validate/validateRegex.d.ts +13 -0
  214. package/dist/utils/Validate/validateRequired.d.ts +9 -0
  215. package/dist/utils/Validate/validateTextArea.d.ts +13 -0
  216. package/dist/utils/Validate/validateTime.d.ts +20 -0
  217. package/dist/utils/canOverrideFieldRequired.d.ts +9 -0
  218. package/dist/utils/index.d.ts +140 -0
  219. package/package.json +80 -167
  220. package/LICENCE.md +0 -21
  221. package/dist/components/CheckYourAnswers/Answer.js +0 -59
  222. package/dist/components/CheckYourAnswers/Answer.test.js +0 -142
  223. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +0 -252
  224. package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +0 -43
  225. package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +0 -409
  226. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +0 -603
  227. package/dist/components/CheckYourAnswers/index.js +0 -10
  228. package/dist/components/CollectionPage/CollectionPage.js +0 -178
  229. package/dist/components/CollectionPage/CollectionPage.test.js +0 -507
  230. package/dist/components/CollectionPage/index.js +0 -10
  231. package/dist/components/CollectionSummary/BannerStrip.js +0 -65
  232. package/dist/components/CollectionSummary/BannerStrip.scss +0 -60
  233. package/dist/components/CollectionSummary/BannerStrip.test.js +0 -167
  234. package/dist/components/CollectionSummary/CollectionSummary.js +0 -362
  235. package/dist/components/CollectionSummary/CollectionSummary.scss +0 -26
  236. package/dist/components/CollectionSummary/CollectionSummary.test.js +0 -368
  237. package/dist/components/CollectionSummary/Confirmation.js +0 -65
  238. package/dist/components/CollectionSummary/Confirmation.scss +0 -26
  239. package/dist/components/CollectionSummary/Confirmation.test.js +0 -109
  240. package/dist/components/CollectionSummary/RenderListView.js +0 -162
  241. package/dist/components/CollectionSummary/RenderListView.scss +0 -295
  242. package/dist/components/CollectionSummary/RenderListView.test.js +0 -303
  243. package/dist/components/CollectionSummary/SummaryCard.js +0 -277
  244. package/dist/components/CollectionSummary/SummaryCard.scss +0 -114
  245. package/dist/components/CollectionSummary/SummaryCard.test.js +0 -1442
  246. package/dist/components/CollectionSummary/SummaryCardButtons.js +0 -76
  247. package/dist/components/CollectionSummary/SummaryCardButtons.test.js +0 -87
  248. package/dist/components/CollectionSummary/SummaryCardDetails.js +0 -206
  249. package/dist/components/CollectionSummary/SummaryCardDetails.scss +0 -216
  250. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +0 -654
  251. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +0 -79
  252. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +0 -104
  253. package/dist/components/CollectionSummary/index.js +0 -10
  254. package/dist/components/FormComponent/Collection.js +0 -234
  255. package/dist/components/FormComponent/Collection.scss +0 -24
  256. package/dist/components/FormComponent/Collection.test.js +0 -934
  257. package/dist/components/FormComponent/Container.js +0 -130
  258. package/dist/components/FormComponent/Container.scss +0 -15
  259. package/dist/components/FormComponent/Container.test.js +0 -456
  260. package/dist/components/FormComponent/FormComponent.js +0 -238
  261. package/dist/components/FormComponent/FormComponent.stories.mdx +0 -186
  262. package/dist/components/FormComponent/FormComponent.test.js +0 -436
  263. package/dist/components/FormComponent/helpers/addLabel.js +0 -25
  264. package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -15
  265. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -27
  266. package/dist/components/FormComponent/helpers/getComponentError.js +0 -23
  267. package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -51
  268. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +0 -11
  269. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +0 -30
  270. package/dist/components/FormComponent/helpers/index.js +0 -35
  271. package/dist/components/FormComponent/index.js +0 -10
  272. package/dist/components/FormPage/FormPage.js +0 -212
  273. package/dist/components/FormPage/FormPage.scss +0 -7
  274. package/dist/components/FormPage/FormPage.stories.mdx +0 -157
  275. package/dist/components/FormPage/FormPage.test.js +0 -454
  276. package/dist/components/FormPage/index.js +0 -10
  277. package/dist/components/FormRenderer/FormRenderer.js +0 -426
  278. package/dist/components/FormRenderer/FormRenderer.scss +0 -5
  279. package/dist/components/FormRenderer/FormRenderer.stories.mdx +0 -178
  280. package/dist/components/FormRenderer/FormRenderer.test.js +0 -799
  281. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/cop-reassign-task-to-rcc.json +0 -446
  282. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-containerised.json +0 -120
  283. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested-block.json +0 -113
  284. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested.json +0 -106
  285. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-refdata.json +0 -106
  286. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-target-component-nested.json +0 -99
  287. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens.json +0 -106
  288. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-show-whens-page-hidden.json +0 -113
  289. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-airpax.json +0 -26408
  290. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-mandec.json +0 -9405
  291. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component-dependent-on-external-data.json +0 -158
  292. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component.json +0 -86
  293. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-collection.json +0 -173
  294. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-hidden-collection.json +0 -202
  295. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-show-when-in-component-and-page.json +0 -63
  296. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions-visible-elsewhere.json +0 -118
  297. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions.json +0 -112
  298. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component.json +0 -58
  299. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-containerised-component.json +0 -97
  300. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-collection-component.json +0 -83
  301. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-component.json +0 -55
  302. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-entire-collection.json +0 -114
  303. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component-leaf-hidden.json +0 -106
  304. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component.json +0 -106
  305. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-options.json +0 -99
  306. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-collection.json +0 -128
  307. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-component-used-elsewhere.json +0 -109
  308. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-same-component-reused.json +0 -62
  309. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page.json +0 -96
  310. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option-visible-elsewhere.json +0 -113
  311. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option.json +0 -112
  312. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-nested-component.json +0 -26003
  313. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-nested-radio-component.json +0 -201
  314. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-same-component-reused-one-shown.json +0 -75
  315. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-variance-breach.json +0 -4272
  316. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-carrier.json +0 -407
  317. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-change-what-happened-before.json +0 -300
  318. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-remove-photos-before.json +0 -384
  319. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-business-interests-before.json +0 -140
  320. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-criminality-before.json +0 -186
  321. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-unspent-convictions-before.json +0 -143
  322. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-variance-breach-with-upload-files.json +0 -1264
  323. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-containerised.json +0 -11
  324. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested-block.json +0 -10
  325. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested.json +0 -9
  326. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-refdata.json +0 -11
  327. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-target-component-nested.json +0 -9
  328. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens.json +0 -9
  329. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-show-whens-page-hidden.json +0 -9
  330. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component-dependent-on-external-data.json +0 -26
  331. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component.json +0 -15
  332. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-collection.json +0 -25
  333. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-hidden-collection.json +0 -26
  334. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-show-when-in-component-and-page.json +0 -6
  335. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-with-nested-questions-visible-elsewhere.json +0 -12
  336. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-with-nested-questions.json +0 -12
  337. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component.json +0 -5
  338. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-containerised-component.json +0 -11
  339. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-collection-component.json +0 -15
  340. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-component.json +0 -5
  341. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-entire-collection.json +0 -20
  342. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component-leaf-hidden.json +0 -14
  343. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component.json +0 -14
  344. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-options.json +0 -10
  345. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-collection.json +0 -18
  346. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-component-used-elsewhere.json +0 -9
  347. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-same-component-reused.json +0 -6
  348. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page.json +0 -9
  349. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-nested-answers-hidden-by-option-visible-elsewhere.json +0 -12
  350. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-nested-answers-hidden-by-option.json +0 -12
  351. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-nested-component.json +0 -63
  352. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-nested-radio-component.json +0 -45
  353. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-same-component-reused-one-shown.json +0 -8
  354. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/reassign-to-rcc.json +0 -72
  355. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-airpax-change-what-happened-after.json +0 -280
  356. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-airpax-remove-photos-after.json +0 -355
  357. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-base-file.json +0 -80
  358. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-business-interests-after.json +0 -122
  359. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-criminality-after.json +0 -86
  360. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-unspent-convictions-after.json +0 -127
  361. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-containerised-removed.json +0 -11
  362. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-block-removed.json +0 -7
  363. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-removed.json +0 -7
  364. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-refdata-removed.json +0 -7
  365. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-removed.json +0 -7
  366. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-target-component-nested-removed.json +0 -6
  367. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-show-whens-page-hidden-removed.json +0 -6
  368. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-dependent-on-external-data-removed.json +0 -23
  369. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-removed.json +0 -4
  370. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-collection-removed.json +0 -21
  371. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-hidden-collection-removed.json +0 -6
  372. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-removed.json +0 -4
  373. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-show-when-in-component-and-page-removed.json +0 -5
  374. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-with-nested-questions-removed.json +0 -10
  375. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-with-nested-questions-visible-elsewhere-removed.json +0 -11
  376. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-containerised-component-removed.json +0 -10
  377. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-collection-component-removed.json +0 -4
  378. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-component-removed.json +0 -4
  379. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-entire-collection-removed.json +0 -3
  380. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-leaf-hidden-removed.json +0 -13
  381. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-removed.json +0 -10
  382. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-options-removed.json +0 -8
  383. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-collection-removed.json +0 -15
  384. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-component-used-elsewhere-removed.json +0 -5
  385. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-removed.json +0 -4
  386. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-same-component-reused-removed.json +0 -5
  387. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-nested-answers-hidden-by-option-removed.json +0 -11
  388. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-nested-answers-hidden-by-option-visible-elsewhere-removed.json +0 -12
  389. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-nested-component.json +0 -63
  390. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-nested-radio-component-removed.json +0 -45
  391. package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-same-component-reused-one-shown-removed.json +0 -7
  392. package/dist/components/FormRenderer/handlers/cyaAction.js +0 -23
  393. package/dist/components/FormRenderer/handlers/getPageId.js +0 -15
  394. package/dist/components/FormRenderer/handlers/getPageId.test.js +0 -35
  395. package/dist/components/FormRenderer/handlers/handlers.test.js +0 -81
  396. package/dist/components/FormRenderer/handlers/index.js +0 -17
  397. package/dist/components/FormRenderer/handlers/navigate.js +0 -25
  398. package/dist/components/FormRenderer/handlers/submissionError.js +0 -18
  399. package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -27
  400. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +0 -84
  401. package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -17
  402. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +0 -75
  403. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +0 -63
  404. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +0 -191
  405. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -338
  406. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -434
  407. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.js +0 -399
  408. package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.test.js +0 -559
  409. package/dist/components/FormRenderer/helpers/getCYA.js +0 -42
  410. package/dist/components/FormRenderer/helpers/getCYA.test.js +0 -46
  411. package/dist/components/FormRenderer/helpers/getFormState.js +0 -25
  412. package/dist/components/FormRenderer/helpers/getFormState.test.js +0 -60
  413. package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -76
  414. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +0 -292
  415. package/dist/components/FormRenderer/helpers/getPage.js +0 -27
  416. package/dist/components/FormRenderer/helpers/getPage.test.js +0 -45
  417. package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -27
  418. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +0 -70
  419. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -65
  420. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +0 -309
  421. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +0 -201
  422. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +0 -473
  423. package/dist/components/FormRenderer/helpers/index.js +0 -33
  424. package/dist/components/FormRenderer/index.js +0 -10
  425. package/dist/components/FormRenderer/onCYAAction.js +0 -150
  426. package/dist/components/FormRenderer/onCYAAction.test.js +0 -741
  427. package/dist/components/FormRenderer/onPageAction.js +0 -227
  428. package/dist/components/FormRenderer/onPageAction.test.js +0 -960
  429. package/dist/components/FormRenderer/onTaskAction.js +0 -47
  430. package/dist/components/FormRenderer/onTaskAction.test.js +0 -247
  431. package/dist/components/PageActions/ActionButton.js +0 -48
  432. package/dist/components/PageActions/ActionButton.test.js +0 -73
  433. package/dist/components/PageActions/PageActions.js +0 -37
  434. package/dist/components/PageActions/PageActions.stories.mdx +0 -74
  435. package/dist/components/PageActions/PageActions.test.js +0 -106
  436. package/dist/components/PageActions/index.js +0 -10
  437. package/dist/components/SummaryList/GroupAction.js +0 -50
  438. package/dist/components/SummaryList/GroupAction.test.js +0 -86
  439. package/dist/components/SummaryList/RowAction.js +0 -48
  440. package/dist/components/SummaryList/RowAction.test.js +0 -86
  441. package/dist/components/SummaryList/SummaryList.js +0 -128
  442. package/dist/components/SummaryList/SummaryList.scss +0 -79
  443. package/dist/components/SummaryList/SummaryList.stories.mdx +0 -84
  444. package/dist/components/SummaryList/SummaryList.test.js +0 -504
  445. package/dist/components/SummaryList/SummaryListHeadingRow.js +0 -39
  446. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +0 -65
  447. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +0 -38
  448. package/dist/components/SummaryList/SummaryListRow.js +0 -58
  449. package/dist/components/SummaryList/SummaryListTitleRow.js +0 -32
  450. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -29
  451. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -72
  452. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -29
  453. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -72
  454. package/dist/components/SummaryList/helpers/index.js +0 -14
  455. package/dist/components/SummaryList/index.js +0 -10
  456. package/dist/components/TaskList/Task.js +0 -62
  457. package/dist/components/TaskList/Task.test.js +0 -176
  458. package/dist/components/TaskList/TaskList.js +0 -175
  459. package/dist/components/TaskList/TaskList.scss +0 -123
  460. package/dist/components/TaskList/TaskList.stories.mdx +0 -164
  461. package/dist/components/TaskList/TaskList.test.js +0 -535
  462. package/dist/components/TaskList/TaskState.js +0 -37
  463. package/dist/components/TaskList/TaskState.test.js +0 -95
  464. package/dist/components/TaskList/index.js +0 -10
  465. package/dist/components/index.js +0 -56
  466. package/dist/context/HooksContext/HooksContext.js +0 -122
  467. package/dist/context/HooksContext/HooksContext.test.js +0 -45
  468. package/dist/context/HooksContext/index.js +0 -16
  469. package/dist/context/ValidationContext/ValidationContext.js +0 -98
  470. package/dist/context/ValidationContext/ValidationContext.test.js +0 -107
  471. package/dist/context/ValidationContext/index.js +0 -16
  472. package/dist/context/index.js +0 -21
  473. package/dist/hooks/index.js +0 -55
  474. package/dist/hooks/useAxios.js +0 -36
  475. package/dist/hooks/useGetRequest.js +0 -89
  476. package/dist/hooks/useHooks.js +0 -15
  477. package/dist/hooks/useRefData.js +0 -62
  478. package/dist/hooks/useValidation.js +0 -15
  479. package/dist/json/actions.json +0 -17
  480. package/dist/json/actionsNoSave.json +0 -17
  481. package/dist/json/addressDetails.json +0 -149
  482. package/dist/json/areYouACivilServant.json +0 -7
  483. package/dist/json/firstForm.json +0 -94
  484. package/dist/json/grade.json +0 -108
  485. package/dist/json/group.data.json +0 -21
  486. package/dist/json/group.json +0 -402
  487. package/dist/json/groupOfRow.json +0 -137
  488. package/dist/json/groupOfRowData.json +0 -15
  489. package/dist/json/port.json +0 -346
  490. package/dist/json/saveAndContinue.json +0 -98
  491. package/dist/json/sublocation.json +0 -859
  492. package/dist/json/taskList.json +0 -265
  493. package/dist/json/team.json +0 -17351
  494. package/dist/json/terminal.json +0 -81
  495. package/dist/json/userProfile.data.json +0 -21
  496. package/dist/json/userProfile.json +0 -276
  497. package/dist/models/CollectionLabels.js +0 -15
  498. package/dist/models/ComponentTypes.js +0 -58
  499. package/dist/models/EventTypes.js +0 -16
  500. package/dist/models/FormPages.js +0 -16
  501. package/dist/models/FormTypes.js +0 -24
  502. package/dist/models/HubFormats.js +0 -14
  503. package/dist/models/PageAction.js +0 -65
  504. package/dist/models/TaskStates.js +0 -46
  505. package/dist/models/index.js +0 -77
  506. package/dist/setupTests.js +0 -54
  507. package/dist/utils/CheckYourAnswers/getCYAAction.js +0 -44
  508. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +0 -120
  509. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +0 -57
  510. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +0 -162
  511. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +0 -66
  512. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +0 -198
  513. package/dist/utils/CheckYourAnswers/getCYARow.js +0 -58
  514. package/dist/utils/CheckYourAnswers/getCYARow.test.js +0 -373
  515. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +0 -69
  516. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +0 -70
  517. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +0 -71
  518. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +0 -285
  519. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +0 -237
  520. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +0 -844
  521. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +0 -45
  522. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +0 -535
  523. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +0 -72
  524. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +0 -343
  525. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +0 -42
  526. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +0 -56
  527. package/dist/utils/CheckYourAnswers/index.js +0 -15
  528. package/dist/utils/CheckYourAnswers/showComponentCYA.js +0 -53
  529. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +0 -149
  530. package/dist/utils/CollectionPage/addCollectionPageEntry.js +0 -23
  531. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +0 -17
  532. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +0 -26
  533. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +0 -70
  534. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +0 -51
  535. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +0 -125
  536. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +0 -24
  537. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +0 -26
  538. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -44
  539. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +0 -88
  540. package/dist/utils/CollectionPage/getCollectionPageData.js +0 -53
  541. package/dist/utils/CollectionPage/getCollectionPageData.test.js +0 -103
  542. package/dist/utils/CollectionPage/getErrorsForCollection.js +0 -55
  543. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +0 -154
  544. package/dist/utils/CollectionPage/getQuickEditPage.js +0 -122
  545. package/dist/utils/CollectionPage/getQuickEditPage.test.js +0 -143
  546. package/dist/utils/CollectionPage/index.js +0 -33
  547. package/dist/utils/CollectionPage/mergeCollectionPages.js +0 -128
  548. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +0 -198
  549. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +0 -36
  550. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +0 -62
  551. package/dist/utils/CollectionPage/setCollectionPageData.js +0 -60
  552. package/dist/utils/CollectionPage/setCollectionPageData.test.js +0 -182
  553. package/dist/utils/Component/addShowWhen.js +0 -43
  554. package/dist/utils/Component/addShowWhen.test.js +0 -217
  555. package/dist/utils/Component/applyToComponentTree.js +0 -68
  556. package/dist/utils/Component/applyToComponentTree.test.js +0 -125
  557. package/dist/utils/Component/cleanAttributes.js +0 -42
  558. package/dist/utils/Component/cleanAttributes.test.js +0 -67
  559. package/dist/utils/Component/elevateNestedComponents.js +0 -58
  560. package/dist/utils/Component/elevateNestedComponents.test.js +0 -305
  561. package/dist/utils/Component/getComponent.js +0 -305
  562. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +0 -73
  563. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +0 -251
  564. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +0 -156
  565. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +0 -104
  566. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +0 -56
  567. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +0 -60
  568. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +0 -60
  569. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +0 -31
  570. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +0 -42
  571. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +0 -29
  572. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +0 -47
  573. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +0 -66
  574. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +0 -211
  575. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +0 -46
  576. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +0 -60
  577. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +0 -221
  578. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +0 -62
  579. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +0 -60
  580. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +0 -104
  581. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +0 -80
  582. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +0 -14
  583. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +0 -29
  584. package/dist/utils/Component/getDefaultValue.js +0 -22
  585. package/dist/utils/Component/getDefaultValue.test.js +0 -62
  586. package/dist/utils/Component/getDefaultValueFromConfig.js +0 -106
  587. package/dist/utils/Component/getDefaultValueFromConfig.test.js +0 -141
  588. package/dist/utils/Component/index.js +0 -29
  589. package/dist/utils/Component/isEditable.js +0 -13
  590. package/dist/utils/Component/isEditable.test.js +0 -42
  591. package/dist/utils/Component/optionIsSelected.js +0 -25
  592. package/dist/utils/Component/optionIsSelected.test.js +0 -69
  593. package/dist/utils/Component/setupContainerComponentsPath.js +0 -35
  594. package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -79
  595. package/dist/utils/Component/showComponent.js +0 -25
  596. package/dist/utils/Component/showComponent.test.js +0 -157
  597. package/dist/utils/Component/wrapInFormGroup.js +0 -26
  598. package/dist/utils/Condition/index.js +0 -17
  599. package/dist/utils/Condition/meetsAllConditions.js +0 -44
  600. package/dist/utils/Condition/meetsAllConditions.test.js +0 -109
  601. package/dist/utils/Condition/meetsCondition.js +0 -165
  602. package/dist/utils/Condition/meetsCondition.test.js +0 -899
  603. package/dist/utils/Condition/meetsOneCondition.js +0 -32
  604. package/dist/utils/Condition/meetsOneCondition.test.js +0 -101
  605. package/dist/utils/Condition/setupConditions.js +0 -36
  606. package/dist/utils/Condition/setupConditions.test.js +0 -34
  607. package/dist/utils/Container/getEditableComponents.js +0 -29
  608. package/dist/utils/Container/getEditableComponents.test.js +0 -134
  609. package/dist/utils/Container/index.js +0 -17
  610. package/dist/utils/Container/setupNesting.js +0 -53
  611. package/dist/utils/Container/setupNesting.test.js +0 -143
  612. package/dist/utils/Container/showContainer.js +0 -52
  613. package/dist/utils/Container/showContainer.test.js +0 -179
  614. package/dist/utils/Data/applyFormula.js +0 -90
  615. package/dist/utils/Data/applyFormula.test.js +0 -264
  616. package/dist/utils/Data/deleteValues.js +0 -19
  617. package/dist/utils/Data/deleteValues.test.js +0 -58
  618. package/dist/utils/Data/getAutocompleteSource.js +0 -87
  619. package/dist/utils/Data/getAutocompleteSource.test.js +0 -335
  620. package/dist/utils/Data/getDataPath.js +0 -66
  621. package/dist/utils/Data/getDataPath.test.js +0 -49
  622. package/dist/utils/Data/getOptions.js +0 -86
  623. package/dist/utils/Data/getOptions.test.js +0 -279
  624. package/dist/utils/Data/getSourceData.js +0 -44
  625. package/dist/utils/Data/getSourceData.test.js +0 -158
  626. package/dist/utils/Data/index.js +0 -35
  627. package/dist/utils/Data/nestInRefdataOptions.js +0 -47
  628. package/dist/utils/Data/nestInRefdataOptions.test.js +0 -237
  629. package/dist/utils/Data/refDataToOptions.js +0 -44
  630. package/dist/utils/Data/refDataToOptions.test.js +0 -197
  631. package/dist/utils/Data/setDataItem.js +0 -26
  632. package/dist/utils/Data/setDataItem.test.js +0 -136
  633. package/dist/utils/Data/setupFormData.js +0 -49
  634. package/dist/utils/Data/setupFormData.test.js +0 -215
  635. package/dist/utils/Data/setupRefDataUrlForComponent.js +0 -44
  636. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +0 -150
  637. package/dist/utils/FormPage/applyConditionalProperties.js +0 -34
  638. package/dist/utils/FormPage/applyConditionalProperties.test.js +0 -61
  639. package/dist/utils/FormPage/getConditionalText.js +0 -55
  640. package/dist/utils/FormPage/getConditionalText.test.js +0 -163
  641. package/dist/utils/FormPage/getFormPage.js +0 -54
  642. package/dist/utils/FormPage/getFormPage.test.js +0 -206
  643. package/dist/utils/FormPage/getFormPages.js +0 -30
  644. package/dist/utils/FormPage/getFormPages.test.js +0 -97
  645. package/dist/utils/FormPage/getPageActions.js +0 -58
  646. package/dist/utils/FormPage/getPageActions.test.js +0 -115
  647. package/dist/utils/FormPage/getParagraphFromText.js +0 -21
  648. package/dist/utils/FormPage/getParagraphFromText.test.js +0 -28
  649. package/dist/utils/FormPage/index.js +0 -24
  650. package/dist/utils/FormPage/showFormPage.js +0 -52
  651. package/dist/utils/FormPage/showFormPage.test.js +0 -181
  652. package/dist/utils/FormPage/showFormPageCYA.js +0 -23
  653. package/dist/utils/FormPage/showFormPageCYA.test.js +0 -29
  654. package/dist/utils/FormPage/useComponent.js +0 -83
  655. package/dist/utils/FormPage/useComponent.test.js +0 -216
  656. package/dist/utils/Format/formatData.js +0 -27
  657. package/dist/utils/Format/formatData.test.js +0 -46
  658. package/dist/utils/Format/formatDataForComponent.js +0 -35
  659. package/dist/utils/Format/formatDataForComponent.test.js +0 -114
  660. package/dist/utils/Format/formatDataForForm.js +0 -27
  661. package/dist/utils/Format/formatDataForForm.test.js +0 -79
  662. package/dist/utils/Format/formatDataForPage.js +0 -31
  663. package/dist/utils/Format/formatDataForPage.test.js +0 -94
  664. package/dist/utils/Format/index.js +0 -21
  665. package/dist/utils/Hub/getFormHub.js +0 -40
  666. package/dist/utils/Hub/getFormHub.test.js +0 -105
  667. package/dist/utils/Hub/index.js +0 -15
  668. package/dist/utils/Meta/constants.js +0 -9
  669. package/dist/utils/Meta/documents/getDocuments.js +0 -15
  670. package/dist/utils/Meta/documents/getDocuments.test.js +0 -46
  671. package/dist/utils/Meta/documents/index.js +0 -19
  672. package/dist/utils/Meta/documents/setDocumentsForField.js +0 -30
  673. package/dist/utils/Meta/documents/setDocumentsForField.test.js +0 -97
  674. package/dist/utils/Meta/index.js +0 -17
  675. package/dist/utils/Operate/checkValueIsTruthy.js +0 -29
  676. package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -43
  677. package/dist/utils/Operate/deleteValueInFormData.js +0 -27
  678. package/dist/utils/Operate/deleteValueInFormData.test.js +0 -61
  679. package/dist/utils/Operate/doesContainValue.js +0 -35
  680. package/dist/utils/Operate/doesContainValue.test.js +0 -76
  681. package/dist/utils/Operate/getFirstOf.js +0 -31
  682. package/dist/utils/Operate/getFirstOf.test.js +0 -87
  683. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +0 -68
  684. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +0 -158
  685. package/dist/utils/Operate/getLength.js +0 -51
  686. package/dist/utils/Operate/getLength.test.js +0 -90
  687. package/dist/utils/Operate/index.js +0 -13
  688. package/dist/utils/Operate/persistValueInFormData.js +0 -40
  689. package/dist/utils/Operate/persistValueInFormData.test.js +0 -118
  690. package/dist/utils/Operate/runPageOperations.js +0 -75
  691. package/dist/utils/Operate/runPageOperations.test.js +0 -105
  692. package/dist/utils/Operate/setValueInFormData.js +0 -22
  693. package/dist/utils/Operate/setValueInFormData.test.js +0 -45
  694. package/dist/utils/Operate/shouldRun.js +0 -57
  695. package/dist/utils/Operate/shouldRun.test.js +0 -65
  696. package/dist/utils/Validate/additional/conditionallyPermittedChange.js +0 -26
  697. package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +0 -34
  698. package/dist/utils/Validate/additional/conditionallyRequired.js +0 -24
  699. package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -74
  700. package/dist/utils/Validate/additional/index.js +0 -74
  701. package/dist/utils/Validate/additional/index.test.js +0 -130
  702. package/dist/utils/Validate/additional/mustBeAfter.js +0 -34
  703. package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -109
  704. package/dist/utils/Validate/additional/mustBeBefore.js +0 -34
  705. package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -77
  706. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +0 -57
  707. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +0 -128
  708. package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -22
  709. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -57
  710. package/dist/utils/Validate/additional/mustBeInTheFuture.js +0 -33
  711. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -32
  712. package/dist/utils/Validate/additional/mustBeInThePast.js +0 -36
  713. package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -32
  714. package/dist/utils/Validate/additional/mustBeLessThan.js +0 -22
  715. package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -53
  716. package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -23
  717. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -49
  718. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -24
  719. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -45
  720. package/dist/utils/Validate/additional/mustBeOneOf.js +0 -22
  721. package/dist/utils/Validate/additional/mustBeOneOf.test.js +0 -37
  722. package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -23
  723. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -49
  724. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +0 -40
  725. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +0 -163
  726. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -26
  727. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +0 -37
  728. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -19
  729. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -37
  730. package/dist/utils/Validate/additional/mustNotContainSql.js +0 -19
  731. package/dist/utils/Validate/additional/mustNotContainSql.test.js +0 -33
  732. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -29
  733. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +0 -55
  734. package/dist/utils/Validate/additional/utils.js +0 -35
  735. package/dist/utils/Validate/index.js +0 -33
  736. package/dist/utils/Validate/validateCollection.js +0 -50
  737. package/dist/utils/Validate/validateCollection.test.js +0 -134
  738. package/dist/utils/Validate/validateComponent.js +0 -126
  739. package/dist/utils/Validate/validateComponent.test.js +0 -435
  740. package/dist/utils/Validate/validateContainer.js +0 -52
  741. package/dist/utils/Validate/validateContainer.test.js +0 -115
  742. package/dist/utils/Validate/validateDate.js +0 -112
  743. package/dist/utils/Validate/validateDate.test.js +0 -133
  744. package/dist/utils/Validate/validateEmail.js +0 -45
  745. package/dist/utils/Validate/validateEmail.test.js +0 -78
  746. package/dist/utils/Validate/validateMultifile.js +0 -29
  747. package/dist/utils/Validate/validateMultifile.test.js +0 -46
  748. package/dist/utils/Validate/validateOnPageLoad.js +0 -24
  749. package/dist/utils/Validate/validateOnPageLoad.test.js +0 -89
  750. package/dist/utils/Validate/validatePage.js +0 -56
  751. package/dist/utils/Validate/validatePage.test.js +0 -795
  752. package/dist/utils/Validate/validateRegex.js +0 -41
  753. package/dist/utils/Validate/validateRegex.test.js +0 -43
  754. package/dist/utils/Validate/validateRequired.js +0 -37
  755. package/dist/utils/Validate/validateRequired.test.js +0 -64
  756. package/dist/utils/Validate/validateTextArea.js +0 -36
  757. package/dist/utils/Validate/validateTextArea.test.js +0 -71
  758. package/dist/utils/Validate/validateTime.js +0 -76
  759. package/dist/utils/Validate/validateTime.test.js +0 -116
  760. package/dist/utils/canOverrideFieldRequired.js +0 -23
  761. package/dist/utils/index.js +0 -42
@@ -1,436 +0,0 @@
1
- "use strict";
2
-
3
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
4
- var _react = _interopRequireDefault(require("react"));
5
- var _setupTests = require("../../setupTests");
6
- var _FormComponent = _interopRequireDefault(require("./FormComponent"));
7
- var _models = require("../../models");
8
- var _jsxRuntime = require("react/jsx-runtime");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- // Global imports
11
-
12
- // Local imports
13
-
14
- describe('components', () => {
15
- describe('FormComponent', () => {
16
- it('should render a text component appropriately', async () => {
17
- const ID = 'component';
18
- const VALUE = 'Text value';
19
- const COMPONENT = {
20
- id: ID,
21
- fieldId: ID,
22
- type: 'text',
23
- label: 'Text component',
24
- hint: 'Text hint'
25
- };
26
- const ON_CHANGE = () => {};
27
- const {
28
- container
29
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
30
- "data-testid": ID,
31
- component: COMPONENT,
32
- value: VALUE,
33
- onChange: ON_CHANGE
34
- }));
35
-
36
- // text components are wrapper in a FormGroup by default.
37
- const formGroup = container.childNodes[0];
38
- expect(formGroup.tagName).toEqual('DIV');
39
- expect(formGroup.classList).toContain('govuk-form-group');
40
- const label = formGroup.childNodes[0];
41
- expect(label.tagName).toEqual('LABEL');
42
- expect(label.classList).toContain('govuk-label');
43
- expect(label.textContent).toEqual("".concat(COMPONENT.label, " (optional)"));
44
- expect(label.getAttribute('for')).toEqual(ID);
45
- const hint = formGroup.childNodes[1];
46
- expect(hint.tagName).toEqual('DIV');
47
- expect(hint.classList).toContain('govuk-hint');
48
- expect(hint.textContent).toEqual(COMPONENT.hint);
49
- const input = formGroup.childNodes[2];
50
- expect(input.tagName).toEqual('INPUT');
51
- expect(input.classList).toContain('govuk-input');
52
- expect(input.id).toEqual(ID);
53
- expect(input.value).toEqual(VALUE);
54
- });
55
- it('should render a text component appropriately with wrap turned off', async () => {
56
- const ID = 'component';
57
- const VALUE = 'Text value';
58
- const COMPONENT = {
59
- id: ID,
60
- fieldId: ID,
61
- type: 'text',
62
- label: 'Text component',
63
- hint: 'Text hint'
64
- };
65
- const ON_CHANGE = () => {};
66
- const {
67
- container
68
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
69
- "data-testid": ID,
70
- component: COMPONENT,
71
- wrap: false,
72
- value: VALUE,
73
- onChange: ON_CHANGE
74
- }));
75
-
76
- // With wrap = false, there should be no form group.
77
- const input = container.childNodes[0];
78
- expect(input.tagName).toEqual('INPUT');
79
- expect(input.classList).toContain('govuk-input');
80
- expect(input.id).toEqual(ID);
81
- expect(input.value).toEqual(VALUE);
82
- });
83
- it('should render an html component appropriately', async () => {
84
- const ID = 'component';
85
- const COMPONENT = {
86
- type: 'html',
87
- tagName: 'p',
88
- content: 'HTML content'
89
- };
90
- const {
91
- container
92
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
93
- "data-testid": ID,
94
- component: COMPONENT
95
- }));
96
- const p = container.childNodes[0];
97
- expect(p.tagName).toEqual('P');
98
- expect(p.textContent).toEqual(COMPONENT.content);
99
- });
100
- it('should render an overridden html component appropriately', async () => {
101
- const hooks = {
102
- onGetComponent: (config, wrap) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
103
- children: "".concat(config.type, " | ").concat(config.tagName, " | ").concat(config.content, " | ").concat(wrap)
104
- })
105
- };
106
- const ID = 'component';
107
- const COMPONENT = {
108
- type: 'html',
109
- tagName: 'p',
110
- content: 'HTML content'
111
- };
112
- const {
113
- container
114
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
115
- "data-testid": ID,
116
- component: COMPONENT
117
- }), {
118
- hooks
119
- });
120
- const div = container.childNodes[0];
121
- expect(div.tagName).toEqual('DIV');
122
- expect(div.textContent).toEqual("".concat(COMPONENT.type, " | ").concat(COMPONENT.tagName, " | ").concat(COMPONENT.content, " | true"));
123
- });
124
- it('should render an overridden html component appropriately and pass through onAction', async () => {
125
- const hooks = {
126
- onGetComponent: (config, wrap) => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
- children: "".concat(config.type, " | ").concat(config.tagName, " | ").concat(config.content, " | ").concat(wrap, " | ").concat(config.onAction)
128
- })
129
- };
130
- const ID = 'component';
131
- const COMPONENT = {
132
- type: 'html',
133
- tagName: 'p',
134
- content: 'HTML content'
135
- };
136
- const {
137
- container
138
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
139
- "data-testid": ID,
140
- component: COMPONENT,
141
- onAction: "() => {}"
142
- }), {
143
- hooks
144
- });
145
- const div = container.childNodes[0];
146
- expect(div.tagName).toEqual('DIV');
147
- expect(div.textContent).toEqual("".concat(COMPONENT.type, " | ").concat(COMPONENT.tagName, " | ").concat(COMPONENT.content, " | true | () => {}"));
148
- });
149
- it('should render the correct html component when the override returns null', async () => {
150
- const hooks = {
151
- onGetComponent: () => null
152
- };
153
- const ID = 'component';
154
- const COMPONENT = {
155
- type: 'html',
156
- tagName: 'p',
157
- content: 'HTML content'
158
- };
159
- const {
160
- container
161
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
162
- "data-testid": ID,
163
- component: COMPONENT
164
- }), {
165
- hooks
166
- });
167
- const p = container.childNodes[0];
168
- expect(p.tagName).toEqual('P');
169
- expect(p.textContent).toEqual(COMPONENT.content);
170
- });
171
- it('should render a text component appropriately with interpolated label', async () => {
172
- const ID = 'component';
173
- const VALUE = 'Text value';
174
- // eslint-disable-next-line no-template-curly-in-string
175
- const COMPONENT = {
176
- id: ID,
177
- fieldId: ID,
178
- type: 'text',
179
- label: '${text} Text component',
180
- cya_label: '${text} Text component',
181
- hint: 'Text hint'
182
- };
183
- const DATA = {
184
- text: 'Interpolated'
185
- };
186
- const ON_CHANGE = () => {};
187
- const {
188
- container
189
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
190
- "data-testid": ID,
191
- component: COMPONENT,
192
- value: VALUE,
193
- onChange: ON_CHANGE,
194
- formData: DATA
195
- }));
196
-
197
- // text components are wrapper in a FormGroup by default.
198
- const formGroup = container.childNodes[0];
199
- expect(formGroup.tagName).toEqual('DIV');
200
- expect(formGroup.classList).toContain('govuk-form-group');
201
- const label = formGroup.childNodes[0];
202
- expect(label.tagName).toEqual('LABEL');
203
- expect(label.classList).toContain('govuk-label');
204
- expect(label.textContent).toEqual('Interpolated Text component (optional)');
205
- expect(label.getAttribute('for')).toEqual(ID);
206
- const hint = formGroup.childNodes[1];
207
- expect(hint.tagName).toEqual('DIV');
208
- expect(hint.classList).toContain('govuk-hint');
209
- expect(hint.textContent).toEqual(COMPONENT.hint);
210
- const input = formGroup.childNodes[2];
211
- expect(input.tagName).toEqual('INPUT');
212
- expect(input.classList).toContain('govuk-input');
213
- expect(input.id).toEqual(ID);
214
- expect(input.value).toEqual(VALUE);
215
- });
216
- it('should correctly handle a component\'s default value when it has no existing value', async () => {
217
- const ID = 'component';
218
- const COMPONENT = {
219
- id: ID,
220
- fieldId: ID,
221
- type: 'text',
222
- label: 'Text component',
223
- defaultValue: 'default text'
224
- };
225
- const DATA = {};
226
- const ON_CHANGE_ARGS = [];
227
- let ON_CHANGE_COUNT = 0;
228
- const ON_CHANGE = _ref => {
229
- let {
230
- target
231
- } = _ref;
232
- ON_CHANGE_ARGS.push(target);
233
- ON_CHANGE_COUNT += 1;
234
- DATA[target.name] = target.value;
235
- };
236
- const {
237
- container,
238
- rerender
239
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
240
- "data-testid": ID,
241
- component: COMPONENT,
242
- value: DATA[ID],
243
- onChange: ON_CHANGE,
244
- formData: DATA
245
- }));
246
- expect(ON_CHANGE_COUNT).toEqual(1);
247
- expect(ON_CHANGE_ARGS[0]).toMatchObject({
248
- name: 'component',
249
- value: COMPONENT.defaultValue
250
- });
251
- const formGroup = container.childNodes[0];
252
- const input = formGroup.childNodes[2];
253
- (0, _setupTests.rerenderWithValidation)(rerender, /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
254
- "data-testid": ID,
255
- component: COMPONENT,
256
- value: DATA[ID],
257
- onChange: ON_CHANGE,
258
- formData: DATA
259
- }));
260
- // Input should only be updated once the changes caused
261
- // by onChange have had another render to propagate down.
262
- expect(input.value).toEqual(COMPONENT.defaultValue);
263
- });
264
- it('should correctly handle a component\'s default value when it has an existing value', async () => {
265
- const ID = 'component';
266
- const COMPONENT = {
267
- id: ID,
268
- fieldId: ID,
269
- type: 'text',
270
- label: 'Text component',
271
- defaultValue: 'default text'
272
- };
273
- const DATA = {
274
- component: 'existing value'
275
- };
276
- const ON_CHANGE_ARGS = [];
277
- let ON_CHANGE_COUNT = 0;
278
- const ON_CHANGE = _ref2 => {
279
- let {
280
- target
281
- } = _ref2;
282
- ON_CHANGE_ARGS.push(target);
283
- ON_CHANGE_COUNT += 1;
284
- };
285
- const {
286
- container
287
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
288
- "data-testid": ID,
289
- component: COMPONENT,
290
- value: DATA[ID],
291
- onChange: ON_CHANGE,
292
- formData: DATA
293
- }));
294
- expect(ON_CHANGE_COUNT).toEqual(0);
295
- const formGroup = container.childNodes[0];
296
- const input = formGroup.childNodes[2];
297
- expect(input.value).toEqual(DATA[ID]);
298
- });
299
- it('should correctly handle a nested file input on change event within a nested container', async () => {
300
- const ID = 'component';
301
- const NESTED_CONTAINER_ID = 'nested-container-component';
302
- const NESTED_ID = 'nested-component';
303
- const COMPONENT = {
304
- id: ID,
305
- fieldId: ID,
306
- type: _models.ComponentTypes.CHECKBOXES,
307
- label: 'Checkboxes component',
308
- data: {
309
- options: [{
310
- value: 'EPSILON',
311
- label: 'Epsilon Label'
312
- }, {
313
- value: 'GAMMA',
314
- label: 'Gamma Label',
315
- nested: [{
316
- id: NESTED_CONTAINER_ID,
317
- fieldId: NESTED_CONTAINER_ID,
318
- type: _models.ComponentTypes.CONTAINER,
319
- components: [{
320
- id: NESTED_ID,
321
- fieldId: NESTED_ID,
322
- label: 'File upload',
323
- type: _models.ComponentTypes.FILE
324
- }]
325
- }]
326
- }]
327
- }
328
- };
329
- const DATA = {
330
- component: 'GAMMA'
331
- };
332
- const ON_CHANGE_ARGS = [];
333
- let ON_CHANGE_COUNT = 0;
334
- const ON_CHANGE = _ref3 => {
335
- let {
336
- target
337
- } = _ref3;
338
- ON_CHANGE_ARGS.push(target);
339
- ON_CHANGE_COUNT += 1;
340
- };
341
- const {
342
- container
343
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
344
- "data-testid": ID,
345
- component: COMPONENT,
346
- value: DATA[ID],
347
- onChange: ON_CHANGE,
348
- formData: DATA
349
- }));
350
-
351
- // Get hold of the file input.
352
- const c = container.childNodes[0];
353
- const formGroup = c.childNodes[0];
354
- const fieldSet = formGroup.childNodes[2];
355
- const input = fieldSet.childNodes[2].childNodes[0].childNodes[0].childNodes[2].childNodes[0];
356
- const FILE_EXTENSION = 'json';
357
- const FILE_NAME = "test.".concat(FILE_EXTENSION);
358
- const FILE_TYPE = 'application/JSON';
359
- const str = JSON.stringify({
360
- alpha: 'bravo'
361
- });
362
- const blob = new Blob([str]);
363
- const FILE = new File([blob], FILE_NAME, {
364
- type: FILE_TYPE
365
- });
366
- _userEvent.default.upload(input, FILE);
367
- expect(ON_CHANGE_COUNT).toEqual(3);
368
- });
369
- it('should render a text component appropriately when wrapped in a formGroups', async () => {
370
- const ID = 'container';
371
- const INNER_COMPONENT_ID = "text";
372
- const VALUE = 'Text value';
373
- const INNER_COMPONENT = {
374
- id: INNER_COMPONENT_ID,
375
- fieldId: INNER_COMPONENT_ID,
376
- type: 'text',
377
- label: 'Text component',
378
- hint: 'Text hint',
379
- value: VALUE
380
- };
381
- const COMPONENT = {
382
- id: ID,
383
- fieldId: ID,
384
- type: 'container',
385
- fieldset: true,
386
- components: [INNER_COMPONENT]
387
- };
388
- const NESTED_VALUE = {
389
- [INNER_COMPONENT_ID]: VALUE
390
- };
391
- const ON_CHANGE = () => {};
392
- const {
393
- container
394
- } = (0, _setupTests.renderWithValidation)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormComponent.default, {
395
- "data-testid": ID,
396
- component: COMPONENT,
397
- value: NESTED_VALUE,
398
- onChange: ON_CHANGE
399
- }));
400
-
401
- // Form group
402
- const formGroup = container.childNodes[0];
403
- expect(formGroup.tagName).toEqual('DIV');
404
- expect(formGroup.classList).toContain('govuk-form-group');
405
- // FieldSet
406
- const fieldSet = formGroup.childNodes[0];
407
- expect(fieldSet.tagName).toEqual('FIELDSET');
408
- expect(fieldSet.classList).toContain('govuk-fieldset');
409
- // Form container
410
- const formContainer = fieldSet.childNodes[0];
411
- expect(formContainer.tagName).toEqual('DIV');
412
- expect(formContainer.classList).toContain('hods-form-container');
413
- // Form group for container
414
- const formGroupForContainer = formContainer.childNodes[0];
415
- expect(formGroupForContainer.tagName).toEqual('DIV');
416
- expect(formGroupForContainer.classList).toContain('govuk-form-group');
417
-
418
- // Nested component.
419
- const label = formGroupForContainer.childNodes[0];
420
- expect(label.tagName).toEqual('LABEL');
421
- expect(label.classList).toContain('govuk-label');
422
- expect(label.textContent).toEqual("".concat(INNER_COMPONENT.label, " (optional)"));
423
- expect(label.getAttribute('for')).toEqual("".concat(ID, ".").concat(INNER_COMPONENT_ID));
424
- const hint = formGroupForContainer.childNodes[1];
425
- expect(hint.tagName).toEqual('DIV');
426
- expect(hint.classList).toContain('govuk-hint');
427
- expect(hint.textContent).toEqual(INNER_COMPONENT.hint);
428
- const input = formGroupForContainer.childNodes[2];
429
- expect(input.tagName).toEqual('INPUT');
430
- expect(input.classList).toContain('govuk-input');
431
- expect(input.id).toEqual("".concat(ID, ".").concat(INNER_COMPONENT_ID));
432
- expect(input.value).toEqual(VALUE);
433
- });
434
- });
435
- });
436
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXNlckV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfc2V0dXBUZXN0cyIsIl9Gb3JtQ29tcG9uZW50IiwiX21vZGVscyIsIl9qc3hSdW50aW1lIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVzY3JpYmUiLCJpdCIsIklEIiwiVkFMVUUiLCJDT01QT05FTlQiLCJpZCIsImZpZWxkSWQiLCJ0eXBlIiwibGFiZWwiLCJoaW50IiwiT05fQ0hBTkdFIiwiY29udGFpbmVyIiwicmVuZGVyV2l0aFZhbGlkYXRpb24iLCJqc3giLCJjb21wb25lbnQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiZm9ybUdyb3VwIiwiY2hpbGROb2RlcyIsImV4cGVjdCIsInRhZ05hbWUiLCJ0b0VxdWFsIiwiY2xhc3NMaXN0IiwidG9Db250YWluIiwidGV4dENvbnRlbnQiLCJjb25jYXQiLCJnZXRBdHRyaWJ1dGUiLCJpbnB1dCIsIndyYXAiLCJjb250ZW50IiwicCIsImhvb2tzIiwib25HZXRDb21wb25lbnQiLCJjb25maWciLCJjaGlsZHJlbiIsImRpdiIsIm9uQWN0aW9uIiwiY3lhX2xhYmVsIiwiREFUQSIsInRleHQiLCJmb3JtRGF0YSIsImRlZmF1bHRWYWx1ZSIsIk9OX0NIQU5HRV9BUkdTIiwiT05fQ0hBTkdFX0NPVU5UIiwiX3JlZiIsInRhcmdldCIsInB1c2giLCJuYW1lIiwicmVyZW5kZXIiLCJ0b01hdGNoT2JqZWN0IiwicmVyZW5kZXJXaXRoVmFsaWRhdGlvbiIsIl9yZWYyIiwiTkVTVEVEX0NPTlRBSU5FUl9JRCIsIk5FU1RFRF9JRCIsIkNvbXBvbmVudFR5cGVzIiwiQ0hFQ0tCT1hFUyIsImRhdGEiLCJvcHRpb25zIiwibmVzdGVkIiwiQ09OVEFJTkVSIiwiY29tcG9uZW50cyIsIkZJTEUiLCJfcmVmMyIsImMiLCJmaWVsZFNldCIsIkZJTEVfRVhURU5TSU9OIiwiRklMRV9OQU1FIiwiRklMRV9UWVBFIiwic3RyIiwiSlNPTiIsInN0cmluZ2lmeSIsImFscGhhIiwiYmxvYiIsIkJsb2IiLCJGaWxlIiwidXNlciIsInVwbG9hZCIsIklOTkVSX0NPTVBPTkVOVF9JRCIsIklOTkVSX0NPTVBPTkVOVCIsImZpZWxkc2V0IiwiTkVTVEVEX1ZBTFVFIiwiZm9ybUNvbnRhaW5lciIsImZvcm1Hcm91cEZvckNvbnRhaW5lciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm1Db21wb25lbnQvRm9ybUNvbXBvbmVudC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEdsb2JhbCBpbXBvcnRzXG5pbXBvcnQgdXNlciBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3VzZXItZXZlbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLy8gTG9jYWwgaW1wb3J0c1xuaW1wb3J0IHsgcmVuZGVyV2l0aFZhbGlkYXRpb24sIHJlcmVuZGVyV2l0aFZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9zZXR1cFRlc3RzJztcbmltcG9ydCBGb3JtQ29tcG9uZW50IGZyb20gJy4vRm9ybUNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmRlc2NyaWJlKCdjb21wb25lbnRzJywgKCkgPT4ge1xuXG4gIGRlc2NyaWJlKCdGb3JtQ29tcG9uZW50JywgKCkgPT4ge1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgYSB0ZXh0IGNvbXBvbmVudCBhcHByb3ByaWF0ZWx5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgSUQgPSAnY29tcG9uZW50JztcbiAgICAgIGNvbnN0IFZBTFVFID0gJ1RleHQgdmFsdWUnO1xuICAgICAgY29uc3QgQ09NUE9ORU5UID0geyBpZDogSUQsIGZpZWxkSWQ6IElELCB0eXBlOiAndGV4dCcsIGxhYmVsOiAnVGV4dCBjb21wb25lbnQnLCBoaW50OiAnVGV4dCBoaW50JyB9O1xuICAgICAgY29uc3QgT05fQ0hBTkdFID0gKCkgPT4ge307XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyV2l0aFZhbGlkYXRpb24oXG4gICAgICAgIDxGb3JtQ29tcG9uZW50IGRhdGEtdGVzdGlkPXtJRH0gY29tcG9uZW50PXtDT01QT05FTlR9IHZhbHVlPXtWQUxVRX0gb25DaGFuZ2U9e09OX0NIQU5HRX0gLz5cbiAgICAgICk7XG5cbiAgICAgIC8vIHRleHQgY29tcG9uZW50cyBhcmUgd3JhcHBlciBpbiBhIEZvcm1Hcm91cCBieSBkZWZhdWx0LlxuICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QoZm9ybUdyb3VwLnRhZ05hbWUpLnRvRXF1YWwoJ0RJVicpO1xuICAgICAgZXhwZWN0KGZvcm1Hcm91cC5jbGFzc0xpc3QpLnRvQ29udGFpbignZ292dWstZm9ybS1ncm91cCcpO1xuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtR3JvdXAuY2hpbGROb2Rlc1swXTtcbiAgICAgIGV4cGVjdChsYWJlbC50YWdOYW1lKS50b0VxdWFsKCdMQUJFTCcpO1xuICAgICAgZXhwZWN0KGxhYmVsLmNsYXNzTGlzdCkudG9Db250YWluKCdnb3Z1ay1sYWJlbCcpO1xuICAgICAgZXhwZWN0KGxhYmVsLnRleHRDb250ZW50KS50b0VxdWFsKGAke0NPTVBPTkVOVC5sYWJlbH0gKG9wdGlvbmFsKWApO1xuICAgICAgZXhwZWN0KGxhYmVsLmdldEF0dHJpYnV0ZSgnZm9yJykpLnRvRXF1YWwoSUQpO1xuICAgICAgY29uc3QgaGludCA9IGZvcm1Hcm91cC5jaGlsZE5vZGVzWzFdO1xuICAgICAgZXhwZWN0KGhpbnQudGFnTmFtZSkudG9FcXVhbCgnRElWJyk7XG4gICAgICBleHBlY3QoaGludC5jbGFzc0xpc3QpLnRvQ29udGFpbignZ292dWstaGludCcpO1xuICAgICAgZXhwZWN0KGhpbnQudGV4dENvbnRlbnQpLnRvRXF1YWwoQ09NUE9ORU5ULmhpbnQpO1xuICAgICAgY29uc3QgaW5wdXQgPSBmb3JtR3JvdXAuY2hpbGROb2Rlc1syXTtcbiAgICAgIGV4cGVjdChpbnB1dC50YWdOYW1lKS50b0VxdWFsKCdJTlBVVCcpO1xuICAgICAgZXhwZWN0KGlucHV0LmNsYXNzTGlzdCkudG9Db250YWluKCdnb3Z1ay1pbnB1dCcpO1xuICAgICAgZXhwZWN0KGlucHV0LmlkKS50b0VxdWFsKElEKTtcbiAgICAgIGV4cGVjdChpbnB1dC52YWx1ZSkudG9FcXVhbChWQUxVRSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciBhIHRleHQgY29tcG9uZW50IGFwcHJvcHJpYXRlbHkgd2l0aCB3cmFwIHR1cm5lZCBvZmYnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBJRCA9ICdjb21wb25lbnQnO1xuICAgICAgY29uc3QgVkFMVUUgPSAnVGV4dCB2YWx1ZSc7XG4gICAgICBjb25zdCBDT01QT05FTlQgPSB7IGlkOiBJRCwgZmllbGRJZDogSUQsIHR5cGU6ICd0ZXh0JywgbGFiZWw6ICdUZXh0IGNvbXBvbmVudCcsIGhpbnQ6ICdUZXh0IGhpbnQnIH07XG4gICAgICBjb25zdCBPTl9DSEFOR0UgPSAoKSA9PiB7fTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgPEZvcm1Db21wb25lbnQgZGF0YS10ZXN0aWQ9e0lEfSBjb21wb25lbnQ9e0NPTVBPTkVOVH0gd3JhcD17ZmFsc2V9IHZhbHVlPXtWQUxVRX0gb25DaGFuZ2U9e09OX0NIQU5HRX0gLz5cbiAgICAgICk7XG5cbiAgICAgIC8vIFdpdGggd3JhcCA9IGZhbHNlLCB0aGVyZSBzaG91bGQgYmUgbm8gZm9ybSBncm91cC5cbiAgICAgIGNvbnN0IGlucHV0ID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QoaW5wdXQudGFnTmFtZSkudG9FcXVhbCgnSU5QVVQnKTtcbiAgICAgIGV4cGVjdChpbnB1dC5jbGFzc0xpc3QpLnRvQ29udGFpbignZ292dWstaW5wdXQnKTtcbiAgICAgIGV4cGVjdChpbnB1dC5pZCkudG9FcXVhbChJRCk7XG4gICAgICBleHBlY3QoaW5wdXQudmFsdWUpLnRvRXF1YWwoVkFMVUUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgYW4gaHRtbCBjb21wb25lbnQgYXBwcm9wcmlhdGVseScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IElEID0gJ2NvbXBvbmVudCc7XG4gICAgICBjb25zdCBDT01QT05FTlQgPSB7IHR5cGU6ICdodG1sJywgdGFnTmFtZTogJ3AnLCBjb250ZW50OiAnSFRNTCBjb250ZW50JyB9O1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcldpdGhWYWxpZGF0aW9uKFxuICAgICAgICA8Rm9ybUNvbXBvbmVudCBkYXRhLXRlc3RpZD17SUR9IGNvbXBvbmVudD17Q09NUE9ORU5UfSAvPlxuICAgICAgKTtcbiAgICAgIGNvbnN0IHAgPSBjb250YWluZXIuY2hpbGROb2Rlc1swXTtcbiAgICAgIGV4cGVjdChwLnRhZ05hbWUpLnRvRXF1YWwoJ1AnKTtcbiAgICAgIGV4cGVjdChwLnRleHRDb250ZW50KS50b0VxdWFsKENPTVBPTkVOVC5jb250ZW50KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIGFuIG92ZXJyaWRkZW4gaHRtbCBjb21wb25lbnQgYXBwcm9wcmlhdGVseScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGhvb2tzID0ge1xuICAgICAgICBvbkdldENvbXBvbmVudDogKGNvbmZpZywgd3JhcCkgPT4gXG4gICAgICAgICAgPGRpdj57YCR7Y29uZmlnLnR5cGV9IHwgJHtjb25maWcudGFnTmFtZX0gfCAke2NvbmZpZy5jb250ZW50fSB8ICR7d3JhcH1gfTwvZGl2PlxuICAgICAgfTtcbiAgICAgIGNvbnN0IElEID0gJ2NvbXBvbmVudCc7XG4gICAgICBjb25zdCBDT01QT05FTlQgPSB7IHR5cGU6ICdodG1sJywgdGFnTmFtZTogJ3AnLCBjb250ZW50OiAnSFRNTCBjb250ZW50JyB9O1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcldpdGhWYWxpZGF0aW9uKFxuICAgICAgICA8Rm9ybUNvbXBvbmVudCBkYXRhLXRlc3RpZD17SUR9IGNvbXBvbmVudD17Q09NUE9ORU5UfSAvPlxuICAgICAgLCB7IGhvb2tzIH0pO1xuICAgICAgY29uc3QgZGl2ID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QoZGl2LnRhZ05hbWUpLnRvRXF1YWwoJ0RJVicpO1xuICAgICAgZXhwZWN0KGRpdi50ZXh0Q29udGVudCkudG9FcXVhbChgJHtDT01QT05FTlQudHlwZX0gfCAke0NPTVBPTkVOVC50YWdOYW1lfSB8ICR7Q09NUE9ORU5ULmNvbnRlbnR9IHwgdHJ1ZWApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgYW4gb3ZlcnJpZGRlbiBodG1sIGNvbXBvbmVudCBhcHByb3ByaWF0ZWx5IGFuZCBwYXNzIHRocm91Z2ggb25BY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBob29rcyA9IHtcbiAgICAgICAgb25HZXRDb21wb25lbnQ6IChjb25maWcsIHdyYXApID0+IChcbiAgICAgICAgICA8ZGl2PntgJHtjb25maWcudHlwZX0gfCAke2NvbmZpZy50YWdOYW1lfSB8ICR7Y29uZmlnLmNvbnRlbnR9IHwgJHt3cmFwfSB8ICR7Y29uZmlnLm9uQWN0aW9ufWB9PC9kaXY+XG4gICAgICAgICksXG4gICAgICB9O1xuICAgICAgY29uc3QgSUQgPSAnY29tcG9uZW50JztcbiAgICAgIGNvbnN0IENPTVBPTkVOVCA9IHsgdHlwZTogJ2h0bWwnLCB0YWdOYW1lOiAncCcsIGNvbnRlbnQ6ICdIVE1MIGNvbnRlbnQnIH07XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyV2l0aFZhbGlkYXRpb24oXG4gICAgICAgIDxGb3JtQ29tcG9uZW50IGRhdGEtdGVzdGlkPXtJRH0gY29tcG9uZW50PXtDT01QT05FTlR9IG9uQWN0aW9uPScoKSA9PiB7fScvPlxuICAgICAgLCB7IGhvb2tzIH0pO1xuICAgICAgY29uc3QgZGl2ID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QoZGl2LnRhZ05hbWUpLnRvRXF1YWwoJ0RJVicpO1xuICAgICAgZXhwZWN0KGRpdi50ZXh0Q29udGVudCkudG9FcXVhbChgJHtDT01QT05FTlQudHlwZX0gfCAke0NPTVBPTkVOVC50YWdOYW1lfSB8ICR7Q09NUE9ORU5ULmNvbnRlbnR9IHwgdHJ1ZSB8ICgpID0+IHt9YCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciB0aGUgY29ycmVjdCBodG1sIGNvbXBvbmVudCB3aGVuIHRoZSBvdmVycmlkZSByZXR1cm5zIG51bGwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBob29rcyA9IHtcbiAgICAgICAgb25HZXRDb21wb25lbnQ6ICgpID0+IFxuICAgICAgICAgIG51bGxcbiAgICAgIH07XG4gICAgICBjb25zdCBJRCA9ICdjb21wb25lbnQnO1xuICAgICAgY29uc3QgQ09NUE9ORU5UID0geyB0eXBlOiAnaHRtbCcsIHRhZ05hbWU6ICdwJywgY29udGVudDogJ0hUTUwgY29udGVudCcgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgPEZvcm1Db21wb25lbnQgZGF0YS10ZXN0aWQ9e0lEfSBjb21wb25lbnQ9e0NPTVBPTkVOVH0gLz5cbiAgICAgICwgeyBob29rcyB9KTtcbiAgICAgIGNvbnN0IHAgPSBjb250YWluZXIuY2hpbGROb2Rlc1swXTtcbiAgICAgIGV4cGVjdChwLnRhZ05hbWUpLnRvRXF1YWwoJ1AnKTtcbiAgICAgIGV4cGVjdChwLnRleHRDb250ZW50KS50b0VxdWFsKENPTVBPTkVOVC5jb250ZW50KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIGEgdGV4dCBjb21wb25lbnQgYXBwcm9wcmlhdGVseSB3aXRoIGludGVycG9sYXRlZCBsYWJlbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IElEID0gJ2NvbXBvbmVudCc7XG4gICAgICBjb25zdCBWQUxVRSA9ICdUZXh0IHZhbHVlJztcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcbiAgICAgIGNvbnN0IENPTVBPTkVOVCA9IHsgaWQ6IElELCBmaWVsZElkOiBJRCwgdHlwZTogJ3RleHQnLCBsYWJlbDogJyR7dGV4dH0gVGV4dCBjb21wb25lbnQnLCBjeWFfbGFiZWw6ICcke3RleHR9IFRleHQgY29tcG9uZW50JywgaGludDogJ1RleHQgaGludCcgfTtcbiAgICAgIGNvbnN0IERBVEEgPSB7IHRleHQ6ICdJbnRlcnBvbGF0ZWQnfVxuICAgICAgY29uc3QgT05fQ0hBTkdFID0gKCkgPT4ge307XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyV2l0aFZhbGlkYXRpb24oXG4gICAgICAgIDxGb3JtQ29tcG9uZW50IGRhdGEtdGVzdGlkPXtJRH0gY29tcG9uZW50PXtDT01QT05FTlR9IHZhbHVlPXtWQUxVRX0gb25DaGFuZ2U9e09OX0NIQU5HRX0gZm9ybURhdGE9e0RBVEF9IC8+XG4gICAgICApO1xuXG4gICAgICAvLyB0ZXh0IGNvbXBvbmVudHMgYXJlIHdyYXBwZXIgaW4gYSBGb3JtR3JvdXAgYnkgZGVmYXVsdC5cbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRhaW5lci5jaGlsZE5vZGVzWzBdO1xuICAgICAgZXhwZWN0KGZvcm1Hcm91cC50YWdOYW1lKS50b0VxdWFsKCdESVYnKTtcbiAgICAgIGV4cGVjdChmb3JtR3JvdXAuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWZvcm0tZ3JvdXAnKTtcbiAgICAgIGNvbnN0IGxhYmVsID0gZm9ybUdyb3VwLmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QobGFiZWwudGFnTmFtZSkudG9FcXVhbCgnTEFCRUwnKTtcbiAgICAgIGV4cGVjdChsYWJlbC5jbGFzc0xpc3QpLnRvQ29udGFpbignZ292dWstbGFiZWwnKTtcbiAgICAgIGV4cGVjdChsYWJlbC50ZXh0Q29udGVudCkudG9FcXVhbCgnSW50ZXJwb2xhdGVkIFRleHQgY29tcG9uZW50IChvcHRpb25hbCknKTtcbiAgICAgIGV4cGVjdChsYWJlbC5nZXRBdHRyaWJ1dGUoJ2ZvcicpKS50b0VxdWFsKElEKTtcbiAgICAgIGNvbnN0IGhpbnQgPSBmb3JtR3JvdXAuY2hpbGROb2Rlc1sxXTtcbiAgICAgIGV4cGVjdChoaW50LnRhZ05hbWUpLnRvRXF1YWwoJ0RJVicpO1xuICAgICAgZXhwZWN0KGhpbnQuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWhpbnQnKTtcbiAgICAgIGV4cGVjdChoaW50LnRleHRDb250ZW50KS50b0VxdWFsKENPTVBPTkVOVC5oaW50KTtcbiAgICAgIGNvbnN0IGlucHV0ID0gZm9ybUdyb3VwLmNoaWxkTm9kZXNbMl07XG4gICAgICBleHBlY3QoaW5wdXQudGFnTmFtZSkudG9FcXVhbCgnSU5QVVQnKTtcbiAgICAgIGV4cGVjdChpbnB1dC5jbGFzc0xpc3QpLnRvQ29udGFpbignZ292dWstaW5wdXQnKTtcbiAgICAgIGV4cGVjdChpbnB1dC5pZCkudG9FcXVhbChJRCk7XG4gICAgICBleHBlY3QoaW5wdXQudmFsdWUpLnRvRXF1YWwoVkFMVUUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIGEgY29tcG9uZW50XFwncyBkZWZhdWx0IHZhbHVlIHdoZW4gaXQgaGFzIG5vIGV4aXN0aW5nIHZhbHVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgSUQgPSAnY29tcG9uZW50JztcbiAgICAgIGNvbnN0IENPTVBPTkVOVCA9IHsgXG4gICAgICAgIGlkOiBJRCwgXG4gICAgICAgIGZpZWxkSWQ6IElELCBcbiAgICAgICAgdHlwZTogJ3RleHQnLCBcbiAgICAgICAgbGFiZWw6ICdUZXh0IGNvbXBvbmVudCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ2RlZmF1bHQgdGV4dCcgXG4gICAgICB9O1xuICAgICAgY29uc3QgREFUQSA9IHt9O1xuICAgICAgY29uc3QgT05fQ0hBTkdFX0FSR1MgPSBbXTtcbiAgICAgIGxldCBPTl9DSEFOR0VfQ09VTlQgPSAwO1xuICAgICAgY29uc3QgT05fQ0hBTkdFID0gKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgT05fQ0hBTkdFX0FSR1MucHVzaCh0YXJnZXQpO1xuICAgICAgICBPTl9DSEFOR0VfQ09VTlQgKz0gMTtcbiAgICAgICAgREFUQVt0YXJnZXQubmFtZV0gPSB0YXJnZXQudmFsdWU7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7IGNvbnRhaW5lciwgcmVyZW5kZXIgfSA9IHJlbmRlcldpdGhWYWxpZGF0aW9uKFxuICAgICAgICA8Rm9ybUNvbXBvbmVudCBkYXRhLXRlc3RpZD17SUR9IGNvbXBvbmVudD17Q09NUE9ORU5UfSB2YWx1ZT17REFUQVtJRF19IG9uQ2hhbmdlPXtPTl9DSEFOR0V9IGZvcm1EYXRhPXtEQVRBfSAvPlxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KE9OX0NIQU5HRV9DT1VOVCkudG9FcXVhbCgxKTtcbiAgICAgIGV4cGVjdChPTl9DSEFOR0VfQVJHU1swXSkudG9NYXRjaE9iamVjdCh7XG4gICAgICAgIG5hbWU6ICdjb21wb25lbnQnLFxuICAgICAgICB2YWx1ZTogQ09NUE9ORU5ULmRlZmF1bHRWYWx1ZVxuICAgIH0pO1xuICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBjb25zdCBpbnB1dCA9IGZvcm1Hcm91cC5jaGlsZE5vZGVzWzJdO1xuICAgICAgcmVyZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgcmVyZW5kZXIsXG4gICAgICAgIDxGb3JtQ29tcG9uZW50IGRhdGEtdGVzdGlkPXtJRH0gY29tcG9uZW50PXtDT01QT05FTlR9IHZhbHVlPXtEQVRBW0lEXX0gb25DaGFuZ2U9e09OX0NIQU5HRX0gZm9ybURhdGE9e0RBVEF9IC8+XG4gICAgICApO1xuICAgICAgLy8gSW5wdXQgc2hvdWxkIG9ubHkgYmUgdXBkYXRlZCBvbmNlIHRoZSBjaGFuZ2VzIGNhdXNlZFxuICAgICAgLy8gYnkgb25DaGFuZ2UgaGF2ZSBoYWQgYW5vdGhlciByZW5kZXIgdG8gcHJvcGFnYXRlIGRvd24uXG4gICAgICBleHBlY3QoaW5wdXQudmFsdWUpLnRvRXF1YWwoQ09NUE9ORU5ULmRlZmF1bHRWYWx1ZSk7XG5cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSBhIGNvbXBvbmVudFxcJ3MgZGVmYXVsdCB2YWx1ZSB3aGVuIGl0IGhhcyBhbiBleGlzdGluZyB2YWx1ZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IElEID0gJ2NvbXBvbmVudCc7XG4gICAgICBjb25zdCBDT01QT05FTlQgPSB7IFxuICAgICAgICBpZDogSUQsIFxuICAgICAgICBmaWVsZElkOiBJRCwgXG4gICAgICAgIHR5cGU6ICd0ZXh0JywgXG4gICAgICAgIGxhYmVsOiAnVGV4dCBjb21wb25lbnQnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdkZWZhdWx0IHRleHQnIFxuICAgICAgfTtcbiAgICAgIGNvbnN0IERBVEEgPSB7IGNvbXBvbmVudDogJ2V4aXN0aW5nIHZhbHVlJyB9O1xuICAgICAgY29uc3QgT05fQ0hBTkdFX0FSR1MgPSBbXTtcbiAgICAgIGxldCBPTl9DSEFOR0VfQ09VTlQgPSAwO1xuICAgICAgY29uc3QgT05fQ0hBTkdFID0gKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgT05fQ0hBTkdFX0FSR1MucHVzaCh0YXJnZXQpO1xuICAgICAgICBPTl9DSEFOR0VfQ09VTlQgKz0gMTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgPEZvcm1Db21wb25lbnQgZGF0YS10ZXN0aWQ9e0lEfSBjb21wb25lbnQ9e0NPTVBPTkVOVH0gdmFsdWU9e0RBVEFbSURdfSBvbkNoYW5nZT17T05fQ0hBTkdFfSBmb3JtRGF0YT17REFUQX0gLz5cbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChPTl9DSEFOR0VfQ09VTlQpLnRvRXF1YWwoMCk7XG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250YWluZXIuY2hpbGROb2Rlc1swXTtcbiAgICAgIGNvbnN0IGlucHV0ID0gZm9ybUdyb3VwLmNoaWxkTm9kZXNbMl07XG4gICAgICBleHBlY3QoaW5wdXQudmFsdWUpLnRvRXF1YWwoREFUQVtJRF0pO1xuXG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUgYSBuZXN0ZWQgZmlsZSBpbnB1dCBvbiBjaGFuZ2UgZXZlbnQgd2l0aGluIGEgbmVzdGVkIGNvbnRhaW5lcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IElEID0gJ2NvbXBvbmVudCc7XG4gICAgICBjb25zdCBORVNURURfQ09OVEFJTkVSX0lEID0gJ25lc3RlZC1jb250YWluZXItY29tcG9uZW50JztcbiAgICAgIGNvbnN0IE5FU1RFRF9JRCA9ICduZXN0ZWQtY29tcG9uZW50JztcbiAgICAgIGNvbnN0IENPTVBPTkVOVCA9IHsgXG4gICAgICAgIGlkOiBJRCwgXG4gICAgICAgIGZpZWxkSWQ6IElELCBcbiAgICAgICAgdHlwZTogQ29tcG9uZW50VHlwZXMuQ0hFQ0tCT1hFUywgXG4gICAgICAgIGxhYmVsOiAnQ2hlY2tib3hlcyBjb21wb25lbnQnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ0VQU0lMT04nLFxuICAgICAgICAgICAgICBsYWJlbDogJ0Vwc2lsb24gTGFiZWwnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ0dBTU1BJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdHYW1tYSBMYWJlbCcsXG4gICAgICAgICAgICAgIG5lc3RlZDogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlkOiBORVNURURfQ09OVEFJTkVSX0lELFxuICAgICAgICAgICAgICAgICAgZmllbGRJZDogTkVTVEVEX0NPTlRBSU5FUl9JRCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IENvbXBvbmVudFR5cGVzLkNPTlRBSU5FUixcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBORVNURURfSUQsXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogTkVTVEVEX0lELFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmlsZSB1cGxvYWQnLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IENvbXBvbmVudFR5cGVzLkZJTEVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IERBVEEgPSB7IGNvbXBvbmVudDogJ0dBTU1BJyB9O1xuICAgICAgY29uc3QgT05fQ0hBTkdFX0FSR1MgPSBbXTtcbiAgICAgIGxldCBPTl9DSEFOR0VfQ09VTlQgPSAwO1xuICAgICAgY29uc3QgT05fQ0hBTkdFID0gKHsgdGFyZ2V0IH0pID0+IHtcbiAgICAgICAgT05fQ0hBTkdFX0FSR1MucHVzaCh0YXJnZXQpO1xuICAgICAgICBPTl9DSEFOR0VfQ09VTlQgKz0gMTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgPEZvcm1Db21wb25lbnQgXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9e0lEfVxuICAgICAgICAgIGNvbXBvbmVudD17Q09NUE9ORU5UfVxuICAgICAgICAgIHZhbHVlPXtEQVRBW0lEXX1cbiAgICAgICAgICBvbkNoYW5nZT17T05fQ0hBTkdFfVxuICAgICAgICAgIGZvcm1EYXRhPXtEQVRBfVxuICAgICAgICAvPlxuICAgICAgKTtcblxuICAgICAgLy8gR2V0IGhvbGQgb2YgdGhlIGZpbGUgaW5wdXQuXG4gICAgICBjb25zdCBjID0gY29udGFpbmVyLmNoaWxkTm9kZXNbMF07XG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBjLmNoaWxkTm9kZXNbMF07XG4gICAgICBjb25zdCBmaWVsZFNldCA9IGZvcm1Hcm91cC5jaGlsZE5vZGVzWzJdO1xuICAgICAgY29uc3QgaW5wdXQgPSBmaWVsZFNldC5jaGlsZE5vZGVzWzJdLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzWzJdLmNoaWxkTm9kZXNbMF07XG5cblxuICAgICAgY29uc3QgRklMRV9FWFRFTlNJT04gPSAnanNvbic7XG4gICAgICBjb25zdCBGSUxFX05BTUUgPSBgdGVzdC4ke0ZJTEVfRVhURU5TSU9OfWA7XG4gICAgICBjb25zdCBGSUxFX1RZUEUgPSAnYXBwbGljYXRpb24vSlNPTic7XG4gICAgICBjb25zdCBzdHIgPSBKU09OLnN0cmluZ2lmeSh7IGFscGhhOiAnYnJhdm8nIH0pO1xuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtzdHJdKTtcbiAgICAgIGNvbnN0IEZJTEUgPSBuZXcgRmlsZShbYmxvYl0sIEZJTEVfTkFNRSwgeyB0eXBlOiBGSUxFX1RZUEUgfSk7XG4gICAgICB1c2VyLnVwbG9hZChpbnB1dCwgRklMRSk7XG5cbiAgICAgIGV4cGVjdChPTl9DSEFOR0VfQ09VTlQpLnRvRXF1YWwoMyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciBhIHRleHQgY29tcG9uZW50IGFwcHJvcHJpYXRlbHkgd2hlbiB3cmFwcGVkIGluIGEgZm9ybUdyb3VwcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IElEID0gJ2NvbnRhaW5lcic7XG4gICAgICBjb25zdCBJTk5FUl9DT01QT05FTlRfSUQgPSBcInRleHRcIlxuICAgICAgY29uc3QgVkFMVUUgPSAnVGV4dCB2YWx1ZSc7XG4gICAgICBjb25zdCBJTk5FUl9DT01QT05FTlQgPSB7XG4gICAgICAgIGlkOiBJTk5FUl9DT01QT05FTlRfSUQsXG4gICAgICAgIGZpZWxkSWQ6IElOTkVSX0NPTVBPTkVOVF9JRCxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICBsYWJlbDogJ1RleHQgY29tcG9uZW50JyxcbiAgICAgICAgaGludDogJ1RleHQgaGludCcsXG4gICAgICAgIHZhbHVlOiBWQUxVRVxuICAgICAgfTtcbiAgICAgIGNvbnN0IENPTVBPTkVOVCA9IHtcbiAgICAgICAgaWQ6IElELFxuICAgICAgICBmaWVsZElkOiBJRCxcbiAgICAgICAgdHlwZTogJ2NvbnRhaW5lcicsXG4gICAgICAgIGZpZWxkc2V0OnRydWUsXG4gICAgICAgIGNvbXBvbmVudHM6W1xuICAgICAgICAgIElOTkVSX0NPTVBPTkVOVFxuICAgICAgICBdXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBORVNURURfVkFMVUUgPSB7XG4gICAgICAgIFtJTk5FUl9DT01QT05FTlRfSURdOiBWQUxVRVxuICAgICAgfVxuXG4gICAgICBjb25zdCBPTl9DSEFOR0UgPSAoKSA9PiB7fTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJXaXRoVmFsaWRhdGlvbihcbiAgICAgICAgPEZvcm1Db21wb25lbnQgZGF0YS10ZXN0aWQ9e0lEfSBjb21wb25lbnQ9e0NPTVBPTkVOVH0gdmFsdWU9e05FU1RFRF9WQUxVRX0gb25DaGFuZ2U9e09OX0NIQU5HRX0gLz5cbiAgICAgICk7XG5cbiAgICAgIC8vIEZvcm0gZ3JvdXBcbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRhaW5lci5jaGlsZE5vZGVzWzBdO1xuICAgICAgZXhwZWN0KGZvcm1Hcm91cC50YWdOYW1lKS50b0VxdWFsKCdESVYnKTtcbiAgICAgIGV4cGVjdChmb3JtR3JvdXAuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWZvcm0tZ3JvdXAnKTtcbiAgICAgIC8vIEZpZWxkU2V0XG4gICAgICBjb25zdCBmaWVsZFNldCA9IGZvcm1Hcm91cC5jaGlsZE5vZGVzWzBdO1xuICAgICAgZXhwZWN0KGZpZWxkU2V0LnRhZ05hbWUpLnRvRXF1YWwoJ0ZJRUxEU0VUJyk7XG4gICAgICBleHBlY3QoZmllbGRTZXQuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWZpZWxkc2V0Jyk7XG4gICAgICAvLyBGb3JtIGNvbnRhaW5lclxuICAgICAgY29uc3QgZm9ybUNvbnRhaW5lciA9IGZpZWxkU2V0LmNoaWxkTm9kZXNbMF07XG4gICAgICBleHBlY3QoZm9ybUNvbnRhaW5lci50YWdOYW1lKS50b0VxdWFsKCdESVYnKTtcbiAgICAgIGV4cGVjdChmb3JtQ29udGFpbmVyLmNsYXNzTGlzdCkudG9Db250YWluKCdob2RzLWZvcm0tY29udGFpbmVyJyk7XG4gICAgICAvLyBGb3JtIGdyb3VwIGZvciBjb250YWluZXJcbiAgICAgIGNvbnN0IGZvcm1Hcm91cEZvckNvbnRhaW5lciA9IGZvcm1Db250YWluZXIuY2hpbGROb2Rlc1swXTtcbiAgICAgIGV4cGVjdChmb3JtR3JvdXBGb3JDb250YWluZXIudGFnTmFtZSkudG9FcXVhbCgnRElWJyk7XG4gICAgICBleHBlY3QoZm9ybUdyb3VwRm9yQ29udGFpbmVyLmNsYXNzTGlzdCkudG9Db250YWluKCdnb3Z1ay1mb3JtLWdyb3VwJyk7XG5cbiAgICAgIC8vIE5lc3RlZCBjb21wb25lbnQuXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cEZvckNvbnRhaW5lci5jaGlsZE5vZGVzWzBdO1xuICAgICAgZXhwZWN0KGxhYmVsLnRhZ05hbWUpLnRvRXF1YWwoJ0xBQkVMJyk7XG4gICAgICBleHBlY3QobGFiZWwuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWxhYmVsJyk7XG4gICAgICBleHBlY3QobGFiZWwudGV4dENvbnRlbnQpLnRvRXF1YWwoYCR7SU5ORVJfQ09NUE9ORU5ULmxhYmVsfSAob3B0aW9uYWwpYCk7XG4gICAgICBleHBlY3QobGFiZWwuZ2V0QXR0cmlidXRlKCdmb3InKSkudG9FcXVhbChgJHtJRH0uJHtJTk5FUl9DT01QT05FTlRfSUR9YCk7XG4gICAgICBjb25zdCBoaW50ID0gZm9ybUdyb3VwRm9yQ29udGFpbmVyLmNoaWxkTm9kZXNbMV07XG4gICAgICBleHBlY3QoaGludC50YWdOYW1lKS50b0VxdWFsKCdESVYnKTtcbiAgICAgIGV4cGVjdChoaW50LmNsYXNzTGlzdCkudG9Db250YWluKCdnb3Z1ay1oaW50Jyk7XG4gICAgICBleHBlY3QoaGludC50ZXh0Q29udGVudCkudG9FcXVhbChJTk5FUl9DT01QT05FTlQuaGludCk7XG4gICAgICBjb25zdCBpbnB1dCA9IGZvcm1Hcm91cEZvckNvbnRhaW5lci5jaGlsZE5vZGVzWzJdO1xuICAgICAgZXhwZWN0KGlucHV0LnRhZ05hbWUpLnRvRXF1YWwoJ0lOUFVUJyk7XG4gICAgICBleHBlY3QoaW5wdXQuY2xhc3NMaXN0KS50b0NvbnRhaW4oJ2dvdnVrLWlucHV0Jyk7XG4gICAgICBleHBlY3QoaW5wdXQuaWQpLnRvRXF1YWwoYCR7SUR9LiR7SU5ORVJfQ09NUE9ORU5UX0lEfWApO1xuICAgICAgZXhwZWN0KGlucHV0LnZhbHVlKS50b0VxdWFsKFZBTFVFKTtcbiAgICB9KTtcbiAgfSk7XG5cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUNBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUE4QyxJQUFB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
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /**
8
- * Adds label to target for given value.
9
- * @param {object} target The target to be updated.
10
- * @returns The updated target.
11
- */
12
- const addLabel = (paramTarget, component, data) => {
13
- var _target$value;
14
- const target = paramTarget;
15
- // target.value can be an object in which case use value in object attribute
16
- const value = typeof target.value === 'object' ? (_target$value = target.value) === null || _target$value === void 0 ? void 0 : _target$value.value : target.value;
17
- // find the reference data item using the value
18
- const item = data.find(e => String(e.id) === value);
19
- // if item is null it means that the target.value can be used as a label otherwise use item.label
20
- target.label = item === undefined ? target.value || '' : item.label;
21
- target.component = component.cya_label;
22
- return target;
23
- };
24
- var _default = exports.default = addLabel;
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZGRMYWJlbCIsInBhcmFtVGFyZ2V0IiwiY29tcG9uZW50IiwiZGF0YSIsIl90YXJnZXQkdmFsdWUiLCJ0YXJnZXQiLCJ2YWx1ZSIsIml0ZW0iLCJmaW5kIiwiZSIsIlN0cmluZyIsImlkIiwibGFiZWwiLCJ1bmRlZmluZWQiLCJjeWFfbGFiZWwiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRm9ybUNvbXBvbmVudC9oZWxwZXJzL2FkZExhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkcyBsYWJlbCB0byB0YXJnZXQgZm9yIGdpdmVuIHZhbHVlLlxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCBUaGUgdGFyZ2V0IHRvIGJlIHVwZGF0ZWQuXG4gKiBAcmV0dXJucyBUaGUgdXBkYXRlZCB0YXJnZXQuXG4gKi9cbmNvbnN0IGFkZExhYmVsID0gKHBhcmFtVGFyZ2V0LCBjb21wb25lbnQsIGRhdGEpID0+IHtcbiAgY29uc3QgdGFyZ2V0ID0gcGFyYW1UYXJnZXQ7XG4gIC8vIHRhcmdldC52YWx1ZSBjYW4gYmUgYW4gb2JqZWN0IGluIHdoaWNoIGNhc2UgdXNlIHZhbHVlIGluIG9iamVjdCBhdHRyaWJ1dGVcbiAgY29uc3QgdmFsdWUgPSAodHlwZW9mICh0YXJnZXQudmFsdWUpID09PSAnb2JqZWN0JykgPyB0YXJnZXQudmFsdWU/LnZhbHVlIDogdGFyZ2V0LnZhbHVlO1xuICAvLyBmaW5kIHRoZSByZWZlcmVuY2UgZGF0YSBpdGVtIHVzaW5nIHRoZSB2YWx1ZVxuICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGUgPT4gU3RyaW5nKGUuaWQpID09PSB2YWx1ZSk7XG4gIC8vIGlmIGl0ZW0gaXMgbnVsbCBpdCBtZWFucyB0aGF0IHRoZSB0YXJnZXQudmFsdWUgY2FuIGJlIHVzZWQgYXMgYSBsYWJlbCBvdGhlcndpc2UgdXNlIGl0ZW0ubGFiZWxcbiAgdGFyZ2V0LmxhYmVsID0gaXRlbSA9PT0gdW5kZWZpbmVkID8gdGFyZ2V0LnZhbHVlIHx8ICcnIDogaXRlbS5sYWJlbDtcbiAgdGFyZ2V0LmNvbXBvbmVudCA9IGNvbXBvbmVudC5jeWFfbGFiZWw7XG4gIHJldHVybiB0YXJnZXQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhZGRMYWJlbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLFFBQVEsR0FBR0EsQ0FBQ0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLElBQUksS0FBSztFQUFBLElBQUFDLGFBQUE7RUFDakQsTUFBTUMsTUFBTSxHQUFHSixXQUFXO0VBQzFCO0VBQ0EsTUFBTUssS0FBSyxHQUFJLE9BQVFELE1BQU0sQ0FBQ0MsS0FBTSxLQUFLLFFBQVEsSUFBQUYsYUFBQSxHQUFJQyxNQUFNLENBQUNDLEtBQUssY0FBQUYsYUFBQSx1QkFBWkEsYUFBQSxDQUFjRSxLQUFLLEdBQUdELE1BQU0sQ0FBQ0MsS0FBSztFQUN2RjtFQUNBLE1BQU1DLElBQUksR0FBR0osSUFBSSxDQUFDSyxJQUFJLENBQUNDLENBQUMsSUFBSUMsTUFBTSxDQUFDRCxDQUFDLENBQUNFLEVBQUUsQ0FBQyxLQUFLTCxLQUFLLENBQUM7RUFDbkQ7RUFDQUQsTUFBTSxDQUFDTyxLQUFLLEdBQUdMLElBQUksS0FBS00sU0FBUyxHQUFHUixNQUFNLENBQUNDLEtBQUssSUFBSSxFQUFFLEdBQUdDLElBQUksQ0FBQ0ssS0FBSztFQUNuRVAsTUFBTSxDQUFDSCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ1ksU0FBUztFQUN0QyxPQUFPVCxNQUFNO0FBQ2YsQ0FBQztBQUFDLElBQUFVLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWFqQixRQUFRIiwiaWdub3JlTGlzdCI6W119
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
- const getComponentDisabled = (disabled, formData) => {
9
- if (typeof disabled === 'string') {
10
- return !!_copReactComponents.Utils.interpolateString(disabled, formData);
11
- }
12
- return !!disabled;
13
- };
14
- var _default = exports.default = getComponentDisabled;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29wUmVhY3RDb21wb25lbnRzIiwicmVxdWlyZSIsImdldENvbXBvbmVudERpc2FibGVkIiwiZGlzYWJsZWQiLCJmb3JtRGF0YSIsIlV0aWxzIiwiaW50ZXJwb2xhdGVTdHJpbmciLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRm9ybUNvbXBvbmVudC9oZWxwZXJzL2dldENvbXBvbmVudERpc2FibGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFV0aWxzIH0gZnJvbSBcIkB1a2hvbWVvZmZpY2UvY29wLXJlYWN0LWNvbXBvbmVudHNcIjtcblxuY29uc3QgZ2V0Q29tcG9uZW50RGlzYWJsZWQgPSAoZGlzYWJsZWQsIGZvcm1EYXRhKSA9PiB7XG4gIGlmICh0eXBlb2YgZGlzYWJsZWQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICEhVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcoZGlzYWJsZWQsIGZvcm1EYXRhKTtcbiAgfVxuICByZXR1cm4gISFkaXNhYmxlZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0Q29tcG9uZW50RGlzYWJsZWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLE9BQUE7QUFFQSxNQUFNQyxvQkFBb0IsR0FBR0EsQ0FBQ0MsUUFBUSxFQUFFQyxRQUFRLEtBQUs7RUFDbkQsSUFBSSxPQUFPRCxRQUFRLEtBQUssUUFBUSxFQUFFO0lBQ2hDLE9BQU8sQ0FBQyxDQUFDRSx5QkFBSyxDQUFDQyxpQkFBaUIsQ0FBQ0gsUUFBUSxFQUFFQyxRQUFRLENBQUM7RUFDdEQ7RUFDQSxPQUFPLENBQUMsQ0FBQ0QsUUFBUTtBQUNuQixDQUFDO0FBQUEsSUFBQUksUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFY1Asb0JBQW9CIiwiaWdub3JlTGlzdCI6W119
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- var _getComponentDisabled = _interopRequireDefault(require("./getComponentDisabled"));
4
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
- describe('components.FormComponent.helpers.getComponentDisabled', () => {
6
- const DATA = {
7
- shouldDisable: true
8
- };
9
- it('should return false if disabled is undefined', () => {
10
- expect((0, _getComponentDisabled.default)(undefined, DATA)).toEqual(false);
11
- });
12
- it('should return false if disabled is boolean false', () => {
13
- expect((0, _getComponentDisabled.default)(false, DATA)).toEqual(false);
14
- });
15
- it('should return true if disabled is boolean true', () => {
16
- expect((0, _getComponentDisabled.default)(true, DATA)).toEqual(true);
17
- });
18
- it('should interpolate correctly if disabled is a field path', () => {
19
- // eslint-disable-next-line no-template-curly-in-string
20
- expect((0, _getComponentDisabled.default)('${shouldDisable}', DATA)).toEqual(true);
21
- });
22
- it('should return false if interpolating a field that does not exist', () => {
23
- // eslint-disable-next-line no-template-curly-in-string
24
- expect((0, _getComponentDisabled.default)('${notARealField}', DATA)).toEqual(false);
25
- });
26
- });
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0Q29tcG9uZW50RGlzYWJsZWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlc2NyaWJlIiwiREFUQSIsInNob3VsZERpc2FibGUiLCJpdCIsImV4cGVjdCIsImdldENvbXBvbmVudERpc2FibGVkIiwidW5kZWZpbmVkIiwidG9FcXVhbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm1Db21wb25lbnQvaGVscGVycy9nZXRDb21wb25lbnREaXNhYmxlZC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRDb21wb25lbnREaXNhYmxlZCBmcm9tICcuL2dldENvbXBvbmVudERpc2FibGVkJztcblxuZGVzY3JpYmUoJ2NvbXBvbmVudHMuRm9ybUNvbXBvbmVudC5oZWxwZXJzLmdldENvbXBvbmVudERpc2FibGVkJywgKCkgPT4ge1xuICBjb25zdCBEQVRBID0ge1xuICAgIHNob3VsZERpc2FibGU6IHRydWUsXG4gIH07XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgZGlzYWJsZWQgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgIGV4cGVjdChnZXRDb21wb25lbnREaXNhYmxlZCh1bmRlZmluZWQsIERBVEEpKS50b0VxdWFsKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UgaWYgZGlzYWJsZWQgaXMgYm9vbGVhbiBmYWxzZScsICgpID0+IHtcbiAgICBleHBlY3QoZ2V0Q29tcG9uZW50RGlzYWJsZWQoZmFsc2UsIERBVEEpKS50b0VxdWFsKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZSBpZiBkaXNhYmxlZCBpcyBib29sZWFuIHRydWUnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGdldENvbXBvbmVudERpc2FibGVkKHRydWUsIERBVEEpKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGludGVycG9sYXRlIGNvcnJlY3RseSBpZiBkaXNhYmxlZCBpcyBhIGZpZWxkIHBhdGgnLCAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZ1xuICAgIGV4cGVjdChnZXRDb21wb25lbnREaXNhYmxlZCgnJHtzaG91bGREaXNhYmxlfScsIERBVEEpKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSBpZiBpbnRlcnBvbGF0aW5nIGEgZmllbGQgdGhhdCBkb2VzIG5vdCBleGlzdCcsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nXG4gICAgZXhwZWN0KGdldENvbXBvbmVudERpc2FibGVkKCcke25vdEFSZWFsRmllbGR9JywgREFUQSkpLnRvRXF1YWwoZmFsc2UpO1xuICB9KTtcblxufSk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEscUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwRCxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUxREcsUUFBUSxDQUFDLHVEQUF1RCxFQUFFLE1BQU07RUFDdEUsTUFBTUMsSUFBSSxHQUFHO0lBQ1hDLGFBQWEsRUFBRTtFQUNqQixDQUFDO0VBRURDLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxNQUFNO0lBQ3ZEQyxNQUFNLENBQUMsSUFBQUMsNkJBQW9CLEVBQUNDLFNBQVMsRUFBRUwsSUFBSSxDQUFDLENBQUMsQ0FBQ00sT0FBTyxDQUFDLEtBQUssQ0FBQztFQUM5RCxDQUFDLENBQUM7RUFFRkosRUFBRSxDQUFDLGtEQUFrRCxFQUFFLE1BQU07SUFDM0RDLE1BQU0sQ0FBQyxJQUFBQyw2QkFBb0IsRUFBQyxLQUFLLEVBQUVKLElBQUksQ0FBQyxDQUFDLENBQUNNLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDMUQsQ0FBQyxDQUFDO0VBRUZKLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxNQUFNO0lBQ3pEQyxNQUFNLENBQUMsSUFBQUMsNkJBQW9CLEVBQUMsSUFBSSxFQUFFSixJQUFJLENBQUMsQ0FBQyxDQUFDTSxPQUFPLENBQUMsSUFBSSxDQUFDO0VBQ3hELENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMsMERBQTBELEVBQUUsTUFBTTtJQUNuRTtJQUNBQyxNQUFNLENBQUMsSUFBQUMsNkJBQW9CLEVBQUMsa0JBQWtCLEVBQUVKLElBQUksQ0FBQyxDQUFDLENBQUNNLE9BQU8sQ0FBQyxJQUFJLENBQUM7RUFDdEUsQ0FBQyxDQUFDO0VBRUZKLEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxNQUFNO0lBQzNFO0lBQ0FDLE1BQU0sQ0FBQyxJQUFBQyw2QkFBb0IsRUFBQyxrQkFBa0IsRUFBRUosSUFBSSxDQUFDLENBQUMsQ0FBQ00sT0FBTyxDQUFDLEtBQUssQ0FBQztFQUN2RSxDQUFDLENBQUM7QUFFSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- const getComponentError = (component, errors) => {
8
- if (Array.isArray(errors)) {
9
- const error = errors.find(err => err.id === (component.full_path || component.id));
10
- if (error) {
11
- const props = {
12
- error: error.error
13
- };
14
- if (error.properties) {
15
- props.propsInError = error.properties;
16
- }
17
- return props;
18
- }
19
- }
20
- return undefined;
21
- };
22
- var _default = exports.default = getComponentError;
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb21wb25lbnRFcnJvciIsImNvbXBvbmVudCIsImVycm9ycyIsIkFycmF5IiwiaXNBcnJheSIsImVycm9yIiwiZmluZCIsImVyciIsImlkIiwiZnVsbF9wYXRoIiwicHJvcHMiLCJwcm9wZXJ0aWVzIiwicHJvcHNJbkVycm9yIiwidW5kZWZpbmVkIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm1Db21wb25lbnQvaGVscGVycy9nZXRDb21wb25lbnRFcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRDb21wb25lbnRFcnJvciA9IChjb21wb25lbnQsIGVycm9ycykgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShlcnJvcnMpKSB7XG4gICAgY29uc3QgZXJyb3IgPSBlcnJvcnMuZmluZChlcnIgPT4gZXJyLmlkID09PSAoY29tcG9uZW50LmZ1bGxfcGF0aCB8fCBjb21wb25lbnQuaWQpKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IHByb3BzID0geyBlcnJvcjogZXJyb3IuZXJyb3IgfTtcbiAgICAgIGlmIChlcnJvci5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIHByb3BzLnByb3BzSW5FcnJvciA9IGVycm9yLnByb3BlcnRpZXM7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBnZXRDb21wb25lbnRFcnJvcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsaUJBQWlCLEdBQUdBLENBQUNDLFNBQVMsRUFBRUMsTUFBTSxLQUFLO0VBQy9DLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixNQUFNLENBQUMsRUFBRTtJQUN6QixNQUFNRyxLQUFLLEdBQUdILE1BQU0sQ0FBQ0ksSUFBSSxDQUFDQyxHQUFHLElBQUlBLEdBQUcsQ0FBQ0MsRUFBRSxNQUFNUCxTQUFTLENBQUNRLFNBQVMsSUFBSVIsU0FBUyxDQUFDTyxFQUFFLENBQUMsQ0FBQztJQUNsRixJQUFJSCxLQUFLLEVBQUU7TUFDVCxNQUFNSyxLQUFLLEdBQUc7UUFBRUwsS0FBSyxFQUFFQSxLQUFLLENBQUNBO01BQU0sQ0FBQztNQUNwQyxJQUFJQSxLQUFLLENBQUNNLFVBQVUsRUFBRTtRQUNwQkQsS0FBSyxDQUFDRSxZQUFZLEdBQUdQLEtBQUssQ0FBQ00sVUFBVTtNQUN2QztNQUNBLE9BQU9ELEtBQUs7SUFDZDtFQUNGO0VBQ0EsT0FBT0csU0FBUztBQUNsQixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYWhCLGlCQUFpQiIsImlnbm9yZUxpc3QiOltdfQ==