@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.4 → 4.17.5

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 (560) hide show
  1. package/dpr/assets/app.js.map +1 -1
  2. package/dpr/components/_async/async-filters-form/sortByTemplate.js +1 -1
  3. package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +1 -1
  4. package/dpr/components/_async/async-filters-form/types.d.js +1 -1
  5. package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
  6. package/dpr/components/_async/async-filters-form/utils.js +1 -1
  7. package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
  8. package/dpr/components/_async/async-filters-form/utils.test.ts +9 -9
  9. package/dpr/components/_async/async-filters-form/utils.ts +1 -1
  10. package/dpr/components/_async/async-filters-form/view.njk +6 -3
  11. package/dpr/components/_catalogue/catalogue/types.js +1 -1
  12. package/dpr/components/_catalogue/catalogue/types.js.map +1 -1
  13. package/dpr/components/_catalogue/catalogue/utils.js +1 -1
  14. package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
  15. package/dpr/components/_catalogue/catalogue/utils.test.ts +6 -3
  16. package/dpr/components/_catalogue/catalogue/utils.ts +1 -1
  17. package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
  18. package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
  19. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -0
  20. package/dpr/components/_catalogue/catalogue-list/utils.ts +5 -5
  21. package/dpr/components/_charts/chart/Buckets.js +1 -1
  22. package/dpr/components/_charts/chart/Buckets.js.map +3 -3
  23. package/dpr/components/_charts/chart/Buckets.ts +3 -3
  24. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  25. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  26. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -13
  27. package/dpr/components/_charts/chart/heatmap/types.js +1 -1
  28. package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
  29. package/dpr/components/_charts/chart/heatmap/types.ts +1 -1
  30. package/dpr/components/_charts/utils.js +1 -1
  31. package/dpr/components/_charts/utils.js.map +3 -3
  32. package/dpr/components/_charts/utils.test.ts +1 -0
  33. package/dpr/components/_charts/utils.ts +84 -43
  34. package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
  35. package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
  36. package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
  37. package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -11
  38. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +1 -1
  39. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +2 -2
  40. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +1 -1
  41. package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
  42. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  43. package/dpr/components/_dashboards/dashboard-visualisation/types.ts +8 -8
  44. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  45. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  46. package/dpr/components/_dashboards/scorecard/Scorecard.ts +8 -8
  47. package/dpr/components/_dashboards/scorecard/types.js +1 -1
  48. package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
  49. package/dpr/components/_dashboards/scorecard/types.ts +12 -10
  50. package/dpr/components/_dashboards/scorecard/utils.js +1 -1
  51. package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
  52. package/dpr/components/_dashboards/scorecard/utils.test.ts +1 -0
  53. package/dpr/components/_filters/filter-input/enum.js +1 -1
  54. package/dpr/components/_filters/filter-input/enum.js.map +1 -1
  55. package/dpr/components/_filters/filter-input/filters.js +1 -1
  56. package/dpr/components/_filters/filter-input/filters.js.map +1 -1
  57. package/dpr/components/_filters/filter-input/filters.test.ts +1 -0
  58. package/dpr/components/_filters/filter-input/types.d.js +1 -1
  59. package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
  60. package/dpr/components/_filters/filters-selected/utils.js +1 -1
  61. package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
  62. package/dpr/components/_filters/filters-selected/utils.test.ts +7 -4
  63. package/dpr/components/_filters/filters-selected/utils.ts +1 -1
  64. package/dpr/components/_filters/filtersTypeEnum.js +1 -1
  65. package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
  66. package/dpr/components/_filters/types.d.js +1 -1
  67. package/dpr/components/_filters/types.d.js.map +2 -2
  68. package/dpr/components/_filters/types.d.ts +5 -5
  69. package/dpr/components/_filters/utils.js +1 -1
  70. package/dpr/components/_filters/utils.js.map +2 -2
  71. package/dpr/components/_filters/utils.test.ts +54 -49
  72. package/dpr/components/_filters/utils.ts +16 -20
  73. package/dpr/components/_inputs/date-input/utils.js +1 -1
  74. package/dpr/components/_inputs/date-input/utils.js.map +1 -1
  75. package/dpr/components/_inputs/date-input/utils.test.ts +1 -0
  76. package/dpr/components/_inputs/date-range/clientClass.mjs +2 -2
  77. package/dpr/components/_inputs/date-range/types.js +1 -1
  78. package/dpr/components/_inputs/date-range/types.js.map +2 -2
  79. package/dpr/components/_inputs/date-range/types.ts +2 -2
  80. package/dpr/components/_inputs/date-range/utils.js +1 -1
  81. package/dpr/components/_inputs/date-range/utils.js.map +2 -2
  82. package/dpr/components/_inputs/date-range/utils.test.ts +5 -7
  83. package/dpr/components/_inputs/date-range/utils.ts +4 -4
  84. package/dpr/components/_inputs/date-range/view.njk +1 -0
  85. package/dpr/components/_inputs/granular-date-range/types.js +1 -1
  86. package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
  87. package/dpr/components/_inputs/granular-date-range/utils.js +1 -1
  88. package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
  89. package/dpr/components/_inputs/granular-date-range/utils.test.ts +1 -0
  90. package/dpr/components/_inputs/multi-select/utils.js +1 -1
  91. package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
  92. package/dpr/components/_inputs/multi-select/utils.ts +1 -1
  93. package/dpr/components/_inputs/multi-select/utilt.test.ts +29 -14
  94. package/dpr/components/_inputs/start-end-date/utils.js +1 -1
  95. package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
  96. package/dpr/components/_inputs/start-end-date/utils.test.ts +1 -0
  97. package/dpr/components/_reports/report-actions/actionsTemplate.js +1 -1
  98. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
  99. package/dpr/components/_reports/report-actions/types.d.js +1 -1
  100. package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
  101. package/dpr/components/_reports/report-actions/types.d.ts +1 -1
  102. package/dpr/components/_reports/report-actions/utils.js +1 -1
  103. package/dpr/components/_reports/report-actions/utils.js.map +1 -1
  104. package/dpr/components/_reports/report-actions/utils.test.ts +8 -4
  105. package/dpr/components/_reports/report-columns-form/types.d.js +1 -1
  106. package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
  107. package/dpr/components/_reports/report-columns-form/utils.js +1 -1
  108. package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
  109. package/dpr/components/_reports/report-columns-form/utils.ts +1 -1
  110. package/dpr/components/_reports/report-data-table/types.d.js +1 -1
  111. package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
  112. package/dpr/components/_reports/report-data-table/utils.js +1 -1
  113. package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
  114. package/dpr/components/_reports/report-data-table/utils.test.ts +15 -8
  115. package/dpr/components/_reports/report-data-table/utils.ts +20 -8
  116. package/dpr/components/_reports/report-pagination/types.d.js +1 -1
  117. package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
  118. package/dpr/components/_reports/report-pagination/types.d.ts +2 -2
  119. package/dpr/components/_reports/report-pagination/utils.js +1 -1
  120. package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
  121. package/dpr/components/_reports/report-pagination/utils.test.ts +1 -0
  122. package/dpr/components/_reports/report-totals/utils.js +1 -1
  123. package/dpr/components/_reports/report-totals/utils.js.map +1 -1
  124. package/dpr/components/card-group/utils.js +1 -1
  125. package/dpr/components/card-group/utils.js.map +1 -1
  126. package/dpr/components/card-group/utils.test.ts +7 -0
  127. package/dpr/components/report-list/defaultTokenProvider.js +1 -1
  128. package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
  129. package/dpr/components/report-list/defaultTokenProvider.ts +3 -3
  130. package/dpr/components/report-list/types.d.js +1 -1
  131. package/dpr/components/report-list/types.d.js.map +1 -1
  132. package/dpr/components/report-list/utils.js +1 -1
  133. package/dpr/components/report-list/utils.js.map +2 -2
  134. package/dpr/components/report-list/utils.test.ts +6 -4
  135. package/dpr/components/report-list/utils.ts +5 -5
  136. package/dpr/components/show-more/utils.js +1 -1
  137. package/dpr/components/show-more/utils.js.map +1 -1
  138. package/dpr/components/user-reports/bookmarks/utils.js +1 -1
  139. package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
  140. package/dpr/components/user-reports/bookmarks/utils.test.ts +14 -11
  141. package/dpr/components/user-reports/bookmarks/utils.ts +26 -31
  142. package/dpr/components/user-reports/requested/utils.js +1 -1
  143. package/dpr/components/user-reports/requested/utils.js.map +3 -3
  144. package/dpr/components/user-reports/requested/utils.test.ts +4 -3
  145. package/dpr/components/user-reports/requested/utils.ts +4 -3
  146. package/dpr/components/user-reports/types.d.js +1 -1
  147. package/dpr/components/user-reports/types.d.js.map +2 -2
  148. package/dpr/components/user-reports/types.d.ts +1 -1
  149. package/dpr/components/user-reports/utils.js +1 -1
  150. package/dpr/components/user-reports/utils.js.map +3 -3
  151. package/dpr/components/user-reports/utils.test.ts +48 -47
  152. package/dpr/components/user-reports/utils.ts +51 -57
  153. package/dpr/components/user-reports/viewed/utils.js +1 -1
  154. package/dpr/components/user-reports/viewed/utils.js.map +2 -2
  155. package/dpr/components/user-reports/viewed/utils.ts +5 -4
  156. package/dpr/data/agentConfig.js +1 -1
  157. package/dpr/data/agentConfig.js.map +1 -1
  158. package/dpr/data/dashboardClient.js +1 -1
  159. package/dpr/data/dashboardClient.js.map +2 -2
  160. package/dpr/data/dashboardClient.ts +2 -2
  161. package/dpr/data/dprReportingClient.js +1 -1
  162. package/dpr/data/dprReportingClient.js.map +3 -3
  163. package/dpr/data/dprReportingClient.ts +3 -3
  164. package/dpr/data/missingReportClient.js +2 -0
  165. package/dpr/data/missingReportClient.js.map +7 -0
  166. package/dpr/{services/missingReport → data}/missingReportClient.ts +4 -4
  167. package/dpr/data/productCollectionClient.js +2 -0
  168. package/dpr/data/productCollectionClient.js.map +7 -0
  169. package/dpr/data/productCollectionClient.ts +28 -0
  170. package/dpr/data/reportDataStore.js +1 -1
  171. package/dpr/data/reportDataStore.js.map +1 -1
  172. package/dpr/data/reportingClient.js +1 -1
  173. package/dpr/data/reportingClient.js.map +3 -3
  174. package/dpr/data/reportingClient.ts +7 -9
  175. package/dpr/data/restClient.js +1 -1
  176. package/dpr/data/restClient.js.map +2 -2
  177. package/dpr/data/restClient.ts +5 -5
  178. package/dpr/data/types.d.js +1 -1
  179. package/dpr/data/types.d.js.map +2 -2
  180. package/dpr/data/types.d.ts +1 -1
  181. package/dpr/middleware/reportAuthoriser.js +1 -1
  182. package/dpr/middleware/reportAuthoriser.js.map +2 -2
  183. package/dpr/middleware/reportAuthoriser.ts +2 -2
  184. package/dpr/middleware/setUpDprResources.js +1 -1
  185. package/dpr/middleware/setUpDprResources.js.map +2 -2
  186. package/dpr/middleware/setUpDprResources.test.ts +59 -20
  187. package/dpr/middleware/setUpDprResources.ts +30 -29
  188. package/dpr/middleware/setUpNestedRoute.js +1 -1
  189. package/dpr/middleware/setUpNestedRoute.js.map +2 -2
  190. package/dpr/middleware/setUpNestedRoute.ts +1 -1
  191. package/dpr/routes/index.js +1 -1
  192. package/dpr/routes/index.js.map +2 -2
  193. package/dpr/routes/index.ts +1 -2
  194. package/dpr/routes/journeys/download-report/controller.js +1 -1
  195. package/dpr/routes/journeys/download-report/controller.js.map +3 -3
  196. package/dpr/routes/journeys/download-report/controller.ts +7 -6
  197. package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
  198. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
  199. package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
  200. package/dpr/routes/journeys/download-report/request-download/form/routes.js +1 -1
  201. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +1 -1
  202. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
  203. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
  204. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.ts +1 -1
  205. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +1 -1
  206. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +1 -1
  207. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
  208. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
  209. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
  210. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +1 -1
  211. package/dpr/routes/journeys/download-report/request-download/routes.js +1 -1
  212. package/dpr/routes/journeys/download-report/request-download/routes.js.map +1 -1
  213. package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
  214. package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
  215. package/dpr/routes/journeys/download-report/request-download/service.ts +20 -8
  216. package/dpr/routes/journeys/download-report/routes.js +1 -1
  217. package/dpr/routes/journeys/download-report/routes.js.map +3 -3
  218. package/dpr/routes/journeys/download-report/routes.ts +1 -4
  219. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  220. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  221. package/dpr/routes/journeys/download-report/tests.cy.ts +4 -1
  222. package/dpr/routes/journeys/download-report/utils.js +1 -1
  223. package/dpr/routes/journeys/download-report/utils.js.map +2 -2
  224. package/dpr/routes/journeys/download-report/utils.ts +2 -4
  225. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  226. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
  227. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
  228. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
  229. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts +2 -2
  230. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +1 -1
  231. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +1 -1
  232. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
  233. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
  234. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -2
  235. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
  236. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
  237. package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
  238. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
  239. package/dpr/routes/journeys/my-reports/bookmarks/service.ts +31 -18
  240. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
  241. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  242. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +26 -26
  243. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
  244. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
  245. package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +10 -11
  246. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  247. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
  248. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
  249. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
  250. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.ts +1 -1
  251. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +1 -1
  252. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +1 -1
  253. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
  254. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  255. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +7 -4
  256. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +1 -1
  257. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +1 -1
  258. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +1 -1
  259. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
  260. package/dpr/routes/journeys/my-reports/recently-viewed/service.ts +0 -2
  261. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
  262. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
  263. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
  264. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
  265. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.ts +1 -1
  266. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +1 -1
  267. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +1 -1
  268. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
  269. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +1 -1
  270. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +1 -1
  271. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +1 -1
  272. package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
  273. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
  274. package/dpr/routes/journeys/my-reports/requested-reports/service.ts +25 -17
  275. package/dpr/routes/journeys/my-reports/routes.js +1 -1
  276. package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
  277. package/dpr/routes/journeys/my-reports/routes.ts +0 -3
  278. package/dpr/routes/journeys/product-collection/routes.js +1 -1
  279. package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
  280. package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
  281. package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
  282. package/dpr/routes/journeys/product-collection/selected/routes.js +1 -1
  283. package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
  284. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
  285. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
  286. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +6 -4
  287. package/dpr/routes/journeys/product-collection/selected/validation.js +1 -1
  288. package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
  289. package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
  290. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
  291. package/dpr/routes/journeys/request-missing-report/form/controller.ts +21 -19
  292. package/dpr/routes/journeys/request-missing-report/form/routes.js +1 -1
  293. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +1 -1
  294. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
  295. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +1 -1
  296. package/dpr/routes/journeys/request-missing-report/form/validation.js +1 -1
  297. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
  298. package/dpr/routes/journeys/request-missing-report/routes.js +1 -1
  299. package/dpr/routes/journeys/request-missing-report/routes.js.map +1 -1
  300. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
  301. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
  302. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +1 -1
  303. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +1 -1
  304. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +1 -1
  305. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +1 -1
  306. package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
  307. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  308. package/dpr/routes/journeys/request-missing-report/tests.cy.ts +1 -1
  309. package/dpr/routes/journeys/request-report/controller.js +1 -1
  310. package/dpr/routes/journeys/request-report/controller.js.map +3 -3
  311. package/dpr/routes/journeys/request-report/controller.ts +1 -1
  312. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  313. package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
  314. package/dpr/routes/journeys/request-report/filters/controller.ts +7 -8
  315. package/dpr/routes/journeys/request-report/filters/routes.js +1 -1
  316. package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
  317. package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
  318. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
  319. package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
  320. package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
  321. package/dpr/routes/journeys/request-report/filters/utils.ts +38 -23
  322. package/dpr/routes/journeys/request-report/filters/view.njk +2 -1
  323. package/dpr/routes/journeys/request-report/routes.js +1 -1
  324. package/dpr/routes/journeys/request-report/routes.js.map +2 -2
  325. package/dpr/routes/journeys/request-report/routes.ts +2 -2
  326. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  327. package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
  328. package/dpr/routes/journeys/request-report/status/controller.ts +4 -4
  329. package/dpr/routes/journeys/request-report/status/routes.js +1 -1
  330. package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
  331. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  332. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  333. package/dpr/routes/journeys/request-report/status/tests.cy.ts +9 -4
  334. package/dpr/routes/journeys/request-report/status/utils.js +1 -1
  335. package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
  336. package/dpr/routes/journeys/request-report/status/utils.ts +10 -13
  337. package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
  338. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  339. package/dpr/routes/journeys/request-report/tests.cy.ts +14 -11
  340. package/dpr/routes/journeys/routes.js +1 -1
  341. package/dpr/routes/journeys/routes.js.map +1 -1
  342. package/dpr/routes/journeys/view-report/async/controller.js +1 -1
  343. package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
  344. package/dpr/routes/journeys/view-report/async/controller.ts +4 -4
  345. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
  346. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
  347. package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +4 -4
  348. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -1
  349. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
  350. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
  351. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  352. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -2
  353. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  354. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  355. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +6 -8
  356. package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
  357. package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
  358. package/dpr/routes/journeys/view-report/async/report/controller.ts +5 -5
  359. package/dpr/routes/journeys/view-report/async/report/routes.js +1 -1
  360. package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
  361. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  362. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  363. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +9 -7
  364. package/dpr/routes/journeys/view-report/async/report/types.js +1 -1
  365. package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
  366. package/dpr/routes/journeys/view-report/async/report/types.ts +8 -8
  367. package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
  368. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  369. package/dpr/routes/journeys/view-report/async/report/utils.ts +16 -18
  370. package/dpr/routes/journeys/view-report/async/routes.js +1 -1
  371. package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
  372. package/dpr/routes/journeys/view-report/controller.js +1 -1
  373. package/dpr/routes/journeys/view-report/controller.js.map +3 -3
  374. package/dpr/routes/journeys/view-report/controller.ts +1 -1
  375. package/dpr/routes/journeys/view-report/routes.js +1 -1
  376. package/dpr/routes/journeys/view-report/routes.js.map +2 -2
  377. package/dpr/routes/journeys/view-report/routes.ts +6 -3
  378. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  379. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
  380. package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
  381. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +1 -1
  382. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +1 -1
  383. package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
  384. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
  385. package/dpr/routes/journeys/view-report/sync/report/controller.ts +6 -6
  386. package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
  387. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
  388. package/dpr/routes/journeys/view-report/sync/report/utils.js +1 -1
  389. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  390. package/dpr/routes/journeys/view-report/sync/report/utils.ts +29 -19
  391. package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
  392. package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
  393. package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
  394. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  395. package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -1
  396. package/dpr/routes/journeys/view-report/utils.js +1 -1
  397. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  398. package/dpr/routes/journeys/view-report/utils.ts +22 -12
  399. package/dpr/services/dashboardService.js +1 -1
  400. package/dpr/services/dashboardService.js.map +3 -3
  401. package/dpr/services/dashboardService.ts +1 -3
  402. package/dpr/services/defaultFilterValuesService.js +1 -1
  403. package/dpr/services/defaultFilterValuesService.js.map +3 -3
  404. package/dpr/services/defaultFilterValuesService.ts +34 -15
  405. package/dpr/services/index.js +1 -1
  406. package/dpr/services/index.js.map +1 -1
  407. package/dpr/services/missingReport/missingReportService.js +2 -0
  408. package/dpr/services/missingReport/missingReportService.js.map +7 -0
  409. package/dpr/services/missingReport/missingReportService.ts +26 -0
  410. package/dpr/services/productCollection/productCollectionService.js +1 -1
  411. package/dpr/services/productCollection/productCollectionService.js.map +3 -3
  412. package/dpr/services/productCollection/productCollectionService.ts +19 -14
  413. package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
  414. package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
  415. package/dpr/services/productCollection/productCollectionStoreService.ts +9 -3
  416. package/dpr/services/reportStoreService.js +1 -1
  417. package/dpr/services/reportStoreService.js.map +2 -2
  418. package/dpr/services/reportStoreService.ts +1 -1
  419. package/dpr/services/reportingService.js +1 -1
  420. package/dpr/services/reportingService.js.map +3 -3
  421. package/dpr/services/reportingService.ts +1 -3
  422. package/dpr/setUpNunjucksFilters.js +1 -1
  423. package/dpr/setUpNunjucksFilters.js.map +1 -1
  424. package/dpr/types/AsyncReportUtils.js +1 -1
  425. package/dpr/types/AsyncReportUtils.js.map +2 -2
  426. package/dpr/types/AsyncReportUtils.ts +2 -1
  427. package/dpr/types/Bookmark.js +1 -1
  428. package/dpr/types/Bookmark.js.map +2 -2
  429. package/dpr/types/Bookmark.ts +9 -3
  430. package/dpr/types/Charts.js +1 -1
  431. package/dpr/types/Charts.js.map +1 -1
  432. package/dpr/types/Download.js +1 -1
  433. package/dpr/types/Download.js.map +1 -1
  434. package/dpr/types/DprConfig.js +1 -1
  435. package/dpr/types/DprConfig.js.map +2 -2
  436. package/dpr/types/DprConfig.ts +8 -0
  437. package/dpr/types/DprUser.js +1 -1
  438. package/dpr/types/DprUser.js.map +2 -2
  439. package/dpr/types/DprUser.ts +2 -2
  440. package/dpr/types/EmbeddedReportUtils.js +1 -1
  441. package/dpr/types/EmbeddedReportUtils.js.map +1 -1
  442. package/dpr/types/ExecutionData.d.js +1 -1
  443. package/dpr/types/ExecutionData.d.js.map +2 -2
  444. package/dpr/types/ExecutionData.d.ts +2 -2
  445. package/dpr/types/Metrics.js +1 -1
  446. package/dpr/types/Metrics.js.map +2 -2
  447. package/dpr/types/Metrics.ts +1 -1
  448. package/dpr/types/ReportQuery.js +1 -1
  449. package/dpr/types/ReportQuery.js.map +2 -2
  450. package/dpr/types/ReportQuery.ts +15 -11
  451. package/dpr/types/ReportStore.js +1 -1
  452. package/dpr/types/ReportStore.js.map +1 -1
  453. package/dpr/types/Services.d.js +1 -1
  454. package/dpr/types/Services.d.js.map +2 -2
  455. package/dpr/types/Services.d.ts +8 -8
  456. package/dpr/types/Templates.d.js +1 -1
  457. package/dpr/types/Templates.d.js.map +1 -1
  458. package/dpr/types/UserReports.js +1 -1
  459. package/dpr/types/UserReports.js.map +2 -2
  460. package/dpr/types/UserReports.ts +29 -15
  461. package/dpr/types/api.d.js +1 -1
  462. package/dpr/types/api.d.js.map +1 -1
  463. package/dpr/types/index.d.js +1 -1
  464. package/dpr/types/index.d.js.map +2 -2
  465. package/dpr/types/index.d.ts +1 -1
  466. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
  467. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
  468. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts +2 -0
  469. package/dpr/utils/CreateDprServices.js +2 -0
  470. package/dpr/utils/CreateDprServices.js.map +7 -0
  471. package/dpr/utils/CreateDprServices.ts +73 -0
  472. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  473. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
  474. package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +10 -0
  475. package/dpr/utils/DataTableBuilder/types.d.js +1 -1
  476. package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
  477. package/dpr/utils/DataTableBuilder/types.d.ts +3 -3
  478. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  479. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  480. package/dpr/utils/DateMapper/DateMapper.test.ts +22 -9
  481. package/dpr/utils/DateMapper/DateMapper.ts +9 -11
  482. package/dpr/utils/DateMapper/types.d.js +1 -1
  483. package/dpr/utils/DateMapper/types.d.js.map +1 -1
  484. package/dpr/utils/ErrorHandler.js +2 -0
  485. package/dpr/utils/ErrorHandler.js.map +7 -0
  486. package/dpr/utils/ErrorHandler.ts +85 -0
  487. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  488. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  489. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +13 -2
  490. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +3 -3
  491. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
  492. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
  493. package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
  494. package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
  495. package/dpr/utils/Personalisation/personalisationUtils.ts +6 -2
  496. package/dpr/utils/Personalisation/types.d.js +1 -1
  497. package/dpr/utils/Personalisation/types.d.js.map +1 -1
  498. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
  499. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  500. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +5 -0
  501. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +1 -1
  502. package/dpr/utils/SectionedDataTableBuilder/types.d.js +1 -1
  503. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
  504. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
  505. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  506. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +7 -4
  507. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +3 -3
  508. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  509. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
  510. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.test.ts +1 -0
  511. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  512. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  513. package/dpr/utils/UserStoreItemBuilder.ts +19 -32
  514. package/dpr/utils/arrayUtils.js +1 -1
  515. package/dpr/utils/arrayUtils.js.map +1 -1
  516. package/dpr/utils/datasetHelper.js +1 -1
  517. package/dpr/utils/datasetHelper.js.map +2 -2
  518. package/dpr/utils/datasetHelper.test.ts +21 -33
  519. package/dpr/utils/datasetHelper.ts +12 -17
  520. package/dpr/utils/definitionUtils.js +1 -1
  521. package/dpr/utils/definitionUtils.js.map +3 -3
  522. package/dpr/utils/definitionUtils.ts +14 -3
  523. package/dpr/utils/index.js +1 -1
  524. package/dpr/utils/index.js.map +1 -1
  525. package/dpr/utils/indexedAccesHelper.js +2 -0
  526. package/dpr/utils/indexedAccesHelper.js.map +7 -0
  527. package/dpr/utils/indexedAccesHelper.ts +24 -0
  528. package/dpr/utils/localsHelper.js +1 -1
  529. package/dpr/utils/localsHelper.js.map +2 -2
  530. package/dpr/utils/localsHelper.ts +8 -8
  531. package/dpr/utils/logger.js +1 -1
  532. package/dpr/utils/logger.js.map +2 -2
  533. package/dpr/utils/logger.ts +1 -1
  534. package/dpr/utils/reportListsHelper.js +1 -1
  535. package/dpr/utils/reportListsHelper.js.map +1 -1
  536. package/dpr/utils/reportStoreHelper.js +1 -1
  537. package/dpr/utils/reportStoreHelper.js.map +1 -1
  538. package/dpr/utils/reportStoreHelper.test.ts +3 -2
  539. package/dpr/utils/requestStatusHelper.js +1 -1
  540. package/dpr/utils/requestStatusHelper.js.map +3 -3
  541. package/dpr/utils/requestStatusHelper.ts +29 -42
  542. package/dpr/utils/sanitisedError.js +1 -1
  543. package/dpr/utils/sanitisedError.js.map +2 -2
  544. package/dpr/utils/sanitisedError.ts +1 -1
  545. package/dpr/utils/urlHelper.js +1 -1
  546. package/dpr/utils/urlHelper.js.map +2 -2
  547. package/dpr/utils/urlHelper.ts +4 -4
  548. package/dpr/validation/validate.js +1 -1
  549. package/dpr/validation/validate.js.map +2 -2
  550. package/dpr/validation/validate.ts +2 -2
  551. package/package.json +4 -2
  552. package/dpr/components/error-summary/utils.js +0 -2
  553. package/dpr/components/error-summary/utils.js.map +0 -7
  554. package/dpr/components/error-summary/utils.test.ts +0 -54
  555. package/dpr/components/error-summary/utils.ts +0 -65
  556. package/dpr/services/missingReport/missingReportClient.js +0 -2
  557. package/dpr/services/missingReport/missingReportClient.js.map +0 -7
  558. package/dpr/utils/ReportStoreServiceUtils.js +0 -2
  559. package/dpr/utils/ReportStoreServiceUtils.js.map +0 -7
  560. package/dpr/utils/ReportStoreServiceUtils.ts +0 -140
@@ -1,3 +1,5 @@
1
+ import { expect, jest } from '@jest/globals'
2
+ import { Url } from 'url'
1
3
  import { NextFunction, Request, Response } from 'express'
2
4
  import * as ReportListUtils from './utils'
3
5
  import { ListDataSources, RenderListWithDataInput, RenderListWithDefinitionInput } from './types'
@@ -14,15 +16,15 @@ jest.mock('parseurl', () => ({
14
16
  default: jest.fn().mockImplementation(() => ({ pathname: 'pathname', search: 'search' } as Url)),
15
17
  }))
16
18
 
17
- const getListWithWarnings = jest.fn().mockResolvedValue([''])
18
- const getDefinition = jest.fn().mockResolvedValue(ReportDefinition.singleVariantReport('test-variant'))
19
+ const getListWithWarnings = jest.fn().mockImplementation(() => [''])
20
+ const getDefinition = jest.fn().mockImplementation(() => ReportDefinition.singleVariantReport('test-variant'))
19
21
 
20
22
  jest.mock('../../data/reportingClient.ts', () => {
21
23
  return jest.fn().mockImplementation(() => {
22
24
  return {
23
25
  getDefinition,
24
26
  getListWithWarnings,
25
- getCount: jest.fn().mockResolvedValue(''),
27
+ getCount: jest.fn().mockImplementation(() => ''),
26
28
  }
27
29
  })
28
30
  })
@@ -50,7 +52,7 @@ describe('ReportListUtils', () => {
50
52
  }),
51
53
  } as unknown as Response
52
54
 
53
- next = ((error: Error) => {
55
+ next = ((_error: Error) => {
54
56
  //
55
57
  }) as unknown as NextFunction
56
58
  })
@@ -137,7 +137,7 @@ export const renderListWithDefinition = async ({
137
137
  fields,
138
138
  template: template as Template,
139
139
  queryParams: request.query,
140
- definitionsPath: reportDef,
140
+ ...(reportDef && { definitionsPath: reportDef }),
141
141
  })
142
142
 
143
143
  if (!FiltersUtils.redirectWithDefaultFilters(reportQuery, variantDefinition, response, request)) {
@@ -184,7 +184,7 @@ export const renderListWithData = async ({
184
184
  fields,
185
185
  template: template as Template,
186
186
  queryParams: request.query,
187
- definitionsPath: <string>request.query.dataProductDefinitionsPath,
187
+ definitionsPath: <string>request.query['dataProductDefinitionsPath'],
188
188
  })
189
189
 
190
190
  const listData = getListDataSources(reportQuery)
@@ -215,18 +215,18 @@ export const createReportListRequestHandler = ({
215
215
  }: CreateRequestHandlerInput): RequestHandler => {
216
216
  return (request: Request, response: Response, next: NextFunction) => {
217
217
  renderListWithDefinition({
218
- title,
218
+ title: title || '',
219
219
  definitionName,
220
220
  variantName,
221
221
  request,
222
222
  response,
223
223
  next,
224
- otherOptions,
225
224
  layoutTemplate,
226
225
  token: tokenProvider(request, response, next),
227
226
  apiUrl,
228
227
  apiTimeout,
229
- definitionsPath,
228
+ ...(otherOptions && { otherOptions }),
229
+ ...(definitionsPath && { definitionsPath }),
230
230
  })
231
231
  }
232
232
  }
@@ -1,4 +1,4 @@
1
- var n=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})},g=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of i(t))!h.call(e,r)&&r!==o&&n(e,r,{get:()=>t[r],enumerable:!(s=d(t,r))||s.enumerable});return e};var l=e=>g(n({},"__esModule",{value:!0}),e);var m={};c(m,{createShowMoreHtml:()=>a,default:()=>p});module.exports=l(m);const a=(e,t)=>{const o=e?e.replace(/"/g,"'"):"";return`<div class="dpr-show-more" data-content="${o}" data-dpr-module="show-more" data-length="${t||100}">
1
+ "use strict";var n=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})},g=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of i(t))!h.call(e,r)&&r!==o&&n(e,r,{get:()=>t[r],enumerable:!(s=d(t,r))||s.enumerable});return e};var l=e=>g(n({},"__esModule",{value:!0}),e);var m={};c(m,{createShowMoreHtml:()=>a,default:()=>p});module.exports=l(m);const a=(e,t)=>{const o=e?e.replace(/"/g,"'"):"";return`<div class="dpr-show-more" data-content="${o}" data-dpr-module="show-more" data-length="${t||100}">
2
2
  <p class='dpr-show-more-content govuk-body-s'>${o}</p><a class="dpr-show-hide-button govuk-link--no-visited-state" href="#">show more</a>
3
3
  </div>`};var p={createShowMoreHtml:a};0&&(module.exports={createShowMoreHtml});
4
4
  //# sourceMappingURL=utils.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/components/show-more/utils.ts"],
4
4
  "sourcesContent": ["export const createShowMoreHtml = (text: string, length?: number) => {\n const sanitizedString = text ? text.replace(/\"/g, \"'\") : ''\n const stringLength = length || 100\n\n return `<div class=\"dpr-show-more\" data-content=\"${sanitizedString}\" data-dpr-module=\"show-more\" data-length=\"${stringLength}\">\n <p class='dpr-show-more-content govuk-body-s'>${sanitizedString}</p><a class=\"dpr-show-hide-button govuk-link--no-visited-state\" href=\"#\">show more</a>\n</div>`\n}\n\nexport default {\n createShowMoreHtml,\n}\n"],
5
- "mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAO,MAAME,EAAqB,CAACG,EAAcC,IAAoB,CACnE,MAAMC,EAAkBF,EAAOA,EAAK,QAAQ,KAAM,GAAG,EAAI,GAGzD,MAAO,4CAA4CE,CAAe,8CAF7CD,GAAU,GAE6F;AAAA,oDAC1EC,CAAe;AAAA,OAEnE,EAEA,IAAOJ,EAAQ,CACb,mBAAAD,CACF",
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAO,MAAME,EAAqB,CAACG,EAAcC,IAAoB,CACnE,MAAMC,EAAkBF,EAAOA,EAAK,QAAQ,KAAM,GAAG,EAAI,GAGzD,MAAO,4CAA4CE,CAAe,8CAF7CD,GAAU,GAE6F;AAAA,oDAC1EC,CAAe;AAAA,OAEnE,EAEA,IAAOJ,EAAQ,CACb,mBAAAD,CACF",
6
6
  "names": ["utils_exports", "__export", "createShowMoreHtml", "utils_default", "__toCommonJS", "text", "length", "sanitizedString"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var N=Object.create;var B=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var F=(e,t)=>{for(var o in t)B(e,o,{get:t[o],enumerable:!0})},v=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of L(t))!O.call(e,r)&&r!==o&&B(e,r,{get:()=>t[r],enumerable:!(i=A(t,r))||i.enumerable});return e};var S=(e,t,o)=>(o=e!=null?N(M(e)):{},v(t||!e||!e.__esModule?B(o,"default",{value:e,enumerable:!0}):o,e)),V=e=>v(B({},"__esModule",{value:!0}),e);var $={};F($,{default:()=>_,formatBookmark:()=>x,formatBookmarks:()=>I,renderBookmarkList:()=>C});module.exports=V($);var d=require("../../../types/UserReports"),w=S(require("../../show-more/utils")),q=S(require("../../../utils/logger")),P=S(require("../../../utils/definitionUtils")),l=require("../../../utils/reportListsHelper"),b=S(require("../../../utils/localsHelper"));const I=async e=>e.map(t=>x(t)).sort((t,o)=>t.text.localeCompare(o.text)),x=e=>{const t=JSON.parse(JSON.stringify(e)),{id:o,name:i,description:r,href:m,reportName:n,type:p}=t;return{id:o,reportName:n,text:i,description:r,href:m,type:p}},E=async(e,t,o,i,r)=>{const m=await t.getState(i),n=await Promise.all(e.sort((p,a)=>p.name.localeCompare(a.name)).map(async p=>J(p,t,o,m)));return{rows:r?n.slice(0,r):n,head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Description",classes:"dpr-bm-description-head"},{text:"Actions",classes:"dpr-bm-actions-head"}]}},J=async(e,t,o,i)=>{const{description:r,reportName:m,reportId:n,id:p,href:a,name:s,type:c,loadType:f}=e,u=await t.createBookMarkToggleHtml({userConfig:i,reportId:n,id:p,csrfToken:o,ctxId:"bookmark-list",reportType:c,isMissing:!1});return[{html:(0,l.createListItemProduct)(m,s,c)},{html:w.default.createShowMoreHtml(r),classes:"dpr-req-cell"},{html:(0,l.createListActions)(a,c,f,u),classes:"dpr-req-cell dpr-req-cell__status"}]},Y=async(e,t,o,i,r)=>{const m=[],{definitionsPath:n}=b.default.getValues(o);return await Promise.all(e.map(async p=>{let a;const{reportId:s,variantId:c,id:f,automatic:u,type:y}=p,k=c||f,R=y||d.ReportType.REPORT;try{let g,D,T,h=d.LoadType.ASYNC;const U=(0,l.setInitialHref)(h,R,s,k,o);if(R===d.ReportType.REPORT&&(a=await r.reportingService.getDefinition(i,s,k,n),T=a.name,g=a.variant.name,D=a.variant.description||a.description,h=a.variant.loadType||h),R===d.ReportType.DASHBOARD){const H=await P.default.getReportSummary(s,r.reportingService,i,n);a=await r.dashboardService.getDefinition(i,s,k,n),g=a.name,T=H.name,D=a.description}a&&m.push({reportId:s,id:k,reportName:T,name:g,description:D,type:R,href:U,loadType:h,automatic:u})}catch{q.default.warn(`Failed to map bookmark for: Report ${s}, variant ${k}`);const{dprUser:D}=b.default.getValues(o);await r.bookmarkService.removeBookmark(D.id,k,s)}})),m},C=async({services:e,maxRows:t=20,res:o,req:i})=>{const{token:r,csrfToken:m,dprUser:n,bookmarks:p}=b.default.getValues(o),a=await Y(p,i,o,r,e);let s=await I(a);const c=s.length;t&&(s=s.slice(0,t));const f=await E(a,e.bookmarkService,m,n.id,t),u={...s.length&&{href:"/dpr/my-reports/bookmarks/list"},...!s.length&&{emptyMessage:"You have 0 bookmarked reports"}},y={amount:c,shown:c>t?t:c,max:t};return{head:u,tableData:f,total:y,csrfToken:m,type:"bookmark"}};var _={renderBookmarkList:C};0&&(module.exports={formatBookmark,formatBookmarks,renderBookmarkList});
1
+ "use strict";var N=Object.create;var g=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var F=(o,t)=>{for(var e in t)g(o,e,{get:t[e],enumerable:!0})},R=(o,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of M(t))!q.call(o,a)&&a!==e&&g(o,a,{get:()=>t[a],enumerable:!(i=A(t,a))||i.enumerable});return o};var B=(o,t,e)=>(e=o!=null?N(O(o)):{},R(t||!o||!o.__esModule?g(e,"default",{value:o,enumerable:!0}):e,o)),U=o=>R(g({},"__esModule",{value:!0}),o);var _={};F(_,{default:()=>Y,formatBookmark:()=>P,formatBookmarks:()=>w,renderBookmarkList:()=>x});module.exports=U(_);var l=require("../../../types/UserReports"),b=B(require("../../show-more/utils")),T=B(require("../../../utils/logger")),v=B(require("../../../utils/definitionUtils")),f=require("../../../utils/reportListsHelper"),S=B(require("../../../utils/localsHelper"));const w=async o=>o.map(t=>P(t)).sort((t,e)=>t.text.localeCompare(e.text)),P=o=>{const t=JSON.parse(JSON.stringify(o)),{id:e,name:i,description:a,href:n,reportName:p,type:r}=t;return{id:e,reportName:p,text:i,description:a,href:n,type:r}},V=async(o,t,e,i,a)=>{const n=await t.getState(i),p=await Promise.all(o.sort((r,s)=>r.name.localeCompare(s.name)).map(async r=>E(r,t,e,n)));return{rows:a?p.slice(0,a):p,head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Description",classes:"dpr-bm-description-head"},{text:"Actions",classes:"dpr-bm-actions-head"}]}},E=async(o,t,e,i)=>{const{description:a,reportName:n,reportId:p,id:r,href:s,name:m,type:k,loadType:d}=o,c=await t.createBookMarkToggleHtml({userConfig:i,reportId:p,id:r,csrfToken:e,ctxId:"bookmark-list",reportType:k,isMissing:!1});return[{html:(0,f.createListItemProduct)(n,m,k)},{html:b.default.createShowMoreHtml(a),classes:"dpr-req-cell"},{html:(0,f.createListActions)(s,k,d,c),classes:"dpr-req-cell dpr-req-cell__status"}]},J=async(o,t,e,i)=>{const a=[],{definitionsPath:n}=S.default.getValues(t);return await Promise.all(o.map(async p=>{let r;const{reportId:s,id:m,automatic:k,type:d}=p,c=d||l.ReportType.REPORT;try{let y="",u="",D=l.LoadType.ASYNC;const C=(0,f.setInitialHref)(D,c,s,m,t),h=await v.default.getReportSummary(s,i.reportingService,e,n),H=h.name;if(c===l.ReportType.REPORT){const I=h.variants.find(L=>L.id===m);r=await i.reportingService.getDefinition(e,s,m,n),y=r.variant.name,u=r.variant.description||r.description||"",D=I?.loadType||D}c===l.ReportType.DASHBOARD&&(r=await i.dashboardService.getDefinition(e,s,m,n),y=r.name,u=r.description||""),r&&a.push({reportId:s,id:m,reportName:H,name:y,description:u,type:c,href:C,loadType:D,automatic:k})}catch{T.default.warn(`Failed to map bookmark for: Report ${s}, variant ${m}`);const{dprUser:u}=S.default.getValues(t);await i.bookmarkService.removeBookmark(u.id,m,s)}})),a},x=async({services:o,maxRows:t=20,res:e})=>{const{token:i,csrfToken:a,dprUser:n,bookmarks:p}=S.default.getValues(e),r=await J(p,e,i,o);let s=await w(r);const m=s.length;t&&(s=s.slice(0,t));const k=await V(r,o.bookmarkService,a,n.id,t),d={...s.length&&{href:"/dpr/my-reports/bookmarks/list"},...!s.length&&{emptyMessage:"You have 0 bookmarked reports"}},c={amount:m,shown:m>t?t:m,max:t};return{head:d,tableData:k,total:c,csrfToken:a,type:"bookmark"}};var Y={renderBookmarkList:x};0&&(module.exports={formatBookmark,formatBookmarks,renderBookmarkList});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/user-reports/bookmarks/utils.ts"],
4
- "sourcesContent": ["import { Response, Request } from 'express'\nimport { BookmarkService } from '../../../services'\nimport { BookmarkedReportData, BookmarkStoreData } from '../../../types/Bookmark'\nimport { FormattedUserReportData, LoadType, ReportType } from '../../../types/UserReports'\nimport { Services } from '../../../types/Services'\nimport ShowMoreUtils from '../../show-more/utils'\nimport logger from '../../../utils/logger'\nimport DefinitionUtils from '../../../utils/definitionUtils'\nimport { createListItemProduct, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { ReportStoreConfig } from '../../../types/ReportStore'\n\nexport const formatBookmarks = async (bookmarksData: BookmarkedReportData[]): Promise<FormattedUserReportData[]> => {\n return bookmarksData\n .map((report: BookmarkedReportData) => {\n return formatBookmark(report)\n })\n .sort((a, b) => a.text.localeCompare(b.text))\n}\n\nexport const formatBookmark = (bookmarkData: BookmarkedReportData): FormattedUserReportData => {\n const reportData: BookmarkedReportData = JSON.parse(JSON.stringify(bookmarkData))\n const { id, name, description, href, reportName, type } = reportData\n\n return {\n id,\n reportName,\n text: name,\n description,\n href,\n type: type as ReportType,\n }\n}\n\nconst formatTable = async (\n bookmarksData: BookmarkedReportData[],\n bookmarkService: BookmarkService,\n csrfToken: string,\n userId: string,\n maxRows?: number,\n) => {\n const userConfig = await bookmarkService.getState(userId)\n const rows = await Promise.all(\n bookmarksData\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(async (bookmark: BookmarkedReportData) => {\n return formatTableData(bookmark, bookmarkService, csrfToken, userConfig)\n }),\n )\n\n return {\n rows: maxRows ? rows.slice(0, maxRows) : rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Description', classes: 'dpr-bm-description-head' },\n { text: 'Actions', classes: 'dpr-bm-actions-head' },\n ],\n }\n}\n\nconst formatTableData = async (\n bookmarksData: BookmarkedReportData,\n bookmarkService: BookmarkService,\n csrfToken: string,\n userConfig: ReportStoreConfig,\n) => {\n const { description, reportName, reportId, id, href, name, type, loadType } = bookmarksData\n const bookmarkHtml = await bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'bookmark-list',\n reportType: type,\n // We don't have the data here, and missing reports should never get into bookmarked, viewed or requested\n isMissing: false,\n })\n return [\n {\n html: createListItemProduct(reportName, name, type),\n },\n { html: ShowMoreUtils.createShowMoreHtml(description), classes: 'dpr-req-cell' },\n {\n html: createListActions(href, type, loadType, bookmarkHtml),\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst mapBookmarkIdsToDefinition = async (\n bookmarks: BookmarkStoreData[],\n req: Request,\n res: Response,\n token: string,\n services: Services,\n): Promise<BookmarkedReportData[]> => {\n const bookmarkData: BookmarkedReportData[] = []\n const { definitionsPath } = LocalsHelper.getValues(res)\n\n await Promise.all(\n bookmarks.map(async (bookmark) => {\n let definition\n const { reportId, variantId, id, automatic, type } = bookmark\n const bookmarkId = variantId || id\n const reportType: ReportType = type ? (type as ReportType) : ReportType.REPORT\n\n try {\n let name\n let description\n let reportName\n let loadType = LoadType.ASYNC\n const href = setInitialHref(loadType, reportType, reportId, bookmarkId, res)\n\n if (reportType === ReportType.REPORT) {\n definition = await services.reportingService.getDefinition(token, reportId, bookmarkId, definitionsPath)\n reportName = definition.name\n name = definition.variant.name\n description = definition.variant.description || definition.description\n loadType = definition.variant.loadType || loadType\n }\n\n if (reportType === ReportType.DASHBOARD) {\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n definitionsPath,\n )\n\n definition = await services.dashboardService.getDefinition(token, reportId, bookmarkId, definitionsPath)\n name = definition.name\n reportName = reportDefinition.name\n description = definition.description\n }\n\n if (definition) {\n bookmarkData.push({\n reportId,\n id: bookmarkId,\n reportName,\n name,\n description,\n type: reportType,\n href,\n loadType,\n automatic,\n })\n }\n } catch (error) {\n // DPD has been deleted so API throws error\n logger.warn(`Failed to map bookmark for: Report ${reportId}, variant ${bookmarkId}`)\n const { dprUser } = LocalsHelper.getValues(res)\n await services.bookmarkService.removeBookmark(dprUser.id, bookmarkId, reportId)\n }\n }),\n )\n return bookmarkData\n}\n\nexport const renderBookmarkList = async ({\n services,\n maxRows = 20,\n res,\n req,\n}: {\n services: Services\n maxRows?: number\n res: Response\n req: Request\n}) => {\n const { token, csrfToken, dprUser, bookmarks } = LocalsHelper.getValues(res)\n const bookmarksData: BookmarkedReportData[] = await mapBookmarkIdsToDefinition(bookmarks, req, res, token, services)\n\n let formatted = await formatBookmarks(bookmarksData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = await formatTable(bookmarksData, services.bookmarkService, csrfToken, dprUser.id, maxRows)\n\n const head = {\n ...(formatted.length && { href: '/dpr/my-reports/bookmarks/list' }),\n ...(!formatted.length && { emptyMessage: 'You have 0 bookmarked reports' }),\n }\n\n const total = {\n amount: formattedCount,\n shown: formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n\n const result = {\n head,\n tableData,\n total,\n csrfToken,\n type: 'bookmark',\n }\n\n return result\n}\n\nexport default {\n renderBookmarkList,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "utils_default", "formatBookmark", "formatBookmarks", "renderBookmarkList", "__toCommonJS", "import_UserReports", "import_utils", "import_logger", "import_definitionUtils", "import_reportListsHelper", "import_localsHelper", "bookmarksData", "report", "a", "b", "bookmarkData", "reportData", "id", "name", "description", "href", "reportName", "type", "formatTable", "bookmarkService", "csrfToken", "userId", "maxRows", "userConfig", "rows", "bookmark", "formatTableData", "reportId", "loadType", "bookmarkHtml", "ShowMoreUtils", "mapBookmarkIdsToDefinition", "bookmarks", "req", "res", "token", "services", "definitionsPath", "LocalsHelper", "definition", "variantId", "automatic", "bookmarkId", "reportType", "reportDefinition", "DefinitionUtils", "logger", "dprUser", "formatted", "formattedCount", "tableData", "head", "total"]
4
+ "sourcesContent": ["import { Response } from 'express'\nimport { BookmarkService } from '../../../services'\nimport { BookmarkedReportData, BookmarkStoreData } from '../../../types/Bookmark'\nimport { FormattedBookmarkData, LoadType, ReportType } from '../../../types/UserReports'\nimport { Services } from '../../../types/Services'\nimport ShowMoreUtils from '../../show-more/utils'\nimport logger from '../../../utils/logger'\nimport DefinitionUtils from '../../../utils/definitionUtils'\nimport { createListItemProduct, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { ReportStoreConfig } from '../../../types/ReportStore'\n\nexport const formatBookmarks = async (bookmarksData: BookmarkedReportData[]): Promise<FormattedBookmarkData[]> => {\n return bookmarksData\n .map((report: BookmarkedReportData) => {\n return formatBookmark(report)\n })\n .sort((a, b) => a.text.localeCompare(b.text))\n}\n\nexport const formatBookmark = (bookmarkData: BookmarkedReportData): FormattedBookmarkData => {\n const reportData: BookmarkedReportData = JSON.parse(JSON.stringify(bookmarkData))\n const { id, name, description, href, reportName, type } = reportData\n\n return {\n id,\n reportName,\n text: name,\n description,\n href,\n type: type as ReportType,\n }\n}\n\nconst formatTable = async (\n bookmarksData: BookmarkedReportData[],\n bookmarkService: BookmarkService,\n csrfToken: string,\n userId: string,\n maxRows?: number,\n) => {\n const userConfig = await bookmarkService.getState(userId)\n const rows = await Promise.all(\n bookmarksData\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(async (bookmark: BookmarkedReportData) => {\n return formatTableData(bookmark, bookmarkService, csrfToken, userConfig)\n }),\n )\n\n return {\n rows: maxRows ? rows.slice(0, maxRows) : rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Description', classes: 'dpr-bm-description-head' },\n { text: 'Actions', classes: 'dpr-bm-actions-head' },\n ],\n }\n}\n\nconst formatTableData = async (\n bookmarksData: BookmarkedReportData,\n bookmarkService: BookmarkService,\n csrfToken: string,\n userConfig: ReportStoreConfig,\n) => {\n const { description, reportName, reportId, id, href, name, type, loadType } = bookmarksData\n const bookmarkHtml = await bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'bookmark-list',\n reportType: type,\n // We don't have the data here, and missing reports should never get into bookmarked, viewed or requested\n isMissing: false,\n })\n return [\n {\n html: createListItemProduct(reportName, name, type),\n },\n { html: ShowMoreUtils.createShowMoreHtml(description), classes: 'dpr-req-cell' },\n {\n html: createListActions(href, type, loadType, bookmarkHtml),\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst mapBookmarkIdsToDefinition = async (\n bookmarks: BookmarkStoreData[],\n res: Response,\n token: string,\n services: Services,\n): Promise<BookmarkedReportData[]> => {\n const bookmarkData: BookmarkedReportData[] = []\n const { definitionsPath } = LocalsHelper.getValues(res)\n\n await Promise.all(\n bookmarks.map(async (bookmark) => {\n let definition\n const { reportId, id, automatic, type } = bookmark\n const reportType: ReportType = type ? (type as ReportType) : ReportType.REPORT\n\n try {\n let name = ''\n let description = ''\n let loadType = LoadType.ASYNC\n const href = setInitialHref(loadType, reportType, reportId, id, res)\n\n const procuctSummary = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n definitionsPath,\n )\n const reportName = procuctSummary.name\n\n if (reportType === ReportType.REPORT) {\n const variantSummary = procuctSummary.variants.find((v) => v.id === id)\n definition = await services.reportingService.getDefinition(token, reportId, id, definitionsPath)\n name = definition.variant.name\n description = definition.variant.description || definition.description || ''\n loadType = (variantSummary?.loadType as LoadType) || loadType\n }\n\n if (reportType === ReportType.DASHBOARD) {\n definition = await services.dashboardService.getDefinition(token, reportId, id, definitionsPath)\n name = definition.name\n description = definition.description || ''\n }\n\n if (definition) {\n bookmarkData.push({\n reportId,\n id,\n reportName,\n name,\n description,\n type: reportType,\n href,\n loadType,\n automatic,\n })\n }\n } catch (error) {\n // DPD has been deleted so API throws error\n logger.warn(`Failed to map bookmark for: Report ${reportId}, variant ${id}`)\n const { dprUser } = LocalsHelper.getValues(res)\n await services.bookmarkService.removeBookmark(dprUser.id, id, reportId)\n }\n }),\n )\n return bookmarkData\n}\n\nexport const renderBookmarkList = async ({\n services,\n maxRows = 20,\n res,\n}: {\n services: Services\n maxRows?: number\n res: Response\n}) => {\n const { token, csrfToken, dprUser, bookmarks } = LocalsHelper.getValues(res)\n const bookmarksData: BookmarkedReportData[] = await mapBookmarkIdsToDefinition(bookmarks, res, token, services)\n\n let formatted = await formatBookmarks(bookmarksData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = await formatTable(bookmarksData, services.bookmarkService, csrfToken, dprUser.id, maxRows)\n\n const head = {\n ...(formatted.length && { href: '/dpr/my-reports/bookmarks/list' }),\n ...(!formatted.length && { emptyMessage: 'You have 0 bookmarked reports' }),\n }\n\n const total = {\n amount: formattedCount,\n shown: formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n\n const result = {\n head,\n tableData,\n total,\n csrfToken,\n type: 'bookmark',\n }\n\n return result\n}\n\nexport default {\n renderBookmarkList,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "utils_default", "formatBookmark", "formatBookmarks", "renderBookmarkList", "__toCommonJS", "import_UserReports", "import_utils", "import_logger", "import_definitionUtils", "import_reportListsHelper", "import_localsHelper", "bookmarksData", "report", "a", "b", "bookmarkData", "reportData", "id", "name", "description", "href", "reportName", "type", "formatTable", "bookmarkService", "csrfToken", "userId", "maxRows", "userConfig", "rows", "bookmark", "formatTableData", "reportId", "loadType", "bookmarkHtml", "ShowMoreUtils", "mapBookmarkIdsToDefinition", "bookmarks", "res", "token", "services", "definitionsPath", "LocalsHelper", "definition", "automatic", "reportType", "procuctSummary", "DefinitionUtils", "variantSummary", "v", "logger", "dprUser", "formatted", "formattedCount", "tableData", "head", "total"]
7
7
  }
@@ -1,4 +1,5 @@
1
- import { Response, Request } from 'express'
1
+ import { expect, jest } from '@jest/globals'
2
+ import { Response } from 'express'
2
3
  import { Services } from '../../../types/Services'
3
4
  import BookmarkUtils from './utils'
4
5
  import type BookmarkService from '../../../routes/journeys/my-reports/bookmarks/service'
@@ -11,7 +12,6 @@ import dashboardDefinitions from '../../../../../test-app/mocks/mockClients/dash
11
12
  describe('BookmarkUtils', () => {
12
13
  let services: Services
13
14
  let res: Response
14
- let req: Request
15
15
  let bookmarkService: BookmarkService
16
16
  let reportingService: ReportingService
17
17
  let dashboardService: DashboardService
@@ -30,13 +30,9 @@ describe('BookmarkUtils', () => {
30
30
  },
31
31
  } as unknown as Response
32
32
 
33
- req = {
34
- query: {},
35
- } as unknown as Request
36
-
37
33
  bookmarkService = {
38
- getAllBookmarks: jest.fn().mockResolvedValue([{ reportId: 'test-report-1', variantId: 'test-variant-1' }]),
39
- createBookMarkToggleHtml: jest.fn().mockResolvedValue('<p>Bookmark toggle</p>'),
34
+ getAllBookmarks: jest.fn().mockReturnValueOnce([{ reportId: 'test-report-1', variantId: 'test-variant-1' }]),
35
+ createBookMarkToggleHtml: jest.fn().mockReturnValueOnce('<p>Bookmark toggle</p>'),
40
36
  getState: jest.fn(),
41
37
  } as unknown as BookmarkService
42
38
 
@@ -48,11 +44,19 @@ describe('BookmarkUtils', () => {
48
44
  }
49
45
 
50
46
  reportingService = {
51
- getDefinition: jest.fn().mockResolvedValue(mockDefinition),
47
+ getDefinition: jest.fn().mockReturnValueOnce(mockDefinition),
48
+ getDefinitionSummary: jest.fn().mockReturnValueOnce({
49
+ id: 'reportId',
50
+ name: 'reportName',
51
+ description: 'description',
52
+ variants: [variant1],
53
+ }),
52
54
  } as unknown as ReportingService
53
55
 
54
56
  dashboardService = {
55
- getDefinition: jest.fn().mockResolvedValue(dashboardDefinitions[0]),
57
+ getDefinition: jest
58
+ .fn()
59
+ .mockReturnValueOnce(<components['schemas']['DashboardDefinition']>dashboardDefinitions.mockDashboards[0]),
56
60
  } as unknown as DashboardService
57
61
 
58
62
  services = {
@@ -67,7 +71,6 @@ describe('BookmarkUtils', () => {
67
71
  services,
68
72
  maxRows: 10,
69
73
  res,
70
- req,
71
74
  })
72
75
 
73
76
  expect(result.tableData.rows.length).toEqual(1)
@@ -1,7 +1,7 @@
1
- import { Response, Request } from 'express'
1
+ import { Response } from 'express'
2
2
  import { BookmarkService } from '../../../services'
3
3
  import { BookmarkedReportData, BookmarkStoreData } from '../../../types/Bookmark'
4
- import { FormattedUserReportData, LoadType, ReportType } from '../../../types/UserReports'
4
+ import { FormattedBookmarkData, LoadType, ReportType } from '../../../types/UserReports'
5
5
  import { Services } from '../../../types/Services'
6
6
  import ShowMoreUtils from '../../show-more/utils'
7
7
  import logger from '../../../utils/logger'
@@ -10,7 +10,7 @@ import { createListItemProduct, createListActions, setInitialHref } from '../../
10
10
  import LocalsHelper from '../../../utils/localsHelper'
11
11
  import { ReportStoreConfig } from '../../../types/ReportStore'
12
12
 
13
- export const formatBookmarks = async (bookmarksData: BookmarkedReportData[]): Promise<FormattedUserReportData[]> => {
13
+ export const formatBookmarks = async (bookmarksData: BookmarkedReportData[]): Promise<FormattedBookmarkData[]> => {
14
14
  return bookmarksData
15
15
  .map((report: BookmarkedReportData) => {
16
16
  return formatBookmark(report)
@@ -18,7 +18,7 @@ export const formatBookmarks = async (bookmarksData: BookmarkedReportData[]): Pr
18
18
  .sort((a, b) => a.text.localeCompare(b.text))
19
19
  }
20
20
 
21
- export const formatBookmark = (bookmarkData: BookmarkedReportData): FormattedUserReportData => {
21
+ export const formatBookmark = (bookmarkData: BookmarkedReportData): FormattedBookmarkData => {
22
22
  const reportData: BookmarkedReportData = JSON.parse(JSON.stringify(bookmarkData))
23
23
  const { id, name, description, href, reportName, type } = reportData
24
24
 
@@ -89,7 +89,6 @@ const formatTableData = async (
89
89
 
90
90
  const mapBookmarkIdsToDefinition = async (
91
91
  bookmarks: BookmarkStoreData[],
92
- req: Request,
93
92
  res: Response,
94
93
  token: string,
95
94
  services: Services,
@@ -100,43 +99,41 @@ const mapBookmarkIdsToDefinition = async (
100
99
  await Promise.all(
101
100
  bookmarks.map(async (bookmark) => {
102
101
  let definition
103
- const { reportId, variantId, id, automatic, type } = bookmark
104
- const bookmarkId = variantId || id
102
+ const { reportId, id, automatic, type } = bookmark
105
103
  const reportType: ReportType = type ? (type as ReportType) : ReportType.REPORT
106
104
 
107
105
  try {
108
- let name
109
- let description
110
- let reportName
106
+ let name = ''
107
+ let description = ''
111
108
  let loadType = LoadType.ASYNC
112
- const href = setInitialHref(loadType, reportType, reportId, bookmarkId, res)
109
+ const href = setInitialHref(loadType, reportType, reportId, id, res)
110
+
111
+ const procuctSummary = await DefinitionUtils.getReportSummary(
112
+ reportId,
113
+ services.reportingService,
114
+ token,
115
+ definitionsPath,
116
+ )
117
+ const reportName = procuctSummary.name
113
118
 
114
119
  if (reportType === ReportType.REPORT) {
115
- definition = await services.reportingService.getDefinition(token, reportId, bookmarkId, definitionsPath)
116
- reportName = definition.name
120
+ const variantSummary = procuctSummary.variants.find((v) => v.id === id)
121
+ definition = await services.reportingService.getDefinition(token, reportId, id, definitionsPath)
117
122
  name = definition.variant.name
118
- description = definition.variant.description || definition.description
119
- loadType = definition.variant.loadType || loadType
123
+ description = definition.variant.description || definition.description || ''
124
+ loadType = (variantSummary?.loadType as LoadType) || loadType
120
125
  }
121
126
 
122
127
  if (reportType === ReportType.DASHBOARD) {
123
- const reportDefinition = await DefinitionUtils.getReportSummary(
124
- reportId,
125
- services.reportingService,
126
- token,
127
- definitionsPath,
128
- )
129
-
130
- definition = await services.dashboardService.getDefinition(token, reportId, bookmarkId, definitionsPath)
128
+ definition = await services.dashboardService.getDefinition(token, reportId, id, definitionsPath)
131
129
  name = definition.name
132
- reportName = reportDefinition.name
133
- description = definition.description
130
+ description = definition.description || ''
134
131
  }
135
132
 
136
133
  if (definition) {
137
134
  bookmarkData.push({
138
135
  reportId,
139
- id: bookmarkId,
136
+ id,
140
137
  reportName,
141
138
  name,
142
139
  description,
@@ -148,9 +145,9 @@ const mapBookmarkIdsToDefinition = async (
148
145
  }
149
146
  } catch (error) {
150
147
  // DPD has been deleted so API throws error
151
- logger.warn(`Failed to map bookmark for: Report ${reportId}, variant ${bookmarkId}`)
148
+ logger.warn(`Failed to map bookmark for: Report ${reportId}, variant ${id}`)
152
149
  const { dprUser } = LocalsHelper.getValues(res)
153
- await services.bookmarkService.removeBookmark(dprUser.id, bookmarkId, reportId)
150
+ await services.bookmarkService.removeBookmark(dprUser.id, id, reportId)
154
151
  }
155
152
  }),
156
153
  )
@@ -161,15 +158,13 @@ export const renderBookmarkList = async ({
161
158
  services,
162
159
  maxRows = 20,
163
160
  res,
164
- req,
165
161
  }: {
166
162
  services: Services
167
163
  maxRows?: number
168
164
  res: Response
169
- req: Request
170
165
  }) => {
171
166
  const { token, csrfToken, dprUser, bookmarks } = LocalsHelper.getValues(res)
172
- const bookmarksData: BookmarkedReportData[] = await mapBookmarkIdsToDefinition(bookmarks, req, res, token, services)
167
+ const bookmarksData: BookmarkedReportData[] = await mapBookmarkIdsToDefinition(bookmarks, res, token, services)
173
168
 
174
169
  let formatted = await formatBookmarks(bookmarksData)
175
170
  const formattedCount = formatted.length
@@ -1,2 +1,2 @@
1
- var d=Object.create;var u=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var g=(e,t)=>{for(var s in t)u(e,s,{get:t[s],enumerable:!0})},i=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of f(t))!l.call(e,r)&&r!==s&&u(e,r,{get:()=>t[r],enumerable:!(o=S(t,r))||o.enumerable});return e};var x=(e,t,s)=>(s=e!=null?d(q(e)):{},i(t||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e)),w=e=>i(u({},"__esModule",{value:!0}),e);var y={};g(y,{default:()=>v,filterReports:()=>c,getRequestStatus:()=>n});module.exports=w(y);var R=require("../../../utils/requestStatusHelper"),m=x(require("../../../utils/localsHelper"));const n=async({req:e,res:t,services:s})=>{const{executionId:o,status:r}=e.body,{dprUser:p}=m.default.getValues(t),a=await(0,R.getStatus)({req:e,res:t,services:s});return r!==a.status&&(await s.requestedReportService.updateStatus(o,p.id,a.status,a.errorMessage),a.reportData=await s.requestedReportService.getReportByExecutionId(o,p.id)),a},c=e=>e.timestamp?!e.timestamp.lastViewed:!1;var v={getRequestStatus:n,filterReports:c};0&&(module.exports={filterReports,getRequestStatus});
1
+ "use strict";var f=Object.create;var u=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var x=(e,t)=>{for(var s in t)u(e,s,{get:t[s],enumerable:!0})},p=(e,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of g(t))!q.call(e,r)&&r!==s&&u(e,r,{get:()=>t[r],enumerable:!(a=S(t,r))||a.enumerable});return e};var w=(e,t,s)=>(s=e!=null?f(l(e)):{},p(t||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e)),y=e=>p(u({},"__esModule",{value:!0}),e);var D={};x(D,{default:()=>v,filterReports:()=>d,getRequestStatus:()=>m});module.exports=y(D);var n=require("../../../utils/requestStatusHelper"),c=w(require("../../../utils/localsHelper"));const m=async({req:e,res:t,services:s})=>{const{executionId:a,status:r}=e.body,{dprUser:i}=c.default.getValues(t),o=await(0,n.getStatus)({req:e,res:t,services:s}),R=o.errorMessage?JSON.stringify(o.errorMessage):void 0;return r!==o.status&&(await s.requestedReportService.updateStatus(a,i.id,o.status,R),o.reportData=await s.requestedReportService.getReportByExecutionId(a,i.id)),o},d=e=>e.timestamp?!e.timestamp.lastViewed:!1;var v={getRequestStatus:m,filterReports:d};0&&(module.exports={filterReports,getRequestStatus});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/user-reports/requested/utils.ts"],
4
- "sourcesContent": ["import { Response, Request } from 'express'\nimport { RequestedReport, RequestStatus } from '../../../types/UserReports'\nimport { getStatus } from '../../../utils/requestStatusHelper'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { Services } from '../../../types/Services'\n\nexport const getRequestStatus = async ({ req, res, services }: { req: Request; res: Response; services: Services }) => {\n const { executionId, status: currentStatus } = req.body\n const { dprUser } = LocalsHelper.getValues(res)\n const response = await getStatus({ req, res, services })\n\n if (currentStatus !== response.status) {\n await services.requestedReportService.updateStatus(\n executionId,\n dprUser.id,\n response.status as RequestStatus,\n response.errorMessage,\n )\n response.reportData = await services.requestedReportService.getReportByExecutionId(executionId, dprUser.id)\n }\n return response\n}\n\nexport const filterReports = (report: RequestedReport) => {\n return report.timestamp ? !report.timestamp.lastViewed : false\n}\n\nexport default {\n getRequestStatus,\n filterReports,\n}\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,kBAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAL,GAEA,IAAAM,EAA0B,8CAC1BC,EAAyB,0CAGlB,MAAMH,EAAmB,MAAO,CAAE,IAAAI,EAAK,IAAAC,EAAK,SAAAC,CAAS,IAA2D,CACrH,KAAM,CAAE,YAAAC,EAAa,OAAQC,CAAc,EAAIJ,EAAI,KAC7C,CAAE,QAAAK,CAAQ,EAAI,EAAAC,QAAa,UAAUL,CAAG,EACxCM,EAAW,QAAM,aAAU,CAAE,IAAAP,EAAK,IAAAC,EAAK,SAAAC,CAAS,CAAC,EAEvD,OAAIE,IAAkBG,EAAS,SAC7B,MAAML,EAAS,uBAAuB,aACpCC,EACAE,EAAQ,GACRE,EAAS,OACTA,EAAS,YACX,EACAA,EAAS,WAAa,MAAML,EAAS,uBAAuB,uBAAuBC,EAAaE,EAAQ,EAAE,GAErGE,CACT,EAEaZ,EAAiBa,GACrBA,EAAO,UAAY,CAACA,EAAO,UAAU,WAAa,GAG3D,IAAOd,EAAQ,CACb,iBAAAE,EACA,cAAAD,CACF",
6
- "names": ["utils_exports", "__export", "utils_default", "filterReports", "getRequestStatus", "__toCommonJS", "import_requestStatusHelper", "import_localsHelper", "req", "res", "services", "executionId", "currentStatus", "dprUser", "LocalsHelper", "response", "report"]
4
+ "sourcesContent": ["import { Response, Request } from 'express'\nimport { RequestStatus, UserReportData } from '../../../types/UserReports'\nimport { getStatus } from '../../../utils/requestStatusHelper'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { Services } from '../../../types/Services'\n\nexport const getRequestStatus = async ({ req, res, services }: { req: Request; res: Response; services: Services }) => {\n const { executionId, status: currentStatus } = req.body\n const { dprUser } = LocalsHelper.getValues(res)\n const response = await getStatus({ req, res, services })\n const errorMessage = response.errorMessage ? JSON.stringify(response.errorMessage) : undefined\n\n if (currentStatus !== response.status) {\n await services.requestedReportService.updateStatus(\n executionId,\n dprUser.id,\n response.status as RequestStatus,\n errorMessage,\n )\n response.reportData = await services.requestedReportService.getReportByExecutionId(executionId, dprUser.id)\n }\n return response\n}\n\nexport const filterReports = (report: UserReportData) => {\n return report.timestamp ? !report.timestamp.lastViewed : false\n}\n\nexport default {\n getRequestStatus,\n filterReports,\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,kBAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAL,GAEA,IAAAM,EAA0B,8CAC1BC,EAAyB,0CAGlB,MAAMH,EAAmB,MAAO,CAAE,IAAAI,EAAK,IAAAC,EAAK,SAAAC,CAAS,IAA2D,CACrH,KAAM,CAAE,YAAAC,EAAa,OAAQC,CAAc,EAAIJ,EAAI,KAC7C,CAAE,QAAAK,CAAQ,EAAI,EAAAC,QAAa,UAAUL,CAAG,EACxCM,EAAW,QAAM,aAAU,CAAE,IAAAP,EAAK,IAAAC,EAAK,SAAAC,CAAS,CAAC,EACjDM,EAAeD,EAAS,aAAe,KAAK,UAAUA,EAAS,YAAY,EAAI,OAErF,OAAIH,IAAkBG,EAAS,SAC7B,MAAML,EAAS,uBAAuB,aACpCC,EACAE,EAAQ,GACRE,EAAS,OACTC,CACF,EACAD,EAAS,WAAa,MAAML,EAAS,uBAAuB,uBAAuBC,EAAaE,EAAQ,EAAE,GAErGE,CACT,EAEaZ,EAAiBc,GACrBA,EAAO,UAAY,CAACA,EAAO,UAAU,WAAa,GAG3D,IAAOf,EAAQ,CACb,iBAAAE,EACA,cAAAD,CACF",
6
+ "names": ["utils_exports", "__export", "utils_default", "filterReports", "getRequestStatus", "__toCommonJS", "import_requestStatusHelper", "import_localsHelper", "req", "res", "services", "executionId", "currentStatus", "dprUser", "LocalsHelper", "response", "errorMessage", "report"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect, jest } from '@jest/globals'
1
2
  import { Response, Request } from 'express'
2
3
  import UserReportRequestListUtils from './utils'
3
4
  import type { RequestedReportService, ReportingService } from '../../../services'
@@ -34,12 +35,12 @@ describe('UserReportRequestListUtils', () => {
34
35
 
35
36
  requestedReportService = {
36
37
  updateStatus: jest.fn(),
37
- getReportByExecutionId: jest.fn().mockResolvedValue(mockRequested.requestedReady),
38
+ getReportByExecutionId: jest.fn().mockImplementation(() => mockRequested.requestedReady),
38
39
  } as unknown as RequestedReportService
39
40
 
40
41
  reportingService = {
41
- getAsyncReportStatus: jest.fn().mockResolvedValue({
42
- status: RequestStatus.FINISHED,
42
+ getAsyncReportStatus: jest.fn().mockImplementation(() => {
43
+ return { status: RequestStatus.FINISHED }
43
44
  }),
44
45
  } as unknown as ReportingService
45
46
 
@@ -1,5 +1,5 @@
1
1
  import { Response, Request } from 'express'
2
- import { RequestedReport, RequestStatus } from '../../../types/UserReports'
2
+ import { RequestStatus, UserReportData } from '../../../types/UserReports'
3
3
  import { getStatus } from '../../../utils/requestStatusHelper'
4
4
  import LocalsHelper from '../../../utils/localsHelper'
5
5
  import { Services } from '../../../types/Services'
@@ -8,20 +8,21 @@ export const getRequestStatus = async ({ req, res, services }: { req: Request; r
8
8
  const { executionId, status: currentStatus } = req.body
9
9
  const { dprUser } = LocalsHelper.getValues(res)
10
10
  const response = await getStatus({ req, res, services })
11
+ const errorMessage = response.errorMessage ? JSON.stringify(response.errorMessage) : undefined
11
12
 
12
13
  if (currentStatus !== response.status) {
13
14
  await services.requestedReportService.updateStatus(
14
15
  executionId,
15
16
  dprUser.id,
16
17
  response.status as RequestStatus,
17
- response.errorMessage,
18
+ errorMessage,
18
19
  )
19
20
  response.reportData = await services.requestedReportService.getReportByExecutionId(executionId, dprUser.id)
20
21
  }
21
22
  return response
22
23
  }
23
24
 
24
- export const filterReports = (report: RequestedReport) => {
25
+ export const filterReports = (report: UserReportData) => {
25
26
  return report.timestamp ? !report.timestamp.lastViewed : false
26
27
  }
27
28
 
@@ -1,2 +1,2 @@
1
- var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var p=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!o.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(s=m(e,r))||s.enumerable});return t};var b=t=>p(a({},"__esModule",{value:!0}),t);var c={};module.exports=b(c);
1
+ "use strict";var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var p=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!o.call(t,r)&&r!==n&&a(t,r,{get:()=>e[r],enumerable:!(s=m(e,r))||s.enumerable});return t};var b=t=>p(a({},"__esModule",{value:!0}),t);var c={};module.exports=b(c);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/components/user-reports/types.d.ts"],
4
- "sourcesContent": ["import Dict = NodeJS.Dict\nimport type { meta } from '../../types/UserReports'\n\nexport interface RenderTableListResponse {\n head: {\n emptyMessage?: string\n href?: string\n }\n tableData: {\n rows: Dict<string>[][]\n head: Dict<string>[]\n }\n total: {\n amount: number\n shown: number\n max: number\n }\n meta?: meta[]\n csrfToken?: string\n maxRows: number\n}\n"],
5
- "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
4
+ "sourcesContent": ["import Dict = NodeJS.Dict\nimport type { meta } from '../../types/UserReports'\n\nexport interface RenderTableListResponse {\n head: {\n emptyMessage?: string\n href?: string\n }\n tableData: {\n rows: Dict<string>[][]\n head: Dict<string>[]\n }\n total: {\n amount: number\n shown: number\n max: number\n }\n meta?: meta[]\n csrfToken?: string\n maxRows?: number\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -17,5 +17,5 @@ export interface RenderTableListResponse {
17
17
  }
18
18
  meta?: meta[]
19
19
  csrfToken?: string
20
- maxRows: number
20
+ maxRows?: number
21
21
  }
@@ -1,2 +1,2 @@
1
- var j=Object.create;var k=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var z=(t,s)=>{for(var r in s)k(t,r,{get:s[r],enumerable:!0})},x=(t,s,r,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of J(s))!X.call(t,a)&&a!==r&&k(t,a,{get:()=>s[a],enumerable:!(e=G(s,a))||e.enumerable});return t};var d=(t,s,r)=>(r=t!=null?j(K(t)):{},x(s||!t||!t.__esModule?k(r,"default",{value:t,enumerable:!0}):r,t)),W=t=>x(k({},"__esModule",{value:!0}),t);var ie={};z(ie,{default:()=>oe,init:()=>Y,renderList:()=>U,setDataFromStatus:()=>Q,updateExpiredStatus:()=>B,updateLastViewed:()=>H});module.exports=W(ie);var F=d(require("dayjs")),i=require("../../types/UserReports"),T=require("../../utils/requestStatusHelper"),A=d(require("../_filters/filters-selected/utils")),P=d(require("../_filters/utils")),g=require("../../utils/reportListsHelper"),V=d(require("./requested/utils")),L=d(require("./viewed/utils")),_=d(require("./bookmarks/utils")),v=d(require("../../utils/localsHelper")),M=d(require("../../utils/DateMapper/DateMapper")),N=d(require("../../utils/UserStoreItemBuilder"));const Z=t=>{const s=JSON.parse(JSON.stringify(t)),{executionId:r,tableId:e,variantName:a,name:n,reportId:o,variantId:l,id:p,description:u,query:m,interactiveQuery:c,status:y,timestamp:D,reportName:w,dataProductDefinitionsPath:b,type:I,url:S}=s;let f=[];m&&(f=m.summary);let R=[];c&&(R=c.summary);const q=I||i.ReportType.REPORT;return{id:r,text:n||a,reportName:w,description:u,tag:"MIS",summary:f,interactiveSummary:R,timestamp:D,status:y,type:q,...Q(y,s),meta:{reportId:o,id:l||p,executionId:r,tableId:e,status:y,type:q,dataProductDefinitionsPath:b,pollingUrl:S.polling?.pathname,reportUrl:S.report?.pathname}}},ee=(t,s)=>({rows:t.map(e=>te(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),te=(t,s)=>{let r,e="";const{href:a,id:n,reportName:o,text:l,timestamp:p,type:u,status:m}=t;switch(m){case i.RequestStatus.FAILED:r="govuk-tag--red",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.EXPIRED:r="govuk-tag--grey",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.ABORTED:r="govuk-tag--orange",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${a}">Go to ${u}</a>`,r="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${a}">Go to status</a>`;break;default:break}let c="";return(t.summary||t.interactiveSummary)&&(c=ae(t)),[{html:(0,g.createListItemProduct)(o,l,u,p)},{html:c},{html:`<strong class="govuk-tag dpr-request-status-tag ${r}">${m}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},re=(t,s)=>({amount:t,shown:t>s?s:t,max:s}),ae=t=>{const s=t.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),r=t.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${r}</ul>`},se=(t,s)=>{const{nestedBaseUrl:r}=v.default.getValues(s);return t.map(e=>({reportId:e.meta.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:r}))},Q=(t,s)=>{let r,e,a;const{url:n,timestamp:o}=s,l=new M.default;switch(t){case i.RequestStatus.FAILED:{a=o.failed?l.toDateString(o.failed,"local-date"):(0,F.default)().format("DD/MM/YYYY"),e=`${n.polling.fullUrl}`,r=`Failed at: ${a}`;break}case i.RequestStatus.ABORTED:{e=`${n.request.fullUrl}`,a=l.toDateString(o.aborted,"local-date"),r=`Aborted at: ${a}`;break}case i.RequestStatus.FINISHED:e=n.report.fullUrl,a=l.toDateString(o.completed,"local-date"),r=`Ready at: ${a}`;break;case i.RequestStatus.EXPIRED:{e=`${n.request.fullUrl}`,a=l.toDateString(o.expired,"local-date"),r=`Expired at: ${a}`;break}case i.RequestStatus.READY:{e=`${n.report.fullUrl}`,a=l.toDateString(o.lastViewed,"local-date"),r=`Last viewed: ${a}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=n.polling.fullUrl,a=l.toDateString(o.requested,"local-date"),r=`Requested at: ${a}`;break;default:a=l.toDateString(o.lastViewed,"local-date"),r=`Last viewed: ${a}`;break}return{timestamp:r,href:e}},U=async({res:t,reportsData:s,maxRows:r,filterFunction:e,type:a})=>{const{csrfToken:n}=v.default.getValues(t);let o=s.filter(e).map(Z);const l=o.length;r&&(o=o.slice(0,r));const p=ee(o,a),u=a==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${u}/list`},...!o.length&&{emptyMessage:`You have 0 ${a} reports`}},tableData:p,total:re(l,r),meta:se(o,t),csrfToken:n,maxRows:r}},B=async({req:t,res:s,services:r})=>{const{dprUser:e}=v.default.getValues(s),a=await(0,T.getExpiredStatus)({req:t,res:s,services:r});return a&&a.isExpired&&(await r.recentlyViewedService.setToExpired(a.executionId,e.id),await r.requestedReportService.setToExpired(a.executionId,e.id)),a?a.isExpired:!1},Y=async({services:t,res:s,req:r,maxRows:e=6})=>{const{requestedReports:a,recentlyViewedReports:n,bookmarkingEnabled:o}=v.default.getValues(s),l=await U({res:s,reportsData:a,filterFunction:V.default.filterReports,maxRows:e,type:"requested"}),p=await U({res:s,reportsData:n,filterFunction:L.default.filterReports,maxRows:e,type:"viewed"});let u;return o&&(u=await _.default.renderBookmarkList({res:s,req:r,services:t,maxRows:e})),{requestedReports:l,viewedReports:p,bookmarks:u}},H=async({req:t,services:s,reportStateData:r,userId:e,filters:a})=>{const{type:n,reportId:o,reportName:l,description:p,id:u,name:m,executionId:c,tableId:y,query:D,url:w}=r,b={type:n,reportId:o,reportName:l,description:p,id:u,name:m},I={executionId:c,tableId:y},S=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=t.query?.columns,{selectedPage:R,pageSize:q,sortColumn:h,sortedAsc:E}=t.query,$=P.default.setRequestQueryFromFilterValues(a),C={query:{...$,...f&&{columns:f},...R&&{selectedPage:R},...q&&{pageSize:q},...h&&{sortColumn:h},...E&&{sortedAsc:E}},querySummary:A.default.getQuerySummary($,a)},O=new N.default(b).addExecutionData(I).addQuery(S).addInteractiveQuery(C).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(w).addReportUrls(t).build();await s.requestedReportService.updateLastViewed(r.executionId,e),await s.recentlyViewedService.setRecentlyViewed(O,e)};var oe={renderList:U,updateExpiredStatus:B,init:Y,updateLastViewed:H};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
1
+ "use strict";var j=Object.create;var k=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var z=(r,s)=>{for(var t in s)k(r,t,{get:s[t],enumerable:!0})},F=(r,s,t,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of J(s))!X.call(r,a)&&a!==t&&k(r,a,{get:()=>s[a],enumerable:!(e=G(s,a))||e.enumerable});return r};var c=(r,s,t)=>(t=r!=null?j(K(r)):{},F(s||!r||!r.__esModule?k(t,"default",{value:r,enumerable:!0}):t,r)),W=r=>F(k({},"__esModule",{value:!0}),r);var ie={};z(ie,{default:()=>oe,init:()=>Y,renderList:()=>U,setDataFromStatus:()=>Q,updateExpiredStatus:()=>B,updateLastViewed:()=>H});module.exports=W(ie);var $=c(require("dayjs")),i=require("../../types/UserReports"),x=require("../../utils/requestStatusHelper"),A=c(require("../_filters/filters-selected/utils")),P=c(require("../_filters/utils")),y=require("../../utils/reportListsHelper"),V=c(require("./requested/utils")),L=c(require("./viewed/utils")),_=c(require("./bookmarks/utils")),q=c(require("../../utils/localsHelper")),M=c(require("../../utils/DateMapper/DateMapper")),N=c(require("../../utils/UserStoreItemBuilder"));const Z=r=>{const s=JSON.parse(JSON.stringify(r)),{executionId:t,tableId:e,variantName:a,name:l,reportId:o,variantId:d,id:u,description:p,query:n,interactiveQuery:m,status:g,reportName:D,dataProductDefinitionsPath:b,type:w,url:S}=s;let v=[];n&&(v=n.summary);let f=[];m&&(f=m.summary);const R=w||i.ReportType.REPORT;return{id:t,text:l||a||"",reportName:D,description:p,tag:"MIS",summary:v,interactiveSummary:f,status:g,type:R,...g&&Q(g,s),meta:{reportId:o,id:d||u,executionId:t,tableId:e,status:g,type:R,dataProductDefinitionsPath:b,pollingUrl:S?.polling?.pathname,reportUrl:S?.report?.pathname}}},ee=(r,s)=>({rows:r.map(e=>te(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),te=(r,s)=>{let t,e="";const{href:a,id:l,reportName:o,text:d,timestamp:u,type:p,status:n}=r;if(a&&l)switch(n){case i.RequestStatus.FAILED:t="govuk-tag--red",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.EXPIRED:t="govuk-tag--grey",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.ABORTED:t="govuk-tag--orange",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to ${p}</a>`,t="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to status</a>`;break;default:break}let m="";return(r.summary||r.interactiveSummary)&&(m=ae(r)),[{html:(0,y.createListItemProduct)(o,d,p,u)},{html:m},{html:`<strong class="govuk-tag dpr-request-status-tag ${t}">${n}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},re=(r,s=20)=>({amount:r,shown:s&&r>s?s:r,max:s}),ae=r=>{const s=r.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),t=r.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${t}</ul>`},se=(r,s)=>{const{nestedBaseUrl:t}=q.default.getValues(s);return r.map(e=>({reportId:e.meta?.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:t}))},Q=(r,s)=>{let t,e,a;const{url:l,timestamp:o}=s,d=l?.polling,u=l?.request,p=l?.report,n=new M.default;switch(r){case i.RequestStatus.FAILED:{a=o.failed?n.toDateString(o.failed,"local-date"):(0,$.default)().format("DD/MM/YYYY"),e=d?.fullUrl,t=`Failed at: ${a}`;break}case i.RequestStatus.ABORTED:{e=u?.fullUrl,a=n.toDateString(o.aborted,"local-date"),t=`Aborted at: ${a}`;break}case i.RequestStatus.FINISHED:e=p?.fullUrl,a=n.toDateString(o.completed,"local-date"),t=`Ready at: ${a}`;break;case i.RequestStatus.EXPIRED:{e=u?.fullUrl,a=n.toDateString(o.expired,"local-date"),t=`Expired at: ${a}`;break}case i.RequestStatus.READY:{e=p?.fullUrl,a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=d?.fullUrl,a=n.toDateString(o.requested,"local-date"),t=`Requested at: ${a}`;break;default:a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}return{timestamp:t,href:e}},U=async({res:r,reportsData:s,maxRows:t,filterFunction:e,type:a})=>{const{csrfToken:l}=q.default.getValues(r);let o=s.filter(e).map(Z);const d=o.length;t&&(o=o.slice(0,t));const u=ee(o,a),p=a==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${p}/list`},...!o.length&&{emptyMessage:`You have 0 ${a} reports`}},tableData:u,total:re(d,t),meta:se(o,r),csrfToken:l,...t&&{maxRows:t}}},B=async({req:r,res:s,services:t})=>{const{dprUser:e}=q.default.getValues(s),a=await(0,x.getExpiredStatus)({req:r,res:s,services:t});return a&&a.isExpired&&(await t.recentlyViewedService.setToExpired(a.executionId,e.id),await t.requestedReportService.setToExpired(a.executionId,e.id)),a?a.isExpired:!1},Y=async({services:r,res:s,maxRows:t=6})=>{const{requestedReports:e,recentlyViewedReports:a,bookmarkingEnabled:l}=q.default.getValues(s),o=await U({res:s,reportsData:e,filterFunction:V.default.filterReports,maxRows:t,type:"requested"}),d=await U({res:s,reportsData:a,filterFunction:L.default.filterReports,maxRows:t,type:"viewed"});let u;return l&&(u=await _.default.renderBookmarkList({res:s,services:r,maxRows:t})),{requestedReports:o,viewedReports:d,bookmarks:u}},H=async({req:r,services:s,reportStateData:t,userId:e,filters:a})=>{const{type:l,reportId:o,reportName:d,description:u,id:p,name:n,executionId:m,tableId:g,query:D,url:b}=t,w={type:l,reportId:o,reportName:d,description:u,id:p,name:n},S={executionId:m,tableId:g},v=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=r.query?.columns,{selectedPage:R,pageSize:I,sortColumn:h,sortedAsc:E}=r.query,T=P.default.setRequestQueryFromFilterValues(a),C={query:{...T,...f&&{columns:f},...R&&{selectedPage:R},...I&&{pageSize:I},...h&&{sortColumn:h},...E&&{sortedAsc:E}},querySummary:A.default.getQuerySummary(T,a)},O=new N.default(w).addExecutionData(S).addQuery(v).addInteractiveQuery(C).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(b).addReportUrls(r).build();m&&await s.requestedReportService.updateLastViewed(m,e),await s.recentlyViewedService.setRecentlyViewed(O,e)};var oe={renderList:U,updateExpiredStatus:B,init:Y,updateLastViewed:H};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
2
2
  //# sourceMappingURL=utils.js.map