@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,2 +1,2 @@
1
- var O=Object.create;var w=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var z=(t,r)=>{for(var e in r)w(t,e,{get:r[e],enumerable:!0})},P=(t,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of H(r))!j.call(t,o)&&o!==e&&w(t,o,{get:()=>r[o],enumerable:!(i=Y(r,o))||i.enumerable});return t};var u=(t,r,e)=>(e=t!=null?O(_(t)):{},P(r||!t||!t.__esModule?w(e,"default",{value:t,enumerable:!0}):e,t)),J=t=>P(w({},"__esModule",{value:!0}),t);var M={};z(M,{default:()=>K,getRenderData:()=>U,getReport:()=>$,getReportData:()=>b,getReportRenderData:()=>v,setActions:()=>h});module.exports=J(M);var C=u(require("parseurl")),f=require("../../../../../types/UserReports"),I=u(require("../../../../../types/ReportQuery")),N=u(require("../../../../../components/_reports/report-pagination/utils")),V=u(require("../../../../../components/_reports/report-totals/utils")),k=u(require("../../../../../components/_reports/report-columns-form/utils")),Q=u(require("../../../../../components/_reports/report-actions/utils")),A=u(require("../../../../../components/_filters/utils")),x=u(require("../../../../../components/_filters/filters-selected/utils")),T=u(require("../../../../../utils/localsHelper")),F=u(require("../../../../../utils/UserStoreItemBuilder")),E=u(require("../../../../../utils/DataTableBuilder/DataTableBuilder")),W=require("../../../../../components/_filters/filtersTypeEnum");const h=(t,r,e,i,o,s,n,p,a,m)=>{const{name:c,variant:l,id:g}=r,{name:y,id:D,printable:d}=l,S={enabled:s>0,name:y,reportName:c,csrfToken:t,reportId:g,id:D,columns:e.value,loadType:f.LoadType.SYNC,definitionPath:n,canDownload:o,currentUrl:p,currentQueryParams:a,nestedBaseUrl:m};return Q.default.getActions({download:S,print:{enabled:d},share:{reportName:c,name:y,url:i},copy:{url:i}})},G=async({req:t,services:r,reportName:e,name:i,description:o,reportId:s,id:n,userId:p,filters:a})=>{const m={type:f.ReportType.REPORT,reportId:s,id:n,reportName:e,description:o,name:i},c={query:t.query,querySummary:x.default.getQuerySummary(t.query,a)},l=new F.default(m).addInteractiveQuery(c).addStatus(f.RequestStatus.READY).addTimestamp().addReportUrls(t).build();await r.recentlyViewedService.setRecentlyViewed(l,p)},b=async({services:t,req:r,token:e,reportId:i,id:o,dataProductDefinitionsPath:s})=>{const n=await t.reportingService.getDefinition(e,i,o,s),{variant:p}=n,{resourceName:a,specification:m}=p,c=new I.default({fields:m.fields,template:m.template,queryParams:r.query,definitionsPath:s});return{reportData:await t.reportingService.getListWithWarnings(a,e,c),reportDefinition:n,reportQuery:c}},$=async({req:t,res:r,services:e})=>{const{token:i,csrfToken:o,dprUser:s}=T.default.getValues(r),{reportId:n,id:p}=t.params,a=t.query.dataProductDefinitionsPath,{reportData:m,reportDefinition:c,reportQuery:l}=await b({services:e,req:t,token:i,reportId:n,id:p,dataProductDefinitionsPath:a}),g=await e.reportingService.getCount(c.variant.resourceName,i,l),y=await e.downloadPermissionService.downloadEnabled(s.id,n,p),D=await e.bookmarkService.isBookmarked(p,n,s.id),d=await U({req:t,res:r,services:e,reportDefinition:c,reportQuery:l,reportData:m,count:g,csrfToken:o,canDownload:y});return Object.keys(d).length&&await G({req:t,services:e,reportName:d.reportName,name:d.name,description:d.description,reportId:n,id:p,userId:s.id,filters:d.filterData.filters}),{renderData:{...d,csrfToken:o,loadType:f.LoadType.SYNC,reportId:n,id:p,bookmarked:D,dataProductDefinitionsPath:a}}},v=async({req:t,res:r,services:e,count:i,specification:o,reportQuery:s,data:n,filtersType:p})=>{const a=(0,C.default)(t),m=`${t.protocol}://${t.get("host")}${t.originalUrl}`,c=a.search?t.originalUrl.split(a.search)[0]:t.originalUrl,l=N.default.getPaginationData(a,i,t),g=new E.default(o.fields).withHeaderSortOptions(s).buildTable(n),y=V.default.getTotals(l.pageSize,l.currentPage,l.totalRows,g.rowCount),D=await A.default.getFilters({fields:o.fields,req:t,res:r,services:e,filtersType:p||W.FiltersType.INTERACTIVE}),d=k.default.getColumns(o,t);return{dataTable:[g],totals:y,filterData:D,columns:d,pagination:l,reportUrl:c.replace("/download-disabled","").replace("/download-disabled?",""),reportSearch:a.search,encodedSearch:a.search?encodeURIComponent(a.search):void 0,fullUrl:m}},U=async({req:t,res:r,services:e,reportDefinition:i,reportQuery:o,reportData:s,count:n,csrfToken:p,canDownload:a})=>{const{dataProductDefinitionsPath:m}=t.query,{nestedBaseUrl:c}=T.default.getValues(r),{name:l,description:g}=i,{specification:y,name:D,description:d,classification:S,printable:B}=i.variant,{data:L}=s,R=await v({req:t,res:r,services:e,count:n,specification:y,reportQuery:o,data:L}),q=h(p,i,R.columns,`${t.protocol}://${t.get("host")}${t.originalUrl}`,a,n,m,R.reportUrl,R.reportSearch,c);return{...R,reportName:l,name:D,description:d||g,count:n,type:f.ReportType.REPORT,classification:S,printable:B,actions:q,warnings:s.warnings,canDownload:a,nestedBaseUrl:c}};var K={getRenderData:U,getReport:$,getReportData:b,getReportRenderData:v,setActions:h};0&&(module.exports={getRenderData,getReport,getReportData,getReportRenderData,setActions});
1
+ "use strict";var O=Object.create;var w=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var z=(t,r)=>{for(var e in r)w(t,e,{get:r[e],enumerable:!0})},P=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of H(r))!j.call(t,o)&&o!==e&&w(t,o,{get:()=>r[o],enumerable:!(n=Y(r,o))||n.enumerable});return t};var g=(t,r,e)=>(e=t!=null?O(_(t)):{},P(r||!t||!t.__esModule?w(e,"default",{value:t,enumerable:!0}):e,t)),J=t=>P(w({},"__esModule",{value:!0}),t);var M={};z(M,{default:()=>K,getRenderData:()=>U,getReport:()=>W,getReportData:()=>b,getReportRenderData:()=>v,setActions:()=>T});module.exports=J(M);var N=g(require("parseurl")),y=require("../../../../../types/UserReports"),C=g(require("../../../../../types/ReportQuery")),I=g(require("../../../../../components/_reports/report-pagination/utils")),V=g(require("../../../../../components/_reports/report-totals/utils")),k=g(require("../../../../../components/_reports/report-columns-form/utils")),Q=g(require("../../../../../components/_reports/report-actions/utils")),A=g(require("../../../../../components/_filters/utils")),B=g(require("../../../../../components/_filters/filters-selected/utils")),h=g(require("../../../../../utils/localsHelper")),F=g(require("../../../../../utils/UserStoreItemBuilder")),x=g(require("../../../../../utils/DataTableBuilder/DataTableBuilder")),E=require("../../../../../components/_filters/filtersTypeEnum");const T=(t,r,e,n,o,s,a,p,i,l)=>{const{name:c,variant:d,id:u}=r,{name:f,id:D,printable:m}=d,S={enabled:s>0,name:f,reportName:c,csrfToken:t,reportId:u,id:D,columns:e.value,loadType:y.LoadType.SYNC,definitionPath:a,canDownload:o,currentUrl:p,currentQueryParams:i,nestedBaseUrl:l};return Q.default.getActions({download:S,print:{enabled:!!m},share:{reportName:c,name:f,url:n},copy:{url:n}})},G=async({req:t,services:r,reportName:e,name:n,description:o,reportId:s,id:a,userId:p,filters:i})=>{const l={type:y.ReportType.REPORT,reportId:s,id:a,reportName:e,description:o,name:n},c={query:t.query,querySummary:B.default.getQuerySummary(t.query,i)},d=new F.default(l).addInteractiveQuery(c).addStatus(y.RequestStatus.READY).addTimestamp().addReportUrls(t).build();await r.recentlyViewedService?.setRecentlyViewed(d,p)},b=async({services:t,req:r,token:e,reportId:n,id:o,dataProductDefinitionsPath:s})=>{const a=await t.reportingService.getDefinition(e,n,o,s),{variant:p}=a,{resourceName:i,specification:l}=p,c=new C.default({fields:l?.fields||[],template:l?.template||"list",queryParams:r.query,definitionsPath:s});return{reportData:await t.reportingService.getListWithWarnings(i,e,c),reportDefinition:a,reportQuery:c}},W=async({req:t,res:r,services:e})=>{const{token:n,csrfToken:o,dprUser:s}=h.default.getValues(r),{reportId:a,id:p}=t.params,i=t.query.dataProductDefinitionsPath,{reportData:l,reportDefinition:c,reportQuery:d}=await b({services:e,req:t,token:n,reportId:a,id:p,dataProductDefinitionsPath:i}),u=await e.reportingService.getCount(c.variant.resourceName,n,d),f=!!await e.downloadPermissionService?.downloadEnabledForReport(s.id,a,p),D=!!await e.bookmarkService?.isBookmarked(p,a,s.id),m=await U({req:t,res:r,services:e,reportDefinition:c,reportQuery:d,reportData:l,count:u,csrfToken:o,canDownload:f});return Object.keys(m).length&&await G({req:t,services:e,reportName:m.reportName,name:m.name,description:m.description||"",reportId:a,id:p,userId:s.id,filters:m.filterData.filters}),{renderData:{...m,csrfToken:o,loadType:y.LoadType.SYNC,reportId:a,id:p,bookmarked:D,dataProductDefinitionsPath:i}}},v=async({req:t,res:r,services:e,count:n,specification:o,reportQuery:s,data:a,filtersType:p})=>{const i=(0,N.default)(t),l=`${t.protocol}://${t.get("host")}${t.originalUrl}`,c=i?.search?t.originalUrl.split(i.search)[0]:t.originalUrl,d=new x.default(o.fields).withHeaderSortOptions(s).buildTable(a);let u,f;i&&(u=I.default.getPaginationData(i,n,t),f=V.default.getTotals(u.pageSize,u.currentPage,u.totalRows,d.rowCount));const D=await A.default.getFilters({fields:o.fields,req:t,res:r,services:e,filtersType:p||E.FiltersType.INTERACTIVE}),m=k.default.getColumns(o,t);return{dataTable:[d],totals:f,filterData:D,columns:m,pagination:u,reportUrl:c.replace("/download-disabled","").replace("/download-disabled?",""),reportSearch:i?.search,encodedSearch:i?.search?encodeURIComponent(i.search):void 0,fullUrl:l}},U=async({req:t,res:r,services:e,reportDefinition:n,reportQuery:o,reportData:s,count:a,csrfToken:p,canDownload:i})=>{const{dataProductDefinitionsPath:l}=t.query,{nestedBaseUrl:c}=h.default.getValues(r),{name:d,description:u}=n,{specification:f,name:D,description:m,classification:S,printable:$}=n.variant,{data:L}=s;if(!f)throw new Error("No specicication found in definition");const R=await v({req:t,res:r,services:e,count:a,specification:f,reportQuery:o,data:L}),q=T(p,n,R.columns,`${t.protocol}://${t.get("host")}${t.originalUrl}`,i,a,l,R.reportUrl,R.reportSearch||"",c);return{...R,reportName:d,name:D,description:m||u,count:a,type:y.ReportType.REPORT,classification:S,printable:$,actions:q,warnings:s.warnings,canDownload:i,nestedBaseUrl:c}};var K={getRenderData:U,getReport:W,getReportData:b,getReportRenderData:v,setActions:T};0&&(module.exports={getRenderData,getReport,getReportData,getReportRenderData,setActions});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/dpr/routes/journeys/view-report/sync/report/utils.ts"],
4
- "sourcesContent": ["import parseUrl from 'parseurl'\nimport type { Request, Response } from 'express'\nimport Dict = NodeJS.Dict\nimport type { components } from '../../../../../types/api'\nimport type { DataTable } from '../../../../../utils/DataTableBuilder/types'\nimport type { ListWithWarnings } from '../../../../../data/types'\nimport type { Columns } from '../../../../../components/_reports/report-columns-form/types'\nimport type { Services } from '../../../../../types/Services'\nimport type { DownloadActionParams } from '../../../../../components/_reports/report-actions/types'\nimport { LoadType, ReportType, RequestStatus } from '../../../../../types/UserReports'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport { Template } from '../../../../../types/Templates'\nimport { FilterValue } from '../../../../../components/_filters/types'\n\nimport PaginationUtils from '../../../../../components/_reports/report-pagination/utils'\nimport TotalsUtils from '../../../../../components/_reports/report-totals/utils'\nimport ColumnUtils from '../../../../../components/_reports/report-columns-form/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport FiltersUtils from '../../../../../components/_filters/utils'\nimport SelectedFiltersUtils from '../../../../../components/_filters/filters-selected/utils'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport UserStoreItemBuilder from '../../../../../utils/UserStoreItemBuilder'\n\nimport DataTableBuilder from '../../../../../utils/DataTableBuilder/DataTableBuilder'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nexport const setActions = (\n csrfToken: string,\n reportDefinition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n url: string,\n canDownload: boolean,\n count: number,\n dataProductDefinitionsPath: string,\n currentUrl: string,\n currentQueryParams: string,\n nestedBaseUrl: string,\n) => {\n const { name: reportName, variant, id: reportId } = reportDefinition\n const { name, id, printable } = variant\n\n const downloadConfig: DownloadActionParams = {\n enabled: count > 0,\n name,\n reportName,\n csrfToken,\n reportId,\n id,\n columns: columns.value,\n loadType: LoadType.SYNC,\n definitionPath: dataProductDefinitionsPath,\n canDownload,\n currentUrl,\n currentQueryParams,\n nestedBaseUrl,\n }\n\n return ReportActionsUtils.getActions({\n download: downloadConfig,\n print: {\n enabled: printable,\n },\n share: {\n reportName,\n name,\n url,\n },\n copy: {\n url,\n },\n })\n}\n\nconst setAsRecentlyViewed = async ({\n req,\n services,\n reportName,\n name,\n description,\n reportId,\n id,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportName: string\n name: string\n description: string\n reportId: string\n id: string\n userId: string\n filters: FilterValue[]\n}) => {\n const stateData = {\n type: ReportType.REPORT,\n reportId,\n id,\n reportName,\n description,\n name,\n }\n\n const interactiveQueryData: { query: Dict<string>; querySummary: Array<Dict<string>> } = {\n query: <Dict<string>>req.query,\n querySummary: SelectedFiltersUtils.getQuerySummary(<Dict<string>>req.query, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(stateData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addReportUrls(req)\n .build()\n\n await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport const getReportData = async ({\n services,\n req,\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n}: {\n services: Services\n req: Request\n token: string\n reportId: string\n id: string\n dataProductDefinitionsPath?: string\n}) => {\n const reportDefinition = await services.reportingService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n const { variant } = reportDefinition\n const { resourceName, specification } = variant\n\n const reportQuery = new ReportQuery({\n fields: specification.fields,\n template: specification.template as Template,\n queryParams: req.query,\n definitionsPath: <string>dataProductDefinitionsPath,\n })\n\n return {\n reportData: await services.reportingService.getListWithWarnings(resourceName, token, reportQuery),\n reportDefinition,\n reportQuery,\n }\n}\n\nexport const getReport = async ({ req, res, services }: { req: Request; res: Response; services: Services }) => {\n const { token, csrfToken, dprUser } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const dataProductDefinitionsPath = <string>req.query.dataProductDefinitionsPath\n\n const { reportData, reportDefinition, reportQuery } = await getReportData({\n services,\n req,\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n })\n const count = await services.reportingService.getCount(reportDefinition.variant.resourceName, token, reportQuery)\n const canDownload = await services.downloadPermissionService.downloadEnabled(dprUser.id, reportId, id)\n const bookmarked = await services.bookmarkService.isBookmarked(id, reportId, dprUser.id)\n\n const renderData = await getRenderData({\n req,\n res,\n services,\n reportDefinition,\n reportQuery,\n reportData,\n count,\n csrfToken,\n canDownload,\n })\n\n if (Object.keys(renderData).length) {\n await setAsRecentlyViewed({\n req,\n services,\n reportName: renderData.reportName,\n name: renderData.name,\n description: renderData.description,\n reportId,\n id,\n userId: dprUser.id,\n filters: renderData.filterData.filters,\n })\n }\n\n return {\n renderData: {\n ...renderData,\n csrfToken,\n loadType: LoadType.SYNC,\n reportId,\n id,\n bookmarked,\n dataProductDefinitionsPath,\n },\n }\n}\n\nexport const getReportRenderData = async ({\n req,\n res,\n services,\n count,\n specification,\n reportQuery,\n data,\n filtersType,\n}: {\n req: Request\n res?: Response\n services?: Services\n count: number\n specification: components['schemas']['Specification']\n reportQuery: ReportQuery\n data: Dict<string>[]\n filtersType?: FiltersType\n}) => {\n const url = parseUrl(req)\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const pathname = url.search ? req.originalUrl.split(url.search)[0] : req.originalUrl\n const pagination = PaginationUtils.getPaginationData(url, count, req)\n\n const dataTable: DataTable = new DataTableBuilder(specification.fields)\n .withHeaderSortOptions(reportQuery)\n .buildTable(data)\n\n const totals = TotalsUtils.getTotals(\n pagination.pageSize,\n pagination.currentPage,\n pagination.totalRows,\n dataTable.rowCount,\n )\n\n const filterData = await FiltersUtils.getFilters({\n fields: specification.fields,\n req,\n res,\n services,\n filtersType: filtersType || FiltersType.INTERACTIVE,\n })\n\n const columns = ColumnUtils.getColumns(specification, req)\n\n return {\n dataTable: [dataTable],\n totals,\n filterData,\n columns,\n pagination,\n reportUrl: pathname.replace('/download-disabled', '').replace('/download-disabled?', ''),\n reportSearch: url.search,\n encodedSearch: url.search ? encodeURIComponent(url.search) : undefined,\n fullUrl,\n }\n}\n\nexport const getRenderData = async ({\n req,\n res,\n services,\n reportDefinition,\n reportQuery,\n reportData,\n count,\n csrfToken,\n canDownload,\n}: {\n req: Request\n res: Response\n services: Services\n reportDefinition: components['schemas']['SingleVariantReportDefinition']\n reportQuery: ReportQuery\n reportData: ListWithWarnings\n csrfToken: string\n count: number\n canDownload: boolean\n}) => {\n const { dataProductDefinitionsPath } = req.query\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n const { name: reportName, description: reportDescription } = reportDefinition\n const { specification, name, description, classification, printable } = reportDefinition.variant\n const { data } = reportData\n\n const reportRenderData = await getReportRenderData({ req, res, services, count, specification, reportQuery, data })\n\n const actions = setActions(\n csrfToken,\n reportDefinition,\n reportRenderData.columns,\n `${req.protocol}://${req.get('host')}${req.originalUrl}`,\n canDownload,\n count,\n <string>dataProductDefinitionsPath,\n reportRenderData.reportUrl,\n reportRenderData.reportSearch,\n nestedBaseUrl,\n )\n\n return {\n ...reportRenderData,\n reportName,\n name,\n description: description || reportDescription,\n count,\n type: ReportType.REPORT,\n classification,\n printable,\n actions,\n warnings: reportData.warnings,\n canDownload,\n nestedBaseUrl,\n }\n}\n\nexport default {\n getRenderData,\n getReport,\n getReportData,\n getReportRenderData,\n setActions,\n}\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,kBAAAC,EAAA,cAAAC,EAAA,kBAAAC,EAAA,wBAAAC,EAAA,eAAAC,IAAA,eAAAC,EAAAR,GAAA,IAAAS,EAAqB,uBASrBC,EAAoD,4CACpDC,EAAwB,+CAIxBC,EAA4B,yEAC5BA,EAAwB,qEACxBA,EAAwB,2EACxBA,EAA+B,sEAC/BA,EAAyB,uDACzBA,EAAiC,wEACjCC,EAAyB,gDACzBC,EAAiC,wDAEjCC,EAA6B,qEAC7BC,EAA4B,8DAErB,MAAMT,EAAa,CACxBU,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,KAAM,CAAE,KAAMC,EAAY,QAAAC,EAAS,GAAIC,CAAS,EAAIX,EAC9C,CAAE,KAAAY,EAAM,GAAAC,EAAI,UAAAC,CAAU,EAAIJ,EAE1BK,EAAuC,CAC3C,QAASX,EAAQ,EACjB,KAAAQ,EACA,WAAAH,EACA,UAAAV,EACA,SAAAY,EACA,GAAAE,EACA,QAASZ,EAAQ,MACjB,SAAU,WAAS,KACnB,eAAgBI,EAChB,YAAAF,EACA,WAAAG,EACA,mBAAAC,EACA,cAAAC,CACF,EAEA,OAAO,EAAAQ,QAAmB,WAAW,CACnC,SAAUD,EACV,MAAO,CACL,QAASD,CACX,EACA,MAAO,CACL,WAAAL,EACA,KAAAG,EACA,IAAAV,CACF,EACA,KAAM,CACJ,IAAAA,CACF,CACF,CAAC,CACH,EAEMe,EAAsB,MAAO,CACjC,IAAAC,EACA,SAAAC,EACA,WAAAV,EACA,KAAAG,EACA,YAAAQ,EACA,SAAAT,EACA,GAAAE,EACA,OAAAQ,EACA,QAAAC,CACF,IAUM,CACJ,MAAMC,EAAY,CAChB,KAAM,aAAW,OACjB,SAAAZ,EACA,GAAAE,EACA,WAAAJ,EACA,YAAAW,EACA,KAAAR,CACF,EAEMY,EAAmF,CACvF,MAAqBN,EAAI,MACzB,aAAc,EAAAO,QAAqB,gBAA8BP,EAAI,MAAOI,CAAO,CACrF,EAEMI,EAAqB,IAAI,EAAAC,QAAqBJ,CAAS,EAC1D,oBAAoBC,CAAoB,EACxC,UAAU,gBAAc,KAAK,EAC7B,aAAa,EACb,cAAcN,CAAG,EACjB,MAAM,EAET,MAAMC,EAAS,sBAAsB,kBAAkBO,EAAoBL,CAAM,CACnF,EAEalC,EAAgB,MAAO,CAClC,SAAAgC,EACA,IAAAD,EACA,MAAAU,EACA,SAAAjB,EACA,GAAAE,EACA,2BAAAR,CACF,IAOM,CACJ,MAAML,EAAmB,MAAMmB,EAAS,iBAAiB,cACvDS,EACAjB,EACAE,EACAR,CACF,EACM,CAAE,QAAAK,CAAQ,EAAIV,EACd,CAAE,aAAA6B,EAAc,cAAAC,CAAc,EAAIpB,EAElCqB,EAAc,IAAI,EAAAC,QAAY,CAClC,OAAQF,EAAc,OACtB,SAAUA,EAAc,SACxB,YAAaZ,EAAI,MACjB,gBAAyBb,CAC3B,CAAC,EAED,MAAO,CACL,WAAY,MAAMc,EAAS,iBAAiB,oBAAoBU,EAAcD,EAAOG,CAAW,EAChG,iBAAA/B,EACA,YAAA+B,CACF,CACF,EAEa7C,EAAY,MAAO,CAAE,IAAAgC,EAAK,IAAAe,EAAK,SAAAd,CAAS,IAA2D,CAC9G,KAAM,CAAE,MAAAS,EAAO,UAAA7B,EAAW,QAAAmC,CAAQ,EAAI,EAAAC,QAAa,UAAUF,CAAG,EAC1D,CAAE,SAAAtB,EAAU,GAAAE,CAAG,EAAIK,EAAI,OACvBb,EAAqCa,EAAI,MAAM,2BAE/C,CAAE,WAAAkB,EAAY,iBAAApC,EAAkB,YAAA+B,CAAY,EAAI,MAAM5C,EAAc,CACxE,SAAAgC,EACA,IAAAD,EACA,MAAAU,EACA,SAAAjB,EACA,GAAAE,EACA,2BAAAR,CACF,CAAC,EACKD,EAAQ,MAAMe,EAAS,iBAAiB,SAASnB,EAAiB,QAAQ,aAAc4B,EAAOG,CAAW,EAC1G5B,EAAc,MAAMgB,EAAS,0BAA0B,gBAAgBe,EAAQ,GAAIvB,EAAUE,CAAE,EAC/FwB,EAAa,MAAMlB,EAAS,gBAAgB,aAAaN,EAAIF,EAAUuB,EAAQ,EAAE,EAEjFI,EAAa,MAAMrD,EAAc,CACrC,IAAAiC,EACA,IAAAe,EACA,SAAAd,EACA,iBAAAnB,EACA,YAAA+B,EACA,WAAAK,EACA,MAAAhC,EACA,UAAAL,EACA,YAAAI,CACF,CAAC,EAED,OAAI,OAAO,KAAKmC,CAAU,EAAE,QAC1B,MAAMrB,EAAoB,CACxB,IAAAC,EACA,SAAAC,EACA,WAAYmB,EAAW,WACvB,KAAMA,EAAW,KACjB,YAAaA,EAAW,YACxB,SAAA3B,EACA,GAAAE,EACA,OAAQqB,EAAQ,GAChB,QAASI,EAAW,WAAW,OACjC,CAAC,EAGI,CACL,WAAY,CACV,GAAGA,EACH,UAAAvC,EACA,SAAU,WAAS,KACnB,SAAAY,EACA,GAAAE,EACA,WAAAwB,EACA,2BAAAhC,CACF,CACF,CACF,EAEajB,EAAsB,MAAO,CACxC,IAAA8B,EACA,IAAAe,EACA,SAAAd,EACA,MAAAf,EACA,cAAA0B,EACA,YAAAC,EACA,KAAAQ,EACA,YAAAC,CACF,IASM,CACJ,MAAMtC,KAAM,EAAAuC,SAASvB,CAAG,EAClBwB,EAAU,GAAGxB,EAAI,QAAQ,MAAMA,EAAI,IAAI,MAAM,CAAC,GAAGA,EAAI,WAAW,GAChEyB,EAAWzC,EAAI,OAASgB,EAAI,YAAY,MAAMhB,EAAI,MAAM,EAAE,CAAC,EAAIgB,EAAI,YACnE0B,EAAa,EAAAC,QAAgB,kBAAkB3C,EAAKE,EAAOc,CAAG,EAE9D4B,EAAuB,IAAI,EAAAC,QAAiBjB,EAAc,MAAM,EACnE,sBAAsBC,CAAW,EACjC,WAAWQ,CAAI,EAEZS,EAAS,EAAAC,QAAY,UACzBL,EAAW,SACXA,EAAW,YACXA,EAAW,UACXE,EAAU,QACZ,EAEMI,EAAa,MAAM,EAAAC,QAAa,WAAW,CAC/C,OAAQrB,EAAc,OACtB,IAAAZ,EACA,IAAAe,EACA,SAAAd,EACA,YAAaqB,GAAe,cAAY,WAC1C,CAAC,EAEKvC,EAAU,EAAAmD,QAAY,WAAWtB,EAAeZ,CAAG,EAEzD,MAAO,CACL,UAAW,CAAC4B,CAAS,EACrB,OAAAE,EACA,WAAAE,EACA,QAAAjD,EACA,WAAA2C,EACA,UAAWD,EAAS,QAAQ,qBAAsB,EAAE,EAAE,QAAQ,sBAAuB,EAAE,EACvF,aAAczC,EAAI,OAClB,cAAeA,EAAI,OAAS,mBAAmBA,EAAI,MAAM,EAAI,OAC7D,QAAAwC,CACF,CACF,EAEazD,EAAgB,MAAO,CAClC,IAAAiC,EACA,IAAAe,EACA,SAAAd,EACA,iBAAAnB,EACA,YAAA+B,EACA,WAAAK,EACA,MAAAhC,EACA,UAAAL,EACA,YAAAI,CACF,IAUM,CACJ,KAAM,CAAE,2BAAAE,CAA2B,EAAIa,EAAI,MACrC,CAAE,cAAAV,CAAc,EAAI,EAAA2B,QAAa,UAAUF,CAAG,EAC9C,CAAE,KAAMxB,EAAY,YAAa4C,CAAkB,EAAIrD,EACvD,CAAE,cAAA8B,EAAe,KAAAlB,EAAM,YAAAQ,EAAa,eAAAkC,EAAgB,UAAAxC,CAAU,EAAId,EAAiB,QACnF,CAAE,KAAAuC,CAAK,EAAIH,EAEXmB,EAAmB,MAAMnE,EAAoB,CAAE,IAAA8B,EAAK,IAAAe,EAAK,SAAAd,EAAU,MAAAf,EAAO,cAAA0B,EAAe,YAAAC,EAAa,KAAAQ,CAAK,CAAC,EAE5GiB,EAAUnE,EACdU,EACAC,EACAuD,EAAiB,QACjB,GAAGrC,EAAI,QAAQ,MAAMA,EAAI,IAAI,MAAM,CAAC,GAAGA,EAAI,WAAW,GACtDf,EACAC,EACQC,EACRkD,EAAiB,UACjBA,EAAiB,aACjB/C,CACF,EAEA,MAAO,CACL,GAAG+C,EACH,WAAA9C,EACA,KAAAG,EACA,YAAaQ,GAAeiC,EAC5B,MAAAjD,EACA,KAAM,aAAW,OACjB,eAAAkD,EACA,UAAAxC,EACA,QAAA0C,EACA,SAAUpB,EAAW,SACrB,YAAAjC,EACA,cAAAK,CACF,CACF,EAEA,IAAOxB,EAAQ,CACb,cAAAC,EACA,UAAAC,EACA,cAAAC,EACA,oBAAAC,EACA,WAAAC,CACF",
6
- "names": ["utils_exports", "__export", "utils_default", "getRenderData", "getReport", "getReportData", "getReportRenderData", "setActions", "__toCommonJS", "import_parseurl", "import_UserReports", "import_ReportQuery", "import_utils", "import_localsHelper", "import_UserStoreItemBuilder", "import_DataTableBuilder", "import_filtersTypeEnum", "csrfToken", "reportDefinition", "columns", "url", "canDownload", "count", "dataProductDefinitionsPath", "currentUrl", "currentQueryParams", "nestedBaseUrl", "reportName", "variant", "reportId", "name", "id", "printable", "downloadConfig", "ReportActionsUtils", "setAsRecentlyViewed", "req", "services", "description", "userId", "filters", "stateData", "interactiveQueryData", "SelectedFiltersUtils", "recentlyViewedData", "UserStoreItemBuilder", "token", "resourceName", "specification", "reportQuery", "ReportQuery", "res", "dprUser", "LocalsHelper", "reportData", "bookmarked", "renderData", "data", "filtersType", "parseUrl", "fullUrl", "pathname", "pagination", "PaginationUtils", "dataTable", "DataTableBuilder", "totals", "TotalsUtils", "filterData", "FiltersUtils", "ColumnUtils", "reportDescription", "classification", "reportRenderData", "actions"]
4
+ "sourcesContent": ["import parseUrl from 'parseurl'\nimport type { Request, Response } from 'express'\nimport Dict = NodeJS.Dict\nimport type { components } from '../../../../../types/api'\nimport type { DataTable } from '../../../../../utils/DataTableBuilder/types'\nimport type { ListWithWarnings } from '../../../../../data/types'\nimport type { Columns } from '../../../../../components/_reports/report-columns-form/types'\nimport type { Services } from '../../../../../types/Services'\nimport type { DownloadActionParams } from '../../../../../components/_reports/report-actions/types'\nimport { LoadType, ReportType, RequestStatus } from '../../../../../types/UserReports'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport { Template } from '../../../../../types/Templates'\nimport { FilterValue } from '../../../../../components/_filters/types'\n\nimport PaginationUtils from '../../../../../components/_reports/report-pagination/utils'\nimport TotalsUtils from '../../../../../components/_reports/report-totals/utils'\nimport ColumnUtils from '../../../../../components/_reports/report-columns-form/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport FiltersUtils from '../../../../../components/_filters/utils'\nimport SelectedFiltersUtils from '../../../../../components/_filters/filters-selected/utils'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport UserStoreItemBuilder from '../../../../../utils/UserStoreItemBuilder'\n\nimport DataTableBuilder from '../../../../../utils/DataTableBuilder/DataTableBuilder'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nexport const setActions = (\n csrfToken: string,\n reportDefinition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n url: string,\n canDownload: boolean,\n count: number,\n dataProductDefinitionsPath: string,\n currentUrl: string,\n currentQueryParams: string,\n nestedBaseUrl: string,\n) => {\n const { name: reportName, variant, id: reportId } = reportDefinition\n const { name, id, printable } = variant\n\n const downloadConfig: DownloadActionParams = {\n enabled: count > 0,\n name,\n reportName,\n csrfToken,\n reportId,\n id,\n columns: columns.value,\n loadType: LoadType.SYNC,\n definitionPath: dataProductDefinitionsPath,\n canDownload,\n currentUrl,\n currentQueryParams,\n nestedBaseUrl,\n }\n\n return ReportActionsUtils.getActions({\n download: downloadConfig,\n print: {\n enabled: Boolean(printable),\n },\n share: {\n reportName,\n name,\n url,\n },\n copy: {\n url,\n },\n })\n}\n\nconst setAsRecentlyViewed = async ({\n req,\n services,\n reportName,\n name,\n description,\n reportId,\n id,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportName: string\n name: string\n description: string\n reportId: string\n id: string\n userId: string\n filters: FilterValue[]\n}) => {\n const stateData = {\n type: ReportType.REPORT,\n reportId,\n id,\n reportName,\n description,\n name,\n }\n\n const interactiveQueryData: { query: Dict<string>; querySummary: Array<Dict<string>> } = {\n query: <Dict<string>>req.query,\n querySummary: SelectedFiltersUtils.getQuerySummary(<Dict<string>>req.query, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(stateData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addReportUrls(req)\n .build()\n\n await services.recentlyViewedService?.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport const getReportData = async ({\n services,\n req,\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n}: {\n services: Services\n req: Request\n token: string\n reportId: string\n id: string\n dataProductDefinitionsPath?: string\n}) => {\n const reportDefinition = await services.reportingService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n const { variant } = reportDefinition\n const { resourceName, specification } = variant\n\n const reportQuery = new ReportQuery({\n fields: specification?.fields || [],\n template: (specification?.template as Template) || 'list',\n queryParams: req.query,\n definitionsPath: <string>dataProductDefinitionsPath,\n })\n\n return {\n reportData: await services.reportingService.getListWithWarnings(resourceName, token, reportQuery),\n reportDefinition,\n reportQuery,\n }\n}\n\nexport const getReport = async ({ req, res, services }: { req: Request; res: Response; services: Services }) => {\n const { token, csrfToken, dprUser } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const dataProductDefinitionsPath = <string>req.query['dataProductDefinitionsPath']\n\n const { reportData, reportDefinition, reportQuery } = await getReportData({\n services,\n req,\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n })\n const count = await services.reportingService.getCount(reportDefinition.variant.resourceName, token, reportQuery)\n const canDownload = Boolean(\n await services.downloadPermissionService?.downloadEnabledForReport(dprUser.id, reportId, id),\n )\n const bookmarked = Boolean(await services.bookmarkService?.isBookmarked(id, reportId, dprUser.id))\n\n const renderData = await getRenderData({\n req,\n res,\n services,\n reportDefinition,\n reportQuery,\n reportData,\n count,\n csrfToken,\n canDownload,\n })\n\n if (Object.keys(renderData).length) {\n await setAsRecentlyViewed({\n req,\n services,\n reportName: renderData.reportName,\n name: renderData.name,\n description: renderData.description || '',\n reportId,\n id,\n userId: dprUser.id,\n filters: renderData.filterData.filters,\n })\n }\n\n return {\n renderData: {\n ...renderData,\n csrfToken,\n loadType: LoadType.SYNC,\n reportId,\n id,\n bookmarked,\n dataProductDefinitionsPath,\n },\n }\n}\n\nexport const getReportRenderData = async ({\n req,\n res,\n services,\n count,\n specification,\n reportQuery,\n data,\n filtersType,\n}: {\n req: Request\n res?: Response\n services?: Services\n count: number\n specification: components['schemas']['Specification']\n reportQuery: ReportQuery\n data: Dict<string>[]\n filtersType?: FiltersType\n}) => {\n const url = parseUrl(req)\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const pathname = url?.search ? req.originalUrl.split(url.search)[0] : req.originalUrl\n\n const dataTable: DataTable = new DataTableBuilder(specification.fields)\n .withHeaderSortOptions(reportQuery)\n .buildTable(data)\n\n let pagination\n let totals\n if (url) {\n pagination = PaginationUtils.getPaginationData(url, count, req)\n totals = TotalsUtils.getTotals(\n pagination.pageSize,\n pagination.currentPage,\n pagination.totalRows,\n dataTable.rowCount,\n )\n }\n\n const filterData = await FiltersUtils.getFilters({\n fields: specification.fields,\n req,\n res,\n services,\n filtersType: filtersType || FiltersType.INTERACTIVE,\n })\n\n const columns = ColumnUtils.getColumns(specification, req)\n\n return {\n dataTable: [dataTable],\n totals,\n filterData,\n columns,\n pagination,\n reportUrl: pathname.replace('/download-disabled', '').replace('/download-disabled?', ''),\n reportSearch: url?.search,\n encodedSearch: url?.search ? encodeURIComponent(url.search) : undefined,\n fullUrl,\n }\n}\n\nexport const getRenderData = async ({\n req,\n res,\n services,\n reportDefinition,\n reportQuery,\n reportData,\n count,\n csrfToken,\n canDownload,\n}: {\n req: Request\n res: Response\n services: Services\n reportDefinition: components['schemas']['SingleVariantReportDefinition']\n reportQuery: ReportQuery\n reportData: ListWithWarnings\n csrfToken: string\n count: number\n canDownload: boolean\n}) => {\n const { dataProductDefinitionsPath } = req.query\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n const { name: reportName, description: reportDescription } = reportDefinition\n const { specification, name, description, classification, printable } = reportDefinition.variant\n const { data } = reportData\n\n if (!specification) {\n throw new Error('No specicication found in definition')\n }\n\n const reportRenderData = await getReportRenderData({ req, res, services, count, specification, reportQuery, data })\n\n const actions = setActions(\n csrfToken,\n reportDefinition,\n reportRenderData.columns,\n `${req.protocol}://${req.get('host')}${req.originalUrl}`,\n canDownload,\n count,\n <string>dataProductDefinitionsPath,\n reportRenderData.reportUrl,\n reportRenderData.reportSearch || '',\n nestedBaseUrl,\n )\n\n return {\n ...reportRenderData,\n reportName,\n name,\n description: description || reportDescription,\n count,\n type: ReportType.REPORT,\n classification,\n printable,\n actions,\n warnings: reportData.warnings,\n canDownload,\n nestedBaseUrl,\n }\n}\n\nexport default {\n getRenderData,\n getReport,\n getReportData,\n getReportRenderData,\n setActions,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "utils_default", "getRenderData", "getReport", "getReportData", "getReportRenderData", "setActions", "__toCommonJS", "import_parseurl", "import_UserReports", "import_ReportQuery", "import_utils", "import_localsHelper", "import_UserStoreItemBuilder", "import_DataTableBuilder", "import_filtersTypeEnum", "csrfToken", "reportDefinition", "columns", "url", "canDownload", "count", "dataProductDefinitionsPath", "currentUrl", "currentQueryParams", "nestedBaseUrl", "reportName", "variant", "reportId", "name", "id", "printable", "downloadConfig", "ReportActionsUtils", "setAsRecentlyViewed", "req", "services", "description", "userId", "filters", "stateData", "interactiveQueryData", "SelectedFiltersUtils", "recentlyViewedData", "UserStoreItemBuilder", "token", "resourceName", "specification", "reportQuery", "ReportQuery", "res", "dprUser", "LocalsHelper", "reportData", "bookmarked", "renderData", "data", "filtersType", "parseUrl", "fullUrl", "pathname", "dataTable", "DataTableBuilder", "pagination", "totals", "PaginationUtils", "TotalsUtils", "filterData", "FiltersUtils", "ColumnUtils", "reportDescription", "classification", "reportRenderData", "actions"]
7
7
  }
@@ -58,7 +58,7 @@ export const setActions = (
58
58
  return ReportActionsUtils.getActions({
59
59
  download: downloadConfig,
60
60
  print: {
61
- enabled: printable,
61
+ enabled: Boolean(printable),
62
62
  },
63
63
  share: {
64
64
  reportName,
@@ -113,7 +113,7 @@ const setAsRecentlyViewed = async ({
113
113
  .addReportUrls(req)
114
114
  .build()
115
115
 
116
- await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)
116
+ await services.recentlyViewedService?.setRecentlyViewed(recentlyViewedData, userId)
117
117
  }
118
118
 
119
119
  export const getReportData = async ({
@@ -141,8 +141,8 @@ export const getReportData = async ({
141
141
  const { resourceName, specification } = variant
142
142
 
143
143
  const reportQuery = new ReportQuery({
144
- fields: specification.fields,
145
- template: specification.template as Template,
144
+ fields: specification?.fields || [],
145
+ template: (specification?.template as Template) || 'list',
146
146
  queryParams: req.query,
147
147
  definitionsPath: <string>dataProductDefinitionsPath,
148
148
  })
@@ -157,7 +157,7 @@ export const getReportData = async ({
157
157
  export const getReport = async ({ req, res, services }: { req: Request; res: Response; services: Services }) => {
158
158
  const { token, csrfToken, dprUser } = LocalsHelper.getValues(res)
159
159
  const { reportId, id } = req.params
160
- const dataProductDefinitionsPath = <string>req.query.dataProductDefinitionsPath
160
+ const dataProductDefinitionsPath = <string>req.query['dataProductDefinitionsPath']
161
161
 
162
162
  const { reportData, reportDefinition, reportQuery } = await getReportData({
163
163
  services,
@@ -168,8 +168,10 @@ export const getReport = async ({ req, res, services }: { req: Request; res: Res
168
168
  dataProductDefinitionsPath,
169
169
  })
170
170
  const count = await services.reportingService.getCount(reportDefinition.variant.resourceName, token, reportQuery)
171
- const canDownload = await services.downloadPermissionService.downloadEnabled(dprUser.id, reportId, id)
172
- const bookmarked = await services.bookmarkService.isBookmarked(id, reportId, dprUser.id)
171
+ const canDownload = Boolean(
172
+ await services.downloadPermissionService?.downloadEnabledForReport(dprUser.id, reportId, id),
173
+ )
174
+ const bookmarked = Boolean(await services.bookmarkService?.isBookmarked(id, reportId, dprUser.id))
173
175
 
174
176
  const renderData = await getRenderData({
175
177
  req,
@@ -189,7 +191,7 @@ export const getReport = async ({ req, res, services }: { req: Request; res: Res
189
191
  services,
190
192
  reportName: renderData.reportName,
191
193
  name: renderData.name,
192
- description: renderData.description,
194
+ description: renderData.description || '',
193
195
  reportId,
194
196
  id,
195
197
  userId: dprUser.id,
@@ -231,19 +233,23 @@ export const getReportRenderData = async ({
231
233
  }) => {
232
234
  const url = parseUrl(req)
233
235
  const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`
234
- const pathname = url.search ? req.originalUrl.split(url.search)[0] : req.originalUrl
235
- const pagination = PaginationUtils.getPaginationData(url, count, req)
236
+ const pathname = url?.search ? req.originalUrl.split(url.search)[0] : req.originalUrl
236
237
 
237
238
  const dataTable: DataTable = new DataTableBuilder(specification.fields)
238
239
  .withHeaderSortOptions(reportQuery)
239
240
  .buildTable(data)
240
241
 
241
- const totals = TotalsUtils.getTotals(
242
- pagination.pageSize,
243
- pagination.currentPage,
244
- pagination.totalRows,
245
- dataTable.rowCount,
246
- )
242
+ let pagination
243
+ let totals
244
+ if (url) {
245
+ pagination = PaginationUtils.getPaginationData(url, count, req)
246
+ totals = TotalsUtils.getTotals(
247
+ pagination.pageSize,
248
+ pagination.currentPage,
249
+ pagination.totalRows,
250
+ dataTable.rowCount,
251
+ )
252
+ }
247
253
 
248
254
  const filterData = await FiltersUtils.getFilters({
249
255
  fields: specification.fields,
@@ -262,8 +268,8 @@ export const getReportRenderData = async ({
262
268
  columns,
263
269
  pagination,
264
270
  reportUrl: pathname.replace('/download-disabled', '').replace('/download-disabled?', ''),
265
- reportSearch: url.search,
266
- encodedSearch: url.search ? encodeURIComponent(url.search) : undefined,
271
+ reportSearch: url?.search,
272
+ encodedSearch: url?.search ? encodeURIComponent(url.search) : undefined,
267
273
  fullUrl,
268
274
  }
269
275
  }
@@ -295,6 +301,10 @@ export const getRenderData = async ({
295
301
  const { specification, name, description, classification, printable } = reportDefinition.variant
296
302
  const { data } = reportData
297
303
 
304
+ if (!specification) {
305
+ throw new Error('No specicication found in definition')
306
+ }
307
+
298
308
  const reportRenderData = await getReportRenderData({ req, res, services, count, specification, reportQuery, data })
299
309
 
300
310
  const actions = setActions(
@@ -306,7 +316,7 @@ export const getRenderData = async ({
306
316
  count,
307
317
  <string>dataProductDefinitionsPath,
308
318
  reportRenderData.reportUrl,
309
- reportRenderData.reportSearch,
319
+ reportRenderData.reportSearch || '',
310
320
  nestedBaseUrl,
311
321
  )
312
322
 
@@ -1,2 +1,2 @@
1
- var c=Object.create;var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var x=(r,o)=>{for(var e in o)m(r,e,{get:o[e],enumerable:!0})},i=(r,o,e,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of g(o))!v.call(r,t)&&t!==e&&m(r,t,{get:()=>o[t],enumerable:!(u=d(o,t))||u.enumerable});return r};var p=(r,o,e)=>(e=r!=null?c(l(r)):{},i(o||!r||!r.__esModule?m(e,"default",{value:r,enumerable:!0}):e,r)),S=r=>i(m({},"__esModule",{value:!0}),r);var A={};x(A,{default:()=>w,routes:()=>a});module.exports=S(A);var s=require("express"),f=p(require("./load-report/routes")),n=p(require("./report/routes")),R=p(require("../../../../middleware/reportAuthoriser"));function a({layoutPath:r,services:o}){const e=(0,s.Router)({mergeParams:!0});return e.use("/report",(0,R.default)(o,r),(0,n.default)({layoutPath:r,services:o})),e.use("/load-report",(0,f.default)({layoutPath:r,services:o})),e}var w=a;0&&(module.exports={routes});
1
+ "use strict";var c=Object.create;var m=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var x=(r,o)=>{for(var e in o)m(r,e,{get:o[e],enumerable:!0})},i=(r,o,e,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of g(o))!v.call(r,t)&&t!==e&&m(r,t,{get:()=>o[t],enumerable:!(u=d(o,t))||u.enumerable});return r};var p=(r,o,e)=>(e=r!=null?c(l(r)):{},i(o||!r||!r.__esModule?m(e,"default",{value:r,enumerable:!0}):e,r)),S=r=>i(m({},"__esModule",{value:!0}),r);var A={};x(A,{default:()=>w,routes:()=>a});module.exports=S(A);var s=require("express"),f=p(require("./load-report/routes")),n=p(require("./report/routes")),R=p(require("../../../../middleware/reportAuthoriser"));function a({layoutPath:r,services:o}){const e=(0,s.Router)({mergeParams:!0});return e.use("/report",(0,R.default)(o,r),(0,n.default)({layoutPath:r,services:o})),e.use("/load-report",(0,f.default)({layoutPath:r,services:o})),e}var w=a;0&&(module.exports={routes});
2
2
  //# sourceMappingURL=routes.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/view-report/sync/routes.ts"],
4
4
  "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport { Services } from '../../../../types/Services'\n\n// Routes\nimport loadReportRoutes from './load-report/routes'\nimport viewReportRoutes from './report/routes'\n\n// middleware\nimport reportAuthoriser from '../../../../middleware/reportAuthoriser'\n\nexport function routes({ layoutPath, services }: { layoutPath: string; services: Services }) {\n const router = Router({ mergeParams: true })\n\n router.use('/report', reportAuthoriser(services, layoutPath), viewReportRoutes({ layoutPath, services }))\n router.use(`/load-report`, loadReportRoutes({ layoutPath, services }))\n\n return router\n}\n\nexport default routes\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAuB,mBAIvBC,EAA6B,mCAC7BA,EAA6B,8BAG7BC,EAA6B,sDAEtB,SAASJ,EAAO,CAAE,WAAAK,EAAY,SAAAC,CAAS,EAA+C,CAC3F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAE3C,OAAAA,EAAO,IAAI,aAAW,EAAAC,SAAiBF,EAAUD,CAAU,KAAG,EAAAI,SAAiB,CAAE,WAAAJ,EAAY,SAAAC,CAAS,CAAC,CAAC,EACxGC,EAAO,IAAI,kBAAgB,EAAAG,SAAiB,CAAE,WAAAL,EAAY,SAAAC,CAAS,CAAC,CAAC,EAE9DC,CACT,CAEA,IAAOR,EAAQC",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAuB,mBAIvBC,EAA6B,mCAC7BA,EAA6B,8BAG7BC,EAA6B,sDAEtB,SAASJ,EAAO,CAAE,WAAAK,EAAY,SAAAC,CAAS,EAA+C,CAC3F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAE3C,OAAAA,EAAO,IAAI,aAAW,EAAAC,SAAiBF,EAAUD,CAAU,KAAG,EAAAI,SAAiB,CAAE,WAAAJ,EAAY,SAAAC,CAAS,CAAC,CAAC,EACxGC,EAAO,IAAI,kBAAgB,EAAAG,SAAiB,CAAE,WAAAL,EAAY,SAAAC,CAAS,CAAC,CAAC,EAE9DC,CACT,CAEA,IAAOR,EAAQC",
6
6
  "names": ["routes_exports", "__export", "routes_default", "routes", "__toCommonJS", "import_express", "import_routes", "import_reportAuthoriser", "layoutPath", "services", "router", "reportAuthoriser", "viewReportRoutes", "loadReportRoutes"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var e=require("../../../../../../cypress-tests/cypressUtils");context("Platform sync tests",()=>{const t="/embedded/platform/";describe("Sync tests from the platform",()=>{before(()=>{(0,e.executeReportStubs)(),cy.task("stubDefinitionSyncReport"),cy.task("stubRequestSuccessResult20"),cy.task("stubSyncRequestDataSuccess"),cy.task("stubSyncRequestDataSuccessCount")}),it("should load a sync report",()=>{cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(c,s)=>s.textContent.includes("This is an sync report")}).within(()=>{cy.findByRole("link",{name:/Load report/}).click()})}),cy.findByRole("heading",{name:/Sync report/,level:1}).should("be.visible")})})});
1
+ "use strict";var e=require("../../../../../../cypress-tests/cypressUtils");context("Platform sync tests",()=>{const t="/embedded/platform/";describe("Sync tests from the platform",()=>{before(()=>{(0,e.executeReportStubs)(),cy.task("stubDefinitionSyncReport"),cy.task("stubRequestSuccessResult20"),cy.task("stubSyncRequestDataSuccess"),cy.task("stubSyncRequestDataSuccessCount")}),it("should load a sync report",()=>{cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(c,s)=>!!s.textContent?.includes("This is an sync report")}).within(()=>{cy.findByRole("link",{name:/Load report/}).click()})}),cy.findByRole("heading",{name:/Sync report/,level:1}).should("be.visible")})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/view-report/sync/tests.cy.ts"],
4
- "sourcesContent": ["import { executeReportStubs } from '../../../../../../cypress-tests/cypressUtils'\n\ncontext('Platform sync tests', () => {\n const path = '/embedded/platform/'\n\n describe('Sync tests from the platform', () => {\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionSyncReport')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubSyncRequestDataSuccess')\n cy.task('stubSyncRequestDataSuccessCount')\n })\n it('should load a sync report', () => {\n cy.visit(path)\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('This is an sync report')\n },\n }).within(() => {\n cy.findByRole('link', { name: /Load report/ }).click()\n })\n })\n\n cy.findByRole('heading', { name: /Sync report/, level: 1 }).should('be.visible')\n })\n })\n})\n"],
5
- "mappings": "AAAA,IAAAA,EAAmC,wDAEnC,QAAQ,sBAAuB,IAAM,CACnC,MAAMC,EAAO,sBAEb,SAAS,+BAAgC,IAAM,CAC7C,OAAO,IAAM,IACX,sBAAmB,EACnB,GAAG,KAAK,0BAA0B,EAClC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,iCAAiC,CAC3C,CAAC,EACD,GAAG,4BAA6B,IAAM,CACpC,GAAG,MAAMA,CAAI,EAEb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,wBAAwB,CAEhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,aAAc,CAAC,EAAE,MAAM,CACvD,CAAC,CACH,CAAC,EAED,GAAG,WAAW,UAAW,CAAE,KAAM,cAAe,MAAO,CAAE,CAAC,EAAE,OAAO,YAAY,CACjF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { executeReportStubs } from '../../../../../../cypress-tests/cypressUtils'\n\ncontext('Platform sync tests', () => {\n const path = '/embedded/platform/'\n\n describe('Sync tests from the platform', () => {\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionSyncReport')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubSyncRequestDataSuccess')\n cy.task('stubSyncRequestDataSuccessCount')\n })\n it('should load a sync report', () => {\n cy.visit(path)\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('This is an sync report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: /Load report/ }).click()\n })\n })\n\n cy.findByRole('heading', { name: /Sync report/, level: 1 }).should('be.visible')\n })\n })\n})\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,wDAEnC,QAAQ,sBAAuB,IAAM,CACnC,MAAMC,EAAO,sBAEb,SAAS,+BAAgC,IAAM,CAC7C,OAAO,IAAM,IACX,sBAAmB,EACnB,GAAG,KAAK,0BAA0B,EAClC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,iCAAiC,CAC3C,CAAC,EACD,GAAG,4BAA6B,IAAM,CACpC,GAAG,MAAMA,CAAI,EAEb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACD,EAAQA,EAAQ,aAAa,SAAS,wBAAwB,CAEzE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,aAAc,CAAC,EAAE,MAAM,CACvD,CAAC,CACH,CAAC,EAED,GAAG,WAAW,UAAW,CAAE,KAAM,cAAe,MAAO,CAAE,CAAC,EAAE,OAAO,YAAY,CACjF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_cypressUtils", "path", "_", "element"]
7
7
  }
@@ -17,7 +17,7 @@ context('Platform sync tests', () => {
17
17
  cy.findByLabelText(/Reports catalogue.*/i).within(() => {
18
18
  cy.findByRole('row', {
19
19
  name: (_, element) => {
20
- return element.textContent.includes('This is an sync report')
20
+ return Boolean(element.textContent?.includes('This is an sync report'))
21
21
  },
22
22
  }).within(() => {
23
23
  cy.findByRole('link', { name: /Load report/ }).click()
@@ -1,2 +1,2 @@
1
- var T=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var M=(e,o)=>{for(var t in o)g(e,t,{get:o[t],enumerable:!0})},v=(e,o,t,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of E(o))!B.call(e,r)&&r!==t&&g(e,r,{get:()=>o[r],enumerable:!(i=x(o,r))||i.enumerable});return e};var y=(e,o,t)=>(t=e!=null?T(j(e)):{},v(o||!e||!e.__esModule?g(t,"default",{value:e,enumerable:!0}):t,e)),O=e=>v(g({},"__esModule",{value:!0}),e);var H={};M(H,{applyDashboardInteractiveQuery:()=>A,applyReportInteractiveQuery:()=>V,default:()=>z});module.exports=O(H);var f=require("../../../components/_filters/filter-input/enum"),D=y(require("../../../utils/localsHelper")),C=y(require("../../../utils/definitionUtils")),F=y(require("../../../utils/DateMapper/DateMapper")),I=y(require("../../../components/_reports/report-columns-form/utils"));const V=async(e,o,t,i)=>{const{reportId:r,id:n}=e.params,{token:l,definitionsPath:a}=D.default.getValues(o),s=(await t.reportingService.getDefinition(l,r,n,a)).variant.specification.fields||[];return L(e,o,t,i,s)},A=async(e,o,t,i)=>{const{reportId:r,id:n}=e.params,{token:l,definitionsPath:a}=D.default.getValues(o),s=(await t.dashboardService.getDefinition(l,r,n,a)).filterFields||[];return L(e,o,t,i,s)},L=async(e,o,t,i,r)=>{const{tableId:n,id:l}=e.params,{dprUser:a}=D.default.getValues(o);let p;n?p=await t.recentlyViewedService.getReportByTableId(n,a.id):p=await t.recentlyViewedService.getReportById(l,a.id);const s=p?.interactiveQuery?.data,{preventDefault:d,selectedPage:R,pageSize:S,sortColumn:b,sortedAsc:h}=s,Q=Object.keys(s).filter(c=>c.includes("filters.")).reduce((c,u)=>({...c,[u]:s[u]}),{});let m={...d&&{preventDefault:d},...R&&{selectedPage:R},...S&&{pageSize:S},...b&&{sortColumn:b},...h&&{sortedAsc:h},...e.body};if(i==="columns"){const{columns:c}=e.body,u=I.default.mandatoryColumns(r);let w=[];c&&(w=Array.isArray(c)?c:[c]);const P=[...u,...w];m={...m,columns:P,...Q}}else{const{columns:c}=s;m={...m,columns:c}}const U=$({formData:m,fields:r});o.redirect(`${e.baseUrl}?${U}`)},$=({formData:e,fields:o})=>{const t=new URLSearchParams;Object.keys(e).forEach(r=>{const n=e[r];if(n&&r!=="_csrf"){const l=r.split(".")[1];if(l){const a=C.default.getFilter(o,l);if(a){const{type:p}=a;switch(p.toLocaleLowerCase()){case f.FilterType.date.toLocaleLowerCase():case f.FilterType.dateRange.toLocaleLowerCase():case f.FilterType.granularDateRange.toLocaleLowerCase():{let s=n;const d=new F.default;d.getDateType(s)!=="none"&&(s=d.toDateString(s,"iso")),t.append(r,s)}break;case f.FilterType.multiselect.toLocaleLowerCase():Array.isArray(n)?n.forEach(d=>{t.append(r,d)}):t.append(r,n);break;default:t.append(r,n);break}}}else Array.isArray(n)?n.forEach(a=>{t.append(r,a)}):t.append(r,n)}});const i=t.toString();return decodeURIComponent(i)};var z={applyDashboardInteractiveQuery:A,applyReportInteractiveQuery:V};0&&(module.exports={applyDashboardInteractiveQuery,applyReportInteractiveQuery});
1
+ "use strict";var T=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var B=(e,o)=>{for(var t in o)g(e,t,{get:o[t],enumerable:!0})},C=(e,o,t,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of E(o))!z.call(e,n)&&n!==t&&g(e,n,{get:()=>o[n],enumerable:!(a=x(o,n))||a.enumerable});return e};var y=(e,o,t)=>(t=e!=null?T(j(e)):{},C(o||!e||!e.__esModule?g(t,"default",{value:e,enumerable:!0}):t,e)),M=e=>C(g({},"__esModule",{value:!0}),e);var H={};B(H,{applyDashboardInteractiveQuery:()=>P,applyReportInteractiveQuery:()=>A,default:()=>$});module.exports=M(H);var m=require("../../../components/_filters/filter-input/enum"),D=y(require("../../../utils/localsHelper")),F=y(require("../../../utils/definitionUtils")),I=y(require("../../../utils/DateMapper/DateMapper")),V=y(require("../../../components/_reports/report-columns-form/utils"));const A=async(e,o,t,a)=>{const{reportId:n,id:s}=e.params,{token:l,definitionsPath:i}=D.default.getValues(o),r=(await t.reportingService.getDefinition(l,n,s,i)).variant.specification?.fields||[];return L(e,o,t,a,r)},P=async(e,o,t,a)=>{const{reportId:n,id:s}=e.params,{token:l,definitionsPath:i}=D.default.getValues(o),r=(await t.dashboardService.getDefinition(l,n,s,i)).filterFields||[];return L(e,o,t,a,r)},L=async(e,o,t,a,n)=>{const{tableId:s,id:l}=e.params,{dprUser:i}=D.default.getValues(o);let p;s?p=await t.recentlyViewedService?.getReportByTableId(s,i.id):p=await t.recentlyViewedService?.getReportById(l,i.id);const r=p?.interactiveQuery?.data,d=r?.preventDefault,R=r?.pageSize,S=r?.selectedPage,b=r?.sortColumn,h=r?.sortedAsc;let v={};r&&(v=Object.keys(r).filter(c=>c.includes("filters.")).reduce((c,u)=>({...c,[u]:r[u]}),{}));let f={...d&&{preventDefault:d},...S&&{selectedPage:S},...R&&{pageSize:R},...b&&{sortColumn:b},...h&&{sortedAsc:h},...e.body};if(a==="columns"){const{columns:c}=e.body,u=V.default.mandatoryColumns(n);let w=[];c&&(w=Array.isArray(c)?c:[c]);const U=[...u,...w];f={...f,columns:U,...v}}else{const c=r?.columns||[];f={...f,columns:c}}const Q=O({formData:f,fields:n});o.redirect(`${e.baseUrl}?${Q}`)},O=({formData:e,fields:o})=>{const t=new URLSearchParams;Object.keys(e).forEach(n=>{const s=e[n];if(s&&n!=="_csrf"){const l=n.split(".")[1];if(l){const i=F.default.getFilter(o,l);if(i){const{type:p}=i;switch(p.toLocaleLowerCase()){case m.FilterType.date.toLocaleLowerCase():case m.FilterType.dateRange.toLocaleLowerCase():case m.FilterType.granularDateRange.toLocaleLowerCase():{let r=s;const d=new I.default;d.getDateType(r)!=="none"&&(r=d.toDateString(r,"iso")||""),r&&t.append(n,r)}break;case m.FilterType.multiselect.toLocaleLowerCase():Array.isArray(s)?s.forEach(d=>{t.append(n,d)}):t.append(n,s);break;default:t.append(n,s);break}}}else Array.isArray(s)?s.forEach(i=>{t.append(n,i)}):t.append(n,s)}});const a=t.toString();return decodeURIComponent(a)};var $={applyDashboardInteractiveQuery:P,applyReportInteractiveQuery:A};0&&(module.exports={applyDashboardInteractiveQuery,applyReportInteractiveQuery});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/routes/journeys/view-report/utils.ts"],
4
- "sourcesContent": ["import { Request, Response } from 'express'\nimport { FilterType } from '../../../components/_filters/filter-input/enum'\nimport { components } from '../../../types/api'\nimport { StoredReportData } from '../../../types/UserReports'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport definitionUtils from '../../../utils/definitionUtils'\nimport DateMapper from '../../../utils/DateMapper/DateMapper'\nimport ColumnsUtils from '../../../components/_reports/report-columns-form/utils'\n\nexport const applyReportInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n) => {\n const { reportId, id } = req.params\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n\n // Get the definition\n const definition: components['schemas']['SingleVariantReportDefinition'] =\n await services.reportingService.getDefinition(token, reportId, id, definitionsPath)\n const fields = definition.variant.specification.fields || []\n\n return applyInteractiveQuery(req, res, services, applyType, fields)\n}\n\nexport const applyDashboardInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n) => {\n const { reportId, id } = req.params\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n\n // Get the definition\n const definition: components['schemas']['DashboardDefinition'] = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n definitionsPath,\n )\n const fields = definition.filterFields || []\n\n return applyInteractiveQuery(req, res, services, applyType, fields)\n}\n\nconst applyInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n fields: components['schemas']['FieldDefinition'][],\n) => {\n const { tableId, id } = req.params\n const { dprUser } = LocalsHelper.getValues(res)\n\n // get the report state\n let reportStateData: StoredReportData\n if (tableId) {\n // means its an async report\n reportStateData = await services.recentlyViewedService.getReportByTableId(tableId, dprUser.id)\n } else {\n // its a sync report and can be indentified by ID as will always only be 1\n reportStateData = await services.recentlyViewedService.getReportById(id, dprUser.id)\n }\n\n // Get the stored interactive query data\n const interactiveQueryData = reportStateData?.interactiveQuery?.data\n\n const { preventDefault, selectedPage, pageSize, sortColumn, sortedAsc } = interactiveQueryData\n const filters = Object.keys(interactiveQueryData)\n .filter((key) => key.includes('filters.'))\n .reduce((acc, key) => ({ ...acc, [key]: interactiveQueryData[key] }), {})\n\n // Create merged form data\n let formData: Record<string, string | string[]> = {\n ...(preventDefault && { preventDefault }),\n ...(selectedPage && { selectedPage }),\n ...(pageSize && { pageSize }),\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n ...req.body,\n }\n\n if (applyType === 'columns') {\n const { columns } = req.body\n const mandatoryCols = ColumnsUtils.mandatoryColumns(fields)\n\n let bodyColumns = []\n if (columns) {\n bodyColumns = Array.isArray(columns) ? columns : [columns]\n }\n const columnsData = [...mandatoryCols, ...bodyColumns]\n formData = { ...formData, columns: columnsData, ...filters }\n } else {\n const { columns } = interactiveQueryData\n formData = { ...formData, columns }\n }\n\n // Create query string\n const filtersString = createQueryParamsFromFormData({\n formData,\n fields,\n })\n\n // Redirect back to report\n res.redirect(`${req.baseUrl}?${filtersString}`)\n}\n\nconst createQueryParamsFromFormData = ({\n formData,\n fields,\n}: {\n fields: components['schemas']['FieldDefinition'][]\n formData: Record<string, string | string[]>\n}) => {\n // create the query string\n const params = new URLSearchParams()\n Object.keys(formData).forEach((key) => {\n const value = formData[key]\n\n if (value && key !== '_csrf') {\n const fieldId = key.split('.')[1] // filters are prefixed with 'filters.'\n if (fieldId) {\n const filter = definitionUtils.getFilter(fields, fieldId)\n if (filter) {\n const { type: filterType } = filter\n switch (filterType.toLocaleLowerCase()) {\n // DATE RANGE TYPES\n case FilterType.date.toLocaleLowerCase():\n case FilterType.dateRange.toLocaleLowerCase():\n case FilterType.granularDateRange.toLocaleLowerCase():\n {\n let dateValue = <string>value\n const dateMapper = new DateMapper()\n const currentDateFormat = dateMapper.getDateType(dateValue)\n if (currentDateFormat !== 'none') {\n dateValue = dateMapper.toDateString(dateValue, 'iso')\n }\n params.append(key, dateValue)\n }\n break\n\n // MULTIVALUE TYPES: string[] || string if only one value selected\n case FilterType.multiselect.toLocaleLowerCase():\n if (Array.isArray(value)) {\n const multiselectValue = <string[]>value\n multiselectValue.forEach((v: string) => {\n params.append(key, v)\n })\n } else {\n params.append(key, <string>value)\n }\n break\n\n // OTHER TYPES - always a string\n default:\n params.append(key, <string>value)\n break\n }\n }\n } else if (Array.isArray(value)) {\n value.forEach((v: string) => {\n params.append(key, v)\n })\n } else {\n params.append(key, value)\n }\n }\n })\n\n const encodedFilters = params.toString()\n return decodeURIComponent(encodedFilters)\n}\n\nexport default {\n applyDashboardInteractiveQuery,\n applyReportInteractiveQuery,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "applyDashboardInteractiveQuery", "applyReportInteractiveQuery", "utils_default", "__toCommonJS", "import_enum", "import_localsHelper", "import_definitionUtils", "import_DateMapper", "import_utils", "req", "res", "services", "applyType", "reportId", "id", "token", "definitionsPath", "LocalsHelper", "fields", "applyInteractiveQuery", "tableId", "dprUser", "reportStateData", "interactiveQueryData", "preventDefault", "selectedPage", "pageSize", "sortColumn", "sortedAsc", "filters", "key", "acc", "formData", "columns", "mandatoryCols", "ColumnsUtils", "bodyColumns", "columnsData", "filtersString", "createQueryParamsFromFormData", "params", "value", "fieldId", "filter", "definitionUtils", "filterType", "dateValue", "dateMapper", "DateMapper", "v", "encodedFilters"]
4
+ "sourcesContent": ["import { Request, Response } from 'express'\nimport { FilterType } from '../../../components/_filters/filter-input/enum'\nimport { components } from '../../../types/api'\nimport { StoredReportData } from '../../../types/UserReports'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport definitionUtils from '../../../utils/definitionUtils'\nimport DateMapper from '../../../utils/DateMapper/DateMapper'\nimport ColumnsUtils from '../../../components/_reports/report-columns-form/utils'\n\nexport const applyReportInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n) => {\n const { reportId, id } = req.params\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n\n // Get the definition\n const definition: components['schemas']['SingleVariantReportDefinition'] =\n await services.reportingService.getDefinition(token, reportId, id, definitionsPath)\n const fields = definition.variant.specification?.fields || []\n\n return applyInteractiveQuery(req, res, services, applyType, fields)\n}\n\nexport const applyDashboardInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n) => {\n const { reportId, id } = req.params\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n\n // Get the definition\n const definition: components['schemas']['DashboardDefinition'] = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n definitionsPath,\n )\n const fields = definition.filterFields || []\n\n return applyInteractiveQuery(req, res, services, applyType, fields)\n}\n\nconst applyInteractiveQuery = async (\n req: Request,\n res: Response,\n services: Services,\n applyType: 'columns' | 'filters',\n fields: components['schemas']['FieldDefinition'][],\n) => {\n const { tableId, id } = req.params\n const { dprUser } = LocalsHelper.getValues(res)\n\n // get the report state\n let reportStateData: StoredReportData | undefined\n if (tableId) {\n // means its an async report\n reportStateData = await services.recentlyViewedService?.getReportByTableId(tableId, dprUser.id)\n } else {\n // its a sync report and can be indentified by ID as will always only be 1\n reportStateData = await services.recentlyViewedService?.getReportById(id, dprUser.id)\n }\n\n // Get the stored interactive query data\n const interactiveQueryData = reportStateData?.interactiveQuery?.data\n\n const preventDefault = interactiveQueryData?.['preventDefault']\n const pageSize = interactiveQueryData?.['pageSize']\n const selectedPage = interactiveQueryData?.['selectedPage']\n const sortColumn = interactiveQueryData?.['sortColumn']\n const sortedAsc = interactiveQueryData?.['sortedAsc']\n\n let filters = {}\n if (interactiveQueryData) {\n filters = Object.keys(interactiveQueryData)\n .filter((key) => key.includes('filters.'))\n .reduce((acc, key) => ({ ...acc, [key]: interactiveQueryData[key] }), {})\n }\n\n // Create merged form data\n let formData: Record<string, string | string[]> = {\n ...(preventDefault && { preventDefault }),\n ...(selectedPage && { selectedPage }),\n ...(pageSize && { pageSize }),\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n ...req.body,\n }\n\n if (applyType === 'columns') {\n const { columns } = req.body\n const mandatoryCols = ColumnsUtils.mandatoryColumns(fields)\n\n let bodyColumns = []\n if (columns) {\n bodyColumns = Array.isArray(columns) ? columns : [columns]\n }\n const columnsData = [...mandatoryCols, ...bodyColumns]\n formData = { ...formData, columns: columnsData, ...filters }\n } else {\n const columns = interactiveQueryData?.['columns'] || []\n formData = { ...formData, columns }\n }\n\n // Create query string\n const filtersString = createQueryParamsFromFormData({\n formData,\n fields,\n })\n\n // Redirect back to report\n res.redirect(`${req.baseUrl}?${filtersString}`)\n}\n\nconst createQueryParamsFromFormData = ({\n formData,\n fields,\n}: {\n fields: components['schemas']['FieldDefinition'][]\n formData: Record<string, string | string[]>\n}) => {\n // create the query string\n const params = new URLSearchParams()\n Object.keys(formData).forEach((key) => {\n const value = formData[key]\n\n if (value && key !== '_csrf') {\n const fieldId = key.split('.')[1] // filters are prefixed with 'filters.'\n if (fieldId) {\n const filter = definitionUtils.getFilter(fields, fieldId)\n if (filter) {\n const { type: filterType } = filter\n switch (filterType.toLocaleLowerCase()) {\n // DATE RANGE TYPES\n case FilterType.date.toLocaleLowerCase():\n case FilterType.dateRange.toLocaleLowerCase():\n case FilterType.granularDateRange.toLocaleLowerCase():\n {\n let dateValue: string = <string>value\n const dateMapper = new DateMapper()\n const currentDateFormat = dateMapper.getDateType(dateValue)\n if (currentDateFormat !== 'none') {\n dateValue = dateMapper.toDateString(dateValue, 'iso') || ''\n }\n if (dateValue) {\n params.append(key, dateValue)\n }\n }\n break\n\n // MULTIVALUE TYPES: string[] || string if only one value selected\n case FilterType.multiselect.toLocaleLowerCase():\n if (Array.isArray(value)) {\n const multiselectValue = <string[]>value\n multiselectValue.forEach((v: string) => {\n params.append(key, v)\n })\n } else {\n params.append(key, <string>value)\n }\n break\n\n // OTHER TYPES - always a string\n default:\n params.append(key, <string>value)\n break\n }\n }\n } else if (Array.isArray(value)) {\n value.forEach((v: string) => {\n params.append(key, v)\n })\n } else {\n params.append(key, value)\n }\n }\n })\n\n const encodedFilters = params.toString()\n return decodeURIComponent(encodedFilters)\n}\n\nexport default {\n applyDashboardInteractiveQuery,\n applyReportInteractiveQuery,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "applyDashboardInteractiveQuery", "applyReportInteractiveQuery", "utils_default", "__toCommonJS", "import_enum", "import_localsHelper", "import_definitionUtils", "import_DateMapper", "import_utils", "req", "res", "services", "applyType", "reportId", "id", "token", "definitionsPath", "LocalsHelper", "fields", "applyInteractiveQuery", "tableId", "dprUser", "reportStateData", "interactiveQueryData", "preventDefault", "pageSize", "selectedPage", "sortColumn", "sortedAsc", "filters", "key", "acc", "formData", "columns", "mandatoryCols", "ColumnsUtils", "bodyColumns", "columnsData", "filtersString", "createQueryParamsFromFormData", "params", "value", "fieldId", "filter", "definitionUtils", "filterType", "dateValue", "dateMapper", "DateMapper", "v", "encodedFilters"]
7
7
  }
@@ -20,7 +20,7 @@ export const applyReportInteractiveQuery = async (
20
20
  // Get the definition
21
21
  const definition: components['schemas']['SingleVariantReportDefinition'] =
22
22
  await services.reportingService.getDefinition(token, reportId, id, definitionsPath)
23
- const fields = definition.variant.specification.fields || []
23
+ const fields = definition.variant.specification?.fields || []
24
24
 
25
25
  return applyInteractiveQuery(req, res, services, applyType, fields)
26
26
  }
@@ -57,22 +57,30 @@ const applyInteractiveQuery = async (
57
57
  const { dprUser } = LocalsHelper.getValues(res)
58
58
 
59
59
  // get the report state
60
- let reportStateData: StoredReportData
60
+ let reportStateData: StoredReportData | undefined
61
61
  if (tableId) {
62
62
  // means its an async report
63
- reportStateData = await services.recentlyViewedService.getReportByTableId(tableId, dprUser.id)
63
+ reportStateData = await services.recentlyViewedService?.getReportByTableId(tableId, dprUser.id)
64
64
  } else {
65
65
  // its a sync report and can be indentified by ID as will always only be 1
66
- reportStateData = await services.recentlyViewedService.getReportById(id, dprUser.id)
66
+ reportStateData = await services.recentlyViewedService?.getReportById(id, dprUser.id)
67
67
  }
68
68
 
69
69
  // Get the stored interactive query data
70
70
  const interactiveQueryData = reportStateData?.interactiveQuery?.data
71
71
 
72
- const { preventDefault, selectedPage, pageSize, sortColumn, sortedAsc } = interactiveQueryData
73
- const filters = Object.keys(interactiveQueryData)
74
- .filter((key) => key.includes('filters.'))
75
- .reduce((acc, key) => ({ ...acc, [key]: interactiveQueryData[key] }), {})
72
+ const preventDefault = interactiveQueryData?.['preventDefault']
73
+ const pageSize = interactiveQueryData?.['pageSize']
74
+ const selectedPage = interactiveQueryData?.['selectedPage']
75
+ const sortColumn = interactiveQueryData?.['sortColumn']
76
+ const sortedAsc = interactiveQueryData?.['sortedAsc']
77
+
78
+ let filters = {}
79
+ if (interactiveQueryData) {
80
+ filters = Object.keys(interactiveQueryData)
81
+ .filter((key) => key.includes('filters.'))
82
+ .reduce((acc, key) => ({ ...acc, [key]: interactiveQueryData[key] }), {})
83
+ }
76
84
 
77
85
  // Create merged form data
78
86
  let formData: Record<string, string | string[]> = {
@@ -95,7 +103,7 @@ const applyInteractiveQuery = async (
95
103
  const columnsData = [...mandatoryCols, ...bodyColumns]
96
104
  formData = { ...formData, columns: columnsData, ...filters }
97
105
  } else {
98
- const { columns } = interactiveQueryData
106
+ const columns = interactiveQueryData?.['columns'] || []
99
107
  formData = { ...formData, columns }
100
108
  }
101
109
 
@@ -133,13 +141,15 @@ const createQueryParamsFromFormData = ({
133
141
  case FilterType.dateRange.toLocaleLowerCase():
134
142
  case FilterType.granularDateRange.toLocaleLowerCase():
135
143
  {
136
- let dateValue = <string>value
144
+ let dateValue: string = <string>value
137
145
  const dateMapper = new DateMapper()
138
146
  const currentDateFormat = dateMapper.getDateType(dateValue)
139
147
  if (currentDateFormat !== 'none') {
140
- dateValue = dateMapper.toDateString(dateValue, 'iso')
148
+ dateValue = dateMapper.toDateString(dateValue, 'iso') || ''
149
+ }
150
+ if (dateValue) {
151
+ params.append(key, dateValue)
141
152
  }
142
- params.append(key, dateValue)
143
153
  }
144
154
  break
145
155
 
@@ -1,2 +1,2 @@
1
- var h=Object.create;var a=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var u=(t,s)=>{for(var r in s)a(t,r,{get:s[r],enumerable:!0})},g=(t,s,r,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of b(s))!l.call(t,n)&&n!==r&&a(t,n,{get:()=>s[n],enumerable:!(i=D(s,n))||i.enumerable});return t};var y=(t,s,r)=>(r=t!=null?h(m(t)):{},g(s||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),p=t=>g(a({},"__esModule",{value:!0}),t);var A={};u(A,{DashboardService:()=>o,default:()=>f});module.exports=p(A);var c=y(require("../utils/logger"));class o{constructor(s){this.dashboardClient=s;this.dashboardClient=s,c.default.info("Service created: DashboardService")}async getDefinition(s,r,i,n){return this.dashboardClient.getDefinition(s,i,r,n)}async requestAsyncDashboard(s,r,i,n){return this.dashboardClient.requestAsyncDashboard(s,r,i,n)}async cancelAsyncRequest(s,r,i,n,e){return this.dashboardClient.cancelAsyncRequest(s,r,i,n,e)}async getAsyncStatus(s,r,i,n,e,d){return this.dashboardClient.getAsyncStatus(s,r,i,n,e,d)}async getAsyncDashboard(s,r,i,n,e){return this.dashboardClient.getAsyncDashboard(s,i,r,n,e)}}var f=o;0&&(module.exports={DashboardService});
1
+ "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var m=(i,s)=>{for(var r in s)a(i,r,{get:s[r],enumerable:!0})},D=(i,s,r,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of d(s))!h.call(i,t)&&t!==r&&a(i,t,{get:()=>s[t],enumerable:!(n=c(s,t))||n.enumerable});return i};var b=i=>D(a({},"__esModule",{value:!0}),i);var l={};m(l,{DashboardService:()=>o,default:()=>u});module.exports=b(l);class o{constructor(s){this.dashboardClient=s;this.dashboardClient=s}async getDefinition(s,r,n,t){return this.dashboardClient.getDefinition(s,n,r,t)}async requestAsyncDashboard(s,r,n,t){return this.dashboardClient.requestAsyncDashboard(s,r,n,t)}async cancelAsyncRequest(s,r,n,t,e){return this.dashboardClient.cancelAsyncRequest(s,r,n,t,e)}async getAsyncStatus(s,r,n,t,e,g){return this.dashboardClient.getAsyncStatus(s,r,n,t,e,g)}async getAsyncDashboard(s,r,n,t,e){return this.dashboardClient.getAsyncDashboard(s,n,r,t,e)}}var u=o;0&&(module.exports={DashboardService});
2
2
  //# sourceMappingURL=dashboardService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/services/dashboardService.ts"],
4
- "sourcesContent": ["import Dict = NodeJS.Dict\nimport logger from '../utils/logger'\nimport DashboardClient from '../data/dashboardClient'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass DashboardService {\n constructor(private readonly dashboardClient: DashboardClient) {\n this.dashboardClient = dashboardClient\n logger.info('Service created: DashboardService')\n }\n\n async getDefinition(\n token: string,\n dpdId: string,\n id: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['DashboardDefinition']> {\n return this.dashboardClient.getDefinition(token, id, dpdId, dataProductDefinitionsPath)\n }\n\n async requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n return this.dashboardClient.requestAsyncDashboard(token, reportId, dashboardId, query)\n }\n\n async cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.cancelAsyncRequest(\n token,\n reportId,\n dashboardId,\n executionId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.getAsyncStatus(\n token,\n reportId,\n dashboardId,\n executionId,\n tableId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncDashboard(\n token: string,\n dashboardId: string,\n reportId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n return this.dashboardClient.getAsyncDashboard(token, reportId, dashboardId, tableId, query)\n }\n}\n\nexport { DashboardService }\nexport default DashboardService\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAmB,8BAMnB,MAAMH,CAAiB,CACrB,YAA6BI,EAAkC,CAAlC,qBAAAA,EAC3B,KAAK,gBAAkBA,EACvB,EAAAC,QAAO,KAAK,mCAAmC,CACjD,CAEA,MAAM,cACJC,EACAC,EACAC,EACAC,EACuD,CACvD,OAAO,KAAK,gBAAgB,cAAcH,EAAOE,EAAID,EAAOE,CAA0B,CACxF,CAEA,MAAM,sBACJH,EACAI,EACAC,EACAC,EACuB,CACvB,OAAO,KAAK,gBAAgB,sBAAsBN,EAAOI,EAAUC,EAAaC,CAAK,CACvF,CAEA,MAAM,mBACJN,EACAI,EACAC,EACAE,EACAJ,EACuB,CACvB,OAAO,KAAK,gBAAgB,mBAC1BH,EACAI,EACAC,EACAE,EACAJ,CACF,CACF,CAEA,MAAM,eACJH,EACAI,EACAC,EACAE,EACAC,EACAL,EACuB,CACvB,OAAO,KAAK,gBAAgB,eAC1BH,EACAI,EACAC,EACAE,EACAC,EACAL,CACF,CACF,CAEA,MAAM,kBACJH,EACAK,EACAD,EACAI,EACAF,EACoC,CACpC,OAAO,KAAK,gBAAgB,kBAAkBN,EAAOI,EAAUC,EAAaG,EAASF,CAAK,CAC5F,CACF,CAGA,IAAOX,EAAQD",
6
- "names": ["dashboardService_exports", "__export", "DashboardService", "dashboardService_default", "__toCommonJS", "import_logger", "dashboardClient", "logger", "token", "dpdId", "id", "dataProductDefinitionsPath", "reportId", "dashboardId", "query", "executionId", "tableId"]
4
+ "sourcesContent": ["import Dict = NodeJS.Dict\nimport DashboardClient from '../data/dashboardClient'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass DashboardService {\n constructor(private readonly dashboardClient: DashboardClient) {\n this.dashboardClient = dashboardClient\n }\n\n async getDefinition(\n token: string,\n dpdId: string,\n id: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['DashboardDefinition']> {\n return this.dashboardClient.getDefinition(token, id, dpdId, dataProductDefinitionsPath)\n }\n\n async requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n return this.dashboardClient.requestAsyncDashboard(token, reportId, dashboardId, query)\n }\n\n async cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.cancelAsyncRequest(\n token,\n reportId,\n dashboardId,\n executionId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['StatementExecutionStatus']> {\n return this.dashboardClient.getAsyncStatus(\n token,\n reportId,\n dashboardId,\n executionId,\n tableId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncDashboard(\n token: string,\n dashboardId: string,\n reportId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n return this.dashboardClient.getAsyncDashboard(token, reportId, dashboardId, tableId, query)\n }\n}\n\nexport { DashboardService }\nexport default DashboardService\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAMA,MAAME,CAAiB,CACrB,YAA6BG,EAAkC,CAAlC,qBAAAA,EAC3B,KAAK,gBAAkBA,CACzB,CAEA,MAAM,cACJC,EACAC,EACAC,EACAC,EACuD,CACvD,OAAO,KAAK,gBAAgB,cAAcH,EAAOE,EAAID,EAAOE,CAA0B,CACxF,CAEA,MAAM,sBACJH,EACAI,EACAC,EACAC,EACuB,CACvB,OAAO,KAAK,gBAAgB,sBAAsBN,EAAOI,EAAUC,EAAaC,CAAK,CACvF,CAEA,MAAM,mBACJN,EACAI,EACAC,EACAE,EACAJ,EACuB,CACvB,OAAO,KAAK,gBAAgB,mBAC1BH,EACAI,EACAC,EACAE,EACAJ,CACF,CACF,CAEA,MAAM,eACJH,EACAI,EACAC,EACAE,EACAC,EACAL,EAC4D,CAC5D,OAAO,KAAK,gBAAgB,eAC1BH,EACAI,EACAC,EACAE,EACAC,EACAL,CACF,CACF,CAEA,MAAM,kBACJH,EACAK,EACAD,EACAI,EACAF,EACoC,CACpC,OAAO,KAAK,gBAAgB,kBAAkBN,EAAOI,EAAUC,EAAaG,EAASF,CAAK,CAC5F,CACF,CAGA,IAAOT,EAAQD",
6
+ "names": ["dashboardService_exports", "__export", "DashboardService", "dashboardService_default", "__toCommonJS", "dashboardClient", "token", "dpdId", "id", "dataProductDefinitionsPath", "reportId", "dashboardId", "query", "executionId", "tableId"]
7
7
  }
@@ -1,5 +1,4 @@
1
1
  import Dict = NodeJS.Dict
2
- import logger from '../utils/logger'
3
2
  import DashboardClient from '../data/dashboardClient'
4
3
  import { components } from '../types/api'
5
4
  import { DashboardDataResponse } from '../types/Metrics'
@@ -8,7 +7,6 @@ import { DashboardDataResponse } from '../types/Metrics'
8
7
  class DashboardService {
9
8
  constructor(private readonly dashboardClient: DashboardClient) {
10
9
  this.dashboardClient = dashboardClient
11
- logger.info('Service created: DashboardService')
12
10
  }
13
11
 
14
12
  async getDefinition(
@@ -52,7 +50,7 @@ class DashboardService {
52
50
  executionId: string,
53
51
  tableId?: string,
54
52
  dataProductDefinitionsPath?: string,
55
- ): Promise<Dict<string>> {
53
+ ): Promise<components['schemas']['StatementExecutionStatus']> {
56
54
  return this.dashboardClient.getAsyncStatus(
57
55
  token,
58
56
  reportId,
@@ -1,2 +1,2 @@
1
- var S=Object.create;var o=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var w=(i,t)=>{for(var e in t)o(i,e,{get:t[e],enumerable:!0})},d=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of F(t))!m.call(i,r)&&r!==e&&o(i,r,{get:()=>t[r],enumerable:!(a=y(t,r))||a.enumerable});return i};var x=(i,t,e)=>(e=i!=null?S(h(i)):{},d(t||!i||!i.__esModule?o(e,"default",{value:i,enumerable:!0}):e,i)),v=i=>d(o({},"__esModule",{value:!0}),i);var R={};w(R,{DefaultFilterValuesService:()=>g,default:()=>C});module.exports=v(R);var c=x(require("./reportStoreService")),u=require("../components/_filters/filtersTypeEnum");class g extends c.default{constructor(t){super(t)}async init(t,e){t.defaultFilters||(t.defaultFilters=[],await this.saveState(e,t))}async save(t,e,a,r){const s=await this.getState(t);await this.init(s,t);const l={reportId:e,id:a,values:r},n=await this.getIndex(t,e,a);n===-1?s.defaultFilters.push(l):s.defaultFilters[n]=l,await this.saveState(t,s)}async get(t,e,a,r){const l=(await this.getState(t)).defaultFilters?.find(n=>n.id===a&&n.reportId===e);if(l)return l.values.filter(n=>{const f=n.type?n.type:u.FiltersType.REQUEST;return r===f})}async getIndex(t,e,a){return(await this.getState(t)).defaultFilters.findIndex(s=>s.id===a&&s.reportId===e)}async delete(t,e,a,r){const s=await this.getState(t),l=await this.getIndex(t,e,a);if(l!==-1){const n=s.defaultFilters[l];if(n.values.length>0){const f=n.values.filter(p=>(p.type?p.type:u.FiltersType.REQUEST)!==r);s.defaultFilters[l].values=f}else s.defaultFilters.splice(l,1);await this.saveState(t,s)}}}var C=g;0&&(module.exports={DefaultFilterValuesService});
1
+ "use strict";var h=Object.create;var o=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var w=(i,e)=>{for(var t in e)o(i,t,{get:e[t],enumerable:!0})},p=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of v(e))!b.call(i,s)&&s!==t&&o(i,s,{get:()=>e[s],enumerable:!(n=S(e,s))||n.enumerable});return i};var c=(i,e,t)=>(t=i!=null?h(y(i)):{},p(e||!i||!i.__esModule?o(t,"default",{value:i,enumerable:!0}):t,i)),x=i=>p(o({},"__esModule",{value:!0}),i);var R={};w(R,{DefaultFilterValuesService:()=>d,default:()=>C});module.exports=x(R);var m=c(require("./reportStoreService")),u=require("../components/_filters/filtersTypeEnum"),F=c(require("../utils/logger"));class d extends m.default{constructor(e,t){super(e),this.enabled=!!t.saveDefaults,this.enabled||F.default.info("saveDefaultsFilters: disabled")}async init(e,t){this.enabled&&(e.defaultFilters||(e.defaultFilters=[],await this.saveState(t,e)))}async save(e,t,n,s){if(!this.enabled)return;const r=await this.getState(e);await this.init(r,e);const l={reportId:t,id:n,values:s},a=await this.getIndex(e,t,n);r.defaultFilters!==void 0&&(a===-1?r.defaultFilters.push(l):typeof a=="number"&&(r.defaultFilters[a]=l),await this.saveState(e,r))}async get(e,t,n,s){if(!this.enabled)return[];const l=(await this.getState(e)).defaultFilters?.find(a=>a.id===n&&a.reportId===t);if(l)return l.values.filter(a=>{const f=a.type?a.type:u.FiltersType.REQUEST;return s===f})}async getIndex(e,t,n){return(await this.getState(e)).defaultFilters?.findIndex(r=>r.id===n&&r.reportId===t)}async delete(e,t,n,s){if(!this.enabled)return;const r=await this.getState(e),l=await this.getIndex(e,t,n);if(l!==void 0&&l!==-1&&r.defaultFilters){const a=r.defaultFilters[l];if(a.values.length>0){const f=a.values.filter(g=>(g.type?g.type:u.FiltersType.REQUEST)!==s);r.defaultFilters[l].values=f}else r.defaultFilters.splice(l,1);await this.saveState(e,r)}}}var C=d;0&&(module.exports={DefaultFilterValuesService});
2
2
  //# sourceMappingURL=defaultFilterValuesService.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/services/defaultFilterValuesService.ts"],
4
- "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport ReportStoreService from './reportStoreService'\nimport ReportDataStore from '../data/reportDataStore'\nimport { ReportStoreConfig } from '../types/ReportStore'\nimport { defaultFilterValue } from '../utils/Personalisation/types'\nimport { FiltersType } from '../components/_filters/filtersTypeEnum'\n\nclass DefaultFilterValuesService extends ReportStoreService {\n constructor(reportDataStore: ReportDataStore) {\n super(reportDataStore)\n }\n\n async init(userConfig: ReportStoreConfig, userId: string) {\n if (!userConfig.defaultFilters) {\n userConfig.defaultFilters = []\n await this.saveState(userId, userConfig)\n }\n }\n\n async save(userId: string, reportId: string, id: string, values: defaultFilterValue[]) {\n const userConfig = await this.getState(userId)\n await this.init(userConfig, userId)\n\n const defaults = {\n reportId,\n id,\n values,\n }\n\n const defaultValuesIndex = await this.getIndex(userId, reportId, id)\n\n if (defaultValuesIndex === -1) {\n userConfig.defaultFilters.push(defaults)\n } else {\n userConfig.defaultFilters[defaultValuesIndex] = defaults\n }\n\n await this.saveState(userId, userConfig)\n }\n\n async get(userId: string, reportId: string, id: string, filtersType: FiltersType) {\n const userConfig = await this.getState(userId)\n const defaultConfig = userConfig.defaultFilters?.find((defaultFilter) => {\n return defaultFilter.id === id && defaultFilter.reportId === reportId\n })\n if (!defaultConfig) {\n return undefined\n }\n return defaultConfig.values.filter((v) => {\n const type = !v.type ? FiltersType.REQUEST : v.type\n return filtersType === type\n })\n }\n\n async getIndex(userId: string, reportId: string, id: string) {\n const userConfig = await this.getState(userId)\n return userConfig.defaultFilters.findIndex((defaultFilter) => {\n return defaultFilter.id === id && defaultFilter.reportId === reportId\n })\n }\n\n async delete(userId: string, reportId: string, id: string, type: FiltersType) {\n const userConfig = await this.getState(userId)\n const index = await this.getIndex(userId, reportId, id)\n if (index !== -1) {\n const defaults = userConfig.defaultFilters[index]\n if (defaults.values.length > 0) {\n const updatedValues = defaults.values.filter((value) => {\n const filtersType = !value.type ? FiltersType.REQUEST : value.type\n return filtersType !== type\n })\n userConfig.defaultFilters[index].values = updatedValues\n } else {\n userConfig.defaultFilters.splice(index, 1)\n }\n await this.saveState(userId, userConfig)\n }\n }\n}\n\nexport { DefaultFilterValuesService }\nexport default DefaultFilterValuesService\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,mCAI/BC,EAA4B,kDAE5B,MAAMJ,UAAmC,EAAAK,OAAmB,CAC1D,YAAYC,EAAkC,CAC5C,MAAMA,CAAe,CACvB,CAEA,MAAM,KAAKC,EAA+BC,EAAgB,CACnDD,EAAW,iBACdA,EAAW,eAAiB,CAAC,EAC7B,MAAM,KAAK,UAAUC,EAAQD,CAAU,EAE3C,CAEA,MAAM,KAAKC,EAAgBC,EAAkBC,EAAYC,EAA8B,CACrF,MAAMJ,EAAa,MAAM,KAAK,SAASC,CAAM,EAC7C,MAAM,KAAK,KAAKD,EAAYC,CAAM,EAElC,MAAMI,EAAW,CACf,SAAAH,EACA,GAAAC,EACA,OAAAC,CACF,EAEME,EAAqB,MAAM,KAAK,SAASL,EAAQC,EAAUC,CAAE,EAE/DG,IAAuB,GACzBN,EAAW,eAAe,KAAKK,CAAQ,EAEvCL,EAAW,eAAeM,CAAkB,EAAID,EAGlD,MAAM,KAAK,UAAUJ,EAAQD,CAAU,CACzC,CAEA,MAAM,IAAIC,EAAgBC,EAAkBC,EAAYI,EAA0B,CAEhF,MAAMC,GADa,MAAM,KAAK,SAASP,CAAM,GACZ,gBAAgB,KAAMQ,GAC9CA,EAAc,KAAON,GAAMM,EAAc,WAAaP,CAC9D,EACD,GAAKM,EAGL,OAAOA,EAAc,OAAO,OAAQE,GAAM,CACxC,MAAMC,EAAQD,EAAE,KAA6BA,EAAE,KAAxB,cAAY,QACnC,OAAOH,IAAgBI,CACzB,CAAC,CACH,CAEA,MAAM,SAASV,EAAgBC,EAAkBC,EAAY,CAE3D,OADmB,MAAM,KAAK,SAASF,CAAM,GAC3B,eAAe,UAAWQ,GACnCA,EAAc,KAAON,GAAMM,EAAc,WAAaP,CAC9D,CACH,CAEA,MAAM,OAAOD,EAAgBC,EAAkBC,EAAYQ,EAAmB,CAC5E,MAAMX,EAAa,MAAM,KAAK,SAASC,CAAM,EACvCW,EAAQ,MAAM,KAAK,SAASX,EAAQC,EAAUC,CAAE,EACtD,GAAIS,IAAU,GAAI,CAChB,MAAMP,EAAWL,EAAW,eAAeY,CAAK,EAChD,GAAIP,EAAS,OAAO,OAAS,EAAG,CAC9B,MAAMQ,EAAgBR,EAAS,OAAO,OAAQS,IACvBA,EAAM,KAA6BA,EAAM,KAA5B,cAAY,WACvBH,CACxB,EACDX,EAAW,eAAeY,CAAK,EAAE,OAASC,CAC5C,MACEb,EAAW,eAAe,OAAOY,EAAO,CAAC,EAE3C,MAAM,KAAK,UAAUX,EAAQD,CAAU,CACzC,CACF,CACF,CAGA,IAAON,EAAQD",
6
- "names": ["defaultFilterValuesService_exports", "__export", "DefaultFilterValuesService", "defaultFilterValuesService_default", "__toCommonJS", "import_reportStoreService", "import_filtersTypeEnum", "ReportStoreService", "reportDataStore", "userConfig", "userId", "reportId", "id", "values", "defaults", "defaultValuesIndex", "filtersType", "defaultConfig", "defaultFilter", "v", "type", "index", "updatedValues", "value"]
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport ReportStoreService from './reportStoreService'\nimport ReportDataStore from '../data/reportDataStore'\nimport { ReportStoreConfig } from '../types/ReportStore'\nimport { defaultFilterValue } from '../utils/Personalisation/types'\nimport { FiltersType } from '../components/_filters/filtersTypeEnum'\nimport { ServiceFeatureConfig } from '../types/DprConfig'\nimport logger from '../utils/logger'\n\nclass DefaultFilterValuesService extends ReportStoreService {\n enabled: boolean\n\n constructor(reportDataStore: ReportDataStore, serviceFeatureConfig: ServiceFeatureConfig) {\n super(reportDataStore)\n this.enabled = Boolean(serviceFeatureConfig.saveDefaults)\n if (!this.enabled) logger.info(`saveDefaultsFilters: disabled`)\n }\n\n async init(userConfig: ReportStoreConfig, userId: string): Promise<void> {\n if (!this.enabled) return\n\n if (!userConfig.defaultFilters) {\n userConfig.defaultFilters = []\n await this.saveState(userId, userConfig)\n }\n }\n\n async save(userId: string, reportId: string, id: string, values: defaultFilterValue[]): Promise<void> {\n if (!this.enabled) return\n\n const userConfig = await this.getState(userId)\n await this.init(userConfig, userId)\n\n const defaults = {\n reportId,\n id,\n values,\n }\n\n const defaultValuesIndex = await this.getIndex(userId, reportId, id)\n if (userConfig.defaultFilters !== undefined) {\n if (defaultValuesIndex === -1) {\n userConfig.defaultFilters.push(defaults)\n } else if (typeof defaultValuesIndex === 'number') {\n userConfig.defaultFilters[defaultValuesIndex] = defaults\n }\n await this.saveState(userId, userConfig)\n }\n }\n\n async get(\n userId: string,\n reportId: string,\n id: string,\n filtersType: FiltersType,\n ): Promise<defaultFilterValue[] | undefined> {\n if (!this.enabled) return []\n\n const userConfig = await this.getState(userId)\n const defaultConfig = userConfig.defaultFilters?.find((defaultFilter) => {\n return defaultFilter.id === id && defaultFilter.reportId === reportId\n })\n if (!defaultConfig) {\n return undefined\n }\n return defaultConfig.values.filter((v) => {\n const type = !v.type ? FiltersType.REQUEST : v.type\n return filtersType === type\n })\n }\n\n private async getIndex(userId: string, reportId: string, id: string) {\n const userConfig = await this.getState(userId)\n return userConfig.defaultFilters?.findIndex((defaultFilter) => {\n return defaultFilter.id === id && defaultFilter.reportId === reportId\n })\n }\n\n async delete(userId: string, reportId: string, id: string, type: FiltersType): Promise<void> {\n if (!this.enabled) return\n\n const userConfig = await this.getState(userId)\n const index = await this.getIndex(userId, reportId, id)\n if (index !== undefined && index !== -1 && userConfig.defaultFilters) {\n const defaults = userConfig.defaultFilters[index]\n if (defaults.values.length > 0) {\n const updatedValues = defaults.values.filter((value) => {\n const filtersType = !value.type ? FiltersType.REQUEST : value.type\n return filtersType !== type\n })\n userConfig.defaultFilters[index].values = updatedValues\n } else {\n userConfig.defaultFilters.splice(index, 1)\n }\n await this.saveState(userId, userConfig)\n }\n }\n}\n\nexport { DefaultFilterValuesService }\nexport default DefaultFilterValuesService\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,mCAI/BC,EAA4B,kDAE5BC,EAAmB,8BAEnB,MAAML,UAAmC,EAAAM,OAAmB,CAG1D,YAAYC,EAAkCC,EAA4C,CACxF,MAAMD,CAAe,EACrB,KAAK,QAAU,EAAQC,EAAqB,aACvC,KAAK,SAAS,EAAAC,QAAO,KAAK,+BAA+B,CAChE,CAEA,MAAM,KAAKC,EAA+BC,EAA+B,CAClE,KAAK,UAELD,EAAW,iBACdA,EAAW,eAAiB,CAAC,EAC7B,MAAM,KAAK,UAAUC,EAAQD,CAAU,GAE3C,CAEA,MAAM,KAAKC,EAAgBC,EAAkBC,EAAYC,EAA6C,CACpG,GAAI,CAAC,KAAK,QAAS,OAEnB,MAAMJ,EAAa,MAAM,KAAK,SAASC,CAAM,EAC7C,MAAM,KAAK,KAAKD,EAAYC,CAAM,EAElC,MAAMI,EAAW,CACf,SAAAH,EACA,GAAAC,EACA,OAAAC,CACF,EAEME,EAAqB,MAAM,KAAK,SAASL,EAAQC,EAAUC,CAAE,EAC/DH,EAAW,iBAAmB,SAC5BM,IAAuB,GACzBN,EAAW,eAAe,KAAKK,CAAQ,EAC9B,OAAOC,GAAuB,WACvCN,EAAW,eAAeM,CAAkB,EAAID,GAElD,MAAM,KAAK,UAAUJ,EAAQD,CAAU,EAE3C,CAEA,MAAM,IACJC,EACAC,EACAC,EACAI,EAC2C,CAC3C,GAAI,CAAC,KAAK,QAAS,MAAO,CAAC,EAG3B,MAAMC,GADa,MAAM,KAAK,SAASP,CAAM,GACZ,gBAAgB,KAAMQ,GAC9CA,EAAc,KAAON,GAAMM,EAAc,WAAaP,CAC9D,EACD,GAAKM,EAGL,OAAOA,EAAc,OAAO,OAAQE,GAAM,CACxC,MAAMC,EAAQD,EAAE,KAA6BA,EAAE,KAAxB,cAAY,QACnC,OAAOH,IAAgBI,CACzB,CAAC,CACH,CAEA,MAAc,SAASV,EAAgBC,EAAkBC,EAAY,CAEnE,OADmB,MAAM,KAAK,SAASF,CAAM,GAC3B,gBAAgB,UAAWQ,GACpCA,EAAc,KAAON,GAAMM,EAAc,WAAaP,CAC9D,CACH,CAEA,MAAM,OAAOD,EAAgBC,EAAkBC,EAAYQ,EAAkC,CAC3F,GAAI,CAAC,KAAK,QAAS,OAEnB,MAAMX,EAAa,MAAM,KAAK,SAASC,CAAM,EACvCW,EAAQ,MAAM,KAAK,SAASX,EAAQC,EAAUC,CAAE,EACtD,GAAIS,IAAU,QAAaA,IAAU,IAAMZ,EAAW,eAAgB,CACpE,MAAMK,EAAWL,EAAW,eAAeY,CAAK,EAChD,GAAIP,EAAS,OAAO,OAAS,EAAG,CAC9B,MAAMQ,EAAgBR,EAAS,OAAO,OAAQS,IACvBA,EAAM,KAA6BA,EAAM,KAA5B,cAAY,WACvBH,CACxB,EACDX,EAAW,eAAeY,CAAK,EAAE,OAASC,CAC5C,MACEb,EAAW,eAAe,OAAOY,EAAO,CAAC,EAE3C,MAAM,KAAK,UAAUX,EAAQD,CAAU,CACzC,CACF,CACF,CAGA,IAAOT,EAAQD",
6
+ "names": ["defaultFilterValuesService_exports", "__export", "DefaultFilterValuesService", "defaultFilterValuesService_default", "__toCommonJS", "import_reportStoreService", "import_filtersTypeEnum", "import_logger", "ReportStoreService", "reportDataStore", "serviceFeatureConfig", "logger", "userConfig", "userId", "reportId", "id", "values", "defaults", "defaultValuesIndex", "filtersType", "defaultConfig", "defaultFilter", "v", "type", "index", "updatedValues", "value"]
7
7
  }