@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,335 +0,0 @@
1
- "use strict";
2
-
3
- var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
4
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
- describe('utils', () => {
11
- describe('Data', () => {
12
- const gbCurrency = {
13
- currencyName: 'Great British Pounds',
14
- currencyCode: 'GBP',
15
- hint: 'hint',
16
- value: 'GBP',
17
- label: 'GBP',
18
- slangTerm: 'quid'
19
- };
20
- const usCurrency = {
21
- currencyName: 'United States Dollars',
22
- currencyCode: 'USD',
23
- hint: 'hint',
24
- value: 'USD',
25
- label: 'USD',
26
- slangTerm: 'bucks',
27
- synonyms: ['greenbacks', 11]
28
- };
29
- const options = {
30
- alpha: {
31
- value: 'a',
32
- label: 'Alpha',
33
- hint: 'hint'
34
- },
35
- bravo: {
36
- value: 'b',
37
- label: 'Bravo',
38
- hint: 'hint'
39
- },
40
- alIncluded: {
41
- value: 'c',
42
- label: 'Call me alan',
43
- hint: 'hint'
44
- },
45
- alStart: {
46
- value: 'd',
47
- label: 'Word Alphabet',
48
- hint: 'hint'
49
- }
50
- };
51
- const testCurrencies = [gbCurrency, usCurrency];
52
- describe('getAutocompleteSource', () => {
53
- it('should handle a null config', () => {
54
- const SOURCE = (0, _getAutocompleteSource.default)(null);
55
- expect(typeof SOURCE === 'function').toBeTruthy();
56
- SOURCE('query', results => {
57
- expect(Array.isArray(results)).toBeTruthy();
58
- expect(results.length).toEqual(0);
59
- });
60
- });
61
- describe('without custom item labels', () => {
62
- it('should get any specified options from the config', () => {
63
- const CONFIG = {
64
- data: {
65
- options: [options.alpha, options.bravo]
66
- }
67
- };
68
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
69
- expect(typeof SOURCE === 'function').toBeTruthy();
70
- SOURCE('a', results => {
71
- expect(results.length).toEqual(2);
72
- expect(results).toEqual([options.alpha, options.bravo]);
73
- });
74
- SOURCE('al', results => {
75
- expect(results.length).toEqual(1);
76
- expect(results).toEqual([{
77
- value: 'a',
78
- label: 'Alpha',
79
- hint: 'hint'
80
- }]);
81
- });
82
- });
83
- it('should only return first 6000 results that have some type of match', () => {
84
- const moreThanMaxNumberOfOptions = Array(6001).fill(options.alpha);
85
- const config = {
86
- data: {
87
- options: moreThanMaxNumberOfOptions
88
- }
89
- };
90
- (0, _getAutocompleteSource.default)(config)(options.alpha.label, results => expect(results.length).toEqual(6000));
91
- });
92
- it('should handle an empty query', () => {
93
- const CONFIG = {
94
- data: {
95
- options: [options.alpha, options.bravo]
96
- }
97
- };
98
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
99
- SOURCE('', results => {
100
- expect(results.length).toEqual(2);
101
- expect(results).toEqual([options.alpha, options.bravo]);
102
- });
103
- });
104
- it('should handle an undefined query', () => {
105
- const CONFIG = {
106
- data: {
107
- options: [options.alpha, options.bravo]
108
- }
109
- };
110
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
111
- SOURCE(undefined, results => {
112
- expect(results.length).toEqual(2);
113
- expect(results).toEqual([options.alpha, options.bravo]);
114
- });
115
- });
116
- it('should handle a null query', () => {
117
- const CONFIG = {
118
- data: {
119
- options: [options.alpha, options.bravo]
120
- }
121
- };
122
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
123
- SOURCE(null, results => {
124
- expect(results.length).toEqual(2);
125
- expect(results).toEqual([options.alpha, options.bravo]);
126
- });
127
- });
128
- it('should handle a non string query', () => {
129
- const CONFIG = {
130
- data: {
131
- options: [options.alpha, options.bravo]
132
- }
133
- };
134
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
135
- SOURCE(1, results => {
136
- expect(results.length).toEqual(2);
137
- expect(results).toEqual([options.alpha, options.bravo]);
138
- });
139
- });
140
- it('should handle a missing label on an option', () => {
141
- const CONFIG = {
142
- data: {
143
- options: [options.alpha, {
144
- value: 'b'
145
- }]
146
- }
147
- };
148
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
149
- expect(typeof SOURCE === 'function').toBeTruthy();
150
- SOURCE('a', results => {
151
- expect(results.length).toEqual(1);
152
- expect(results).toEqual([options.alpha]);
153
- });
154
- });
155
- it('should return matches in the right order', () => {
156
- const CONFIG = {
157
- data: {
158
- options: [options.alIncluded, options.alStart, options.bravo, options.alpha]
159
- }
160
- };
161
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
162
- expect(typeof SOURCE === 'function').toBeTruthy();
163
- SOURCE('al', results => {
164
- expect(results.length).toEqual(3);
165
- expect(results).toEqual([options.alpha, options.alStart, options.alIncluded]);
166
- });
167
- });
168
- it('should match options using a defined synonym', () => {
169
- const CONFIG = {
170
- data: {
171
- options: [_objectSpread(_objectSpread({}, options.alpha), {}, {
172
- synonyms: ['first']
173
- }), {
174
- value: 'b'
175
- }]
176
- }
177
- };
178
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
179
- expect(typeof SOURCE === 'function').toBeTruthy();
180
- SOURCE('first', results => {
181
- expect(results.length).toEqual(1);
182
- expect(results).toEqual([_objectSpread(_objectSpread({}, options.alpha), {}, {
183
- synonyms: ['first']
184
- })]);
185
- });
186
- });
187
- });
188
- describe('with custom item labels', () => {
189
- it('should get any specified options from the config', () => {
190
- const CONFIG = {
191
- item: {
192
- value: 'currencyCode',
193
- label: 'currencyCode',
194
- format: "${currencyName} (${currencyCode})"
195
- },
196
- data: {
197
- options: testCurrencies
198
- }
199
- };
200
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
201
- expect(typeof SOURCE === 'function').toBeTruthy();
202
- SOURCE('GB', results => {
203
- expect(results.length).toEqual(1);
204
- expect(results).toEqual([gbCurrency]);
205
- });
206
- SOURCE(' (', results => {
207
- expect(results.length).toEqual(2);
208
- expect(results).toEqual(testCurrencies);
209
- });
210
- });
211
- it('should handle an empty query', () => {
212
- const CONFIG = {
213
- item: {
214
- value: 'currencyCode',
215
- label: 'currencyCode',
216
- format: "${currencyName} (${currencyCode})"
217
- },
218
- data: {
219
- options: testCurrencies
220
- }
221
- };
222
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
223
- SOURCE('', results => {
224
- expect(results.length).toEqual(2);
225
- expect(results).toEqual(testCurrencies);
226
- });
227
- });
228
- it('should handle an undefined query', () => {
229
- const CONFIG = {
230
- item: {
231
- value: 'currencyCode',
232
- label: 'currencyCode',
233
- format: "${currencyName} (${currencyCode})"
234
- },
235
- data: {
236
- options: testCurrencies
237
- }
238
- };
239
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
240
- SOURCE(undefined, results => {
241
- expect(results.length).toEqual(2);
242
- expect(results).toEqual(testCurrencies);
243
- });
244
- });
245
- it('should handle a null query', () => {
246
- const CONFIG = {
247
- item: {
248
- value: 'currencyCode',
249
- label: 'currencyCode',
250
- format: "${currencyName} (${currencyCode})"
251
- },
252
- data: {
253
- options: testCurrencies
254
- }
255
- };
256
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
257
- SOURCE(null, results => {
258
- expect(results.length).toEqual(2);
259
- expect(results).toEqual(testCurrencies);
260
- });
261
- });
262
- it('should handle a missing label on an option', () => {
263
- const CONFIG = {
264
- item: {
265
- value: 'currencyCode',
266
- label: 'currencyCode',
267
- format: "${currencyName} (${currencyCode})"
268
- },
269
- data: {
270
- options: [gbCurrency, {
271
- currencyName: 'United States Dollars',
272
- currencyCode: 'USD',
273
- hint: 'hint',
274
- value: 'USD'
275
- }]
276
- }
277
- };
278
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
279
- expect(typeof SOURCE === 'function').toBeTruthy();
280
- SOURCE('a', results => {
281
- // We expect 2 results here instead of 1 because defining a custom
282
- // format for item labels means the label is constructed upon processing
283
- // a query - we're not relying on the 'label' field of the option.
284
- expect(results.length).toEqual(2);
285
- expect(results).toEqual([gbCurrency, {
286
- currencyName: 'United States Dollars',
287
- currencyCode: 'USD',
288
- hint: 'hint',
289
- value: 'USD',
290
- label: ''
291
- }]);
292
- });
293
- });
294
- it('should match options using a defined synonym', () => {
295
- const CONFIG = {
296
- item: {
297
- value: 'currencyCode',
298
- label: 'currencyCode',
299
- format: "${currencyName} (${currencyCode})"
300
- },
301
- data: {
302
- options: testCurrencies
303
- }
304
- };
305
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
306
- expect(typeof SOURCE === 'function').toBeTruthy();
307
- SOURCE('greenbacks', results => {
308
- expect(results.length).toEqual(1);
309
- expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
310
- });
311
- });
312
- it('should match options using defined extra searchable fields', () => {
313
- const CONFIG = {
314
- item: {
315
- value: 'currencyCode',
316
- label: 'currencyCode',
317
- format: "${currencyName} (${currencyCode})",
318
- extraFieldsToSearch: ['slangTerm', null]
319
- },
320
- data: {
321
- options: testCurrencies
322
- }
323
- };
324
- const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
325
- expect(typeof SOURCE === 'function').toBeTruthy();
326
- SOURCE('buc', results => {
327
- expect(results.length).toEqual(1);
328
- expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
329
- });
330
- });
331
- });
332
- });
333
- });
334
- });
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0QXV0b2NvbXBsZXRlU291cmNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVzY3JpYmUiLCJnYkN1cnJlbmN5IiwiY3VycmVuY3lOYW1lIiwiY3VycmVuY3lDb2RlIiwiaGludCIsImxhYmVsIiwic2xhbmdUZXJtIiwidXNDdXJyZW5jeSIsInN5bm9ueW1zIiwib3B0aW9ucyIsImFscGhhIiwiYnJhdm8iLCJhbEluY2x1ZGVkIiwiYWxTdGFydCIsInRlc3RDdXJyZW5jaWVzIiwiaXQiLCJTT1VSQ0UiLCJnZXRBdXRvY29tcGxldGVTb3VyY2UiLCJleHBlY3QiLCJ0b0JlVHJ1dGh5IiwicmVzdWx0cyIsIkFycmF5IiwiaXNBcnJheSIsInRvRXF1YWwiLCJDT05GSUciLCJkYXRhIiwibW9yZVRoYW5NYXhOdW1iZXJPZk9wdGlvbnMiLCJmaWxsIiwiY29uZmlnIiwidW5kZWZpbmVkIiwiaXRlbSIsImZvcm1hdCIsImMiLCJleHRyYUZpZWxkc1RvU2VhcmNoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0QXV0b2NvbXBsZXRlU291cmNlLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEF1dG9jb21wbGV0ZVNvdXJjZSBmcm9tICcuL2dldEF1dG9jb21wbGV0ZVNvdXJjZSc7XG5cbmRlc2NyaWJlKCd1dGlscycsICgpID0+IHtcblxuICBkZXNjcmliZSgnRGF0YScsICgpID0+IHtcblxuICAgIGNvbnN0IGdiQ3VycmVuY3kgPSB7XG4gICAgICBjdXJyZW5jeU5hbWU6ICdHcmVhdCBCcml0aXNoIFBvdW5kcycsXG4gICAgICBjdXJyZW5jeUNvZGU6ICdHQlAnLFxuICAgICAgaGludDogJ2hpbnQnLFxuICAgICAgdmFsdWU6ICdHQlAnLFxuICAgICAgbGFiZWw6ICdHQlAnLFxuICAgICAgc2xhbmdUZXJtOiAncXVpZCdcbiAgICB9O1xuXG4gICAgY29uc3QgdXNDdXJyZW5jeSA9IHtcbiAgICAgIGN1cnJlbmN5TmFtZTogJ1VuaXRlZCBTdGF0ZXMgRG9sbGFycycsXG4gICAgICBjdXJyZW5jeUNvZGU6ICdVU0QnLFxuICAgICAgaGludDogJ2hpbnQnLFxuICAgICAgdmFsdWU6ICdVU0QnLFxuICAgICAgbGFiZWw6ICdVU0QnLFxuICAgICAgc2xhbmdUZXJtOiAnYnVja3MnLFxuICAgICAgc3lub255bXM6IFsnZ3JlZW5iYWNrcycsIDExXVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYWxwaGE6IHsgdmFsdWU6ICdhJywgbGFiZWw6ICdBbHBoYScsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYnJhdm86IHsgdmFsdWU6ICdiJywgbGFiZWw6ICdCcmF2bycsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYWxJbmNsdWRlZDogeyB2YWx1ZTogJ2MnLCBsYWJlbDogJ0NhbGwgbWUgYWxhbicsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYWxTdGFydDogeyB2YWx1ZTogJ2QnLCBsYWJlbDogJ1dvcmQgQWxwaGFiZXQnLCBoaW50OiAnaGludCcgfVxuICAgIH07XG5cbiAgICBjb25zdCB0ZXN0Q3VycmVuY2llcyA9IFtnYkN1cnJlbmN5LCB1c0N1cnJlbmN5XTtcblxuICAgIGRlc2NyaWJlKCdnZXRBdXRvY29tcGxldGVTb3VyY2UnLCAoKSA9PiB7XG5cbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGEgbnVsbCBjb25maWcnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFNPVVJDRSA9IGdldEF1dG9jb21wbGV0ZVNvdXJjZShudWxsKTtcbiAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgU09VUkNFKCdxdWVyeScsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0cykpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aXRob3V0IGN1c3RvbSBpdGVtIGxhYmVscycsICgpID0+IHtcblxuICAgICAgICBpdCgnc2hvdWxkIGdldCBhbnkgc3BlY2lmaWVkIG9wdGlvbnMgZnJvbSB0aGUgY29uZmlnJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2EnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLCBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTT1VSQ0UoJ2FsJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2EnLCBsYWJlbDogJ0FscGhhJywgaGludDogJ2hpbnQnIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG9ubHkgcmV0dXJuIGZpcnN0IDYwMDAgcmVzdWx0cyB0aGF0IGhhdmUgc29tZSB0eXBlIG9mIG1hdGNoJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vcmVUaGFuTWF4TnVtYmVyT2ZPcHRpb25zID0gQXJyYXkoNjAwMSkuZmlsbChvcHRpb25zLmFscGhhKTtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IG1vcmVUaGFuTWF4TnVtYmVyT2ZPcHRpb25zXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBnZXRBdXRvY29tcGxldGVTb3VyY2UoY29uZmlnKShcbiAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEubGFiZWwsXG4gICAgICAgICAgICAocmVzdWx0cykgPT4gZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDYwMDApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhbiBlbXB0eSBxdWVyeScsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKCcnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gdW5kZWZpbmVkIHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UodW5kZWZpbmVkLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYSBudWxsIHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UobnVsbCwgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbHBoYSxcbiAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGEgbm9uIHN0cmluZyBxdWVyeScsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKDEsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMik7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbChbXG4gICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhIG1pc3NpbmcgbGFiZWwgb24gYW4gb3B0aW9uJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2InIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2EnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbWF0Y2hlcyBpbiB0aGUgcmlnaHQgb3JkZXInLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5hbEluY2x1ZGVkLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxTdGFydCxcbiAgICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGFcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2FsJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgzKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbHBoYSxcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbFN0YXJ0LFxuICAgICAgICAgICAgICBvcHRpb25zLmFsSW5jbHVkZWRcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIG9wdGlvbnMgdXNpbmcgYSBkZWZpbmVkIHN5bm9ueW0nLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyAuLi5vcHRpb25zLmFscGhhLCBzeW5vbnltczogWydmaXJzdCddIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2InIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2ZpcnN0JywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgeyAuLi5vcHRpb25zLmFscGhhLCBzeW5vbnltczogWydmaXJzdCddIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aXRoIGN1c3RvbSBpdGVtIGxhYmVscycsICgpID0+IHtcblxuICAgICAgICBpdCgnc2hvdWxkIGdldCBhbnkgc3BlY2lmaWVkIG9wdGlvbnMgZnJvbSB0aGUgY29uZmlnJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ0dCJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgZ2JDdXJyZW5jeVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU09VUkNFKCcgKCcsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMik7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGFuIGVtcHR5IHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKCcnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwodGVzdEN1cnJlbmNpZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhbiB1bmRlZmluZWQgcXVlcnknLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UodW5kZWZpbmVkLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwodGVzdEN1cnJlbmNpZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhIG51bGwgcXVlcnknLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UobnVsbCwgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKHRlc3RDdXJyZW5jaWVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYSBtaXNzaW5nIGxhYmVsIG9uIGFuIG9wdGlvbicsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBmb3JtYXQ6IGBcXCR7Y3VycmVuY3lOYW1lfSAoXFwke2N1cnJlbmN5Q29kZX0pYFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIGdiQ3VycmVuY3ksXG4gICAgICAgICAgICAgICAgeyBjdXJyZW5jeU5hbWU6ICdVbml0ZWQgU3RhdGVzIERvbGxhcnMnLCBjdXJyZW5jeUNvZGU6ICdVU0QnLCBoaW50OiAnaGludCcsIHZhbHVlOiAnVVNEJyB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IFNPVVJDRSA9IGdldEF1dG9jb21wbGV0ZVNvdXJjZShDT05GSUcpO1xuICAgICAgICAgIGV4cGVjdCh0eXBlb2YgU09VUkNFID09PSAnZnVuY3Rpb24nKS50b0JlVHJ1dGh5KCk7XG4gICAgICAgICAgU09VUkNFKCdhJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIC8vIFdlIGV4cGVjdCAyIHJlc3VsdHMgaGVyZSBpbnN0ZWFkIG9mIDEgYmVjYXVzZSBkZWZpbmluZyBhIGN1c3RvbVxuICAgICAgICAgICAgLy8gZm9ybWF0IGZvciBpdGVtIGxhYmVscyBtZWFucyB0aGUgbGFiZWwgaXMgY29uc3RydWN0ZWQgdXBvbiBwcm9jZXNzaW5nXG4gICAgICAgICAgICAvLyBhIHF1ZXJ5IC0gd2UncmUgbm90IHJlbHlpbmcgb24gdGhlICdsYWJlbCcgZmllbGQgb2YgdGhlIG9wdGlvbi5cbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgZ2JDdXJyZW5jeSxcbiAgICAgICAgICAgICAgeyBjdXJyZW5jeU5hbWU6ICdVbml0ZWQgU3RhdGVzIERvbGxhcnMnLCBjdXJyZW5jeUNvZGU6ICdVU0QnLCBoaW50OiAnaGludCcsIHZhbHVlOiAnVVNEJywgbGFiZWw6ICcnIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIG9wdGlvbnMgdXNpbmcgYSBkZWZpbmVkIHN5bm9ueW0nLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBleHBlY3QodHlwZW9mIFNPVVJDRSA9PT0gJ2Z1bmN0aW9uJykudG9CZVRydXRoeSgpO1xuICAgICAgICAgIFNPVVJDRSgnZ3JlZW5iYWNrcycsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcy5maWx0ZXIoKGMpID0+IChjLmN1cnJlbmN5Q29kZSA9PT0gJ1VTRCcpKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggb3B0aW9ucyB1c2luZyBkZWZpbmVkIGV4dHJhIHNlYXJjaGFibGUgZmllbGRzJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgLFxuICAgICAgICAgICAgICBleHRyYUZpZWxkc1RvU2VhcmNoOiBbJ3NsYW5nVGVybScsIG51bGxdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2J1YycsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcy5maWx0ZXIoKGMpID0+IChjLmN1cnJlbmN5Q29kZSA9PT0gJ1VTRCcpKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB9KTtcblxuICAgIH0pO1xuXG4gIH0pO1xuXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxzQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTRELFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsUUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFQLENBQUEsT0FBQU0sTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQVIsQ0FBQSxHQUFBSSxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBWCxDQUFBLEVBQUFJLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFmLENBQUEsYUFBQUksQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFB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
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- const DOT = '.';
8
- const SLASH = '/';
9
- const DOT_DOT = "".concat(DOT).concat(DOT);
10
- const PARENT_PATH = "".concat(DOT).concat(SLASH);
11
- const toPath = arr => arr.join(DOT);
12
- const toParts = function (str) {
13
- let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
14
- return str.split(separator);
15
- };
16
- const isDotDot = str => str === DOT_DOT;
17
- const isDotOrDotDot = str => [DOT, DOT_DOT].indexOf(str) > -1;
18
- const isRelativePath = path => path && path.indexOf(DOT) === 0;
19
- const standardiseRelativePath = path => {
20
- if (path.indexOf(PARENT_PATH) === 0) {
21
- return path;
22
- }
23
- return "".concat(PARENT_PATH).concat(path);
24
- };
25
- const ascendPath = (startPath, ascent) => {
26
- const relativePath = standardiseRelativePath(ascent);
27
- // Always add 1 because we're starting on a leaf node within a "directory".
28
- const stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
29
- const pathParts = startPath ? toParts(startPath) : [];
30
- if (stepsToClimb >= pathParts.length) {
31
- return '';
32
- }
33
- return toPath(pathParts.slice(0, -stepsToClimb));
34
- };
35
- const descendPath = (startPath, descent) => {
36
- const stepsDown = toParts(descent, SLASH).filter(str => !isDotOrDotDot(str));
37
- return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
38
- };
39
-
40
- /**
41
- * Takes a path and a current path and returns an absolute path to a data element.
42
- * Note that the path may be absolute or relative.
43
- *
44
- * The behaviour should mirror the way imports work.
45
- *
46
- * @param {string} path The path to attempt to get to, which may be absolute or relative.
47
- * @param {string} currentPath The current absolute path.
48
- * @returns An absolute path to a data element.
49
- * @example
50
- * getDataPath('./relative.path', 'this.is.the.current.path');
51
- * // => 'this.is.the.current.relative.path'
52
- * @example
53
- * getDataPath('../relative.path', 'this.is.the.current.path');
54
- * // => 'this.is.the.relative.path'
55
- * @example
56
- * getDataPath('../../relative.path', 'this.is.the.current.path');
57
- * // => 'this.is.relative.path'
58
- */
59
- const getDataPath = (path, currentPath) => {
60
- if (isRelativePath(path)) {
61
- return descendPath(ascendPath(currentPath, path), path);
62
- }
63
- return path;
64
- };
65
- var _default = exports.default = getDataPath;
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJET1QiLCJTTEFTSCIsIkRPVF9ET1QiLCJjb25jYXQiLCJQQVJFTlRfUEFUSCIsInRvUGF0aCIsImFyciIsImpvaW4iLCJ0b1BhcnRzIiwic3RyIiwic2VwYXJhdG9yIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic3BsaXQiLCJpc0RvdERvdCIsImlzRG90T3JEb3REb3QiLCJpbmRleE9mIiwiaXNSZWxhdGl2ZVBhdGgiLCJwYXRoIiwic3RhbmRhcmRpc2VSZWxhdGl2ZVBhdGgiLCJhc2NlbmRQYXRoIiwic3RhcnRQYXRoIiwiYXNjZW50IiwicmVsYXRpdmVQYXRoIiwic3RlcHNUb0NsaW1iIiwiZmlsdGVyIiwicGF0aFBhcnRzIiwic2xpY2UiLCJkZXNjZW5kUGF0aCIsImRlc2NlbnQiLCJzdGVwc0Rvd24iLCJnZXREYXRhUGF0aCIsImN1cnJlbnRQYXRoIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9EYXRhL2dldERhdGFQYXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERPVCA9ICcuJztcbmNvbnN0IFNMQVNIID0gJy8nO1xuY29uc3QgRE9UX0RPVCA9IGAke0RPVH0ke0RPVH1gO1xuY29uc3QgUEFSRU5UX1BBVEggPSBgJHtET1R9JHtTTEFTSH1gO1xuXG5jb25zdCB0b1BhdGggPSAoYXJyKSA9PiBhcnIuam9pbihET1QpO1xuXG5jb25zdCB0b1BhcnRzID0gKHN0ciwgc2VwYXJhdG9yID0gRE9UKSA9PiBzdHIuc3BsaXQoc2VwYXJhdG9yKTtcblxuY29uc3QgaXNEb3REb3QgPSAoc3RyKSA9PiBzdHIgPT09IERPVF9ET1Q7XG5jb25zdCBpc0RvdE9yRG90RG90ID0gKHN0cikgPT4gW0RPVCwgRE9UX0RPVF0uaW5kZXhPZihzdHIpID4gLTE7XG5cbmNvbnN0IGlzUmVsYXRpdmVQYXRoID0gKHBhdGgpID0+IHBhdGggJiYgcGF0aC5pbmRleE9mKERPVCkgPT09IDA7XG5cbmNvbnN0IHN0YW5kYXJkaXNlUmVsYXRpdmVQYXRoID0gKHBhdGgpID0+IHtcbiAgaWYgKHBhdGguaW5kZXhPZihQQVJFTlRfUEFUSCkgPT09IDApIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuICByZXR1cm4gYCR7UEFSRU5UX1BBVEh9JHtwYXRofWA7XG59O1xuXG5jb25zdCBhc2NlbmRQYXRoID0gKHN0YXJ0UGF0aCwgYXNjZW50KSA9PiB7XG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHN0YW5kYXJkaXNlUmVsYXRpdmVQYXRoKGFzY2VudCk7XG4gIC8vIEFsd2F5cyBhZGQgMSBiZWNhdXNlIHdlJ3JlIHN0YXJ0aW5nIG9uIGEgbGVhZiBub2RlIHdpdGhpbiBhIFwiZGlyZWN0b3J5XCIuXG4gIGNvbnN0IHN0ZXBzVG9DbGltYiA9IHRvUGFydHMocmVsYXRpdmVQYXRoLCBTTEFTSCkuZmlsdGVyKGlzRG90RG90KS5sZW5ndGggKyAxO1xuICBjb25zdCBwYXRoUGFydHMgPSBzdGFydFBhdGggPyB0b1BhcnRzKHN0YXJ0UGF0aCkgOiBbXTtcbiAgaWYgKHN0ZXBzVG9DbGltYiA+PSBwYXRoUGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiB0b1BhdGgocGF0aFBhcnRzLnNsaWNlKDAsICAtc3RlcHNUb0NsaW1iKSk7XG59O1xuXG5jb25zdCBkZXNjZW5kUGF0aCA9IChzdGFydFBhdGgsIGRlc2NlbnQpID0+IHtcbiAgY29uc3Qgc3RlcHNEb3duID0gdG9QYXJ0cyhkZXNjZW50LCBTTEFTSCkuZmlsdGVyKHN0ciA9PiAhaXNEb3RPckRvdERvdChzdHIpKTtcbiAgcmV0dXJuIHN0YXJ0UGF0aCA/IGAke3N0YXJ0UGF0aH0uJHt0b1BhdGgoc3RlcHNEb3duKX1gIDogdG9QYXRoKHN0ZXBzRG93bik7XG59O1xuXG4vKipcbiAqIFRha2VzIGEgcGF0aCBhbmQgYSBjdXJyZW50IHBhdGggYW5kIHJldHVybnMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIGRhdGEgZWxlbWVudC5cbiAqIE5vdGUgdGhhdCB0aGUgcGF0aCBtYXkgYmUgYWJzb2x1dGUgb3IgcmVsYXRpdmUuXG4gKiBcbiAqIFRoZSBiZWhhdmlvdXIgc2hvdWxkIG1pcnJvciB0aGUgd2F5IGltcG9ydHMgd29yay5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gYXR0ZW1wdCB0byBnZXQgdG8sIHdoaWNoIG1heSBiZSBhYnNvbHV0ZSBvciByZWxhdGl2ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50UGF0aCBUaGUgY3VycmVudCBhYnNvbHV0ZSBwYXRoLlxuICogQHJldHVybnMgQW4gYWJzb2x1dGUgcGF0aCB0byBhIGRhdGEgZWxlbWVudC5cbiAqIEBleGFtcGxlXG4gKiAgIGdldERhdGFQYXRoKCcuL3JlbGF0aXZlLnBhdGgnLCAndGhpcy5pcy50aGUuY3VycmVudC5wYXRoJyk7XG4gKiAgIC8vID0+ICd0aGlzLmlzLnRoZS5jdXJyZW50LnJlbGF0aXZlLnBhdGgnXG4gKiBAZXhhbXBsZVxuICogICBnZXREYXRhUGF0aCgnLi4vcmVsYXRpdmUucGF0aCcsICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnKTtcbiAqICAgLy8gPT4gJ3RoaXMuaXMudGhlLnJlbGF0aXZlLnBhdGgnXG4gKiBAZXhhbXBsZVxuICogICBnZXREYXRhUGF0aCgnLi4vLi4vcmVsYXRpdmUucGF0aCcsICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnKTtcbiAqICAgLy8gPT4gJ3RoaXMuaXMucmVsYXRpdmUucGF0aCdcbiAqL1xuY29uc3QgZ2V0RGF0YVBhdGggPSAocGF0aCwgY3VycmVudFBhdGgpID0+IHtcbiAgaWYgKGlzUmVsYXRpdmVQYXRoKHBhdGgpKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRQYXRoKGFzY2VuZFBhdGgoY3VycmVudFBhdGgsIHBhdGgpLCBwYXRoKTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldERhdGFQYXRoO1xuIl0sIm1hcHBp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
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- var _getDataPath = _interopRequireDefault(require("./getDataPath"));
4
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
- describe('utils.Data.getDataPath', () => {
6
- const CURRENT_PATH = 'this.is.the.current.path';
7
- const RELATIVE = 'relative.path';
8
- const ABSOLUTE = 'absolute.path';
9
- const doTest = (path, currentPath, expected) => {
10
- expect((0, _getDataPath.default)(path, currentPath)).toEqual(expected);
11
- };
12
- it("should return an absolute path appropriately", () => {
13
- doTest(ABSOLUTE, CURRENT_PATH, ABSOLUTE);
14
- });
15
- it("should return an absolute path appropriately where the current path is null", () => {
16
- doTest(ABSOLUTE, null, ABSOLUTE);
17
- });
18
- [{
19
- p: "./".concat(RELATIVE),
20
- e: "this.is.the.current.".concat(RELATIVE),
21
- d: 'a sibling node'
22
- }, {
23
- p: "../".concat(RELATIVE),
24
- e: "this.is.the.".concat(RELATIVE),
25
- d: 'a cousin node'
26
- }, {
27
- p: "./../".concat(RELATIVE),
28
- e: "this.is.the.".concat(RELATIVE),
29
- d: 'a cousin node with leading dot-slash'
30
- }, {
31
- p: "../../../../../../../".concat(RELATIVE),
32
- e: RELATIVE,
33
- d: 'an inappropriately nested node'
34
- }].forEach(test => {
35
- it("should return ".concat(test.d, " appropriately"), () => {
36
- doTest(test.p, CURRENT_PATH, test.e);
37
- });
38
- it("should return ".concat(test.d, " appropriately where the current path is null"), () => {
39
- doTest(test.p, null, RELATIVE);
40
- });
41
- });
42
- it('should handle a null path and return null', () => {
43
- doTest(null, CURRENT_PATH, null);
44
- });
45
- it('should handle an undefined path and return undefined', () => {
46
- doTest(undefined, CURRENT_PATH, undefined);
47
- });
48
- });
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0RGF0YVBhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlc2NyaWJlIiwiQ1VSUkVOVF9QQVRIIiwiUkVMQVRJVkUiLCJBQlNPTFVURSIsImRvVGVzdCIsInBhdGgiLCJjdXJyZW50UGF0aCIsImV4cGVjdGVkIiwiZXhwZWN0IiwiZ2V0RGF0YVBhdGgiLCJ0b0VxdWFsIiwiaXQiLCJwIiwiY29uY2F0IiwiZCIsImZvckVhY2giLCJ0ZXN0IiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0RGF0YVBhdGgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0RGF0YVBhdGggZnJvbSAnLi9nZXREYXRhUGF0aCc7XG5cbmRlc2NyaWJlKCd1dGlscy5EYXRhLmdldERhdGFQYXRoJywgKCkgPT4ge1xuXG4gIGNvbnN0IENVUlJFTlRfUEFUSCA9ICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnO1xuICBjb25zdCBSRUxBVElWRSA9ICdyZWxhdGl2ZS5wYXRoJztcbiAgY29uc3QgQUJTT0xVVEUgPSAnYWJzb2x1dGUucGF0aCc7XG5cbiAgY29uc3QgZG9UZXN0ID0gKHBhdGgsIGN1cnJlbnRQYXRoLCBleHBlY3RlZCkgPT4ge1xuICAgIGV4cGVjdChnZXREYXRhUGF0aChwYXRoLCBjdXJyZW50UGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9O1xuXG4gIGl0KGBzaG91bGQgcmV0dXJuIGFuIGFic29sdXRlIHBhdGggYXBwcm9wcmlhdGVseWAsICgpID0+IHtcbiAgICBkb1Rlc3QoQUJTT0xVVEUsIENVUlJFTlRfUEFUSCwgQUJTT0xVVEUpO1xuICB9KTtcblxuICBpdChgc2hvdWxkIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRoIGFwcHJvcHJpYXRlbHkgd2hlcmUgdGhlIGN1cnJlbnQgcGF0aCBpcyBudWxsYCwgKCkgPT4ge1xuICAgIGRvVGVzdChBQlNPTFVURSwgbnVsbCwgQUJTT0xVVEUpO1xuICB9KTtcblxuICBbXG4gICAgeyBwOiBgLi8ke1JFTEFUSVZFfWAsIGU6IGB0aGlzLmlzLnRoZS5jdXJyZW50LiR7UkVMQVRJVkV9YCwgZDogJ2Egc2libGluZyBub2RlJyB9LFxuICAgIHsgcDogYC4uLyR7UkVMQVRJVkV9YCwgZTogYHRoaXMuaXMudGhlLiR7UkVMQVRJVkV9YCwgZDogJ2EgY291c2luIG5vZGUnIH0sXG4gICAgeyBwOiBgLi8uLi8ke1JFTEFUSVZFfWAsIGU6IGB0aGlzLmlzLnRoZS4ke1JFTEFUSVZFfWAsIGQ6ICdhIGNvdXNpbiBub2RlIHdpdGggbGVhZGluZyBkb3Qtc2xhc2gnIH0sXG4gICAgeyBwOiBgLi4vLi4vLi4vLi4vLi4vLi4vLi4vJHtSRUxBVElWRX1gLCBlOiBSRUxBVElWRSwgZDogJ2FuIGluYXBwcm9wcmlhdGVseSBuZXN0ZWQgbm9kZScgfVxuICBdLmZvckVhY2godGVzdCA9PiB7XG5cbiAgICBpdChgc2hvdWxkIHJldHVybiAke3Rlc3QuZH0gYXBwcm9wcmlhdGVseWAsICgpID0+IHtcbiAgICAgIGRvVGVzdCh0ZXN0LnAsIENVUlJFTlRfUEFUSCwgdGVzdC5lKTtcbiAgICB9KTtcblxuICAgIGl0KGBzaG91bGQgcmV0dXJuICR7dGVzdC5kfSBhcHByb3ByaWF0ZWx5IHdoZXJlIHRoZSBjdXJyZW50IHBhdGggaXMgbnVsbGAsICgpID0+IHtcbiAgICAgIGRvVGVzdCh0ZXN0LnAsIG51bGwsIFJFTEFUSVZFKTtcbiAgICB9KTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBhIG51bGwgcGF0aCBhbmQgcmV0dXJuIG51bGwnLCAoKSA9PiB7XG4gICAgZG9UZXN0KG51bGwsIENVUlJFTlRfUEFUSCwgbnVsbCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaGFuZGxlIGFuIHVuZGVmaW5lZCBwYXRoIGFuZCByZXR1cm4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgIGRvVGVzdCh1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
@@ -1,86 +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
- var _Condition = _interopRequireDefault(require("../Condition"));
9
- var _nestInRefdataOptions = _interopRequireDefault(require("./nestInRefdataOptions"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Global Imports
16
- // Local Imports
17
- const interpolateOptions = (config, options) => options.map(opt => {
18
- if (opt.show_when) {
19
- const result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
20
- if (!result) {
21
- return null;
22
- }
23
- }
24
- if (typeof opt === 'string') {
25
- return opt;
26
- }
27
- if (!opt.value) {
28
- return opt.label;
29
- }
30
- if (config.alternativeHintField) {
31
- // eslint-disable-next-line no-param-reassign
32
- opt.hint = opt[config.alternativeHintField];
33
- }
34
- return _objectSpread(_objectSpread({}, opt), {}, {
35
- value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
36
- label: _copReactComponents.Utils.interpolateString(opt.label, config.formData),
37
- hint: _copReactComponents.Utils.interpolateString(opt.hint, config.formData)
38
- });
39
- }).filter(n => n);
40
-
41
- /**
42
- * Returns a list of options templated from a collection specified.
43
- * config requires a item field with the templated options e.g
44
- * "item": {
45
- * "value": "${id}"
46
- * "label": "${name}"
47
- * "hint": "Select a person name"
48
- * }
49
- * @param {*} config
50
- * @param {*} collectionName
51
- * @returns
52
- */
53
- const getCollectionOptions = (config, collectionName) => {
54
- const collectionOptions = config.formData[collectionName].map(collection => ({
55
- value: _copReactComponents.Utils.interpolateString(config.item.value, collection),
56
- label: _copReactComponents.Utils.interpolateString(config.item.label, collection),
57
- hint: _copReactComponents.Utils.interpolateString(config.item.hint, collection)
58
- }));
59
- if (config.data.options) {
60
- return [].concat(collectionOptions, config.data.options);
61
- }
62
- return collectionOptions;
63
- };
64
- const getOptions = (config, callback) => {
65
- if (config) {
66
- var _config$data, _config$data3, _config$data4;
67
- if (config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.collection && config !== null && config !== void 0 && config.item) {
68
- var _config$data2;
69
- const combinedOptions = getCollectionOptions(config, config === null || config === void 0 || (_config$data2 = config.data) === null || _config$data2 === void 0 ? void 0 : _config$data2.collection);
70
- return callback(interpolateOptions(config, combinedOptions));
71
- }
72
- if (config.options && config !== null && config !== void 0 && (_config$data3 = config.data) !== null && _config$data3 !== void 0 && _config$data3.options && config !== null && config !== void 0 && (_config$data4 = config.data) !== null && _config$data4 !== void 0 && _config$data4.url) {
73
- const combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
74
- return callback(interpolateOptions(config, combinedOptions));
75
- }
76
- if (config.options) {
77
- return callback(interpolateOptions(config, config.options));
78
- }
79
- if (config.data && config.data.options) {
80
- return callback(interpolateOptions(config, config.data.options));
81
- }
82
- }
83
- return callback([]);
84
- };
85
- var _default = exports.default = getOptions;
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29wUmVhY3RDb21wb25lbnRzIiwicmVxdWlyZSIsIl9Db25kaXRpb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX25lc3RJblJlZmRhdGFPcHRpb25zIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImludGVycG9sYXRlT3B0aW9ucyIsImNvbmZpZyIsIm9wdGlvbnMiLCJtYXAiLCJvcHQiLCJzaG93X3doZW4iLCJyZXN1bHQiLCJ0eXBlIiwiQ29uZGl0aW9uIiwibWVldHNPbmUiLCJmb3JtRGF0YSIsIm1lZXRzQWxsIiwibGFiZWwiLCJhbHRlcm5hdGl2ZUhpbnRGaWVsZCIsImhpbnQiLCJVdGlscyIsImludGVycG9sYXRlU3RyaW5nIiwibiIsImdldENvbGxlY3Rpb25PcHRpb25zIiwiY29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uT3B0aW9ucyIsImNvbGxlY3Rpb24iLCJpdGVtIiwiZGF0YSIsImNvbmNhdCIsImdldE9wdGlvbnMiLCJjYWxsYmFjayIsIl9jb25maWckZGF0YSIsIl9jb25maWckZGF0YTMiLCJfY29uZmlnJGRhdGE0IiwiX2NvbmZpZyRkYXRhMiIsImNvbWJpbmVkT3B0aW9ucyIsInVybCIsIm5lc3RJblJlZmRhdGFPcHRpb25zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0T3B0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHbG9iYWwgSW1wb3J0c1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICdAdWtob21lb2ZmaWNlL2NvcC1yZWFjdC1jb21wb25lbnRzJztcblxuLy8gTG9jYWwgSW1wb3J0c1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tICcuLi9Db25kaXRpb24nO1xuaW1wb3J0IG5lc3RJblJlZmRhdGFPcHRpb25zIGZyb20gJy4vbmVzdEluUmVmZGF0YU9wdGlvbnMnO1xuXG5jb25zdCBpbnRlcnBvbGF0ZU9wdGlvbnMgPSAoY29uZmlnLCBvcHRpb25zKSA9PlxuICBvcHRpb25zLm1hcCgob3B0KSA9PiB7XG4gICAgaWYgKG9wdC5zaG93X3doZW4pIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgIG9wdC5zaG93X3doZW4udHlwZSA9PT0gJ29yJyA/IENvbmRpdGlvbi5tZWV0c09uZShvcHQsIGNvbmZpZy5mb3JtRGF0YSkgOiBDb25kaXRpb24ubWVldHNBbGwob3B0LCBjb25maWcuZm9ybURhdGEpO1xuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG9wdDtcbiAgICB9XG4gICAgaWYgKCFvcHQudmFsdWUpIHtcbiAgICAgIHJldHVybiBvcHQubGFiZWw7XG4gICAgfVxuICAgIGlmIChjb25maWcuYWx0ZXJuYXRpdmVIaW50RmllbGQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgb3B0LmhpbnQgPSBvcHRbY29uZmlnLmFsdGVybmF0aXZlSGludEZpZWxkXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wdCxcbiAgICAgIHZhbHVlOiBVdGlscy5pbnRlcnBvbGF0ZVN0cmluZyhvcHQudmFsdWUsIGNvbmZpZy5mb3JtRGF0YSksXG4gICAgICBsYWJlbDogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcob3B0LmxhYmVsLCBjb25maWcuZm9ybURhdGEpLFxuICAgICAgaGludDogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcob3B0LmhpbnQsIGNvbmZpZy5mb3JtRGF0YSksXG4gICAgfTtcbiAgfSkuZmlsdGVyKG4gPT4gbik7XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2Ygb3B0aW9ucyB0ZW1wbGF0ZWQgZnJvbSBhIGNvbGxlY3Rpb24gc3BlY2lmaWVkLiBcbiAqIGNvbmZpZyByZXF1aXJlcyBhIGl0ZW0gZmllbGQgd2l0aCB0aGUgdGVtcGxhdGVkIG9wdGlvbnMgIGUuZyBcbiAqIFwiaXRlbVwiOiB7XG4gKiBcInZhbHVlXCI6IFwiJHtpZH1cIlxuICogXCJsYWJlbFwiOiBcIiR7bmFtZX1cIlxuICogXCJoaW50XCI6IFwiU2VsZWN0IGEgcGVyc29uIG5hbWVcIlxuICogfVxuICogQHBhcmFtIHsqfSBjb25maWcgXG4gKiBAcGFyYW0geyp9IGNvbGxlY3Rpb25OYW1lIFxuICogQHJldHVybnMgXG4gKi9cbmNvbnN0IGdldENvbGxlY3Rpb25PcHRpb25zID0gKGNvbmZpZywgY29sbGVjdGlvbk5hbWUpID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uT3B0aW9ucyA9ICBjb25maWcuZm9ybURhdGFbY29sbGVjdGlvbk5hbWVdLm1hcChjb2xsZWN0aW9uID0+ICh7XG4gICAgICB2YWx1ZTogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcoY29uZmlnLml0ZW0udmFsdWUsIGNvbGxlY3Rpb24pLFxuICAgICAgbGFiZWw6ICBVdGlscy5pbnRlcnBvbGF0ZVN0cmluZyhjb25maWcuaXRlbS5sYWJlbCwgY29sbGVjdGlvbiksXG4gICAgICBoaW50OiAgVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcoY29uZmlnLml0ZW0uaGludCwgY29sbGVjdGlvbiksXG4gICAgfSkpXG4gICAgaWYoY29uZmlnLmRhdGEub3B0aW9ucyl7XG4gICAgICByZXR1cm4gWy4uLmNvbGxlY3Rpb25PcHRpb25zLCAuLi5jb25maWcuZGF0YS5vcHRpb25zXVxuICAgIH1cbiAgICByZXR1cm4gY29sbGVjdGlvbk9wdGlvbnNcbn1cblxuY29uc3QgZ2V0T3B0aW9ucyA9IChjb25maWcsIGNhbGxiYWNrKSA9PiB7XG4gIGlmIChjb25maWcpIHtcbiAgICBpZiAoY29uZmlnPy5kYXRhPy5jb2xsZWN0aW9uICYmIGNvbmZpZz8uaXRlbSkge1xuICAgICAgY29uc3QgY29tYmluZWRPcHRpb25zID0gZ2V0Q29sbGVjdGlvbk9wdGlvbnMoY29uZmlnLCBjb25maWc/LmRhdGE/LmNvbGxlY3Rpb24pO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKGludGVycG9sYXRlT3B0aW9ucyhjb25maWcsIGNvbWJpbmVkT3B0aW9ucykpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLm9wdGlvbnMgJiYgY29uZmlnPy5kYXRhPy5vcHRpb25zICYmIGNvbmZpZz8uZGF0YT8udXJsKSB7XG4gICAgICBjb25zdCBjb21iaW5lZE9wdGlvbnMgPSBuZXN0SW5SZWZkYXRhT3B0aW9ucyhjb25maWcub3B0aW9ucywgY29uZmlnLmRhdGEub3B0aW9ucylcbiAgICAgIHJldHVybiBjYWxsYmFjayhpbnRlcnBvbGF0ZU9wdGlvbnMoY29uZmlnLCBjb21iaW5lZE9wdGlvbnMpKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soaW50ZXJwb2xhdGVPcHRpb25zKGNvbmZpZywgY29uZmlnLm9wdGlvbnMpKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5kYXRhICYmIGNvbmZpZy5kYXRhLm9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhpbnRlcnBvbGF0ZU9wdGlvbnMoY29uZmlnLCBjb25maWcuZGF0YS5vcHRpb25zKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYWxsYmFjayhbXSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBnZXRPcHRpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwRCxTQUFBRSx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBZixDQUFBLGFBQUFJLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRCxPQUFBLENBQUFHLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQWUsZUFBQSxDQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsQ0FB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