@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.27.0 → 4.28.0

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 (468) hide show
  1. package/dpr/assets/app.js.map +2 -2
  2. package/dpr/components/_async/async-filters-form/sortByTemplate.js +60 -1
  3. package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +2 -2
  4. package/dpr/components/_async/async-filters-form/types.d.js +16 -1
  5. package/dpr/components/_async/async-filters-form/types.d.js.map +2 -2
  6. package/dpr/components/_async/async-filters-form/utils.js +180 -1
  7. package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
  8. package/dpr/components/_catalogue/catalogue/types.js +16 -1
  9. package/dpr/components/_catalogue/catalogue/types.js.map +2 -2
  10. package/dpr/components/_catalogue/catalogue/utils.js +83 -1
  11. package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
  12. package/dpr/components/_catalogue/catalogue-list/utils.js +140 -1
  13. package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
  14. package/dpr/components/_charts/chart/Chart.js +99 -1
  15. package/dpr/components/_charts/chart/Chart.js.map +2 -2
  16. package/dpr/components/_charts/chart/ChartColours.js +61 -1
  17. package/dpr/components/_charts/chart/ChartColours.js.map +2 -2
  18. package/dpr/components/_charts/chart/ChartTimeseries.js +101 -1
  19. package/dpr/components/_charts/chart/ChartTimeseries.js.map +2 -2
  20. package/dpr/components/_charts/chart/bar/BarChart.js +193 -1
  21. package/dpr/components/_charts/chart/bar/BarChart.js.map +2 -2
  22. package/dpr/components/_charts/chart/bar/types.js +16 -1
  23. package/dpr/components/_charts/chart/bar/types.js.map +2 -2
  24. package/dpr/components/_charts/chart/bar/validate.js +73 -1
  25. package/dpr/components/_charts/chart/bar/validate.js.map +2 -2
  26. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +80 -1
  27. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +2 -2
  28. package/dpr/components/_charts/chart/bar-timeseries/types.js +16 -1
  29. package/dpr/components/_charts/chart/bar-timeseries/types.js.map +2 -2
  30. package/dpr/components/_charts/chart/bar-timeseries/validate.js +48 -1
  31. package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +2 -2
  32. package/dpr/components/_charts/chart/buckets/Buckets.js +194 -1
  33. package/dpr/components/_charts/chart/buckets/Buckets.js.map +2 -2
  34. package/dpr/components/_charts/chart/buckets/types.js +16 -1
  35. package/dpr/components/_charts/chart/buckets/types.js.map +2 -2
  36. package/dpr/components/_charts/chart/buckets/validate.js +40 -1
  37. package/dpr/components/_charts/chart/buckets/validate.js.map +2 -2
  38. package/dpr/components/_charts/chart/chart-config.js +62 -1
  39. package/dpr/components/_charts/chart/chart-config.js.map +2 -2
  40. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +96 -1
  41. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +2 -2
  42. package/dpr/components/_charts/chart/doughnut/types.js +16 -1
  43. package/dpr/components/_charts/chart/doughnut/types.js.map +2 -2
  44. package/dpr/components/_charts/chart/doughnut/validate.js +48 -1
  45. package/dpr/components/_charts/chart/doughnut/validate.js.map +2 -2
  46. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +213 -1
  47. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
  48. package/dpr/components/_charts/chart/heatmap/types.js +16 -1
  49. package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
  50. package/dpr/components/_charts/chart/heatmap/validate.js +40 -1
  51. package/dpr/components/_charts/chart/heatmap/validate.js.map +2 -2
  52. package/dpr/components/_charts/chart/line/LineChart.js +107 -1
  53. package/dpr/components/_charts/chart/line/LineChart.js.map +2 -2
  54. package/dpr/components/_charts/chart/line/types.js +16 -1
  55. package/dpr/components/_charts/chart/line/types.js.map +2 -2
  56. package/dpr/components/_charts/chart/line/validate.js +48 -1
  57. package/dpr/components/_charts/chart/line/validate.js.map +2 -2
  58. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +81 -1
  59. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +2 -2
  60. package/dpr/components/_charts/chart/line-timeseries/types.js +16 -1
  61. package/dpr/components/_charts/chart/line-timeseries/types.js.map +2 -2
  62. package/dpr/components/_charts/chart/line-timeseries/validate.js +48 -1
  63. package/dpr/components/_charts/chart/line-timeseries/validate.js.map +2 -2
  64. package/dpr/components/_charts/utils.js +240 -1
  65. package/dpr/components/_charts/utils.js.map +2 -2
  66. package/dpr/components/_dashboards/dashboard-list/types.js +16 -1
  67. package/dpr/components/_dashboards/dashboard-list/types.js.map +2 -2
  68. package/dpr/components/_dashboards/dashboard-list/utils.js +170 -1
  69. package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
  70. package/dpr/components/_dashboards/dashboard-list/validate.js +43 -1
  71. package/dpr/components/_dashboards/dashboard-list/validate.js.map +2 -2
  72. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +95 -1
  73. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +2 -2
  74. package/dpr/components/_dashboards/dashboard-visualisation/types.js +40 -1
  75. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  76. package/dpr/components/_dashboards/scorecard/Scorecard.js +176 -1
  77. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  78. package/dpr/components/_dashboards/scorecard/types.js +16 -1
  79. package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
  80. package/dpr/components/_dashboards/scorecard/utils.js +61 -1
  81. package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
  82. package/dpr/components/_dashboards/scorecard/validate.js +50 -1
  83. package/dpr/components/_dashboards/scorecard/validate.js.map +2 -2
  84. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +212 -1
  85. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +2 -2
  86. package/dpr/components/_dashboards/scorecard-group/types.js +16 -1
  87. package/dpr/components/_dashboards/scorecard-group/types.js.map +2 -2
  88. package/dpr/components/_dashboards/scorecard-group/validate.js +50 -1
  89. package/dpr/components/_dashboards/scorecard-group/validate.js.map +2 -2
  90. package/dpr/components/_filters/filter-input/enum.js +38 -1
  91. package/dpr/components/_filters/filter-input/enum.js.map +2 -2
  92. package/dpr/components/_filters/filter-input/filters.js +37 -1
  93. package/dpr/components/_filters/filter-input/filters.js.map +2 -2
  94. package/dpr/components/_filters/filter-input/types.d.js +16 -1
  95. package/dpr/components/_filters/filter-input/types.d.js.map +2 -2
  96. package/dpr/components/_filters/filters-selected/utils.js +314 -1
  97. package/dpr/components/_filters/filters-selected/utils.js.map +2 -2
  98. package/dpr/components/_filters/filtersTypeEnum.js +32 -1
  99. package/dpr/components/_filters/filtersTypeEnum.js.map +2 -2
  100. package/dpr/components/_filters/types.d.js +16 -1
  101. package/dpr/components/_filters/types.d.js.map +2 -2
  102. package/dpr/components/_filters/utils.js +385 -1
  103. package/dpr/components/_filters/utils.js.map +2 -2
  104. package/dpr/components/_inputs/autocomplete-text-input/utils.js +45 -1
  105. package/dpr/components/_inputs/autocomplete-text-input/utils.js.map +2 -2
  106. package/dpr/components/_inputs/date-input/utils.js +88 -1
  107. package/dpr/components/_inputs/date-input/utils.js.map +2 -2
  108. package/dpr/components/_inputs/date-range/types.js +38 -1
  109. package/dpr/components/_inputs/date-range/types.js.map +2 -2
  110. package/dpr/components/_inputs/date-range/utils.js +229 -1
  111. package/dpr/components/_inputs/date-range/utils.js.map +2 -2
  112. package/dpr/components/_inputs/granular-date-range/types.js +70 -1
  113. package/dpr/components/_inputs/granular-date-range/types.js.map +2 -2
  114. package/dpr/components/_inputs/granular-date-range/utils.js +445 -1
  115. package/dpr/components/_inputs/granular-date-range/utils.js.map +2 -2
  116. package/dpr/components/_inputs/multi-select/utils.js +88 -1
  117. package/dpr/components/_inputs/multi-select/utils.js.map +2 -2
  118. package/dpr/components/_inputs/start-end-date/utils.js +84 -1
  119. package/dpr/components/_inputs/start-end-date/utils.js.map +2 -2
  120. package/dpr/components/_reports/report-actions/actionsTemplate.js +59 -1
  121. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +2 -2
  122. package/dpr/components/_reports/report-actions/types.d.js +16 -1
  123. package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
  124. package/dpr/components/_reports/report-actions/utils.js +97 -1
  125. package/dpr/components/_reports/report-actions/utils.js.map +2 -2
  126. package/dpr/components/_reports/report-columns-form/types.d.js +16 -1
  127. package/dpr/components/_reports/report-columns-form/types.d.js.map +2 -2
  128. package/dpr/components/_reports/report-columns-form/utils.js +65 -1
  129. package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
  130. package/dpr/components/_reports/report-data-table/types.d.js +16 -1
  131. package/dpr/components/_reports/report-data-table/types.d.js.map +2 -2
  132. package/dpr/components/_reports/report-data-table/utils.js +122 -1
  133. package/dpr/components/_reports/report-data-table/utils.js.map +2 -2
  134. package/dpr/components/_reports/report-pagination/types.d.js +16 -1
  135. package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
  136. package/dpr/components/_reports/report-pagination/utils.js +105 -1
  137. package/dpr/components/_reports/report-pagination/utils.js.map +2 -2
  138. package/dpr/components/_reports/report-totals/utils.js +42 -1
  139. package/dpr/components/_reports/report-totals/utils.js.map +2 -2
  140. package/dpr/components/card-group/utils.js +57 -1
  141. package/dpr/components/card-group/utils.js.map +2 -2
  142. package/dpr/components/report-list/defaultTokenProvider.js +36 -1
  143. package/dpr/components/report-list/defaultTokenProvider.js.map +2 -2
  144. package/dpr/components/report-list/types.d.js +16 -1
  145. package/dpr/components/report-list/types.d.js.map +2 -2
  146. package/dpr/components/report-list/utils.js +238 -1
  147. package/dpr/components/report-list/utils.js.map +2 -2
  148. package/dpr/components/show-more/utils.js +38 -3
  149. package/dpr/components/show-more/utils.js.map +2 -2
  150. package/dpr/components/user-reports/bookmarks/utils.js +198 -1
  151. package/dpr/components/user-reports/bookmarks/utils.js.map +2 -2
  152. package/dpr/components/user-reports/requested/utils.js +65 -1
  153. package/dpr/components/user-reports/requested/utils.js.map +2 -2
  154. package/dpr/components/user-reports/types.d.js +16 -1
  155. package/dpr/components/user-reports/types.d.js.map +2 -2
  156. package/dpr/components/user-reports/utils.js +365 -1
  157. package/dpr/components/user-reports/utils.js.map +2 -2
  158. package/dpr/components/user-reports/viewed/utils.js +37 -1
  159. package/dpr/components/user-reports/viewed/utils.js.map +2 -2
  160. package/dpr/data/agentConfig.js +35 -1
  161. package/dpr/data/agentConfig.js.map +2 -2
  162. package/dpr/data/dashboardClient.js +108 -1
  163. package/dpr/data/dashboardClient.js.map +2 -2
  164. package/dpr/data/dprReportingClient.js +55 -1
  165. package/dpr/data/dprReportingClient.js.map +2 -2
  166. package/dpr/data/missingReportClient.js +55 -1
  167. package/dpr/data/missingReportClient.js.map +2 -2
  168. package/dpr/data/productCollectionClient.js +58 -1
  169. package/dpr/data/productCollectionClient.js.map +2 -2
  170. package/dpr/data/reportDataStore.js +77 -1
  171. package/dpr/data/reportDataStore.js.map +2 -2
  172. package/dpr/data/reportingClient.js +173 -1
  173. package/dpr/data/reportingClient.js.map +2 -2
  174. package/dpr/data/restClient.js +143 -1
  175. package/dpr/data/restClient.js.map +2 -2
  176. package/dpr/data/types.d.js +16 -1
  177. package/dpr/data/types.d.js.map +2 -2
  178. package/dpr/middleware/reportAuthoriser.js +63 -1
  179. package/dpr/middleware/reportAuthoriser.js.map +2 -2
  180. package/dpr/middleware/setUpDprResources.js +173 -1
  181. package/dpr/middleware/setUpDprResources.js.map +2 -2
  182. package/dpr/middleware/setUpNestedRoute.js +35 -1
  183. package/dpr/middleware/setUpNestedRoute.js.map +2 -2
  184. package/dpr/routes/index.js +50 -1
  185. package/dpr/routes/index.js.map +2 -2
  186. package/dpr/routes/journeys/api-failures.cy.js +295 -1
  187. package/dpr/routes/journeys/api-failures.cy.js.map +2 -2
  188. package/dpr/routes/journeys/download-report/controller.js +65 -1
  189. package/dpr/routes/journeys/download-report/controller.js.map +2 -2
  190. package/dpr/routes/journeys/download-report/request-download/form/controller.js +98 -1
  191. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +2 -2
  192. package/dpr/routes/journeys/download-report/request-download/form/routes.js +50 -1
  193. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +2 -2
  194. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +68 -1
  195. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +2 -2
  196. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +47 -1
  197. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +2 -2
  198. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +17 -1
  199. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
  200. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +24 -1
  201. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
  202. package/dpr/routes/journeys/download-report/request-download/routes.js +46 -1
  203. package/dpr/routes/journeys/download-report/request-download/routes.js.map +2 -2
  204. package/dpr/routes/journeys/download-report/request-download/service.js +90 -1
  205. package/dpr/routes/journeys/download-report/request-download/service.js.map +2 -2
  206. package/dpr/routes/journeys/download-report/routes.js +63 -1
  207. package/dpr/routes/journeys/download-report/routes.js.map +2 -2
  208. package/dpr/routes/journeys/download-report/tests.cy.js +104 -1
  209. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  210. package/dpr/routes/journeys/download-report/utils.js +196 -1
  211. package/dpr/routes/journeys/download-report/utils.js.map +2 -2
  212. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +58 -1
  213. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +2 -2
  214. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +56 -1
  215. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +2 -2
  216. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +47 -1
  217. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +2 -2
  218. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +32 -1
  219. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
  220. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +49 -1
  221. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +2 -2
  222. package/dpr/routes/journeys/my-reports/bookmarks/service.js +123 -4
  223. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
  224. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +448 -1
  225. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  226. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +44 -1
  227. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +2 -2
  228. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +53 -1
  229. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +2 -2
  230. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +65 -1
  231. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +2 -2
  232. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +47 -1
  233. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +2 -2
  234. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +83 -1
  235. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  236. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +49 -1
  237. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +2 -2
  238. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +118 -1
  239. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +2 -2
  240. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +52 -1
  241. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +2 -2
  242. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +65 -1
  243. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +2 -2
  244. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +47 -1
  245. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +2 -2
  246. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +15 -1
  247. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
  248. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +49 -1
  249. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +2 -2
  250. package/dpr/routes/journeys/my-reports/requested-reports/service.js +200 -1
  251. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +2 -2
  252. package/dpr/routes/journeys/my-reports/routes.js +59 -1
  253. package/dpr/routes/journeys/my-reports/routes.js.map +2 -2
  254. package/dpr/routes/journeys/product-collection/routes.js +45 -1
  255. package/dpr/routes/journeys/product-collection/routes.js.map +2 -2
  256. package/dpr/routes/journeys/product-collection/selected/controller.js +55 -1
  257. package/dpr/routes/journeys/product-collection/selected/controller.js.map +2 -2
  258. package/dpr/routes/journeys/product-collection/selected/routes.js +37 -1
  259. package/dpr/routes/journeys/product-collection/selected/routes.js.map +2 -2
  260. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +47 -1
  261. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
  262. package/dpr/routes/journeys/product-collection/selected/validation.js +41 -1
  263. package/dpr/routes/journeys/product-collection/selected/validation.js.map +2 -2
  264. package/dpr/routes/journeys/request-missing-report/form/controller.js +104 -1
  265. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +2 -2
  266. package/dpr/routes/journeys/request-missing-report/form/routes.js +50 -1
  267. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +2 -2
  268. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +22 -1
  269. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
  270. package/dpr/routes/journeys/request-missing-report/form/validation.js +43 -1
  271. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +2 -2
  272. package/dpr/routes/journeys/request-missing-report/routes.js +57 -1
  273. package/dpr/routes/journeys/request-missing-report/routes.js.map +2 -2
  274. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +65 -1
  275. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +2 -2
  276. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +47 -1
  277. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +2 -2
  278. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +14 -1
  279. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +2 -2
  280. package/dpr/routes/journeys/request-missing-report/tests.cy.js +37 -1
  281. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  282. package/dpr/routes/journeys/request-report/controller.js +79 -1
  283. package/dpr/routes/journeys/request-report/controller.js.map +2 -2
  284. package/dpr/routes/journeys/request-report/filters/controller.js +127 -1
  285. package/dpr/routes/journeys/request-report/filters/controller.js.map +2 -2
  286. package/dpr/routes/journeys/request-report/filters/routes.js +50 -1
  287. package/dpr/routes/journeys/request-report/filters/routes.js.map +2 -2
  288. package/dpr/routes/journeys/request-report/filters/tests.cy.js +451 -1
  289. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +2 -2
  290. package/dpr/routes/journeys/request-report/filters/utils.js +331 -1
  291. package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
  292. package/dpr/routes/journeys/request-report/routes.js +100 -1
  293. package/dpr/routes/journeys/request-report/routes.js.map +2 -2
  294. package/dpr/routes/journeys/request-report/status/controller.js +80 -1
  295. package/dpr/routes/journeys/request-report/status/controller.js.map +2 -2
  296. package/dpr/routes/journeys/request-report/status/routes.js +48 -1
  297. package/dpr/routes/journeys/request-report/status/routes.js.map +2 -2
  298. package/dpr/routes/journeys/request-report/status/tests.cy.js +127 -1
  299. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  300. package/dpr/routes/journeys/request-report/status/utils.js +72 -1
  301. package/dpr/routes/journeys/request-report/status/utils.js.map +2 -2
  302. package/dpr/routes/journeys/request-report/tests.cy.js +307 -1
  303. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  304. package/dpr/routes/journeys/routes.js +46 -1
  305. package/dpr/routes/journeys/routes.js.map +2 -2
  306. package/dpr/routes/journeys/view-report/async/controller.js +89 -1
  307. package/dpr/routes/journeys/view-report/async/controller.js.map +2 -2
  308. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +82 -1
  309. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +2 -2
  310. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +48 -1
  311. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +2 -2
  312. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +33 -1
  313. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  314. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +242 -1
  315. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +2 -2
  316. package/dpr/routes/journeys/view-report/async/report/controller.js +83 -1
  317. package/dpr/routes/journeys/view-report/async/report/controller.js.map +2 -2
  318. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +76 -1
  319. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
  320. package/dpr/routes/journeys/view-report/async/report/routes.js +53 -1
  321. package/dpr/routes/journeys/view-report/async/report/routes.js.map +2 -2
  322. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +895 -1
  323. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  324. package/dpr/routes/journeys/view-report/async/report/types.js +16 -1
  325. package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
  326. package/dpr/routes/journeys/view-report/async/report/utils.js +427 -1
  327. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  328. package/dpr/routes/journeys/view-report/async/routes.js +52 -1
  329. package/dpr/routes/journeys/view-report/async/routes.js.map +2 -2
  330. package/dpr/routes/journeys/view-report/controller.js +62 -1
  331. package/dpr/routes/journeys/view-report/controller.js.map +2 -2
  332. package/dpr/routes/journeys/view-report/routes.js +87 -1
  333. package/dpr/routes/journeys/view-report/routes.js.map +2 -2
  334. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +68 -1
  335. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +2 -2
  336. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +48 -1
  337. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +2 -2
  338. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +144 -1
  339. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +2 -2
  340. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +102 -1
  341. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
  342. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +47 -1
  343. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +2 -2
  344. package/dpr/routes/journeys/view-report/sync/report/controller.js +99 -1
  345. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +2 -2
  346. package/dpr/routes/journeys/view-report/sync/report/routes.js +51 -1
  347. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +2 -2
  348. package/dpr/routes/journeys/view-report/sync/report/utils.js +298 -1
  349. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +2 -2
  350. package/dpr/routes/journeys/view-report/sync/routes.js +51 -1
  351. package/dpr/routes/journeys/view-report/sync/routes.js.map +2 -2
  352. package/dpr/routes/journeys/view-report/sync/tests.cy.js +43 -1
  353. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  354. package/dpr/routes/journeys/view-report/utils.js +173 -1
  355. package/dpr/routes/journeys/view-report/utils.js.map +2 -2
  356. package/dpr/services/dashboardService.js +66 -1
  357. package/dpr/services/dashboardService.js.map +2 -2
  358. package/dpr/services/defaultFilterValuesService.js +114 -1
  359. package/dpr/services/defaultFilterValuesService.js.map +2 -2
  360. package/dpr/services/featureFlagService.js +65 -1
  361. package/dpr/services/featureFlagService.js.map +2 -2
  362. package/dpr/services/featureFlags.cy.js +72 -1
  363. package/dpr/services/featureFlags.cy.js.map +2 -2
  364. package/dpr/services/index.js +59 -1
  365. package/dpr/services/index.js.map +2 -2
  366. package/dpr/services/missingReport/missingReportService.js +52 -1
  367. package/dpr/services/missingReport/missingReportService.js.map +2 -2
  368. package/dpr/services/productCollection/productCollectionService.js +55 -1
  369. package/dpr/services/productCollection/productCollectionService.js.map +2 -2
  370. package/dpr/services/productCollection/productCollectionStoreService.js +61 -1
  371. package/dpr/services/productCollection/productCollectionStoreService.js.map +2 -2
  372. package/dpr/services/reportStoreService.js +51 -1
  373. package/dpr/services/reportStoreService.js.map +2 -2
  374. package/dpr/services/reportingService.js +81 -1
  375. package/dpr/services/reportingService.js.map +2 -2
  376. package/dpr/setUpNunjucksFilters.js +66 -1
  377. package/dpr/setUpNunjucksFilters.js.map +2 -2
  378. package/dpr/types/AsyncReportUtils.js +16 -1
  379. package/dpr/types/AsyncReportUtils.js.map +2 -2
  380. package/dpr/types/Bookmark.js +16 -1
  381. package/dpr/types/Bookmark.js.map +2 -2
  382. package/dpr/types/Charts.js +16 -1
  383. package/dpr/types/Charts.js.map +2 -2
  384. package/dpr/types/Download.js +16 -1
  385. package/dpr/types/Download.js.map +2 -2
  386. package/dpr/types/DprConfig.js +16 -1
  387. package/dpr/types/DprConfig.js.map +2 -2
  388. package/dpr/types/DprUser.js +43 -1
  389. package/dpr/types/DprUser.js.map +2 -2
  390. package/dpr/types/EmbeddedReportUtils.js +33 -1
  391. package/dpr/types/EmbeddedReportUtils.js.map +2 -2
  392. package/dpr/types/ExecutionData.d.js +16 -1
  393. package/dpr/types/ExecutionData.d.js.map +2 -2
  394. package/dpr/types/Metrics.js +16 -1
  395. package/dpr/types/Metrics.js.map +2 -2
  396. package/dpr/types/ReportQuery.js +168 -1
  397. package/dpr/types/ReportQuery.js.map +2 -2
  398. package/dpr/types/ReportStore.js +16 -1
  399. package/dpr/types/ReportStore.js.map +2 -2
  400. package/dpr/types/Services.d.js +16 -1
  401. package/dpr/types/Services.d.js.map +2 -2
  402. package/dpr/types/Templates.d.js +16 -1
  403. package/dpr/types/Templates.d.js.map +2 -2
  404. package/dpr/types/UserReports.js +55 -1
  405. package/dpr/types/UserReports.js.map +2 -2
  406. package/dpr/types/api.d.js +16 -1
  407. package/dpr/types/api.d.js.map +2 -2
  408. package/dpr/types/index.d.js +16 -1
  409. package/dpr/types/index.d.js.map +2 -2
  410. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +91 -1
  411. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +2 -2
  412. package/dpr/utils/CreateDprServices.js +66 -1
  413. package/dpr/utils/CreateDprServices.js.map +2 -2
  414. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +304 -1
  415. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +2 -2
  416. package/dpr/utils/DataTableBuilder/types.d.js +16 -1
  417. package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
  418. package/dpr/utils/DateMapper/DateMapper.js +125 -1
  419. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  420. package/dpr/utils/DateMapper/types.d.js +16 -1
  421. package/dpr/utils/DateMapper/types.d.js.map +2 -2
  422. package/dpr/utils/ErrorHandler.js +94 -1
  423. package/dpr/utils/ErrorHandler.js.map +2 -2
  424. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +201 -1
  425. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  426. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +16 -1
  427. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +2 -2
  428. package/dpr/utils/Personalisation/personalisationUtils.js +202 -1
  429. package/dpr/utils/Personalisation/personalisationUtils.js.map +2 -2
  430. package/dpr/utils/Personalisation/types.d.js +16 -1
  431. package/dpr/utils/Personalisation/types.d.js.map +2 -2
  432. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +310 -1
  433. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  434. package/dpr/utils/SectionedDataTableBuilder/types.d.js +16 -1
  435. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +2 -2
  436. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +145 -1
  437. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  438. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +60 -1
  439. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +2 -2
  440. package/dpr/utils/UserStoreItemBuilder.js +247 -1
  441. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  442. package/dpr/utils/arrayUtils.js +28 -1
  443. package/dpr/utils/arrayUtils.js.map +2 -2
  444. package/dpr/utils/datasetHelper.js +229 -1
  445. package/dpr/utils/datasetHelper.js.map +2 -2
  446. package/dpr/utils/definitionUtils.js +133 -1
  447. package/dpr/utils/definitionUtils.js.map +2 -2
  448. package/dpr/utils/index.js +44 -1
  449. package/dpr/utils/index.js.map +2 -2
  450. package/dpr/utils/indexedAccesHelper.js +41 -1
  451. package/dpr/utils/indexedAccesHelper.js.map +2 -2
  452. package/dpr/utils/localsHelper.js +105 -1
  453. package/dpr/utils/localsHelper.js.map +2 -2
  454. package/dpr/utils/logger.js +48 -1
  455. package/dpr/utils/logger.js.map +2 -2
  456. package/dpr/utils/reportListsHelper.js +128 -12
  457. package/dpr/utils/reportListsHelper.js.map +2 -2
  458. package/dpr/utils/reportStoreHelper.js +65 -1
  459. package/dpr/utils/reportStoreHelper.js.map +2 -2
  460. package/dpr/utils/requestStatusHelper.js +172 -1
  461. package/dpr/utils/requestStatusHelper.js.map +2 -2
  462. package/dpr/utils/sanitisedError.js +45 -1
  463. package/dpr/utils/sanitisedError.js.map +2 -2
  464. package/dpr/utils/urlHelper.js +103 -1
  465. package/dpr/utils/urlHelper.js.map +2 -2
  466. package/dpr/validation/validate.js +52 -1
  467. package/dpr/validation/validate.js.map +2 -2
  468. package/package.json +1 -1
@@ -1,2 +1,105 @@
1
- "use strict";var s=require("test-app/routes/integrationTests/appStateUtils"),o=require("../../../../../cypress-tests/cypressUtils");context("Download report",()=>{const d="/embedded/platform/";let t,l;before(()=>{(0,o.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult100"),cy.visit(d),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(e,i)=>!!i.textContent?.includes("Successful Report")&&!!i.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),(0,o.checkA11y)(),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.findByRole("heading",{level:1,name:/Successful Report/}).should("be.visible"),cy.url().then(e=>{l=e})}),beforeEach(()=>{cy.visit(l)}),describe("Enabling download",()=>{it("should show the enable download button",()=>{cy.findByLabelText(/Enable download/).should("exist").should("be.visible"),cy.findByRole("heading",{name:"To download this report"}).should("not.exist")}),it("should show the download disabled message with link to form",()=>{cy.findByLabelText(/Enable download/).click(),cy.url().should("have.string","/report/download-disabled"),cy.findByRole("heading",{name:"To download this report"}).should("be.visible"),cy.findByRole("link",{name:"Fill out a form"})}),it("should go to the request download form",()=>{cy.findByLabelText(/Enable download/).click(),cy.findByRole("link",{name:"Fill out a form"}).click(),cy.url().then(e=>{t=e}),cy.url().should("match",/\/embedded\/platform\/dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form/),cy.location().should(e=>{expect(e.search).to.match(/.*reportUrl=\/embedded\/platform\/dpr\/view-report\/async\/report\/request-examples\/request-example-success\/tblId_[0-9]+\/report/)})})}),describe("Requesting download",()=>{it("should prefill the user data in the request form",()=>{cy.visit(t),cy.findByRole("textbox",{name:"What is your Full name?"}).should("have.value","Test User"),cy.findByRole("textbox",{name:"What is your Email address?"}).should("have.value","test@user.com")}),it("should validate the required fields",()=>{cy.visit(t),cy.findByRole("alert").should("not.exist"),cy.findAllByRole("paragraph").contains("Enter your Job title").should("not.exist"),cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("not.exist"),cy.get("#more-detail-error").should("not.be.visible"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("alert").should("exist"),cy.findAllByRole("paragraph").contains("Enter your Job title").should("exist"),cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("exist")}),it("should submit the download request",()=>{cy.visit(t),cy.findByRole("textbox",{name:"What is your Job title?"}).type("Software engineer"),cy.findByRole("textbox",{name:"Can you provide more detail"}).type("I like this report"),cy.findByRole("button",{name:"Submit request"}).click(),cy.findByText(/You have been granted permission/).should("be.visible"),cy.url().as("downloadRequestSubmittedPage"),cy.url().and("match",/dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form\/submitted/),cy.findByRole("link",{name:/Return to report to download/}).click(),cy.findAllByRole("heading").contains("Successful Report").should("exist"),cy.findByRole("button",{name:/download/}).should("be.visible"),cy.task("stubRequestSuccessResult10MissingFirstRow"),cy.findByRole("button",{name:/download/}).click(),cy.task("checkContents10RowExcelValid").should("equal",!0)}),it("should redirect on trying to download after having the permission to download removed",()=>{(0,s.updateRedisState)("downloadPermissions",[]),cy.findByRole("heading",{name:/To download this report/}).should("not.exist"),cy.findByRole("button",{name:/download/}).click(),cy.findByRole("heading",{name:/To download this report/}).should("be.visible")})})});
1
+ "use strict";
2
+ var import_appStateUtils = require("test-app/routes/integrationTests/appStateUtils");
3
+ var import_cypressUtils = require("../../../../../cypress-tests/cypressUtils");
4
+ context("Download report", () => {
5
+ const path = "/embedded/platform/";
6
+ let downloadRequestFormPage;
7
+ let viewReportUrl;
8
+ before(() => {
9
+ (0, import_cypressUtils.executeReportStubs)();
10
+ cy.task("stubDefinitionRequestExamplesSuccess");
11
+ cy.task("stubRequestSuccessResult20");
12
+ cy.task("stubRequestSuccessResult100");
13
+ cy.visit(path);
14
+ cy.findByLabelText(/Reports catalogue.*/i).within(() => {
15
+ cy.findByRole("row", {
16
+ name: (_, element) => {
17
+ return Boolean(element.textContent?.includes("Successful Report")) && Boolean(element.textContent?.includes("this will succeed"));
18
+ }
19
+ }).within(() => {
20
+ cy.findByRole("link", { name: "Request report" }).click();
21
+ });
22
+ });
23
+ (0, import_cypressUtils.checkA11y)();
24
+ cy.findByRole("button", { name: /Request/ }).click();
25
+ (0, import_cypressUtils.checkA11y)();
26
+ cy.findByRole("heading", { level: 1, name: /Successful Report/ }).should("be.visible");
27
+ cy.url().then((url) => {
28
+ viewReportUrl = url;
29
+ });
30
+ });
31
+ beforeEach(() => {
32
+ cy.visit(viewReportUrl);
33
+ });
34
+ describe("Enabling download", () => {
35
+ it("should show the enable download button", () => {
36
+ cy.findByLabelText(/Enable download/).should("exist").should("be.visible");
37
+ cy.findByRole("heading", { name: "To download this report" }).should("not.exist");
38
+ });
39
+ it("should show the download disabled message with link to form", () => {
40
+ cy.findByLabelText(/Enable download/).click();
41
+ cy.url().should("have.string", "/report/download-disabled");
42
+ cy.findByRole("heading", { name: "To download this report" }).should("be.visible");
43
+ cy.findByRole("link", { name: "Fill out a form" });
44
+ });
45
+ it("should go to the request download form", () => {
46
+ cy.findByLabelText(/Enable download/).click();
47
+ cy.findByRole("link", { name: "Fill out a form" }).click();
48
+ cy.url().then((url) => {
49
+ downloadRequestFormPage = url;
50
+ });
51
+ cy.url().should(
52
+ "match",
53
+ /\/embedded\/platform\/dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form/
54
+ );
55
+ cy.location().should((location) => {
56
+ expect(location.search).to.match(
57
+ /.*reportUrl=\/embedded\/platform\/dpr\/view-report\/async\/report\/request-examples\/request-example-success\/tblId_[0-9]+\/report/
58
+ );
59
+ });
60
+ });
61
+ });
62
+ describe("Requesting download", () => {
63
+ it("should prefill the user data in the request form", () => {
64
+ cy.visit(downloadRequestFormPage);
65
+ cy.findByRole("textbox", { name: "What is your Full name?" }).should("have.value", "Test User");
66
+ cy.findByRole("textbox", { name: "What is your Email address?" }).should("have.value", "test@user.com");
67
+ });
68
+ it("should validate the required fields", () => {
69
+ cy.visit(downloadRequestFormPage);
70
+ cy.findByRole("alert").should("not.exist");
71
+ cy.findAllByRole("paragraph").contains("Enter your Job title").should("not.exist");
72
+ cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("not.exist");
73
+ cy.get("#more-detail-error").should("not.be.visible");
74
+ cy.findByRole("button", { name: /Submit request/ }).click();
75
+ cy.findByRole("alert").should("exist");
76
+ cy.findAllByRole("paragraph").contains("Enter your Job title").should("exist");
77
+ cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("exist");
78
+ });
79
+ it("should submit the download request", () => {
80
+ cy.visit(downloadRequestFormPage);
81
+ cy.findByRole("textbox", { name: "What is your Job title?" }).type("Software engineer");
82
+ cy.findByRole("textbox", { name: "Can you provide more detail" }).type("I like this report");
83
+ cy.findByRole("button", { name: "Submit request" }).click();
84
+ cy.findByText(/You have been granted permission/).should("be.visible");
85
+ cy.url().as("downloadRequestSubmittedPage");
86
+ cy.url().and(
87
+ "match",
88
+ /dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form\/submitted/
89
+ );
90
+ cy.findByRole("link", { name: /Return to report to download/ }).click();
91
+ cy.findAllByRole("heading").contains("Successful Report").should("exist");
92
+ cy.findByRole("button", { name: /download/ }).should("be.visible");
93
+ cy.task("stubRequestSuccessResult10MissingFirstRow");
94
+ cy.findByRole("button", { name: /download/ }).click();
95
+ cy.task("checkContents10RowExcelValid").should("equal", true);
96
+ });
97
+ it("should redirect on trying to download after having the permission to download removed", () => {
98
+ (0, import_appStateUtils.updateRedisState)("downloadPermissions", []);
99
+ cy.findByRole("heading", { name: /To download this report/ }).should("not.exist");
100
+ cy.findByRole("button", { name: /download/ }).click();
101
+ cy.findByRole("heading", { name: /To download this report/ }).should("be.visible");
102
+ });
103
+ });
104
+ });
2
105
  //# sourceMappingURL=tests.cy.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/routes/journeys/download-report/tests.cy.ts"],
4
4
  "sourcesContent": ["import { updateRedisState } from 'test-app/routes/integrationTests/appStateUtils'\nimport { checkA11y, executeReportStubs } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Download report', () => {\n const path = '/embedded/platform/'\n let downloadRequestFormPage: string\n let viewReportUrl: string\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult100')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n checkA11y()\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.findByRole('heading', { level: 1, name: /Successful Report/ }).should('be.visible')\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n describe('Enabling download', () => {\n it('should show the enable download button', () => {\n cy.findByLabelText(/Enable download/)\n .should('exist')\n .should('be.visible')\n cy.findByRole('heading', { name: 'To download this report' }).should('not.exist')\n })\n\n it('should show the download disabled message with link to form', () => {\n cy.findByLabelText(/Enable download/).click()\n cy.url().should('have.string', '/report/download-disabled')\n cy.findByRole('heading', { name: 'To download this report' }).should('be.visible')\n cy.findByRole('link', { name: 'Fill out a form' })\n })\n\n it('should go to the request download form', () => {\n cy.findByLabelText(/Enable download/).click()\n cy.findByRole('link', { name: 'Fill out a form' }).click()\n\n cy.url().then((url) => {\n downloadRequestFormPage = url\n })\n\n cy.url().should(\n 'match',\n /\\/embedded\\/platform\\/dpr\\/download-report\\/request-download\\/request-examples\\/request-example-success\\/tableId\\/tblId_[0-9]+\\/form/,\n )\n cy.location().should((location) => {\n expect(location.search).to.match(\n /.*reportUrl=\\/embedded\\/platform\\/dpr\\/view-report\\/async\\/report\\/request-examples\\/request-example-success\\/tblId_[0-9]+\\/report/,\n )\n })\n })\n })\n\n describe('Requesting download', () => {\n it('should prefill the user data in the request form', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('textbox', { name: 'What is your Full name?' }).should('have.value', 'Test User')\n cy.findByRole('textbox', { name: 'What is your Email address?' }).should('have.value', 'test@user.com')\n })\n\n it('should validate the required fields', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('alert').should('not.exist')\n\n cy.findAllByRole('paragraph').contains('Enter your Job title').should('not.exist')\n cy.findAllByRole('paragraph').contains('provide information on how you will use this data').should('not.exist')\n cy.get('#more-detail-error').should('not.be.visible')\n\n cy.findByRole('button', { name: /Submit request/ }).click()\n\n cy.findByRole('alert').should('exist')\n cy.findAllByRole('paragraph').contains('Enter your Job title').should('exist')\n cy.findAllByRole('paragraph').contains('provide information on how you will use this data').should('exist')\n })\n\n it('should submit the download request', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('textbox', { name: 'What is your Job title?' }).type('Software engineer')\n cy.findByRole('textbox', { name: 'Can you provide more detail' }).type('I like this report')\n\n cy.findByRole('button', { name: 'Submit request' }).click()\n cy.findByText(/You have been granted permission/).should('be.visible')\n\n cy.url().as('downloadRequestSubmittedPage')\n\n cy.url().and(\n 'match',\n /dpr\\/download-report\\/request-download\\/request-examples\\/request-example-success\\/tableId\\/tblId_[0-9]+\\/form\\/submitted/,\n )\n cy.findByRole('link', { name: /Return to report to download/ }).click()\n cy.findAllByRole('heading').contains('Successful Report').should('exist')\n cy.findByRole('button', { name: /download/ }).should('be.visible')\n\n cy.task('stubRequestSuccessResult10MissingFirstRow')\n cy.findByRole('button', { name: /download/ }).click()\n cy.task('checkContents10RowExcelValid').should('equal', true)\n })\n\n it('should redirect on trying to download after having the permission to download removed', () => {\n updateRedisState('downloadPermissions', [])\n cy.findByRole('heading', { name: /To download this report/ }).should('not.exist')\n cy.findByRole('button', { name: /download/ }).click()\n cy.findByRole('heading', { name: /To download this report/ }).should('be.visible')\n })\n })\n})\n"],
5
- "mappings": "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",
6
- "names": ["import_appStateUtils", "import_cypressUtils", "path", "downloadRequestFormPage", "viewReportUrl", "_", "element", "url", "location"]
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -1,2 +1,197 @@
1
- "use strict";var N=Object.create;var m=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},w=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of x(t))!K.call(n,o)&&o!==e&&m(n,o,{get:()=>t[o],enumerable:!(i=O(t,o))||i.enumerable});return n};var R=(n,t,e)=>(e=n!=null?N(H(n)):{},w(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),E=n=>w(m({},"__esModule",{value:!0}),n);var W={};V(W,{default:()=>$,downloadReport:()=>L,getKeys:()=>y});module.exports=E(W);var C=require("json-2-csv"),T=require("../../../types/UserReports"),q=R(require("../../../utils/localsHelper")),u=R(require("../../../types/ReportQuery"));const F=(n,t)=>(0,C.json2csv)(n,t),y=(n,t)=>{const e=[],i=[];return n.forEach(o=>{Object.keys(o).forEach(s=>{const a=t.find(r=>r.name===s);a&&!i.includes(s)&&(i.push(s),e.push({field:s,title:a.display}))})}),e},J=(n,t)=>n.map(e=>Object.keys(e).filter(i=>t.includes(i)).reduce((i,o)=>(i[o]=e[o],i),{})),j=(n,t)=>{const{specification:e}=t.variant;if(e){const{fields:i}=e,o=i.filter(s=>s.type==="HTML");o.length&&n.map(s=>(o.forEach(a=>{const{name:r}=a,c=s[r];if(c){const p=/target="_blank">(.*?)<\/a>/g.exec(c);s[r]=p?p[1]:c}}),s))}return n},z=async n=>{const{token:t,services:e,tableId:i,reportId:o,id:s,queryParams:a}=n,r=await e.reportingService.getAsyncCount(t,i),c={...a,pageSize:r.toString()};return e.reportingService.getAsyncReport(t,o,s,i,c)},Q=async n=>{const{token:t,services:e,queryParams:i,definition:o}=n,{variant:s}=o,{resourceName:a,specification:r}=s;let c=[];if(r){const p=new u.default({fields:r.fields,template:r.template,queryParams:i,definitionsPath:i.dataProductDefinitionsPath}),l=await e.reportingService.getCount(a,t,p),f=new u.default({fields:r.fields,template:r.template,queryParams:{...i,pageSize:l.toString()},definitionsPath:i.dataProductDefinitionsPath});c=(await e.reportingService.getListWithWarnings(a,t,f)).data}return c},L=async({req:n,services:t,res:e,redirect:i,loadType:o})=>{const{dprUser:s,token:a}=q.default.getValues(e),{reportId:r,id:c,tableId:p,dataProductDefinitionsPath:l,reportName:f,name:D,cols:v,sortedAsc:S,sortColumn:h}=n.body,{downloadPermissionService:b}=t;if(!await b.downloadEnabledForReport(s.id,r,c))e.redirect(i);else{const g=await t.reportingService.getDefinition(a,r,c,l),P={dataProductDefinitionsPath:l,...S&&{sortedAsc:S},...h&&{sortColumn:h}};let d;o===T.LoadType.SYNC?d=await Q({definition:g,services:t,token:a,queryParams:P}):d=await z({services:t,token:a,reportId:r,id:c,tableId:p,queryParams:P}),v&&(d=J(d,JSON.parse(v))),d=j(d,g);const k=g.variant.specification?.fields||[],A=y(d,k),I=F(d,{keys:A,emptyFieldValue:""});e.setHeader("Content-Type","application/json"),e.setHeader("Content-disposition",`attachment; filename=${f}-${D}-${new Date().toISOString()}.csv`),e.end(I)}};var $={downloadReport:L,getKeys:y};0&&(module.exports={downloadReport,getKeys});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var utils_exports = {};
30
+ __export(utils_exports, {
31
+ default: () => utils_default,
32
+ downloadReport: () => downloadReport,
33
+ getKeys: () => getKeys
34
+ });
35
+ module.exports = __toCommonJS(utils_exports);
36
+ var import_json_2_csv = require("json-2-csv");
37
+ var import_UserReports = require("../../../types/UserReports");
38
+ var import_localsHelper = __toESM(require("../../../utils/localsHelper"));
39
+ var import_ReportQuery = __toESM(require("../../../types/ReportQuery"));
40
+ const convertToCsv = (reportData, options) => {
41
+ const csvData = (0, import_json_2_csv.json2csv)(reportData, options);
42
+ return csvData;
43
+ };
44
+ const getKeys = (reportData, fields) => {
45
+ const keys = [];
46
+ const keyNames = [];
47
+ reportData.forEach((row) => {
48
+ Object.keys(row).forEach((key) => {
49
+ const field = fields.find((f) => f.name === key);
50
+ if (field && !keyNames.includes(key)) {
51
+ keyNames.push(key);
52
+ keys.push({
53
+ field: key,
54
+ title: field.display
55
+ });
56
+ }
57
+ });
58
+ });
59
+ return keys;
60
+ };
61
+ const applyColumnsAndSort = (data, columns) => {
62
+ return data.map((row) => {
63
+ return Object.keys(row).filter((key) => columns.includes(key)).reduce((obj, key) => {
64
+ obj[key] = row[key];
65
+ return obj;
66
+ }, {});
67
+ });
68
+ };
69
+ const removeHtmlTags = (reportData, reportDefinition) => {
70
+ const { specification } = reportDefinition.variant;
71
+ if (specification) {
72
+ const { fields } = specification;
73
+ const htmlFields = fields.filter((field) => {
74
+ return field.type === "HTML";
75
+ });
76
+ if (htmlFields.length) {
77
+ reportData.map((d) => {
78
+ htmlFields.forEach((field) => {
79
+ const { name } = field;
80
+ const colValue = d[name];
81
+ if (colValue) {
82
+ const innerText = /target="_blank">(.*?)<\/a>/g.exec(colValue);
83
+ d[name] = innerText ? innerText[1] : colValue;
84
+ }
85
+ });
86
+ return d;
87
+ });
88
+ }
89
+ }
90
+ return reportData;
91
+ };
92
+ const dowloadAsyncData = async (args) => {
93
+ const { token, services, tableId, reportId, id, queryParams } = args;
94
+ const pageSize = await services.reportingService.getAsyncCount(token, tableId);
95
+ const query = {
96
+ ...queryParams,
97
+ pageSize: pageSize.toString()
98
+ };
99
+ return services.reportingService.getAsyncReport(token, reportId, id, tableId, query);
100
+ };
101
+ const downloadSyncData = async (args) => {
102
+ const { token, services, queryParams, definition } = args;
103
+ const { variant } = definition;
104
+ const { resourceName, specification } = variant;
105
+ let data = [];
106
+ if (specification) {
107
+ const countReportQuery = new import_ReportQuery.default({
108
+ fields: specification.fields,
109
+ template: specification.template,
110
+ queryParams,
111
+ definitionsPath: queryParams.dataProductDefinitionsPath
112
+ });
113
+ const count = await services.reportingService.getCount(resourceName, token, countReportQuery);
114
+ const dataReportQuery = new import_ReportQuery.default({
115
+ fields: specification.fields,
116
+ template: specification.template,
117
+ queryParams: {
118
+ ...queryParams,
119
+ pageSize: count.toString()
120
+ },
121
+ definitionsPath: queryParams.dataProductDefinitionsPath
122
+ });
123
+ const reportData = await services.reportingService.getListWithWarnings(resourceName, token, dataReportQuery);
124
+ data = reportData.data;
125
+ }
126
+ return data;
127
+ };
128
+ const downloadReport = async ({
129
+ req,
130
+ services,
131
+ res,
132
+ redirect,
133
+ loadType
134
+ }) => {
135
+ const { dprUser, token } = import_localsHelper.default.getValues(res);
136
+ const {
137
+ reportId,
138
+ id,
139
+ tableId,
140
+ dataProductDefinitionsPath,
141
+ reportName,
142
+ name,
143
+ cols: columns,
144
+ sortedAsc,
145
+ sortColumn
146
+ } = req.body;
147
+ const { downloadPermissionService } = services;
148
+ const canDownloadReport = await downloadPermissionService.downloadEnabledForReport(dprUser.id, reportId, id);
149
+ if (!canDownloadReport) {
150
+ res.redirect(redirect);
151
+ } else {
152
+ const definition = await services.reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath);
153
+ const queryParams = {
154
+ dataProductDefinitionsPath,
155
+ ...sortedAsc && { sortedAsc },
156
+ ...sortColumn && { sortColumn }
157
+ };
158
+ let reportData;
159
+ if (loadType === import_UserReports.LoadType.SYNC) {
160
+ reportData = await downloadSyncData({
161
+ definition,
162
+ services,
163
+ token,
164
+ queryParams
165
+ });
166
+ } else {
167
+ reportData = await dowloadAsyncData({
168
+ services,
169
+ token,
170
+ reportId,
171
+ id,
172
+ tableId,
173
+ queryParams
174
+ });
175
+ }
176
+ if (columns) {
177
+ reportData = applyColumnsAndSort(reportData, JSON.parse(columns));
178
+ }
179
+ reportData = removeHtmlTags(reportData, definition);
180
+ const fields = definition.variant.specification?.fields || [];
181
+ const keys = getKeys(reportData, fields);
182
+ const csvData = convertToCsv(reportData, { keys, emptyFieldValue: "" });
183
+ res.setHeader("Content-Type", "application/json");
184
+ res.setHeader("Content-disposition", `attachment; filename=${reportName}-${name}-${(/* @__PURE__ */ new Date()).toISOString()}.csv`);
185
+ res.end(csvData);
186
+ }
187
+ };
188
+ var utils_default = {
189
+ downloadReport,
190
+ getKeys
191
+ };
192
+ // Annotate the CommonJS export names for ESM import in node:
193
+ 0 && (module.exports = {
194
+ downloadReport,
195
+ getKeys
196
+ });
2
197
  //# sourceMappingURL=utils.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/routes/journeys/download-report/utils.ts"],
4
4
  "sourcesContent": ["import { Response, Request } from 'express'\nimport { json2csv, Json2CsvOptions } from 'json-2-csv'\nimport { KeysList } from 'json-2-csv/lib/types'\nimport { Services } from '../../../types/Services'\nimport Dict = NodeJS.Dict\nimport { LoadType } from '../../../types/UserReports'\nimport { components } from '../../../types/api'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { Template } from '../../../types/Templates'\nimport ReportQuery from '../../../types/ReportQuery'\n\nconst convertToCsv = (reportData: Dict<string>[], options: Json2CsvOptions) => {\n const csvData = json2csv(reportData, options)\n return csvData\n}\n\nexport const getKeys = (reportData: Dict<string>[], fields: components['schemas']['FieldDefinition'][]): KeysList => {\n const keys: KeysList = []\n const keyNames: string[] = []\n reportData.forEach((row) => {\n Object.keys(row).forEach((key) => {\n const field = fields.find((f) => f.name === key)\n if (field && !keyNames.includes(key)) {\n keyNames.push(key)\n keys.push({\n field: key,\n title: field.display,\n })\n }\n })\n })\n return keys\n}\n\nconst applyColumnsAndSort = (data: Dict<string>[], columns: string[]) => {\n return data.map((row) => {\n return Object.keys(row)\n .filter((key) => columns.includes(key))\n .reduce((obj: Dict<string>, key) => {\n // eslint-disable-next-line no-param-reassign\n obj[key] = row[key]\n return obj\n }, {})\n })\n}\n\nconst removeHtmlTags = (\n reportData: Dict<string>[],\n reportDefinition: components['schemas']['SingleVariantReportDefinition'],\n) => {\n // Find HMTL field + name\n const { specification } = reportDefinition.variant\n if (specification) {\n const { fields } = specification\n const htmlFields = fields.filter((field) => {\n return field.type === 'HTML'\n })\n\n if (htmlFields.length) {\n reportData.map((d) => {\n htmlFields.forEach((field) => {\n const { name } = field\n const colValue = d[name]\n if (colValue) {\n const innerText = /target=\"_blank\">(.*?)<\\/a>/g.exec(colValue)\n // eslint-disable-next-line prefer-destructuring, no-param-reassign\n d[name] = innerText ? innerText[1] : colValue\n }\n })\n return d\n })\n }\n }\n return reportData\n}\n\nconst dowloadAsyncData = async (args: {\n services: Services\n token: string\n tableId: string\n reportId: string\n id: string\n queryParams: {\n dataProductDefinitionsPath: string\n sortedAsc?: string\n sortColumn?: string\n }\n}) => {\n const { token, services, tableId, reportId, id, queryParams } = args\n const pageSize = await services.reportingService.getAsyncCount(token, tableId)\n const query: Record<string, string | string[]> = {\n ...queryParams,\n pageSize: pageSize.toString(),\n }\n return services.reportingService.getAsyncReport(token, reportId, id, tableId, query)\n}\n\nconst downloadSyncData = async (args: {\n definition: components['schemas']['SingleVariantReportDefinition']\n services: Services\n token: string\n queryParams: {\n dataProductDefinitionsPath: string\n sortedAsc?: string\n sortColumn?: string\n }\n}) => {\n const { token, services, queryParams, definition } = args\n const { variant } = definition\n const { resourceName, specification } = variant\n let data: Dict<string>[] = []\n\n if (specification) {\n const countReportQuery = new ReportQuery({\n fields: specification.fields,\n template: specification.template as Template,\n queryParams,\n definitionsPath: <string>queryParams.dataProductDefinitionsPath,\n })\n const count = await services.reportingService.getCount(resourceName, token, countReportQuery)\n\n const dataReportQuery = new ReportQuery({\n fields: specification.fields,\n template: specification.template as Template,\n queryParams: {\n ...queryParams,\n pageSize: count.toString(),\n },\n definitionsPath: <string>queryParams.dataProductDefinitionsPath,\n })\n const reportData = await services.reportingService.getListWithWarnings(resourceName, token, dataReportQuery)\n data = reportData.data\n }\n\n return data\n}\n\nexport const downloadReport = async ({\n req,\n services,\n res,\n redirect,\n loadType,\n}: {\n req: Request\n services: Services\n res: Response\n redirect: string\n loadType?: LoadType\n}) => {\n const { dprUser, token } = LocalsHelper.getValues(res)\n const {\n reportId,\n id,\n tableId,\n dataProductDefinitionsPath,\n reportName,\n name,\n cols: columns,\n sortedAsc,\n sortColumn,\n } = req.body\n const { downloadPermissionService } = services\n const canDownloadReport = await downloadPermissionService.downloadEnabledForReport(dprUser.id, reportId, id)\n if (!canDownloadReport) {\n res.redirect(redirect)\n } else {\n const definition = await services.reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n const queryParams = {\n dataProductDefinitionsPath,\n ...(sortedAsc && { sortedAsc }),\n ...(sortColumn && { sortColumn }),\n }\n\n let reportData\n if (loadType === LoadType.SYNC) {\n reportData = await downloadSyncData({\n definition,\n services,\n token,\n queryParams,\n })\n } else {\n reportData = await dowloadAsyncData({\n services,\n token,\n reportId,\n id,\n tableId,\n queryParams,\n })\n }\n if (columns) {\n reportData = applyColumnsAndSort(reportData, JSON.parse(columns))\n }\n reportData = removeHtmlTags(reportData, definition)\n const fields = definition.variant.specification?.fields || []\n const keys: KeysList = getKeys(reportData, fields)\n const csvData = convertToCsv(reportData, { keys, emptyFieldValue: '' })\n\n res.setHeader('Content-Type', 'application/json')\n res.setHeader('Content-disposition', `attachment; filename=${reportName}-${name}-${new Date().toISOString()}.csv`)\n res.end(csvData)\n }\n}\n\nexport default {\n downloadReport,\n getKeys,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "utils_default", "downloadReport", "getKeys", "__toCommonJS", "import_json_2_csv", "import_UserReports", "import_localsHelper", "import_ReportQuery", "convertToCsv", "reportData", "options", "fields", "keys", "keyNames", "row", "key", "field", "f", "applyColumnsAndSort", "data", "columns", "obj", "removeHtmlTags", "reportDefinition", "specification", "htmlFields", "d", "name", "colValue", "innerText", "dowloadAsyncData", "args", "token", "services", "tableId", "reportId", "id", "queryParams", "pageSize", "query", "downloadSyncData", "definition", "variant", "resourceName", "countReportQuery", "ReportQuery", "count", "dataReportQuery", "req", "res", "redirect", "loadType", "dprUser", "LocalsHelper", "dataProductDefinitionsPath", "reportName", "sortedAsc", "sortColumn", "downloadPermissionService", "csvData"]
5
+ "mappings": "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",
6
+ "names": ["ReportQuery", "LocalsHelper"]
7
7
  }
@@ -1,2 +1,59 @@
1
- "use strict";var k=Object.create;var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var o in r)i(e,o,{get:r[o],enumerable:!0})},d=(e,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of v(r))!h.call(e,t)&&t!==o&&i(e,t,{get:()=>r[t],enumerable:!(s=n(r,t))||s.enumerable});return e};var S=(e,r,o)=>(o=e!=null?k(u(e)):{},d(r||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),f=e=>d(i({},"__esModule",{value:!0}),e);var g={};y(g,{BookmarkController:()=>a,default:()=>b});module.exports=f(g);var l=S(require("../../../../utils/localsHelper"));class a{layoutPath;services;constructor(r,o){this.layoutPath=r,this.services=o}POST=async(r,o)=>{const{dprUser:s}=l.default.getValues(o),{reportId:t,id:c,reportType:m,type:p}=r.body;p==="add"?await this.services.bookmarkService.addBookmark(s.id,t,c,m):await this.services.bookmarkService.removeBookmark(s.id,c,t),o.end()}}var b=a;0&&(module.exports={BookmarkController});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var controller_exports = {};
30
+ __export(controller_exports, {
31
+ BookmarkController: () => BookmarkController,
32
+ default: () => controller_default
33
+ });
34
+ module.exports = __toCommonJS(controller_exports);
35
+ var import_localsHelper = __toESM(require("../../../../utils/localsHelper"));
36
+ class BookmarkController {
37
+ layoutPath;
38
+ services;
39
+ constructor(layoutPath, services) {
40
+ this.layoutPath = layoutPath;
41
+ this.services = services;
42
+ }
43
+ POST = async (req, res) => {
44
+ const { dprUser } = import_localsHelper.default.getValues(res);
45
+ const { reportId, id, reportType, type } = req.body;
46
+ if (type === "add") {
47
+ await this.services.bookmarkService.addBookmark(dprUser.id, reportId, id, reportType);
48
+ } else {
49
+ await this.services.bookmarkService.removeBookmark(dprUser.id, id, reportId);
50
+ }
51
+ res.end();
52
+ };
53
+ }
54
+ var controller_default = BookmarkController;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ BookmarkController
58
+ });
2
59
  //# sourceMappingURL=controller.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/my-reports/bookmarks/controller.ts"],
4
4
  "sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport LocalsHelper from '../../../../utils/localsHelper'\n\nclass BookmarkController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n POST: RequestHandler = async (req, res) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const { reportId, id, reportType, type } = req.body\n if (type === 'add') {\n await this.services.bookmarkService.addBookmark(dprUser.id, reportId, id, reportType)\n } else {\n await this.services.bookmarkService.removeBookmark(dprUser.id, id, reportId)\n }\n res.end()\n }\n}\n\nexport { BookmarkController }\nexport default BookmarkController\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAyB,6CAEzB,MAAMH,CAAmB,CACvB,WAEA,SAEA,YAAYI,EAAoBC,EAAoB,CAClD,KAAK,WAAaD,EAClB,KAAK,SAAWC,CAClB,CAEA,KAAuB,MAAOC,EAAKC,IAAQ,CACzC,KAAM,CAAE,QAAAC,CAAQ,EAAI,EAAAC,QAAa,UAAUF,CAAG,EACxC,CAAE,SAAAG,EAAU,GAAAC,EAAI,WAAAC,EAAY,KAAAC,CAAK,EAAIP,EAAI,KAC3CO,IAAS,MACX,MAAM,KAAK,SAAS,gBAAgB,YAAYL,EAAQ,GAAIE,EAAUC,EAAIC,CAAU,EAEpF,MAAM,KAAK,SAAS,gBAAgB,eAAeJ,EAAQ,GAAIG,EAAID,CAAQ,EAE7EH,EAAI,IAAI,CACV,CACF,CAGA,IAAON,EAAQD",
6
- "names": ["controller_exports", "__export", "BookmarkController", "controller_default", "__toCommonJS", "import_localsHelper", "layoutPath", "services", "req", "res", "dprUser", "LocalsHelper", "reportId", "id", "reportType", "type"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAAyB;AAEzB,MAAM,mBAAmB;AAAA,EACvB;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,OAAuB,OAAO,KAAK,QAAQ;AACzC,UAAM,EAAE,QAAQ,IAAI,oBAAAA,QAAa,UAAU,GAAG;AAC9C,UAAM,EAAE,UAAU,IAAI,YAAY,KAAK,IAAI,IAAI;AAC/C,QAAI,SAAS,OAAO;AAClB,YAAM,KAAK,SAAS,gBAAgB,YAAY,QAAQ,IAAI,UAAU,IAAI,UAAU;AAAA,IACtF,OAAO;AACL,YAAM,KAAK,SAAS,gBAAgB,eAAe,QAAQ,IAAI,IAAI,QAAQ;AAAA,IAC7E;AACA,QAAI,IAAI;AAAA,EACV;AACF;AAGA,IAAO,qBAAQ;",
6
+ "names": ["LocalsHelper"]
7
7
  }
@@ -1,2 +1,57 @@
1
- "use strict";var n=Object.create;var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var h=(r,t)=>{for(var e in t)o(r,e,{get:t[e],enumerable:!0})},l=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of k(t))!d.call(r,s)&&s!==e&&o(r,s,{get:()=>t[s],enumerable:!(i=c(t,s))||i.enumerable});return r};var p=(r,t,e)=>(e=r!=null?n(u(r)):{},l(t||!r||!r.__esModule?o(e,"default",{value:r,enumerable:!0}):e,r)),v=r=>l(o({},"__esModule",{value:!0}),r);var f={};h(f,{BookmarkListingController:()=>a,default:()=>y});module.exports=v(f);var m=p(require("../../../../../components/user-reports/bookmarks/utils"));class a{layoutPath;services;constructor(t,e){this.layoutPath=t,this.services=e}GET=async(t,e,i)=>{e.render("dpr/routes/journeys/my-reports/view",{title:"Bookmarks",layoutPath:this.layoutPath,id:"dpr-bookmarks-list",...await m.default.renderBookmarkList({services:this.services,res:e})})}}var y=a;0&&(module.exports={BookmarkListingController});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var controller_exports = {};
30
+ __export(controller_exports, {
31
+ BookmarkListingController: () => BookmarkListingController,
32
+ default: () => controller_default
33
+ });
34
+ module.exports = __toCommonJS(controller_exports);
35
+ var import_utils = __toESM(require("../../../../../components/user-reports/bookmarks/utils"));
36
+ class BookmarkListingController {
37
+ layoutPath;
38
+ services;
39
+ constructor(layoutPath, services) {
40
+ this.layoutPath = layoutPath;
41
+ this.services = services;
42
+ }
43
+ GET = async (_req, res, _next) => {
44
+ res.render(`dpr/routes/journeys/my-reports/view`, {
45
+ title: "Bookmarks",
46
+ layoutPath: this.layoutPath,
47
+ id: "dpr-bookmarks-list",
48
+ ...await import_utils.default.renderBookmarkList({ services: this.services, res })
49
+ });
50
+ };
51
+ }
52
+ var controller_default = BookmarkListingController;
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ BookmarkListingController
56
+ });
2
57
  //# sourceMappingURL=controller.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts"],
4
4
  "sourcesContent": ["import { RequestHandler } from 'express'\nimport BookmarklistUtils from '../../../../../components/user-reports/bookmarks/utils'\nimport { Services } from '../../../../../types/Services'\n\nclass BookmarkListingController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n GET: RequestHandler = async (_req, res, _next) => {\n res.render(`dpr/routes/journeys/my-reports/view`, {\n title: 'Bookmarks',\n layoutPath: this.layoutPath,\n id: 'dpr-bookmarks-list',\n ...(await BookmarklistUtils.renderBookmarkList({ services: this.services, res })),\n })\n }\n}\n\nexport { BookmarkListingController }\nexport default BookmarkListingController\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA8B,qEAG9B,MAAMH,CAA0B,CAC9B,WAEA,SAEA,YAAYI,EAAoBC,EAAoB,CAClD,KAAK,WAAaD,EAClB,KAAK,SAAWC,CAClB,CAEA,IAAsB,MAAOC,EAAMC,EAAKC,IAAU,CAChDD,EAAI,OAAO,sCAAuC,CAChD,MAAO,YACP,WAAY,KAAK,WACjB,GAAI,qBACJ,GAAI,MAAM,EAAAE,QAAkB,mBAAmB,CAAE,SAAU,KAAK,SAAU,IAAAF,CAAI,CAAC,CACjF,CAAC,CACH,CACF,CAGA,IAAON,EAAQD",
6
- "names": ["controller_exports", "__export", "BookmarkListingController", "controller_default", "__toCommonJS", "import_utils", "layoutPath", "services", "_req", "res", "_next", "BookmarklistUtils"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA8B;AAG9B,MAAM,0BAA0B;AAAA,EAC9B;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAsB,OAAO,MAAM,KAAK,UAAU;AAChD,QAAI,OAAO,uCAAuC;AAAA,MAChD,OAAO;AAAA,MACP,YAAY,KAAK;AAAA,MACjB,IAAI;AAAA,MACJ,GAAI,MAAM,aAAAA,QAAkB,mBAAmB,EAAE,UAAU,KAAK,UAAU,IAAI,CAAC;AAAA,IACjF,CAAC;AAAA,EACH;AACF;AAGA,IAAO,qBAAQ;",
6
+ "names": ["BookmarklistUtils"]
7
7
  }
@@ -1,2 +1,48 @@
1
- "use strict";var a=Object.create;var n=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var v=(r,o)=>{for(var t in o)n(r,t,{get:o[t],enumerable:!0})},s=(r,o,t,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of f(o))!g.call(r,e)&&e!==t&&n(r,e,{get:()=>o[e],enumerable:!(i=l(o,e))||i.enumerable});return r};var k=(r,o,t)=>(t=r!=null?a(p(r)):{},s(o||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r)),x=r=>s(n({},"__esModule",{value:!0}),r);var S={};v(S,{default:()=>P,routes:()=>c});module.exports=x(S);var m=require("express"),u=k(require("./controller"));function c({layoutPath:r,services:o}){const t=(0,m.Router)({mergeParams:!0}),i=new u.default(r,o);return t.get("/",i.GET),t}var P=c;0&&(module.exports={routes});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var routes_exports = {};
30
+ __export(routes_exports, {
31
+ default: () => routes_default,
32
+ routes: () => routes
33
+ });
34
+ module.exports = __toCommonJS(routes_exports);
35
+ var import_express = require("express");
36
+ var import_controller = __toESM(require("./controller"));
37
+ function routes({ layoutPath, services }) {
38
+ const router = (0, import_express.Router)({ mergeParams: true });
39
+ const controller = new import_controller.default(layoutPath, services);
40
+ router.get(`/`, controller.GET);
41
+ return router;
42
+ }
43
+ var routes_default = routes;
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ routes
47
+ });
2
48
  //# sourceMappingURL=routes.js.map