@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/dist/components/CheckYourAnswers/Answer.js +22 -16
  2. package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
  3. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
  4. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
  5. package/dist/components/CollectionPage/CollectionPage.js +63 -73
  6. package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
  7. package/dist/components/CollectionSummary/BannerStrip.js +13 -13
  8. package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
  9. package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
  11. package/dist/components/CollectionSummary/Confirmation.js +12 -14
  12. package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
  13. package/dist/components/CollectionSummary/RenderListView.js +52 -46
  14. package/dist/components/CollectionSummary/RenderListView.scss +1 -1
  15. package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
  16. package/dist/components/CollectionSummary/SummaryCard.js +152 -110
  17. package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
  18. package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
  19. package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
  20. package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
  21. package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
  22. package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
  23. package/dist/components/FormComponent/Collection.js +108 -74
  24. package/dist/components/FormComponent/Collection.test.js +1081 -909
  25. package/dist/components/FormComponent/Container.js +39 -40
  26. package/dist/components/FormComponent/Container.test.js +412 -312
  27. package/dist/components/FormComponent/FormComponent.js +72 -69
  28. package/dist/components/FormComponent/FormComponent.test.js +414 -353
  29. package/dist/components/FormComponent/helpers/addLabel.js +7 -4
  30. package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
  31. package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
  32. package/dist/components/FormComponent/helpers/getComponentError.js +5 -3
  33. package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
  34. package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
  35. package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
  36. package/dist/components/FormComponent/helpers/index.js +4 -4
  37. package/dist/components/FormPage/FormPage.js +80 -65
  38. package/dist/components/FormPage/FormPage.test.js +163 -127
  39. package/dist/components/FormRenderer/FormRenderer.js +180 -143
  40. package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
  41. package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
  42. package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
  43. package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
  44. package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
  45. package/dist/components/FormRenderer/handlers/index.js +1 -1
  46. package/dist/components/FormRenderer/handlers/navigate.js +3 -3
  47. package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
  48. package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
  49. package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
  50. package/dist/components/FormRenderer/helpers/canCYASubmit.js +3 -1
  51. package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
  52. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
  53. package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
  54. package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
  55. package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
  56. package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
  57. package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
  58. package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
  59. package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
  60. package/dist/components/FormRenderer/helpers/getPage.js +4 -2
  61. package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
  62. package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
  63. package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
  64. package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
  65. package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +97 -103
  66. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
  67. package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
  68. package/dist/components/FormRenderer/helpers/index.js +1 -1
  69. package/dist/components/FormRenderer/onCYAAction.js +51 -59
  70. package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
  71. package/dist/components/FormRenderer/onPageAction.js +39 -43
  72. package/dist/components/FormRenderer/onPageAction.test.js +208 -223
  73. package/dist/components/FormRenderer/onTaskAction.js +13 -9
  74. package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
  75. package/dist/components/PageActions/ActionButton.js +15 -12
  76. package/dist/components/PageActions/ActionButton.test.js +78 -56
  77. package/dist/components/PageActions/PageActions.js +10 -10
  78. package/dist/components/PageActions/PageActions.test.js +115 -86
  79. package/dist/components/SummaryList/GroupAction.js +17 -9
  80. package/dist/components/SummaryList/GroupAction.test.js +33 -37
  81. package/dist/components/SummaryList/RowAction.js +16 -11
  82. package/dist/components/SummaryList/RowAction.test.js +33 -37
  83. package/dist/components/SummaryList/SummaryList.js +34 -21
  84. package/dist/components/SummaryList/SummaryList.scss +15 -0
  85. package/dist/components/SummaryList/SummaryList.test.js +226 -143
  86. package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
  87. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
  88. package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
  89. package/dist/components/SummaryList/SummaryListRow.js +4 -6
  90. package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
  91. package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
  92. package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
  93. package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
  94. package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
  95. package/dist/components/SummaryList/helpers/index.js +1 -1
  96. package/dist/components/TaskList/Task.js +29 -19
  97. package/dist/components/TaskList/Task.test.js +76 -83
  98. package/dist/components/TaskList/TaskList.js +92 -49
  99. package/dist/components/TaskList/TaskList.scss +24 -0
  100. package/dist/components/TaskList/TaskList.test.js +255 -113
  101. package/dist/components/TaskList/TaskState.js +5 -7
  102. package/dist/components/TaskList/TaskState.test.js +45 -52
  103. package/dist/components/index.js +7 -7
  104. package/dist/context/HooksContext/HooksContext.js +80 -57
  105. package/dist/context/HooksContext/HooksContext.test.js +35 -26
  106. package/dist/context/HooksContext/index.js +4 -3
  107. package/dist/context/ValidationContext/ValidationContext.js +94 -43
  108. package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
  109. package/dist/context/ValidationContext/index.js +4 -3
  110. package/dist/context/index.js +2 -2
  111. package/dist/hooks/index.js +10 -9
  112. package/dist/hooks/useAxios.js +40 -14
  113. package/dist/hooks/useGetRequest.js +97 -61
  114. package/dist/hooks/useHooks.js +3 -1
  115. package/dist/hooks/useRefData.js +39 -26
  116. package/dist/hooks/useValidation.js +3 -1
  117. package/dist/index.js +14 -13
  118. package/dist/models/CollectionLabels.js +1 -1
  119. package/dist/models/ComponentTypes.js +25 -25
  120. package/dist/models/EventTypes.js +4 -4
  121. package/dist/models/FormPages.js +4 -4
  122. package/dist/models/FormTypes.js +8 -8
  123. package/dist/models/HubFormats.js +3 -3
  124. package/dist/models/PageAction.js +38 -44
  125. package/dist/models/TaskStates.js +28 -29
  126. package/dist/models/index.js +9 -9
  127. package/dist/setupTests.js +31 -30
  128. package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
  129. package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
  130. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
  131. package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
  132. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
  133. package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
  134. package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
  135. package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
  136. package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
  137. package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
  138. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
  139. package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
  140. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
  141. package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
  142. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
  143. package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
  144. package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
  145. package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
  146. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
  147. package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
  148. package/dist/utils/CheckYourAnswers/index.js +1 -1
  149. package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
  150. package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
  151. package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
  152. package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
  153. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
  154. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
  155. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
  156. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
  157. package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
  158. package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
  159. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
  160. package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
  161. package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
  162. package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
  163. package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
  164. package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
  165. package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
  166. package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
  167. package/dist/utils/CollectionPage/index.js +1 -1
  168. package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
  169. package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
  170. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
  171. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
  172. package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
  173. package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
  174. package/dist/utils/Component/addShowWhen.js +8 -4
  175. package/dist/utils/Component/addShowWhen.test.js +37 -37
  176. package/dist/utils/Component/applyToComponentTree.js +18 -18
  177. package/dist/utils/Component/applyToComponentTree.test.js +32 -27
  178. package/dist/utils/Component/cleanAttributes.js +13 -10
  179. package/dist/utils/Component/cleanAttributes.test.js +18 -17
  180. package/dist/utils/Component/elevateNestedComponents.js +7 -6
  181. package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
  182. package/dist/utils/Component/getComponent.js +94 -88
  183. package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
  184. package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
  185. package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
  186. package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
  187. package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
  188. package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
  189. package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
  190. package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
  191. package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
  192. package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
  193. package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
  194. package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
  195. package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
  196. package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
  197. package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
  198. package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
  199. package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
  200. package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
  201. package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
  202. package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
  203. package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
  204. package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
  205. package/dist/utils/Component/getDefaultValue.js +8 -6
  206. package/dist/utils/Component/getDefaultValue.test.js +12 -12
  207. package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
  208. package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
  209. package/dist/utils/Component/index.js +1 -1
  210. package/dist/utils/Component/isEditable.js +4 -2
  211. package/dist/utils/Component/isEditable.test.js +15 -14
  212. package/dist/utils/Component/optionIsSelected.js +6 -1
  213. package/dist/utils/Component/optionIsSelected.test.js +35 -9
  214. package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
  215. package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
  216. package/dist/utils/Component/showComponent.js +1 -1
  217. package/dist/utils/Component/showComponent.test.js +28 -28
  218. package/dist/utils/Component/wrapInFormGroup.js +2 -2
  219. package/dist/utils/Condition/index.js +1 -1
  220. package/dist/utils/Condition/meetsAllConditions.js +8 -8
  221. package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
  222. package/dist/utils/Condition/meetsCondition.js +25 -16
  223. package/dist/utils/Condition/meetsCondition.test.js +402 -402
  224. package/dist/utils/Condition/meetsOneCondition.js +5 -5
  225. package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
  226. package/dist/utils/Condition/setupConditions.js +18 -13
  227. package/dist/utils/Condition/setupConditions.test.js +7 -7
  228. package/dist/utils/Container/getEditableComponents.js +5 -3
  229. package/dist/utils/Container/getEditableComponents.test.js +45 -43
  230. package/dist/utils/Container/index.js +1 -1
  231. package/dist/utils/Container/setupNesting.js +20 -16
  232. package/dist/utils/Container/setupNesting.test.js +30 -27
  233. package/dist/utils/Container/showContainer.js +7 -3
  234. package/dist/utils/Container/showContainer.test.js +30 -30
  235. package/dist/utils/Data/applyFormula.js +48 -38
  236. package/dist/utils/Data/applyFormula.test.js +20 -20
  237. package/dist/utils/Data/getAutocompleteSource.js +26 -18
  238. package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
  239. package/dist/utils/Data/getDataPath.js +28 -18
  240. package/dist/utils/Data/getDataPath.test.js +12 -12
  241. package/dist/utils/Data/getOptions.js +30 -24
  242. package/dist/utils/Data/getOptions.test.js +27 -27
  243. package/dist/utils/Data/getSourceData.js +19 -6
  244. package/dist/utils/Data/getSourceData.test.js +80 -84
  245. package/dist/utils/Data/index.js +1 -1
  246. package/dist/utils/Data/nestInRefdataOptions.js +16 -9
  247. package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
  248. package/dist/utils/Data/refDataToOptions.js +13 -10
  249. package/dist/utils/Data/refDataToOptions.test.js +19 -19
  250. package/dist/utils/Data/setDataItem.js +8 -7
  251. package/dist/utils/Data/setDataItem.test.js +37 -37
  252. package/dist/utils/Data/setupFormData.js +21 -13
  253. package/dist/utils/Data/setupFormData.test.js +50 -51
  254. package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
  255. package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
  256. package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
  257. package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
  258. package/dist/utils/FormPage/getConditionalText.js +3 -3
  259. package/dist/utils/FormPage/getConditionalText.test.js +29 -29
  260. package/dist/utils/FormPage/getFormPage.js +16 -15
  261. package/dist/utils/FormPage/getFormPage.test.js +46 -47
  262. package/dist/utils/FormPage/getFormPages.js +12 -7
  263. package/dist/utils/FormPage/getFormPages.test.js +23 -20
  264. package/dist/utils/FormPage/getPageActions.js +15 -9
  265. package/dist/utils/FormPage/getPageActions.test.js +32 -32
  266. package/dist/utils/FormPage/getParagraphFromText.js +7 -5
  267. package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
  268. package/dist/utils/FormPage/index.js +4 -2
  269. package/dist/utils/FormPage/showFormPage.js +7 -3
  270. package/dist/utils/FormPage/showFormPage.test.js +32 -32
  271. package/dist/utils/FormPage/showFormPageCYA.js +1 -1
  272. package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
  273. package/dist/utils/FormPage/useComponent.js +28 -21
  274. package/dist/utils/FormPage/useComponent.test.js +79 -77
  275. package/dist/utils/Format/formatData.js +1 -1
  276. package/dist/utils/Format/formatData.test.js +18 -18
  277. package/dist/utils/Format/formatDataForComponent.js +6 -5
  278. package/dist/utils/Format/formatDataForComponent.test.js +78 -50
  279. package/dist/utils/Format/formatDataForForm.js +8 -6
  280. package/dist/utils/Format/formatDataForForm.test.js +16 -13
  281. package/dist/utils/Format/formatDataForPage.js +5 -4
  282. package/dist/utils/Format/formatDataForPage.test.js +25 -20
  283. package/dist/utils/Format/index.js +1 -1
  284. package/dist/utils/Hub/getFormHub.js +1 -1
  285. package/dist/utils/Hub/getFormHub.test.js +31 -28
  286. package/dist/utils/Hub/index.js +1 -1
  287. package/dist/utils/Meta/constants.js +2 -2
  288. package/dist/utils/Meta/documents/getDocuments.js +1 -1
  289. package/dist/utils/Meta/documents/getDocuments.test.js +16 -24
  290. package/dist/utils/Meta/documents/index.js +1 -1
  291. package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
  292. package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
  293. package/dist/utils/Meta/index.js +1 -1
  294. package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
  295. package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
  296. package/dist/utils/Operate/getFirstOf.js +5 -5
  297. package/dist/utils/Operate/getFirstOf.test.js +31 -31
  298. package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
  299. package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +52 -46
  300. package/dist/utils/Operate/getLength.js +50 -0
  301. package/dist/utils/Operate/getLength.test.js +89 -0
  302. package/dist/utils/Operate/index.js +1 -1
  303. package/dist/utils/Operate/persistValueInFormData.js +3 -3
  304. package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
  305. package/dist/utils/Operate/runPageOperations.js +9 -7
  306. package/dist/utils/Operate/runPageOperations.test.js +36 -35
  307. package/dist/utils/Operate/setValueInFormData.js +2 -2
  308. package/dist/utils/Operate/setValueInFormData.test.js +16 -16
  309. package/dist/utils/Operate/shouldRun.js +6 -6
  310. package/dist/utils/Operate/shouldRun.test.js +27 -21
  311. package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
  312. package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
  313. package/dist/utils/Validate/additional/index.js +6 -6
  314. package/dist/utils/Validate/additional/index.test.js +12 -12
  315. package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
  316. package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
  317. package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
  318. package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
  319. package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +11 -7
  320. package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
  321. package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
  322. package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
  323. package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
  324. package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
  325. package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
  326. package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
  327. package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
  328. package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
  329. package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
  330. package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
  331. package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
  332. package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
  333. package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
  334. package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
  335. package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +4 -4
  336. package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
  337. package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
  338. package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
  339. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
  340. package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
  341. package/dist/utils/Validate/additional/mustNotContainSql.js +4 -3
  342. package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
  343. package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
  344. package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +26 -28
  345. package/dist/utils/Validate/additional/utils.js +22 -9
  346. package/dist/utils/Validate/index.js +1 -1
  347. package/dist/utils/Validate/validateCollection.js +25 -19
  348. package/dist/utils/Validate/validateCollection.test.js +66 -74
  349. package/dist/utils/Validate/validateComponent.js +21 -18
  350. package/dist/utils/Validate/validateComponent.test.js +176 -166
  351. package/dist/utils/Validate/validateContainer.js +20 -15
  352. package/dist/utils/Validate/validateContainer.test.js +52 -58
  353. package/dist/utils/Validate/validateDate.js +21 -15
  354. package/dist/utils/Validate/validateDate.test.js +32 -31
  355. package/dist/utils/Validate/validateEmail.js +8 -6
  356. package/dist/utils/Validate/validateEmail.test.js +25 -25
  357. package/dist/utils/Validate/validateMultifile.js +7 -5
  358. package/dist/utils/Validate/validateMultifile.test.js +18 -17
  359. package/dist/utils/Validate/validatePage.js +22 -19
  360. package/dist/utils/Validate/validatePage.test.js +203 -215
  361. package/dist/utils/Validate/validateRegex.js +5 -3
  362. package/dist/utils/Validate/validateRegex.test.js +14 -14
  363. package/dist/utils/Validate/validateRequired.js +6 -4
  364. package/dist/utils/Validate/validateRequired.test.js +18 -18
  365. package/dist/utils/Validate/validateTextArea.js +6 -4
  366. package/dist/utils/Validate/validateTextArea.test.js +20 -20
  367. package/dist/utils/Validate/validateTime.js +26 -11
  368. package/dist/utils/Validate/validateTime.test.js +62 -16
  369. package/dist/utils/index.js +9 -7
  370. package/package.json +2 -2
  371. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
  372. package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
@@ -4,30 +4,30 @@ var _showContainer = _interopRequireDefault(require("./showContainer"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils.Container.showContainer', () => {
8
- const DATA = {
7
+ describe('utils.Container.showContainer', function () {
8
+ var DATA = {
9
9
  alpha: 'Alpha',
10
10
  bravo: 'Bravo'
11
11
  };
12
- const HTML = {
12
+ var HTML = {
13
13
  type: 'html',
14
14
  tagName: 'p',
15
15
  content: 'Alpha'
16
16
  };
17
- const INSET_TEXT = {
17
+ var INSET_TEXT = {
18
18
  type: 'inset-text',
19
19
  content: 'Bravo'
20
20
  };
21
- const HEADING = {
21
+ var HEADING = {
22
22
  type: 'heading',
23
23
  size: 'm',
24
24
  content: 'Charlie'
25
25
  };
26
- it('should NOT be shown when the container is null', () => {
26
+ it('should NOT be shown when the container is null', function () {
27
27
  expect((0, _showContainer.default)(null, DATA)).toBeFalsy();
28
28
  });
29
- it('should NOT be shown when the container has a single show_when condition that is NOT matched', () => {
30
- const CONTAINER = {
29
+ it('should NOT be shown when the container has a single show_when condition that is NOT matched', function () {
30
+ var CONTAINER = {
31
31
  show_when: {
32
32
  field: 'charlie',
33
33
  op: '=',
@@ -36,8 +36,8 @@ describe('utils.Container.showContainer', () => {
36
36
  };
37
37
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
38
38
  });
39
- it('should NOT be shown when the container has multiple show_when conditions and at least one is NOT matched', () => {
40
- const CONTAINER = {
39
+ it('should NOT be shown when the container has multiple show_when conditions and at least one is NOT matched', function () {
40
+ var CONTAINER = {
41
41
  show_when: [{
42
42
  field: 'alpha',
43
43
  op: '=',
@@ -50,8 +50,8 @@ describe('utils.Container.showContainer', () => {
50
50
  };
51
51
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
52
52
  });
53
- it('SHOULD be shown when the container has a single show_when condition that IS matched', () => {
54
- const CONTAINER = {
53
+ it('SHOULD be shown when the container has a single show_when condition that IS matched', function () {
54
+ var CONTAINER = {
55
55
  show_when: {
56
56
  field: 'alpha',
57
57
  op: '=',
@@ -60,8 +60,8 @@ describe('utils.Container.showContainer', () => {
60
60
  };
61
61
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
62
62
  });
63
- it('SHOULD be shown when the container has multiple show_when conditions that are ALL matched', () => {
64
- const CONTAINER = {
63
+ it('SHOULD be shown when the container has multiple show_when conditions that are ALL matched', function () {
64
+ var CONTAINER = {
65
65
  show_when: [{
66
66
  field: 'alpha',
67
67
  op: '=',
@@ -74,14 +74,14 @@ describe('utils.Container.showContainer', () => {
74
74
  };
75
75
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
76
76
  });
77
- it('SHOULD be shown when the container has NO show_when conditions and NO editable components', () => {
78
- const CONTAINER = {
77
+ it('SHOULD be shown when the container has NO show_when conditions and NO editable components', function () {
78
+ var CONTAINER = {
79
79
  components: [HTML, INSET_TEXT, HEADING]
80
80
  };
81
81
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
82
82
  });
83
- it('should NOT be shown when the container has NO show_when conditions and NO SHOWN editable components', () => {
84
- const TEXT = {
83
+ it('should NOT be shown when the container has NO show_when conditions and NO SHOWN editable components', function () {
84
+ var TEXT = {
85
85
  type: 'text',
86
86
  show_when: {
87
87
  field: 'charlie',
@@ -89,7 +89,7 @@ describe('utils.Container.showContainer', () => {
89
89
  value: 'Charlie'
90
90
  }
91
91
  };
92
- const RADIOS = {
92
+ var RADIOS = {
93
93
  type: 'radios',
94
94
  show_when: {
95
95
  field: 'charlie',
@@ -97,13 +97,13 @@ describe('utils.Container.showContainer', () => {
97
97
  value: 'Charlie'
98
98
  }
99
99
  };
100
- const CONTAINER = {
100
+ var CONTAINER = {
101
101
  components: [TEXT, RADIOS]
102
102
  };
103
103
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
104
104
  });
105
- it('SHOULD be shown when the container has NO show_when conditions and AT LEAST ONE SHOWN editable components', () => {
106
- const TEXT = {
105
+ it('SHOULD be shown when the container has NO show_when conditions and AT LEAST ONE SHOWN editable components', function () {
106
+ var TEXT = {
107
107
  type: 'text',
108
108
  show_when: {
109
109
  field: 'alpha',
@@ -111,7 +111,7 @@ describe('utils.Container.showContainer', () => {
111
111
  value: 'Alpha'
112
112
  }
113
113
  };
114
- const RADIOS = {
114
+ var RADIOS = {
115
115
  type: 'radios',
116
116
  show_when: {
117
117
  field: 'charlie',
@@ -119,13 +119,13 @@ describe('utils.Container.showContainer', () => {
119
119
  value: 'Charlie'
120
120
  }
121
121
  };
122
- const CONTAINER = {
122
+ var CONTAINER = {
123
123
  components: [TEXT, RADIOS]
124
124
  };
125
125
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
126
126
  });
127
- it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and ALL are matched', () => {
128
- const CONTAINER = {
127
+ it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and ALL are matched', function () {
128
+ var CONTAINER = {
129
129
  show_when: {
130
130
  "type": "or",
131
131
  "conditions": [{
@@ -141,8 +141,8 @@ describe('utils.Container.showContainer', () => {
141
141
  };
142
142
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
143
143
  });
144
- it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and at least ONE is matched', () => {
145
- const CONTAINER = {
144
+ it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and at least ONE is matched', function () {
145
+ var CONTAINER = {
146
146
  show_when: {
147
147
  "type": "or",
148
148
  "conditions": [{
@@ -158,8 +158,8 @@ describe('utils.Container.showContainer', () => {
158
158
  };
159
159
  expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
160
160
  });
161
- it('should NOT be shown when the container has multiple show_when conditions, with type "or" provided and NONE are matched', () => {
162
- const CONTAINER = {
161
+ it('should NOT be shown when the container has multiple show_when conditions, with type "or" provided and NONE are matched', function () {
162
+ var CONTAINER = {
163
163
  show_when: {
164
164
  "type": "or",
165
165
  "conditions": [{
@@ -5,13 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
- /* eslint-disable no-use-before-define, prefer-exponentiation-operator, no-restricted-properties */
9
-
10
- // Global imports
11
-
12
- const applyFormula = config => {
8
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable no-use-before-define, prefer-exponentiation-operator, no-restricted-properties */ // Global imports
14
+ var applyFormula = function applyFormula(config) {
13
15
  try {
14
- const result = simplify(config);
16
+ var result = simplify(config);
15
17
  return !result && result !== 0 ? '' : result;
16
18
  } catch (err) {
17
19
  // eslint-disable-next-line no-console
@@ -19,67 +21,72 @@ const applyFormula = config => {
19
21
  }
20
22
  return '';
21
23
  };
22
- const simplify = config => {
24
+ var simplify = function simplify(config) {
23
25
  if (!config || !config.formula) {
24
26
  throw new Error("Missing 'formula' definition");
25
27
  }
26
- const {
27
- name
28
- } = {
29
- ...config.formula
30
- };
28
+ var _config$formula = _objectSpread({}, config.formula),
29
+ name = _config$formula.name;
31
30
  switch (name) {
32
31
  case 'multiply':
33
- return reduceNumber(config, (t, c) => t * c);
32
+ return reduceNumber(config, function (t, c) {
33
+ return t * c;
34
+ });
34
35
  case 'divide':
35
- return reduceNumber(config, (t, c) => t / c);
36
+ return reduceNumber(config, function (t, c) {
37
+ return t / c;
38
+ });
36
39
  case 'plus':
37
- return reduceNumber(config, (t, c) => t + c);
40
+ return reduceNumber(config, function (t, c) {
41
+ return t + c;
42
+ });
38
43
  case 'minus':
39
- return reduceNumber(config, (t, c) => t - c);
44
+ return reduceNumber(config, function (t, c) {
45
+ return t - c;
46
+ });
40
47
  default:
41
48
  throw new Error(!name ? "Calculation formula 'name' cannot be empty" : "Unsupported operation '".concat(name, "'"));
42
49
  }
43
50
  };
44
- const reduceNumber = (config, reduction) => {
45
- const {
46
- args
47
- } = {
48
- ...config.formula
49
- };
51
+ var reduceNumber = function reduceNumber(config, reduction) {
52
+ var _config$formula2 = _objectSpread({}, config.formula),
53
+ args = _config$formula2.args;
50
54
  if (args.length < 2) {
51
55
  throw new Error('Requires more than one argument for calculation');
52
56
  }
53
- return round(args.map(a => getValue(a, config.formData)).reduce((total, current, index) => index === 0 ? current : reduction(total, current), 0), config);
57
+ return round(args.map(function (a) {
58
+ return getValue(a, config.formData);
59
+ }).reduce(function (total, current, index) {
60
+ return index === 0 ? current : reduction(total, current);
61
+ }, 0), config);
54
62
  };
55
- const round = (number, config) => {
56
- const roundNumber = config.formula.round;
63
+ var round = function round(number, config) {
64
+ var roundNumber = config.formula.round;
57
65
  if (!roundNumber && roundNumber !== 0 || !number) return number;
58
66
  if (roundNumber === 0) {
59
67
  return parseInt(number, 10);
60
68
  }
61
- const precisionScale = Math.pow(10, roundNumber);
69
+ var precisionScale = Math.pow(10, roundNumber);
62
70
  return Math.round((number + Number.EPSILON) * precisionScale) / precisionScale;
63
71
  };
64
- const getValue = (arg, formData) => {
65
- const keys = Object.keys(arg);
72
+ var getValue = function getValue(arg, formData) {
73
+ var keys = Object.keys(arg);
66
74
  if (keys.length === 1) {
67
- const key = keys[0];
68
- const val = arg[key];
75
+ var key = keys[0];
76
+ var val = arg[key];
69
77
  switch (key) {
70
78
  case 'field':
71
79
  {
72
- const fieldVal = fieldValue(val, formData);
80
+ var fieldVal = fieldValue(val, formData);
73
81
  return !fieldVal && fieldVal !== 0 ? NaN : parseFloat(fieldVal);
74
82
  }
75
83
  ;
76
84
  case 'value':
77
85
  return parseFloat(val);
78
86
  case 'formula':
79
- return applyFormula({
80
- ...arg,
81
- formData
82
- });
87
+ return applyFormula(_objectSpread(_objectSpread({}, arg), {}, {
88
+ formData: formData
89
+ }));
83
90
  default:
84
91
  throw new Error('Only accept following as argument field: {field, value, or formula}');
85
92
  }
@@ -87,7 +94,10 @@ const getValue = (arg, formData) => {
87
94
  throw new Error('Argument cannot have more than one reference');
88
95
  }
89
96
  };
90
- const fieldValue = (field, data) =>
91
- // eslint-disable-next-line prefer-template
92
- _copReactComponents.Utils.interpolateString('${' + field + '}', data);
97
+ var fieldValue = function fieldValue(field, data) {
98
+ return (
99
+ // eslint-disable-next-line prefer-template
100
+ _copReactComponents.Utils.interpolateString('${' + field + '}', data)
101
+ );
102
+ };
93
103
  var _default = exports.default = applyFormula;
@@ -4,29 +4,29 @@ var _applyFormula = _interopRequireDefault(require("./applyFormula"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  // Local imports
6
6
 
7
- describe('utils.Data.applyFormula', () => {
8
- const error = jest.spyOn(console, 'error').mockImplementation(() => {});
9
- afterAll(() => {
7
+ describe('utils.Data.applyFormula', function () {
8
+ var error = jest.spyOn(console, 'error').mockImplementation(function () {});
9
+ afterAll(function () {
10
10
  error.mockReset();
11
11
  });
12
- afterEach(() => {
12
+ afterEach(function () {
13
13
  error.mockClear();
14
14
  });
15
- it('should throw and handle exception for a null config', () => {
15
+ it('should throw and handle exception for a null config', function () {
16
16
  (0, _applyFormula.default)(null);
17
17
  expect(error).toBeCalledWith("Missing 'formula' definition");
18
18
  });
19
- it("should throw and handle exception for config with missing 'formula'", () => {
19
+ it("should throw and handle exception for config with missing 'formula'", function () {
20
20
  (0, _applyFormula.default)({});
21
21
  expect(error).toBeCalledWith("Missing 'formula' definition");
22
22
  });
23
- it("should throw and handle exception for config with 'formula' but missing 'name'", () => {
23
+ it("should throw and handle exception for config with 'formula' but missing 'name'", function () {
24
24
  (0, _applyFormula.default)({
25
25
  formula: {}
26
26
  });
27
27
  expect(error).toBeCalledWith("Calculation formula 'name' cannot be empty");
28
28
  });
29
- it("should throw and handle exception for config with 'formula' with unsupported operation 'name'", () => {
29
+ it("should throw and handle exception for config with 'formula' with unsupported operation 'name'", function () {
30
30
  (0, _applyFormula.default)({
31
31
  formula: {
32
32
  name: "something"
@@ -34,7 +34,7 @@ describe('utils.Data.applyFormula', () => {
34
34
  });
35
35
  expect(error).toBeCalledWith("Unsupported operation 'something'");
36
36
  });
37
- it("should throw and handle exception for 'formula' with wrong argument name", () => {
37
+ it("should throw and handle exception for 'formula' with wrong argument name", function () {
38
38
  (0, _applyFormula.default)({
39
39
  formula: {
40
40
  name: 'plus',
@@ -47,7 +47,7 @@ describe('utils.Data.applyFormula', () => {
47
47
  });
48
48
  expect(error).toBeCalledWith('Only accept following as argument field: {field, value, or formula}');
49
49
  });
50
- it("should throw and handle exception for 'formula' argument with more than one field", () => {
50
+ it("should throw and handle exception for 'formula' argument with more than one field", function () {
51
51
  (0, _applyFormula.default)({
52
52
  formula: {
53
53
  name: 'plus',
@@ -61,7 +61,7 @@ describe('utils.Data.applyFormula', () => {
61
61
  });
62
62
  expect(error).toBeCalledWith('Argument cannot have more than one reference');
63
63
  });
64
- it("should throw and handle exception for 'formula' with single argument", () => {
64
+ it("should throw and handle exception for 'formula' with single argument", function () {
65
65
  (0, _applyFormula.default)({
66
66
  formula: {
67
67
  name: 'plus',
@@ -72,7 +72,7 @@ describe('utils.Data.applyFormula', () => {
72
72
  });
73
73
  expect(error).toBeCalledWith('Requires more than one argument for calculation');
74
74
  });
75
- const DATA = {
75
+ var DATA = {
76
76
  fieldA: '10',
77
77
  fieldB: '20',
78
78
  fieldC: 'abc',
@@ -137,9 +137,9 @@ describe('utils.Data.applyFormula', () => {
137
137
  field: 'fieldE'
138
138
  }],
139
139
  result: 2000
140
- }].forEach(test => {
141
- it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"), () => {
142
- const config = {
140
+ }].forEach(function (test) {
141
+ it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"), function () {
142
+ var config = {
143
143
  formData: DATA,
144
144
  formula: {
145
145
  name: test.name,
@@ -214,9 +214,9 @@ describe('utils.Data.applyFormula', () => {
214
214
  fieldB: 'G3',
215
215
  round: 1,
216
216
  result: ''
217
- }].forEach(test => {
218
- it("should calculdate and round result to precision ".concat(test.round), () => {
219
- const config = {
217
+ }].forEach(function (test) {
218
+ it("should calculdate and round result to precision ".concat(test.round), function () {
219
+ var config = {
220
220
  formData: {
221
221
  fieldA: test.fieldA,
222
222
  fieldB: test.fieldB
@@ -234,8 +234,8 @@ describe('utils.Data.applyFormula', () => {
234
234
  expect((0, _applyFormula.default)(config)).toEqual(test.result);
235
235
  });
236
236
  });
237
- it("should calculate nested 'formula'", () => {
238
- const config = {
237
+ it("should calculate nested 'formula'", function () {
238
+ var config = {
239
239
  formData: {
240
240
  fieldA: '19',
241
241
  fieldB: '66'
@@ -11,26 +11,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
11
11
 
12
12
  // Local imports
13
13
 
14
- const getAutocompleteSource = config => {
15
- let options = [];
16
- (0, _getOptions.default)(config, val => {
14
+ var getAutocompleteSource = function getAutocompleteSource(config) {
15
+ var options = [];
16
+ (0, _getOptions.default)(config, function (val) {
17
17
  options = val;
18
18
  });
19
- const labelMaker = config !== null && config !== void 0 && config.item ? _copReactComponents.Utils.itemLabel(config.item) : null;
20
- return (query, populateResults) => {
21
- const lcQuery = query ? query.toLowerCase() : '';
19
+ var labelMaker = config !== null && config !== void 0 && config.item ? _copReactComponents.Utils.itemLabel(config.item) : null;
20
+ return function (query, populateResults) {
21
+ var lcQuery = query ? query.toLowerCase() : '';
22
22
 
23
23
  // go through all options and give them a grade
24
24
 
25
- const results = options.map(opt => {
26
- const label = labelMaker ? labelMaker(opt) : opt.label || '';
27
- const lcLabel = label.toLowerCase();
25
+ var results = options.map(function (opt) {
26
+ var label = labelMaker ? labelMaker(opt) : opt.label || '';
27
+ var lcLabel = label.toLowerCase();
28
28
 
29
29
  // result 'score'
30
- let grade = 0;
30
+ var grade = 0;
31
31
 
32
32
  // highest result - match at start of string
33
- const index = lcLabel.indexOf(lcQuery);
33
+ var index = lcLabel.indexOf(lcQuery);
34
34
  if (index === 0) {
35
35
  grade = 1;
36
36
  } else if (index > 0) {
@@ -38,13 +38,15 @@ const getAutocompleteSource = config => {
38
38
  } else {
39
39
  var _config$item;
40
40
  if (opt.synonyms) {
41
- const match = opt.synonyms.some(synonym => synonym.toLowerCase().includes(lcQuery));
41
+ var match = opt.synonyms.some(function (synonym) {
42
+ return synonym.toLowerCase().includes(lcQuery);
43
+ });
42
44
  if (match) {
43
45
  grade = 4;
44
46
  }
45
47
  }
46
48
  if (!grade && (_config$item = config.item) !== null && _config$item !== void 0 && _config$item.extraFieldsToSearch) {
47
- const found = config.item.extraFieldsToSearch.some(field => {
49
+ var found = config.item.extraFieldsToSearch.some(function (field) {
48
50
  if (typeof opt[field] !== 'string') {
49
51
  return false;
50
52
  }
@@ -54,16 +56,22 @@ const getAutocompleteSource = config => {
54
56
  }
55
57
  }
56
58
  return {
57
- grade,
58
- label,
59
- opt
59
+ grade: grade,
60
+ label: label,
61
+ opt: opt
60
62
  };
61
- }).filter(result => result.grade > 0);
63
+ }).filter(function (result) {
64
+ return result.grade > 0;
65
+ });
62
66
 
63
67
  // sort results and then map to just opts
64
68
  populateResults(results
65
69
  // the sort prioritises grade but also sorts by string value
66
- .sort((r1, r2) => (r1.grade - r2.grade) * 16 + r1.label.localeCompare(r2.label)).map(r => r.opt));
70
+ .sort(function (r1, r2) {
71
+ return (r1.grade - r2.grade) * 16 + r1.label.localeCompare(r2.label);
72
+ }).map(function (r) {
73
+ return r.opt;
74
+ }));
67
75
  };
68
76
  };
69
77
  var _default = exports.default = getAutocompleteSource;